软件工程软件测试



《软件工程软件测试》由会员分享,可在线阅读,更多相关《软件工程软件测试(50页珍藏版)》请在装配图网上搜索。
1、,软件测试,第 五,章,5.1,软件测试的基本概念,一、软件测试的目的和重要性,因为开发工作的前期不可避免地会引入错误,测试的,目的是为了发现和改正错误,,这对于某些涉及人的生命安全或重要的军事、经济目标的项目显得尤其重要。,1963年美国飞往火星的火箭爆炸,原因是,FORTRAN,程序:,DO 5 I=1,3,误写为:,DO 5 I=1.3,损失1000万美元。,1967,年苏联,“,联盟一号,”,宇宙飞船返回时因忽略一个小数点,在进入大气层时打不开降落伞而烧毁。,二、软件测试的,特点,1、软件测试的开销大,按照,Boehm,的统计,软件测试的开销大约占总成本的30%-50%。例如:,APP
2、OLLO,登月计划,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、例,”,?,这就是本章讨论的主要问题!,三、软件测试的基本原则,3、充分注意测试中的群集现象。,1、尽量不由程序设计者进行测试。,2、关键是注重测试用例的选择。,输入数据的组成(输入数据、预期的输出结果),既有合理输入数据,也有不合理的输入数据。,用例既能检查应完成的任务,也能够检查不应该完成的任务。,长期保存测试用例。,5.2,软件测试方法,软件测试方法分为两类:静态分析、动态测试,一、静态分析方法,指以人工的、非形式化的方法对程序进行分析和测试。,桌前检查代码会审步行检查,步行检查时,还常使用以下分析方法:,调用图,从语义的角度考察程序的控制路线。,数据流分析图,检查分析变量的定义和引用情
4、况。,调用图,无论,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
5、,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
6、,(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
7、),(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
8、,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,TH
9、EN 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,,,
10、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),等,价,分,类,法,边,值
11、,分,析,法,错,误,推,测,法,因,果,图,法,(2)黑盒法,不考虑程序的内部结构与特性,只根据程序功能或程序的外部特性设计测试用例。,1、等价分类法,基本思想:,根据程序的,I/O,特性,将程序的定义域划分为有限个等价区段,“,等价类,”,,从等价类中选择出的用例,具有,“,代表性,”,。,等价类分为:,有效等价类,对于程序的规格说明是合理的、有意义的输入数据构成的集合。,无效等价类,对于程序的规格说明,是不合理的,是没有意义的输入数据构成的集合。,等价分类法步骤,应,按照输入条件,(如输入值的范围,值的个数,值的集合,输入条件必须如何)划分为有效等价类和无效等价类。,例如:每个学生可选修
12、1-3门课程,可以划分一个有效等价类:选修1-3门课程。,可以划分两个无效等价类:未选修课,选修课超过3门。,又如:标识符的第一个字符必须是字母。,可以划分为一个有效等价类:第一个字符是字母。,可以划分一个无效等价类:第一个字符不是字母。,划分“等价类”,显然,关键是,如何划分等价类,A、,为每个等价类编号;,B、,使一个测试用例尽可能覆盖多个有效等价类,C、,特别要注意的是:一个测试用例只能覆盖一个无效等价类。,选择测试用例,等价分类法步骤,如何划分等价类?,有效等价类,(,合理等价类,),无效等价类,(,不合理等价类,),(1),如果,输入,条件规定了取值,范围,,可定义,一个有,效等价类
13、和两个无效等价类。,例,输入,值是学生成绩,范围是,0,100,0 100,有效等价类,0,成绩,100,无效等价类,成绩,100,无效等价类,成绩,0,(2),如果,输入,条件代表,集合,的某个元素,,则可,定义,一个有效等价类和一个无效等价类。,(,3),如规定了输入数据的一组值,且程序对不同输入值做不同处理,则每个允许的输入值是一个有效等价类,并有一个无效等价类,(,所有不允许的输入值的集合,),。,例:输入条件说明学历可为,:,专科、本科、硕士、博士四种之一,则分别取这四个值作为四个有效等价类,另外把四种学历之外的任何学历作为无效等价类,(4),如果规定了,输入,数据,必须遵,循,的规
14、则,可,确定,一个有效等价类,(,符合规则,),和若干个无效等价类,(,从不同角度违反规则,),。,(5),如已划分的等价类各元素在程序中的处理方式不同,则应将此等价类进一步划分成更小的等价类。,用等价类划分法设计测试用例步骤:,(1),形成,等价类表,,每一等价类规定一个唯一的,编号,;,(2),设计一,测试用例,,,使其尽可能多地覆盖尚未,覆盖,的,有效等价类,,,重复这一步骤,直到所有有效等价类均被测试用例所覆盖;,(3),设计一新,测试用例,,,使其只,覆盖,一个,无效等价类,,,重复这一步骤直到所有无效等价类均被覆盖;,例,:,某报表处理系统要求用户输入处理报表的日期,日期限制在,2
15、003,年,1,月至,2008,年,12,月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。系统日期规定由年、月的,6,位数字字符组成,前四位代表年,后两位代表月。,如何用等价类划分法设计测试用例,来测试程序的日期检查功能?,输入,条件,有效等价类 无效等价类,报表日期的,类型及长度,6,位数字,字符,(1),有非数字字符,(4),少于,6,个,数字,字符,(5),多于,6,个,数字,字符,(6),年份范围,在,2003,2008,之间,(2),小于,2003,(7),大于,2008,(8),月份范围,在,1,12,之间,(3),“报表日期”输入条件的等价类表,
16、小于,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、,选择测试用例,
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 踏春寻趣 乐享时光——春季旅游踏春出游活动
- 清明假期至安全不缺席风起正清明安全需守护
- 全国党员教育培训工作规划
- XX中小学公共卫生培训树立文明卫生意识养成良好卫生习惯
- 小学生常见传染病预防知识培训传染病的预防措施
- 3月18日全国爱肝日中西医结合逆转肝硬化
- 肝病健康宣教守护您的肝脏健康如何预防肝炎
- 垃圾分类小课堂教育绿色小卫士分类大行动
- 中小学班主任经验交流从胜任到优秀身为世范为人师表 立责于心履责于行
- 教师数字化转型理解与感悟教师数字化转型的策略与建议
- 团建小游戏团建破冰小游戏团队协作破冰游戏多人互动
- 教师使用deepseek使用攻略让备课效能提升
- 办公室会议纪要培训会议内容会议整理公文攥写
- 党员要注重培塑忠诚奋斗奉献的人格力量
- 橙色卡通风儿童春季趣味运动会