覆盖标准,究竟是什么独立条件?

时间:2016-01-10 23:11:27

标签: testing conditional conditional-statements specifications verification

当谈到诸如MCDC(修改条件/决策标准)等覆盖标准时......

声明“程序中的每个进入和退出点至少被调用一次,程序中的每个条件都至少采取了一次所有可能的结果,并且每个条件都已显示独立地影响决策结果通过在保持固定所有其他可能条件的同时改变该条件,条件被证明独立地影响决策的结果。 [...]“   - https://en.wikipedia.org/wiki/Modified_condition/decision_coverage

这个描述对于什么构成独立标准是相当模糊的...那么,它们是什么?示例在任何语言中都很有用(C-family / python / haskell首选)。

1 个答案:

答案 0 :(得分:1)

维基百科定义是一个非正式的陈述,更精确的MDCD定义是:

对于每个条件c,在每个决定d中,都会进行以下测试:

  • 有一个c == true
  • 的测试
  • 有一个c == false
  • 的测试
  • 如果d c == true的结果为x,则c == false必须为!x时的结果为d。
  • d中的所有其他条件在两个测试用例中评估相同。

如果可以创建满足这些条件的测试集,则表明每个条件都不是冗余的:在某些情况下,每个条件至少会影响程序的控制(因为有一个测试用例可以证明这一点) 。这就是"意味着独立影响结果"。