博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

白盒测试的6种方法

Posted on 2011-03-18 14:18  Watir  阅读(2761)  评论(0编辑  收藏  举报

程序图:

image

1. 语句覆盖

定义: 选择足够的测试用例,使得运行这些测试用例时,被测试程序的每个语句至少执行一次

测试数据: x=4,y=2,z=0

2. 判定覆盖

定义:选择足够的测试用例,使得运行这些测试用例时,每个判定的所有可能结果至少出现一次

测试数据:

   1. x=3, y=3, z=0     (sacbd  a为真,b为假)

   2. x=1, y=2, z=0       (sabed a为假,b为真)

3. 条件覆盖

定义:选择足够的测试用例,使得选择这些测试用例时,判定中的每个条件的所有可能结果至少出现一次

测试数据:

   1. x=1,y=2,z=0  (sacbed)

   2. x=2,y=1,z=1 (sabed) 

问题:满足了条件覆盖标准,但判定B为假的结果并未发现

4. 条件/判定覆盖

定义: 选择足够的用例,使得运行这些用例时,判定中每个条件的所有可能结果至少出现一次,并且每个判定结果也出现一次

测试数据:

1. x=4,y=2,z=0 (sacbed, a为真,b为真)

2. x=1,y=1,z=1 (sabd, a为假,b为假)

5. 条件给合覆盖

定义: 每个判定中条件结果的所有可能组合至少出现一次

测试数据:

判断a的条件组合:

1. y>1,z=0

2.y>1,z!=0

3. y<=1,z=0

4.y<=1,z!=0

判断b的条件组合:

可以选择4个测试用例来覆盖:

x=4,y=2,z=0 (sacbed)

x=1,y=2,z=1 (sabed)

x=2,y=1,z=0 (sabed)

x=1,y=1,z=1 (sabd)

有些路还是覆盖不到 sacbd

6. 路径覆盖

定义: 程序的每条可能执行到的路径至少经过一次

数据:

1. x=4,y=2,z=0  (sacbed)

2. x=3,y=3,z=0 (sacbd)

3. x=2,y=1,z=0 (sabed)

4. x=1,y=1,z=1 (sabd)

问题:不能代替条件覆盖和条件组合覆盖