考虑到决定“ (A && B) || (!A && C) ”,这导致缺乏 MC/DC 覆盖,例如,无法测试F#F#。
- 没有达到 100% 的 MC/DC 是什么意思?只是质量问题吗?
- 没有 100% 的 MC/DC 可以接受吗?
- 如何管理达到 100% MC/CD 的决策?
非常感谢。
考虑到决定“ (A && B) || (!A && C) ”,这导致缺乏 MC/DC 覆盖,例如,无法测试F#F#。
非常感谢。
为了回答您的问题,让我们先来看看 MC/DC 标准的一些组成部分:
更多细节在这里https://en.wikipedia.org/wiki/Modified_condition/decision_coverage#Definitions
给定您的示例表达式 (A && B) || (!A && C),我们可以将其分解为三个条件“A”、“B”和“C”。请注意 A 和 !A 都是布尔表达式,但其中一个不是原子的。
然后我们可以创建一个真值表:
黄色突出显示的是我们可以提出的“可能”的 MC/DC 评估。
识别后,我们然后选择哪些已识别项目是“真正的”MC/DC 评估,这将为我们提供 100% 的覆盖率。我们如何识别“真实”的评价?
我们识别每个条件的配对(TRUE 和 FALSE)以及可能的每一行的决策。在上图中,带有橙色突出显示的行是“真正的”MC/DC 评估,它将为我们提供 100% 的分支覆盖率和 100% 的条件覆盖率。
请记住,它应该至少输出n+1 个测试。
希望这可以帮助!