白盒测试怎么测?
作者:网络转载 发布时间:[ 2016/12/5 14:45:26 ] 推荐标签:单元测试 白盒测试
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。“白盒”法全面了解程序内部逻辑结构,对所有逻辑路径进行测试。“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。
白盒测试
白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。六种覆盖标准发现错误的能力呈由弱到强的变化分别是:
1.语句覆盖每条语句至少执行一次;
2.判定覆盖每个判定的每个分支至少执行一次;
3.条件覆盖每个判定的每个条件应取到各种可能的值;
4.判定/条件覆盖同时满足判定覆盖条件覆盖;
5.条件组合覆盖每个判定中各条件的每一种组合至少出现一次;
6.路径覆盖使程序中每一条可能的路径至少执行一次;
语句覆盖
IF CONDITION THEN
DO_SOMETHING;
ELSE
DO_SOMETHING_ELSE;
END IF;
优点:可以很直观地从源代码得到测试用例,无须细分每条判定表达式。
缺点:由于这种测试方法仅仅针对程序逻辑中显示存在的语句,但对于隐藏的条件和可能到达的隐式逻辑分支,是无法测试的。
判定覆盖
IF CONDITION THEN
DO_SOMETHING;
ELSE
DO_SOMETHING_ELSE;
END IF;
优点:判定覆盖比语句覆盖要多几乎一倍的测试路径, 当然也具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性, 无须细分每个判定可以得到测试用例。
缺点:大部分的判定语句是由多个逻辑条件组合而成 (如,判定语句中包含AND、OR、CASE),若仅仅判断其整个终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。
条件覆盖
例:(1)IF (A>1) AND (B=0) THEN X=X/A
(2)IF (A=2) OR (X>1) THEN X=X+1
实例
优点:条件覆盖比判定覆盖,增加了对符合判定情况的测试,增加了测试路径。
缺点:要达到条件覆盖,需要足够多的测试用例,但条件覆盖并不能保证判定覆盖。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。
判定-条件覆盖
实例
优点:判定/条件覆盖满足判定覆盖准则和条件覆盖准则,弥补了二者的不足。
缺点:判定/条件覆盖准则的缺点是未考虑条件的组合情况。
条件组合覆盖
XY取值
优点:多重条件覆盖准则满足判定覆盖、条件覆盖和判定/条件覆盖准则。更改的判定/条件覆盖要求设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身的所有可能结果也至少出现一次。并且每个条件都显示能单独影响判定结果。
缺点:线性地增加了测试用例的数量。
路径覆盖
XY取值
优点:可以对程序进行彻底的测试,比前面五种的覆盖面都广。
缺点:由于路径覆盖需要对所有可能的路径进行测试 (包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。
白盒测试的优缺点
优点:1. 针对程序内部进行覆盖测试,覆盖率较高 2. 能较早期的发现程序中的缺陷
缺点:1. 设计过于复杂 2. 无法验证程序的外部特性 3. 需求变更时,付出的代价较大
白盒测试覆盖测试
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11