语句覆盖测试用例

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

条件覆盖2: A>1, B!=0, A=2, X<=1 真假 A<=1, B=0, A!=2, X>1 混搭
用例 A B X
1 211
2
103
条件覆盖特点
★条件覆盖通常比判定覆盖强,因为它使判 定表达式中每个条件都取到了两个不同的结果, 而判定覆盖只关心整个判断表达式的值。在上 页的测试用例中,条件覆盖1不但覆盖了所有判 定表达式中各条件的所有可能结果,而且覆盖 了所有判定的真、假分支,覆盖性很强。但并 不是所有满足条件覆盖的要求的测试数据都能 满足判定覆盖的要求,如条件覆盖2.
6 其他白盒测试方法简介
逻辑覆盖
逻辑覆盖以程序的内部逻辑结构 为基础,主要分以下几种方式:
✓语句覆盖 ✓判定覆盖 ✓条件覆盖 ✓判定/条件覆盖 ✓条件组合覆盖 ✓路径覆盖
Βιβλιοθήκη Baidu
1 语句覆盖 Statement Coverage
设计足够多的测试用例, 使得程序中的每个语句至 少执行一次。
1 语句覆盖
入口
件也就不起作用了。因此,采用判
定/条件覆盖时,判定表达式中的
错误不一定能测试出来。
5 条件组合覆盖 Condition Combination Coverage
设计足够多的测试用例, 使得每个判定表达式中条件 的各种可能组合都至少出现 一次。
入口
a
A>1 AND B=0
T
X=X/A
*表面上看,判定/条件覆盖
测试了所有条件的所有可能结果,
但事实上有些条件会掩盖另一些条
件。例如,在“与”表达式中,如
果某一条件为“假”,则整个判定
T
的值为“假”,这个判定中的其他
X = X + 1 条件就不起作用了。同样地,若在
“或”表达式中某一条件为“真”,
则整个判定的值为“真”,其它条
4 判定/条件覆盖 Decision/Condition Coverage
设计足够多的测试用例, 使得判定中的每个条件都取 到各种可能的值,而且每个 判定表达式也都取到各种可 能的结果。
4 判定/条件覆盖
入口
2
1
用例 A B X
1
204
A>1 AND B=0
F
A=2 OR X > 1
F 返回
2
111
2 判定覆盖(分支覆盖)
入口
2
1
用例 A B X
A>1
T
AND B=0
X=X/A
1 204 2 111
F
A=2
T
OR X > 1
X=X+1
F 返回
★判定覆盖比语 句覆盖强,但是 对程序逻辑的覆 盖程度仍然不高。
3条 件 覆 盖 Condition Coverage
不仅每个语句都必须至少执 行一次,而且每个判定表达式中 的每个条件都取到各种可能的结 果,即每个条件的“真”条件和 “假”条件至少都执行一次。
入口
2
1
A>1
T
AND B=0
F
A=2
T
OR X > 1
F 返回
3 条件覆盖
程序中共有4个条件8个结果
X=X/A
条件覆盖1:
A>1, B=0,A=2, X>1 (全真) A<=1,请B思!=考0, :A!这=2个, X条<=1(全假)
用例件例覆是盖否A的完测全B试?用 X 1 204
2
111
X=X+1
动态测试:根据程序的控制结构设计测试用例,要求: ➢ 保证一个模块中的所有独立路径至少执行一次 ➢ 对所有逻辑值均需测试True和False ➢ 在上下边界及可操作范围内运行所有循环 ➢ 检查内部数据结构以确保其有效性
白盒测试的常用方法
逻辑覆盖
基本路 径测试
程序结 构分析
插桩
控制流图的图形符号
顺序结构
A>1
T
AND B=0
X=X/A
用例 A B X 1 204
F
A=2
T
OR X > 1
X=X+1
F 返回
★语句覆盖对程 序的逻辑覆盖很 少,只能测试部 分语句,是很弱 的逻辑判断标准。
语句覆盖
int foo(int a, int b) {
return a / b; }
测试用例: a = 10, b = 5
第四章
第四章 白盒测试方法
1 白盒测试基本概念
2

逻辑覆盖

3
基本路径测试


4
循环测试
5 面向对象的白盒测试
6 其他白盒测试方法简介
白盒测试的基本概念
➢ 白盒测试:把程序看成装在 一个透明的盒子里,程序的 结构和处理过程完全可见, 按照程序的内部逻辑测试程 序,以检查程序中的每条通 路是否都能按照预先要求正 确工作。
行到{,没有做到判定覆盖。 *结论} :re判tu定rn覆1盖; /不/ 分一支定二包含条 }件覆盖,条件覆盖也不一定包
含判定覆盖
判定覆盖: (1)a = 5, b = 5 覆盖了分支一 (2)a = 15, b = 15 覆盖了分支二
条件覆盖: (1)a = 5, b = 5 true,true (2)a = 15, b = 15 false,false
➢ 白盒测试针对被测单元的内 部进行,它的突出特点是基 于被测程序的源代码,而不 是基于软件的规格说明书。
白盒测试方法的分类
静态测试:着重在于纠正软件系统在描述、表示和规 格上的错误,是进一步测试的前提,方法包括:
➢ 桌面检查(Desk checking) ➢ 代码评审(Code reading/review) ➢ 走查(Walkthroughs)
判定覆盖 vs 条件覆盖
假如测试用例设计为:
in(t1f)ooa(i=nt5a,, bin=t b1)5
{ true, false 分支一 (2)ifa(a=<115,0 |b| b= <5 10) // 判定
{false, true 分支一 return 0; // 分支一
这时}候,虽然做到了条件覆盖, 但却e没ls有e 把两个判定分支都执
★尽管语句覆盖率达到了所谓的100%, 但是却没有发现最简单的Bug,如: b=0时会出现一个除零异常。
2 判定覆盖 Dicision Coverage
不仅每个语句都必须至少执 行一次,而且每个判定表达式的 每种可能的结果都应该至少执行 一次,即每个判定的“真”分支 和“假”分支至少都执行一次。 判定覆盖又称分支覆盖。
IF 选择结构
WHILE 循环结构 UNTIL 循环结构
CASE 多分支结构 选择结构
1
2
3
6
4
7
8
5
1 1 (a)程序流程图 )
1 结点
边 区域
2
6 R2
7 R3 8
4
R1
9
10
R4
11 (b)控制流图
第四章 白盒测试方法
1
白盒测试基本概念
2

逻辑覆盖

3
基本路径测试


4
循环测试
5
面向对象的白盒测试
相关文档
最新文档