(精品)第七章 测试

上传人:痛*** 文档编号:247323515 上传时间:2024-10-17 格式:PPT 页数:146 大小:734.50KB
返回 下载 相关 举报
(精品)第七章 测试_第1页
第1页 / 共146页
(精品)第七章 测试_第2页
第2页 / 共146页
(精品)第七章 测试_第3页
第3页 / 共146页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第七章 测试,7.1,软件测试基础,7.2,测试与软件开发各阶段的关系,7.3,逻辑覆盖,7.4,控制结构测试,7.5,黑盒测试技术,7.6,软件测试的策略,7.7,调试(,Debug,),7.8,软件可靠性,1,7.1,软件测试基础,测试的目标,测试是为了发现程序中的错误而执行程序的过程 好的测试方案是尽可能发现迄今为止尚未发现的错误的测试方案 成功的测试是发现了至今为止尚未发现的错误。,2,基于不同的立场,存在着两种完全不同的测试目的。,从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。,从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。,软件测试的目的,3,Myers,软件测试目的,(1),测试是程序的执行过程,目的在于发现错误;,(2),一个好的测试用例在于能发现至今未发现的错误;,(3),一个成功的测试是发现了至今未发现的错误的测试。,4,换言之,测试的目的是,想以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。,测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。,实施测试收集到的测试结果数据为可靠性分析提供了依据。,测试不能表明软件中不存在错误,它只能说明软件中存在错误。,5,测试方法:黑盒测试和白盒测试,(,1,)黑盒测试要点:已经知道了程序具有的功能;测试在程序的接口进行;输入适当的数据能否产生功能要求的正确的输出结果。(,2,)白盒测试要点:已经知道程序的结构和处理过程;主要检查程序的每一条通路。,6,黑盒测试,这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。,黑盒测试又叫做功能测试或数据驱动测试。,7,黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误,:,是否有不正确或遗漏了的功能,?,在接口上,输入能否正确地接受,?,能否输出正确的结果,?,是否有数据结构错误或外部信息,(,例如数据文件,),访问错误,?,性能上是否能够满足要求,?,是否有初始化或终止性错误,?,8,白盒测试,此方法把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。,9,软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:,程序模块的所有独立的执行路径至少测试一次;,对所有的逻辑判定,取,“,真,”,与取,“,假,”,的两种情况都至少测试一次;,在循环的边界和运行界限内执行循环体;,10,测试准则,所有的测试都起源于用户需求。,测试工作开始之前,就制定出测试的计划。,把,Pareto,原理应用于软件测试。,测试应该从“小规模”开始,逐步进行“大规模”测试。,穷举测试是不可能的。,为了达到最佳的测试效果,应该由独立的第三方来从事测试工作,。,11,测试的特征,挑剔性,系统性,经济性,完全测试的不可能性。,12,假设一个程序,P,有输入量,X,和,Y,及输出量,Z,。在字长为,32,位的计算机上运行。若,X,、,Y,取整数,按黑盒方法进行穷举测试:,可能采用的,测试数据组:,2,32,2,32,2,64,如果测试一组数据需要,1,毫秒,一年工作,365,24,小时,完成所有测试需,5,亿年。,13,14,对一个具有多重选择和循环嵌套的程序,不同的路径数目可能是天文数字。给出一个小程序的流程图,它包括了一个执行,20,次的循环。,包含的不同执行路径数达,5,20,条,对每一条路径进行测试需要,1,毫秒,假定一年工作,365,24,小时,要想把所有路径测试完,需,3170,年。,15,软件测试的对象,软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间。,需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。,16,为把握软件开发各个环节的正确性,需要进行各种确认和验证工作。,确认,(Validation),,是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。,需求规格说明确认,程序确认,(,静态确认、动态确认,),验证,(Verification),,试图证明在软件生存期各个阶段,以及阶段间的逻辑协调性、完备性和正确性。,17,18,测试信息流,软件配置:软件需求规格说明、软件设计规格,说明、源代码等;,测试配置:测试计划、测试用例、测试程序等;,测试工具:测试数据自动生成程序、静态分析程,序、动态分析程序、测试结果分析程,序、以及驱动测试的测试数据库等等。,19,测试结果分析:比较实测结果与预期结果,,评价错误是否发生。,排错,(,调试,),:对已经发现的错误进行错误定,位和确定出错性质,并改正这,些错误,同时修改相关的文档。,修正后的文档再测试:直到通过测试为止。,20,7.2,测试与软件开发各阶段的关系,软件需求分析过程中建立软件信息域、功能和性能需求、约束环境等等;,软件设计过程是一个自顶向下,逐步细化的过程;,软件编码是用某种程序设计语言转换成程序代码;,测试过程是依相反顺序安排的自底向上,逐步集成的过程。,21,22,逻辑覆盖,逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术。它属白盒测试。,语句覆盖,判定覆盖,条件覆盖,判定条件覆盖,条件组合覆盖,23,PROCEDURE EXAMPLE(A,B:REAL;,VAR X:REAL);,BEGIN,IF(A1)AND(B=0),THEN X:=X/A;,IF(A=2)OR(X1),THEN X:=X+1,END,24,T,e,F,d,b,F,c,T,(A1),and,(B=0),(A=2),or,(X1),X=X/A,X=X+1,a,25,L1(a,c e),=(A1)and(B=0)and,(A=2)or(X/A1),=(A1)and(B=0)and(A=2)or,(A1)and(B=0)and(X/A1),=(A=2)and(B=0)or,(A1)and(B=0)and(X/A1),26,L2(a,b d),=not(A1)and(B=0)and,not(A=2)or(X1),=not(A1)or not(B=0)and,not(A=2)and not(X1),=not(A1)and not(A=2)and not(X1),or,not(B=0)and not(A=2)and not(X1),27,L3(a,b e),=not(A1)and(B=0)and,(A=2)or(X1),=not(A1)or not(B=0)and,(A=2)or(X1),=not(A1)and(A=2)or,not(A1)and(X1)or,not(B=0)and(A=2)or,not(B=0)and(X1),28,L4(a,c d),=(A1)and(B=0)and,not(A=2)or(X/A1),=(A1)and(B=0)and not(A=2)and,not(X/A1),29,语句覆盖,语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。,在图例中,正好所有的可执行语句都在路径,L1,上,所以选择路径,L1,设计测试用例,就可以覆盖所有的可执行语句。,30,测试用例的设计格式如下,【,输入的,(A,B,X),,输出的,(A,B,X)】,为图例设计满足语句覆盖的测试用例是,:【(2,0,4),,,(2,0,3)】,覆盖,ace【L1】,(A=2)and(B=0)or,(A1)and(B=0)and(X/A1),31,特点:语句覆盖只关心判定表达式的值,而没有分别测试判定表达式中每个条件的取值情况。语句是很弱的逻辑覆盖。例如在判定中,如果将,and,写成了,or,,在判定中将,X1,写成了,X1),and,(B=0),and,(X/A1),not,(A1),and not,(A=2),and not,(X1),or,not,(B=0),and not,(A=2),and not,(X1),34,如果选择路径,L3,和,L4,,还可得另一组可用的测试用例,:【(2,1,1),,,(2,1,2)】,覆盖,abe【L3】【(3,0,3),,,(3,0,1)】,覆盖,acd【L4】,not,(A1),and,(X1),or,not,(B=0),and,(A=2),or,not,(B=0),and,(X1),(A1),and,(B=0),and not,(A=2),and,not,(X/A1),35,特点:判定覆盖只覆盖了全部路径的一半。,36,条件覆盖,条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。,在图例中,我们事先可对所有条件的取值加以标记。例如,,对于第一个判断:,条件,A,1,取真为 ,取假为 条件,B,0,取真为 ,取假为,37,对于第二个判断:,条件,A,2,取真为,T3,,取假为,T3,非 条件,X,1,取真为,T4,,取假为,T4,非,测试用例 覆盖分支 条件取值,【(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),或,38,测 试 用 例 覆盖分支 条件取值,【(1,0,3),,,(1,0,4)】L3(b,e),【(2,1,1),,,(2,1,2)】L3(b,e),判定条件覆盖,判定条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,每个判断中的每个分支至少执行一次。,39,测 试 用 例覆盖分支 条件取值,【(2,0,4),,,(2,0,3)】L1(c,e),【(1,1,1),,,(1,1,1)】L2(b,d),(A=2),and,(B=0),or,(A1),and,(B=0),and,(X/A1),not,(A1),and not,(A=2),and not,(X1),or,not,(B=0),and not,(A=2),and not,(X1),40,条件组合覆盖,条件组合覆盖就是设计足够的测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次。,记,A,1,B,0,作,A,1,B0,作,A1,B,0,作,A1,B0,作,41,A,2,X,1,作 ,A,2,X1,作 ,A2,X,1,作 ,A2,X1,作,测 试 用 例 覆盖条件 覆盖组合,【(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),42,小结:,语句覆盖是最弱的覆盖;,满足判定覆盖不一定满足条件覆盖,反之亦然;,满足判定,/,条件覆盖也一定满足判定覆盖和条件覆盖;,满足条件组合覆盖也一定满足判定覆盖、条件覆盖和判定,/,条件覆盖;,满足条件组合覆盖不一定满足路径覆盖,反之亦然;,将条件组合覆盖与路径覆盖结合起来可以实现最强覆盖。,43,基本路径测试,它是一种白盒测试技术。,基本路径测试方法把覆盖的路径数压缩到一定限度内,程序中的循环体最多只执行一次。,它是在程序控制流图的基础上,分析控制构造的环路复杂性,导出基本可执行路径集合,设计测试用例的方法。设计出的测试用例要保证在测试中,程序的每一个可执行语句至少要执行一次。,控制结构测试,44,1.,程序的控制流图,符号为控制流图的一个结点,表示一个或多个无分支的,PDL,语句或源程序语句。箭头为
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!