分析报告显示这次代码变更共有 12 个函数发生了更改。在 30 个测试用例中有 3 个测试用例与这些更改相关,它们覆盖了这次代码更改 12 个中的 10 个。而其它 27 的测试用例则与这 12 个代码改动毫不相关。
表 2 回归测试结果分析
全部测试用例 | 优化选择 | 函数变更 | 覆盖率分析 | ||
已覆盖 | 未覆盖 | 覆盖率 | |||
30 | 3 | 12 | 10 | 2 | 83.3% |
从表中我们可以看到,经过测试用例优化选择之后,我们选出了 3 个和函数变更相关的测试用例,达到了 83.3% 的覆盖率。同时由于 27 个与函数变更无关的测试用例不需要重测,使得 90% 的回归测试资源得到了节省。
图 7. 覆盖率分析
从上图,我们可以清楚地看到基于每个函数改动的相关测试用例的数目,以及测试覆盖率。比如 ManageCommodityAction 这个 Class 里面,存在了 2 个 Change Method, 只有 1 个 changed method 被现有的 1 个 Test Case 所覆盖,测试覆盖率为 50% 。
上面分析报告中总共有 12 个函数发生改动,基中还有 2 个没有被任何测试用例覆盖到。那么未被覆盖的 Change Method 就需要测试人员对之进行分析并且添加新的测试用例以提高我们的测试覆盖率 , 保证测试质量。
总结
回归测试用例的优化选择,以最少的测试用例,准确地覆盖所作改动,极大地提高了我们回归测试的测试效率与测试质量。
自动测试过程中的覆盖率反馈分析,以最小的测试代价,最精确的分析,来获得当前的测试完成情况,为测试人员提高了良好的分析报告,以便测试人员改进和新增新的测试用例。大大提高了回归测试的测试效率与质量。
参考资料
学习
“Rational Edge: 加快回归测试的步伐:累积测试分析和目标测试入门”(developerWorks,2006 年 10 月):本文来自于 Rational Edge:通常所说的“累积测试分析(Cumulative Test Analysis)”技术向软件测试团队提供了对自动化测试更合理的方法,特别是在回归测试集的领域内。理解 CTA 如何提高您的测试效率。
“基于 RFT 和 STAF 进行的无需人工干预的跨平台自动化回归测试”(developerWorks,2008 年 8 月):本文随着回归测试的自动化程度不同,而结合 Rational Functional Tester (RFT) 进行无需人工干预的跨平台并发自动化回归测试
浏览 技术书店获取关于这些主题和其他技术主题的书籍。
developerWorks Java 技术专区:查找数百篇有关 Java 编程各方面的文章。
讨论
参与 developerWorks blogs 并加入 developerWorks 社区。
原文转自:http://www.uml.org.cn/Test/200903313.asp