7

我最近参加了CS258免费在线课程,里面提到了一个叫做MC/DC覆盖的代码覆盖,它用在嵌入式软件中,比如汽车、飞机上的计算机等...

但我找不到免费工具来显示我的计划的 MC/DC 覆盖范围,有什么建议吗?

4

1 回答 1

5

我相信 Project Coverage(现在称为Project Couverture)可能是对非侵入性和开源覆盖分析问题的第一个好的答案。他们最新的代码版本目前在这里,并且可以在这里看到英里高的项目演示。

至于 SQLite 如何使用 just 声明 MC/DC 覆盖率gcov,他们基于这样一个事实:在 C 中,逻辑 AND 和 OR 遵循短路评估;这意味着在任何布尔表达式比较中......

if (((A == B) || (C != D)) && (E != F)) ...

...根据定义,C 将在第一个“决定”整体的表达式处停止计算;因此,如果 A 等于 B,则决策已经完成 - 如果不是,则继续下一个表达式,依此类推。这意味着 MC/DC 要求...

Each condition in a decision must be shown to *independently*
          affect the outcome of the decision

...有点“默认覆盖”。

不过,有一个例外 - 请在此处阅读他们的解释

于 2016-11-08T16:10:21.197 回答