这是本人根据多年经验提出的衡量C/C++单元测试工具能否胜任实际项目的技术指标,供需要评估单元测试工具的朋友们参考。
1、 自动隔离测试目标
a. 可根据测试任务,设置指定的文件为测试目标;
b. 对于不测试,但可能大量依赖的文件,可以设为调用实际代码;
c. 对于不属于a和b的文件,自动生成桩代码。
2、 自动生成测试代码
a. 自动生成测试文件,以及执行测试所需的代码框架;
b. 自动为每个类、每个函数生成测试类、测试函数;
c. 可以根据指定的数据,生成对应的输入输出代码。
3、 自动表格化
a. 可以通过双击或类似的简便操作,将数据移到表格中;
b. 可以在表格中建立、删除、编辑用例。
4、 解决可测性问题
a. 可以在用例中直接设置底层函数的返回值、输出参数的值,以及底层函数所修改的全局变量的值;
b. 可以在用例中设置局部变量的值;
c. 对于a和b所设置的数据,可以移到表格中,与其他数据一起编辑和管理;
d. 可以判断局部变量的计算结果是否符合预期。
5、 白盒覆盖
a. 自动统计以下覆盖率:语句覆盖、条件覆盖、分支覆盖、C/DC、MC/DC、路径覆盖。
b. 未覆盖的逻辑单位标示清晰:在代码中标出未覆盖的语句、条件值、判断值、MC/DC;自动画出程序的逻辑结构图,标示未覆盖的分支与路径。
c. 提供协助找出遗漏用例的功能,例如,针对某个指定的未覆盖单位,自动从现有用例中计算出最近似的用例,并提供修改提示,或类似的功能,以解决难于实现高标准覆盖的问题。
6、 自动用例
a. 自动生成边界测试用例,检测崩溃、超时等极端错误。
7、 测试报告
a. 自动生成测试报告;
b. 测试报告需包括以下内容:所有函数的覆盖率数据;用例的代码、每个用例的输入与预期输出、每个用例的实际输出,并标示报错的用例。
8、 支持边开发边测试,促进开发效率的提升
a. 当产品代码修改时,同步更新测试代码,自动执行测试;
b. 测试结果直观地描述程序行为:输入是什么,该输入下执行了哪些代码,产生了什么输出。