这是本人根据多年经验提出的衡量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)测试结果直观地描述程序行为:输入是什么,该输入下执行了哪些代码,产生了什么输出。