白盒测试方法
⦁ 白盒测试也称结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件或程序验证。
⦁ 采用白盒测试方法必须遵循以下几条原则,才能达到测试的目的:
⦁ 保证一个模块中的所有独立路径至少被测试一次。
⦁ 所有逻辑值均需测试真 (true) 和假 (false) 两种情况。
⦁ 检查程序的内部数据结构,保证其结构的有效性。
⦁ 在上下边界及可操作范围内运行所有循环。
主要方法有:
语句覆盖
判定覆盖
条件覆盖
判定条件覆盖
条件组合覆盖
路径覆盖
基本路径测试法
逻辑覆盖 是通过对程序逻辑结构的遍历实现程序的覆盖。它是一系列测试过程的总称,这组测试过程逐渐进行越来越完整的通路测试。
根据覆盖目标的不同和覆盖源程序语句的详尽程度,逻辑覆盖又可分为:语句覆盖,判定覆盖,条件覆盖,条件/判定覆盖,条件组合覆盖,路径覆盖
5.实例
if (a>1) and (b = 0)
then x = x / a
if (a = 2) or (x > 1)
then x = x+ 1
画出程序流程图并分别使用语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖方法设计测试用例。
测试用例如下:
1)语句覆盖:每一个可执行语句至少执行一次
a = 2, b = 0, x = 3 覆盖路径:a-c-e
- 判定覆盖:每个判定的“真”和“假”至少执行一次
测试用例如下:
a = 2, b = 0, x = 3 覆盖路径:a-c-e
a = 1, b = 0, x = 1 覆盖路径:a-b-d
3)条件覆盖:每个判定的的每个条件取得各种可能的结果
测试用例如下:
a = 2, b = 0, x = 3 取到a>1(同时满足a=2), b = 0, x>1
a = 1, b = 1, x = 1 取到a <= 1(同时满足a!=2), b != 0, x <= 2
4)判定/条件覆盖:每个判定的“真”和“假”至少执行一次且每个判定的的每个条件取得各种可能的结果
测试用例如下:
a = 2, b = 0, x = 3 覆盖路径a-c-e 取到a>1(同时满足a=2), b = 0, x>1
a = 1, b = 1, x = 1 覆盖路径a-b-d 取到a <= 1(同时满足a!=2), b != 0, x <= 2
5)条件组合覆盖:每个判定的条件组合至少执行一次
需要覆盖的条件组合如下:
a > 1, b = 0
a>1, b != 0
a <= 1, b = 0
a <= 1, b != 0
a = 2, x > 1
a = 2, x< = 1
a != 2, x > 1
a != 2, x <= 1
测试用例如下:
a = 2, b = 0, x = 3 覆盖组合1,5
a = 2, b = 1, x = 1 覆盖组合2,6
a = 1, b = 0, x = 3 覆盖组合3,7
a = 1, b = 1, x = 1 覆盖组合4,8
6)路径覆盖:每条路径至少执行一次
测试用例如下:
a = 2, b = 0, x = 3 覆盖路径: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 = 3 覆盖路径:a-c-d
6.实例
2.基本路径测试方法
void Sort ( int iRecordNum, int iType )
1 {
2 int x=0;
3 int y=0;
4 while ( iRecordNum-- > 0 )
5 {
6 If ( iType==0 )
7 x=y+2;
8 else
9 If ( iType==1 )
10 x=y+10;
11 else
12 x=y+20;
13 }
14 }
使用基本路径测试方法设计测试用例。
对应流图如下:
经路径分析,得到几个路径为:
路径1: 1-2-9
路径2: 1-2-3-4-8-2-...
路径3: 1-2-3-5-7-8-2_...
路径4: 1-2-3-5-6-8-2--…
测试用例:
路径1: iRecordNum为非正整数,iType 为任整数
路径2: IRecordNum为正整数,iIype 为0
路径3: RecordNum为正整数,iIype 为1
路径4: RecordNum为正整数,iIype 为非0、非1整数。