我们应该如何结合覆盖标准?

时间:2018-06-08 15:15:46

标签: testing branch code-coverage criteria

我正在阅读有关覆盖标准的内容。在本文How Effective Are Code Coverage Criteria?

我读到语句,分支,MC / DC和循环覆盖的组合比使用它们中的任何一个作为单个标准具有更好的结果(将多个控制流覆盖组合在一起比单独的最强标准更好)。 / p>

我不知道他们是如何结合起来的。 任何人都知道我们应该如何结合两个单一的覆盖标准? 我在某处读到他们使用覆盖标准的结果在另一个覆盖标准中使用它。但我无法找到来源,因此我不确定这是不是真的? 这也是覆盖标准组合的意义吗?

1 个答案:

答案 0 :(得分:0)

有许多可用的结构代码覆盖率度量标准定义。并回答问题:如果一种方法包含另一种方法,则无需采用功能较弱的覆盖方法。这意味着,无需将它们全部合并。

例如,请检查链接的NASA文档:

MCDC

它包含某些方法的概述,而这些方法又包含其他方法。

例如,参见上述文档中的一个表格:

Coverage Criterion

版权:NASA

如果您已经在进行MCDC,则无需进行“决策覆盖率”检查。这与其他措施(例如功能覆盖率或循环覆盖率)不同。他们是否会给您带来额外的好处很难说。很遗憾,您提到的研究表明了这一点。

您需要了解的是,您不应该进行“结构测试”。您应该进行基于需求的测试(或使用其他方法),然后测量确定的Coverage。在测试策略中,您需要定义,应该执行哪些覆盖率测量以及必须达到什么覆盖率百分比。如果未达到预期的覆盖率,则需要添加更多测试用例。

如果您对使用方法提出建议,则应遵循FAA和ISO26262中非常严格的要求。他们推荐使用最高安全等级(例如ASIL D)的MCDC。通过遵循这一严格要求,您可能会忘记其他方法。

不幸的是,用于导出测试用例,尤其是测量结果覆盖率的工具非常昂贵,并且经常需要代码检测。

如果您对MCDC感兴趣,则可能需要看一下 MCDC