北大测试全套课件和教案 第4章 白盒测试

合集下载

北大测试全套课件和教案 8. 第4章 第2讲

北大测试全套课件和教案 8. 第4章 第2讲

《软件测试基础》授课教案授课内容:第四章白盒测试技术授课课次:第8次课授课时数:2学时授课日期: 上课教室:目的与要求:掌握白盒测试的概念;掌握逻辑覆盖的基本思想,能够独立分析程序的逻辑,设计路经覆盖测试用例。

教学重点:逻辑覆盖教学难点:条件组合覆盖教学方式:1.运用《白盒测试技术》课件进行课堂讲授,让学生理解白盒测试的概念;2.通过讲述白盒测试,拓宽学生们的测试思维,掌握白盒测试中最普遍的逻辑覆盖法。

3.进行课堂练习,加深对覆盖测试的理解和使用。

教学内容:1.语句覆盖2.判定覆盖3.条件覆盖4.判定-条件覆盖5.条件组合覆盖6.路经覆盖。

内容提要及时间分配:1、课前引导(5分钟)◆为什么要进行静态测试。

◆白盒测试有什么意义。

2、本课内容(78分钟)◆语句覆盖(10分钟)◆判定覆盖(13分钟)◆条件覆盖(15分钟)◆判定-条件覆盖(10分钟)◆条件组合覆盖(20分钟)◆路经覆盖(10分钟)3、课后小结(5分钟)4、布置作业(2分钟)教学参考书:1.软件测试方法和技术朱少民清华大学出版社2.软件测试Paul C.Jorgensen 机械工业出版社讨论与思考:为伪代码三角形程序开发条件组合覆盖的测试用例。

作业:写出“直接插入排序”的算法,画出流程图,并用逻辑覆盖法,写出测试用例。

复问题目:教学内容与方法步骤4.2 白盒测试方法引言:白盒测试作为测试人员常用的一种测试方法,越来越受到测试工程师的重视。

白盒测试并不是简单的按照代码设计用例,而是需要根据不同的测试需求,结合不同的测试对象,使用适合的方法进行测试。

因为对于不同复杂度的代码逻辑,可以衍生出许多种执行路径,只有适当的测试方法,才能帮助我们从代码的迷雾森林中找到正确的方向。

白盒测试与程序内部结构相关,需要利用程序结构的实现细节等知识,才能有效进行测试用例的设计工作。

白盒测试方法有程序控制流分析、数据流分析、逻辑驱动测试、域测试、符号测试、路径测试、程序插桩及程序变异等。

讲课 第4章 白盒几种测试方法.ppt

讲课 第4章 白盒几种测试方法.ppt

如:y=2,z=0(1,3,5) 和y=1,z=2(2,4,6)
软件工程文档写作
1. 判定A>1&&B=0为真 2. 判定A>1&&B=0 为假 3. 判定A=2||x>1为真 4. 判定A=2||x>1 为假 5. A>1 6. B=0 7. A=2 8. x>1 9. A<=1 10. B!=0 11. A!=2 12. x<=1
2. ylt;=1 and z!=0
y=2,z=1 y=1,z=0 y=1,z=1
软件工程文档写作
5条件组合覆盖-2
条件组合覆盖就是设计足够的测试用例,使得 每个判定中的条件的各种可能组合都至少出 现一次。
可能的条件组合: (1)A>1,B=0(5)A=2,x>1 (2)A>1,B≠0(6)A=2,x≤1 (3)A≤1,B=0(7)A≠2,x>1 (4)A≤1,B≠0(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)
四条可能的路径:abd,ace,abe,acd a
A=2,B=0,X=3 (沿路径ace)
A>1 N &&
b
B=0
A=1,B=0,X=1 (沿路径abd)
A=2,B=1,X=1 (沿路径abe) A=3,B=0,X=1 (沿路径acd)
A=2 N ||
d
X>1
Y c
X=X/A
Y e
X++
引用语句2
N X>16 OR Y>10 Y

第四章 白盒测试

第四章 白盒测试

条件覆盖
A=2,B=0,X=4 (沿路径ace执行) A=1,B=1,X=1 (沿路径abd执行)
条件覆盖
条件覆盖
条件覆盖
对例2中的所有条件取值加以标记。 对于第一个判断:
条件x>3 取真值为T1,取假值为-T1 条件z<10 取真值为T2,取假值为-T2
入口 a No (x>3)&&(z<10) b Yes 执行语句块1 e c
条件组合覆盖
针对上述问题又提出了另一种标准——―条件组合 覆盖”。它的含义是:执行足够的例子,使得每 个判定中条件的各种可能组合都至少出现一次。 显然,满足“条件组合覆盖”的测试用例是一定 满足“分支覆盖”、“条件覆盖”和“分支/条件 覆盖”的。
入口 a No (x>3)&&(z<10) b Yes 执行语句块1 e c
(x= =4)||(y>5) d Yes 执行语句块2
No
ace
-T1、-T2、-T3 、-T4
ce
执行语句块3
出口
分支/条件覆盖
分支/条件覆盖从表面来看,它测试了所有条件的取值, 但是实际上某些条件掩盖了另一些条件 例如对于条件表达式(x>3)&&(z<10)来说,必须两个条件 都满足才能确定表达式为真。如果(x>3)为假则一般的 编译器不在判断是否z<10了。对于第二个表达式(x==4 )||(y>5)来说,若x==4测试结果为真,就认为表达式 的结果为真,这时不再检查(y>5)条件了。因此,采用 分支/条件覆盖,逻辑表达式中的错误不一定能够查出来 了。 (A&&B运算,使用A=T分别对应于B的T和F,使用A=F 对应于B的任意; A||B运算,使用A=F分别对应于B的T和 F,使用A=T对应于B的任意; )

北大测试全套课件和教案 7. 第4章 第1讲

北大测试全套课件和教案 7. 第4章 第1讲

---------------------------------------------------------------最新资料推荐------------------------------------------------------ 北大测试全套课件和教案7. 第4章第1讲《软件测试基础》授课教案授课内容:第四章白盒测试技术授课课次:第 7 次课授课时数:2 学时授课日期: 上课教室: 目的与要求:了解静态测试的必要性;理解静态测试的方法,包括代码检查、静态结构分析、代码质量度量。

教学重点:代码检查和编程风格教学难点:代码质量度量教学方式:1. 运用《白盒测试技术》课件进行课堂讲授,了解静态测试的必要性;2. 通过讲述静态测试,拓宽学生们对测试的理解,测试不光是设计用例,执行用例观察结果,测试的工作也包括不实际运行软件,对软件评估。

3. 展开课堂讨论,怎们样做静态测试。

教学内容:1.代码检查 2.静态结构分析 3.代码质量度量 4.课堂讨论。

内容提要及时间分配:1、课前引导(5 分钟)什么叫做静态测试和动态测试?1 / 12什么叫做白盒测试和黑盒测试。

2、代码检查(50 分钟)代码走查(10 分钟)编程风格与规范(25 分钟)代码审查(15 分钟) 3、静态结构分析(5 分钟) 4、代码质量度量(5 分钟) 5、课堂讨论(20分钟)在做静态测试的时候,我们可能会遇到什么困难?怎样解决呢? 6、课后小结和布置作业(5 分钟)教学参考书:1. 软件测试方法和技术朱少民清华大学出版社 2. 软件测试 Paul C.Jorgensen 机械工业出版社讨论与思考:为什么要做静态测试,在做静态测试的时候,我们可能会遇到什么困难?怎样解决呢?作业: 试写 c++语言编程中变量和常量的命名规范。

复问题目:序号题目学生成绩 1 2 3 教学内容与方法步骤 4.1 静态测试引言:静态测试包括包括代码检查、静态结构分析、代码质量度量等。

北大测试全套课件和教案 9. 第4章 第3讲

北大测试全套课件和教案 9. 第4章 第3讲

北大测试全套课件和教案 9. 第4章第3讲《软件测试基础》授课教案授课内容:第四章白盒测试技术授课课次:第9次课授课时数:2学时授课日期: 上课教室: 目的与要求:掌握白盒测试中基本路经测试的概念和方法;了解程序插桩的概念和方法。

教学重点:基本路经测试教学难点:程序插桩教学方式:1. 运用《白盒测试技术》课件进行课堂讲授,让学生理解基本路径测试的概念,掌握基本路径测试方法;2. 进行课堂练习,加深对基本路径测试的理解和使用。

教学内容:1.程序结构分析 2.DD路径测试 3.基本路径测试 4.程序插桩内容提要及时间分配:1、课前引导(8分钟)? 回顾6种覆盖法的基本思想。

? 白盒测试中有哪些常用方法?2、本课内容(75分钟)? 程序结构分析 ? DD路径测试 ? 基本路径测试 ? 程序插桩3、课后小结(5分钟)4、布置作业(2分钟)教学参考书:1. 软件测试方法和技术朱少民清华大学出版社2. 软件测试Paul C.Jorgensen 机械工业出版社讨论与思考:把第2章的NextDate问题的伪代码转换成为控制流图,并简化。

作业:1.请把下面的程序流程图转化成控制流图。

12364791181052.重新编写程序片断14~20,用嵌套if-then-else语句替代复合条件。

14. if(a=b)AND (b=c) 15. T hen Output(“Equilateral”)16. Else If(a<>b)AND(a<>c)AND(b<>c) 17. Then Output(“Scalence”) 18. Else Output(“Isosecles”) 19. EndIf 20. EndIf比较你改写后的程序和上面程序片断的圈复杂度。

复问题目:序号 1 2 3 题目学生成绩教学内容与方法步骤4.2.3程序结构分析引言:程序的结构形式是白盒测试的主要依据。

这一部分将从控制流分析和数据流分析的不同方面讨论如何分析程序结构。

最新北大测试全套课件和教案 白盒测试.教学讲义PPT

最新北大测试全套课件和教案 白盒测试.教学讲义PPT

2.判定覆盖
• 基本思想是:设计若干测试用例,运行被 测程序,使得程序中每个判断的取真分支 和取假分支至少经历一次,即判断真假值 均曾被满足。
1
2.判定覆盖……续1
a=2,b=1 ,c=6可 覆盖判断M的Y分支 和判断Q的Y分支; a=-2,b=-1 ,c=-3 可覆盖判断M的N分 支和判断Q的N分支 。 这两组测试用例可覆 盖所有判定的真假分 支。
a>1 or c>1
c=c/a c=c+1
5N c=b+c
1.语句覆盖……续2
• 【优点】 :可以很直观地从源代码得到 测试用例,无须细分每条判定表达式。
• 【缺点】 :由于这种测试方法仅仅针对 程序逻辑中显式存在的语句,但对于隐 藏的条件是无法测试的。如在多分支的 逻辑运算中无法全面的考虑。语句覆盖 是最弱的逻辑覆盖。
8. End if 9. c=b+c
c=b+c
c=c/a c=c+1
1.语句覆盖
• 基本思想是:设计若干测试用例,运行 被测程序,使程序中每个可执行语句至 少执行一次。
1
1.语句覆盖……续1
只需设计一个测试 用例:a=2,b=1, c=6;即达到了语 句覆盖。
1 Y2
a>0 and b>0
3N Y4
1 Y2
a>0 and b>0
3N Y4
a>1 or c>1
5N c=b+c
判断 M
c=c/a
c=c+1
判断 Q
2.判定覆盖……续2
a=1,b=1 ,c=-3 可 覆盖判断M的Y分支 和判断Q的N分支 ; a=1,b=-2 ,c=3可 覆盖判断M的N分支 和判断Q的Y分支 ; 同样的这两组测试用 例也可覆盖所有判定 的真假分支。

第4章(1)白盒测试方法1逻辑覆盖法PPT课件

第4章(1)白盒测试方法1逻辑覆盖法PPT课件
测试用例设计的好坏直接决定了测试的效果和 结果。所以说在软件测试活动中最关键的步骤 就是设计有效的测试用例。
测试用例可以针对黑盒测试设计用例,也可以 针对白盒测试设计用例,我们今天开始讲针对 白盒测试的用例设计方法。
华为的评价标准
Page 6
引例:为什么要进行白盒测试?
如果所有软件错误的根源都可以追溯 到某个唯一原因,那么问题就简单了。 然而,事实上一个bug 常常是由多个 因素共同导致的,如下图所示。
{(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)
白盒测试定义
白盒测试将被测程序看作一个打开的 盒子,测试者能够看到被测源程序, 可以分析被测程序的内部结构,此时 测试的焦点集中在根据其内部结构设 计测试用例。
又称为 结构测试 或 逻辑驱动测试
Page 10
白盒测试遵循的原则
采用白盒测试方法必须遵循以下几条原则,才 能达到测试的目的:
➢ 保证一个模块中的所有独立路径至少被测试一 次。
➢ 所有逻辑值均需测试真 (true) 和假 (false) 两种情况。
➢ 检查程序的内部数据结构,保证其结构的有效 性。
➢ 在上下边界及可操作范围内运行所有循环。
Page 11
Page 12
白盒测试
程序的结构形式是白盒测试的主要依 据。
程序结构主要用 流程图 N-S图来表 示(p.65)

软件测试教学PPT-白盒测试

软件测试教学PPT-白盒测试

基本路径法
基本路径测试法适用于模块地详细设计 与源程序。其步骤如下:
以详细设计或源代码为基本,导出程序 地控制流图;
计算得出控制流图G地环路复杂度V(G); 确定线性无关地路径地基本集; 生成测试用例,确保基本路径集中每条
路径地执行。
基本路径法
对于下面地程序,假设输入地取值范围是 1000<year<2001,使用基本路径测试法为变量 year设计测试用例,使满足基本路径覆盖地要 求。
基本路径法
根据源代码绘制程序地控制流图如下
基本路径法
通过控制流图,计算环路复杂度V(G)=区域数=4。 线形无关地路径集为: 1-3-8 1-2-5-8 1-2-4-7-8 1-2-4-6-8 设计测试用例: 路径1:输入数据:year=1999 预期结果:leap=0 路径2:输入数据:year=1996 预期结果:leap=1 路径3:输入数据:year=1800 预期结果:leap=0 路径4:输入数据:year=1600 预期结果:leap=1
从覆盖源程序语句地详尽程度,可以分为 语句覆盖 判定覆盖 条件覆盖 条件判定覆盖 条件组合覆盖 路径覆盖
逻辑覆盖法
语句覆盖 指地是代码中所有地语句都至少执行一
遍 虽然覆盖了可执行语句,但是不能检查
判断逻辑是否有问题 是很不充分地一种测试,是最弱地逻辑
覆盖准则 测试覆盖率工具:如
The End
白盒测试方法选择
选择白盒测试方法地几条经验: 在测试中,可采取先静态再动态地组合方式,先进
行代码检查与静态结构分析,再进行覆盖测试; 利用静态分析地结果作为引导,通过代码检查与
动态测试地方式对静态分析地结果做进一步确认; 覆盖测试是白盒测试地重点,一般可使用基本路
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
anhuisoft@
循环20次
QQ:498944848
IT Education & Training
4.2白盒测试方法
• 由于对于不同复杂度的代码逻辑,可以 衍生出许多种执行路径,只有选择适当 的测试方法,才能帮助我们从代码的迷 雾森林中找到正确的方向。
anhuisoft@
1.语句覆盖……续2
• 【优点】 :可以很直观地从源代码得到 测试用例,无须细分每条判定表达式。 • 【缺点】 :由于这种测试方法仅仅针对 程序逻辑中显式存在的语句,但对于隐 藏的条件是无法测试的。如在多分支的 逻辑运算中无法全面的考虑。语句覆盖 是最弱的逻辑覆盖。
anhuisoft@
IT Education & Training
本章主要内容
4.1静态测试技术 4.2白盒测试技术
anhuisoft@
QQ:498944848
IT Education & Training
4.1静态测试技术
• 4.1.1 代码检查 • 4.1.2 静态结构分析 • 4.1.3 代码质量度量
anhuisoft@
QQ:498944848
IT Education & Training
4.1.2静态结构分析
静态结构分析主要是以图形的方式表现 程序的内部结构,例如函数调用关系图、 函数内部控制流图。其中,函数调用关 系图以直观的图形方式描述一个应用程 序中各个函数的调用和被调用关系;控 制流图显示一个函数的逻辑结构,它由 许多节点组成,一个节点代表一条语句 或数条语句,连接结点的叫边,边表示 节点间的控制流向。
判断 Q
Y 2
c=c/a
Y 4
c=c+1
QQ:498944848
IT Education & Training
4.判定-条件覆盖……续2
测试用例 a=2,b=1,c=6 覆盖条 覆盖判断 件 T1, T2, M的Y分支和 T3, T4 Q的Y分支
anhuisoft@
QQ:498944848
IT Education & Training
1.语句覆盖
• 基本思想是:设计若干测试用例,运行 被测程序,使程序中每个可执行语句至 少执行一次。
anhuisoft@
1 QQ:498944848
IT Education & Training
a=-1,b=2,c=3
a>1 or c>1 5 N c=b+c
Y 4
c=c+1
它覆盖了判定M的N分支和判断Q的Y分支。
判断 Q 我们用条件覆盖设计的思想就是让测试用例能覆盖 T1、T2、T3、T4、F1、F2、F3、F4
anhuisoft@ QQ:498944848
IT Education & Training
anhuisoft@ QQ:498944848
IT Education & Training
4.1.3 代码质量度量
ISO/IEC 9126国际标准所定义的软件质 量包括六个方面:功能性、可靠性、易 用性、效率、可维护性和可移植性。软 件的质量是软件属性的各种标准度量的 组合。
anhuisoft@
QQ:498944848
IT Education & Training
• 基本思想是:设计若干测试用例,运行被 测程序,使得程序中每个判断的取真分支 和取假分支至少经历一次,即判断真假值 均曾被满足。
2.判定覆盖
anhuisoft@
1 QQ:498944848
IT Education & Training
1.语句覆盖……续1
只需设计一个测试 用例:a=2,b=1, c=6;即达到了语 句覆盖。
1 a>0 and b>0 3 N a>1 or c>1 5 N c=b+c Y 4 c=c+1 Y 2 c=c/a
anhuisoft@
QQ:498944848
IT Education & Training
anhuisoft@ QQ:498944848
2.判定覆盖……续3
IT Education & Training
3.条件覆盖
• 基本思想是:设计若干测试用例,执行 被测程序以后要使每个判断中每个条件 的可能取值至少满足一次。
anhuisoft@
1 QQ:498944848
IT Education & Training
3.条件覆盖……续1
• 判断M表达式: 设条件 a>0 取真 记为 T1 假 F1 条件 b>0 取真 记为 T2 假 F2 • 判断Q表达式: 设条件 a>1 取真 记为 T3 假 F3 条件 c>1 取真 记为 T4 假 F4
1 a>0 and b>0 3 N a>1 or c>1 5 N c=b+c Y 4 Y 2
QQ:498944848
IT Education & Training
4.2.1 逻辑覆盖法
• 1. 2. 3. 4. 5. 6. 白盒测试中的逻辑覆盖方法有以下6种: 语句覆盖 判定覆盖 条件覆盖 判定-条件覆盖 条件组合覆盖 路径覆盖
QQ:498944848
anhuisoft@
IT Education & Training
白盒测试
软件工程系
2013-7-12
IT Education & Training
引言
• 静态测试和动态测试 静态测试是指不运行程序进行的测试------只 是检查和审阅。 • 白盒测试和黑盒测试 测试用例的设计中,通常会把白盒测试和黑 盒测试结合起来使用
anhuisoft@
QQ:498944848
anhuisoft@
QQ:498944848
IT Education & Training
编码风格与规范
• 好的风格对于好的程序设计具有关键性 作用 • 代码应该是清楚的和简单的-------具有直 截了当的逻辑、自然的表达式、通行的 语言使用方式
anhuisoft@
QQ:498944848
QQ:498944848
IT Education & Training
4.2白盒测试方法
• 白盒测试,也称为 250*(1+0.015)*((1+0.015)^360-1)/0.015 结构化测试、基于 代码的测试,是一 种测试用例设计方 法,它从程序的控 制结构导出测试用 例。 3581322.293419985680302829734315
1 a>0 and b>0 3 N a>1 or c>1 5 N c=b+c Y 4 Y 2
判断 M
c=c/a
c=c+1
判断 Q
anhuisoft@
QQ:498944848
IT Education & Training
• 【优点】:判定覆盖具有比语句覆盖更强 的测试能力。同样判定覆盖也具有和语句 覆盖一样的简单性,无须细分每个判定就 可以得到测试用例。 • 【缺点】:往往大部分的判定语句是由多 个逻辑条件组合而成,若仅仅判断其整个 最终结果,而忽略每个条件的取值情况, 必然会遗漏部分测试路径。判定覆盖仍是 弱的逻辑覆盖。
IT Education & Training
4.判定-条件覆盖
• 基本思想是:设计足够的测试用例,使 得判断条件中的所有条件可能至少执行 一次取值,同时,所有判断的可能结果 至少执行一次。
anhuisoft@
1 QQ:498944848
IT Education & Training
判断 M
c=c/a
c=c+1
判断 Q
anhuisoft@
QQ:498944848
IT Education & Training
2.判定覆盖……续2
a=1,b=1 ,c=-3 可 覆盖判断M的Y分支 和判断Q的N分支 ; a=1,b=-2 ,c=3可 覆盖判断M的N分支 和判断Q的Y分支 ; 同样的这两组测试用 例也可覆盖所有判定 的真假分支。
判断 M
c=c/a
c=c+1
判断 Q
anhuisoft@
QQ:498944848
IT Education & Training
3.条件覆盖……续2
测试用例 覆盖条 件 具体取值条件
判断 M
1 a>0 and b>0 3 N Y 2 c=c/a
a=2,b=-1,c=-2
T1, F2, a>0,b<=0, T3, F4 a>1,c<=1 F1, T2, a<=0,b>0, F3, T4 a<=1,c>1
anhuisoft@
QQ:498944848
IT Education & Training
4.1.1 代码检查
• 代码检查包括代码走查、代码审查等
anhuisoft@
QQ:498944848
IT Education & Training
代码走查
• 有组织的代码走查在编码阶段去除错误 的成本是在软件发布阶段去除错误成本 的1/92 • 全部的代码是否都需要走查 • 最大的问题是劝说开发者要遵循一定的 标准
非正式会议 开发人员为主 无 限时、不要现场 修改代码 会议记录 代码标准规范, 无逻辑错误
anhuisoft@
QQ:498944848
IT Education & Training
相关文档
最新文档