本发明涉及计算机,尤其涉及一种测试用例筛选的方法和装置。
背景技术:
1、目前,对后台服务进行功能测试时,测试人员采用黑盒测试的方式进行功能测试,测试用例的有效性难以评估;并且,当后台服务的代码发生变更之后,需要人工对测试用例进行筛选,测试用例的有效性难以保证,且筛选效率较低。
技术实现思路
1、有鉴于此,本发明实施例提供一种测试用例筛选的方法和装置,能够精准地筛选出用于测试的有效的测试用例,从而提升测试效率和精准度。
2、为实现上述目的,根据本发明实施例的一个方面,提供了一种测试用例筛选的方法,包括:
3、获取当前分支代码和基准分支代码之间存在调用链差异的接口和所述接口对应的静态调用链数据;
4、对所述当前分支代码进行动态分析,确定各个候选测试用例对所述接口的覆盖率数据;
5、根据所述覆盖率数据和所述静态调用链数据确定所述接口与每个所述候选测试用例之间的关联度,以根据所述关联度从所述各个候选测试用例中筛选用于测试所述接口的测试用例。
6、可选地,获取当前分支代码和基准分支代码之间存在调用链差异的接口和所述接口对应的静态调用链数据,包括:
7、生成所述当前分支代码的当前分支语法树、以及所述基准分支代码的基准分支语法树;
8、对所述当前分支语法树和所述基准分支语法树进行差异分析,确定变更信息;
9、根据所述变更信息确定所述变更的函数方法;
10、根据所述变更的函数方法确定存在调用链差异的接口和所述接口对应的静态调用链数据。
11、可选地,生成所述当前分支代码的当前分支语法树,包括:
12、从所述当前分支代码中获取类文件列表;
13、对每个所述类文件进行解析,获得类名和方法名;
14、根据各个类文件的类名和方法名生成所述当前分支语法树。
15、可选地,生成所述当前分支代码的当前分支语法树,还包括:
16、从所述当前分支代码中获取配置文件;
17、从所述配置文本中解析出具有依赖关系的外部接口;
18、根据所述具有依赖关系的外部接口生成所述当前分支语法树。
19、可选地,对所述当前分支代码进行动态分析之后,还包括:
20、获取与所述接口对应的动态调用链数据;
21、根据所述动态调用链数据对所述静态调用链数据进行更新。
22、可选地,根据所述覆盖率数据和所述静态调用链数据确定所述接口与每个所述候选测试用例之间的关联度,包括:
23、获取所述静态调用链数据中覆盖的函数方法;
24、根据所述覆盖率数据获取所述候选测试用例执行的函数方法;
25、根据所述候选测试用例执行的函数方法和所述静态调用链数据中覆盖的函数方法确定所述关联度。
26、可选地,根据所述关联度从所述各个候选测试用例中筛选用于测试所述接口的测试用例,包括:
27、从所述各个候选测试用例中筛选关联度大于预设阈值的候选测试用例,作为用于测试所述接口的测试用例。
28、根据本发明实施例的再一个方面,提供了一种测试用例筛选的装置,包括:
29、获取模块,获取当前分支代码和基准分支代码之间存在调用链差异的接口和所述接口对应的静态调用链数据;
30、第一确定模块,对所述当前分支代码进行动态分析,确定各个候选测试用例对所述接口的覆盖率数据;
31、第二确定模块,根据所述覆盖率数据和所述静态调用链数据确定所述接口与每个所述候选测试用例之间的关联度,以根据所述关联度从所述各个候选测试用例中筛选用于测试所述接口的测试用例。
32、根据本发明实施例的另一个方面,提供了一种电子设备,包括:
33、一个或多个处理器;
34、存储装置,用于存储一个或多个程序,
35、当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明提供的测试用例筛选的方法。
36、根据本发明实施例的还一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明提供的测试用例筛选的方法。
37、上述发明中的一个实施例具有如下优点或有益效果:通过当前分支代码和基准分支代码,获取存在调用链差异的接口和接口对应的静态调用链数据;通过对当前分支代码进行动态分析,确定各个候选测试用例对接口的覆盖率数据;然后根据覆盖率数据和静态调用链数据确定接口与每个候选测试用例之间的关联度,从而可以根据关联度从各个候选测试用例中筛选出用于测试接口的测试用例。该方法通过对不同版本的代码进行分析,获取接口的静态调用链数据和覆盖率数据,并通过静态调用链数据和覆盖率数据确定的关联度进行用于测试接口的测试用例的筛选,实现对测试用例的精准推荐,从而提升了测试效率和精准度。
38、上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
1.一种测试用例筛选的方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,获取当前分支代码和基准分支代码之间存在调用链差异的接口和所述接口对应的静态调用链数据,包括:
3.根据权利要求1所述的方法,其特征在于,生成所述当前分支代码的当前分支语法树,包括:
4.根据权利要求3所述的方法,其特征在于,生成所述当前分支代码的当前分支语法树,还包括:
5.根据权利要求1所述的方法,其特征在于,对所述当前分支代码进行动态分析之后,还包括:
6.根据权利要求1所述的方法,其特征在于,根据所述覆盖率数据和所述静态调用链数据确定所述接口与每个所述候选测试用例之间的关联度,包括:
7.根据权利要求1所述的方法,其特征在于,根据所述关联度从所述各个候选测试用例中筛选用于测试所述接口的测试用例,包括:
8.一种测试用例筛选的装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
