测试用例精准推荐方法、装置、系统、设备及存储介质制造方法及图纸

技术编号:16885824 阅读:39 留言:0更新日期:2017-12-27 03:37
本发明专利技术公开了一种测试用例精准推荐方法、装置、系统、计算设备以及存储介质。其中,基于待测试应用相比上一测试版本的代码变更信息,从测试用例集中选取与代码变更信息相关联的测试用例,得到目标测试用例集,测试用例集包括一个或多个测试用例及其代码覆盖信息,代码变更信息包括代码变更部分;根据代码覆盖信息以及代码变更信息,确定目标测试用例集中每个测试用例的推荐度,以便根据推荐度选取对代码变更部分进行测试的测试用例。由此,目标测试用例集中的测试用例均为与代码变更部分相关的测试用例,如此可以避免无效测试,而基于确定的推荐度可以进一步提高测试的精准度,并且可以避免测试的盲目性。

Test cases accurately recommend methods, devices, systems, devices, and storage media

The invention discloses a precision recommendation method, device, system, computing equipment and storage medium for a test case. Among them, the test application compared with a test version of the code change information based on information related to the selection of test cases and code changes from the test suite, target test suite, including one or more test cases and code coverage information of test suite, code change information including code change according to the code coverage; information and code change information, determine the target test case of each test case recommendation, according to the test case recommendation to select part of the code change test. Therefore, the test cases in the target test case are all test cases related to the code change part, so that the invalid test can be avoided. Based on the recommended degree, the accuracy of the test can be further improved, and the blindness of the test can be avoided.

【技术实现步骤摘要】
测试用例精准推荐方法、装置、系统、设备及存储介质
本专利技术涉及软件测试领域,特别是涉及一种测试用例推荐方法、装置、系统、计算设备以及存储介质。
技术介绍
软件测试是指在规定的条件下对应用程序进行操作,以发现程序错误,衡量应用质量,对其是否能满足设计要求进行评估的过程。测试用例(TestCase)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行得更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。因此,通过选择正确的回归测试策略来改进回归测试的效率和有效性是非常有意义的。回归测试理论上应该在代码变化后执行先前的所有测试用例,但是由于工作量巨大,目前经常采用的方式是在代码变化后选择性地执行先前的测试用例,即可以仅选择与代码变化部分相关联的测试用例,所选定的测试用例即为“回归测试用例”。针对应用程序的测试用例集往往很大,在提交针对应用程序的新的代码后,选取回归测试用例时,往往会出现以下问题:选取的回归测试用例中存在很多重复的测试用例,导致对同一段代码测试多遍,浪费了很多测试时间;测试不完全,某些测试代码并没有覆盖到。以测试为Android应用的手工测试为例,Android应用的手工测试用例集往往达到上千个。现有选取手工回归测试用例的方法,一般是结合产品需求、产品设计以及测试工程师对于业务的熟悉程度和自己的工作经验来选取手工回归测试用例。为了便于区分,测试用例一般会根据功能分成不同粒度的测试用例集,或者给测试用例标上标签,如此在选取测试用例集时,选取的粒度是用例集或者是整个标签,选取粒度比较大,很容易出现漏选或者是多选的情况。由此,在进行回归测试时,如何从测试用例集中选取合适的测试用例,以使得在满足回归测试的同时,尽量减少乃至消除重复测试或无效测试,是目前面临的主要问题。
技术实现思路
本专利技术的主要目的在于提供一种能够在实现对代码变更部分的测试的同时,减少重复测试和/或无效测试的测试用例推荐方案。根据本专利技术的一个方面,提供了一种测试用例推荐方法,包括:基于待测试应用相比上一测试版本的代码变更信息,从测试用例集中选取与代码变更信息相关联的测试用例,得到目标测试用例集,其中,测试用例集包括一个或多个测试用例及其代码覆盖信息,代码变更信息包括代码变更部分;根据代码覆盖信息以及代码变更信息,确定目标测试用例集中每个测试用例的推荐度,以便根据推荐度选取对代码变更部分进行测试的测试用例。由此,得到的目标测试用例集中的测试用例均为与代码变更部分相关的测试用例,如此可以避免无效测试;所确定的推荐度可以作为进一步从目标测试用例集中选取针对回归测试的测试用例的参考因素,也可以作为执行目标测试用例集中的测试用例的优先级参考,如此可以进一步提高测试的精准度,并且可以避免测试的盲目性。优选地,确定目标测试用例集中每个测试用例的推荐度的步骤可以包括:根据测试用例对代码变更部分的贡献度和/或专一度,确定目标测试用例集中每个测试用例的推荐度,其中贡献度与测试用例所关联的变更代码占代码变更部分的变更比例正相关,专一度与测试用例所关联的变更代码占其所覆盖的代码的覆盖比例正相关。由此,贡献度可以反映测试用例对回归测试的有用程度,专一度则可以反映测试用例被执行时的有效测试的占比,根据贡献度和/或专一度确定的推荐度可以准确地衡量测试用例对于回归测试的测试质量。优选地,代码变更信息还可以包括代码变更部分中变更代码的变更频率,确定目标测试用例集中每个测试用例的推荐度的步骤还可以包括:根据测试用例所关联的变更代码的变更频率,确定目标测试用例集中每个测试用例的推荐度。由此,在确定测试用例的推荐度时,还可以参考测试用例所关联的变更代码的变更频率,变更频率高的变更代码为需要重点测试的部分。优选地,可以使用如下计算公式计算测试用例的推荐度r,r=c×a×f,其中,c为测试用例所关联的变更代码占代码变更部分的变更比例,a为测试用例所关联的变更代码占其所覆盖的代码的覆盖比例,f为所述测试用例所关联的变更代码的变更频率。该计算公式仅为本专利技术的一个示例性说明,还可以通过其它多种变形公式计算推荐度。优选地,代码变更部分可以包括一个或多个代码变更单元,代码覆盖信息可以包括一个或多个代码覆盖单元,从测试用例集中选取与所述代码变更信息相关联的测试用例的步骤可以包括:从测试用例集中选取代码覆盖信息中具有与代码变更单元相对应的代码覆盖单元的测试用例。由此,选取粒度更加精细,在避免漏选的同时,还可以清楚地获知所选取的测试用例与代码变更部分之间的关联关系。优选地,对于与两个或两个以上的代码变更单元相关联的测试用例,可以分别确定该测试用例在每个代码变更单元下的子推荐度,测试用例在与其相关的所有代码变更单元下的子推荐度贡之和即为该测试用例的推荐度。由此,可以清楚地了解每个代码变更单元下的测试用例的子推荐度以及每个测试用例的总的推荐度。优选地,该应用测试方还可以包括:在测试客户端上执行对代码变更部分进行测试的测试用例过程中,获取待测试应用的代码执行信息;根据代码执行信息,重新确定测试用例的代码覆盖信息,并将重新确定的代码覆盖信息与测试用例关联地保存在测试用集中。由此,本专利技术的应用测试方法可以实现为一种闭环推荐策略,整个流程是一个不断反馈、优化推荐的过程。根据本专利技术的另一个方面,还提供了一种测试用例推荐装置,包括:测试用例选取模块,用于基于待测试应用相比上一测试版本的代码变更信息,从测试用例集中选取与代码变更信息相关联的测试用例,得到目标测试用例集,其中,测试用例集包括一个或多个测试用例及其代码覆盖信息,代码变更信息包括代码变更部分;推荐度确定模块,用于根据代码覆盖信息以及代码变更信息,确定目标测试用例集中每个测试用例的推荐度,以便根据推荐度选取对代码变更部分进行测试的测试用例。优选地,推荐度确定模块可以根据测试用例对代码变更部分的贡献度和/或专一度,确定目标测试用例集中每个测试用例的推荐度,其中,贡献度与测试用例所关联的变更代码占代码变更部分的变更比例正相关,专一度与测试用例所关联的变更代码占其所覆盖的代码的覆盖比例正相关。优选地,代码变更信息还包括代码变更部分中的变更代码的变更频率,推荐度确定模块还根据测试用例所关联的变更代码的变更频率,确定目标测试用例集中每个测试用例的推荐度。优选地,推荐度确定模块可以使用如下计算公式计算测试用例的推荐度贡献分值r,r=c×a×f,其中,c为测试用例所关联的变更代码占代码变更部分的变更比例,a为测试用例所关联的变更代码占其所覆盖的代码的覆盖比例,f为测试用例所关联的变更代码的变更频率。优选地,代码变更部分包括一个或多个代码变更单元,代码覆盖信息包括一个或多个代码覆盖单元,测试用例选取模块从测试用例集中选取代码覆盖信息中具有与代码变更单元相对应的代码覆盖单元的测试用例作为目标测试用例集。优选地,对于与两个或两个以上的代本文档来自技高网
...
测试用例精准推荐方法、装置、系统、设备及存储介质

【技术保护点】
一种测试用例推荐方法,包括:基于待测试应用相比上一测试版本的代码变更信息,从测试用例集中选取与所述代码变更信息相关联的测试用例,得到目标测试用例集,其中,所述测试用例集包括一个或多个测试用例及其代码覆盖信息,所述代码变更信息包括代码变更部分;根据所述代码覆盖信息以及所述代码变更信息,确定所述目标测试用例集中每个测试用例的推荐度,以便根据推荐度选取对所述代码变更部分进行测试的测试用例。

【技术特征摘要】
1.一种测试用例推荐方法,包括:基于待测试应用相比上一测试版本的代码变更信息,从测试用例集中选取与所述代码变更信息相关联的测试用例,得到目标测试用例集,其中,所述测试用例集包括一个或多个测试用例及其代码覆盖信息,所述代码变更信息包括代码变更部分;根据所述代码覆盖信息以及所述代码变更信息,确定所述目标测试用例集中每个测试用例的推荐度,以便根据推荐度选取对所述代码变更部分进行测试的测试用例。2.根据权利要求1所述的测试用例推荐方法,其中,所述确定目标测试用例集中每个测试用例的推荐度的步骤包括:根据所述测试用例对所述代码变更部分的贡献度和/或专一度,确定目标测试用例集中每个测试用例的推荐度,其中,所述贡献度与所述测试用例所关联的变更代码占所述代码变更部分的变更比例正相关,所述专一度与所述测试用例所关联的变更代码占其所覆盖的代码的覆盖比例正相关。3.根据权利要求2所述的测试用例推荐方法,其中,所述代码变更信息还包括所述代码变更部分中变更代码的变更频率,所述确定目标测试用例集中每个测试用例的推荐度的步骤还包括:根据所述测试用例所关联的变更代码的变更频率,确定目标测试用例集中每个测试用例的推荐度。4.根据权利要求3所述的测试用例推荐方法,其中,使用如下计算公式计算所述测试用例的推荐度r,r=c×a×f,其中,c为所述测试用例所关联的变更代码占所述代码变更部分的变更比例,a为所述测试用例所关联的变更代码占其所覆盖的代码的覆盖比例,f为所述测试用例所关联的变更代码的变更频率。5.根据权利要求1所述的测试用例推荐方法,其中,所述代码变更部分包括一个或多个代码变更单元,所述代码覆盖信息包括一个或多个代码覆盖单元,所述从测试用例集中选取与所述代码变更信息相关联的测试用例的步骤包括:从所述测试用例集中选取代码覆盖信息中具有与所述代码变更单元相对应的代码覆盖单元的测试用例。6.根据权利要求5所述的测试用例推荐方法,其中,对于所述目标测试用例集中与两个或两个以上的代码变更单元相关联的测试用例,分别确定所述测试用例在每个代码变更单元下的子推荐度,所述测试用例在与其相关的所有代码变更单元下的子推荐度之和即为该测试用例的推荐度。7.根据权利要求1至6中任何一项所述的测试用例推荐方法,还包括:在测试客户端上执行对所述代码变更部分进行测试的测试用例过程中,获取所述待测试应用的代码执行信息;根据所述代码执行信息,重新确定所述测试用例的代码覆盖信息,并将重新确定的代码覆盖信息与所述测试用例关联地保存在所述测试用集中。8.一种测试用例推荐装置,包括:测试用例选取模块,用于基于待测试应用相比上一测试版本的代码变更信息,从测试用例集中选取与所述代码变更信息相关联的测试用例,得到目标测试用例集,其中,所述测试用例集包括一个或多个测试用例及其代码覆盖信息,所述代码变更信息包括代码变更部分;推荐度确定模块,用于根据所述代码覆盖信息以及所述代码变更信息,确定所述目标测试用例集中每个测试用例的推荐度,以便根据推荐度选取对所述代码变更部分进行测试的测试用例。9.根据权利要求8所述的测试用例推荐装置,其中,所述推荐度确定模块根据所述测试用例对所述代码变更部分的贡献度和/或专一度,确定目标测试用例集中每个测试用例的推荐度,其中,所述贡献度与所述测试用例所关联的变更代码占所述代码变更部分的变更比例正相关,所述专一度与所述测试用例所关联的变更代码占其所覆盖的代码的覆盖比例正相关。10.根据权利要求9所述的测试用例推荐装置,其中,所述代码变更信息还包括所述代码变更部分中的变更代码的变更频率,所述推荐度确定模块还根据所述测试用例所关联的变更代码的变更频率,确定目标测试用例集中每个测试用例的推荐度。11.根据权利要求10所述的测试用例推荐装置,其中,所述推荐度确定模块使用如下计算公式计算所述测试用例的推荐度贡献分值r,r=c×a×f,其中,c为所述测试用例所关联的变更代码占所述代码变更部分的变更比例,a为所述测试用例所关联的变更代码占其所覆盖的代码的覆盖比...

【专利技术属性】
技术研发人员:刘泽文
申请(专利权)人:广州阿里巴巴文学信息技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1