论文部分内容阅读
软件测试是一种保证和提高软件质量的重要手段,主要目的是尽可能的发现软件中存在的缺陷。然而软件测试存在着Oracle问题,即在软件测试中测试人员很难得到待测程序的预期输出。蜕变测试提供了一种能有效缓解Oracle问题的机制:通过比较原始测试集和衍生测试集是否满足蜕变关系来验证测试结果。蜕变关系在蜕变测试中扮演了至关重要的角色。蜕变关系不仅指导衍生测试用例的生成,而且直接关系到测试结果的验证,极大地影响了测试效率。因此,选择“好”的蜕变关系是蜕变测试核心问题之一。现有研究中,蜕变关系的评价策略大多是基于变异分数或者错误检测率的。然而,变异分数忽略了蜕变关系的一个重要特征:对不同的错误,蜕变关系的检错能力是不同的。而错误检测率作为评价标准有很大的片面性和盲目性,给蜕变关系的研究带来了不便。针对现有衡量标准的不足,本文提出了蜕变关系敏感度的概念,以更加全面地反映蜕变关系的检错能力。蜕变关系敏感度是错误检测率在各种可能错误上分布的多维特征向量。它刻画了蜕变关系对不同错误的敏感程度,为蜕变关系、程序错误以及它们之间的联系给出了一个可度量的方法,为蜕变测试研究提供了一种新的视角和可能性。由于程序错误的多样性,使得蜕变关系敏感度的维度很高。为了更加容易的对蜕变关系敏感度进行计算,提出了基于变体子集的敏感度划分,以降低蜕变关系敏感度的维数。蜕变关系敏感度在蜕变测试研究上有广泛的应用。首先,蜕变关系敏感度可以用于对蜕变关系集合进行聚类分析,以分析蜕变关系之间的关联关系。实验结果表明,蜕变关系敏感度能很好地支持聚类分析计算,并能挖掘出有用的知识。蜕变关系敏感度可以用于对复合蜕变测试进行分析,以获得进行复合操作的优化方式。在实验的基础上,得出了杂交蜕变关系较自交蜕变关系具有更大优势的结论,并验证了复合蜕变关系的Q性质。最后将蜕变关系敏感度应用于组合蜕变测试研究当中,证实了组合蜕变测试能有效提高蜕变测试的效率,分析了组合蜕变关系中影响重叠检错率的因素,并提出了构造优化组合蜕变关系算法。