论文部分内容阅读
随着信息化的推进,软件应用的领域越来越广泛,软件本身的复杂性也随之加大。如何保证软件质量一直是计算机技术的热门研究领域。单元测试是保证软件质量的重要环节。如何解决单元测试的可测试性和测试的自动化问题是实施单元测试的关键。本文主要研究C/C++单元自动化测试技术中,如何解决单元可测性问题以及如何建立一套自动化单元覆盖测试框架。本文提出了一套自动化单元覆盖的框架,该框架自动分析程序代码,生成代码的抽象语法树、控制流图、符号表、函数调用关系图,对待测程序进行单元划分,自动改造程序代码,生成测试用例后,自动生成驱动文件,最终监控管理测试用例执行,检测测试中的死循环和异常,同时给出测试报告。本文基于抽象解释理论,提出用函数摘要和路径区间缩减的方式来自动计算桩函数的预期值的方法进行打桩。同时通过对源代码的插装,实现对测试的覆盖分析,覆盖率计算,同时选取路径覆盖新的测试目标元素,生成新的测试用例。本文通过测试10个开源C/C++工程来验证单元自动化覆盖测试框架的性能和作用。实验证明该框架能够自动地建立测试环境;C程序不同方式的打桩证明基于函数摘要和路径区间缩减来自动计算桩函数预期值,在一定程度上解决了单元测试的可测性难题并提高了覆盖效果。