13.白盒测试(1)—逻辑覆盖测试
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
T
X=X+1
?
思考: 思考: 判定覆盖和条件 覆盖的关系
是否满足判定覆 盖?
SWPU
4 判定/条件覆盖 判定/
同时满足判定覆盖的和条件 覆盖的逻辑覆盖称为判定/ 覆盖的逻辑覆盖称为判定/条件覆 它的含义是: 盖。它的含义是: 设计足够的测 试用例,使得判定中的每个条件 试用例, 都取到各种可能的值, 都取到各种可能的值,而且每个 判定表达式也都取到各种可能的 结果。 结果。
覆盖程度从 低到高排列
SWPU
逻辑覆盖例题
程序如下: function js(float A,float B,float X) { if(( A>1)&&(B=0)) X=X/A; if((A==2)||(X>1)) X=X+1; }
入口
A> 1 AND B=0 F A=2 OR X > 1 F 返回
左图是具有某程序的流程图,假设循环10次,请 计算一下有多少条程序执行通路?假设由图中得 到的所有路径都是可执行路径,执行一次循环大 约需要10微秒(奔腾4 1.7G),且一年365天每 天24小时不停机,请回答:如果循环次数为10的 话,遍历图中所有路径需要多长时间? 结论是:41+42+43+……+410,需要14秒左右的时 间 如果循环次数为20次,100次时,结果又如何? 结论是:循环20次,需要约4072小时,循环100 次则大约需要6.79*1047年
入口
A> 1 AND B=0 F A=2 OR X > 1 F 返回
T
X=X/A
?
请写出各测试用例的 执行路径。 执行路径。然后考察是 否覆盖了(TF)路径。 路径。 否覆盖了 路径
T
X=X+1
SWPU
5 路径覆盖
设计足够的测试用例, 设计足够的测试用例,使 程序中的每一条可能路径都至 少执行一次。 少执行一次。
显然,满足条件组合覆盖的测试数据, 显然,满足条件组合覆盖的测试数据,也一定满足判定 覆盖、条件覆盖和判定/条件覆盖标准。 覆盖、条件覆盖和判定/条件覆盖标准。
SWPU
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 = , = , =
SWPU
白盒测试的常用方法
逻辑覆盖
路径分析 测试
循环、 循环、条 件分支
…
Baidu Nhomakorabea SWPU
逻辑覆盖
逻辑覆盖是以程序的内部逻辑结构为基础的测试用例设 计技术,属于白盒测试。 计技术,属于白盒测试。它要求测试人员十分清楚程序的逻 辑结构,考虑的是测试用例对程序内部逻辑覆盖的程度。 辑结构,考虑的是测试用例对程序内部逻辑覆盖的程度。 弱 语句覆盖 判定覆盖 条件覆盖 判定/ 判定/条件覆盖 条件组合覆盖 强 路径覆盖
T
X=X/A
输出
?
T X=X+1
只包含了P1一条 只包含了 一条 第一个判断中的 逻辑运算符 路径, 路径,所以语句 “AND”若错写 若错写 覆盖的覆盖程度 成了“ 成了“OR”,能否 是最弱的 能否 测试出来? 测试出来?
路径: ( ) ( ) ( ) ( ) 路径:P1(TT)P2(FF)P3(FT)P4(TF)
T
X=X/A
T
X=X+1
路径: ( ) ( ) ( ) ( ) 路径:P1(TT)P2(FF)P3(FT)P4(TF)
SWPU
1 语句覆盖
设计足够的测试用例, 设计足够的测试用例,使 得程序中的每个语句至少执行 一次。 一次。
SWPU
1 语句覆盖
入口
A 用例1 2 2 B 0 0 X 4 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
SWPU
3 条件覆盖 测试用例 覆盖分支 条件取值
T 1, 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
SWPU
2 判定覆盖
设计足够的测试用例,使 设计足够的测试用例, 得在语句覆盖的基础上, 得在语句覆盖的基础上,程序 中每个判定的取“ 中每个判定的取“真”分支和 取“假”分支至少都执行一次 判定覆盖又称分支覆盖。 ,判定覆盖又称分支覆盖。
SWPU
2 判定覆盖 分支覆盖 判定覆盖(分支覆盖 分支覆盖)
T
X=X+1
路径: ( ) ( ) ( ) ( ) 路径:P1(TT)P2(FF)P3(FT)P4(TF)
SWPU 习题
1. 在用白盒法设计测试用例时,常用的6种覆盖标准是语 句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组 合覆盖、路径覆盖. 假设A和B是两种覆盖准则,我们用包含,被包含,相同 和互不包含来形容他们之间的关系: 语句覆盖——判定覆盖 语句覆盖——条件覆盖 判定覆盖——条件覆盖 判定覆盖——判定/条件覆盖 判定/条件覆盖——条件组合覆盖
入口
还有其它可能吗? 还有其它可能吗? 有!例如:303,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 的x>1若错写成了x<1, 定覆盖包 能否测试出来? 能否测试出来? 含了语句
覆盖
路径: ( ) ( ) ( ) ( ) 路径:P1(TT)P2(FF)P3(FT)P4(TF)
SWPU
3 条件覆盖
设计足够的测试用例, 设计足够的测试用例,在 语句覆盖的基础上使得程序判 定中的每个条件能获得各种可 能的结果。 能的结果。
SWPU
3 条件覆盖
入口
A> 1 AND B=0 F A=2 OR X > 1 F 返回
SWPU 白盒测试的基本概念 什么是白盒测试
把程序看成装在一 个透明的白盒子里, 个透明的白盒子里, 程序的结构和处理 过程完全可见, 过程完全可见,按 照程序的内部逻辑 测试程序, 测试程序,以检查 程序中的每条通路 是否都能按照预先 要求正确工作。 要求正确工作。
SWPU
不可能进行彻底的白盒测试
SWPU 习题
4. 使用白盒测试方法时,确定测试数据应根据()来制定覆 盖测试准则 A.程序内部逻辑 B.程序的复杂程度 C.使用说明书 D.程序的功能 5. 软件的集成测试工作最好由()来承担,以提高集成测试 的效率 A.该软件的设计人员 B.该软件开发组的负责人 C.该软件的编程人员 D.不属于该软件开发组的软件设计人员
其它测试类型
综合测试实例
SWPU
黑盒测试与白盒测试
任何工程产品都可以使用白盒测试和黑盒测 试两种方法之一进行测试。 • 1.黑盒测试 . 黑盒测试:已知产品的功能设计规格和用户 手册,可以进行测试证明每个功能是否实现、每 个实现了的功能是否符合客户要求。
SWPU
软件的黑盒测试意味着测试要在软件的接 口处进行,测试人员完全不考虑程序内部的逻 辑结构和内部特性,只依据程序的需求规格说 需求规格说 明书和用户手册,检查程序的功能是否符合它 明书和用户手册 的功能说明,以及性能是否满足用户的要求。 因此黑盒测试又叫功能测试或数据驱动测试。
SWPU
• 2.白盒测试 . 白盒测试:已知产品的内部工作过程,可以通 过测试证明每种内部操作是否符合设计规格要求, 所有内部成分是否以经过检查。 软件的白盒测试是对软件的过程性细节做细致 的检查,它允许测试人员利用程序内部的逻辑结构 及有关信息,设计或选择测试用例,对程序所有逻 辑路径进行测试,通过在不同点检查程序状态,确 定实际状态是否与预期的状态一致。因此白盒测试 又称为结构测试或逻辑驱动测试。
SWPU
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 ,
X=1 X=2 X=1 X=4
SWPU
第4章 白盒测试方法 章
把程序看成装在一个透明的白盒子里,程序的结构和处理 呈现过程完全可见,按照程序的内部逻辑测试程序,以检 查程序中的每条通路是否都能按照预先要求正确工作。
SWPU
1 2
黑盒测试与白盒测试
逻辑覆盖测试
主 要 内 容
3 4 5 6
路径分析测试
分支条件测试、 分支条件测试、循环测试
SWPU 习题
2. 软件测试的目的是() A.评价软件的质量 B.发现软件的缺陷 C.发现软件的优势 D.证明软件是正确的 3. 为了提高测试效率应该() A.随机的选取测试结果 B.取一切可疑的输入数据作为测试数据 C.在完成编码以后制定软件的测试计划 D.选取发现错误可能性大的数据作为测试数据
T 1, T 2, T 3, T 4
P2(FF)
T 1, T 2, T 3, T 4
P3(FT)
SWPU
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
SWPU
4 判定 条件覆盖 判定/条件覆盖
入口
用例1 A 2 1 B 0 1 X 4 1
A> 1 AND B=0 F A=2 OR X > 1 F 返回
T
X=X/A
用例2
T
X=X+1
判定/条件覆盖仍有缺陷。从表面上看, 判定/条件覆盖仍有缺陷。从表面上看, 它测试了所有条件的所有可能结果, 它测试了所有条件的所有可能结果 , 但事实上 并不是这样。 因为某些条件掩盖了另一些条件。 并不是这样 。 因为某些条件掩盖了另一些条件 。 例如, 在逻辑表达式中, 如果“ 例如 , 在逻辑表达式中 , 如果 “ 与 ” 表达式中 某一条件为“假”,则整个表达式的值为 “ 假 ” , 这个表达式中另外的几个条件就不起 作用了。 同样地, 如果在“ 表达式中, 作用了 。 同样地 , 如果在 “ 或 ” 表达式中 , 某 一条件为“ 则整个表达式的值为“ 一条件为 “ 真 ” , 则整个表达式的值为 “ 真 ” , 其它条件也就不起作用了。 因此, 采用判定/ 其它条件也就不起作用了 。 因此 , 采用判定 / 条件覆盖时, 条件覆盖时 , 逻辑表达式中的错误不一定能测 试出来。 试出来。
SWPU
5 条件组合覆盖
设计足够的测试用例, 设计足够的测试用例,使 得每个判定中的条件的各种可 能组合都至少出现一次。 能组合都至少出现一次。
SWPU
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> (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= A=1,B=0,x=2 满足( ) 满足(3)和(7) ) A=1,B=1,x=1 = , = , = 满足( ) 满足(4)和(8) )