软件测试()完整版剖析

上传人:我** 文档编号:113179277 上传时间:2019-11-08 格式:PPT 页数:79 大小:1.18MB
返回 下载 相关 举报
软件测试()完整版剖析_第1页
第1页 / 共79页
软件测试()完整版剖析_第2页
第2页 / 共79页
软件测试()完整版剖析_第3页
第3页 / 共79页
软件测试()完整版剖析_第4页
第4页 / 共79页
软件测试()完整版剖析_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《软件测试()完整版剖析》由会员分享,可在线阅读,更多相关《软件测试()完整版剖析(79页珍藏版)》请在金锄头文库上搜索。

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

2、试。,二、软件测试的特点 结论,3、软件测试难度大 根据上述分析,既然不能进行 “穷举”测试,又要查出尽可能多的错误,软件测试工作的难度大。只有选择 ,“高效的测试用例”,什么是“高效的测试用例”? 如何选择“高效的测试用例”? 这就是本章讨论的主要问题!,三、软件测试的基本原则,3、充分注意测试中的群集现象。,1、尽量不由程序设计者进行测试。 2、关键是注重测试用例的选择。 输入数据的组成(输入数据、预期的输出结果) 既有合理输入数据,也有不合理的输入数据。 用例既能检查应完成的任务,也能够检查不应该完成的任务。 长期保存测试用例。,由安博测试空间技术中心,四、测试的基本步骤,模块测试,整体

3、测试,功能测试,预测试,系统测试,验收测试,安装测试,概要设计审查,详细设计审查,代码审查,测试,(单元测试),(组装测试),(有效性测试),(确认测试),6.2 软件测试方法,软件测试方法分为两类:静态分析、动态测试,一、静态分析方法 指以人工的、非形式化的方法对程序进行分析和测试。 桌前检查 代码会审 步行检查,步行检查时,还常使用以下分析方法: 调用图 从语义的角度考察程序的控制路线。 数据流分析图 检查分析变量的定义和引用情况。, 调用图,无论Y 为何值,都不能够调用子程序。,READY,Y0,N,X:=Y,X0,Y,N,Y,调用子程序,A,B,C,D,E,即执行ABC后,是不可能执行

4、路径CDE的。, 数据流分析图,节点 表示单个语句。 有向边 表示控制结构。 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、黑盒法 不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。,白盒法,白盒法又称为逻辑覆盖法,其测试

5、用例选择,是按照不同覆盖标准确定的。,语 句 覆 盖,判 定 覆 盖,条 件 覆 盖,判 定 条 件 覆 盖,条 件 组 合 覆 盖,弱,强, 语句覆盖: 选择足够的测试用例,使得程序中每个语句至少都能被执行一次。 判定覆盖: 执行足够的测试用例,使得程序中每个判定至少都获得一次“真”值和“假”值。 条件覆盖:执行足够的测试用例,使得判定中的每个条件获得各种可能的结果。 判定/条件覆盖: 执行足够的测试用例,使得判定中每个条件取到各种可能的值,并使每个判定取到各种可能的结果。 条件组合覆盖: 执行足够的例子,使得每个判定中条件的各种可能组合都至少出现一次。,白盒法常用的覆盖标准,白盒法步骤:,

6、例:用白盒法测试以下程序段: Procedure(VAR A,B,X:REAL); BEGIN IF (A1) AND (B=0) THEN X:=X/A ; IF (A=2) OR (X1) THEN X:=X+1 END;,1)选择逻辑覆盖标准。 2)按照覆盖标准列出所有情况。 3)选择确定测试用例。 4)验证分析运行结果与预期结果。,逻辑结构,白盒法举例,Procedure (VAR A,B,X:REAL); BEGIN IF(A1) AND (B=0) THEN X:=X/A ; IF (A=2) OR (X1) THEN X:=X+1 END;,1、语句覆盖,使得程序中每个语句至少都

7、能被执行一次。,A1 AND B=0,X:=X/A,A=2 OR X1,X:=X+1,a,b,c,d,e,满足语句覆盖的情况: 执行路径:ace,选择用例: (2,0,4),(2,0,3),用例格式: 输入(A,B,X),输出(A,B,X),Y,N,Y,N,2、判定覆盖,使得程序中每个判定至少为TRUE 或FALSE各一次。,A1 AND B=0,X:=X/A,A=2 OR X1,X:=X+1,a,b,c,d,e,覆盖情况:应执行路径 ace abd 或: acd abe,选择用例(其一): (2,0,4),(2,0,3) ace (1,1,1),(1,1,1) abd (2,1,1),(2,

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

9、、判定/条件覆盖,同时满足判断覆盖和条件覆盖。,A1 AND B=0,X:=X/A,A=2 OR X1,X:=X+1,a,b,c,d,e,应满足以下覆盖情况: 条件: A1, A1, B=0, B0 A=2, A2, X1, X1 应执行路径 ace abd 或: acd abe,选择用例: (2,0,4),(2,0,3)(ace) (1,1,1),(1,1,1) (abd),Y,Y,N,N,5、条件组合覆盖,使得每个判定中条件的各种可能组合都至少出现一次。,A1,X:=X/A,A=2,X:=X+1,a,b,c,d,e,B=0,X1,Y,N,Y,N,Y,N,Y,N,编译系统下的执行情况: 部分

10、路径未被执行。,满足以下覆盖情况: A1, B =0 A1, B0 A1, B =0 A1, B0 A=2, X1 A=2, X1 A2, X1 A2, X1,选择用例: (2,0,4),(2,0,3) (2,1,1),(2,1,2) (1,0,3),(1,0,4) (1,1,1),(1,1,1) ,作业:,PROGRAM bubble(input,output); CONST n=100; TYPE colarr=ARRAY1n OF INTEGER; VAR a: colarr; t,i,j: INTEGER; BEGIN FOR i:=1 TO n DO READ(ai); READLN

11、; FOR j:=1 TO n-1 DO FOR i:=1 TO n-j DO IF aiai+1 THEN BEGIN t:=ai; a:=ai+1; aI+1:=t END; FOR i:=1 TO n DO BEGIN WRITE(ai:4); IF I MOD 5=0 THEN WRITELN END; WRITELN END.,用白盒法测试以下程序段,要求写出覆盖标准,列出所有判定情况,选择测试用例。,作业:,退出,上页,首页,下页,末页,用C语言编写选择排序的程序,并用白盒法进行测试.,二、动态测试方法(2),等 价 分 类 法,边 值 分 析 法,错 误 推 测 法,因 果 图

12、法,(2)黑盒法 不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。,1、等价分类法,基本思想:根据程序的I/O特性,将程序的定义域划分为有限个等价区段 “等价类”,从等价类中选择出的用例,具有“代表性”。,等价类分为: 有效等价类 对于程序的规格说明是合理的、有意义的输入数据构成的集合。 无效等价类 对于程序的规格说明,是不合理的,是没有意义的输入数据构成的集合。,等价分类法步骤,应按照输入条件(如输入值的范围,值的个数,值的集合,输入条件必须如何)划分为有效等价类和无效等价类。 例如:每个学生可选修1-3门课程 可以划分一个有效等价类:选修1-3门课程。 可以划分两个

13、无效等价类:未选修课,选修课超过3门。 又如:标识符的第一个字符必须是字母。 可以划分为一个有效等价类:第一个字符是字母。 可以划分一个无效等价类:第一个字符不是字母。, 划分“等价类”,显然,关键是 如何划分等价类,A、为每个等价类编号; B、使一个测试用例尽可能覆盖多个有效等价类 C、特别要注意的是:一个测试用例只能覆盖一个无效等价类。, 选择测试用例,等价分类法步骤,2、边值分析法,基本思想: 选择等价类的边缘值作为测试用例,让每个等价类的边界都得到测试,选择测试用例既考虑输入亦考虑输出。,分析步骤: A、先划分等价类。 B、选择测试用例,测试等价类边界。,边界选择原则: A、按照输入值

14、范围的边界。 B、按照输入/输出值个数的边界。 C、输出值域的边界。 D、输入/输出有序集的边界。,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编译

15、系统中的DIMENSION语句进行测试。 语句格式为:DIMENSION ad,ad ad为数组描述符, 形式为 n(d, 其中:n数组名,字母打头的字母数字串,长6。 D为界偶(1-7个):ld:nd ld 和 nd 的值为1-65535, ld缺省为1。,40 个等价类,3、错误推测法,凭经验或直觉推测可能的错误,列出程序中可能有的错误和容易发生错误的特殊情况,选择测试用例。,把输入条件视为“因”,把输出条件视为“果”,将黑盒看成是从因到果的网络图,采用逻辑图的形式来表达功能说明书中输入条件的各种组合与输出的关系。根据这种关系可选择高效的测试用例。 因果图是一种形式化语言,是一种组合逻辑 网络图。,4、因果图法,4、因果图法(cause effcet graphicei), 因果图的基本符号 0 - 表示“不出现” 1 - 表示“出现”,恒等 若a为1,则b为1,否则b为0。 “非”函数 若a为1,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号