基于反馈结果的测试用例选择策略

时间:2022-10-07 07:55:28

基于反馈结果的测试用例选择策略

摘要:测试用例的质量决定了软件测试的成本和有效性。本文提出了一种基于反馈结果的测试用例选择策略,该策略类似于测试用例集约简,能以较小的代价选择出查错能力较强的测试用例。执行每组测试用例,得到每组的查错率作为结果,而后依据该结果产生一个反馈结果集来对测试用例进行重新分组,直到当其中有分组的查错率达到设定的比例。

Abstract: The quality of the test case decides the cost and efficiency of software testing. This paper proposes a test case selection strategy based on retroaction results. This strategy is similar to the test suite reduction. It can choose the test cases with high error-checking ability by the smaller expense. Executing test cases in each group and taking the error-checking rate of each group as the result. Then, according to the result, the result retroaction set is gotten to regroup the test cases, until the error-checking rate in the group set the proportion.

关键词:反馈结果;测试用例选择;测试用例集约简;查错率;反馈集

Key words: retroaction result;test case selection;test suite reduction;error-checking rate;retroaction set

中图分类号:TP311.5 文献标识码:A 文章编号:1006-4311(2015)30-0203-02

0 引言

测试用例是对软件运行过程中所有可能存在的目标、运动、行动、环境和结果的描述[1]。由于运行和维护这些测试用例以及回归测试将耗费大量的时间、人力和物力,因此人们一直在研究如何选择出一组有效、数量少且能充分满足所有测试需求的测试用例集,从而在保证和提高软件测试质量的同时,降低软件测试的成本[2]。根据不同的选择目标,测试用例选择[3]分为3类:回归测试选择、测试用例集约简和测试用例优先排序[4]。

本文提出的策略是基于反馈结果来选择的,该策略类似于测试用例集约简。第2节介绍现有的测试用例集约简方法,第3节介绍基于反馈结果的测试用例选择策略具体步骤,第4节介绍实验以及结果来说明策略的正确性,第5节对全文进行总结。

1 相关研究

测试用例集约简是软件测试中的关键问题之一,其目的是使用尽可能少的测试用例充分满足给定的测试目标。该技术通常可以有效减小待处理的测试需求数量,在多项式时间内获得规模更小的测试用例集[5]同时达到测试需求覆盖[6]。研究者提出多种约简技术,这些技术包括启发式贪婪搜索、元启发概率优化、BIP技术[6]、面向有效错误定位选择[7]以及基于遗传蚁群算法[8]等方法。启发式贪婪搜索技术一次选择一个(或多个)局部最佳的测试用例,排除已经覆盖的测试需求,循环直至所有需求都被覆盖,这类算法中典型的有Harrold等人提出的HGS算法[9]以及Chen等人提出的GRE算法[10];元启发概率优化技术从一个初始的代表用例集出发,应用全局概率优化算法推算最优的代表用例集;BIP技术将用例集约简目标形式化描述为一个成本函数[5];面向有效错误定位确定“失效覆盖向量相似度优先排序”准则,和“失效覆盖等价划分优化选择”准则,建立测试用例优选模型[7];基于遗传蚁群算法是遗传算法和蚁群算法两种算法的结合,快速得到约简测试用例集近似最优解[8]。

上述方法虽然对于约减测试用例集有显著的效果,但是算法效果取决于最初产生的备选用例集。而本文的策略则是基于测试的反馈结果集来对测试用例进行选择,因此较于其他策略而言对于最初的备选用例集依赖性并不大。

2 基于反馈结果的测试用例选择策略

查错率定义为检测出的错误与全部错误的百分比。一般情况下,当一组测试用例发现的缺陷越多,则该组测试用例的查错率越高,因此本文策略将查错率作为标准来产生反馈结果集对测试用例进行选择。

将每次选择查错率最高的分组与上一次选择查错率最高的分组的测试用例取交集,将这些交集放入一个集合中,则查错能力强的测试用例在该集合中的可能性较大,从该集合中选取测试用例,则有可能取到查错能力较强的测试用例。随着选择的不断进行,查错率也在不断提高,因而每次添加进交集集合的测试用例有较大的可能具有较强的查错能力,将该交集作为一个反馈结果集,策略步骤为:①第一次选择采用随机分组的方式,按照组数将所有测试用例进行平均分组;②运行测试用例,得出每个分组测试用例的查错率,如果有分组的查错率大于设定的查错率,则循环终止,将该组测试用例作为最终结果;③判断选择执行次数,如果是第一次执行,则转向步骤④,否则转向步骤⑤;④从上一次选择中查错率最高的分组选取一半测试用例放入第一个分组,第一个分组剩余测试用例从上一次选择中查错率次高的分组进行选取,转向步骤⑦;⑤将该次选择中查错率最高的分组与上一次选择查错率最高的分组的交集放入反馈结果集中;⑥从反馈结果集中选取一半测试用例放入第一个分组,剩余的测试用例则再从上一次选择中查错率最高的分组剩余部分选取;⑦其余分组的测试用例皆是从剩余的测试用例中随机选取,转向步骤②。

3 实验以及结果

为了对本文的方法进行验证,选择了由欧洲航天局研发的Space作为实验程序。Space中被植入了38个独立的缺陷,相对应的生成了13466个测试用例,每个测试用例都是数组定义语言的文件,未植入缺陷的Space版本作为本实验的参照体,即一个测试用例同时导入到植入和未植入缺陷的Space版本中,如果测试得到的输出结果不一样,就认为发现了一个缺陷[11]。

为了降低测试代价我们选取100个测试用例,平均分为4组,分别采用随机测试和本文的策略来进行实验。

实验结果对比如下:

由图1可以看出本文策略能够明显提高测试用例分组的查错率,且以较小的代价选择出查错能力最强的分组。

4 小结

测试用例的数量和质量往往决定了软件测试的成本和有效性,如何选择出一组高质量的测试用例是一个重要问题。本文提出的基于反馈结果的测试用例选择策略,能够以较小的开销选择出查错能力较强的一组测试用例,该组测试用例能够以较小的代价尽可能多的发现软件的缺陷,使得软件测试的效率大幅度提高。

本文的策略也存在不足之处,如实验的终止条件是查错率达到设定的比例,这个比例有待于继续探究;策略中提到的从查错率最高的分组交集集合中选取部分测试用例,而具体用什么样的方式选取以及选择数量是多少才能使得实验效果达到最好,这个问题也是需要继续深入研究的。下一步工作包括确定最优的终止条件和测试用例的选取方式和选择数量,使得实验结果得到优化。

参考文献:

[1]尚冬娟,郝克刚,葛玮,等.软件测试中的测试用例及复用研究[J].计算机技术与发展,ISTIC,2006,16(1).

[2]聂长海,徐宝文.一种最小测试用例集生成方法[J].计算机学报,2003,26(12):1690-1695.

[3]张智轶,陈振字,徐宝文,杨瑞濑.测试用例演化研究进展[J].软件学报,2013,24(4):663-674.

[4]陈翔,陈继红,鞠小林,顾庆.回归测试中的测试用例优先排序技术述评[J].软件学报,2013,24(8):1695-1712.

[5]ZHANGXiaofang,CHEN Lin,XU Baowen.Survey of test suite reduction problem[J]. Journal of Frontiers of ComputerScience and Technology,2008,2(3):235-247.

[6]顾庆,唐宝,陈道蓄.一种面向测试需求部分覆盖的测试用例集约简技术[J].计算机学报,2011,34(5):880-887.

[7]王克朝,王甜甜,苏小红,马培军,童志祥.面向有效错误定位的测试用例优选方法[J].计算机研究与发展,2014,51(5):865-873.

[8]华丽,王成勇,谷琼,程虹.基于遗传蚁群算法的测试用例集约减[J].工程数学学报,2012,29(4):486-492.

[9]Harrold M J,Gupta R,Soffa M L.A methodology for controlling the size of a test suite[J]. ACM Transaction on Software Engineering and M Methodology, 1993,2(3) 270-285.

[10]Chen T Y,Law M F.A new heuristic for test suite reduction[J]. Information and Software Technology.1998,40(5-6):347-354.

[11]Kai-Yuan Cai*,Bo Gu,Hai Hu,Yong-Chao Li.Adaptive software testing with fixed-memory feedback[J].The Journal of Systems and Software, 2007(80):1328-1348.

上一篇:多视角看日本帝国衰亡 下一篇:武汉市居民参与体育锻炼的现状分析及对策研究