白盒测试入门

一、白盒测试是什么

根据代码内部逻辑实现来进行的测试,通常由开发人员在单元测试阶段进行验证。

二、白盒测试方法有哪些

有代码检查法、静态结构分析、逻辑覆盖法、基本路径覆盖法和路径覆盖等。

2.1 逻辑覆盖方法有哪些

方法

说明

语句覆盖

每条语句至少执行一次

判定覆盖(也叫分支覆盖)

每个判定的每个分支至少执行一次

条件覆盖

每个判定的每个条件应取各种可能的值

判定/条件覆盖

同时满足判定覆盖条件覆盖

条件组合覆盖

每个判定中各条件的每一种组合至少出现一次

路径覆盖

每一条可能的路径至少执行一次

2.2 逻辑覆盖的强弱

发现错误能力由弱到强如下:

语句覆盖< 判定覆盖< 条件覆盖< 判断/条件覆盖< 条件组合覆盖< 路径覆盖

补充:
1 满足判定/条件覆盖的用例也一定满足条件覆盖、判定覆盖、语句覆盖

2 路径覆盖未必考虑判定/条件结果的组合,并不能替代判定/条件覆盖和条件组合覆盖

三、实例说明

3.1 源代码

public void function(int a, int b, int c)

{

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

    {

        c /= a;

    }

    if ((a == 5) || (c > 1))

    {

        c += 1;

    }

    c = a + b + c;

}

3.2 程序流程图

白盒测试入门_第1张图片

图中A、B、C、D、E分别表示路径,并且记第一个判断为P1,第二个判断为P2;一共有4个条件,我们记C1:a>1、C2:b=0、C3:a=5、C4:c>1,接下来开始分析。

3.3 方法分析

3.3.1 语句覆盖

测试数据

C1

C2

C3

C4

P1

P2

路径

a=5,b=0,c=2

T

T

T

T

T

T

A-C-E

解析:P1和P2至少执行一次

3.3.2 判定覆盖

测试数据

C1

C2

C3

C4

P1

P2

测试路径

a=6,b=0,c=1

T

T

F

F

T

F

A-C-D

a=5,b=1,c=2

T

F

T

T

F

T

A-B-E

解析:P1和P2的真、假至少执行一次

3.3.3 条件覆盖

测试数据

C1

C2

C3

C4

P1

P2

测试路径

a=1,b=0,c=1

F

T

F

F

F

F

A-B-E

a=5,b=1,c=2

T

F

T

T

F

T

A-B-D

解析:

1 P1有两个条件C1、C2,P2有两个条件C3、C4

2 C1、C2、C3、C4的真、假至少执行一次

3.3.4 判定/条件覆盖

测试数据

C1

C2

C3

C4

P1

P2

测试路径

a=1,b=1,c=2

F

F

F

T

F

T

A-B-E

a=5,b=0,c=1

T

T

T

F

T

F

A-C-D

解析:

1 需满足判断覆盖,即P1和P2的真、假至少执行一次

2 需满足条件覆盖,即C1、C2、C3、C4的真、假至少执行一次

3.3.5 条件组合覆盖

测试数据

C1

C2

C3

C4

P1

P2

测试路径

a=5,b=0,c=2

T

T

T

T

T

T

A-C-E

a=5,b=1,c=1

T

F

T

F

F

T

A-B-E

a=1,b=0,c=2

F

T

F

T

F

T

A-B-E

a=1,b=1,c=1

F

F

F

F

F

F

A-B-D

分析:

1 需满足C1、C2的四种组合(真真、真假、假真、假假)

2 需满足C3、C4的四组组合(真真、真假、假真、假假)

3.3.6 路径覆盖

测试数据

C1

C2

C3

C4

P1

P2

测试路径

a=6,b=0,c=2

T

T

F

T

T

T

A-C-E

a=5,b=1,c=2

T

F

T

T

F

T

A-B-E

a=2,b=0,c=1

T

T

F

F

T

F

A-C-D

a=1,b=0,c=1

F

T

F

F

F

F

A-B-D

分析:

1 所有可能路径至少执行一遍

2 所有可能路径ABE、ABD、ACE、ACD

你可能感兴趣的:(白盒测试,单元测试)