第4章(1)白盒测试方法1-逻辑覆盖法解析
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{(A=2) or (X>1)} = { not (A>1) or not (B=0)} and
{(A=2) or (X>1)} = not (A>1) and (A=2) or
not (A>1) and (X>1) or not (B=0) and (A=2) or not (B=0) and (X>1)
• 白盒测试将被测程序看作一个打开的 盒子,测试者能够看到被测源程序, 可以分析被测程序的内部结构,此时 测试的焦点集中在根据其内部结构设 计测试用例。
• 又称为 结构测试 或 逻辑驱动测试
白盒测试遵循的原则 Logo
• 采用白盒测试方法必须遵循以下几条原则,才 能达到测试的目的:
➢ 保证一个模块中的所有独立路径至少被测试一 次。
• 测试用例可以针对黑盒测试设计用例,也可以 针对白盒测试设计用例,我今天开始讲针对
白盒测试的用例设计方法。
• 华为的评价标准
引例:为什么要进行白盒测试? Logo
如果所有软件错误的根源都可以追溯 到某个唯一原因,那么问题就简单了。 然而,事实上一个bug 常常是由多个 因素共同导致的,如下图所示。
覆盖 a-c-e【L1】
(A==2) and (B==0) or (A>1) and (B==0) and (X/A>1)
{ not (A=2) and not (X>1) } = not (A>1) and not (A=2) and not (X>1)
or not (B=0) and not (A=2) and not (X>1)
例子 Logo
L3 :( a b e) = not {(A>1) and (B=0)} and
我们主要介绍这几种 Logo
• A. 逻辑覆盖法 • B. 基本路径测试法 • C. 循环测试 • D. 程序插桩技术
A 逻辑覆盖法 Logo
主要是测试覆盖率,以程序内在逻辑结 构为基础的测试。包括以下6种类型:
语句覆盖 判定覆盖 条件覆盖
判定-条件覆盖 条件组合覆盖 路径覆盖。
软件测试
第4章 白盒测试方法 ——逻辑覆盖法
目录
1 白盒测试方法的引入
2
语句覆盖
3
判定覆盖
4
条件覆盖
5
判定条件覆盖
6
条件组合覆盖
7
路径覆盖
Logo
知识回顾 Logo
➢ 软件测试技术分类:
① 按面向测试对象粒度(按开发阶段)分:
② 按测试方法分:
③ 按运行状态分:
➢ 什么是测试用例?由哪些部分组成??
➢ 所有逻辑值均需测试真 (true) 和假 (false) 两种情况。
➢ 检查程序的内部数据结构,保证其结构的有效 性。
➢ 在上下边界及可操作范围内运行所有循环。
Logo
白盒测试 Logo
• 程序的结构形式是白盒 250*(1+0.015)*((1+0.015)^360-
测试的主要依据。
1)/0.015
(A>1) and (B=0) and (X/A>1) = (A=2) and (B=0) or
(A>1) and (B=0) and (X/A>1)
例子 Logo
L2: ( a b d ) = not{(A>1) and (B=0)} and
not{(A=2) or (X>1)} = { not (A>1) or not (B=0) } and
Logo
黑盒查不到的问题 Logo
假设此时开发工作已结束,程序送交到测 试组,没有人知道代码中有一个潜在的被 0 除的错误。若测试组采用的测试用例的 执行路径没有同时经过x=0和y=5/x进行测 试,显然测试工作似乎非常完善,测试用 例覆盖了所有执行语句,也没有被 0 除的 错误发生。
白盒测试定义 Logo
• 在例图中,正好所有的可执行语句都 在路径L1上,所以选择路径 L1设计 测试用例,就可以覆盖所有的可执行 语句。
语句覆盖 Logo
• 测试用例的设计格式如下: 【输入的(A, B, X),输出的(A, B, X)】 • 为图例设计满足语句覆盖的测试用例是:
【(2, 0, 4),(2, 0, 3)】
➢ 这个程序可以用来求什么??
• k = i;
• for(j = i+1; j <= n; j++)
•
{ if(A[j] < A[k]) k = j;}
回顾:测试用例 Logo
• 测试用例由测试输入数据以及与之对应的输出 结果组成。
• 测试用例设计的好坏直接决定了测试的效果和 结果。所以说在软件测试活动中最关键的步骤 就是设计有效的测试用例。
开始
a
Logo
b 假 (A>1) && (B==0) 真 c
X=X/A
d F (A==2) || (X>1) T e
X=X+1
例子 Logo
L1: ( a c e ) = {(A>1) and (B=0)} and
{(A=2) or (X/A>1)} = (A>1) and (B=0) and (A=2) or
• 程序结构主要用 流程 图 N-S图来表示(p.65)
• 程序的执行路径数目庞
大,让程序的所有路径
都执行一次,全面的白 3581322.293419985680302829734 315
盒测试将产生百分之百 正确的程序,实际上是
白盒测试 —带上X光眼镜测 试
不可能的
• 对一个具有多重选择和循环嵌套的程序,不同 的路径数目可能是天文数字。给出一个小程序 Logo 的流程图,它包括了一个执行20次的循环。
• 包含的不同执行路径数达520条,对每一条路径
进行测试需要1毫秒,假定一年工作365 × 24 小时,要想把所有路径测试完,需3170年。
白盒测试方法 Logo
白盒测试主要是检查程序的内部结构、 逻辑、循环和路径。常用测试用例设 计方法有:
➢逻辑覆盖法(逻辑驱动测试) ➢ 基本路径法
• 此外还有: –循环测试法 –程序插桩法
例子 Logo
L4: ( a c d ) = {(A>1) and (B=0)} and
not {(A=2) or (X/A>1)} = (A>1) and (B=0) and not (A=2) and
not (X/A>1)
语句覆盖 Logo
• 语句覆盖就是设计若干个测试用例, 运行被测程序,使得每一可执行语句 至少执行一次。
{(A=2) or (X>1)} = not (A>1) and (A=2) or
not (A>1) and (X>1) or not (B=0) and (A=2) or not (B=0) and (X>1)
• 白盒测试将被测程序看作一个打开的 盒子,测试者能够看到被测源程序, 可以分析被测程序的内部结构,此时 测试的焦点集中在根据其内部结构设 计测试用例。
• 又称为 结构测试 或 逻辑驱动测试
白盒测试遵循的原则 Logo
• 采用白盒测试方法必须遵循以下几条原则,才 能达到测试的目的:
➢ 保证一个模块中的所有独立路径至少被测试一 次。
• 测试用例可以针对黑盒测试设计用例,也可以 针对白盒测试设计用例,我今天开始讲针对
白盒测试的用例设计方法。
• 华为的评价标准
引例:为什么要进行白盒测试? Logo
如果所有软件错误的根源都可以追溯 到某个唯一原因,那么问题就简单了。 然而,事实上一个bug 常常是由多个 因素共同导致的,如下图所示。
覆盖 a-c-e【L1】
(A==2) and (B==0) or (A>1) and (B==0) and (X/A>1)
{ not (A=2) and not (X>1) } = not (A>1) and not (A=2) and not (X>1)
or not (B=0) and not (A=2) and not (X>1)
例子 Logo
L3 :( a b e) = not {(A>1) and (B=0)} and
我们主要介绍这几种 Logo
• A. 逻辑覆盖法 • B. 基本路径测试法 • C. 循环测试 • D. 程序插桩技术
A 逻辑覆盖法 Logo
主要是测试覆盖率,以程序内在逻辑结 构为基础的测试。包括以下6种类型:
语句覆盖 判定覆盖 条件覆盖
判定-条件覆盖 条件组合覆盖 路径覆盖。
软件测试
第4章 白盒测试方法 ——逻辑覆盖法
目录
1 白盒测试方法的引入
2
语句覆盖
3
判定覆盖
4
条件覆盖
5
判定条件覆盖
6
条件组合覆盖
7
路径覆盖
Logo
知识回顾 Logo
➢ 软件测试技术分类:
① 按面向测试对象粒度(按开发阶段)分:
② 按测试方法分:
③ 按运行状态分:
➢ 什么是测试用例?由哪些部分组成??
➢ 所有逻辑值均需测试真 (true) 和假 (false) 两种情况。
➢ 检查程序的内部数据结构,保证其结构的有效 性。
➢ 在上下边界及可操作范围内运行所有循环。
Logo
白盒测试 Logo
• 程序的结构形式是白盒 250*(1+0.015)*((1+0.015)^360-
测试的主要依据。
1)/0.015
(A>1) and (B=0) and (X/A>1) = (A=2) and (B=0) or
(A>1) and (B=0) and (X/A>1)
例子 Logo
L2: ( a b d ) = not{(A>1) and (B=0)} and
not{(A=2) or (X>1)} = { not (A>1) or not (B=0) } and
Logo
黑盒查不到的问题 Logo
假设此时开发工作已结束,程序送交到测 试组,没有人知道代码中有一个潜在的被 0 除的错误。若测试组采用的测试用例的 执行路径没有同时经过x=0和y=5/x进行测 试,显然测试工作似乎非常完善,测试用 例覆盖了所有执行语句,也没有被 0 除的 错误发生。
白盒测试定义 Logo
• 在例图中,正好所有的可执行语句都 在路径L1上,所以选择路径 L1设计 测试用例,就可以覆盖所有的可执行 语句。
语句覆盖 Logo
• 测试用例的设计格式如下: 【输入的(A, B, X),输出的(A, B, X)】 • 为图例设计满足语句覆盖的测试用例是:
【(2, 0, 4),(2, 0, 3)】
➢ 这个程序可以用来求什么??
• k = i;
• for(j = i+1; j <= n; j++)
•
{ if(A[j] < A[k]) k = j;}
回顾:测试用例 Logo
• 测试用例由测试输入数据以及与之对应的输出 结果组成。
• 测试用例设计的好坏直接决定了测试的效果和 结果。所以说在软件测试活动中最关键的步骤 就是设计有效的测试用例。
开始
a
Logo
b 假 (A>1) && (B==0) 真 c
X=X/A
d F (A==2) || (X>1) T e
X=X+1
例子 Logo
L1: ( a c e ) = {(A>1) and (B=0)} and
{(A=2) or (X/A>1)} = (A>1) and (B=0) and (A=2) or
• 程序结构主要用 流程 图 N-S图来表示(p.65)
• 程序的执行路径数目庞
大,让程序的所有路径
都执行一次,全面的白 3581322.293419985680302829734 315
盒测试将产生百分之百 正确的程序,实际上是
白盒测试 —带上X光眼镜测 试
不可能的
• 对一个具有多重选择和循环嵌套的程序,不同 的路径数目可能是天文数字。给出一个小程序 Logo 的流程图,它包括了一个执行20次的循环。
• 包含的不同执行路径数达520条,对每一条路径
进行测试需要1毫秒,假定一年工作365 × 24 小时,要想把所有路径测试完,需3170年。
白盒测试方法 Logo
白盒测试主要是检查程序的内部结构、 逻辑、循环和路径。常用测试用例设 计方法有:
➢逻辑覆盖法(逻辑驱动测试) ➢ 基本路径法
• 此外还有: –循环测试法 –程序插桩法
例子 Logo
L4: ( a c d ) = {(A>1) and (B=0)} and
not {(A=2) or (X/A>1)} = (A>1) and (B=0) and not (A=2) and
not (X/A>1)
语句覆盖 Logo
• 语句覆盖就是设计若干个测试用例, 运行被测程序,使得每一可执行语句 至少执行一次。