论文部分内容阅读
作为确保软件质量的重要途径,软件测试一直是人们研究的热点问题。每一个软件都可以看作一个受若干参量影响的逻辑系统。对于一些复杂系统而言,影响其运行的参量数目一般较多,对全部参量的所有可能配置进行穷举测试往往是不现实的。作为软件测试中的一种重要技术手段,组合测试能用精心设计的少数高质量的测试用例,有效地检测出系统中潜在的交互错误,保障复杂系统的可靠性。因此,研究组合测试的基本原理,解决组合测试在实践中的应用问题,以及进一步提高测试数据的质量,具有重要意义。
本文着重研究了以下几方面的内容:
(1)基于组合测试技术在铁道信号软件领域的实际应用,发现了组合测试场景中的一类新问题,提出了屏蔽参量的概念。通过引入特殊值“#”,扩展了传统的混合覆盖数组(Mixed Covering Array,MCA),建立了带屏蔽参量的混合覆盖数组模型(Mixed Covering Array with Shielding parameters,MCAS)。使用MCAS测试模型,挖掘待测系统中的屏蔽参量,尤其是系统内部隐性的屏蔽关系,对于保证组合测试的完备性,具有决定性作用。
(2)针对带屏蔽参量的组合测试应用场景,研究了测试数据生成算法,提出了MCAS的有效构造算法,并实现了相应的原型工具,进行了实验研究。实验结果表明,使用新的模型和测试生成方法,能够生成完备的组合测试数据,从而解决了组合测试中的屏蔽参量问题。
(3)在组合测试数据度量方面,原有的组合测试模型和理论对一组测试数据的评估指标为测试强度(Strength),由于强度仅能反映被测试数据所完全覆盖的元组信息,不能刻画维度大于强度的元组的覆盖率,因此对测试数据的度量并不精确,当两组相同规模的测试数据强度相等时,无法进行优劣比较。我们提出了一种新的度量准则-元组密度(Tuple Density),它兼顾了高维度元组的覆盖率,为测试数据的精确度量和遴选提供了依据。
(4)测试数据的优劣,直接决定着测试的有效性。在一定的预算下,生成尽量优化的测试数据,是测试人员的重要追求。在组合测试数据优化方面,我们根据元组密度度量准则,提出了一种基于非敏感元素集查找和实例化的优化方法,该方法可对给定测试数据进行优化。同时,实现了原型工具,进行了实验研究。实验表明,该优化算法是有效的。