1、为什么说单元测试的本质是面向逻辑块?
单元测试要做的、能做的,就是检测代码的功能逻辑,功能逻辑由逻辑块实现,所以单元测试的本质就是面向逻辑块。面向逻辑块,将使设计测试用例的思路很简单、测试数据很简单、测试工具的选择也很简单。面向逻辑块,事实上把代码间的耦合视为常态,没有耦合的代码才是特例,高耦合的代码也像简单独立的代码一样容易测试。
2、逻辑块的输入输出有哪些?
逻辑块的输入,除了参数、成员变量之类的常规变量,还包括底层输入,即调用底层函数获得的输入;还包括局部输入,即在被测试代码执行过程中对某些变量的实时赋值,如局部静态输入、中断输入、界面输入等。逻辑块的输出,除了返回值、成员变量之类的常规变量,还包括局部输出,即被测试代码执行过程中对某些变量的实时判断。
3、推荐的白盒测试指标是什么?为什么?
推荐MC/DC。这是欧美航空标准,强度足够,且需要的用例数比较合理。当代码包含多个逻辑块时,会组合出海量的路径,因此路径覆盖不能普遍适用。其他覆盖指标单项使用的话则太弱,MC/DC实际上已包含语句覆盖、条件覆盖和判定覆盖。