算六章 歌件测试
第 六 章
6.1软件测试的基本概念 一、软件测试的目的和重要性 因为开发工作的前期不可避免地会引入错误,测 试的目的是为了发现和改正错误,这对于某些涉 及人的生命安全或重要的军事、经济目标的项目 显得尤其重要。 1963年美国飞往火星的火箭爆炸,原因是 FORTRAN程序:Do5I=1,3 误写为:Do5I=1.3损失1000万美元。 1967年苏联“联盟一号”宇宙飞船返回时因忽略 个小数点,在进入大气层时打不开降落伞而 烧毁。 首页上页[下页末页片退出
6.1软件测试的基本概念 一、软件测试的目的和重要性 因为开发工作的前期不可避免地会引入错误,测 试的目的是为了发现和改正错误,这对于某些涉 及人的生命安全或重要的军事、经济目标的项目 显得尤其重要。 1963年美国飞往火星的火箭爆炸,原因是 FORTRAN程序:DO 5 I=1,3 误写为:DO 5 I=1. 3 损失1000万美元。 1967年苏联“联盟一号”宇宙飞船返回时因忽略 一个小数点,在进入大气层时打不开降落伞而 烧毁。 首页 上页 下页 末页 退出
软件测试的特点 1、软件测试的开销大 按照 Boehm的统计,软件测试的开销大约占总成 本的30%-50%例如: APPOLLO登月计划, 80%的经费用于软件测试。 2、不能进行“穷举”测试 只有将所有可能的情况都测试到,才有可能检查 出所有的错误。但这是不可能的 例:程序P有两个整型输入量X、Y,输出量为Z, 在32位机上运行。所有的测试数据组(X,Y1)的 数目为:232×23=261毫秒执行次,共需5 亿年。 Y 首页上页[下页末页片退出
二、软件测试的特点 1、软件测试的开销大 按照Boehm的统计,软件测试的开销大约占总成 本的30%-50%。例如:APPOLLO登月计划, 80%的经费用于软件测试。 2、不能进行“穷举”测试 只有将所有可能的情况都测试到,才有可能检查 出所有的错误。但这是不可能的: 例:程序P有两个整型输入量 X、Y,输出量为Z, 在32位机上运行。所有的测试数据组(Xi,Yi)的 数目为: 2 2 = 2 1毫秒执行1次,共需5 亿年。 32 32 64 P X Y Z 首页 上页 下页 末页 退出
二、软件测试的特点一结论 3、软件测试难度大 根据上述分析,既然不能进行“穷举”测试, 又要查出尽可能多的错误,软件测试工作的难 度大。只有选择 “高效的测试用例” 什么是“高效的测试用例”? 如何选择“高效的测试用例”? 这就是本章讨论的主要问题!!! 首页上页[下页末页片退出
二、软件测试的特点 — 结论 3、软件测试难度大 根据上述分析,既然不能进行 “穷举”测试, 又要查出尽可能多的错误,软件测试工作的难 度大。只有选择 — “高效的测试用例” 什么是“高效的测试用例”? 如何选择“高效的测试用例”? 这就是本章讨论的主要问题!!! 首页 上页 下页 末页 退出
三、软件测试的基本原则 1、尽量不由程序设计者进行测试。 2、关键是注重测试用例的选择。 输入数据的组成(输入数据、预期的输出结果) 。既有合理输入数据,也有不合理的输入数据。 用例既能检查应完成的任务,也能够检查不应该 完成的任务。 长期保存测试用例。 3、充分注意测试中的群集现象。 首页上页[下页末页片退出
三、软件测试的基本原则 3、充分注意测试中的群集现象。 1、尽量不由程序设计者进行测试。 2、关键是注重测试用例的选择。 输入数据的组成(输入数据、预期的输出结果) 既有合理输入数据,也有不合理的输入数据。 用例既能检查应完成的任务,也能够检查不应该 完成的任务。 长期保存测试用例。 首页 上页 下页 末页 退出
四、测试的基本步骤 模块测试(单元测试) 概要设计审查 整体测试(组装测试) 详细设计审查 功能测试(有效性测试) 匚代码审查 系统测试(确认测试) 验收测试 安装测试 预测试 「测试 首页上页[下页末页片退出
四、测试的基本步骤 模块测试 整体测试 功能测试 预测试 系统测试 验收测试 安装测试 概要设计审查 详细设计审查 代码审查 测试 (单元测试) (组装测试) (有效性测试) (确认测试) { { 首页 上页 下页 末页 退出
62软件测试方法 软件测试方法分为两类:静态分析、动态测试 静态分析方法 指以人工的、非形式化的方法对程序进行分析和 测试。 ●桌前检查·代码会审步行检查 步行检查时,还常使用以下分析方法: ①调用图 从语义的角度考察程序的控制路线。 ②数据流分析图 检查分析变量的定义和引用情况。 首页上页[下页末页片退出
6.2 软件测试方法 软件测试方法分为两类:静态分析、动态测试 一、静态分析方法 指以人工的、非形式化的方法对程序进行分析和 测试。 桌前检查 代码会审 步行检查 步行检查时,还常使用以下分析方法: ① 调用图 从语义的角度考察程序的控制路线。 ② 数据流分析图 检查分析变量的定义和引用情况。 首页 上页 下页 末页 退出
①调用图 A READY 无论Y为何值,都 N B Y>0 不能够调用子程序。 Y X =Y 即执行ABC后,是 X<0 D 不可能执行路径 E DE的。 调用子程序 首页上页[下页末页片退出
① 调用图 无论Y 为何值,都 不能够调用子程序。 READY Y>0 N X:=Y X<0 Y N Y 调用子程序 A B C D E 首页 上页 下页 末页 退出 即执行ABC后,是 不可能执行路径 CDE的
②数据流分析图 节点一表示单个语句。 R=0.5 有向边一表示控制结构。 w=1/S d—定义 r—引用 3 Y=A**W u—未引用 Y=E*W R:duuu只定义不用 5 Z=X+Y s: uruuur未定义引用 6C-Z*S Y: uuder连续定义 首页上页[下页末页片退出
② 数据流分析图 节点 —表示单个语句。 有向边 —表示控制结构。 d — 定义 r — 引用 u — 未引用 R:duuuuu S :uruuur Y:uuddru R=0.5 W=1/S Y=A**W Y=E*W Z=X+Y C=Z*S 1 2 3 4 5 6 只定义不用 未定义引用 连续定义 首页 上页 下页 末页 退出
动态测试方法(1) 通过选择适当的测试用例,执行程序。 常用的方法 1、白盒法 分析程序的内部逻辑结构,注意选择适当的覆 盖标准,设计测试用例,对主要路径进行尽可 能多的测试。 2、黑盒法 不考虑程序的内部结构与特性,只根据程序 功能或程序的外部特性设计测试用例。 首页上页[下页末页退出
二、动态测试方法(1) 通过选择适当的测试用例,执行程序。 常用的方法: 1、白盒法 分析程序的内部逻辑结构,注意选择适当的覆 盖标准,设计测试用例,对主要路径进行尽可 能多的测试。 2、黑盒法 不考虑程序的内部结构与特性,只根据程序 功能或程序的外部特性设计测试用例。 首页 上页 下页 末页 退出