预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN109271322A(43)申请公布日2019.01.25(21)申请号201811115049.6(22)申请日2018.09.25(71)申请人杭州群核信息技术有限公司地址310000浙江省杭州市江干区丁兰街道长睦路406-10号(72)发明人郭文邦秦宙恺陆蓉蓉(74)专利代理机构杭州天勤知识产权代理有限公司33224代理人曹兆霞(51)Int.Cl.G06F11/36(2006.01)权利要求书2页说明书5页附图1页(54)发明名称一种软件测试范围确定方法、软件测试方法和装置(57)摘要本发明公开了一种软件测试范围确定方法,包括:根据改动代码的覆盖状态确定未覆盖的改动代码;基于源代码库,按照指定格式构建代码中调用关系;根据所述调用关系确定所述未覆盖的改动代码的调用链,将所述调用链作为软件测试范围。还提供了一种软件测试方法和装置,对上述软件测试范围确定方法确定的软件测试范围进行软件测试。该软件测试方法和装置能够精确地确定软件测试范围,减少了盲目覆盖或者过度覆盖带来的人力和资源浪费,进而提高了测试精度和测试效率。CN109271322ACN109271322A权利要求书1/2页1.一种软件测试范围确定方法,其特征在于,包括:根据改动代码的测试覆盖状态确定未覆盖的改动代码;基于源代码库,通过分析代码常量池,构建代码中调用关系;根据所述调用关系确定所述未覆盖的改动代码的调用链,将所述调用链作为软件测试范围分析依据。2.如权利要求1所述的软件测试范围确定方法,其特征在于,所述改动代码的覆盖状态获取方法包括:以固定周期解析代码仓库,经比较获得该固定周期内改动代码文件;解析所述改动代码文件获得改动代码;根据所述改动代码文件和测试的覆盖状态生成增量代码覆盖率文件;结合所述增量代码覆盖率文件确定改动代码的覆盖状态。3.如权利要求1或2所述的软件测试范围确定方法,其特征在于,所述根据代码仓库的改动代码的覆盖状态确定未覆盖的改动代码包括:从所述改动代码的覆盖状态中提取未覆盖的改动代码;或,从所述改动代码的覆盖状态中剔除覆盖的改动代码,剩下的为未覆盖的改动代码。4.如权利要求1所述的软件测试范围确定方法,其特征在于,所述基于源代码库,通过分析代码常量池,构建代码中调用关系包括:解析源代码库,获得源代码库中的函数信息和类信息;以所述函数信息和类信息的常量池为数据源,按照指定格式构建代码中调用关系。5.如权利要求1所述的软件测试范围确定方法,其特征在于,当源代码库为jar/war包文件时,采用BCEL方法解析所述jar/war包文件,获得所有class文件;根据所有class文件中的常量池存储结构抽取相应的函数信息和类信息,形成调用关系。6.如权利要求1或4或5所述的软件测试范围确定方法,其特征在于,所述调用关系的格式为:函数调用关系的格式为:函数调用的标识-起始函数的类完全限定名-起始函数-起始函数的参数-函数调用的类型标识-被调用函数的名称-被调用函数的类的完全限定名-被调用函数的参数-起始函数的注解-起始函数的代码行号;类调用关系的格式为:类调用的标识-起始类-被调用类。7.如权利要求6所述的软件测试范围确定方法,其特征在于,在获得函数调用关系后,对所述函数调用关系进行去重和过滤处理,以去掉重复和不可能被修改的函数对应的函数调用关系。8.如权利要求1或7所述的软件测试范围确定方法,其特征在于,所述根据所述函数调用关系确定所述未覆盖的改动代码的调用链包括:在所有函数调用关系中,根据未覆盖的改动代码行号进行搜索,找到该改动代码行号所在的函数调用关系;并根据找到的函数调用关系确定起始函数,以该起始函数的接口名称和路径作为软件测试范围。2CN109271322A权利要求书2/2页9.一种软件测试方法,其特征在于,包括:根据权利要求1~8任一项权利要求所述的软件测试范围确定方法确定软件测试范围;对确定的软件测试范围进行软件测试。10.一种软件测试装置,包括:一个或多个处理器,存储器以及存储在所述存储器中并可在所述一个或多个处理器上执行的一个或多个计算机程序,其特征在于,所述一个或多个处理器在执行所述一个或多个计算机程序时,实现如权利要求9所述软件测试方法的步骤。3CN109271322A说明书1/5页一种软件测试范围确定方法、软件测试方法和装置技术领域[0001]本发明属于互联网软件测试领域,具体涉及一种软件测试范围确定方法、应用该软件测试范围确定方法的软件测试方法和装置。背景技术[0002]常量池在java用于保存在编译期已确定的,已编译的class文件中的一份数据。它包括了关于类,方法,接口等中的常量,也包括字符串常量,当然也可扩充,执行器产生的常量也会放入常量池,常量池