白盒测试的六种覆盖方法

本文详细介绍了白盒测试中的语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖六种方法,并通过一个具体的软件测试题目举例,解析了每种覆盖方法的测试用例设计,揭示了它们之间的覆盖程度和优缺点。
摘要由CSDN通过智能技术生成

白盒测试的六种覆盖方法

逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖

根据覆盖目标、覆盖程度的不同分为以下6种

  1. 语句覆盖 Statement coverage
  2. 判定覆盖 Decision coverage
  3. 条件覆盖 Condition coverage
  4. 条件/判定覆盖 Condition/decision coverage
  5. 条件组合覆盖 Condition combination coverage
  6. 路径覆盖 Path coverage

以一个软件测试题目为例:

if (a>1) and (b = 0)

then x = x / a

if (a = 2) or (x > 1)

then x = x+ 1

1、根据以上程序段画出程序流程图

2、按照要求给出六种逻辑覆盖的测试用例

1、语句覆盖:

-》定义:要求设计足够多的测试用例,使得程序中每条语句至少被执行一次

-》缺点:语句覆盖常常被人指责为“最弱的覆盖”,它只管覆盖代码中的执行语句,却不考虑各种分支的组合

-》题解分析:

1、可执行语句4条、变量3个(a,b,x)

2、设计最少的案例,每个语句至少执行一次

-》题解: 

a=2, b=0, x=4   覆盖路径:a-c-e  

(还有其他测试用例方案,满足条件即可)

(路径b、d没有被覆盖,这是其缺点所在)

2、判定覆盖:

定义:判定覆盖又称为分支覆盖,它要求设计足够多的测试用例,使得程序中每个判定至少有一次为真值,有一次为假值,即:程序中的每个分支至少执行一次

(所有分支路径都至少经过1次)

-》题解分析:需要覆盖的路径为:(a-c-e、a-b-d) 或 (a-b-e、a-c-d)

“判定覆盖”比“语句覆盖”严格,因为如果每个分支都执行过了,则每个语句也就执行过了。但是,“判定覆盖”还是很不够的,比如选择a-b-e和a-c-d案例就没有覆盖到a-d-b的情况

-》题解:测试用例如下:

题解1:覆盖路径(a-c-e、a-b-d) 

a = 2, b = 0, x = 4 覆盖路径:a-c-e              

a = 0, b = 0, x = 1 覆盖路径:a-b-d

题解2: 覆盖路径(a-b-e、a-c-d)

a = 2, b =2, x = 2 覆盖路径:a-b-e               

a = 3, b = 0, x = 3 覆盖路径:a-c-d

3、条件覆盖:

-》定义:选择足够多的测试用例,使程序中每个判定的每个条件取得各种可能的结果

-》题解分析:

需要满足的判定为:

判定1的条件取值(a > 1, a <= 1, b = 0, b != 0) ; 判定2的条件取值(a = 2, a != 2, x > 1, x <=1)

-》题解:

a = 2, b = 0, x = 4 覆盖(a > 1, a = 2, b = 0, x > 1)

a = 1, b = 1, x = 1 覆盖(a <= 1, b != 0, x <= 1)

4、判定-条件覆盖:

-》定义:判定条件覆盖是设计足够的测试用例,得使判断中每个条件的所有可能取值至少执行一次,同时每个判断本身所有可能结果也至少执行一次。缺点是忽略了条件的组合情况

-》简单记忆:判定覆盖、条件覆盖 取交集

-》分析:

例如:一个判定包括两个条件如下

x>3andy=1

一组符合判定/条件覆盖的用例需要满足下面

1.使得判定为真

2.使得判定为假

3.使得x>3

4.使得x<=3

5.使得y=1

6.使得y!=1

-》题解分析:

需要覆盖的路径为:(a-c-e、a-b-d) 或(a-b-e、a-c-d)

需要满足的判定为:判定1(a > 1, a <= 1, b = 0, b != 0) ; 判定2(a = 2, a != 2, x > 1, x <= 2)

-》题解:

a = 2, b = 0, x = 4 覆盖路径a-c-e,覆盖条件(a > 1, a = 2, b = 0, x > 1)

a = 1, b = 1, x = 1 覆盖路径a-b-d,覆盖条件(a <= 1, b != 0, x <= 1)

5、条件组合覆盖:

-》定义:选择足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次、

-》分析:满足“条件组合覆盖”的测试用例是一定满足“判定覆盖”、“条件覆盖”和“判定/条件覆盖”

-》题解分析:

判定1的条件取值(a > 1, a <= 1, b = 0, b != 0) ; 判定2的条件取值(a = 2, a != 2, x > 1, x <=1)

条件组合如下:

  1. a > 1, b = 0
  2. a>1, b != 0
  3. a <= 1, b = 0
  4. a <= 1, b != 0
  5. a = 2, x > 1
  6. a = 2, x< = 1
  7. a != 2, x > 1
  8. a != 2, x <= 1

-》题解:

a = 2, b = 0, x = 4 覆盖组合1,5

a = 2, b = 1, x = 1 覆盖组合2,6

a = 1, b = 0, x = 3 覆盖组合3,7

a = 1, b = 2, x = 1 覆盖组合4,8

6、路径覆盖:

-》定义:选取足够多的测试数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则要求每个环至少经过一次)

-》分析:覆盖程度最高的就是路径覆盖,因为其覆盖程序中所有可能的路径

对于比较简单的小程序来说,实现路径覆盖是可能的,但是如果程序中出现了多个判断和多个循环,可能的路径数目将会急剧增长,以致实现路径覆盖是几乎不可能

-》题解分析:需要覆盖的路径为:a-c-e、 a-b-d、 a-b-e、 a-c-d

a = 2, b = 0, x = 4 覆盖路径:a-c-e

a = 1, b = 0, x = 1 覆盖路径:a-b-d

a = 2, b = 1, x = 1 覆盖路径:a-b-e

a = 3, b = 0, x = 4 覆盖路径:a-c-d

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值