1.8 代码测试系统

更新于 2026年10月10日 版权声明
1.8 代码测试系统

代码测试系统(Code Testing System,CTS)是一款面向C语言的自动化单元测试工具。CTS支持多种覆盖准则,通过静态分析技术对被测试单元自动生成测试用例,同时动态执行测试用例并统计代码覆盖率;支持代码度量、故障定位以及回归测试。CTS的自动生成测试用例、回归测试以及故障定位等功能可以大大提高测试效率,提高测试的完整性。CTS的总体框架如图1-1所示。

1.程序预处理

图示

图1-1 CTS的总体框架

这一阶段主要是扫描被测程序,对被测文件进行模块划分,划分出测试单元,生成驱动文件,进行软件度量从而统计被测程序信息,同时生成抽象语法树以便程序的后续分析、建模、生成路径以及生成测试用例等工作的进行。

2.复杂类型和循环建模

被测程序中可能存在结构体、数组等复杂的数据结构以及循环等较为复杂的控制结构,因此需要对这些结构做特殊建模处理以便生成合适的符号进行处理。

3.生成路径,可达性判定

根据预处理阶段生成的抽象语法树、程序控制流图以及符号执行结果,按照输入的覆盖准则,确定目标覆盖元素,调用区间运算筛选出不可达路径并最终确定可达的路径集合。本书也将给出一些路径可达性判定策略。(https://www.daowen.com)

4.测试用例自动生成

测试用例自动生成是整个系统的核心模块,在上一阶段生成可达路径的基础上,通过路径约束表达式的提取和约束求解,运用分支限界及其加速算法生成测试用例。本书将围绕测试用例自动生成问题,基于区间运算对分支限界的加速技术和策略进行研究,并在下文中进行详细描述。

5.测试执行,故障定位

生成用例后执行用例,并与期望结果进行比对,当执行结果与预期结果不一致时可以进行故障定位。分析故障原因时将采用一种可疑度的计算方法获取最可能发生故障的边和节点,进行故障定位的自动化。

6.优化回归

在开发人员对源程序改动较少的情况下,没有必要将所有单元测试的测试用例进行回归测试。CTS通过判定代码修改点、筛选用例库以及面向目标生成测试用例等手段进行选择性回归测试,保证软件质量的同时提高测试效率。

7.测试结果分析

测试完成后,系统给出测试程序分析及测试结果数据,如被测代码的属性(代码行数、注释率、函数个数等)、代码测试时间、代码覆盖率等信息,并输出测试报告。

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)