无原始代码下的白盒测试方法及系统与流程

文档序号:31604985发布日期:2022-09-21 10:18阅读:164来源:国知局
无原始代码下的白盒测试方法及系统与流程

1.本发明涉及软件测试技术领域,具体地说是无原始代码下的白盒测试方法及系统。


背景技术:

2.随着微服务云原生开发的越来越重要,代码分支管理以及产品增量管理经常有不太一致的情况。开发提交的修复补丁可能无法准确及时的响应到代码分支中,并且也缺少已经交付生产的代码的明确分支以及版本情况,抓取代码的不同点进行相关白盒测试,是代码分支管理的重要部分。
3.前期进行白盒测试一般是直接对代码库进行相关测试,该方法无法准确反映与已经发布的客户现场的分支进行检查的情况,存在找不到准确抓手的情况。
4.现阶段产品提交的增量都是jar包方式提交,jar包内包含开发人员编写的一个工程下所有的代码,在进行反编译时,需要将原始的java代码相关的.java文件通过编译器编译成为的.class文件。非原始代码通过反编译手段的场景则都是直接对jar包进行反编译,jar包比较大,反编译工作量也比较大,相应的反编译结果之间的对比工作量也会较为繁重的问题。
5.如何提高白盒测试效率,在没有原始代码和代码库权限的情况下对提交的代码和正在运行的代码进行细粒度类基本的反翻译以及对比,是需要解决的技术问题。


技术实现要素:

6.本发明的技术任务是针对以上不足,提供无原始代码下的白盒测试方法及系统,来解决如何提高白盒测试效率,在没有原始代码和代码库权限的情况下对提交的代码和正在运行的代码进行细粒度类基本的反翻译以及对比的问题。
7.第一方面,本发明的一种无原始代码下的白盒测试方法,包括如下步骤:
8.配置一套运行稳定且无bug的运行环境作为副本,创建一个目录作为增量目录,所述增量目录能够存储预定期限内提交的产品增量包、并能够存储至指定的路径下进行备用;
9.将提交的产品增量包解压为jar包,所述解压得的jar包作为增量jar包存储于增量目录,并从生产环境中查找与所述增量jar包相同名称的jar包,所述查找得到的jar包作为基础jar包存储于基础目录,所述基础目录为创建的目录,能够存储与所述预定期限内提交的产品增量包相关的基础jar包、并能够存储至指定的路径下进行备用;
10.将所述增量jar包和基础jar包均解压为class文件,得到与所述增量jar包对应的增量class文件和与所述基础jar包对应的基础class文件;
11.对增量class文件和基础class文件进行对照排查,将增量class文件和基础class文件之间相同的class文件移除,得到与所述增量class文件对应的清理后增量class文件以及与所述基础class文件对应的清理后基础class文件;
12.对所述清理后增量class文件和清理后基础class文件进行反编译,得到与所述清理后增量class文件对应的增量反编译结果以及与所述清理后基础class文件对应的基础反编译结果;
13.基于预设的对照逻辑,对所述增量反编译结果和所述基础反编译结果进行对比处理,对有变化的反编译结果进行代码审计。
14.作为优选,通过md5sum算法对增量class文件和基础class文件进行对比排查,将相同md5sum的文件进行移除,得到与所述增量class文件对应的清理后增量class文件以及与所述基础class文件对应的清理后基础class文件。
15.作为优选,对所述清理后增量class文件和清理后基础class文件进行反编译时,反编译的路径两个,一个是已发布的src路径,另外一个是未发布的src路径;
16.所述增量反编译结果和所述基础反编译结果存储于所述两个路径。
17.作为优选,所述对照逻辑内配置有多个关键对照组,基于所述多个关键对照组对所述增量反编译结果和所述基础反编译结果进行对比处理;
18.所述多个关键对照组包括如下内容:
19.在测试的代码类不能比已发布的代码类少,不能出现在测试代码出现丢失特性的场景;
20.对有变化的代码类进行统计和图表展示,针对变化量的多少进行排名,对于变化量满足阈值的代码类的进行预警;
21.对于有变化的代码类,将变化部分对应的对比结果进行打包,并且将打包得到的压缩包发送给相关测试,进行归档以及其他验证;
22.增加代码安全以及性能审查的处理,对有变化的代码类进行核心安全和性能审计,避免出现严重的性能衰退和安全问题;
23.对对比处理进行归集,并通过邮件发送归集结果。
24.第二方面,本发明的一种无原始代码下的白盒测试系统,用于通过如第一方面任一项所述的一种无原始代码下的白盒测试方法对提交的代码和正在生产运行的代码反编译以及对比,所述系统包括:
25.环境配置模块,所述环境配置模块用于配置一套运行稳定且无bug的运行环境作为副本,创建一个目录作为增量目录,所述增量目录能够存储预定期限内提交的产品增量包、并能够存储至指定的路径下进行备用;
26.解压查找模块,所述解压查找模块用于将提交的产品增量包解压为jar包,所述解压得的jar包作为增量jar包存储于增量目录,并从生产环境中查找与所述增量jar包相同名称的jar包,所述查找得到的jar包作为基础jar包存储于基础目录,所述基础目录为创建的目录,能够存储与所述预定期限内提交的产品增量包相关的基础jar包、并能够存储至指定的路径下进行备用;
27.解压清理模块,所述解压清理模块用于将所述增量jar包和基础jar包均解压为class文件,得到与所述增量jar包对应的增量class文件和与所述基础jar包对应的基础class文件;并用于对增量class文件和基础class文件进行对照排查,将增量class文件和基础class文件之间相同的class文件移除,得到与所述增量class文件对应的清理后增量class文件以及与所述基础class文件对应的清理后基础class文件;
28.反编译模块,所述反编译模块用于对所述清理后增量class文件和清理后基础class文件进行反编译,得到与所述清理后增量class文件对应的增量反编译结果以及与所述清理后基础class文件对应的基础反编译结果;
29.对比审计模块,所述对比审计模块内置有对照逻辑,用于基于对照逻辑对所述增量反编译结果和所述基础反编译结果进行对比处理,对有变化的反编译结果进行代码审计。
30.作为优选,所述解压清理模块用于通过md5sum算法对增量class文件和基础class文件进行对比排查,将相同md5sum的文件进行移除,得到与所述增量class文件对应的清理后增量class文件以及与所述基础class文件对应的清理后基础class文件。
31.作为优选,所述反编译模块用于对所述清理后增量class文件和清理后基础class文件进行反编译时,反编译的路径两个,一个是已发布的src路径,另外一个是未发布的src路径;
32.所述增量反编译结果和所述基础反编译结果存储于所述两个路径。
33.作为优选,所述对照逻辑内配置有多个关键对照组,基于所述多个关键对照组对所述增量反编译结果和所述基础反编译结果进行对比处理;
34.所述多个关键对照组包括如下内容:
35.在测试的代码类不能比已发布的代码类少,不能出现在测试代码出现丢失特性的场景;
36.对有变化的代码类进行统计和图表展示,针对变化量的多少进行排名,对于变化量满足阈值的代码类的进行预警;
37.对于有变化的代码类,将变化部分对应的对比结果进行打包,并且将打包得到的压缩包发送给相关测试,进行归档以及其他验证;
38.增加代码安全以及性能审查的处理,对有变化的代码类进行核心安全和性能审计,避免出现严重的性能衰退和安全问题;
39.对对比处理进行归集,并通过邮件发送归集结果。
40.本发明的无原始代码下的白盒测试方法及系统具有以下优点:
41.1、本技术仅需要对照有变化的.class文件,避免全面反编译增加反编译和对比的能耗与时间,提高了效率,提高了测试针对性,通过内置的对照逻辑对所述增量反编译结果和所述基础反编译结果进行对比处理,能够对有变化的反编译结果进行代码审计,深入发掘产品的质量问题;
42.2、该方法可以挂接其他产品,加强了代码质量,提高了产品开发测试效率。
附图说明
43.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.下面结合附图对本发明进一步说明。
45.图1为实施例1无原始代码下的白盒测试方法的流程框图。
具体实施方式
46.下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
47.本发明实施例提供无原始代码下的白盒测试方法及系统,用于解决如何提高白盒测试效率,在没有原始代码和代码库权限的情况下对提交的代码和正在运行的代码进行细粒度类基本的反翻译以及对比的技术问题。
48.实施例1:
49.本发明一种无原始代码下的白盒测试方法,包括如下步骤:
50.s100、配置一套运行稳定且无bug的运行环境作为副本,创建一个目录作为增量目录,所述增量目录能够存储预定期限内提交的产品增量包、并能够存储至指定的路径下进行备用;
51.s200、将提交的产品增量包解压为jar包,所述解压得的jar包作为增量jar包存储于增量目录,并从生产环境中查找与所述增量jar包相同名称的jar包,所述查找得到的jar包作为基础jar包存储于基础目录,所述基础目录为创建的目录,能够存储与所述预定期限内提交的产品增量包相关的基础jar包、并能够存储至指定的路径下进行备用;
52.s300、将所述增量jar包和基础jar包均解压为class文件,得到与所述增量jar包对应的增量class文件和与所述基础jar包对应的基础class文件;
53.对增量class文件和基础class文件进行对照排查,将增量class文件和基础class文件之间相同的class文件移除,得到与所述增量class文件对应的清理后增量class文件以及与所述基础class文件对应的清理后基础class文件;
54.s400、对所述清理后增量class文件和清理后基础class文件进行反编译,得到与所述清理后增量class文件对应的增量反编译结果以及与所述清理后基础class文件对应的基础反编译结果;
55.s500、基于预设的对照逻辑,对所述增量反编译结果和所述基础反编译结果进行对比处理,对有变化的反编译结果进行代码审计。
56.本实施例步骤s100准备一套环境,该环境上面有一套稳定运行并且基本上bug较少的环境,作为对比的副本。并且创建一个目录作为增量目录,该增量目录可以获取最近一天交付的产品增量,并且可以存到具体的路径进行备用。
57.步骤s200对当天提交的产品增量进行解压缩,将开发提交的产品增量包解压成.jar包,该jar包作为增量jar包,增量jar包作为本次提交的增产品量内容,然后根据增量jar包在生产环境中查找获取相同名称的jar包作为基础jar包,该基础jar包作为本次对比的基础内容。该基础jar包存储与基础目录,该基础目录与增量目录对应的目录,能够存储一天内提交的产品增量包相关的基础jar包、并能够存储至指定的路径下进行备用。
58.步骤s300对步骤s200得到的两个jar包同时进行jar包的解压缩操作,都解压缩成为.class文件。解压缩操作是一个文件处理,几乎不使用太多的计算资源,解压缩出来之后通过md5sum的算法进行排除,将两个目录下相同md5sum的文件进行移除。本方案最大的有点在于此处的处理可以减少需要反编译的.class文件的数量,提高效率降低能耗。
59.步骤s400对清理后增量class文件和清理后基础class文件同时进行反编译,分别
得到对应的反编译结果,分别为与清理后增量class文件对应的增量反编译结果以及与清理后基础class文件对应的基础反编译结果,上述反编译的路径共两个,一个为已发布的src路径,另外一个为未发布的src路径,得到的增量反编译结果和基础反编译结果均存储于上述两个路径。
60.步骤s500通过预设的对照逻辑对反编译的结果进行对比处理,对照逻辑内配置有多个关键对照组,基于该多个关键对照组对增量反编译结果和基础反编译结果进行对比处理。作为具体实施,该多个关键对照组包括如下内容:
61.在测试的代码类不能比已发布的代码类少,不能出现在测试代码出现丢失特性的场景,本实施中重对比此类问题,并且作为一级问题进行反馈,需要开发书面提供解释才可放行;
62.对有变化的代码类进行统计和图表展示,针对变化量的多少进行排名,对于变化量满足阈值的代码类的进行预警;
63.对于有变化的代码类,将变化部分对应的对比结果进行打包,并且将打包得到的压缩包发送给相关测试,进行归档以及其他验证;
64.增加代码安全以及性能审查的处理,对有变化的代码类进行核心安全和性能审计,避免出现严重的性能衰退和安全问题;
65.对对比处理进行归集,并通过邮件发送归集结果,该实施定期进行增量变化差异分析,识别代码问题较多的组或者是开发人员加强代码审计,并通过邮件发送归集结果。
66.本实施例的方法仅需要对照有变化的.class文件,避免全面反编译增加反编译和对比的能耗与时间,提高效率.提高测试针对性;通过多套关键对照组对有变化的反编译结果进行代码审计,深入发掘产品的质量问题;该方法可以挂接其他产品,加强代码质量提高产品开发测试效率。
67.实施例2:
68.本发明一种无原始代码下的白盒测试系统,包括环境配置模块、解压查找模块、解压清理模块、反编译模块以及对比审计模块,该系统可通过实施例1公开的方法对提交的代码和正在生产运行的代码反编译以及对比。
69.环境配置模块用于配置一套运行稳定且无bug的运行环境作为副本,创建一个目录作为增量目录,所述增量目录能够存储预定期限内提交的产品增量包、并能够存储至指定的路径下进行备用。
70.作为具体实施,环境配置模块用于准备一套环境,该环境上面有一套稳定运行并且基本上bug较少的环境,作为对比的副本。并用于且创建一个目录作为增量目录,该增量目录可以获取最近一天交付的产品增量,并且可以存到具体的路径进行备用。
71.解压查找模块用于将提交的产品增量包解压为jar包,所述解压得的jar包作为增量jar包存储于增量目录,并从生产环境中查找与所述增量jar包相同名称的jar包,所述查找得到的jar包作为基础jar包存储于基础目录,所述基础目录为创建的目录,能够存储与所述预定期限内提交的产品增量包相关的基础jar包、并能够存储至指定的路径下进行备用。
72.作为具体实施,解压查找模块用于对当天提交的产品增量进行解压缩,将开发提交的产品增量包解压成.jar包,该jar包作为增量jar包,增量jar包作为本次提交的增产品
量内容,然后根据增量jar包在生产环境中查找获取相同名称的jar包作为基础jar包,该基础jar包作为本次对比的基础内容。该基础jar包存储与基础目录,该基础目录与增量目录对应的目录,能够存储一天内提交的产品增量包相关的基础jar包、并能够存储至指定的路径下进行备用。
73.解压清理模块用于将所述增量jar包和基础jar包均解压为class文件,得到与所述增量jar包对应的增量class文件和与所述基础jar包对应的基础class文件;并用于对增量class文件和基础class文件进行对照排查,将增量class文件和基础class文件之间相同的class文件移除,得到与所述增量class文件对应的清理后增量class文件以及与所述基础class文件对应的清理后基础class文件。
74.作为具体实施,解压清理模块用于对通过解压清理模块得到的两个jar包同时进行jar包的解压缩操作,都解压缩成为.class文件。解压缩操作是一个文件处理,几乎不使用太多的计算资源,解压缩出来之后通过md5sum的算法进行排除,解压清理模块用于将两个目录下相同md5sum的文件进行移除。本方案最大的有点在于此处的处理可以减少需要反编译的.class文件的数量,提高效率降低能耗。
75.反编译模块用于对所述清理后增量class文件和清理后基础class文件进行反编译,得到与所述清理后增量class文件对应的增量反编译结果以及与所述清理后基础class文件对应的基础反编译结果。
76.作为具体实施,反编译模块用于对清理后增量class文件和清理后基础class文件同时进行反编译,分别得到对应的反编译结果,分别为与清理后增量class文件对应的增量反编译结果以及与清理后基础class文件对应的基础反编译结果,上述反编译的路径共两个,一个为已发布的src路径,另外一个为未发布的src路径,得到的增量反编译结果和基础反编译结果均存储于上述两个路径。
77.对比审计模块内置有对照逻辑,用于基于对照逻辑对所述增量反编译结果和所述基础反编译结果进行对比处理,对有变化的反编译结果进行代码审计。
78.对照逻辑内配置有多个关键对照组,基于该多个关键对照组对增量反编译结果和基础反编译结果进行对比处理。作为具体实施,该多个关键对照组包括如下内容:
79.在测试的代码类不能比已发布的代码类少,不能出现在测试代码出现丢失特性的场景,本实施中重对比此类问题,并且作为一级问题进行反馈,需要开发书面提供解释才可放行;
80.对有变化的代码类进行统计和图表展示,针对变化量的多少进行排名,对于变化量满足阈值的代码类的进行预警;
81.对于有变化的代码类,将变化部分对应的对比结果进行打包,并且将打包得到的压缩包发送给相关测试,进行归档以及其他验证;
82.增加代码安全以及性能审查的处理,对有变化的代码类进行核心安全和性能审计,避免出现严重的性能衰退和安全问题;
83.对对比处理进行归集,并通过邮件发送归集结果,该实施定期进行增量变化差异分析,识别代码问题较多的组或者是开发人员加强代码审计,并通过邮件发送归集结果。
84.上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同
实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1