论文部分内容阅读
为了提高软件测试的效率和准确性,研究人员提出了多种测试用例优先级技术。对测试用例进行优先级排序的多种标准都包含了一个目的:对软件缺陷的检测能力。在具体实现上可以分为两类:1.基于对程序的静态/动态分析,主要是检查测试用例对测试代码的覆盖程度。2.考虑回归测试中软件缺陷产生于软件代码的变更,提出通过对两个版本代码的比较确定对对测试用例优先级的设定。这两类方法都假设代码对于软件的缺陷的分布是没有区别的,对代码不加区分的对待,结果就导致测试用例优先级不能完全真正的反映测试用例和软件缺陷的关系,同时大规模的对不同版本软件代码的比较需要消耗大量时间,这就违反了软件测试优先级技术关于减少回归测试时间的初衷。综合这两种方法,都是面向软件代码的,而没有考虑到测试用例的个体性。目前对于软件测试用例优先级技术的研究中还存在着另外一方面的问题。不同的方法根据不同的标准给出对测试用例优先级的排序方法,但是都没有提供一种可以对这样的排序方法所能达到的测试效果进行定量地预测评估的方法。这使得不同的测试用例优先级方法下的排序方法无法进行测试效果的预测评估比较,也不利于在软件工程实践中对回归测试计划的时候寻找最优的测试方案。因此本文针对测试用例优先级的确定和评估,做了如下工作:●测试用例优先级方法确定的研究,主要是提出了一种面向测试用例的测试用例优先级方法。●测试用例优先级方法整合的研究,主要是提出了一种基于机器学习方法的测试用例优先级整合方法。●测试评估方法的研究,提出了一种基于模糊层次分析法的测试效果预测评估方法。●基于以上方法,设计并实现了基于测试用例优先级的测试效果预测评估系统TPEM。本文的研究意义在于,转变了传统的面向测试代码的测试用例优先级方法,提出面向测试用例的方法,开拓了新的研究思路。本文提出了优先级整合方法,提供了将多种弱的优先级方案整合到一起以获得一种更强的测试用例优先级方案的方法,使优先级方案能够逼近最优的方案成为可能。其次本文提出并设计的评估系统可以对给定的测试用例优先级方案以及测试资源分配方案给出量化的测试效果预测评估值,为测试计划的制定,寻找最优的测试方案提供可靠的依据。本文中提出的方法和实现的系统应用于实际的软件开发项目中,使用结果表明,本文中的方法和系统比现有的其他同类的方法相比有较高的效率和准确率,并且对测试效果的预测有着较高的准确性。