原理:基于程序的源代码,已知产品的内部工作流程,主要是对程序内部结构展开测试,关注程序实现的细节。
- 关注对象:源代码,程序结构
- 优势:
1.针对性强,便于快速定位缺陷
2.在函数基本别开始测试工作,缺陷修复成本低
3.有助于了解测试的覆盖程度
4.有助于代码优化和缺陷预防
- 不足:对测试人员要求高,因准备时间长而导致成本高
控制流分析技术
- 要解决的问题
什么因素导致程序结构变得复杂?->判定节点
如何衡量程序结构的复杂程度? ->判定节点
控制程序执行流程发生变化的主要因素是什么?
如何测试这些因素,并确保测试的效率?
- 控制流分析的内容
关注判定节点固有的复杂性
焦点:判定表达式
方法:逻辑表达式
关注判定结构和循环结构对执行路径产生的影响
焦点:路径
方法:独立路径测试
关注循环结构本身的复杂性
焦点;循环体
方法:基于数据的静态分析
对判定的测试
逻辑覆盖:对判定的测试
关注点:判定表达式本身的复杂度
原理:通过对程序逻辑结构的遍历,来实现测
试对程序的覆盖
原则:对程序代码中所有的逻辑值,都需要测
试真值(True)和假值(False)的情况
- 语句覆盖
设计测试用例时应保证程序中每一条可执行语句至少应执行一次
点覆盖
局限性
关注语句,而非关注判定节点
对隐式分支无效
对策
优选测试数据
更强的覆盖准则:判定覆盖
- 判定覆盖
设计测试用例时应保证程序中每个判定节点取得每种可能的结果至少一次。
边覆盖
(判定覆盖不能发现判定表达式中所有的缺陷)