收藏 分销(赏)

第七章-软件测试.ppt

上传人:仙人****88 文档编号:14750217 上传时间:2026-11-13 格式:PPT 页数:36 大小:473KB 下载积分:10 金币
下载 相关
第七章-软件测试.ppt_第1页
第1页 / 共36页
第七章-软件测试.ppt_第2页
第2页 / 共36页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第七章 软件测试,内容安排,7.1,软件测试的基本概念,7.2,软件测试的分类,7.3,软件测试的方法,7.4,软件测试的步骤,7.5,面向对象的软件测试,7.6,小结,学习目标,理解测试的基本概念,明确测试的重要性,掌握软件测试的常用方法,熟悉软件测试的步骤,能够熟练使用黑盒测试和白盒测试方法,了解测试报告的书写格式及要点,7.1,软件测试的基本概念,软件测试时在软件投入运行之前对软件需求分析、软件设计规格说明和软件编码进行差错和纠错(包括代码执行活动和人工活动)。找错的 活动称为测试,纠错的活动称为调试。或者说,软件测试是为了 发现错误而执行程序的过程。,具体说,它是根据软件开发各阶段的规格说明和程序的内部结构而精心设计出的一批测试用例,并利用测试用例来运行程序,以发现程序错误的过程。,7.1.1,软件测试的目的,测试是为了发现程序中的错误而执行程序的过程。,好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。,成功的测试是发现了至今为止尚未发现的错误的测试。,7.1.2,软件测试的原则,完全测试时不可能的。,测试中存在风险,软件测试只能够表明缺陷的存在,而不能证明软件产品已经没有缺陷,软件产品中潜在的错误数与已经发现的错误数成正比,让不同的测试人员参与到测试工作中,开发小组和测试小组分立,开发工作和测试工作不能够由同一部分人来完成,尽早并不断地进行测试,使测试工作贯穿于整个软件开发过程,设计测试用例时,应包括输入数据和预期的输出数据两部分,并且,输入数据应该包括合法的情况和非法的情况,要集中测试容易出错或错误较多的模块,应该长期保留所有的测试用例,7.1.3,软件测试的模型,1.V,模型,单元测试,集成测试,系统测试,验收测试,用户需求,需求分析,与系统设计,概要设计,详细设计,编码,V,模型的主要意义在于它明确地表明了测试过程中的不同级别,并且清楚地描述了这些测试阶段和开发过程的各阶段的对应关系,V,模型的缺点:,开发早期各阶段引入的错误不能及时发现,尤其是需求阶段的错误只有到最后的验收测试才能够被识别。对分析和设计阶段产生的错误不能及时发现并改正的缺点会对后期的修复工作带来不便,造成资源浪费和时间延迟,7.1.3,软件测试的模型,2.W,模型,集成,实现,交付,用户需求,需求分析,与系统设计,概要设计,详细设计,编码,验收测试,准备,系统测试,准备,集成测试,准备,单元测试,准备,单元测试,集成测试,系统测试,验收测试,优点:测试与开发并行,可及早发现错误,缺陷:线性开发模型,灵活性和对环境的适应性相对较差,3.H,模型,7.1.3,软件测试的模型,测试准备,测试就绪点,测试执行,测试流程,其他流程,H,模型强调了测试的独立性和灵活性。在此模型中,软件测试活动完全独立,它贯穿于整个软件产品的生命周期,与其他流程并行进行,7.2,软件测试的分类,按照时间,阶段,单元测试,集成测试,系统测试,验收测试,按照是否,运行程序,静态测试,动态测试,按照是否,查看源码,黑盒测试,白盒测试,按照质量,因素,功能测试,可靠性测试,可用性测试,性能测试,安全性测试,7.2,软件测试的分类,关于按照质量因素划分的测试分类说明:,功能测试,:关注软件产品的功能实现,以软件需求说明书为依据,检验是否实现了所有功能。,可靠性测试,:关注程序输出结果的准确性,以需求规格说明书中对系统的可靠性要求为依据,评测最终软件产品提供准确输出结果的能力。,可用性测试,:用来衡量处理服务请求时应用程序的可用频率。它以需求规格说明书中对系统的可用性要求为依据,性能测试,:主要针对软件产品各方面的性能因素,可细分为负载测试、容量测试、压力测试。,安全性测试,:验证系统的安全性、保密性等措施是否能够有效发挥作用,包括用户管理和访问控制、数据备份与恢复、入侵测试等。,7.3,软件测试的方法,根据程序是否运行,静态分析,动态测试,按照测试数据的设计依据,黑盒测试,白盒测试,7.3.1,静态分析与动态测试,1,静态分析,所谓静态分析,就是不需要执行所测试的程序,而只是通过扫描程序正文,对程序的数据流和控制流等信息进行分析,找出系统的缺陷,得出测试报告。一般静态测试检测出的错误数可以达到总错误数的,80%,以上。审查(阅读检查文档和代码)和走查(只看代码)是静态测试常用的方法,。,2,动态测试,动态测试是通过源程序运行时所体现出来的特征,进行执行跟踪、时间分析以及测试覆盖等方面的测试。也就是测试人员输入一系列测试用例,通过观察测试用例的输出结果是否与预期结果相吻合来检验系统内部潜在的问题或缺陷,。,动态测试的流行方法:黑盒测试和白盒测试,7.3.2,黑盒测试与白盒测试,1,黑盒测试,黑盒测试又称为功能测试、数据驱动测试和基于规格说明的测试。是一种从用户观点出发的测试。,2,白盒测试,白盒测试也称作结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行。,软件,输入,输出,实现细节,输入,输 出,黑盒测试方法,1.,等价类划分法,等价类划分法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。,所谓等价类是指输入域的某个子集合,所有等价类的并集就是整个输入域。,有效等价类是指对软件规格说明来说,合理、有意义的输入数据所构成的集合。,无效等价类则和有效等价类相反,利用无效等价类可以检验程序异常情况的处理。,7.3.2,黑盒测试与白盒测试,1.,等价类划分法,等价类划分的原则,如果规定了输入条件的取值范围或者个数,则可以确定一个有效等价类和两个无效等价类。,如果规定了输入值的集合,则可以确定一个有效等价类和一个无效等价类。,如果规定了输入数据的一组值,并且程序要对每一个输入值分别进行处理,则可为每一个值确定一个有效等价类,此外根据这组值确定一个无效等价类,即所有不允许的输入值的集合。,如果规定了输入数据必须遵守的规则,则可以确定一个有效等价类和若干个无效等价类。,如果已知的等价类中各个元素在程序中的处理方式不同,则应将该等价类进一步划分成更小的等价类,7.3.2,黑盒测试与白盒测试,1.,等价类划分法,确定测试用例的步骤,为每一个等价类规定一个惟一的编号。,设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这个过程,直至所有的有效等价类均被测试用例所覆盖。,设计一个新的测试用例,使其仅覆盖一个无效等价类,重复这个过程,直至所有的无效等价类均被测试用例所覆盖。,7.3.2,黑盒测试与白盒测试,7.3.2,黑盒测试和白盒测试,等价类划分法举例,函数,NextData,的功能认为:输入三个变量年、月、日,函数返回输入日期后面一天的日期,其中,,1812,年,2012.,设计测试用例计划分等类步骤如下:,7.3.2,黑盒测试和白盒测试,等价类划分法举例,等价类划分表,输入及外部条件,有效等价类,等价类编号,无效等价类,等价类编号,日期的类型,数字字符,1,非数字字符,8,年,在,1812,于,2012,之间,2,小于,1812,9,大于,2012,10,月,在,1,与,12,之间,3,小于,1,11,大于,12,12,非闰年的,2,月,日在,1,与,28,之间,4,日小于,1,13,日大于,28,14,闰年的,2,月,日在,1,与,29,之间,5,日小于,1,15,日大于,29,16,月份为,1,、,3,、,5,、,7,、,8,、,10,、,12,月,日在,1,与,31,之间,6,日小于,1,17,日大于,31,18,月份为,4,、,6,、,9,、,11,月,日在,1,与,30,之间,7,日小于,1,19,日大于,30,20,7.3.2,黑盒测试和白盒测试,序号,输入数据,预期输出,覆盖范围,年,月,日,年,月,日,1,2003,3,15,2003,3,16,1,2,3,6,2,2004,2,13,2004,2,14,1,2,3,5,3,1999,2,3,1999,2,4,1,2,3,4,4,1970,9,29,1970,9,30,1,2,,,3,7,等价类划分法举例,有效等价类的测试用例,7.3.2,黑盒测试和白盒测试,等价类划分法举例,无效等价类的测试用例,序号,输入数据,预期结果,覆盖范围,年,月,日,1,Xv,5,9,输入无效,8,2,1700,4,8,输入无效,9,3,2300,11,1,输入无效,10,4,2005,0,11,输入无效,11,5,2009,14,25,输入无效,12,6,1989,2,-1,输入无效,13,7,1977,2,30,输入无效,14,8,2000,2,-2,输入无效,15,9,2008,2,34,输入无效,16,10,1956,10,0,输入无效,17,11,1974,8,45,输入无效,18,12,2007,9,-4,输入无效,19,13,1866,12,35,输入无效,20,7.3.2,黑盒测试与白盒测试,2.,边界值分析法,使用边界值分析方法设计测试用例,首先应确定边界情况。,通常输入和输出等价类的边界,就是应着重测试的边界情况。,应当选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。,7.3.2,黑盒测试和白盒测试,2.,边界值分析法,边界值分析法遵循的原则,如果输入条件规定了值的范围,则应该选取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据。,如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少,1,、比最大个数多,1,的数作为测试数据。,根据规格说明的每一个输出条件,分别使用以上两个原则。,如果程序的规格说明给出的输入域或者输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。,如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界值作为测试用例。,分析规格说明,找出其他可能的边界条件。,白盒测试,白盒测试又称为结构测试或逻辑驱动测试,此方法是将测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构和相关信息来设计或选择测试用例,对穿过软件的逻辑路径进行测试,可以在不同点检查程序的状态,以确定实际状态与预期状态是否一致。常用的白盒测试方法有:,逻辑覆盖法,7.3.2,黑盒测试和白盒测试,1.,逻辑覆盖法,逻辑覆盖法是以程序的内在逻辑结构为基础,根据程序的流程图设计相应的测试用例。根据覆盖的目标不同,可分为:,语句覆盖,:测试用例能使被测程序的每条执行语句至少执行一次。,判定覆盖,:测试用例能使被测程序中的每个判定至少取得一次“真”和一次“假”,又称分支覆盖。,条件覆盖,:测试用例能使被测程序中每个判定的每个条件至少取得一次“真”和一次“假”。如果判定中只有一个条件,则条件覆盖便满足判定覆盖。,判定,/,条件覆盖,:测试用例既能满足判定覆盖,又满足条件覆盖。,条件组合覆盖,:测试用例使每个判定中所有可能的条件取值组合至少执行一次。,路径覆盖法,:其基本思想是覆盖呗测试程序中的所有可能路径。,7.3.2,黑盒测试和白盒测试,逻辑覆盖法举例:,有如下一段代码,用各种不同的覆盖方法对其进行逻辑覆盖测试。,int,x,y,;double z;,if(x,=&y0)z=,z/x,;,if(x,1|z1)z=z+1;,z=,z+y,;,z=,z/x,b,d,x0&y0,x1|z1,z=z+1,z=,z+y,Y,N,N,Y,a,c,e,语句,1,语句,2,语句,3,设计测试用例,语句覆盖的用例:,输入:,x=2,y=3,z=4,执行路径:,abd,。该用例使得语句,1,、,2,、,3,都各执行一次。,分支覆盖的用例:,输入:,x=3,y=4,z=5,执行路径,abd,输入:,x=-1,y=2,z=0,执行路径,ace,分支,-,条件覆盖就是同时满足分支覆盖和条件覆盖的要求,其用例取分支覆盖用例和条件覆盖用例的并集即可。,条件覆盖的用例设计,对于判断语句,x0&y0:,x0,真为,T1,假为,-T1,;,y0,真,T2,假为,-T2,对于判断语句,x1|z1,:,x1,真为,T3,假为,-T3;z1,真,T4,假为,-T4,条件覆盖的测试用例如下表:,输入,通过路径,条件取值,覆盖分支,x=7,y=1,z=3,abd,T1,T2,T3,T4,bd,x=-1,y=-3,z=0,ace,-T1,-T2,-T3,-T4,ce,设计测试用例,条件组合覆盖的用例设计过程:,各判断语句的逻辑条件的取值组合标记如下:,(1)x0,y0,记作,T1,T2,,条件组合取值,M,(2)x0,y0,记作,T1,-T2,,条件组合取值,-M,(3)x0,记作,-T1,T2,,条件组合取值,-M,(4)x=0,y1,z1,记作,T3,T4,,条件组合取值,N,(6)x1,z=1,记作,T3,-T4,,条件组合取值,N,(7)x1,记作,-T3,T4,,条件组合取值,N,(8)x=1,z=1,记作,-T3,-T4,,条件组合取值,-N,设计测试用例,条件组合覆盖的测试用例如下表:,输入,通过路径,条件取值,覆盖组合号,x=1,y=3,z=2,abd,T1,T2,-T3,T4,1,7,x=2,y=0,z=8,acd,T1,-T2,T3,T4,2,5,x=-1,y=1,z=1,ace,-T1,T2,-T3,-T4,3,8,X=-2,y=-3,z=0,ace,-T1,-T2,-T3,-T4,4,8,X=5,y=9,z=0,abd,T1,T2,T3,-T4,1,6,设计测试用例,路径覆盖的测试用例如下表:,输入,通过路径,覆盖条件,x=2,y=4,z=3,abd,T1,T2,T3,T4,x=1,y=3,z=0,abe,T1,T2,-T3,-T4,x=-1,y=-1,z=3,acd,-T1,-T2,-T3,T4,X=-2,y=-3,z=1,ace,-T1,-T2,-T3,-T4,说明:,6,种覆盖法的覆盖率不一样,其中路径覆盖的覆盖率最高,语句覆盖的覆盖率最低,7.4,软件测试的步骤,单元测试,集成测试,系统测试,验收测试,对软件中最小的单元(函数、过程或类)进行检查和验证。通常采用白盒测试,对通过测试的单元模块组装成系统或子系统进行测试,将整个软件系统看做一个整体进行测试,包括对功能和性能以及软件所运行的软硬件环境进行测试,测试(用户、测试人员及开发人员参与),,测试(完全由最终用户测试),7.5,面向对象的测试,针对面向对象的开发中面向对象分析(,OOA,)、面向对象设计(,OOD,)、面向对象实现(,OOP,)三个阶段,结合传统的测试步骤的划分,面向对象的软件测试分为:,面向对象分析的测试,面向对象设计的测试,面向对象实现的测试,面向对象的单元测试,面向对象的集成测试,面向对象的系统测试及验收测试,7.5,面向对象的测试,面向对象分析的测试,结构化需求分析把目标看成是一个由若干功能模块组成的集合,主要关注系统的功能结构,而面向对象需求分析以现实世界中的概念为模型结构,主要关注系统的逻辑结构。,面向对象设计的测试,面向对象设计是对面向对象分析结果的进一步细化、纠正和完善,对面向对象的测试涉及了面向对象分析的内容,但更关注对类及其类之间关系的测试和对类库支持情况的测试。,面向对象实现的测试,面向对象的程序具有封装、继承和多态的特性,因此测试时要考虑不同执行情况和行为。由于系统功能的实现分布在类中,所以本阶段的测试还要指点评判类是否实现了要求功能。,面向对象的单元测试,以类或对象为单位。由于类包含一组不同的操作,并且某些特殊的操作可能被多个类共享,因此单元测试部能孤立地测试某个操作,而是将操作作为类的一部分,7.5,面向对象的测试,面向对象的集成测试,采用基于线程或基于使用的测试方法。前者是指把回应系统外界输入的一组相关的类集成起来,对线程进行集成并测试;后者是按照类对服务器的依赖以及对其他类的依赖程度,把类划分为独立类和依赖类,测试完独立类后对依赖类进行测试,测试时按照逐层向下的顺序直到测试完整个系统。,面向对象的系统测试及验收测试,面向对象的系统测试以面向对象需求分析的结果为依据,对分析中的对象模型、交互模型等各种分析模型进行测试。验收测试是以用户为主的测试,是将软件产品正式交付用户或市场发布之前的最后一个测试,7.6,小 结,目前,软件测试是保证软件可靠性的主要手段。测试阶段的根本任务是发现并改正软件中的错误。,黑盒测试和白盒测试是软件测试的两类不同方法,在测试过程中应该联合使用这两类方法。通常,在测试过程的早期阶段使用白盒测试技术,而在测试的后期主要使用黑盒测试技术。,黑盒测试的各种方法中,应用较为广泛的测试方法有:等价类划分法、边界值分析法、错误推测法和因果图法;本章学习了等价类划分方法。白盒测试的各种方法中,应用较为广泛的测试方法有:覆盖测试、路径测试和循环覆盖法。本章学习了逻辑覆盖测试方法。,大型软件的测试应该分阶段进行,通常分为单元测试、集成测试、确认测试和系统测试等四个阶段。,面向对象测试的总目标与传统软件测试的目标相同,也是用最小的工作量发现最多的错误。但是,面向对象测试的策略和技术与传统测试有所不同,测试的对象从模块移向了对象类。,
展开阅读全文

开通  VIP、SVIP  下载更划算
下载10份以上建议开通 VIP 会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        关注我们

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服