第07课 白盒测试(1)—逻辑覆盖测试

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

返回
4 判定/条件覆盖
同时满足判定覆盖的和条件 覆盖的逻辑覆盖称为判定/条件覆 盖。它的含义是: 设计足够的测 试用例,使得判定中的每个条件 都取到各种可能的值,而且每个 判定表达式也都取到各种可能的 结果。
4 判定/条件覆盖
入口
用例1
A B X
2
1
0
1
4
1
A> 1 AND B=0 F A=2 OR X > 1 F
练习一
1.如图显示某程序的逻辑结构。试为它设计足够
的测试用例,分别实现对程序的判定覆盖、条件 覆盖和条件组合覆盖。
覆盖种类
判定覆盖
Байду номын сангаас
需满足的条件
A>0, B=0 A>0, B0或 A0, B=0或 A0, B0 以下四种情况各出现一次 B=0 B0
测试数据
A=2, B=0 A=2, B=1或 A=0, B=0或 A=-1, B=1 A=2,B=0 A=-1,B=1 A=2, B=0 A=2, B=1
显然,满足条件组合覆盖的测试数据,也一定满足判定 覆盖、条件覆盖和判定/条件覆盖标准。
5 条件组合覆盖 TEST CASES: A=2,B=0,x=4 A=2,B=1,x=1 A=1,B=0,x=2 A=1,B=1,x=1
入口
A> 1 AND B=0 F A=2 OR X > 1 F
T
X=X/A
?
覆盖
路径:P1(TT)P2(FF)P3(FT)P4(TF)
3 条件覆盖
设计足够的测试用例,在 语句覆盖的基础上使得程序判 定中的每个条件能获得各种可 能的结果。
3 条件覆盖
入口
A> 1 AND B=0 F A=2 OR X > 1 F
T
X=X/A
T
X=X+1
返回
将每一个条件都 列出来: T1 A>1 T1 A<=1 T2 B=0 T2 B!=0 T3 A=2 T3 A!=2 X>1 T4 X<=1 T4
请写出各测试用例的 执行路径。然后考察是 否覆盖了(TF)路径。
T
X=X+1
返回
6 路径覆盖
设计足够的测试用例,使 程序中的每一条可能路径都至 少执行一次。
6每条可能的路径都至少执行一次。 路径覆盖
入口
A> 1 AND B=0 F A=2 OR X > 1 F 返回
T
X=X/A
Test cases: ① A=1 , B=1 , ② A=1 , B=1 , ③ A=3 , B=0 , ④ A=2 , B=0 ,
第3章 白盒测试方法
把程序看成装在一个透明的白盒子里,程序的结构和处理 过程完全可见,按照程序的内部逻辑测试程序,以检查程 序中的每条通路是否都能按照预先要求正确工作。
1 2
黑盒测试与白盒测试 逻辑覆盖测试
主 要 内 容
3 4 5 6
路径分析测试
分支条件测试、循环测试
其它测试类型
综合测试实例
黑盒测试与白盒测试
3 条件覆盖 测试用例 覆盖分支 条件取值
T1, T 2, T 3, T 4
覆盖路径 P1(TT)
(204)(213) A>1, B=0, A=2, X>1
(101)(101) A<=1,B=0, A!=2, X<=1 (211)(212) A>1, B!=0, A=2 ,X<=1
T1, T 2, T 3, T 4
T
X=X/A
输出
?
T X=X+1
返回
路径:P1(TT)P2(FF)P3(FT)P4(TF)
只包含了 P1一条 第一个判断中的 逻辑运算符 路径,所以语句 “AND”若错写 覆盖的覆盖程度 成了“OR”,能否 是最弱的 测试出来?
2 判定覆盖
设计足够的测试用例,使 得在语句覆盖的基础上,程序 中每个判定的取“真”分支和 取“假”分支至少都执行一次 ,判定覆盖又称分支覆盖。
任何工程产品都可以使用白盒测试和黑盒 测试两种方法之一进行测试。 • 1.黑盒测试 黑盒测试:已知产品的功能设计规格和用 户手册,可以进行测试证明每个功能是否实现、 每个实现了的功能是否符合客户要求。

软件的黑盒测试意味着测试要在软件的接 口处进行,测试人员完全不考虑程序内部的逻 辑结构和内部特性,只依据程序的需求规格说 明书和用户手册,检查程序的功能是否符合它 的功能说明,以及性能是否满足用户的要求。 因此黑盒测试又叫功能测试或数据驱动测试。
白盒测试的基本概念 什么是白盒测试
把程序看成装在一 个透明的白盒子里, 程序的结构和处理 过程完全可见,按 照程序的内部逻辑 测试程序,以检查 程序中的每条通路 是否都能按照预先 要求正确工作。
不可能进行彻底的白盒测试
左图是具有某程序的流程图,假设循环10次,请 计算一下有多少条程序执行通路?假设由图中得 到的所有路径都是可执行路径,执行一次循环大
E. ⑤
F. ⑧
总 结
逻辑覆盖技术
发 现 错 误 能 力 由 弱 到 强 语句覆盖:每条语句至少执行一次 判定覆盖:每个判定的每个分支至少执行一次 条件覆盖:每个判定的每个条件应取到各种可能的值 判定-条件覆盖:同时满足判定覆盖和条件覆盖 条件组合覆盖:每个判定中各条件的每一种组合至少出 现一次 路径覆盖:使程序中每一条可能的路径至少执行一次
T
X=X/A
用例2
T
X=X+1
返回
判定/条件覆盖仍有缺陷。从表面上看, 它测试了所有条件的所有可能结果,但事实上 并不是这样。因为某些条件掩盖了另一些条件。 例如,在逻辑表达式中,如果“与”表达式中 某一条件为“假”,则整个表达式的值为 “假”,这个表达式中另外的几个条件就不起 作用了。同样地,如果在“或”表达式中,某 一条件为“真”,则整个表达式的值为“真”, 其它条件也就不起作用了。因此,采用判定/ 条件覆盖时,逻辑表达式中的错误不一定能测 试出来。
供选择的答案 A:① 语句覆盖 ② 条件覆盖 ③ 判定覆盖 ④ 路径覆盖 B~F:① Ⅰ和Ⅱ组 ② Ⅱ和Ⅲ组 ③ Ⅲ和 Ⅳ组 ④ Ⅰ和 Ⅳ组 ⑤ Ⅰ、 Ⅱ、 Ⅲ组 ⑥ Ⅱ、 Ⅲ、 Ⅳ组 ⑦ Ⅰ、 Ⅲ、 Ⅳ ⑧ Ⅰ、 Ⅱ、 Ⅳ组
解答:A. ④ B. ⑤ C. ⑧
D. ④
白盒测试的常用方法
逻辑覆盖
路径分析 测试
循环、条 件分支

逻辑覆盖
逻辑覆盖是以程序的内部逻辑结构为基础的测试用例设 计技术,属于白盒测试。它要求测试人员十分清楚程序的逻 辑结构,考虑的是测试用例对程序内部逻辑覆盖的程度。 语句覆盖 判定覆盖 弱
条件覆盖
判定/条件覆盖 条件组合覆盖 路径覆盖
覆盖程度从 低到高排列

覆盖准则的作用
说明
用于描述在测试过程中,被测对象被测试的程度,
有时候也称为软件测试覆盖准则或者测试数据完
备准则,可以:
1. 作为测试停止的标准,用于衡量测试是否充分; 2. 作为选取测试数据的依据,满足相同覆盖准则的测 试数据是等价的.
逻辑覆盖例题
程序如下: function js(float A,float B,float X) { if(( A>1)&&(B=0)) X=X/A; if((A==2)||(X>1)) X=X+1; }
5 条件组合覆盖
设计足够的测试用例,使 得每个判定中的条件的各种可 能组合都至少出现一次。
5 条件组合覆盖 可能的条件组合: (1)A>1,B=0 (2)A>1,B≠0 (3)A≤1,B=0 (4)A≤1,B≠0 (5)A=2,x>1 (6)A=2,x≤1 (7)A≠2,x>1 (8)A≠2,x≤1 相应的输入数据: A=2,B=0,x=4 满足(1)和(5) A=2,B=1,x=1 满足(2)和(6) A=1,B=0,x=2 满足(3)和(7) A=1,B=1,x=1 满足(4)和(8)
2 判定覆盖(分支覆盖)
入口
还有其它可能吗? 有!例如:301,211这 两组用例
A 用例1 用例2 2 1 B 0 1 X 4 1
A> 1 AND B=0 F A=2 OR X > 1 F
T
X=X/A
?
T X=X+1
返回
判定覆盖比语句覆 盖强,但是仍不能保证 判断条件的正确性。例 从定义上 如:第二个判断条件中 可知:判 的x>1若错写成了x<1, 定覆盖包 能否测试出来? 含了语句
入口
A> 1 AND B=0 F A=2 OR X > 1 F
T
X=X/A
T
X=X+1
返回
路径:P1(TT)P2(FF)P3(FT)P4(TF)
1 语句覆盖
设计足够的测试用例,使 得程序中的每个语句至少执行 一次。
1 语句覆盖
入口
A
用例1 2 2
B
0 0
X
4 3
A> 1 AND B=0 F A=2 OR X > 1 F
期望结果
执行S1 执行S2
条件覆盖 A>0 A 0 A>0, B=0
执行S1 执行S2 执行S1 执行S2
条件组合 A>0 B0 覆盖 A0, B=0
A0, B0
A=-1, B=0
A=0 B=1
执行S2
执行S2
练习二

在白盒测试用例设计中,有语句覆盖、分支 覆盖、条件覆盖、路径覆盖等,其中( A ) 是最强的覆盖准则。为了对如下图所示的程序 段进行覆盖测试,必须适当地选取测试用例组。 若x, y是两个变量,可供选择的测试用例组共 有Ⅰ、Ⅱ、Ⅲ、Ⅳ四组,如表中给出,则实现 判定覆盖至少应采取的测试用例组是( B ) 或( C );实现条件覆盖至少应采取的测试 用例组是( D );实现路径覆盖至少应采取 的测试用例组是( E )或( F )。
X=1 X=2 X=1 X=4
T
X=X+1
路径:P1(TT)P2(FF)P3(FT)P4(TF)
习题
1. 在用白盒法设计测试用例时,常用的6种覆盖标准是语 句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组 合覆盖、路径覆盖. 假设A和B是两种覆盖准则,我们用包含,被包含,相同 和互不包含来形容他们之间的关系: 语句覆盖——判定覆盖 语句覆盖——条件覆盖 判定覆盖——条件覆盖 判定覆盖——判定/条件覆盖 判定/条件覆盖——条件组合覆盖
约需要10微秒(奔腾4 1.7G),且一年365天每
天24小时不停机,请回答:如果循环次数为10的 话,遍历图中所有路径需要多长时间? 结论是:41+42+43+……+410,需要14秒左右的时 间 如果循环次数为20次,100次时,结果又如何? 结论是:循环20次,需要约4072小时,循环100 次则大约需要6.79*1047年
P2(FF)
T1, T 2, T 3, T 4
P3(FT)
3 条件覆盖
入口
用例1 用例2 A 2 1 A 用例1 用例2 1 2 B 0 1 B 0 1 X 4 1 X 3 1
A> 1 AND B=0 F A=2 OR X > 1 F
T
X=X/A
T
X=X+1
思考: 判定覆盖和条件 覆盖的关系
?
是否满足判定覆 盖?
• 2.白盒测试 白盒测试:已知产品的内部工作过程,可以通 过测试证明每种内部操作是否符合设计规格要求, 所有内部成分是否以经过检查。 软件的白盒测试是对软件的过程性细节做细致 的检查,它允许测试人员利用程序内部的逻辑结构 及有关信息,设计或选择测试用例,对程序所有逻 辑路径进行测试,通过在不同点检查程序状态,确 定实际状态是否与预期的状态一致。因此白盒测试 又称为结构测试或逻辑驱动测试。
相关文档
最新文档