软件工程第七章软件测试2课件

PPT
  • 阅读 88 次
  • 下载 0 次
  • 页数 70 页
  • 大小 884.000 KB
  • 2022-11-25 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
软件工程第七章软件测试2课件
可在后台配置第一页与第二页中间广告代码
软件工程第七章软件测试2课件
可在后台配置第二页与第三页中间广告代码
软件工程第七章软件测试2课件
可在后台配置第三页与第四页中间广告代码
软件工程第七章软件测试2课件
软件工程第七章软件测试2课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 70
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】软件工程第七章软件测试2课件.ppt,共(70)页,884.000 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-50484.html

以下为本文档部分文字说明:

软件工程第七章软件测试第1页,共70页。Contents7.4测试用例设计软件危机(1.2)2第2页,共70页。测试用例设计两种常用的测试方法黑盒测试白盒测试3第3页,共70页。黑盒测试这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的

逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。黑盒测试又叫做功能测试或数据驱动测试。4第4页,共70页。黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误:是否有不正确

或遗漏了的功能?在接口上,输入能否正确地接受?能否输出正确的结果?是否有数据结构错误或外部信息(例如数据文件)访问错误?性能上是否能够满足要求?是否有初始化或终止性错误?5第5页,共70页。用黑盒测试发现程序中的错误,必须在所

有可能的输入条件和输出条件中确定测试数据,来检查程序是否都能产生正确的输出。但这是不可能的。6第6页,共70页。假设一个程序P有输入量X和Y及输出量Z。在字长为32位的计算机上运行。若X、Y取整数,按黑盒方法进行穷举测试:可能采用的测试数据组:232×232=264如果测试一

组数据需要1毫秒,一年工作365×24小时,完成所有测试需5亿年。7第7页,共70页。白盒测试此方法把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序

的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。8第8页,共70页。软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:对程序模块的所有独立的执行路径至少测试一次;对所有的逻辑判定,取“真”与取“假”的

两种情况都至少测试一次;在循环的边界和运行界限内执行循环体;测试内部数据结构的有效性,等。9第9页,共70页。对一个具有多重选择和循环嵌套的程序,不同的路径数目可能是天文数字。给出一个小程序的流程图,它包括了

一个执行20次的循环。包含的不同执行路径数达520条,对每一条路径进行测试需要1毫秒,假定一年工作365×24小时,要想把所有路径测试完,需3170年。10第10页,共70页。11第11页,共70页

。逻辑覆盖1语句覆盖2判定覆盖3条件覆盖4判定/条件覆盖5条件组合覆盖6路径覆盖逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术。它属白盒测试。12第12页,共70页。(A>1)and(B=0)(A=2)or(X>1)X=X/AX=

X+1TTFFabdce13第13页,共70页。L1(ace)={(A>1)and(B=0)}and{(A=2)or(X/A>1)}=(A>1)and(B=0)and(A=2)or(A>1)and(B=0)and(X/A>1)=(A=2)and(B=0)or(A>1)and(B=0)

and(X/A>1)14第14页,共70页。L2(abd)=not{(A>1)and(B=0)}andnot{(A=2)or(X>1)}={not(A>1)ornot(B=0)}and{not(A=2)andnot(X>1)}=not(A>1)andnot(A=2)andno

t(X>1)ornot(B=0)andnot(A=2)andnot(X>1)15第15页,共70页。L3(abe)=not{(A>1)and(B=0)}and{(A=2)or(X>1)}={not(A>1)ornot(B=0

)}and{(A=2)or(X>1)}=not(A>1)and(A=2)ornot(A>1)and(X>1)ornot(B=0)and(A=2)ornot(B=0)and(X>1)16第16页,共70页。L4

(acd)={(A>1)and(B=0)}andnot{(A=2)or(X/A>1)}=(A>1)and(B=0)andnot(A=2)andnot(X/A>1)17第17页,共70页。1语句覆盖语句覆盖就是设

计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。在图例中,正好所有的可执行语句都在路径L1上,所以选择路径L1设计测试用例,就可以覆盖所有的可执行语句。18第18页,共70页。测试用例的设计格式如下【

输入的(A,B,X),输出的(A,B,X)】为图例设计满足语句覆盖的测试用例是:【(2,0,4),(2,0,3)】覆盖ace【L1】(A=2)and(B=0)or(A>1)and(B=0)and(X/A>1)19第19页,共

70页。2判定覆盖判定覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。判定覆盖又称为分支覆盖。对于图例,如果选择路径L1和L2,就可得满足要求的测试用例:2

0第20页,共70页。【(2,0,4),(2,0,3)】覆盖ace【L1】【(1,1,1),(1,1,1)】覆盖abd【L2】(A=2)and(B=0)or(A>1)and(B=0)and(X/A>1)not(A>1)andnot(A=2)andnot(X>1)ornot(B=0)

andnot(A=2)andnot(X>1)21第21页,共70页。如果选择路径L3和L4,还可得另一组可用的测试用例:【(2,1,1),(2,1,2)】覆盖abe【L3】【(3,0,3),(3,1,1)】覆盖acd【L4

】not(A>1)and(X>1)ornot(B=0)and(A=2)ornot(B=0)and(X>1)(A>1)and(B=0)andnot(A=2)andnot(X/A>1)22第22页,共70页

。3条件覆盖条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。在图例中,我们事先可对所有条件的取值加以标记。例如,对于第一个判断:条件A>1取真为,取假为条件B=0取真为,取假为T1T1T2T223第23页,共

70页。对于第二个判断:条件A=2取真为,取假为条件X>1取真为,取假为测试用例覆盖分支条件取值【(2,0,4),(2,0,3)】L1(c,e)【(1,0,1),(1,0,1)】L2(b,d)【(2,1,1),(2,1,2)

】L3(b,e)或T3T3T4TTTT12344321TTTTTTTT1234T424第24页,共70页。测试用例覆盖分支条件取值【(1,0,3),(1,0,4)】L3(b,e)【(2,1,1),(2,1,

2)】L3(b,e)TTTT1234TTTT123425第25页,共70页。4判定/条件覆盖判定-条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,每个判断中的每个条件的可能取值至少执行一次。26第26页,共70页。测试用例覆盖分支条件取值【(2,0,4),(2,

0,3)】L1(c,e)【(1,1,1),(1,1,1)】L2(b,d)TTTT1234TTTT1234(A=2)and(B=0)or(A>1)and(B=0)and(X/A>1)not(A>1)andnot(A=2)andnot(X>

1)ornot(B=0)andnot(A=2)andnot(X>1)27第27页,共70页。andorA>1TB=0TX=X/ATFFA=2TFX>1FX=X+128第28页,共70页。5条件组合覆盖条件组

合覆盖就是设计足够的测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次。记①A>1,B=0作②A>1,B≠0作③A≯1,B=0作④A≯1,B≠0作TT12TT12TT12TT1229

第29页,共70页。⑤A=2,X>1作⑥A=2,X≯1作⑦A≠2,X>1作⑧A≠2,X≯1作测试用例覆盖条件覆盖组合【(2,0,4),(2,0,3)】(L1)①,⑤【(2,1,1),(2,1,2)】(L3)②,⑥【(1,0,3),(1,0,4)】(L3)③,⑦【(1,1

,1),(1,1,1)】(L2)④,⑧TT34TT34TT34TT34TTTT1234TTTT1234TTTT1234TTTT123430第30页,共70页。6路径测试路径测试就是设计足够的测试用例,覆盖程序中所有可能的路径。测试用例通过路径覆盖条件【(2,0,4

),(2,0,3)】ace(L1)【(1,1,1),(1,1,1)】abd(L2)【(1,1,2),(1,1,3)】abe(L3)【(3,0,3),(3,0,1)】acd(L4)TTTT1234TTTT1234TTTT1234TTTT341231第31页,共70页。黑盒测试的测试用例设计等

价类划分边界值分析错误推测法32第32页,共70页。1等价类划分等价类划分是一种典型的黑盒测试方法,使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。等价类划分方法把所有可能的输

入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例。33第33页,共70页。使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。划分等价类等价类是指某个输入域的子集合。在该子集合中,各个

输入数据对于揭露程序中的错误都是等效的。测试某等价类的代表值就等价于对这一类其它值的测试。34第34页,共70页。等价类的划分有两种不同的情况:①有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。②无效等价

类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。35第35页,共70页。划分等价类等价类的原则。(1)如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无

效等价类。36第36页,共70页。例如,在程序的规格说明中,对输入条件有一句话:“……项数可以从1到999……”则有效等价类是“1≤项数≤999”两个无效等价类是“项数<1”或“项数>999”。在数轴上表示成:37第37页,共70页。(2)如果输入条件规定了输

入值的集合,或者是规定了“必须如何”的条件,这时可确立一个有效等价类和一个无效等价类。例如,在Pascal语言中对变量标识符规定为“以字母打头的……串”。那么所有以字母打头的构成有效等价类,而不在此集合内(不以字母打头)

的归于无效等价类。38第38页,共70页。(3)如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。(4)如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。这时可为每一个输

入值确立一个有效等价类,此外针对这组值确立一个无效等价类,它是所有不允许的输入值的集合。39第39页,共70页。例如,在教师上岗方案中规定对教授、副教授、讲师和助教分别计算分数,做相应的处理。因此可以确定4个有效等价类为教授、副教授、讲师和助教,一个无效等价类,它是所有不符合以上身分的

人员的输入值的集合。(5)如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。40第40页,共70页。例如,Pascal语言规定“一个语句必须以分号‘;’结束”。这时,

可以确定一个有效等价类“以‘;’结束”,若干个无效等价类“以‘:’结束”、“以‘,’结束”、“以‘’结束”、“以LF结束”等。确立测试用例在确立了等价类之后,建立等价类表,列出所有划分出的等价类。41第41页,共70页。再从划分出的等价类中按以下原则选择测试用例:(1)为每一个等价类规定一个唯

一编号;(2)设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;(3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆

盖为止。42第42页,共70页。用等价类划分法设计测试用例的实例在某一PASCAL语言版本中规定:“标识符是由字母开头,后跟字母或数字的任意组合构成。有效字符数为8个,最大字符数为80个。”并且规定:“标识符必须先说明,再使用。”“在同一说明语句中,标识符至

少必须有一个。”43第43页,共70页。用等价类划分方法,建立输入等价类表:44第44页,共70页。下面选取了9个测试用例,它们覆盖了所有的等价类。①VARx,T1234567:REAL;BEGINx:=3.414;T1234567:=2.732;...…(1)

,(2),(4),(8),(9),(12),(14)②VAR:REAL;(3)③VARx,:REAL;(5)45第45页,共70页。④VART12345678:REAL;(6)⑤VART12345......:REAL;

(7)多于80个字符⑥VART$:CHAR;(10)⑦VARGOTO:INTEGER;(11)⑧VAR2T:REAL;(13)⑨VARPAR:REAL;(15)BEGIN......PAP:=SIN(3.14*0.8)/6;46第46页,共70页

。2边界值分析边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。

47第47页,共70页。比如,在做三角形计算时,要输入三角形的三个边长:A、B和C。我们应注意到这三个数值应当满足A>0、B>0、C>0、A+B>C、A+C>B、B+C>A,才能构成三角形。但如果把六个不等式

中的任何一个大于号“>”错写成大于等于号“≥”,那就不能构成三角形。问题恰出现在容易被疏忽的边界附近。48第48页,共70页。这里所说的边界是指,相当于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。使

用边界值分析方法设计测试用例,首先应确定边界情况。应当选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据,而不是选取等价类中的典型值或任意值做为测试数据。49第49页,共70页。3错误推测法人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而

有针对性地编写检查这些错误的例子。这就是错误推测法。错误推测法的基本想法是:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。50第50页,共70页。补充:测试种类软件测试是由一系列不同的测试组成。主要目的是对以计算机为基础

的系统进行充分的测试。功能测试功能测试是在规定的一段时间内运行软件系统的所有功能,以验证这个软件系统有无严重错误。51第51页,共70页。可靠性测试如果系统需求说明书中有对可靠性的要求,则需进行可靠性测试。①平均

失效间隔时间MTBF(MeanTimeBetweenFailures)是否超过规定时限?②因故障而停机的时间MTTR(MeanTimeToRepairs)在一年中应不超过多少时间。52第52页,共70页。强度测试强度测试是要检查在系统运行环境不正常乃至发生故障的情况下,系统可以运行到何

种程度的测试。例如:把输入数据速率提高一个数量级,确定输入功能将如何响应。设计需要占用最大存储量或其它资源的测试用例进行测试。53第53页,共70页。设计出在虚拟存储管理机制中引起“颠簸”的测试用例进行测试。设计出会对磁盘常驻内存的数据过度访

问的测试用例进行测试。强度测试的一个变种就是敏感性测试。在程序有效数据界限内一个小范围内的一组数据可能引起极端的或不平稳的错误处理出现,或者导致极度的性能下降的情况发生。此测试用以发现可能引起这种不稳定性或不正常

处理的某些数据组合。54第54页,共70页。性能测试性能测试是要检查系统是否满足在需求说明书中规定的性能。特别是对于实时系统或嵌入式系统。性能测试常常需要与强度测试结合起来进行,并常常要求同时进行硬件和软件

检测。通常,对软件性能的检测表现在以下几个方面:响应时间、吞吐量、辅助存储区,例如缓冲区,工作区的大小等、处理精度,等等。55第55页,共70页。恢复测试恢复测试是要证实在克服硬件故障(包括掉电、硬件或网络出错等)后,系统能否正常地继续进行工作,并不对系统造成任何损害。为此,

可采用各种人工干预的手段,模拟硬件故障,故意造成软件出错。并由此检查:错误探测功能──系统能否发现硬件失效与故障;56第56页,共70页。能否切换或启动备用的硬件;在故障发生时能否保护正在运行的作业和系统状态;在系统恢复后能否从最后记录下来的无错误状

态开始继续执行作业,等等。掉电测试:其目的是测试软件系统在发生电源中断时能否保护当时的状态且不毁坏数据,然后在电源恢复时从保留的断点处重新进行操作。57第57页,共70页。启动/停止测试这类测试的目的是

验证在机器启动及关机阶段,软件系统正确处理的能力。这类测试包括反复启动软件系统(例如,操作系统自举、网络的启动、应用程序的调用等)在尽可能多的情况下关机。58第58页,共70页。配置测试这类测试

是要检查计算机系统内各个设备或各种资源之间的相互联结和功能分配中的错误。它主要包括以下几种:配置命令测试:验证全部配置命令的可操作性(有效性);特别对最大配置和最小配置要进行测试。软件配置和硬件配置都要测试。59第59页,共70页。循环配置

测试:证明对每个设备物理与逻辑的,逻辑与功能的每次循环置换配置都能正常工作。修复测试:检查每种配置状态及哪个设备是坏的。并用自动的或手工的方式进行配置状态间的转换。60第60页,共70页。安全性测试安全性测试是要检验在系统中已经存在的系统安全性、保密性措施是否发挥作用,有无漏洞。

力图破坏系统的保护机构以进入系统的主要方法有以下几种:正面攻击或从侧面、背面攻击系统中易受损坏的那些部分;以系统输入为突破口,利用输入的容错性进行正面攻击;61第61页,共70页。申请和占用过多的资源压垮系统,以破坏安全措施,从而进入系统;故意使系统出错,利用系统恢复

的过程,窃取用户口令及其它有用的信息;通过浏览残留在计算机各种资源中的垃圾(无用信息),以获取如口令,安全码,译码关键字等信息;浏览全局数据,期望从中找到进入系统的关键字;浏览那些逻辑上不存在,但物理上还存在的各种记录和资料等。62第62页,共7

0页。可使用性测试可使用性测试主要从使用的合理性和方便性等角度对软件系统进行检查,发现人为因素或使用上的问题。要保证在足够详细的程度下,用户界面便于使用;对输入量可容错、响应时间和响应方式合理可行、输出信息有意义、正确并前后一致;出错信息能够引导用户

去解决问题;软件文档全面、正规、确切。63第63页,共70页。可支持性测试这类测试是要验证系统的支持策略对于公司与用户方面是否切实可行。它所采用的方法是试运行支持过程(如对有错部分打补丁的过程,热线界面等);对其结果进行质量分析;评审诊断工具;

维护过程、内部维护文档;修复一个错误所需平均最少时间。64第64页,共70页。安装测试安装测试的目的不是找软件错误,而是找安装错误。在安装软件系统时,会有多种选择。要分配和装入文件与程序库布

置适用的硬件配置进行程序的联结。而安装测试就是要找出在这些安装过程中出现的错误。65第65页,共70页。安装测试是在系统安装之后进行测试。它要检验:用户选择的一套任选方案是否相容;系统的每一部分是否都齐全;所有文件是否都已产生并确有所需要的内容;硬件的配置是否合理,等等。66第

66页,共70页。过程测试在一些大型的系统中,部分工作由软件自动完成,其它工作则需由各种人员,包括操作员,数据库管理员,终端用户等,按一定规程同计算机配合,靠人工来完成。指定由人工完成的过程也需经过仔细的检查,这就是所

谓的过程测试。67第67页,共70页。互连测试互连测试是要验证两个或多个不同的系统之间的互连性。兼容性测试这类测试主要想验证软件产品在不同版本之间的兼容性。有两类基本的兼容性测试:向下兼容交错兼容68第

68页,共70页。容量测试容量测试是要检验系统的能力最高能达到什么程度。例如,对于编译程序,让它处理特别长的源程序;对于操作系统,让它的作业队列“满员”;对于信息检索系统,让它使用频率达到最大。在使系统的全部资源达到“满负荷”的情形下

,测试系统的承受能力。69第69页,共70页。文档测试这种测试是检查用户文档(如用户手册)的清晰性和精确性。用户文档中所使用的例子必须在测试中一一试过,确保叙述正确无误。70第70页,共70页。

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?