当前位置:文档之家› 北大测试全套课件和教案 第4章 白盒测试

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

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
相关主题