论文部分内容阅读
摘要:介绍了软件回归测试的概念,探讨了一个回归测试用例集优化系统的设计,减少回归测试用例个数,提高了回归测试效益。
关键词:回归测试;测试用例;测试用例集;简约
中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)23-5635-02
A Brief Study on Test Suite Optimize System for Software Regression Testing
HUANG Hua-lin
(Guangdong Women’s Professional Technical College, Guangzhou 511450, China)
Abstract: The definition of software regression testing is presented in this paper.It presents a test tuite optimize system for software regression testing, which reduces the number of regression test cases to improve the effectiveness of regression testing.
Key words: regression test; test case; test suite; reduction
软件测试是保证软件质量和可靠性的重要手段,软件测试的目的是为了发现软件中的缺陷,为客户提供更高的质量保证。软件测试是软件开发过程的重要组成部分,是用来确认一个软件的品质或性能是否符合开发之前所提出的一些要求,并大幅降低开发成本。
回归测试在整个软件测试工作中占有很大比重,软件开发的各个阶段都会进行多次回归测试。回归测试是软件测试的一个重要的环节,以保证不断修改的软件的质量。理论上,软件产生新版本,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再次出现。回归测试的一个主要问题是由于不断生成新的测试用例来测试程序的新功能或修改过的功能,这样累积下来的测试用例数量巨大,会严重影响测试的成本和效率。显然,测试用例的数量越少,程序测试耗时更短,从而提高了软件测试的效益。进行回归测试的一个有效方法是找到一个满足测试要求的最小测试用例子集,而在测试用例生成时或创建测试用例集后,是可以找到一个合适的子集的。
1 软件系统的设计
该软件系统包含以下模块
1)度量的计算与选择;
2)测试用例的聚类;
3)选择测试用例。
1.1 度量的计算与选择包含以下模块
1)词法分析器;
2)优先级调度;
3)测试用例优化。
1.1.1 词法分析器
该模块将指定文件夹作为输入,并对输入进行分析,输入文件夹中的类文件就是分析对象。
1.1.2 优先级调度
这个模块把测试用例作为输入,并进行相关的度量计算,如Object-oriented metrics、Lorenz’s metrics、Chidamber’s metrics、Properties metrics等。这些指标都有各自默认的阈值。完成各种度量的计算后,根据选择的度量去聚类测试用例并保存。这样,就有了多组测试用例集。
1.1.3 测试用例优化工具
在要求覆盖率不变的情况下,可以用启发式算法对各组测试用例集进行抽样测试。首先,上一步骤已经对测试用例进行了聚类,也即作了分组了,现以每个组内的测试用例的数量为依据进行升序排序,接着,该算法反复把第一组到最后一组进行迭代计算,直到满足全部的测试需求。在每次迭代中,从每一组中抽取一个测试用例样本来组成优化的测试用例集。
1.2 测试用例的聚类
1.2.1 数据挖掘
数据挖掘是指从大型数据库中获取隐藏的、有预测性的信息。数据挖掘能够帮助企业从已有的数据当中提取到企业需要的重要信息,并为其提供效益。数据挖掘技术可以在现有的软件和硬件平台上迅速实施起来,以加强现有信息资源的价值,也能与新上线的产品和系统集成。
数据挖掘技术能自动探测以前未知的模式,能进行自动趋势预测,可以产生新的商业机会。数据挖掘技术是长期的技术研究和产品开发的结果。起初各种数据是存储在计算机的数据库中的,然后持续改善对数据库的访问,进而使用户可以浏览实时数据。数据挖掘使数据库技术进入了一个更高级的阶段,它不仅能对过去的数据进行查询和遍历,并且能够找出过去数据之间的潜在联系,从而促进信息的传递。现在,数据挖掘技术在商业上的应用正在普及。
1.2.2 聚类
聚类将根据数据的相似性迭代地将数据分成多个组,相似的数据分在同一组,差距大的数据分在不同组。聚类是一种无监督的学习过程:不需要事先定义类别信息或是给出训练样例来指明数据应该具有怎样的关系。聚类分析是根据数据对象的特点找出数据之间的相似性,并把相似的数据分到同一数据组。
一个好的聚类分析方法,能够生成组内高相似度、组间低相似度的高质量数据分组。聚类结果的质量取决于聚类算法对相似性的度量及算法的执行。聚类算法的质量也可以由算法发现部分或全部隐藏模式的能力来衡量。
1.3 测试用例的选择
1.3.1 软件测试
软件测试是执行程序以查找缺陷的过程,其帮助开发人员提高软件质量,降低软件故障产生损失。软件测试过程就是执行一组测试用例,每个测试用例包括程序输入(测试数据)和预期结果。由于软件测试的目标是要找到故障,如果发现错误,那么测试是成功的。
在软件开发和维护过程中,软件测试是一个非常重要的,这个环节费用不菲,却不可忽视。软件测试阶段的一个的挑战性任务是如何生成测试用例。测试用例是软件测试成功与否的关键,测试用例的数量和质量决定软件测试的成本和有效性,因为对一个软件程序进行的完全测试是不可能,那样所需的测试用例数量是无限的,设计合适的测试用例将能够发现软件程序大部分的故障。因此,自动生成的测试用例集,在满足测试要求的情况下,应该尽可能小,从而降低软件测试的成本,并提高软件测试的效率。
在测试用例自动生成问题中,搜索其中的最优解需要大量的计算,相关技术试图获得接近最优的解决方案,其中元启发式技术就是比较理想的选择。
1.3.2 测试用例
一个测试用例通常是一个单一的操作步骤,也见有一组操作步骤的,用来测试应用程序的功能或正确响应,包含测试输入、执行条件以及预期结果。
1.3.3 测试用例集
一个测试用例集是多个测试用例组成的集合。一个测试用例集通常包含了详细说明,每组测试用例的目标和进行测试时的系统配置信息。每组测试用例也可能包含前置条件或步骤,以及测试描述。
1.3.4 测试用例集优化
测试用例集优化就是要删除测试用例集中冗余的测试用例。给出的测试用例集T {t1,t2,t3,…,tk}和测试需求集R{R1,R2,R3,…,RN},用聚类算法把将T进行聚类得到若干组,再通过对每组进行的抽样迭代,组成符合R要求的一个T的真子集Tsub即是优化后的测试用例集。
2 结束语
本文探讨了一个回归测试中的测试用例集优化系统的设计,减少了测试用例数量,提高了回归测试的效益。系统中如何获得更好的测试数据,提高回归测试用例的质量,是下一步的研究目标。
参考文献:
[1] 朱鸿,金凌紫.软件质量与保证[M].北京:科学出版社,1997.
[2] 宋宝亚.非间断软件回归测试模型研究[J].信息技术与信息化,2007(4):97-99.
[3] 王小丽,段永颢.软件回归测试用例选取方法研究[J].空间控制技术与应用,2010(3).
[4] 张文栓,滕奇志,罗代升.SAGA在软件测试数据自动生成中的应用.信息与电子工程,2005(1).
[5] 郭晶晶,高建华.基于冗余测试用例的最小测试用例集生成方法[J].计算机工程,2010(1).
关键词:回归测试;测试用例;测试用例集;简约
中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)23-5635-02
A Brief Study on Test Suite Optimize System for Software Regression Testing
HUANG Hua-lin
(Guangdong Women’s Professional Technical College, Guangzhou 511450, China)
Abstract: The definition of software regression testing is presented in this paper.It presents a test tuite optimize system for software regression testing, which reduces the number of regression test cases to improve the effectiveness of regression testing.
Key words: regression test; test case; test suite; reduction
软件测试是保证软件质量和可靠性的重要手段,软件测试的目的是为了发现软件中的缺陷,为客户提供更高的质量保证。软件测试是软件开发过程的重要组成部分,是用来确认一个软件的品质或性能是否符合开发之前所提出的一些要求,并大幅降低开发成本。
回归测试在整个软件测试工作中占有很大比重,软件开发的各个阶段都会进行多次回归测试。回归测试是软件测试的一个重要的环节,以保证不断修改的软件的质量。理论上,软件产生新版本,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再次出现。回归测试的一个主要问题是由于不断生成新的测试用例来测试程序的新功能或修改过的功能,这样累积下来的测试用例数量巨大,会严重影响测试的成本和效率。显然,测试用例的数量越少,程序测试耗时更短,从而提高了软件测试的效益。进行回归测试的一个有效方法是找到一个满足测试要求的最小测试用例子集,而在测试用例生成时或创建测试用例集后,是可以找到一个合适的子集的。
1 软件系统的设计
该软件系统包含以下模块
1)度量的计算与选择;
2)测试用例的聚类;
3)选择测试用例。
1.1 度量的计算与选择包含以下模块
1)词法分析器;
2)优先级调度;
3)测试用例优化。
1.1.1 词法分析器
该模块将指定文件夹作为输入,并对输入进行分析,输入文件夹中的类文件就是分析对象。
1.1.2 优先级调度
这个模块把测试用例作为输入,并进行相关的度量计算,如Object-oriented metrics、Lorenz’s metrics、Chidamber’s metrics、Properties metrics等。这些指标都有各自默认的阈值。完成各种度量的计算后,根据选择的度量去聚类测试用例并保存。这样,就有了多组测试用例集。
1.1.3 测试用例优化工具
在要求覆盖率不变的情况下,可以用启发式算法对各组测试用例集进行抽样测试。首先,上一步骤已经对测试用例进行了聚类,也即作了分组了,现以每个组内的测试用例的数量为依据进行升序排序,接着,该算法反复把第一组到最后一组进行迭代计算,直到满足全部的测试需求。在每次迭代中,从每一组中抽取一个测试用例样本来组成优化的测试用例集。
1.2 测试用例的聚类
1.2.1 数据挖掘
数据挖掘是指从大型数据库中获取隐藏的、有预测性的信息。数据挖掘能够帮助企业从已有的数据当中提取到企业需要的重要信息,并为其提供效益。数据挖掘技术可以在现有的软件和硬件平台上迅速实施起来,以加强现有信息资源的价值,也能与新上线的产品和系统集成。
数据挖掘技术能自动探测以前未知的模式,能进行自动趋势预测,可以产生新的商业机会。数据挖掘技术是长期的技术研究和产品开发的结果。起初各种数据是存储在计算机的数据库中的,然后持续改善对数据库的访问,进而使用户可以浏览实时数据。数据挖掘使数据库技术进入了一个更高级的阶段,它不仅能对过去的数据进行查询和遍历,并且能够找出过去数据之间的潜在联系,从而促进信息的传递。现在,数据挖掘技术在商业上的应用正在普及。
1.2.2 聚类
聚类将根据数据的相似性迭代地将数据分成多个组,相似的数据分在同一组,差距大的数据分在不同组。聚类是一种无监督的学习过程:不需要事先定义类别信息或是给出训练样例来指明数据应该具有怎样的关系。聚类分析是根据数据对象的特点找出数据之间的相似性,并把相似的数据分到同一数据组。
一个好的聚类分析方法,能够生成组内高相似度、组间低相似度的高质量数据分组。聚类结果的质量取决于聚类算法对相似性的度量及算法的执行。聚类算法的质量也可以由算法发现部分或全部隐藏模式的能力来衡量。
1.3 测试用例的选择
1.3.1 软件测试
软件测试是执行程序以查找缺陷的过程,其帮助开发人员提高软件质量,降低软件故障产生损失。软件测试过程就是执行一组测试用例,每个测试用例包括程序输入(测试数据)和预期结果。由于软件测试的目标是要找到故障,如果发现错误,那么测试是成功的。
在软件开发和维护过程中,软件测试是一个非常重要的,这个环节费用不菲,却不可忽视。软件测试阶段的一个的挑战性任务是如何生成测试用例。测试用例是软件测试成功与否的关键,测试用例的数量和质量决定软件测试的成本和有效性,因为对一个软件程序进行的完全测试是不可能,那样所需的测试用例数量是无限的,设计合适的测试用例将能够发现软件程序大部分的故障。因此,自动生成的测试用例集,在满足测试要求的情况下,应该尽可能小,从而降低软件测试的成本,并提高软件测试的效率。
在测试用例自动生成问题中,搜索其中的最优解需要大量的计算,相关技术试图获得接近最优的解决方案,其中元启发式技术就是比较理想的选择。
1.3.2 测试用例
一个测试用例通常是一个单一的操作步骤,也见有一组操作步骤的,用来测试应用程序的功能或正确响应,包含测试输入、执行条件以及预期结果。
1.3.3 测试用例集
一个测试用例集是多个测试用例组成的集合。一个测试用例集通常包含了详细说明,每组测试用例的目标和进行测试时的系统配置信息。每组测试用例也可能包含前置条件或步骤,以及测试描述。
1.3.4 测试用例集优化
测试用例集优化就是要删除测试用例集中冗余的测试用例。给出的测试用例集T {t1,t2,t3,…,tk}和测试需求集R{R1,R2,R3,…,RN},用聚类算法把将T进行聚类得到若干组,再通过对每组进行的抽样迭代,组成符合R要求的一个T的真子集Tsub即是优化后的测试用例集。
2 结束语
本文探讨了一个回归测试中的测试用例集优化系统的设计,减少了测试用例数量,提高了回归测试的效益。系统中如何获得更好的测试数据,提高回归测试用例的质量,是下一步的研究目标。
参考文献:
[1] 朱鸿,金凌紫.软件质量与保证[M].北京:科学出版社,1997.
[2] 宋宝亚.非间断软件回归测试模型研究[J].信息技术与信息化,2007(4):97-99.
[3] 王小丽,段永颢.软件回归测试用例选取方法研究[J].空间控制技术与应用,2010(3).
[4] 张文栓,滕奇志,罗代升.SAGA在软件测试数据自动生成中的应用.信息与电子工程,2005(1).
[5] 郭晶晶,高建华.基于冗余测试用例的最小测试用例集生成方法[J].计算机工程,2010(1).