白盒测试六中方法

本文详细介绍了白盒测试的概念,包括其与黑盒测试的区别,以及六种常见的测试方法(语句覆盖、分支覆盖等),分析了各种覆盖方式的特点和应用场景,同时讨论了白盒测试的优缺点。
摘要由CSDN通过智能技术生成

前述: 白盒测试 可以理解为代码级别测试,黑盒测试,可以理解为功能测试。

本文整理来源于:哔哩哔哩 的 71969467
主讲老师 :Tricy

一、白盒测试

也称结构测试或者逻辑驱动测试,是把测试对象看做一个透明的合资,测试人员依据程序内部逻辑结构相关 信息,设计或选择测试用例,对程序所有逻辑路径进行测试
所以白盒测是一种基于代码的测试,测试这必须检测程序的内部结构,从检测程序的逻辑开始,得出测试数据。
白盒测试一般开发人员做的单元测试,或者开发人员之间的代码review,都算是。也可以借助一些工具进行测试,如testbed 。

二 白盒测试六中方法

测试强度由低到高:语句覆盖(Statement Coverage)、分支覆盖(Branch Coverage)、条件覆盖(Clause Coverage)、判定条件覆盖(Branch/Clause Coverage)、条件组合覆盖(Combinatory Coverage)、路径覆盖(Path Coverage)。

以下讲解以案例为例:

  1. 语句1: if A and B then Action1
    (含义:A 、B条件都为真时,执行动作Action1)
  2. 语句2: if C or D then Action2
    (含义:C 、D 条件 有一个为真时,执行动作Action2)

1.语句覆盖

含义:设计的测试用例要满足,每个语句最少执行一次;
大白话就是:每行代码都要执行最少一次;

用例:case1: A = true ,B=true
case2: C =true ,D = false
此用例就满足了,每条语句执行了一次。但是没有考虑条件的组合情况。

2.分支覆盖(判定覆盖)

含义:是的程序中的每个判断的取值:真 和假 只是经历一次,即:判断的真假都要被测试到。
用例:

语句用例条件判断结果结果
if A and B then Action1A=true B=truetrue(真)执行Action1
if A and B then Action1A=true B=falsefalse(假)不执行Action1
if C or D then Action2C=true D=falsetrue(真)执行Action2
if C or D then Action2C=false D=falsefalse(假)不执行Action2

以上用例:执行了语句中的真假 逻辑,但是,没有完全判断所有条件组合情况,如:A=false ,B=false;C=fasle ,D=true 等情况

3.条件覆盖

含义:要求测试用例满足:每个判定中的每一个条件都获得可能的取值,即:每个条件掷筛有一次真和假指。
说明: 判定指的是: A and B 这个语句的结果
每一个条件:指的是:A 或者 B 这两个条件。
也就是说,在条件覆盖中,A 和B 这两个条件,最少要每个条件分别取一次真 和假。
对用案例2 同样 。不再赘述。

语句用例条件判断结果结果
if A and B then Action1A=true B=truetrue(真)执行Action1
if A and B then Action1(新增)A=false B=falsefalse(假)不执行Action1
if C or D then Action2C=true D=falsetrue(真)执行Action2
if C or D then Action2 (新增)C=false D=truetrue(真执行Action2

4.判定条件覆盖

含义:用例需满足:判定中的每个条件所有的可能取值至少执行一次(也就是条件覆盖),同时每个判定本身所有的结果也要执行一次(判定覆盖)。
说明:判定条件就是:既要满足条件覆盖,同时也要满足判定覆盖;也就是满足(上面的 2.分支覆盖(判定覆盖),3.条件覆盖)。
优点:弥补了 两者(2.分支覆盖(判定覆盖),3.条件覆盖)各自的不足,但是判定条件覆盖并为考虑条件的组合情况。
缺点:

条件覆盖

A=ture,A=false,B=true,B=false
C=true,C=fasle,D=true,D=false

判定覆盖:
A and B =true ,A and B = false
C or D = true, C or D = false

测试用例:
TestCase1: A=true ,B=true ,C=true ,D=true (条件都为True:A and B =true ,C or D =true)

TestCase2: A=false,B=false,C=false,D=false(条件都为false:A and B =false,C or D =false)

5.组合覆盖 也叫 条件组合覆盖

含义:设计的测试用例,应该使得每个判定中的各个条件的各种组合至少出现一次。很显然:满足条件组合覆盖的测试用例,一定满足:语句覆盖,判定覆盖,条件覆盖和判定条件覆盖;也就是肯定满足 以上四种的用例设计方法。

语句用例条件判断结果结果
if A and B then Action1A=true B=truetrue(真)执行Action1
if A and B then Action1A=true B=falsefalse(假)不执行Action1
if A and B then Action1A=false B=falsefalse(假)不执行Action1
if A and B then Action1A=false B=truefalse(假)不执行Action1
if C or D then Action2C=true D=falsetrue(真)执行Action2
if C or D then Action2C=true D=truetrue(真)执行Action2
if C or D then Action2C=false D=falsefalse(假)不执行Action2
if C or D then Action2C=false D=truetrue(真执行Action2

这种方法:会让测试用例成成倍增长;
说明:A 有两个可以取得值 true 或者false
B有两个可以取得值 true 或者false
那么 A and B 组合后,就是有 2 的2次方 = 4 种用例

C 有两个可以取得值 true 或者false
D有两个可以取得值 true 或者false
那么 C or D 组合后,就是有 2 的2次方 = 4 种用例

所以:总共有8个测试用例。

6.路径覆盖

含义:要求覆盖程序中的所有可能的路径,可以对程序彻底的测试用例覆盖。但是用例数量会成倍增长。所有是最彻底的测试用例覆盖。但是实际上可操作性不强。
所有可以设计出满足条件的测试用例如下:
1)A=true B=true C=true D=true
2)A=false B=false C=false D=false
3)A=true B=true C=false D=false
4)A=false B=false C=false D=true
5)A=true B=true C=false D=false

总结
白盒测试的优劣性:
优点:
A.迫使测试人员咨询思考软件的实现
B.帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。
缺点
A.昂贵:系统庞大是,测试开销大,对测试人员要求较高 (要求会写代码,做过实际开发的人员)。
B.测试基于代码,只能测试开发人员做的对不对,而不知道设计是否正确,可能会遗漏掉一些功能需求。

  • 20
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值