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