导语
上一篇说说测试——黑盒测试,我们介绍了关于黑盒测试的知识,这一篇来介绍白盒测试的特点以及常见的测试样例设计方法。
白盒测试
白盒测试,又叫结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。
不同于黑盒测试对代码细节一无所知,所谓白盒指的是测试者了解程序的内部逻辑结构,以期对所有逻辑路径进行测试。所以白盒测试是穷举路径测试。
测试要求
- 保证一个模块中的所有独立路径至少被使用一次
- 对所有逻辑值均需测试true和false
- 在上下边界及可操作范围内运行所有循环
- 检查内部数据结构以确保其有效性
覆盖标准
白盒测试的覆盖标准包括逻辑覆盖、循环覆盖和基本路径测试。
逻辑覆盖包括六种覆盖标准,由弱到强依次为:
- 语句覆盖:每条语句至少执行一次
- 判定覆盖:每个判定的每个分支至少执行一次
- 条件覆盖:每个判定的每个条件应取到各种可能的值
- 判断/条件覆盖:同时满足判定覆盖和条件覆盖
- 条件组合覆盖:每个判定中各条件的每一种组合至少出现一次
- 路径覆盖:程序中每一条可能的路径至少执行一次
测试方法
常见的测试方法包括静态测试与动态测试。
静态测试包括代码检查法、静态结构分析法、静态质量度量法;
动态测试包括逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异。
其中最常见的就是基本路径测试法。
基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。
步骤:
- 画出控制流图
- 计算圈复杂度
- 导出测试用例
- 准备测试用例