组合测试技术的研究与应用
【摘要】:软件测试横跨整个软件开发周期,并占据其工作量的40%以上。它是保证软件质量的重要手段。软件测试是为了发现软件错误而执行待测软件的过程,它精心选择不同的测试用例生成技术生成一些测试用例,然后用这些测试用例运行待测软件,并发现错误。在软件测试中,测试用例集规模和检错能力直接决定着软件测试的效果。因此,如何选取一个小规模高检错能力的测试用例集是软件测试的核心任务和关键课题。
组合测试技术是一种重要的测试用例生成技术,它根据待测软件系统中各种因素以及各种因素之间的相互作用对系统产生的影响,生成测试用例集。该技术能生成小规模和高检测能力的测试用例集。
本文以进一步提高组合测试技术的效果和实用性为目标对组合测试进行研究。首先,对国内外组合测试方法进行深入研究;然后,将各种组合测试方法进行比较权衡后,选取IPOG算法为研究对象进行改进和扩展。
论文的主要贡献如下:
1)针对现有t维组合测试技术在生成测试用例的过程中,一旦以某种策略选定某个参数值后,就不再改变该值的特性,提出改进。改进后的算法利用测试用例生成过程中反馈的实时信息及时处理测试用例集中冗余值,以获得更优的最终测试用例集。实验证明该算法相对其它t维组合测试算法生成的测试用例集更优。
2)针对一些应用软件中,各个输入参数之间往往存在相互依赖关系问题,对改进的组合测试算法进行扩展,并提出一种基于约束的t维组合测试算法。该算法首先计算隐含约束;然后,在每次扩展中,从未被覆盖的参数值组合集中除去约束,并在满足选择标准下,选择不构成约束的参数值填充,直至所有参数扩展完毕。实验证明该算法不仅能够有效处理输入参数之间的相互依赖关系,而且相对其它基于约束的组合测试方法能生成更优的测试用例。
3)一些实际的应用软件系统的输入参数之间的关系是非常复杂的,它们之间可能存在约束关系;可能根本没有相互关系;或者存在相互关系,但并不一定刚好是任意t个输入参数之间都存在相互关系。为了能处理更复杂的输入参数之间的关系,我们对基于约束的组合测试算法进一步扩展,并提出基于约束和输入输出关系的变强度组合测试算法。该算法根据输出参数对输入参数进行分类,并在分类的基础上生成测试用例。
因测试的最终目的是对错误进行修改,但在修改错误之前,必须要对引起错误的
组合进行定位。本文通过将输入输出关系引入基于测试数据补充生成的错误定位方法中对该方法进行改进,并提出一种基于输入输出关系的错误定位方法。基于输入输出关系的错误定位方法并不是生成测试用例所包含的每个模式,而是根据输入参数之间是否存在关系生成错误模式。实验表明,基于输入输出关系的错误定位方法提高了错误定位的准确性。
4)本文最后以C++语言编写的程序为待测对象,对基于约束和输入输出关系的变强度组合测试算法进一步扩展。扩展后的算法在生成测试用例的过程中,会考虑部分程序内部结构。因指针类型是C++语言的特征之一,指针指向信息不明确,会导致保守估计IO关系问题,最终会影响测试用例集的优越性,所以在提出基于约束和输入输出关系的变强度组合测试算法之前,提出了一种基于包含约束的指针分析方法。基于包含约束的指针分析方法通过对包含约束语言进行扩展对传统的基于包含约束的指针分析方法进行改进。改进后的指针分析法不仅降低了时间花费,同时也提高了指向信息的精确性。在指针分析的基础上,给出采用灰盒测试技术的组合测试方法。该方法通过考虑程序的部分内部结构不仅优化了测试用例集还提高了错误定位的准确性。
|
|
|
|
1 |
周吴杰;张德平;徐宝文;;基于部分覆盖表的错误交互定位方法[J];计算机学报;2011年06期 |
2 |
李玉;钱雪忠;;启发式遗传算法求解两两组合测试用例集[J];计算机工程与设计;2011年05期 |
3 |
王立新;杨峻;万仁霞;王铭军;;基于树模型和输入参数关系的组合测试集精简方法[J];计算机应用研究;2010年03期 |
4 |
聂长海,徐宝文,史亮;一种基于组合测试的软件故障诊断方法[J];东南大学学报(自然科学版);2003年06期 |
5 |
大舟;高效组合测试装置[J];光机电信息;1994年07期 |
6 |
胡蓉;刘建勋;;一种新的基于Web服务超市平台的QoS测试方法[J];电子设计工程;2011年03期 |
7 |
许蕾;聂长海;徐宝文;;一种基于组合测试的Web应用兼容性故障诊断方法[J];计算机科学;2006年12期 |
8 |
李越;;松散耦合接口测试数据精简技术[J];计算机技术与发展;2011年06期 |
9 |
陈翔;顾庆;王新平;陈道蓄;;组合测试研究进展[J];计算机科学;2010年03期 |
10 |
聂南;王秉政;徐丽萍;李继光;;基于组件的加权组合错误注入测试方法[J];计算机工程;2010年24期 |
11 |
周吴杰;张德平;徐宝文;;基于组合测试的软件故障定位的自适应算法[J];计算机学报;2011年08期 |
12 |
丁怀宝;高建华;;具有约束条件的组合测试用例集的构建方法[J];计算机工程与设计;2010年14期 |
13 |
孙继荣;李志蜀;吴江;倪建成;李宝林;;着色问题在测试用例集约简中的研究[J];电子科技大学学报;2007年S3期 |
14 |
赵德海;戴永;李锦涛;罗海勇;肖浩;李婷婷;;基于组合测试模式的集成虚拟仪器软件测试[J];计算机工程与设计;2008年20期 |
15 |
邢丹丹;李劲华;李超;;基于组合测试技术的JavaEE多层框架的测试方法[J];青岛大学学报(自然科学版);2011年03期 |
16 |
饶芳蕾,温晓慧;银行业务应用系统2000年测试[J];中国金融电脑;1998年09期 |
17 |
何新华,张威,赵宇,卢庆龄;软件可靠性数学仿真测试平台设计与研制[J];装甲兵工程学院学报;1998年01期 |
18 |
冯柳平,武小年,周德新;软件测试技术在医保管理系统中的应用[J];桂林电子工业学院学报;2001年01期 |
19 |
王毅,蔡建平;基于API测试的分布式测试框架的研究与实现[J];计算机工程与设计;2004年08期 |
20 |
段红玉,陈炎龙;程序调试技巧[J];郑州牧业工程高等专科学校学报;2005年02期 |
|