我正在阅读关于MC/DC的以下文章:http://shemesh.larc.nasa.gov/fm/papers/Hayhurst-2001-tm210876-MCDC.pdf.
我有源代码:Z := (A or B) and (C or D)以及以下测试用例:
-----------------
| A | F F T F T |
| B | F T F T F |
| C | T F F T T |
| D | F T F F F |
| Z | F T F T T |
-----------------
Run Code Online (Sandbox Code Playgroud)
我想证明所提到的测试用例符合唯一原因定义.
我开始消除蒙面测试:
A or B = F T T T T,这意味着它掩盖所述第一测试情况下,从C or D作为F …示例声明:
if (conditionA && conditionB && conditionC && conditionD) {
return true;
}
Run Code Online (Sandbox Code Playgroud)
我可以为所有2 ^ 4组合编写单元测试,但如果添加更多条件,这很容易失控.
我的单元测试策略应该涵盖这样的声明的所有条件?有没有其他方法可以使代码更健壮?