是否有任何用于修改条件/决策覆盖率分析的开源工具。
我看过科伯塔,似乎它只提供有条件的报道。
我有兴趣执行此处描述的分析
http://sunnyday.mit.edu/papers/dupuy.pdf
http://en.wikipedia.org/wiki/Modified_condition/decision_coverage
为了满足MC / DC覆盖标准,在测试期间全部 以下必须至少为真[1]:
* Each decision tries every possible outcome * Each condition in a decision takes on every possible outcome * Each entry and exit point is invoked * Each condition in a decision is shown to independently affect the outcome of the decision
答案 0 :(得分:3)
程序中每个进入和退出点至少被调用一次,程序中的每个条件都至少对所有可能的结果进行了一次,并且每个条件都被证明可以独立地影响该决策结果。通过在保持固定所有其他可能条件的同时改变该条件,显示条件独立地影响决策的结果。 [维基百科MC / DC - en.wikipedia.org/wiki/Modified_condition/decision_coverage]
http://codecover.org/features/coverage.html
CodeCover声明还要检查MC / DC,他们称之为Ludewig术语意义上的术语覆盖。我试图找到有关Ludewig术语的其他信息,但我找不到任何有用的信息。
术语覆盖率检查布尔短路语义,例如涉及并非总是评估的副作用的决策:
if (expressionA && myfunc(b)) {
do_something();
}
[维基百科短路评估 - en.wikipedia.org/wiki/Short-circuit_evaluation]
如果expressionA的计算结果为false,则不会执行myfunc(b)。这是编写速度更快的代码的常用技术,但是风险很大,因为myfunc(b)可以对环境进行一些更改,这可以很容易地被开发人员监督,从而创建不安全的代码。
根据我的理解,术语覆盖率验证表达式A的计算结果为true和false,以便myfunc(b)至少执行一次。
http://www.verifysoft.com/en_ctcpp.html