【问题标题】:C language Unit test code coverage using CTC++ code coverage tool [closed]使用 CTC++ 代码覆盖率工具的 C 语言单元测试代码覆盖率 [关闭]
【发布时间】:2018-07-22 19:55:10
【问题描述】:

我是 C 编程新手。我正在使用 CTC++ 代码覆盖率工具进行 C 语言单元测试代码覆盖率,而我的断言条件没有被代码覆盖率覆盖。我还能做些什么来覆盖这部分?

【问题讨论】:

    标签: c code-coverage


    【解决方案1】:

    断言的“问题”是它们很少失败。这通常是一个健全性检查:如果某些条件为假,那么程序的其余部分将真正跳入树林,并且很难调试,所以最好彻底停止它,即使它不太可能在这里失败。示例:

    char *x = malloc(100);
    assert(x != NULL);   // how to test so x == NULL ????
    

    因此,当您使用覆盖工具时,该工具必须检查assert 宏的两个分支,并且在高级测试中使其失败几乎是不可能的,而对于低级测试仍然非常困难。

    反常的效果是,下一次,程序员不会像以前那样放那么多断言语句,只是因为它们的失败是不可测试的。

    最好的方法是在使用覆盖率工具 (how to completely disable assertion) 进行测试时禁用断言,这样您就不必证明它们的合理性(您甚至可以在覆盖率报告中对此进行一般性注释/弃权)并留下它们以防万一。

    【讨论】:

    • 它在我禁用断言后工作。非常感谢。
    猜你喜欢
    • 2011-03-02
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2010-09-25
    • 2010-10-14
    相关资源
    最近更新 更多