语句覆盖测试用例

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

页的测试用例中,条件覆盖1不但覆盖了所有判
定表达式中各条件的所有可能结果,而且覆盖 了所有判定的真、假分支,覆盖性很强。但并 不是所有满足条件覆盖的要求的测试数据都能 满足判定覆盖的要求,如条件覆盖2.
判定覆盖 vs 条件覆盖
假如测试用例设计为: 判定覆盖: int foo(int a, b int (1 )a = 5, = b) 15 (1)a = 5, b = 5 { true, false 分支一 覆盖了分支一 if a (a=<15, 10 || (2) bb =< 5 10) // 判定 (2)a = 15, b = 15 {false, true 分支一
5 条 件 组 合 覆 盖 Condition Combination Coverage
F
T
返回
* 表面上看,判定/条件覆盖 测试了所有条件的所有可能结果, 但事实上有些条件会掩盖另一些条 件。例如,在“与”表达式中,如 果某一条件为“假”,则整个判定 的值为“假”,这个判定中的其他 X = X + 1 条件就不起作用了。同样地,若在 “或”表达式中某一条件为“真”, 则整个判定的值为“真”,其它条 件也就不起作用了。因此,采用判 定/条件覆盖时,判定表达式中的 错误不一定能测试出来。
的每个条件都取到各种可能的结 果,即每个条件的“真”条件和 “假”条件至少都执行一次。
3 条件覆盖
入口
程序中共有4个条件8个结果
1
T
2
A>1 AND B=0
F
X =X /A
条件覆盖1: A>1, B=0,A=2, X>1 (全真) A<=1,请思考:这个条 B!=0, A!=2, X<=1(全假) 件覆盖的测试用 A B X 用例 例是否完全? 1 2 0 4
插桩
控制流图的图形符号
WHILE 循环结构
顺序结构
IF 选择结构
UNTIL 循环结构
CASE 多分支结构 选择结构
1 边 1
2
结点 区域
2 6 3 6 7 8 4 5 7 R3 8 R1 R2
4
9 10 R4
1 1 (a)程序流程图 )
11 (b)控制流图
第四章 白盒测试方法
1
白盒测试基本概念
2 判定覆盖(分支覆盖)
入口
2
1
T
用例
A
B
X
A>1 AND B=0
F
1
X =X /A 2
2
1
0
1
4
1
A=2 OR X > 1
F
T
X=X+1
返回
★判定覆盖比语 句覆盖强,但是 对程序逻辑的覆 盖程度仍然不高。
3 条 件 覆 盖 Condition Coverage
不仅每个语句都必须至少执
行一次,而且每个判定表达式中
4 判定/条件覆盖 Decision/Condition Coverage
设计足够多的测试用例, 使得判定中的每个条件都取 到各种可能的值,而且每个 判定表达式也都取到各种可
能的结果。
4 判定/条件覆盖
入口
2
1
T
A>1 AND B=0
F
用例 1 2 X =X /A
A 2 1
B 0 1
X 4 1
A=2 OR X > 1
白盒测试针对被测单元的内
部进行,它的突出特点是基 于被测程序的源代码,而不 是基于软件的规格说明书。
白盒测试方法的分类
静态测试:着重在于纠正软件系统在描述、表示和规 格上的错误,是进一步测试的前提,方法包括: 桌面检查(Desk checking) 代码评审(Code reading/review)
走查(Walkthroughs)
动态测试:根据程序的控制结构设计测试用例,要求:
保证一个模块中的所有独立路径至少执行一次
对所有逻辑值均需测试True和False 在上下边界及可操作范围内运行所有循环
检查内部数据结构以确保其有效性
白盒测试的常用方法
逻辑覆盖
基本路 径测试
程序结 构分析
2
T
1
1
1
A=2 OR X > 1
F
X=X+1
源自文库返回
条件覆盖2: A>1, B!=0, A=2, X<=1 真假 A<=1, B=0, A!=2, X>1 混搭 A B X 用例 1 2 1 1 2 1 0 3
条件覆盖特点
★条件覆盖通常比判定覆盖强,因为它使判 定表达式中每个条件都取到了两个不同的结果, 而判定覆盖只关心整个判断表达式的值。在上
主 要 内 容
2
3 4 5 6
逻辑覆盖
基本路径测试
循环测试
面向对象的白盒测试
其他白盒测试方法简介
逻 辑 覆 盖
逻辑覆盖以程序的内部逻辑结构 为基础,主要分以下几种方式:
语句覆盖 判定覆盖 条件覆盖
判定/条件覆盖
条件组合覆盖 路径覆盖
1 语 句 覆 盖 Statement Coverage
设计足够多的测试用例,
使得程序中的每个语句至 少执行一次。
1 语句覆盖
入口
用例
A>1 AND B=0
F
T
A 2
B 0
X 4
1
X =X /A
A=2 OR X > 1
F
T
X=X+1
★语句覆盖对程 序的逻辑覆盖很 少,只能测试部 分语句,是很弱 的逻辑判断标准。
返回
语句覆盖
int foo(int a, int b) { return a / b; }
测试用例: a = 10, b = 5
★尽管语句覆盖率达到了所谓的100%, 但是却没有发现最简单的Bug,如: b=0时会出现一个除零异常。
2 判 定 覆 盖 Dicision Coverage
不仅每个语句都必须至少执 行一次,而且每个判定表达式的
每种可能的结果都应该至少执行
一次,即每个判定的“真”分支 和“假”分支至少都执行一次。 判定覆盖又称分支覆盖。
第 四 章
第四章 白盒测试方法
1
白盒测试基本概念
逻辑覆盖 基本路径测试 循环测试 面向对象的白盒测试
主 要 内 容
2
3 4 5 6
其他白盒测试方法简介
白盒测试的基本概念
白盒测试:把程序看成装在
一个透明的盒子里,程序的 结构和处理过程完全可见, 按照程序的内部逻辑测试程 序,以检查程序中的每条通 路是否都能按照预先要求正 确工作。
return 0; // 分支一
覆盖了分支二
这时候,虽然做到了条件覆盖, } 但却没有把两个判定分支都执 else { 行到,没有做到判定覆盖。 *结论:判定覆盖不一定包含条 } }件覆盖,条件覆盖也不一定包 含判定覆盖
return 1; // 分支二
条件覆盖: (1)a = 5, b = 5 true,true (2)a = 15, b = 15 false,false
相关文档
最新文档