6 第 六 章 软件测试.

Slides:



Advertisements
Similar presentations
仪 容. 一、化妆的技巧 眼部的化妆 唇部化妆 眉部化妆 鼻部化妆 根据脸型化妆 根据脸型选发型.
Advertisements

何仕仁 主任. 國立彰化高中數理資優班 柯承翰、柯宗賢、曾品祥 國立彰化高中數理實驗班 柯宗逸、辛百弘 國立彰化女中數理資優班 姚彤錦 國立彰化女中語文資優班 陳思穎 國立彰化女中數理實驗班 姚曉蓉.
人的性别遗传 合肥市第四十九中学 丁 艳. 男女成对染色体排序图 1 、男性和女性各 23 对染色体有何异同 ? 哪 一对被称为性染色体 ? 2 、这两幅图中,哪幅 图显示的是男性的染色 体?哪幅图显示的是女 性染色体? 3 、图中哪条染色体是 Y 染色体?它与 X 染色体 在形态上的主要区别是.
新闻写作基础知识 一. 新闻导语 二.新闻主体 三.新闻结构 四.角度选择.
第一部分 考试总体分析 第二部分 命题思路与答题方法 技巧分析
第五章 企业所得税、个人所得税.
第10讲 中共领导的民主革命与国共关系 中国共产党领导的民主革命斗争,就是中共领导的新民主主义革命的历程。1921年到1949年,中国共产党领导全国人民,把马克思主义普遍真理同中国革命的具体实践及国情相结合,制定民主革命纲领,建立革命统一战线,走农村包围城市的道路。经过工农武装割据、抗日战争和人民解放战争,推翻了帝国主义、封建主义和官僚资本主义的反动统治,取得了新民主主义革命的伟大胜利。复习时注意中共在各个时期重大会议及国共关系的复习。
2011年会计初级职称全国统考 初级会计实务 教案 主讲:高峰 2010年12月.
成功八步 成功一定有方法 失败一定有原因 银河系统.
人口与环境 邯郸市第一中学 王贺渠 2015年4月2日.
對於學習不力學生的學習輔導經驗分享 張其清 新北市立新北高工 主任輔導教師.
1、一般地说,在生物的体细胞中, 和 都是成对存在的。
辨性别 A B. 辨性别 A B 第三节人类染色体与性别决定 昌邑市龙池初中 杨伟红 学习目标 1.理解人的染色体组成和传递规律。 2.解释人类性别决定的原理。 3.通过探究活动,解读数据了解生男生女的比例。
全国一级建造师执业资格考试 《建设工程法规及相关知识》 高 唱
温故而知新: 我国的国家性质是什么? 人民民主专政的国体 国家的一切权利属于人民 决 定 我国政府是人民的政府.
热点专题: “法轮功”问题.
要SHOW才會贏 教你在生活中學企劃 救國團總團部活動處 文耀忠.
文化在继承中发展.
文化在继承中发展.
服务热线: 菏泽教师招聘考试统考Q群: 菏泽教师统考教育基础模拟题解析.
第二单元 生产、劳动与经营.
岗位职务描述 企业培训师(一级)认证培训 主讲 孟志雄 湖南省职业经理人协会人力资源委员会理事
七(7)中队读书节 韩茜、蒋霁制作.
第一课 生活在人民当家作主的国家 人民民主专政: 本质是人民当家作主.
实现人生的华丽转身 —2014年高速公路考试备考指导 中公教育陈修晓.
1.中国古代农业 (1)古代农业耕作方式从刀耕火种到铁犁牛耕的演变。 (2)古代农具的发明、改进,水利工程建设;农作物的培植、引进和推广所涉及的精耕细作的农业生产方式。 (3)小农经济的形成、特点及评价。 (4)古代土地制度从原始社会土地公有制到封建社会的土地私有制。 (5)古代重农政策及以农立国的思想。
四年級課程綱要細目解讀 第四組 冠瑛、家珍、惠卿、琬婷.
印 花 税.
第二章 股票.
清仓处理 跳楼价 满200返160 5折酬宾.
第10章 系统实施.
第二单元 动物生命活动的调节和免疫 高等动物的内分泌系统与体液调节.
企业所得税.
1.1.2 四 种 命 题.
第三章 描述和分析问题.
钳加工技术 广西玉林高级技工学校|数控教研组.
出隊服務經驗分享 分享人:大丁.
色 弱 與 色 盲.
我国三大自然区.
财经法规与会计职业道德 (25) 四川财经职业学院.
你 今 天 累 吗 ? 坪山高级中学心理教师 张婧乔.
第七章 财务报告 财务报告 第一节 财务报告概述 一、财务报告及其目标: 1、概念:财务报告是指企业对外提供的反映企业某一特定日期
统计法基础知识 主讲:胡燕 二0一五年八月.
第一节 培训开发体系设计与运行 第二节 企业培训文化与成果转化 第三节 创新能力培养 第四节 职业生涯规划与管理
1.4 民用建筑的构造组成 1、基础 2、墙体和柱 3、屋顶 4、楼地层 5、楼梯 6、门窗 次要组成部分(阳台、雨蓬、台阶、散水等)
宠物之家 我的宠物性别? 雌(♀) or 雄(♂) 第一阶段:我的宠物我做主 第二阶段:宠物“相亲记” 第三阶段:家族诞生
2017年9月10日星期日.
软件工程 第八章 软件测试 制作者 程丽.
离职流程精细化标准推进材料 人事行政处.
《统计学原理》第一章习题 一.判断题部分 1 :社会经济统计的研究对象是社会经济现 象总体的各个方面。(× )
温故知新 1、凸透镜成像的规律有哪些? 2、照相机成像的原理是什么?.
复习: 诚实内涵 诚实二个表现 诚实意义 1、对自己要诚实2、对他人诚恳实在.
珍爱生命.
政治第二轮专题复习专题七 辩 证 法.
矿产资源储量管理
三角形的邊角關係 大綱:三角形邊的不等關係 三角形邊角關係 樞紐定理 背景知識:不等式 顧震宇 台灣數位學習科技股份有限公司.
新聞報導 一、什麼是新聞? 1、狗咬人不是新聞,人咬狗才是新聞 2、大眾關切的事 3、讀者有興趣知道的事 4、接近性.
「基本學力測驗」 與 「學科能力測驗」國文試題評析
递推算法 递推是一种重要的数学方法,在数学和计算机领域都有广泛应用。这种算法的特点是:一个问题的求解需要一系列的计算,在已知条件和所求问题之间总存在某种相互联系的关系。在计算时,可以找到前后过程间的数量关系,即递推。递推算法包括顺推和逆推。 递推算法的关键在于找到相邻数据项之间的关系,即递推关系,建立递推关系式。我们有时将递推算法看成一种特殊的迭代算法。
习题——管理信息的收集与处理 授课老师:sunny.
30 利用畢氏定理,計算下列各直角三角形中, 未知邊長 x 的值: (1) x2+( )2=( )2 x= 因為 x>0, 所以 x=3。
指導老師:葉淳媛老師 組 員:施金翰 廖仁輝 李柏蔚 黃威耀 邱哲偉 張育彬 報告日期:100年12月6日
 與切線有關的證明 定理 若半徑 OP⊥ AP, 則 AP 是圓的切線。 [ 切線⊥半徑的逆定理 ]
经济法基础习题课 主讲:赵钢.
第七章  事业单位支出的核算      §第一节  支出概述     §第二节  拨出款项     §第三节  各项支出     §第四节  成本费用.
会计基础 第二章 会计要素与会计等式 刘颖
1.3 运动快慢的描述----速度 育 才 中 学.
102-2金融法規(2~4) ~03..
(5) (-5x)(-7x+2) =__________ (6) 7x(5x2+6x-3) = _______________ -27x2
第七章 软件测试 Software Testing
Presentation transcript:

6 第 六 章 软件测试

6.1软件测试的基本概念 一、软件测试的目的和重要性 因为开发工作的前期不可避免地会引入错误,测试的目的是为了发现和改正错误,这对于某些涉及人的生命安全或重要的军事、经济目标的项目显得尤其重要。 1963年美国飞往火星的火箭爆炸,原因是FORTRAN程序:DO 5 I=1,3 误写为:DO 5 I=1. 3 损失1000万美元。 1967年苏联“联盟一号”宇宙飞船返回时因忽略一个小数点,在进入大气层时打不开降落伞而烧毁。

按照Boehm的统计,软件测试的开销大约占总成本的30%-50%。例如:APPOLLO登月计划,80%的经费用于软件测试。 二、软件测试的特点 1、软件测试的开销大 按照Boehm的统计,软件测试的开销大约占总成本的30%-50%。例如:APPOLLO登月计划,80%的经费用于软件测试。 2、不能进行“穷举”测试 只有将所有可能的情况都测试到,才有可能检查出所有的错误。但这是不可能的: 例:程序P有两个整型输入量 X、Y,输出量为Z,在32位机上运行。所有的测试数据组(Xi,Yi)的数目为: 2 2 = 2 1毫秒执行1次,共需5亿年。 32 64 P X Y Z

二、软件测试的特点 — 结论 3、软件测试难度大 根据上述分析,既然不能进行 “穷举”测试,又要查出尽可能多的错误,软件测试工作的难度大。只有选择 — “高效的测试用例” 什么是“高效的测试用例”? 如何选择“高效的测试用例”? 这就是本章讨论的主要问题!!!

三、软件测试的基本原则 1、尽量不由程序设计者进行测试。 2、关键是注重测试用例的选择。 输入数据的组成(输入数据、预期的输出结果) 既有合理输入数据,也有不合理的输入数据。 用例既能检查应完成的任务,也能够检查不应该完成的任务。 长期保存测试用例。 3、充分注意测试中的群集现象。

{ { 四、测试的基本步骤 预测试 测试 模块测试 整体测试 概要设计审查 功能测试 详细设计审查 系统测试 代码审查 验收测试 安装测试 (单元测试) 概要设计审查 整体测试 (组装测试) 功能测试 (有效性测试) 详细设计审查 { 系统测试 (确认测试) 代码审查 验收测试 { 安装测试 预测试 测试

6.2 软件测试方法 软件测试方法分为两类:静态分析、动态测试 一、静态分析方法 指以人工的、非形式化的方法对程序进行分析和测试。 桌前检查 代码会审 步行检查 步行检查时,还常使用以下分析方法: ① 调用图 从语义的角度考察程序的控制路线。 ② 数据流分析图 检查分析变量的定义和引用情况。

无论Y 为何值,都不能够调用子程序。 ① 调用图 即执行ABC后,是不可能执行路径CDE的。 A READY Y>0 B C X:=Y N Y>0 B Y C X:=Y 即执行ABC后,是不可能执行路径CDE的。 Y X<0 D E N 调用子程序

② 数据流分析图 节点 —表示单个语句。 有向边 —表示控制结构。 d — 定义 r — 引用 u — 未引用 R:duuuuu 只定义不用 1 2 3 4 5 6 R=0.5 W=1/S Y=A**W Y=E*W R:duuuuu S :uruuur Y:uuddru 只定义不用 未定义引用 连续定义 Z=X+Y C=Z*S

二、动态测试方法(1) 通过选择适当的测试用例,执行程序。 常用的方法: 1、白盒法 分析程序的内部逻辑结构,注意选择适当的覆盖标准,设计测试用例,对主要路径进行尽可能多的测试。 2、黑盒法 不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。

白盒法 白盒法又称为逻辑覆盖法,其测试用例选择,是按照不同覆盖标准确定的。 强 弱 语 句 覆 盖 判 定 覆 盖 条 件 覆 盖 判 定 组 合 覆 盖

白盒法常用的覆盖标准 ① 语句覆盖: 选择足够的测试用例,使得程序中每个语句至少都能被执行一次。 ② 判定覆盖: 执行足够的测试用例,使得程序中每个判定至少都获得一次“真”值和“假”值。 ③ 条件覆盖:执行足够的测试用例,使得判定中的每个条件获得各种可能的结果。 ④ 判定/条件覆盖: 执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果。 ⑤ 条件组合覆盖: 执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。

Procedure(VAR A,B,X:REAL); BEGIN IF (A>1) AND (B=0) THEN X:=X/A ; 白盒法步骤: 逻辑结构 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 END;

白盒法举例 Procedure (VAR A,B,X:REAL); BEGIN IF(A>1) AND (B=0) X:=X/A A=2 OR X>1 X:=X+1 Y N 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; 逻辑结构

1、语句覆盖 使得程序中每个语句至少都能被执行一次。 a c 满足语句覆盖的情况: 执行路径:ace b 用例格式: AND B=0 Y 满足语句覆盖的情况: 执行路径:ace N X:=X/A b 用例格式: [输入(A,B,X),输出(A,B,X)] Y e A=2 OR X>1 X:=X+1 d N 选择用例: [(2,0,4),(2,0,3)]

使得程序中每个判定至少为TRUE 或FALSE各一次。 a 2、判定覆盖 使得程序中每个判定至少为TRUE 或FALSE各一次。 a c A>1 AND B=0 覆盖情况:应执行路径 ace ∧ abd 或: acd ∧ abe Y N X:=X/A b 选择用例(其一): ⑴ [(2,0,4),(2,0,3)] ace [(1,1,1),(1,1,1)] abd ⑵ [(2,1,1),(2,1,2)] abe [(3,0,3),(3,1,1)] acd A=2 OR X>1 e Y N X:=X+1 d

使得判定中的每个条件获得各种可能的结果。 3、条件覆盖 使得判定中的每个条件获得各种可能的结果。 a 应满足以下覆盖情况: 判定一: A>1, A≤1, B=0, B≠0 判定二: A=2, A≠2, X>1, X≤1 c A>1 AND B=0 A>1 A≤1 B=0 B≠0 Y A=2 A≠2 X>1 X≤1 N X:=X/A b 选择用例: [(2,0,4),(2,0,3)] [(1,1,1),(1,1,1)] 2 4 A=2 OR X>1 e 1 1 1 Y N X:=X+1 注意:[(1,0,3),(1,0,4)] [(2,1,1),(2,1,2)] 满足条件覆盖,但不满足判断覆盖。 d

a ace ∧ abd 或: acd ∧ abe c b e d 4、判定/条件覆盖 同时满足判断覆盖和条件覆盖。 a 应满足以下覆盖情况: 条件: A>1, A≤1, B=0, B≠0 A=2, A≠2, X>1, X≤1 应执行路径 ace ∧ abd 或: acd ∧ abe c A>1 AND B=0 Y N X:=X/A b A=2 OR X>1 e Y 选择用例: [(2,0,4),(2,0,3)](ace) [(1,1,1),(1,1,1)] (abd) N X:=X+1 d

使得每个判定中条件的各种可能组合都至少出现一次。 5、条件组合覆盖 使得每个判定中条件的各种可能组合都至少出现一次。 a Y c Y 满足以下覆盖情况: ① A>1, B =0 ② A>1, B≠0 ③ A≤1, B =0 ④ A≤1, B≠0 ⑤ A=2, X>1 ⑥ A=2, X≤1 ⑦ A≠2, X>1 ⑧ A≠2, X≤1 A>1 B=0 N N b X:=X/A Y A=2 e N Y X>1 X:=X+1 选择用例: [(2,0,4),(2,0,3)] ① ⑤ [(2,1,1),(2,1,2)] ② ⑥ [(1,0,3),(1,0,4)] ③ ⑦ [(1,1,1),(1,1,1)] ④ ⑧ N d 编译系统下的执行情况: 部分路径未被执行。

不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。 二、动态测试方法(2) (2)黑盒法 不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。 等 价 分 类 法 边 值 分 析 法 错 误 推 测 法 因 果 图 法

基本思想:根据程序的I/O特性,将程序的定义域划分为有限个等价区段 —“等价类”,从等价类中选择出的用例,具有“代表性”。 1. 等价分类法 基本思想:根据程序的I/O特性,将程序的定义域划分为有限个等价区段 —“等价类”,从等价类中选择出的用例,具有“代表性”。 等价类分为: 有效等价类 — 对于程序的规格说明,是合理的、有意义的输入数据构成的集合。 无效等价类 —对于程序的规格说明,是不合理的、没有意义的输入数据构成的集合。

等价分类法步骤 ① 划分“等价类” ② 选择测试用例 例如:每个学生可选修1-3门课程 可以划分一个有效等价类:选修1-3门课程。 显然,关键是 如何划分等价类 ① 划分“等价类”     应按照输入条件(如输入值的范围,值的个数,值的集合,输入条件必须如何)划分为有效等价类和无效等价类。 例如:每个学生可选修1-3门课程 可以划分一个有效等价类:选修1-3门课程。 可以划分两个无效等价类:未选修课,选修课超过3门。 ② 选择测试用例 A 为每个等价类编号; B 使一个测试用例尽可能覆盖多个有效等价类 C 特别要注意:一个测试用例只能覆盖一个无效等价类。

2. 边值分析法 基本思想: 选择等价类的边缘值作为测试用例,让每个等价类的边界都得到测试,选择测试用例既考虑输入亦考虑输出。 分析步骤: A 先划分等价类。 B 选择测试用例,测试等价类边界。 边界选择原则: A 按照输入值范围的边界。 B 按照输入/输出值个数的边界。 C 输出值域的边界。 D 输入/输出有序集的边界。

边值分析法举例 例如:输入值的范围是-1.0至1.0,则可选择用例: –1.0、1.0、-1.001、1.001。 A 按照输入值范围的边界。 例如:输入值的范围是-1.0至1.0,则可选择用例: –1.0、1.0、-1.001、1.001。 B 按照输入/输出值个数的边界。 例如:输入文件可有1-255个记录,则 设计用例:文件的记录数为 0个、1个、255个、256个。 C 输出值域的边界。 例如:检索文献摘要,最多4篇。设计用例:可检索0篇、1篇、4篇,和5篇(错误)。 D 输入/输出有序集(如顺序文件、线性表)的边界。 应选择第一个元素和最后一个元素。

黑盒法应用实例 对FORTRAN编译系统中的DIMENSION语句进行测试。 语句格式为:DIMENSION ad[,ad] … ad为数组描述符, 形式为 n(d[,] … 其中:n-数组名,字母打头的字母数字串,长6。 D为界偶(1-7个):[ld:]nd ld 和 nd 的值为1-65535, ld缺省为1。 输入条件 合理的等价类 不合理的等价类 数组描述的个数 1个(1)、多于1个(2) 没有数组描述(3) 数组名的字符数 1—6个(4) 0(5),>6(6) 数组名 有字母(7)有数字(8) 有其他字符(9) 数组名的第1个字符为字母 是(10) 不是(11) 维数 1—7(12) 0(13), >7(14) 上界 常数(15) 数组元素名(16 40 个等价类

3.错误推测法 凭经验或直觉推测可能的错误,列出程序中可能有的错误和容易发生错误的特殊情况,选择测试用例。 4.因果图法 把输入条件视为“因”,把输出条件视为“果”,将黑盒看成是从因到果的网络图,采用逻辑图的形式来表达功能说明书中输入条件的各种组合与输出的关系。根据这种关系可选择高效的测试用例。 因果图是一种形式化语言,是一种组合逻辑 网络图。

4.因果图法(cause effcet graphicei) ⑴ 因果图的基本符号 0 - 表示“不出现” 1 - 表示“出现” 恒等 若a为1,则b为1,否则b为0。 “非”函数 若a为1,则b为0,否则b为1。 “或”函数 若a或b为1,则d为1,否则d为0。 “与”函数 若a与b同为1,则d为1,否则d为0。 a b d ∨ ∧

4.因果图法(cause effcet graphicei) 对“与”、“或”函数的限制符号 a E约束(异)— 排斥 即a、b不能同时为1。 I约束(或)— 包容 a、b、c不能同时为0。 O约束(唯一)— 选一 a、b中仅有一个为1。 R约束(要求)— 需要 a为1时,b必须为1 M约束(强制)— 屏蔽 若a为1时,则b强制为1。 E b a I b c a O b a R b a M b

⑵ 因果图法的步骤 分析规范,即将问题分为若干可工作的步骤。 标识出规范中的原因与结果。 原因—输入条件 结果—输出或系统变换 分析规范语义、内容,转换为因果图。 将因果图转换为有限项判断表。 将判断表的每一列,转换为一个测试用例。

⑶ 因果图法应用举例 规范:文件名第一列字符必须为A或B,第二列字 符必须为数字。满足则修改文件。第一字符不正 确发出信息X12,第二个字符不正确发出信息X13。 1.分析规范 原 因 结 果 1 — 第一列字符为A 50—修改文件 2 — 第一列字符为B 51—发信息X12 3 — 第二列字符为数字 52—发信息X13

2.画出因果图 ∨ ∧ 中间结点 是导出结果的进一步原因。 考虑到原因1、2不可能同时为1,加上E约束。 11 51 50 3 52 1 2 发 X 12 发 X 13 修改文件 中间结点 是导出结果的进一步原因。 11 考虑到原因1、2不可能同时为1,加上E约束。

3.将因果图转换为判断表 1 2 3 4 5 6 7 8 条 件 原 因 ① ② ③ 动 作 结 果 测试用例 A3 A8 AMA? B5 ② ③ 动 作 结 果 测试用例 A3 A8 AMA? B5 B4 BNB! C2X6 DYPI 11 51 50 52

作静态分析,再作动态测试。并事先制订测试计 划。测试过程通常可分4步进行: 8.3 软件测试的步骤 测试步骤及策略 所有测试过程都应采用综合测试策略;即先 作静态分析,再作动态测试。并事先制订测试计 划。测试过程通常可分4步进行: 单元 测试 被测模块 集成 测试 设计信息 已测试的模块 确认 测试 已集成的模块 软件需求 系统 测试 已确认的软件 可交付的软件 系统其他元素

一、模块测试(Module Testing) 也称单元测试(unit testing ) 1.测试内容 模块接口测试 重要路径测试 I/O 参数值的个数、类型、次序、格式是否正确,I/O文件属性、操作是否正确等。 重要路径通常是指完成模块功能的主要路径,一般是控制结构。 模块 边界条件测试 局部数据结构测试 错误处理测试 数据说明是否正确、一致,变量及其初值定义是否正确等。 边界条件常包括循环边界,最大最小值、控制流中等于、大于、小于的比较值等。 检查“错误处理程序”本身的错误。

考虑到被测模块与其它模块的联系,因此测试时需要使用两类辅助模块来模拟其他模块。 2.模块测试步骤 考虑到被测模块与其它模块的联系,因此测试时需要使用两类辅助模块来模拟其他模块。 驱动模块(driver)— 模拟主程序功能,用于向被测模块传递数据,接收、打印从被测模块返回的数据。 驱动模块 桩模块(stub)— 又称为假模块,用于模拟那些由被测模块所调用的下属模块功能。 被测模块 桩模块 桩模块 桩模块 一般,驱动模块比桩模块容易设计。但都是额外开销。测试方法以白盒法为主。

二、组装测试(Integration Testing) 也称为联合测试或集成测试,重点测试模块的接口部分,需设计测试过程使用的驱动模块或桩模块。 1.组装测试的任务 ①确定模块组装方案,将经过测试的模块组装为一个完整的系统。组装方案分为渐增式及非渐增式。 ②测试方法以黑盒法为主,按照组装方案进行 测试。 问题:渐增式与非渐增式各有何优、缺点?为什么通常采用渐增式?

2.渐增式组装测试 渐增式是先进行模块测试,然后将这些模块逐步组装成较大的系统,每连接一个模块进行一次测试。两种方案: 自顶而下增值 自底而上增值 设计驱动模块或桩模块,对每一个新组装的子 系统进行测试,对发现问题较多的子系统或模 块应该用白盒法作回归测试。

自顶而下增值 S1 S1 S1 S2 S2 S2 S3 S3 S3 S4 S4 S4 S5 S5 S5 M1 M1 程序模块示意图 S1 S1 S1 M2 S2 S2 S2 M3 M4 S3 S3 S3 M2 M3 M4 S4 M5 S4 S4 M6 S5 S5 S5 M5 M6 第一步,测试主控模块M1设计桩模块S1、S2、S3,模拟被M1调用的M2、M3、M4。 第二步,依次用M2、M3、M4替代桩模块S1、S2、S3,每替代一次进行一次测试。 第三步,对由主控模块M1和模块M2、M3、M4构成的子系统进行测试,设计桩模块S4、S5。 第四步,依次用模块M5和M6替代桩模块S4、S5,并同时进行新的测试。组装测试完毕。

自底而上增值 D4 D4 D4 D2 M1 D2 D2 D6 D5 D5 D5 M1 程序模块示意图 D1 D1 D1 M2 M3 M4 D3 D3 D3 M2 M3 M4 M5 M5 M6 M6 第一步,对最底层的模块M3、M5、M6进行测试,设计驱动模块D1、D2、D3来模拟调用。 第二步,用实际模块M2、M1和M4替换驱动模块D1、D2、D3。 第三步,设计驱动模块D4、D5 和D6模拟调用,分别对新子系统进行测试。 第四步,把已测试的子系统按程序结构连接起来完成程序整体的组装测试。

无论是自顶而下增值还是自底而上增值,还可选择 深度优先与宽度优先 无论是自顶而下增值还是自底而上增值,还可选择 深度优先或者宽度优先增值。 举例:按自顶而下增值法,写出下图中分别按照深度优先或者宽度优先增值的模块组装次序。 A B C D E F G H I J K L M N

确定集成过程的原则 自顶而下增值 优点:能够尽早发现系统主控方面的问题。 缺点:无法验证桩模块是否完全模拟了下属模块的功能。 自底而上增值 优点:驱动模块较容易编写桩模块,能够尽早查出底层涉及较复杂的算法和实际的I/O模块中的错误。 缺点:最后才能发现系统主控方面的问题。 集成过程的原则 ① 尽早测试关键模块。 ② 尽早测试包含I/O的模块。

3.混合增值 常见的混合增值方案: 衍变的自顶而下 先自底而上集成子系统,再自顶而下集成总系统。 自底而上—自顶而下增值 对含有读操作的子系统采用自底而上。 对含有写操作的子系统采用自顶而下。 回归测试 在回归测试中自底而上,对其余部分(引起是对修改过的子系统)采用自顶而下。

三、确认测试(validation testing) 1.任务 又称为有效性测试或功能测试。其任务是验证系统的功能、性能等特性是否符合需求规格说明。 选择测试人员 有效性 测试 测试报告 选择测试用例 实际运行测试 管理 机构 裁决 专家 鉴定会 交用户 软件计划 运行维护 用户文档 软件 配置 审查 开发文档 软件配置 源程序文本 支持环境

2.确认测试步骤 (1)有效性测试 制定测试计划,运用黑盒法,验证软件特性是否与需求符合。 (2)软件配置复查 软件配置—指软件工程过程中所产生的所有信 息项:文档、报告、程序、表格、数据。随着软 件工程过程的进展软件配置项(SCI software Configuration Item)快速增加和变化。应复查 SCI是否齐全。

测试 由支持软件预发行的客户对FLURPS进行测试,主要目的是测试系统的可支持性。 (3)测试和测试 测试 是在开发机构的监督下,由个别用户在确认测试阶段后期对软件进行测试,目的是评价软件的FLURPS(功能、局域化、可使用性、可靠性、性能和支持),注重界面和特色。 测试 由支持软件预发行的客户对FLURPS进行测试,主要目的是测试系统的可支持性。 Function Testing 功能测试 Local Area Testing 局域化测试 Usability Testing 可使用性测试 Regression Testing 回归测试 Performance Testing 性能测试 Supportability Testing 可支持性测试

四、系统测试(system testing ) 将经过确认测试的软件,与计算机硬件、外设、 支持软件等一起,在实际运行环境下测试。 五、验收测试(acceptance testing) 验收测试是以用户为主的测试。

6.3.6 综合测试策略 软件测试是保证软件可靠性的主要手段,也是软件开发过程中最艰巨、最繁杂的任务。 软件测试方案是测试阶段的关键技术问题,基本目标是选择最少量的高效测试用例,从而尽可能多地发现软件中的问题。因此,无论哪一个测试阶段,都应该采用综合测试策略,才能够实现测试的目标。 一般都应该先进行静态测试,再考虑动态测试。   最后进行验收测试(Acceptance Testing),是以用户为主的测试,测试过程、方法和测试内容与系统测试基本相同。   有时也将验收测试与系统测试合二为一,此时,参加测试的人员最好包括:有经验的系统测试专家,用户代表,软件开发人员及QA(质量保证)人员也应参加。

6.4软件纠错技术 软件测试的目的是发现错误,在发现错误后,则应按照一定的技术去纠正它。纠错的关键是“错误定位”。 一、纠错的原则 1、注意错误的“群集现象”。 2、不能只修改错误的征兆、表现。还应该修改错误的本质。 3、注意在修改一个错误的同时,又引入新的错误。

二、纠错的技术 1、硬性纠错 又称为蛮干法,是使用较多,效率较低的方法。 主存信息转储法 关键部分设置打印语句 使用自动纠错工具 2、回溯法排错 适用于小程序。发现错误时,人工沿控制流 追踪源代码程序。

从测试结果发现的错误入手,分析它们之间的 联系查找错误。是一种从特殊推断一般的系统化 思考方法。 3、归纳法 从测试结果发现的错误入手,分析它们之间的 联系查找错误。是一种从特殊推断一般的系统化 思考方法。 不能 收集 有关数据 组织数据 研究数据 间的关系 提出假设 能 列出所有已知 的测试用例和 程序执行结果 常用的构造 线索的技术 是“分类法” 分析线索之间 的关系,找出 矛盾,设计出 错原因的假设 证明假设 不能 能 yes no What When where How 将假设与原始线索 或数据进行比较, 能否解释现象,证 明假设。 纠正错误 归纳排错法步骤

演绎法是一种从一般原理出发,经过排除和精化的过程,推导出结论的方法。 4、演绎法排错 演绎法是一种从一般原理出发,经过排除和精化的过程,推导出结论的方法。 列举可能 的原因 排除不适 当的原因 对保留的假 设继续推断 证明 假设 纠正 错误 收集更多 的数据 没有剩余 不能 能 有剩余 演绎法排错的步骤