论文部分内容阅读
软件测试是软件开发过程中一个既重要又很难实施的环节,同时它也是软件质量保证的关键步骤,是软件工程研究领域的重要内容。回归测试是软件修改后为确认修改的正确性而进行的测试工作,因而其执行测试用例的过程与软件开发过程中的其它软件测试过程相同,只是所执行的测试用例的集合可能不同。
目前,回归测试策略有“重测所有”和“选择性”两种。随着软件规模的不断增大,“重测所有”在成本和时间两方面都是不可行的,尤其当修改很小部分时,它将会造成严重的成本浪费。因为修改可能会影响到其他部分,所以进行回归测试时必须有适当的测试用例集选择策略。如何选择一个尽可能小,且又能覆盖所有修改以及受修改影响的代码的测试用例集是回归测试选择策略研究重点之一。当软件新版本出现时,开发者会告诉测试人员修改的部分,这就使得选择能够覆盖修改的测试用例变得相对简单。但是,选出能够覆盖受修改影响的代码的测试用例却是很困难的。
本文认为除了覆盖修改的测试用例之外,其他的都是覆盖受修改影响的测试用例。为了更加精确地构造回归测试包,提高回归测试的效率,本文提出了一种新的回归测试选择策略:先选出覆盖修改代码的所有测试用例;然后对基线测试用例库中的剩余的测试用例集进行缩减,基于测试历史信息进行关联规则挖掘,以发现测试用例之间有用的规则,从而利用这些规则对某些测试用例进行删除;最后,根据测试用例覆盖的代码模块数和代码行数对它们进行排序。实验结果表明,本文的策略既能够保证被修改部分的全部测试用例被选上,又能够减少受修改影响部分的测试用例数,充分符合回归测试的目的。