软件测试技术ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
选择用例:
[(2,20,04)4,(2,0,3)] [(1,11,1),1(1,1,1)]
注意:[(1,0,3),(1,0,4)] [(2,1,1),(2,1,2)]
满足条件覆盖,但不满足判断 覆盖。
② 数据流分析图
1
R=0.5
2
W=1/S
3 Y=A**W
4 Y=E*W
5 Z=X+Y
6 C=Z*S
节点 —表示单个语句。
有向边 —表示控制结构。 d — 定义 r — 引用 u — 未引用
R:duuuuu S :uruuur Y:uuddru
只定义不用 未定义引用 连续定义
二、动态测试方法(1)
一个小数点,在进入大气层时打不开降落伞而 烧毁。
二、软件测试的特点
1、软件测试的开销大
按照Boehm的统计,软件测试的开销大约占总成 本的30%-50%。例如:APPOLLO登月计划, 80%的经费用于软件测试。
2、不能进行“穷举”测试
只有将所有可能的情况都测试到,才有可能检查 出所有的错误。但这是不可能的:
例:程序P有两个整型输入量 X、Y,输出量为Z, 在32位机上运行。所有的测试数据组(Xi,Yi)的 数目为: 2 32 2 32= 2 64 1毫秒执行1次,共需5 亿年。
X
P
Z
Y
二、软件测试的特点 — 结论 3、软件测试难度大
根据上述分析,既然不能进行 “穷举”测试, 又要查出尽可能多的错误,软件测试工作的难 度大。只有选择 —
END;
白盒法举例
Procedure (VAR A,B,X:REAL); BEGIN IF(A>1) AND (B=0) TH逻E辑N结构X:=X/A ; IF (A=2) OR (X>1) THEN X:=X+1 END;
A>1 AND B=0
N
Y
X:=X/A
A=2
Y
OR
X>1
N
X:=X+1
1、语句覆盖
由
6.1软件测试的基本概念
一、软件测试的目的和重要性
因为开发工作的前期不可避免地会引入错误,测 试的目的是为了发现和改正错误,这对于某些涉 及人的生命安全或重要的军事、经济目标的项目 显得尤其重要。
1963年美国飞往火星的火箭爆炸,原因是 FORTRAN程序:DO 5 I=1,3
误写为:DO 5 I=1. 3 损失1000万美元。 1967年苏联“联盟一号”宇宙飞船返回时因忽略
弱
强
判
条
语
判
条
定
件
句
定
件
条
组
覆
覆
覆
件
合
盖
盖
盖
覆 盖
覆 盖
白盒法常用的覆盖标准
① 语句覆盖: 选择足够的测试用例,使得程序中每个语 句至少都能被执行一次。 ② 判定覆盖: 执行足够的测试用例,使得程序中每个判 定至少都获得一次“真”值和“假”值。 ③ 条件覆盖:执行足够的测试用例,使得判定中的每个条 件获得各种可能的结果。 ④ 判定/条件覆盖: 执行足够的测试用例,使得判定中每 个条件取到各种可能的值,并使每个判定取到各种可能的 结果。 ⑤ 条件组合覆盖: 执行足够的例子,使得每个判定中条 件的各种可能组合都至少出现一次。
“高效的测试用例”
什么是“高效的测试用例”? 如何选择“高效的测试用例”?
这就是本章讨论的主要问题!!!
三、软件测试的基本原则
1、尽量不由程序设计者进行测试。 2、关键是注重测试用例的选择。
输入数据的组成(输入数据、预期的输出结果) 既有合理输入数据,也有不合理的输入数据。 用例既能检查应完成的任务,也能够检查不应该 完成的任务。 长期保存测试用例。
白盒法步骤:
1)选择逻辑覆盖标准。 2)按照覆盖标准列出所有情况。 3)选择确定测试用例。 4)验证分析运行结果与预期结果。
逻辑结构
例:用白盒法测试以下程序段: 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
测试。
桌前检查
代码会审
步行检查
步行检查时,还常使用以下分析方法:
① 调用图 从语义的角度考察程序的控制路线。
② 数据流分析图 检查分析变量的定义和引用情况。
① 调用图
A READY
N
B
Y>0
Y
C
X:=Y
Y
X<0 D
E
N
调用子程序
无论Y 为何值,都
不能够调用子程序。
即执行ABC后,是 不可能执行路径 CDE的。
3、充分注意测试中的群集现象。
由安博测试空间技术中心 提供
四、测试的基本步骤
概要设计审查 详细设计审查
代码审查
模块测试 (单元测试)
整体测试 (组装测试)
功能测试
{ 系统测试
(有效性测试) (确认测试)
{ 验收测试
安装测试
预测试
测试
6.2 软件测试方法
软件测试方法分为两类:静态分析、动态测试
一、静态分析方法 指以人工的、非形式化的方法对程序进行分析和
N
b
c
Y
X:=X/A
A=2 OR X>1
dN
e
Y
X:=X+1
使得程序中每个判定至少为 TRUE 或FALSE各一次。
覆盖情况:应执行路径 ace ∧ abd 或: acd ∧ abe 选择用例(其一): ⑴ [(2,0,4),(2,0,3)] ace
[(1,1,1),(1,1,1)] abd ⑵ [(2,1,1),(2,1,2)] abe
a
A>1 AND B=0
N
b
c
Y
X:=X/A
A=2 OR X>1
dN
Ye
X:=X+1
使得程序中每个语句至少 都能被执行一次。
满足语句覆盖的情况: 执行路径:ace
用例格式: [输入(A,B,X),输出(A,B,X)]
选择用例: [(2,0,4),(2,0,3)]
2、判定覆盖
wk.baidu.com
a
A>1 AND B=0
通过选择适当的测试用例,执行程序。 常用的方法:
1、白盒法 分析程序的内部逻辑结构,注意选择适当的
覆盖标准,设计测试用例,对主要路径进行尽 可能多的测试。
2、黑盒法 不考虑程序的内部结构与特性,只根据程
序功能或程序的外部特性设计测试用例。
白盒法
白盒法又称为逻辑覆盖法,其测试用例选择, 是按照不同覆盖标准确定的。
[(3,0,3),(3,1,1)] acd
3、条件覆盖 a
A>1 AND B=0
N
b
c
Y
X:=X/A
A=2 OR X>1
d
N
e
Y
X:=X+1
使得判定中的每个条件获 得各种可能的结果。
应满足以下覆盖情况: 判定一: A>1, AA≤≤11, BB==0,0B≠B0≠0 判定二: A=2, AA≠≠22, XX>>1,1X≤X1≤1
[(2,20,04)4,(2,0,3)] [(1,11,1),1(1,1,1)]
注意:[(1,0,3),(1,0,4)] [(2,1,1),(2,1,2)]
满足条件覆盖,但不满足判断 覆盖。
② 数据流分析图
1
R=0.5
2
W=1/S
3 Y=A**W
4 Y=E*W
5 Z=X+Y
6 C=Z*S
节点 —表示单个语句。
有向边 —表示控制结构。 d — 定义 r — 引用 u — 未引用
R:duuuuu S :uruuur Y:uuddru
只定义不用 未定义引用 连续定义
二、动态测试方法(1)
一个小数点,在进入大气层时打不开降落伞而 烧毁。
二、软件测试的特点
1、软件测试的开销大
按照Boehm的统计,软件测试的开销大约占总成 本的30%-50%。例如:APPOLLO登月计划, 80%的经费用于软件测试。
2、不能进行“穷举”测试
只有将所有可能的情况都测试到,才有可能检查 出所有的错误。但这是不可能的:
例:程序P有两个整型输入量 X、Y,输出量为Z, 在32位机上运行。所有的测试数据组(Xi,Yi)的 数目为: 2 32 2 32= 2 64 1毫秒执行1次,共需5 亿年。
X
P
Z
Y
二、软件测试的特点 — 结论 3、软件测试难度大
根据上述分析,既然不能进行 “穷举”测试, 又要查出尽可能多的错误,软件测试工作的难 度大。只有选择 —
END;
白盒法举例
Procedure (VAR A,B,X:REAL); BEGIN IF(A>1) AND (B=0) TH逻E辑N结构X:=X/A ; IF (A=2) OR (X>1) THEN X:=X+1 END;
A>1 AND B=0
N
Y
X:=X/A
A=2
Y
OR
X>1
N
X:=X+1
1、语句覆盖
由
6.1软件测试的基本概念
一、软件测试的目的和重要性
因为开发工作的前期不可避免地会引入错误,测 试的目的是为了发现和改正错误,这对于某些涉 及人的生命安全或重要的军事、经济目标的项目 显得尤其重要。
1963年美国飞往火星的火箭爆炸,原因是 FORTRAN程序:DO 5 I=1,3
误写为:DO 5 I=1. 3 损失1000万美元。 1967年苏联“联盟一号”宇宙飞船返回时因忽略
弱
强
判
条
语
判
条
定
件
句
定
件
条
组
覆
覆
覆
件
合
盖
盖
盖
覆 盖
覆 盖
白盒法常用的覆盖标准
① 语句覆盖: 选择足够的测试用例,使得程序中每个语 句至少都能被执行一次。 ② 判定覆盖: 执行足够的测试用例,使得程序中每个判 定至少都获得一次“真”值和“假”值。 ③ 条件覆盖:执行足够的测试用例,使得判定中的每个条 件获得各种可能的结果。 ④ 判定/条件覆盖: 执行足够的测试用例,使得判定中每 个条件取到各种可能的值,并使每个判定取到各种可能的 结果。 ⑤ 条件组合覆盖: 执行足够的例子,使得每个判定中条 件的各种可能组合都至少出现一次。
“高效的测试用例”
什么是“高效的测试用例”? 如何选择“高效的测试用例”?
这就是本章讨论的主要问题!!!
三、软件测试的基本原则
1、尽量不由程序设计者进行测试。 2、关键是注重测试用例的选择。
输入数据的组成(输入数据、预期的输出结果) 既有合理输入数据,也有不合理的输入数据。 用例既能检查应完成的任务,也能够检查不应该 完成的任务。 长期保存测试用例。
白盒法步骤:
1)选择逻辑覆盖标准。 2)按照覆盖标准列出所有情况。 3)选择确定测试用例。 4)验证分析运行结果与预期结果。
逻辑结构
例:用白盒法测试以下程序段: 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
测试。
桌前检查
代码会审
步行检查
步行检查时,还常使用以下分析方法:
① 调用图 从语义的角度考察程序的控制路线。
② 数据流分析图 检查分析变量的定义和引用情况。
① 调用图
A READY
N
B
Y>0
Y
C
X:=Y
Y
X<0 D
E
N
调用子程序
无论Y 为何值,都
不能够调用子程序。
即执行ABC后,是 不可能执行路径 CDE的。
3、充分注意测试中的群集现象。
由安博测试空间技术中心 提供
四、测试的基本步骤
概要设计审查 详细设计审查
代码审查
模块测试 (单元测试)
整体测试 (组装测试)
功能测试
{ 系统测试
(有效性测试) (确认测试)
{ 验收测试
安装测试
预测试
测试
6.2 软件测试方法
软件测试方法分为两类:静态分析、动态测试
一、静态分析方法 指以人工的、非形式化的方法对程序进行分析和
N
b
c
Y
X:=X/A
A=2 OR X>1
dN
e
Y
X:=X+1
使得程序中每个判定至少为 TRUE 或FALSE各一次。
覆盖情况:应执行路径 ace ∧ abd 或: acd ∧ abe 选择用例(其一): ⑴ [(2,0,4),(2,0,3)] ace
[(1,1,1),(1,1,1)] abd ⑵ [(2,1,1),(2,1,2)] abe
a
A>1 AND B=0
N
b
c
Y
X:=X/A
A=2 OR X>1
dN
Ye
X:=X+1
使得程序中每个语句至少 都能被执行一次。
满足语句覆盖的情况: 执行路径:ace
用例格式: [输入(A,B,X),输出(A,B,X)]
选择用例: [(2,0,4),(2,0,3)]
2、判定覆盖
wk.baidu.com
a
A>1 AND B=0
通过选择适当的测试用例,执行程序。 常用的方法:
1、白盒法 分析程序的内部逻辑结构,注意选择适当的
覆盖标准,设计测试用例,对主要路径进行尽 可能多的测试。
2、黑盒法 不考虑程序的内部结构与特性,只根据程
序功能或程序的外部特性设计测试用例。
白盒法
白盒法又称为逻辑覆盖法,其测试用例选择, 是按照不同覆盖标准确定的。
[(3,0,3),(3,1,1)] acd
3、条件覆盖 a
A>1 AND B=0
N
b
c
Y
X:=X/A
A=2 OR X>1
d
N
e
Y
X:=X+1
使得判定中的每个条件获 得各种可能的结果。
应满足以下覆盖情况: 判定一: A>1, AA≤≤11, BB==0,0B≠B0≠0 判定二: A=2, AA≠≠22, XX>>1,1X≤X1≤1