软件工程软件测试ppt课件.ppt
《软件工程软件测试ppt课件.ppt》由会员分享,可在线阅读,更多相关《软件工程软件测试ppt课件.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第 五五 章章 一、软件测试的目的和重要性一、软件测试的目的和重要性因为开发工作的前期不可避免地会引入错误,测因为开发工作的前期不可避免地会引入错误,测试的试的目的是为了发现和改正错误目的是为了发现和改正错误,这对于某些涉,这对于某些涉及人的生命安全或重要的军事、经济目标的项目及人的生命安全或重要的军事、经济目标的项目显得尤其重要。显得尤其重要。19631963年美国飞往火星的火箭爆炸,原因是年美国飞往火星的火箭爆炸,原因是FORTRANFORTRAN程序:程序:DO 5 I=1DO 5 I=1,3 3 误写为:误写为:DO 5 I=1. 3 DO 5 I=1. 3 损失损失10001000
2、万美元。万美元。19671967年苏联年苏联“联盟一号联盟一号”宇宙飞船返回时因忽略宇宙飞船返回时因忽略一个小数点,在进入大气层时打不开降落伞而一个小数点,在进入大气层时打不开降落伞而烧毁。烧毁。1、软件测试的开销大、软件测试的开销大按照按照Boehm的统计,软件测试的开销大约占总成的统计,软件测试的开销大约占总成本的本的30%-50%。例如:。例如:APPOLLO登月计划,登月计划,80%的经费用于软件测试。的经费用于软件测试。2、不能进行、不能进行“穷举穷举”测试测试只有将所有可能的情况都测试到,才有可能检查只有将所有可能的情况都测试到,才有可能检查出所有的错误。但这是不可能的:出所有的错
3、误。但这是不可能的:例:程序例:程序P有两个整型输入量有两个整型输入量 X、Y,输出量为输出量为Z,在在32位机上运行。所有的测试数据组(位机上运行。所有的测试数据组(Xi,Yi)的的数目为:数目为: 2 2 = 2 1毫秒执行毫秒执行1次,共需次,共需5亿年。亿年。323264PXYZ3、软件测试难度大、软件测试难度大根据上述分析,既然不能进行根据上述分析,既然不能进行 “穷举穷举”测试,测试,又要查出尽可能多的错误,软件测试工作的难又要查出尽可能多的错误,软件测试工作的难度大。只有选择度大。只有选择 “高效的测试用例高效的测试用例”什么是什么是“高效的测试用例高效的测试用例”?如何选择如何
4、选择“高效的测试用例高效的测试用例”?这就是本章讨论的主要问题!这就是本章讨论的主要问题!3 3、充分注意测试中的群集现象。、充分注意测试中的群集现象。1 1、尽量不由程序设计者进行测试。、尽量不由程序设计者进行测试。2 2、关键是注重测试用例的选择。、关键是注重测试用例的选择。输入数据的组成(输入数据、预期的输出结果)输入数据的组成(输入数据、预期的输出结果)既有合理输入数据,也有不合理的输入数据。既有合理输入数据,也有不合理的输入数据。用例既能检查应完成的任务,也能够检查不应该用例既能检查应完成的任务,也能够检查不应该完成的任务。完成的任务。长期保存测试用例。长期保存测试用例。软件测试方法
5、分为两类:静态分析、动态测试软件测试方法分为两类:静态分析、动态测试一、静态分析方法一、静态分析方法指以人工的、非形式化的方法对程序进行分析和指以人工的、非形式化的方法对程序进行分析和测试。测试。桌前检查桌前检查代码会审代码会审步行检查步行检查步行检查时,还常使用以下分析方法:步行检查时,还常使用以下分析方法: 调用图调用图从语义的角度考察程序的控制路线。从语义的角度考察程序的控制路线。 数据流分析图数据流分析图检查分析变量的定义和引用情况。检查分析变量的定义和引用情况。无论无论Y 为何值,都为何值,都不能够调用子程序不能够调用子程序。READYY0NX:=YX1) AND (B=0) A1)
6、 AND (B=0) THEN X:=X/A ; THEN X:=X/A ; IF (A=2) OR (X1) IF (A=2) OR (X1) THEN X:=X+1 THEN X:=X+1END;END;1 1)选择逻辑覆盖标准。)选择逻辑覆盖标准。2 2)按照覆盖标准列出所有情况。)按照覆盖标准列出所有情况。3 3)选择确定测试用例。)选择确定测试用例。4 4)验证分析运行结果与预期结果。)验证分析运行结果与预期结果。逻辑结构逻辑结构Procedure Procedure (VAR A,B,X:REALVAR A,B,X:REAL);); BEGIN BEGIN IF IF(A1) AN
7、D (B=0) A1) AND (B=0) THEN X:=X/A ; THEN X:=X/A ; IF (A=2) OR (X1) IF (A=2) OR (X1) THEN X:=X+1 THEN X:=X+1 END; END;A1ANDB=0X:=X/AA=2OR X1X:=X+1YNYN逻辑结构逻辑结构使得程序中每个语句至少使得程序中每个语句至少都能被执行一次。都能被执行一次。A1ANDB=0X:=X/AA=2OR X1X:=X+1abcde满足语句覆盖的情况:满足语句覆盖的情况: 执行路径:执行路径:aceace选择用例:选择用例:(2,0,4),(2,0,3)(2,0,4),(2
8、,0,3) 用例格式:用例格式: 输入输入(A,B,X)(A,B,X),输出,输出(A,B,X)(A,B,X)YNYN使得程序中每个判定至少为使得程序中每个判定至少为TRUE TRUE 或或FALSEFALSE各一次。各一次。A1ANDB=0X:=X/AA=2OR X1X:=X+1abcde覆盖情况:覆盖情况:应执行路径应执行路径ace abd 或:或: acd abe选择用例选择用例(其一):其一): (2,0,4),(2,0,3) ace (2,0,4),(2,0,3) ace (1,1,1),(1,1,1) abd (1,1,1),(1,1,1) abd (2,1,1),(2,1,2)
9、abe (2,1,1),(2,1,2) abe (3,0,3),(3,1,1) acd (3,0,3),(3,1,1) acdYYNNA1ANDB=0X:=X/AA=2OR X1X:=X+1abcde使得判定中的每个条件获使得判定中的每个条件获得各种可能的结果。得各种可能的结果。应满足以下覆盖情况:应满足以下覆盖情况:判定一判定一: A1, A1, B=0, B0判定二判定二: A=2, A2, X1, X1选择用例:选择用例: (2,0,4),(2,0,3) (2,0,4),(2,0,3) (1,1,1),(1,1,1) (1,1,1),(1,1,1) NNYY2 2A1A20 0B=04
10、4X11 1A1A=21 1B01 1X1注意注意:(1,0,3),(1,0,4):(1,0,3),(1,0,4)(2,1,1),(2,1,2)(2,1,1),(2,1,2)满足条件覆盖,但不满足判断满足条件覆盖,但不满足判断覆盖。覆盖。同时满足判断覆盖和条同时满足判断覆盖和条件覆盖。件覆盖。A1ANDB=0X:=X/AA=2OR X1X:=X+1abcde应满足以下覆盖情况:应满足以下覆盖情况: 条件条件: A1, A1, B=0, B0 A=2, A2, X1, X1 应执行路径应执行路径ace abd 或:或: acd abe选择用例:选择用例: (2,0,4),(2,0,3) (2,0
11、,4),(2,0,3)(ace)ace) (1,1,1),(1,1,1) (abd) (1,1,1),(1,1,1) (abd)YYNN使得每个判定中条件的各种使得每个判定中条件的各种可能组合都至少出现一次。可能组合都至少出现一次。A1X:=X/AA=2X:=X+1abcdeB=0X1YNYNYNYN编译系统下的执行情况:编译系统下的执行情况:部分路径未被执行。部分路径未被执行。满足以下覆盖情况:满足以下覆盖情况: 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,
12、0,4),(2,0,3) (2,1,1),(2,1,2) (2,1,1),(2,1,2) (1,0,3),(1,0,4) (1,0,3),(1,0,4) (1,1,1),(1,1,1) (1,1,1),(1,1,1) 我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物STARTINPUT(A,B,C)IF A5 THEN X=10 ELSE X=1END IFIF B10 THEN Y=20 ELSE Y=2END IFIF C15 THEN Z=30 ELSE Z=3END IFPRINT(X,Y,Z)ST
13、OP共有共有8条可能的执行路径条可能的执行路径 三个判定表达式之值依次为假、假、假:三个判定表达式之值依次为假、假、假:输入:输入:A=1,B=1,C=1;预期输出:;预期输出:X=1,Y=2,Z=3三个判定表达式之值依次为假、假、真:三个判定表达式之值依次为假、假、真:输入:输入:A=2,B=3,C=23;预期输出:;预期输出:X=1,Y=2,Z=30三个判定表达式之值依次为假、真、假:三个判定表达式之值依次为假、真、假:输入:输入:A=3,B=12,C=6;预期输出:;预期输出:X=1,Y=20,Z=3三个判定表达式之值依次为假、真、真:三个判定表达式之值依次为假、真、真:输入:输入:A=
14、4,B=13,C=16;预期输出:;预期输出:X=1,Y=20,Z=30三个判定表达式之值依次为真、假、假:三个判定表达式之值依次为真、假、假:输入:输入:A=6,B=7,C=9;预期输出:;预期输出:X=10,Y=2,Z=3三个判定表达式之值依次为真、假、真:三个判定表达式之值依次为真、假、真:输入:输入:A=8,B=8,C=18;预期输出:;预期输出:X=10,Y=2,Z=30 三个判定表达式之值依次为真、真、假:三个判定表达式之值依次为真、真、假:输入:输入:A=10,B=12,C=6;预期输出:;预期输出:X=10,Y=20,Z=3三个判定表达式之值依次为真、真、真:三个判定表达式之值
15、依次为真、真、真:输入:输入:A=11,B=14,C=57;预期输出:;预期输出:X=10,Y=20,Z=30等等价价分分类类法法边边值值分分析析法法错错误误推推测测法法因因果果图图法法(2)(2)黑盒法黑盒法 不考虑程序的内部结构与特性,不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性只根据程序功能或程序的外部特性设计测试用例。设计测试用例。基本思想:基本思想:根据程序的根据程序的I/O特性,将程序的定义特性,将程序的定义域划分为有限个等价区段域划分为有限个等价区段 “等价类等价类”,从,从等价类中选择出的用例,具有等价类中选择出的用例,具有“代表性代表性”。等价类分为:等价类分为
16、:有效等价类有效等价类 对于程序的规格说明是合理的、对于程序的规格说明是合理的、有意义的输入数据构成的集合。有意义的输入数据构成的集合。无效等价类无效等价类 对于程序的规格说明,是不合理对于程序的规格说明,是不合理的,是没有意义的输入数据构成的集合。的,是没有意义的输入数据构成的集合。 应应按照输入条件按照输入条件(如输入值的范围,值的个数,值的集合,输入(如输入值的范围,值的个数,值的集合,输入条件必须如何)划分为有效等价类和无效等价类。条件必须如何)划分为有效等价类和无效等价类。例如:每个学生可选修例如:每个学生可选修1-31-3门课程门课程 可以划分一个有效等价类:选修可以划分一个有效等
17、价类:选修1-31-3门课程。门课程。 可以划分两个无效等价类:未选修课,选修课超过可以划分两个无效等价类:未选修课,选修课超过3 3门。门。又如:标识符的第一个字符必须是字母。又如:标识符的第一个字符必须是字母。 可以划分为一个有效等价类:第一个字符是字母。可以划分为一个有效等价类:第一个字符是字母。 可以划分一个无效等价类:第一个字符不是字母。可以划分一个无效等价类:第一个字符不是字母。 显然,关键是显然,关键是如何划分等价类如何划分等价类A A、为每个等价类编号;为每个等价类编号;B B、使一个测试用例尽可能覆盖多个有效等价类使一个测试用例尽可能覆盖多个有效等价类C C、特别要注意的是:
18、一个测试用例只能覆盖一个无效等价类。特别要注意的是:一个测试用例只能覆盖一个无效等价类。如何划分等价类?有效等价类有效等价类( (合理等价类合理等价类) )无效等价类无效等价类( (不合理等价类不合理等价类) )(1)(1)如果输入条件规定了取值范围,可定义一个有如果输入条件规定了取值范围,可定义一个有 效等价类和两个无效等价类。效等价类和两个无效等价类。例例 输入值是学生成绩,范围是输入值是学生成绩,范围是0 01001000 1000 100 有效等价类有效等价类00成绩成绩100100无效等价类无效等价类 成绩成绩100100 无效等价类无效等价类 成绩成绩00(2)(2)如果输入条件代
19、表集合的某个元素,则可定义如果输入条件代表集合的某个元素,则可定义 一个有效等价类和一个无效等价类。一个有效等价类和一个无效等价类。( (3)3)如规定了输入数据的一组值,且程序对不同输入值做不同处理,则每如规定了输入数据的一组值,且程序对不同输入值做不同处理,则每个允许的输入值是一个有效等价类,并有一个无效等价类个允许的输入值是一个有效等价类,并有一个无效等价类( (所有不允许的所有不允许的输入值的集合输入值的集合) )。例:输入条件说明学历可为例:输入条件说明学历可为: :专科、本科、硕士、博士四种之一,则分别专科、本科、硕士、博士四种之一,则分别取这四个值作为四个有效等价类,另外把四种学
20、历之外的任何学历作为无取这四个值作为四个有效等价类,另外把四种学历之外的任何学历作为无效等价类效等价类(4)(4)如果规定了输入数据必须遵循的规则,可确定一个有效等价类(符合如果规定了输入数据必须遵循的规则,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则规则)和若干个无效等价类(从不同角度违反规则) )。(5)(5)如已划分的等价类各元素在程序中的处理方式不同,则应将此等价类如已划分的等价类各元素在程序中的处理方式不同,则应将此等价类进一步划分成更小的等价类。进一步划分成更小的等价类。用等价类划分法设计测试用例步骤:用等价类划分法设计测试用例步骤:(1)(1)形成形成等
21、价类表等价类表,每一等价类规定一个唯一的,每一等价类规定一个唯一的编号编号;(2)(2)设计一设计一测试用例测试用例,使其尽可能多地覆盖尚未使其尽可能多地覆盖尚未覆盖覆盖的的有效等价类有效等价类,重复这重复这一步骤,直到所有有效等价类均被测试用例所覆盖;一步骤,直到所有有效等价类均被测试用例所覆盖;(3)(3)设计一新设计一新测试用例测试用例,使其只使其只覆盖覆盖一个一个无效等价类无效等价类,重复这一步骤直到所重复这一步骤直到所有无效等价类均被覆盖;有无效等价类均被覆盖;例例: :某报表处理系统要求用户输入处理报表的日期,日期限制在某报表处理系统要求用户输入处理报表的日期,日期限制在20032
22、003年年1 1月至月至20082008年年1212月,即系统只能对该段期间内的报表进行处理,如日期不月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。系统日期规定由年、月的在此范围内,则显示输入错误信息。系统日期规定由年、月的6 6位数字位数字字符组成,前四位代表年,后两位代表月。字符组成,前四位代表年,后两位代表月。 如何用等价类划分法设计测试用例如何用等价类划分法设计测试用例, , 来测试程序的日期检查功能?来测试程序的日期检查功能?输入条件输入条件 有效等价类有效等价类 无效等价类无效等价类 报表日期的报表日期的类型及长度类型及长度6 6位数字字符位数字
23、字符(1)(1)有非数字字符有非数字字符 (4)(4)少于少于6 6个数字字符个数字字符 (5)(5)多于多于6 6个数字字符个数字字符 (6)(6)年份范围年份范围在在2003200320082008之间之间 (2)(2)小于小于2003 2003 (7)(7)大于大于2008 2008 (8)(8)月份范围月份范围在在1 11212之间之间(3)(3)“报表日期报表日期”输入条件的等价类表输入条件的等价类表小于小于1 1 (9)(9)大于大于12 12 (10)(10)第二步:为有效等价类设计测试用例 测试数据 期望结果 覆盖范围200306200306等价类等价类(1)(2)(3)(1)
24、(2)(3)输入有效输入有效对表中编号为对表中编号为1,2,31,2,3的的3 3个有效等价类用一个测试用例覆盖:个有效等价类用一个测试用例覆盖:(1)(1)6 6位数字字符位数字字符(2)(2)年在年在2003200320082008之间之间 (3)(3)月在月在1 11212之间之间第三步:为每一个无效等价类设至少 设计一个测试用例 测试数据 期望结果 覆盖范围003003MAYMAY等价类等价类(4)(4)输入无效输入无效2003520035等价类等价类(5)(5)输入无效输入无效20030052003005等价类等价类(6)(6)输入无效输入无效200120010505等价类等价类(7
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 软件 测试 ppt 课件
限制150内