北大测试全套课件和教案 第4章 白盒测试
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
anhuisoft@163.com
QQ:498944848
IT Education & Training
4.1.1 代码检查
• 代码检查包括代码走查、代码审查等
anhuisoft@163.com
QQ:498944848
IT Education & Training
代码走查
• 有组织的代码走查在编码阶段去除错误 的成本是在软件发布阶段去除错误成本 的1/92 • 全部的代码是否都需要走查 • 最大的问题是劝说开发者要遵循一定的 标准
3.条件覆盖……续3
• 【优点】:增加了对条件判定情况的测 试,增加了测试路径。 • 【缺点】:条件覆盖不一定包含判定覆 盖。例如,我们刚才设计的用例就没有 覆盖判断M的Y分支和判断Q的N分支。 条件覆盖只能保证每个条件至少有一次 为真,而不考虑所有的判定结果。
anhuisoft@163.com
QQ:498944848
QQ:498944848
IT Education & Training
4.2.1 逻辑覆盖法
• 1. 2. 3. 4. 5. 6. 白盒测试中的逻辑覆盖方法有以下6种: 语句覆盖 判定覆盖 条件覆盖 判定-条件覆盖 条件组合覆盖 路径覆盖
QQ:498944848
anhuisoft@163.com
IT Education & Training
IT Education & Training
本章主要内容
4.1静态测试技术 4.2白盒测试技术
anhuisoft@163.com
QQ:498944848
IT Education & Training
4.1静态测试技术
• 4.1.1 代码检查 • 4.1.2 静态结构分析 • 4.1.3 代码质量度量
anhuisoft@163.com
QQ:498944848
IT Education & Training
编码风格与规范
• 好的风格对于好的程序设计具有关键性 作用 • 代码应该是清楚的和简单的-------具有直 截了当的逻辑、自然的表达式、通行的 语言使用方式
anhuisoft@163.com
QQ:498944848
QQ:498944848
IT Education & Training
4.2白盒测试方法
• 白盒测试,也称为 250*(1+0.015)*((1+0.015)^360-1)/0.015 结构化测试、基于 代码的测试,是一 种测试用例设计方 法,它从程序的控 制结构导出测试用 例。 3581322.293419985680302829734315
白盒测试 —带上X光眼镜测试
anhuisoft@163.com
QQ:498944848
IT Education & Training
4.2白盒测试方法
这个流程图,其中包括了一 个执行达20次的循环。那么 它所包含的不同执行路径数 高达520条,若要对它进行穷 举测试,覆盖所有的路径。 假使测试程序对每一条路径 进行测试需要1毫秒,同样 假定一天工作24小时,一年 工作365 天, 那么要想把如 图所示的小程序的所有路径 测试完,则需要3170年。
判断 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分支
判断 M
c=c/a
c=c+1
判断 Q
anhuisoft@163.com
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@163.com
QQ:498944848
IT Education & Training
1.语句覆盖
• 基本思想是:设计若干测试用例,运行 被测程序,使程序中每个可执行语句至 少执行一次。
anhuisoft@163.com
1 QQ:498944848
IT Education & Training
1.语句覆盖……续2
• 【优点】 :可以很直观地从源代码得到 测试用例,无须细分每条判定表达式。 • 【缺点】 :由于这种测试方法仅仅针对 程序逻辑中显式存在的语句,但对于隐 藏的条件是无法测试的。如在多分支的 逻辑运算中无法全面的考虑。语句覆盖 是最弱的逻辑覆盖。
anhuisoft@163.com
判断 M
c=c/a
c=c+1
判断 Q
anhuisoft@163.com
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分支 ; 同样的这两组测试用 例也可覆盖所有判定 的真假分支。
anhuisoft@163.com QQ:498944848
2.判定覆盖……续3
IT Education & Training
3.条件覆盖
• 基本思想是:设计若干测试用例,执行 被测程序以后要使每个判断中每个条件 的可能取值至少满足一次。
anhuisoft@163.com
1 QQ:498944848
IT Education & Training
代码审查
• • 1. 2. • 代码审查和代码走查比较 代码审查是提高代码质量的良药 消除开发员的心理抵触 代码审查要有目标 代码审查清单
anhuisoft@163.com
QQ:498944848
IT Education & Training
代码审查和代码走查比较
非正式会议 开发人员为主 无 限时、不要现场 修改代码 会议记录 代码标准规范, 无逻辑错误
anhuisoft@163.com
QQ:498944848
IT Education & Training
代码审查清单
• • • • • • • • 数据引用错误 数据声明错误 计算错误 比较错误 控制流程错误 子程序参数错误 输出错误 其他检查
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
anhuisoft@163.com QQ:498944848
IT Education & Training
4.1.3 代码质量度量
ISO/IEC 9126国际标准所定义的软件质 量包括六个方面:功能性、可靠性、易 用性、效率、可维护性和可移植性。软 件的质量是软件属性的各种标准度量的 组合。
anhuisoft@163.com
例:实现一个简单的数学运算
1. 2. 3. 4. 5. 6. 7. 8. 9. Dim a,b As Integer Dim c As Double If (a>0 And b>0) Then c=c/a End if If (a>1 or c>1) Then c=c+1 End if c=b+c
a>0 and b>0 N a>1 or c>1 N c=b+c Y c=c+1 Y c=c/a
anhuisoft@163.com
循环20次
QQ:498944848
IT Education & Training
4.2白盒测试方法
• 由于对于不同复杂度的代码逻辑,可以 衍生出许多种执行路径,只有选择适当 的测试方法,才能帮助我们从代码的迷 雾森林中找到正确的方向。
anhuisoft@163.com
4.判定-条件覆盖……续1
按照判定-条件覆盖 的要求,我们设计 的测试用例要满足 如下条件: 1. 所有条件可能至少 执行一次取值; 2. 所有判断的可能结 果至少执行一次。
要满足T1、T2、 T3 、T4 F1、 F2 、F3、F4
anhuisoft@163Fra Baidu bibliotekcom
判断 M
1 a>0 and b>0 3 N a>1 or c>1 5 N c=b+c
IT Education & Training
4.判定-条件覆盖
• 基本思想是:设计足够的测试用例,使 得判断条件中的所有条件可能至少执行 一次取值,同时,所有判断的可能结果 至少执行一次。
anhuisoft@163.com
1 QQ:498944848
IT Education & Training
anhuisoft@163.com
QQ:498944848
IT Education & Training
4.1.2静态结构分析
静态结构分析主要是以图形的方式表现 程序的内部结构,例如函数调用关系图、 函数内部控制流图。其中,函数调用关 系图以直观的图形方式描述一个应用程 序中各个函数的调用和被调用关系;控 制流图显示一个函数的逻辑结构,它由 许多节点组成,一个节点代表一条语句 或数条语句,连接结点的叫边,边表示 节点间的控制流向。
2.判定覆盖……续1
a=2,b=1 ,c=6可 覆盖判断M的Y分支 和判断Q的Y分支; a=-2,b=-1 ,c=-3 可覆盖判断M的N分 支和判断Q的N分支 。 这两组测试用例可覆 盖所有判定的真假分 支。
1 a>0 and b>0 3 N a>1 or c>1 5 N c=b+c Y 4 Y 2
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@163.com
QQ:498944848
IT Education & Training
• 【优点】:判定覆盖具有比语句覆盖更强 的测试能力。同样判定覆盖也具有和语句 覆盖一样的简单性,无须细分每个判定就 可以得到测试用例。 • 【缺点】:往往大部分的判定语句是由多 个逻辑条件组合而成,若仅仅判断其整个 最终结果,而忽略每个条件的取值情况, 必然会遗漏部分测试路径。判定覆盖仍是 弱的逻辑覆盖。
项目 准备 走 查 通读设计和编码 审 查 应准备好需求描述文档、程序设计文档、程 序的源代码清单、代码编码标准和代码缺 陷检查表 正式会议 项目组成员包括测试人员 缺陷检查表 限时、不要现场修改代码 静态分析错误报告 代码标准规范,无逻辑错误
形式 参加人员 主要技术 方法 注意事项 生成文档 目标
QQ:498944848
IT Education & Training
• 基本思想是:设计若干测试用例,运行被 测程序,使得程序中每个判断的取真分支 和取假分支至少经历一次,即判断真假值 均曾被满足。
2.判定覆盖
anhuisoft@163.com
1 QQ:498944848
IT Education & Training
白盒测试
软件工程系
2013-7-12
IT Education & Training
引言
• 静态测试和动态测试 静态测试是指不运行程序进行的测试------只 是检查和审阅。 • 白盒测试和黑盒测试 测试用例的设计中,通常会把白盒测试和黑 盒测试结合起来使用
anhuisoft@163.com
QQ:498944848
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@163.com
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@163.com QQ:498944848
IT Education & Training