【问题标题】:Code Coverage for CC 的代码覆盖率
【发布时间】:2016-11-04 04:13:35
【问题描述】:

我一直在回顾嵌入式系统上使用的不同代码覆盖率测试。特别是,我在看 MC/DC。据我了解,其中一个目标是确保语句中的每个逻辑子句都应该影响语句的结果。

两个问题:

  1. 通过独立验证每个子句对结果的影响可以获得什么?
  2. 为什么(A||B) && (A||!C) 不能实现 100% MC/DC,而 A||(B&&!C) 却能实现 100% MC/DC,即使它们具有完全相同的功能?

【问题讨论】:

    标签: c unit-testing code-coverage test-coverage


    【解决方案1】:

    回答你的问题

    1. 您需要尽可能少的代码和尽可能少的复杂代码。不可达条件会延长您的代码并使您的代码变得不必要地复杂。

    2. (A||B) && (A||!C) 不会达到 100%,因为它要求 A 无缘无故地检查两次。在A 为假且B 为真的情况下,A 的真实性将在此公式中无缘无故地在(A||!C) 表达式中进行第二次检查,而在公式中A||(B&&!C) 具有@ 987654328@ 的真实性只被检查一次。

    【讨论】:

    • 那么 MC/DC 的主要目标是降低复杂性?
    • MC/DC 的目标是以尽可能低的复杂性测试所有可能的结果。
    猜你喜欢
    • 2013-08-22
    • 2016-05-29
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    • 2011-04-27
    • 2016-04-10
    • 2012-10-03
    • 2018-01-11
    相关资源
    最近更新 更多