软件工程SW061软件测试.pptx

上传人:夺命阿水 文档编号:381516 上传时间:2023-05-08 格式:PPTX 页数:55 大小:232.68KB
返回 下载 相关 举报
软件工程SW061软件测试.pptx_第1页
第1页 / 共55页
软件工程SW061软件测试.pptx_第2页
第2页 / 共55页
软件工程SW061软件测试.pptx_第3页
第3页 / 共55页
软件工程SW061软件测试.pptx_第4页
第4页 / 共55页
软件工程SW061软件测试.pptx_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《软件工程SW061软件测试.pptx》由会员分享,可在线阅读,更多相关《软件工程SW061软件测试.pptx(55页珍藏版)》请在课桌文档上搜索。

1、软件测试,1,课程内容,测试目的和策略测试方法测试技术测试工具测试过程,2,测试目的和策略,3,什么是软件测试,狭义的定义:测试是程序的执行过程,目的在于发现错误;软件测试是根据程序开发阶段的规格说明及程序内部结构而精心设计的一批测试用例(输入数据及其预期结果的集合),并利用这些测试用例去运行程序,以发现错误的过程;一个好的测试用例在于能发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误的测试。,4,广义的软件测试概念,指软件生命周期中所有的检查、评审和确认工作,其中包括对分析、设计阶段,以及完成开发后的维护阶段的各类文档和代码的审查和确认。测试通常包括确认(validation)和

2、验证(verification)两种方式。,5,验证和确认,验证(Verification):在软件生存期各个阶段,验证是指检测各个阶段结束时的工作产品是否满足对上一阶段的结束后的工作产品所定义的规格的验证过程。,6,验证和确认,确认(Validation):在软件生命周期各个阶段,确认是指检测各个阶段结束时的工作产品是否满足在软件生命周期初期在系统需求文档中描述的各项软件规格的确认过程。,7,确认和验证的比较,验证是检测每一阶段形成的工作产品是否与前一阶段定义的规格相一致确认是检测每一阶段的工作产品是否与最初定义的软件需求规格相一致软件测试既可用于验证,又可用于确认,需求,设计,编码,测试,

3、验证,确认,8,什么是缺陷?,缺陷:最终产品同用户的期望不一致缺陷的分类错误遗漏超出需求的部分缺陷(未触发)Vs.故障(应首先解决),9,测试的职责,验证在整个软件开发周期中,各个阶段的软件质量是否合格。验证最终交付给用户的系统是否满足用户的需要,是否符合需求。通过样本测试数据,检查系统在运行过程中的情况。,10,测试Vs质量保证,软件测试并不是质量保证的唯一手段,事后的检验是高价的。应尽量在开发期间减少错误,通过软件过程来建立软件质量。迄今为止,软件质量仍然主要靠软件测试来验证和确认,而且由于测试工作特别耗费资源,在软件开发的总成本中,用在测试上的开销要占30%到50%。在极端的情况下,例如

4、在关系到人的生命安全的软件中(如飞机控制或核反应监控等软件),测试费用可能相当软件生命周期所有其它阶段费用总和的三到五倍。据美国工业界的统计,对商品化的程序来说,测试在时间和费用两方面的花费都要占整个软件开发周期总开销的50%左右。,11,测试的商业意义,降低风险(风险:就是不希望发生的事情的可能性)测试计划中必须标明商业上的风险。测试人员职责:评估商业上的风险如实的向管理层汇报项目情况,12,对待可能产生的风险的策略,我们无法消除风险,但是我们可以降低在风险发生时的损失。降低系统风险的最有效的办法就是对其进行有针对性的测试。,13,系统风险列举,如果某部分产生了错误会导致的结果?未被验证的数

5、据交换如果被接受如果文件的完整性被破坏系统是否能被安全恢复(完全恢复成备份时的状态)是否能暂停系统的运行进行维护工作时,系统性能是否会下降到不能接受的水平。系统的安全性是否有保证,14,系统风险列举(继续),系统的操作流程是否符合用户的组织策略和长远规划系统是否可靠,稳定系统是否易于使用系统是否便于维护是否易于与其它系统相连,15,测试工作量,太少的测试是不负责任,过多的测试是一种罪过。100的测试是不可能的,不同的用户采用的测试策略是不同的。Good-enough原则商业目标系统的质量等级,16,测试策略,在测试策略中必须标明可能存在的风险,这样在测试后的系统中可以有效的降低被标明的风险发生

6、的可能性。测试要素:需要被标明的风险也是我们测试的重点。测试阶段:在整个开发生命周期中,测试工作介入的时期。,17,测试效果的好坏是组织级的问题,有效的测试最好由一个独立的团队来实施。便于确定工作目标便于人员的培养与升迁利于团队建设对质量的忠诚度高利于新技术,新方法的产生和推广工作职责明确,18,测试方法,19,测试方法,黑盒测试白盒测试静态测试动态测试,20,黑盒测试,黑盒测试是从用户观点出发的测试,它又称功能测试、数据驱动测试或基于规格说明书或用户手册的测试。它所依据的是程序的外部特性。,21,黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误:是否有不正确或遗漏了的功能?在接口上

7、,输入能否正确地接受?能否输出正确的结果?是否有数据结构错误或外部信息(例如数据文件)访问错误?性能上是否能够满足要求?是否有初始化或终止性错误?,黑盒测试,22,用黑盒测试发现程序中的错误,必须在所有可能的输入条件和输出条件中确定测试数据,来检查程序是否都能产生正确的输出。但这是不可能的。,黑盒测试,23,假设一个程序P 有输入量X 和Y 及输出量Z。在字长为32位的计算机上运行。若X、Y 取整数,按黑盒方法进行穷举测试:可能采用的 测试数据组:232232 264 如果测试一 组数据需要1毫秒,一年工作36524小时,完成所有测试需5亿年。,黑盒测试,24,黑盒测试的设计方法,等价类划分边

8、界值分析错误推测法因果图。,25,等价类划分,等价类划分方法把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步,26,划分等价类等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。测试某等价类的代表值就等价于对这一类其它值的测试。,等价类划分,27,等价类的划分有两种不同的情况:有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。

9、在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。,等价类划分,28,(1)如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类。,等价类划分的原则,29,(2)如果输入条件规定了输入值的集合,或者是规定了“必须如何”的条件,这时可确立一个有效等价类和一个无效等价类。例如,在Pascal语言中对变量标识符规定为“以字母打头的串”。那么所有以字母打头的构成有效等价类,而不在此集合内(不以字母打头)的归于无效等价类。,等价类划分的原则,30,(3)如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。(4)如果规定了输入数据的一组值,而且程序要对每

10、个输入值分别进行处理。这时可为每一个输入值确立一个有效等价类,此外针对这组值确立一个无效等价类,它是所有不允许的输入值的集合。例如,在教师上岗方案中规定对教授、副教授、讲师和助教分别计算分数,做相应的处理。因此可以确定4个有效等价类为教授、副教授、讲师和助教,一个无效等价类,它是所有不符合以上身分的人员的输入值的集合。,等价类划分的原则,31,(5)如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。例如,Pascal语言规定“一个语句必须以分号;结束”。这时,可以确定一个有效等价类“以;结束”,若干个无效等价类“以:结束”、“以,结

11、束”、“以 结束”、“以LF结束”等。,等价类划分的原则,32,数学含义A=X=BC=Y=D,等价类划分的原则,33,确立了等价类之后,建立等价类表,列出所有划分出的等价类。,确立等价类测试用例,34,再从划分出的等价类中按以下原则选择测试用例:为每一个等价类规定一个唯一编号;设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。,确立等价类测试用例,35,在某一PASCAL语言版本中规定:“标识符是由字母开头,后跟字母或数字的任意组

12、合构成。有效字符数为8个,最大字符数为80个。”并且规定:“标识符必须先说明,再使用。”“在同一说明语句中,标识符至少必须有一个。”,等价类划分举例,36,建立输入等价类表,等价类划分举例,37,下面选取了9个测试用例,它们覆盖了所有的等价类。VAR x,T1234567:REAL;BEGIN x:=3.414;T1234567:=2.732;.(1),(2),(4),(8),(9),(12),(14)VAR:REAL;(3)VAR x,:REAL;(5),等价类划分举例,38,VAR T12345678 REAL;(6)VAR T12345.REAL;(7)多于80个字符 VAR T$:CH

13、AR;(10)VAR GOTO:INTEGER;(11)VAR 2T:REAL;(13)VAR PAR:REAL;(15)BEGIN.PAP:=SIN(3.14*0.8)/6;,等价类划分举例,39,边界值分析,边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。经验表明,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。,40,比如,在做三角形计算时,要输入三角形的三个边长:A、B和C。我们应注意到这三个数值应当满足:A0、B0、C0、ABC、ACB、BCA,才能构成三角形。但如果把六个不等式中的任何一个大于号“”错

14、写成大于等于号“”,那就不能构成三角形。问题恰出现在容易被疏忽的边界附近。,边界值分析,41,这里所说的边界是指,相当于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。使用边界值分析方法设计测试用例,首先应确定边界情况。应当选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据,而不是选取等价类中的典型值或任意值做为测试数据。,边界值分析,42,边界值分析,数学含义A=X=BC=Y=D,43,错误推测法,人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的用例。错误推测法的基本想法是:列举出程序中所有可能有的错误和容易发生错误的特殊情况

15、,根据它们选择测试用例。,44,因果图,因果图的适用范围:如果在测试时必须考虑输入条件的各种组合,可使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例。因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。,45,(1)分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。(2)分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系?根据这些关系,画出因果图。,因果图基本步骤,46,(3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不

16、可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。(4)把因果图转换成判定表。(5)把判定表的每一列拿出来作为依据,设计测试用例。,因果图基本步骤,47,用Ci表示原因,用Ei表示结果,各结点表示状态,可取值“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现。主要的原因和结果之间的关系有:,因果图基本符号,48,表示约束条件的符号:为了表示原因与原因之间,结果与结果之间可能存在的约束条件,在因果图中可以附加一些表示约束条件的符号。,因果图基本符号,49,例如,有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押

17、下橙汁或啤酒的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示零钱找完的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示零钱找完的红灯灭,在送出饮料的同时退还5角硬币。”,因果图举例,50,(1)分析这一段说明,列出原因和结果原因:1.售货机有零钱找 2.投入1元硬币 3.投入5角硬币 4.押下橙汁按钮 5.押下啤酒按钮建立中间结点,表示处理中间状态11.投入1元硬币且押下饮料按钮12.押下橙汁或啤酒的按钮13.应当找5角零钱并且售货机有零钱找14.钱已付清,因果图举例,51,结果:21.售货机零钱找完灯亮 22.退还1元硬币 23.退还5

18、角硬币 24.送出橙汁饮料 25.送出啤酒饮料(2)画出因果图。所有原因结点列在左边,所有结果结点列在右边。(3)由于 2 与 3,4 与 5 不能同时发生,分别加上约束条件E。(4)因果图(5)转换成判定表,因果图举例,52,53,54,测试方法选择的综合策略,Myers提出了使用各种测试方法的综合策略:在任何情况下都必须使用边界值分析方法。经验表明用这种方法设计出测试用例发现程序错误的能力最强。必要时用等价类划分方法补充一些测试用例。用错误推测法再追加一些测试用例。对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,应当再补充足够的测试用例。如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法。,55,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号