考虑“ (A && B)||(!A && C)”的决定,这导致MC / DC覆盖范围不足,因为不可能测试 F #F#。
非常感谢。
答案 0 :(得分:2)
为回答您的问题,让我们首先看一下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%的覆盖率。我们如何识别“真实”评估?
我们确定每个条件的配对(真和假),并在可能的每一行中做出决定。在上图中,橙色高亮显示的行是“实际” MC / DC评估,它将为我们提供100%的分支覆盖率和100%的条件覆盖率。
请记住,它应该至少输出 n + 1 个测试。
希望这会有所帮助!