论文部分内容阅读
软件测试过程中,回归测试是一个非常重要的环节,将回归测试实现自动化很大程度上能够简化回归测试繁琐的过程。然而在大工程软件系统中,测试用例非常多的情况下,在限定的时间内不能运行完所有的回归测试用例,这将使得回归测试非常低效。针对如何提高大工程软件自动化回归测试的效率问题,作者对比测试用例选择、测试套件最小化和测试用例优先技术,分析其优缺点。决定使用测试用例优先作为提高回归测试效率的主要技术。通过对该技术中不优先、随机优先、理想优先、代码覆盖率优先和FEP优先的实现技术对比分析,最终采用并设计了代码覆盖率(变化的函数所影响的测试用例优先执行)的解决方案。该方案主要涉及:1)源代码的函数级侵入:在源代码编译阶段,对源代码侵入、打桩;2)数据库相关设计:收集测试用例和函数信息;3)测试用例的分类:对相似、相关的测试用例分类;4)补丁的解析:解析补丁得到受影响的函数信息;5)测试用例的优先选择:根据受影响的函数选择受影响的测试用例并赋予高优先级。最后作者应用相关的编程技术实现了代码覆盖率优先的解决方案。本文所设计并实现的测试用例优先技术经过了反复的测试,得出了比较稳定的版本,最后应用至Intel的Linux图形系统的自动化回归测试系统中,提高了该自动化回归测试系统的效率。对旧系统和应用了测试用例优先技术的新系统进行对比测试后有如下结论:1)当补丁修改了不常用的函数时,新系统能以较大概率(超过90%)选出退化的测试用例,并让其优先执行;2)当补丁修改了某些较常用的函数时,新系统只能选择部分退化的测试用例(但可以采用其它辅助策略提高选择退化的测试用例的概率)。但从日常测试可以看出,新系统选出退化的测试用例的平均概率高达84%,可见新系统确实能有效的提高自动化回归测试的效率。