表格比较黑盒测试和白盒测试
比较项 | 黑盒测试 | 白盒测试 |
测试侧重方面 | 对程序外部行为的测试 | 对程序内部代码的测试 |
是否知晓内部实现 | 否 | 是 |
测试者 | 测试员 | 开发员 |
设计测试的时间 | 可以在开发前 | 开发后 |
能否发现功能缺失 | 能 | 不能 |
测试用例选择 | 等价类划分、全覆盖、边界值分析 | 独立/基本路径测试:覆盖所有基本路径 |
测试执行的时间 | 功能实现后 | 可以较早,边写代码边测试 |
是否完备 | 否 | 否 |
黑盒测试的方法:基于等价类划分的测试
1. 基于等价类划分的测试
将被测函数的输入域划分为等价类,从等价类中导出测试用例。
若输入数据限定了数值范围,则有1个有效类(区间内),2个无效类(区间外)
若输入数据指明了特定值,则有1个有效类(这个值),1个无效类(其他值)
若输入数据确定了一组值,则有1个有效类(这组值),1个无效类(其他值)
2. 边界值分析BVA:等价类划分的补充
很多错误出现在边界值处。进行等价类划分时,应考虑边界值。
3. 测试用例需全覆盖
多个划分维度上的多个取值要组合起来。
白盒测试的方法:独立/基本路径测试
1. 独立/基本路径测试
设计测试用例,使每条基本路径至少覆盖一次。每个逻辑判断要测到(每个表达式T和F的取值的组合),循环至少测一次。
2. 代码覆盖度可用于评判测试效果
白盒测试的测试效果和测试难度:路径(每条可能的路径都要测到)>分支(每个可能的分支都要测到)>语句(每个语句都要测到)