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