目录
I. 白盒测试概述
II. 语句覆盖
III. 分支覆盖(判定覆盖)
IV. 条件覆盖
V. 判定条件覆盖
VI. 组合覆盖
VII. 路径覆盖
高质量前端博主,点个关注不迷路!
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。
白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,即清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。
白盒测试的核心是测试用例的设计,因为当穷举测试时,所需的时间是不可达到的,因此需要一些特殊的测试用例设计方法,以下是六种常见的用例设计方法。
语句覆盖保证设计的用例能够满足每个语句被执行一次,仅仅保证语句被执行,而不考虑语句没有被执行的情况,更没有考虑每个判断条件的真和假各一次,因此是最弱的覆盖用例。
例:IF A AND B :ACTION1;
IF C OR D :ACTION2
于是可以用:A = true, B = true, C = false 即可
分支覆盖又叫判定覆盖,保证设计的用例能够满足每个判断的取真与取假至少各一次,但不保证每个条件都取一遍真和假。
注意,只是判断的取真和取假各一次,意思是:
(A AND B) 真 假 各一次; (C OR D) 真 假 各一次
例:IF A AND B :ACTION1;
IF C OR D :ACTION2
于是可以用:A = true, B = true, C = true
A = false, C = false, D = false 这两组来测试
条件覆盖保证设计的用例能够满足每个条件的取真和取假至少各一次,但不保证每个判断的取真和取假各一次。
注意,只是每个条件的取真和取假各一次,意思是:
A真 假 各一次;B真 假 各一次;C真 假 各一次;D真 假 各一次;
且不考虑A B 各种取真取假组合、C D 各种取真取假组合是不是都组合了一次
例:IF A AND B :ACTION1;
IF C OR D :ACTION2
于是可以用:A = true, B = true, C = true,D = true
A = false, B = false, C = false,D = false
判定条件覆盖保证设计的用例能够同时满足分支覆盖和条件覆盖,它是二者的结合,即既满足每个判断的取真、取假各一次,又满足每个条件的取真、取假各一次。
例:IF A AND B :ACTION1;
IF C OR D :ACTION2
于是可以用:A = true, B = true, C = true,D = true
A = false, B = false, C = false,D = false
组合覆盖保证各个条件的各种可能组合都至少出现一次,因此比前面所有的测试的覆盖范围都要广,且用例也能全部满足前面提到的几种测试。
组合覆盖的意思是:
A true B true、A false B false、A false B true、A true B false 各一次,同理C 和 D
例:IF A AND B :ACTION1;
IF C OR D :ACTION2
于是可以用:
A true B true C true D true
A false B false C false D false
A false B true C false D true
A true B false C true D false
路径覆盖保证设计的用例能够满足每条程序路径都执行一次,实现路径全覆盖,即:
Action 1 执行、Action 2 执行
Action 1 执行、Action 2 不执行
Action 1 不执行、Action 2 执行
Action 1 不执行、Action 2 不执行
路径覆盖在实际开发中并不常用,原因是复杂的项目的路径是错综复杂的,因此会导致测试次数过多,无法在有限时间内完成。