白盒测试覆盖标准,5大类
- 语句覆盖
- 分支覆盖
- 条件覆盖
- 分支/条件覆盖
- 路径覆盖
语句覆盖
- 概述:根据每个可执行语句是否被执行,即每行代码是否都被执行了并且被测试了
- 含义:选择足够多的测试数据使被测程序中每条语句至少执行一次
- 要求:达到100%声明覆盖面,每一条语句都要被测试覆盖
- 优点:可以直接应用于目标代码,并且不需要处理源代码
- 缺陷:对一些控制结构是不敏感的,对程序执行逻辑的覆盖很低,往往发现不了判断逻辑中逻辑运算符出现的错误
语句覆盖是最基本的覆盖
分支覆盖
- 概述:又称判定覆盖,报告在控制结构中是否测试了布尔表达式取值分别为真和假的情况。分支覆盖保证只要程序能跳转,就能跳转到所有可能的目标语句
- 含义:设计足够的测试用例,使每个判定至少都获得一次“真”和“假”,或使得每一个取“真”分支和取“假”分支至少经历一次。
- 优点:具有语句覆盖的简单性且没有语句覆盖所存在的问题
- 缺陷:忽略了在布尔表达式内的分支,当程序中分支的判定由几个条件组合构成时,未必能发现每个条件的错误
分支覆盖不够全面,因此引入条件覆盖
条件覆盖
- 概述:报告每个布尔型子表达式的结果是真是假,是否都被执行和测试。子表达式是用逻辑与运算符和逻辑或