- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
t
d
a c f t t f
a: (A>1)
and (B=0) c: (A=2) or (x>1)
目录
首页
上页
下页
末页
第10章 软件测试
27/130
条件覆盖
条件覆盖是指选择足够的测试用例,使 得运行这些测试用例时,被测程序的每个判 定中的每个条件的所有可能结果都至少出现 一次。
目录
首页
上页
下页
末页
第10章 软件测试 s
语句覆盖 判定覆盖 条件覆盖 判定-条件覆盖 条件组合覆盖 路径覆盖
目录
首页
上页
下页
末页
第10章 软件测试
22/130
例:对下列子程序进行测试
Procedure(var A,B,X:real); begin if (A>1) and (B=0) then X:=X/A ; if (A=2) or (X>1) then X:=X+1 end;
评审是由若干开发人员、项目经理、测试人员、用 户或领域专家等组成一个会审小组,通过阅读、讨论和争 议,对工作制品进行静态分析的过程。 类型:需求评审、设计评审和代码评审。
•评审过程
–小组负责人先把需求规格说明、设计说明或程序代 码及有关要求、规范等分发给小组成员,作评审依据;
–在充分阅读有关材料后召开评审会议,主要开发人 员进行讲解,其他成员提出问题并展开讨论,审查是否存 在错误; –评审小组形成产品评审的书面报告。
目录 首页 上页 下页 末页
第10章 软件测试
13/130
走查(Walkthrough)
走查是由设计人员或编程人员组成一个走查小组, 通过阅读一段文档或代码,并进行提问和讨论,从而发 现可能存在的缺陷、遗漏和矛盾的地方。 –类型:设计走查、代码走查。
•走查过程
–与评审过程类似,即先把材料先发给走查小组每 个成员,让他们认真研究程序,然后再开会; –与评审的区别:评审通常是简单地读程序或对照 错误检查表进行检查;走查则是按照所提交的测试用例, 人工模仿计算机运行一遍,并记录跟踪情况。
第10章 软件测试
第10章 软件测试
2/130
第10章 软件测试
10.1 软件测试基础
10.2 白盒测试
10.3 黑盒测试 10.4 测试策略 10.5 面向对象测试 10.6 测试完成的标准 10.7 调试
目录 首页 上页 下页 末页
第10章 软件测试
3/130
教学目的与要求
⒈掌握软件测试的目的、基本原则、测试方法;
第10章 软件测试
10/130
其他的测试原则:
1.在设计测试用例时,应包括合理的输入条件和不 合理的输入条件 2.严格执行测试计划,排除测试的随意性
3.应当对每一个测试结果做全面检查
4.妥善保存测试计划、测试用例、出错统计和最终 分析报告,为维护提供方便 5.检查程序是否做了应做的事仅是成功的一半,另 一半是检查程序是否做了不该做的事
28/130
判定a中各种条件的所有可能结果:A>1, A≤ 1 ,B=0, B ≠ 0。 判定c中各种条件的所有可能结果:A=2, A ≠ 2 ,x>1, x ≤ 1 。 测试数据 预期 结果 路径
sabcde sacde
a f c f e
t b t d
覆盖的条件
A>1, B=0, A=2, x=1 A≤ 1,B ≠ 0, B≠ 2 ,x>1
d
预期结果 x=3
上页 下页 末页
a: (A>1) and (B=0) c: (A=2) or (x>1)
第10章 软件测试
25/130
判定覆盖
判定覆盖(也称分支覆盖)是指选择足够的
测试用例,使得运行这些测试用例时,被测程序 的每个判定的所有可能结果都至少执行一次(即 判定的每个分支至少经过一次) 判定覆盖将每个判定的所有可能结果都至少
目录 首页 上页 下页 末页
第10章 软件测试
17/130
2.动态测试方法
通过选择适当的测试用例,执行程序。
•测试用例的设计是软件测试的关键所在
•设计尽可能少的测试用例来发现尽可能多的错误
•设计最有可能发现软件错误的测试用例,同时避 免使用发现错误效果相同的测试用例 •测试用例的设计方法大体可分为两类: 白盒测试和黑盒测试。
目录 首页 上页 下页 末页
4
5 6
Z=X+Y C=Z*S
第10章 软件测试
16/130
审查(Inspection)
检查是由一些经过严格训练的人员根据评估标准, 对于开发过程中的产品或中间制品进行检查,发现其中 存在的错误。 –检查一般是按规定程序和时间计划进行的,参与 者来自开发人员、测试人员、质量保证人员或用户,以3 -7人组成小组。 •检查过程 –检查遵循一个严格的过程,人员经过培训,检 查过程有评估标准; –检查过程包括计划、会议准备、会议召开、修改 错误、问题跟踪等环节,目的是获得项目管理和质量评 估的数据,并改进检查过程本身。
x=1,A=2,B=0 x=1.5 x=2,A=1,B=1 x=3
a: (A>1) and (B=0) c: (A=2) or (x>1)
目录
首页
上页
下页
末页
第10章 软件测试
29/130
条件覆盖通常比判定覆盖强,但有时虽然 每个条件的所有可能结果都出现过,但判定 表达式的某些可能结果并未出现。上面的二
目录
首页
上页
下页
末页
第10章 软件测试
6/130
10.1 软件测试基础
一、软件测试的目的
测试是一个为了发现错误而执行程序的过程 一个好的测试用例是指很可能找到迄今为至尚未发 现的错误的测试用例 一个成功的测试是指揭示了迄今为至尚未发现的错 误的测试
根据这个测试目的,应该排除对测试的错误观点, 设计合适的测试用例,用尽可能少的测试用例,来发 现尽可能多的软件错误。
⒉熟练掌握白盒测试、黑盒测试及测试用例的设 计;
⒊掌握单元测试、集成测试、确认测试、系统测 试等测试策略;
4.了解面向对象测试的基本内容; ⒌理解测试完成标准 ; ⒍掌握调试的概念及调试方法。
目录 首页 上页 下页 末页
第10章 软件测试
4/130
教学重点
⒈软件测试的目的、基本原则; ⒉白盒测试、黑盒测试及测试用例的设计; ⒊测试策略。
个测试用例满足了条件覆盖标准,但判定c为
“假”的结果并未出现。
目录
首页
上页
下页
末页
第10章 软件测试
30/130
判定/条件覆盖
判定/条件覆盖是指选择足够的测试用例,
使得运行这些测试用例时,被测程序的每个判定
的所有可能结果都至少执行一次,并且,每个判
定中的每个条件的所有可能结果都至少出现一次。 显然,满足判定/条件覆盖标准的测试用例一 定也满足判定覆盖、条件覆盖、语句覆盖标准。
目录 首页 上页 下页 末页
第10章 软件测试
18/130
• 白盒测试(又称结构测试)把测试对象看作一个透 明的盒子,测试人员根据程序内部的逻辑结构及有 关信息设计测试用例,检查程序中所有逻辑路径是 否都按预定的要求正确地工作。
•白盒测试主要用于对模块的测试,包括:
程序模块中的所有独立路径至少执行一次 对所有逻辑判定的取值(“真”与“假”)都至少 测试一次 在上下边界及可操作范围内运行所有循环 测试内部数据结构的有效性等
1.所有的测试都应可追溯到客户需求 2.应在测试工作开始前的较长时间就进行测试计划
3. Pareto原则:测试中发现的80%的错误可能来自 于20%的程序代码
4.测试应从“小规模”开始,逐步转向“大规模” 5.穷举测试是不可能的 6.为达到最有效的测试,应由独立的第三方来承担 测试
目录 首页 上页 下页 末页
目录 首页 上页 下页 末页
第10章 软件测试
14/130
走查时,还常使用以下分析方法: ①调用图:从语义的角度考察程序的控制路线。
A B
Y
READY
Y>0 X:=Y
Y
N
无论Y 为何 值,都不能够调 用子程序。
即执行ABC 后,是不可能执 行路径CDE的。
C
X<0 E
调用子程序
目录
D
N
首页
上页
下页
目录
首页
上页
下页
末页
第10章 软件测试
31/130
a: (A>1) and (B=0) c: (A=2) or (x>1)
第10章 软件测试
24/130
语句覆盖
语句覆盖是指选择足够的测试用 例,使得运行这些测试用例时,被测 程序的每个可执行语句都至少执行一 次。 欲使每个语句都执行一次,只需 执行路径L1(sabcde)即可。 测试用例如下: 测试数据 x=4,A=2,B=0
目录 首页
s a f c f e t b
t
Hale Waihona Puke Baidu目录 首页 上页 下页 末页
第10章 软件测试
19/130
•黑盒测试(又称功能测试)把测试对象看做一个 黑盒子,测试人员完全不考虑程序内部的逻辑结 构和内部特性,只依据程序的需求规格说明书, 检查程序的功能是否符合它的功能需求。 •黑盒测试可用于各种测试,它试图发现以下类型 的错误:
不正确或遗漏的功能 接口错误,如输入/输出参数的个数、类型等 数据结构错误或外部信息访问错误 性能错误 初始化和终止错误
教学难点
⒈白盒测试、黑盒测试及测试用例的设计; ⒉面向对象测试的基本内容。
教学学时
5学时
目录
首页
上页
下页
末页
第10章 软件测试
5/130
教学方法
采用多媒体课件+讲授法+启发式相结合教学
教学参考文献
⒈《软件工程导论(第五版)》,张海藩,清华大学出版社 ⒉《软件工程 (第二版)》,齐治昌,高等教育出版社 ⒊《软件测试教程》,宫云战,机械工业出版社 ⒋《软件测试技术概论》,古乐,清华大学出版社 ⒌《软件性能测试与LoadRunner实战》,于涌,人民 邮电出版社
该子程序接受A、B、X的值,并将计算结果x的 值返回给调用程序。
与该子程序对应的流程图如下:
目录 首页 上页 下页 末页
第10章 软件测试
23/130
s a
入口
(A>1) and (B=0) f
t x= x /A b
c
(A=2) or (x >1) f
t
x=x+1 d
e
返回
目录 首页 上页 下页 末页
目录 首页 上页 下页 末页
第10章 软件测试
7/130
有关软件测试的错误观点
“软件测试是为了证明程序是正确的,即测 试能发现程序中所有的错误”。事实上这是不可 能的。要通过测试发现程序中的所有错误,就要 穷举所有可能的输入数据。
例:程序P有两个整型输入量 X、Y,输出量为 Z,在32位机上运行。所有的测试数据组(Xi,Yi) 的数目为:232×232= 264,1毫秒执行1次,共需5亿 年。 X
Y
目录 首页 上页 下页
P
末页
Z
第10章 软件测试
8/130
“程序测试是证明程序正确地执行了预期的
功能”。实际上,一个程序不仅要完成它所需
完成的功能,而且不应完成它不该做的事。如
不能把边长为0、0、0的三条边判断为等边三角
形。
目录
首页
上页
下页
末页
第10章 软件测试
9/130
二、软件测试的原则
Davis提出了一组指导软件测试的基本原则:
6.在规划测试时不要设想程序中不会查出错误
目录 首页 上页 下页 末页
第10章 软件测试
11/130
三、软件测试方法
软件测试方法
静态分析
动态测试 1.静态分析方法 指以人工的、非形式化的方法对程序进行分析
和测试。
主要形式:审查、评审和走查。
目录
首页
上页
下页
末页
第10章 软件测试
12/130
评审(Review)
执行一次,所以,程序中的所有语句也必定都至
少执行一次。因此,满足判定覆盖标准的测试用 例也一定满足语句覆盖标准。
目录 首页 上页 下页 末页
第10章 软件测试 s
26/130
欲使每个分支都执行一次,只需
a f c f e
t
b
执行路径L3(sacde)和L4(sabce)
即可。 或者,执行路径L1(sabcde) 和L2(sace). 测试数据 预期结果 路径 x=1,A=2,B=1 x=2 sacde x=3,A=3,B=0 x=1 sabce
末页
第10章 软件测试
15/130
② 数据流分析图:检查分析变量的定义和引用情况。
1 R=0.5 W=1/S Y=A**W Y=E*W
2
3
节点 —表示单个语句。 有向边 —表示控制结构。 d — 定义 r — 引用 u — 未引用 R:duuuuu 只定义不用 S:uruuur 未定义引用 Y:uuddru 连续定义
目录 首页 上页 下页 末页
第10章 软件测试
20/130
10.2 白盒测试
常用的白盒测试方法有:
• 逻辑覆盖测试
• 基本路径覆盖测试
• 数据流测试
• 循环测试
目录
首页
上页
下页
末页
第10章 软件测试
21/130
逻辑覆盖测试
逻辑覆盖主要考察使用测试数据运行被测 程序时对程序逻辑的覆盖程度。通常希望选择 最少的测试用例来满足所需的覆盖标准。主要 的覆盖标准有: