当前位置首页 > 汽车/机械/制造 > 机械软件
搜柄,搜必应! 快速导航 | 使用教程

软件工程软件测试

文档格式:PPT| 50 页|大小 1.06MB|2024-10-18 发布|举报 | 版权申诉
第1页
第2页
第3页
下载文档到电脑,查找使用更方便 还剩页未读,继续阅读>>
1 / 50
此文档下载收益归作者所有 下载文档
  • 版权提示
  • 文本预览
  • 常见问题
  • 软件测试,第 五,章,5.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,i,,Y,i,),的数目为:2,2 =2 1毫秒执行1次,共需5亿年32,32,64,P,X,Y,Z,二、软件测试的,特点 结论,3、软件测试难度大,根据上述分析,既然不能进行,“,穷举,”,测试,又要查出尽可能多的错误,软件测试工作的难度大。

    只有选择,“,高效的测试用例,”,什么是,“,高效的测试用例,”,?,如何选择,“,高效的测试用例,”,?,这就是本章讨论的主要问题!,三、软件测试的基本原则,3、充分注意测试中的群集现象1、尽量不由程序设计者进行测试2、关键是注重测试用例的选择输入数据的组成(输入数据、预期的输出结果),既有合理输入数据,也有不合理的输入数据用例既能检查应完成的任务,也能够检查不应该完成的任务长期保存测试用例5.2,软件测试方法,软件测试方法分为两类:静态分析、动态测试,一、静态分析方法,指以人工的、非形式化的方法对程序进行分析和测试桌前检查代码会审步行检查,步行检查时,还常使用以下分析方法:,调用图,从语义的角度考察程序的控制路线数据流分析图,检查分析变量的定义和引用情况调用图,无论,Y,为何值,都不能够调用子程序,READY,Y0,N,X:=Y,X1)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;,A1,AND,B=0,X:=X/A,A=2,OR,X1,X:=X+1,Y,N,Y,N,逻辑结构,1、语句覆盖,使得程序中每个语句至少都能被执行一次。

    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,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,A,1,B=0,B,0,判定二:A=2,A,2,X1,X1,选择用例:,(2,0,4),(2,0,3),(1,1,1),(1,1,1),N,N,Y,Y,2,A,1,A,2,0,B=0,4,X1,1,A1,A=2,1,B,0,1,X1,注意,:(1,0,3),(1,0,4),(2,1,1),(2,1,2),满足条件覆盖,但不满足判断覆盖。

    4、判定/条件覆盖,同时满足判断覆盖和条件覆盖A1,AND,B=0,X:=X/A,A=2,OR,X1,X:=X+1,a,b,c,d,e,应满足以下覆盖情况:,条件:A1,A,1,B=0,B,0,A=2,A,2,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,编译系统下的执行情况:,部分路径未被执行满足以下覆盖情况:,A1,B=0 ,A1,B,0,A,1,B=0,A,1,B0,A=2,X1,A=2,X1,A,2,X1,A,2,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),路径覆盖:选择足够多的测试数据,使程序的每条可能路径都至少执行一次START,INPUT,(,A,B,C,),IF A5,THEN X=10,ELSE X=1,END IF,IF B10,THEN Y=20,ELSE Y=2,END IF,IF C15,THEN Z=30,ELSE Z=3,END IF,PRINT(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,三个判定表达式之值依次为假、真、假:,输入:,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,三个判定表达式之值依次为真、真、假:,输入:,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)黑盒法,不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。

    1、等价分类法,基本思想:,根据程序的,I/O,特性,将程序的定义域划分为有限个等价区段,“,等价类,”,,从等价类中选择出的用例,具有,“,代表性,”,等价类分为:,有效等价类,对于程序的规格说明是合理的、有意义的输入数据构成的集合无效等价类,对于程序的规格说明,是不合理的,是没有意义的输入数据构成的集合等价分类法步骤,应,按照输入条件,(如输入值的范围,值的个数,值的集合,输入条件必须如何)划分为有效等价类和无效等价类例如:每个学生可选修1-3门课程,可以划分一个有效等价类:选修1-3门课程可以划分两个无效等价类:未选修课,选修课超过3门又如:标识符的第一个字符必须是字母可以划分为一个有效等价类:第一个字符是字母可以划分一个无效等价类:第一个字符不是字母划分“等价类”,显然,关键是,如何划分等价类,A、,为每个等价类编号;,B、,使一个测试用例尽可能覆盖多个有效等价类,C、,特别要注意的是:一个测试用例只能覆盖一个无效等价类选择测试用例,等价分类法步骤,如何划分等价类?,有效等价类,(,合理等价类,),无效等价类,(,不合理等价类,),(1),如果,输入,条件规定了取值,范围,,可定义,一个有,效等价类和两个无效等价类。

    例,输入,值是学生成绩,范围是,0,100,0 100,有效等价类,0,成绩,100,无效等价类,成绩,100,无效等价类,成绩,0,(2),如果,输入,条件代表,集合,的某个元素,,则可,定义,一个有效等价类和一个无效等价类3),如规定了输入数据的一组值,且程序对不同输入值做不同处理,则每个允许的输入值是一个有效等价类,并有一个无效等价类,(,所有不允许的输入值的集合,),例:输入条件说明学历可为,:,专科、本科、硕士、博士四种之一,则分别取这四个值作为四个有效等价类,另外把四种学历之外的任何学历作为无效等价类,(4),如果规定了,输入,数据,必须遵,循,的规则,可,确定,一个有效等价类,(,符合规则,),和若干个无效等价类,(,从不同角度违反规则,),5),如已划分的等价类各元素在程序中的处理方式不同,则应将此等价类进一步划分成更小的等价类用等价类划分法设计测试用例步骤:,(1),形成,等价类表,,每一等价类规定一个唯一的,编号,;,(2),设计一,测试用例,,,使其尽可能多地覆盖尚未,覆盖,的,有效等价类,,,重复这一步骤,直到所有有效等价类均被测试用例所覆盖;,(3),设计一新,测试用例,,,使其只,覆盖,一个,无效等价类,,,重复这一步骤直到所有无效等价类均被覆盖;,例,:,某报表处理系统要求用户输入处理报表的日期,日期限制在,2003,年,1,月至,2008,年,12,月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。

    系统日期规定由年、月的,6,位数字字符组成,前四位代表年,后两位代表月如何用等价类划分法设计测试用例,来测试程序的日期检查功能?,输入,条件,有效等价类 无效等价类,报表日期的,类型及长度,6,位数字,字符,(1),有非数字字符,(4),少于,6,个,数字,字符,(5),多于,6,个,数字,字符,(6),年份范围,在,2003,2008,之间,(2),小于,2003,(7),大于,2008,(8),月份范围,在,1,12,之间,(3),“报表日期”输入条件的等价类表,小于,1,(9),大于,12,(10),第二步:,为有效等价类设计,测试用例,测试数据 期望结果,覆盖,范围,200306,等价类,(1)(2)(3),输入,有效,对表中,编号为,1,2,3,的,3,个有效等价类用,一,个测试用例,覆盖,:,(1),6,位数字,字符,(2),年在,2003,2008,之间,(3),月在,1,12,之间,第,三,步:,为每一个无效等价类设至少,设计一个,测试用例,测试数据 期望结果,覆盖,范围,003,MAY,等价类,(4),输入无,效,20035,等价类,(5),输入无,效,2003005,等价类,(6),输入无,效,2001,05,等价类,(7),输入无,效,2009,05,等价类,(8),输入无,效,2003,00,等价类,(9),输入无,效,2003,13,等价类,(10),输入无,效,不能出现相同,的测试用例,本例的,10,个等价类至,少需要,8,个测试用例,2、边值分析法,基本思想:,选择等价类的边缘值作为测试用例,让每个等价类的边界都得到测试,选择测试用例既考虑,输入,亦考虑,输出,。

    分析步骤:,A、,先划分等价类B、,选择测试用例,。

    点击阅读更多内容
    卖家[上传人]:痛苦女王
    资质:实名认证
    相关文档
    正为您匹配相似的精品文档