论文部分内容阅读
软件测试是为了保证软件的正确运行而进行的一项重要活动,回归测试是软件修改后为了确认修改的正确性而进行的软件测试。回归测试策略分为重测所有(retest-all)和选择性(selective)重测两种策略。随着软件规模的不断扩大,选择性重测越来越显示出它的优越性,因为它只选择部分测试用例来测试修改后的软件。回归测试在软件测试的过程中占有很大的比重,因此选择正确的回归测试策略将能节省测试成本,并提高测试的效率。
目前选择性回归测试方面的研究有很多,选择一个尽可能小并且又能覆盖所有改变和受改变影响的代码的测试用例集是研究的重点。目前选择性回归测试策略的分析粒度主要有类级别、类成员级别和语句级别。由于不同的分析粒度不但对应着不同的分析代价,也对应着不同的测试代价。一般来说,分析粒度越小,分析代价越大,但是测试代价越小;分析粒度越大,分析代价越小,但是测试代价越大。在大型软件的维护过程中,合理的分配分析代价和测试代价将具有很大的经济效益。
本文在对面向对象软件的特点和Java的分层特性研究的基础上,提出了逐步求精的回归测试用例选择策略。该策略的分析粒度为包级、类级和类成员级,与其他选择性回归测试策略相比,它的优越性在于:
1.粒度小于类级分析,因此得到的测试用例集将是类级分析的一个子集。
2.粒度大于语句级分析,因此分析代价将显著的小于语句级分析的分析代价。
3.由于是逐步求精,每一层次为下一个层次的分析只提供一个子集来进行分析;而目前的语句级分析技术和类级分析技术以整个工程文件为分析对象,当工程文件比较庞大时,其分析代价将变得昂贵。
逐步求精的回归测试用例选择策略很好的平衡了分析代价和测试代价,具有一定的工程应用参考价值。