




已阅读5页,还剩229页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,1,第一章概述,.,2,本章要点软件测试的发展历史;软件测试技术的分类方法;软件测试原则;软件测试的定义;软件测试同软件开发之间的关系;软件测试与开发模型;软件测试工作流程。,.,3,本章目标了解软件测试的发展历程和行业现状;掌握软件测试技术的分类;理解软件测试的目的和软件测试原则,以及了解人们对软件测试行业的错误认识;掌握软件测试中的基本定义、基本知识;理解软件开发与软件测试的关系。,.,4,1.1软件测试的发展历程及现状1.1.1软件测试的发展历程20世纪50-60年代,软件仍然处于次要位置,测试理论和方法的发展比较缓慢。70年代以后,软件技术的成熟和完善使得软件测试的规模和复杂度加大,软件测试也逐渐形成了一套完整的体系,逐渐走向规范化。1.1.2软件测试的现状与一些发达国家相比,国内测试工作还存在一定的差距。国内测试人员所占比例小,但是,在软件测试实现方面都是相当的,而且向产业化方向发展。,.,5,1.2什么是软件测试1.2.1软件测试的定义根据侧重点的不同,主要有以下三种观点:1)1983年IEEE将软件测试定义为:“使用人工或自动手段运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别”,该定义明确地提出了软件测试以检验是否满足需求为目标。2)Myers认为:“是为了发现错误而执行程序的过程”,明确提出了“寻找错误”是测试目的。,.,6,3)从软件质量保证的角度看:是一种重要的软件质量保证活动,其动机是通过一些经济、高效的方法,捕捉软件中的错误,从而达到保证软件内在质量的目的。测试过程中的活动包括“分析”软件(静态测试)和“运行”软件(动态测试)。也有人认为软件测试(softwaretesting)就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。,.,7,软件测试有两个基本职责:即验证和确认。注意:区分软件测试和软件调试。1.2.2软件测试生命周期测试的生命周期(softwaretestinglifecycle)分为几个阶段(如图1-1所示)。前三个阶段就是引入程序错误阶段;后三个阶段就是清除程序错误的阶段。,.,8,图1-1测试生命周期,.,9,1.2.3软件开发与测试模型下面我们将介绍几种典型的软件开发与测试模型。一、软件开发与测试V模型在传统开发过程中测试不受重视,仅把它作为在需求分析、概要设计、详细设计及编码之后的一个阶段。尤其在瀑布模型中。如图1-2所示,在V模型中,描述了一些不同的测试级别,并说明了这些级别所对应的生命周期中不同的阶段,清楚地描述了这些测试阶段和开发过程期间的对应关系。,.,10,图1-2V模型示意图,.,11,V模型适用于所有类型的开发过程,但并不一定适用于开发和测试过程的所有方面。二、软件开发与测试W模型由于各种原因,开发的每一个环节都可能产生错误,如果坚持各个阶段的技术评审,就能够尽早发现和预防错误。图1-3为软件开发与测试的W模型,形象地说明了软件测试与开发的这种同步性。,.,12,图1-3W模型示意图,.,13,应用该模型的优点在于,每个软件开发活动结束后就可以执行相应的测试,如:在需求分析结束后,就可以进行需求分析测试。三、软件开发与测试H模型与前两种模型相比,H模型充分地体现了测试过程。如图1-4所示的H模型揭示了:1、软件测试不仅仅指测试的执行,还包括很多其他的活动。2、软件测试是一个独立的流程,贯穿产品的整个开发周期,与其它流程并发进行。3、软件测试要尽早准备,尽早执行。,.,14,图1-4H模型示意图,4、软件测试根据被测物的不同是分层次的.不同层次的测试活动可以是按照某个次序先后进行的,但也可能是反复的。,.,15,1.2.4与软件测试相关的术语1.错误(Error)程序员在编写代码时会出错,我们把这种错误称之为bug。随着开发过程的进行,错误会不断的放大。2.缺陷(Default)缺陷是错误的结果,更精确的说是错误的表现。3.失效(Failure)在缺陷运行时,常常会发生失效的情况。一种是过错缺陷对应的失效;一种是遗漏缺陷对应的失效。4.测试(Test)测试是一项采用测试用例执行软件的活动,在这项活动中某个系统或组成的部分将在特定的条件下运行,然后要观察并记录结果,以便对系统或组成部分进行评价。,.,16,5.测试用例(TestCase)测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。6.回归测试(Regressiontesting)回归测试的目的是为了测试由于修正缺陷而更新的应用程序,以确保彻底修正了上一个版本的缺陷,并且没有引入新的软件缺陷。1.3软件测试技术分类从不同的角度,可以把软件测试技术分成不同种类,如:一、从是否需要执行被测软件的角度,可分为静态测试和动态测试。,.,17,那些不利用计算运行被测程序,而是通过其他手段达到测试目的的方法称作静态测试。下面我们对这几种静态测试分别加以介绍:代码检查代码走查桌面检查同行评分下面我们将要介绍的黑盒测试和白盒测试就属于动态测试。二、从软件测试用例设计方法的角度,可分为黑盒测试(Black-BoxTesting)和白盒测试(White-BoxTesting)。,.,18,三、按照软件测试的策略和过程分类,软件测试可分为单元测试(UnitTesting)、集成测试(IntegrationTesting)、确认测试(ValidationTesting)、系统测试(SystemTesting)和验收测试(VerificationTesting)。1.4软件测试的目的测试真正的目的是使我们通过对软件错误的原因和分布进行归纳,来发现并排除当前软件产品的缺陷,对在需求和设计过程中存在的问题查缺补漏,从而确保软件产品的质量。,.,19,GMyers给出了关于测试的一些规则,我们也可以把这些规则看作是测试的目标:1)软件测试是为了发现错误而执行程序的过程。2)测试是为了证明程序有错,而不是证明程序无错。3)一个好的测试用例在于他能发现至今未发现的错误。4)一个成功的测试是发现了至今未发现的错误的测试。这里要强调的一点是,软件测试不只是软件测试人员的工作,也是软件开发人员和软件使用者的工作。,.,20,1.5软件测试的原则1.5.1尽早地和不断地进行软件测试IBM的研究结果表明,缺陷存在放大趋势。图1-5表示了缺陷放大模型大致状况。,图1-5缺陷放大模型,由此可见,问题发现越早,解决问题的代价就越小,这是软件开发过程中的黄金法则。,.,21,1.5.2不可能完全的测试对一个程序进行完全测试就是意味着在测试结束之后,再也不会发现其它的软件错误了。其实,这是不可能的,主要原因有以下几点:一、不可能测试程序对所有可能输入的响应。二、不可能测试到程序每一条可能的执行路径三、无法找出所有的设计错误四、不能采用逻辑来证明程序的正确性,.,22,1.5.3增量测试,由小到大,图1-7测试资源关系图,.,23,由小到大,指的是软件测试的粒度。无论是传统的软件测试还是面向对象的软件测试都要遵循这样的原则。如图1-7所示,多个单元组合过渡到集成测试阶段,集成测试阶段过渡到更高级别的系统测试阶段,虚线是各个测试阶段的发布基线。随着测试的逐步深入,范围的逐步扩大,测试时间、可用资源也随之增大。1.5.4避免测试自己的程序避免程序员测试自己的代码的主要原因归纳如下:1.程序员轻易不会承认自己写的程序有错误。,.,24,2.程序员的测试思路有局限性,在做测试时很容易受到编程思路的影响。3.多数程序员没有严格正规的职业训练,缺乏专业测试人员的意识。4.程序员没有养成错误跟踪和回归测试的习惯.1.5.5设计周密的测试用例软件测试的本质就是针对要测试的内容确定一组测试用例。测试用例至少应该包括如下几个基本信息:1、在执行测试用例之前,应满足的前提条件。2、输入(合理的、不合理的)。,.,25,3、预期输出(包括后果和实际输出)。图1-8显示了一个典型的测试用例所应该具有的基本信息。,图1-8典型的测试用例信息,.,26,测试用例是测试工作的核心,应该尽量设计的周密细致,这样才能更好的保证测试工作的质量。下面举例来说明这一点。以一个实现登录功能的小程序为例,它允许用户选择城市和地区,输入自己的账号和密码。如图1-9所示,通过Alt-F4组合键和“Exit”按钮来终止程序,Tab键在区域中间移动。,.,27,图1-9登录窗口,下面根据组成页面的具体元素,分别从几个方面做了一些比较全面的测试用例:,.,28,1.下拉框和输入框测试用例表1-1下拉框和输入框测试用例,.,29,2、功能测试(表1-2功能测试用例),.,30,3、各种错误数据的测试表1-3错误数据的测试用例,.,31,4、特殊测试表1-4特殊测试用例,.,32,1.5.6注意错误集中的现象软件缺陷的“扎堆”现象的常见形式:1、对话框的某个控件功能不起作用,可能其他控件的功能也不起作用。2、某个文本框不能正确显示双字节字符,则其他文本框也可能不支持双字节字符。3、联机帮助某段文字的翻译包含了很多错误,与其相邻的上下段的文字可能也包含很多的语言质量问题。4、安装文件某个对话框的“上一步”或“下一步”按钮被截断,则这两个按钮在其他对话框中也可能被截断。,.,33,1.5.7确认BUG的有效性有时候测试人员提交的BUG并不是真正的BUG。图1-10具体地描述了无效BUG的来源。一般由A测试人员发现的BUG,一定要由另外一个B测试人员来进行确认,如果发现严重的BUG可以召开评审会进行讨论和分析。,图1-10无效BUG来源构成图,.,34,1.5.8合理安排测试计划合理的测试计划有助于测试工作顺利有序地进行,因此要求在对软件进行测试之前所作的测试计划中,应该结合了多种针对性强的测试方法、列出所有可使用资源,建立一个正确的测试目标;要本着严谨、准确的原则,周到细致地做好测试前期的准备工作,避免测试的随意性。尤其是要尽量科学合理地安排测试时间。,.,35,图1-11错误依赖关系,1.5.9回归测试,.,36,这些错误之间存在单纯的依赖或者复杂的多重依赖关系,如图1-11所示。其中,(a)图中的A、B关系表达为:A错误依赖于B错误的关闭而关闭。如果多了一条路径(如(b)图中A、B、C关系),A错误依赖于B错误和C错误的同时关闭而关闭。(c)图是(a)和(b)的复合方式,因程序中的错误存在着一对多,多对多的复杂关系而变得难以处理,并且有些错误关联和依赖关系处于隐性状态。1.5.10测试结果的统计和分析只有对这些输出信息进行深入地统计、分析和比较,才能够正确的鉴别测试后输出的数据,给出清晰的错误原因分析报告。当输出的信息很庞大时,我们可以借助专业的测试工具。,.,37,1.5.11及时更新测试事实上,有可能导致测试失败的原因还有很多,可大致归纳为如下几点:1、测试团队管理者失职;2、测试团队中沟通不好;3、测试团队和项目团队沟通不良;4、测试过程中,执行角色无准确定义;5、测试团队缺乏良好的培训。,.,38,1.6软件测试工作流程一般的软件测试总体工作流程如图1-12所示:,图1-12软件测试工作总体流程图,.,39,1、需求阶段需求阶段是软件测试活动的前提。需求阶段测试工作流程如图1-13所示:,图1-13需求阶段测试活动流程图,.,40,2、设计防止带地线合刀闸2、防止带负荷拉合隔离开关;3、防止带电挂接地线或接地刀闸;4、防止带接地线或合接地刀闸送电;5、防止误入带电间隔,.,49,1.8.2系统运行环境客户端平台:windows98/2000、windowsNTworkstation、Linux等所有具有支持JAVA的浏览器系统;服务器端平台:windows2000server、windowsNTServer、Linux、UNIX等所有支持JAVABean的系统平台;数据库服务器:Oracle数据库或SQLServer2000数据库或ACCESS数据库。Web服务器:Tomcat5.0,.,50,1.8.3系统总体结构两票系统主要由两部分构成,即:操作票子系统和工作票子系统。整个系统的总体结构如图1-16所示:1.8.4系统功能(略),图1-16两票系统总体结构图,.,51,本章小结本章介绍了软件测试发展的历程,以及其在国内的发展状况。随着软件开发过程和开发技术的不断改进,软件测试理论和方法也在不断完善,测试工具也在蓬勃发展。通过本章的论述,可以了解到软件测试已经不再只是进行简单的程序逻辑检查,而是一个伴随着整个软件开发过程的活动。测试对象也不仅仅是程序代码,而开发过程中产生的所有软件产品,甚至是产品使用说明也包括在内。测试过程中为了更好的保证软件测试的质量,首先要遵循一定的测试原则,最为重要的就是应该尽早的进行测试。,.,52,其次,正确处理开发与测试之间的关系,更好的把开发与测试过程集成到一起。从而提高测试效率,节约测试成本。本章所介绍的几种软件开发与测试模型,如:V模型、W模型和H模型,三种模型在不同程度上反映了软件开发与软件测试的关系。其中,V模型非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了测试和开发过程中各阶段的对应关系。而W模型作为V模型的改进,更好地体现了软件开发与软件测试工作的同步性,更为明确地指出测试的对象不仅仅是程序本身,而且包括需求分析、概要设计和详细设计说明书,强调了软件测试是软件开发过程中的一项重要的工作,贯穿于整个软件开发过程。,.,53,H模型则从微观的角度来看待软件测试过程。最后一个做好测试工作的关键因素就是精心的组织和安排软件测试的工作流程,本章把测试工作分为几个阶段,分别阐述了通用的测试工作流程,但要求读者在工作中,根据每个项目的具体情况制定可行的测试流程。各种测试技术是软件测试工作的敲门砖,本章从不同的角度介绍了软件测试技术的分类。从是否需要执行被测软件的角度,可分为静态测试(StaticTesting)和动态测试(DynamicTesting);,.,54,从测试用例设计的角度,可分为黑盒测试和白盒测试;按照软件测试过程和测试策略,可分为单元测试、集成测试和系统测试。另外,本章还专门介绍了目前在实际工作中对软件测试的错误认识,希望读者能够明确软件测试的目的,正确的认识软件测试工作的必要性和重要性。,.,55,习题名词解释:软件测试错误缺陷失效测试用例回归测试静态测试动态测试黑盒测试白盒测试单元测试集成测试系统测试简述软件测试发展的过程。从不同角度描述软件测试的现状。测试的生命周期可以分为几个阶段?简单描述各阶段需要完成的任务。什么是V模型?简述V模型在软件测试过程中的作用,以及在V模型中各个测试阶段和开发过程的对应关系。,.,56,请概括一下静态测试和动态测试,以及黑盒测试与白盒测试的不同点。分别描述一下,需求阶段、设计容易对错误进行定位。5缺点直到最后一个模块加进去之后才能看到整个系统的框架;只有到测试过程的后期才能发现时序问题和资源竞争问题;驱动模块的设计工作量大;不能被及时发现高层模块设计上的错误。6适用范围,.,188,底层模块接口比较稳定的产品;高层模块接口变更比较频繁的产品;底层模块开发和单元测试工作完成较早的产品。二、三明治集成目的:综合利用自顶向下和自底向上两中集成测试策略的优点。定义:三明治集成是一种混合增殖式测试策略,综合了自顶向下和自底向上两种集成方法的优点,因此也属于基于功能分解集成。,.,189,3、方法首先,确定以哪一层为界来决定使用三明治集成策略(在4-7中,我们确定以B模块为界);其次,对模块B及其所在层下面的各层使用自底向上的集成策略;,图4-7三明治集成策略示意图,.,190,再次,对模块B所在层上面的层次使用自顶向下的集成策略;然后,把模块B所在层各模块同相应的下层集成;最后,对系统进行整体测试。4优点除了具有自顶向下和自底向上两种集成策略的优点之外,运用一定的技巧,能够减少了桩模块和驱动模块的开发。5缺点在被集成之前,中间层不能尽早得到充分的测试。,.,191,6适用范围多数软件开发项目都可以应用此集成测试策略。三、修改过的三明治集成目的充分发挥测试的并行性,弥补三明治集成中不能充分测试中间层的缺点。2.定义(略)3.方法并行测试目标层,目标层上面一层,目标层下面一层。并行测试目标层与目标层上面一层的集成和目标层与目标层下面一层的集成。,.,192,4.优点具有三明治集成的所有优点,且对中间层能够尽早进行比较充分的测试;该策略的并行度相对比较高。5.缺点中间层如果选择不适当,可能会增加驱动模块和桩模块工作量的设计负担。6.适用范围大多数软件开发项目。四、基于调用图的集成基于调用图的集成方式有两种,即:成对集成和相邻集成。,.,193,1、成对集成成对集成的思想就是免除桩/驱动器开发工作,使用实际代码来代替桩/驱动器。成对集成的方法就是对应调用图的每一个边建立并执行一个集成测试会话。2、相邻集成这里的相邻是针对节点而言的,节点的邻居就是由给定节点引出的节点集合。在有向图中,节点邻居包括所有直接前驱节点和所有直接后继节点。五、基于路径的集成首先,我们来看一下与基于路径的集成相关的几个概念:,.,194,1.源节点程序中的源节点是指程序执行开始或重新开始处的语句片断。2汇节点汇节点是程序执行结束处的语句片断。这里转移控制到其它单元的节点也是汇节点。3模块执行路径模块执行路径是以源节点开始、以汇节点结束的一系列语句,中间没有插入汇节点。在图4-12中有七条模块执行路径:MEP(A,1)=1,2,3,6MEP(A,2)=1,2,4MEP(A,3)=5,6MEP(B,1)=1,2,.,195,MEP(B,2)=3,4MEP(C,1)=1,2,4,5MEP(C,1)=1,3,4,54.消息消息是一种程序设计语言机制,通过这种机制可以把控制从一个单元转移到另一个单元。5、MM-路径是穿插出现模块执行路径和消息的序列。如图4-12中的粗线所示,代表模块A调用模块B,模块B调用模块C,这就是一个MM-路径,可用图4-13表示。对于传统软件来说,MM-路径永远是从主程序开始,在主程序中结束。,.,196,图4-12跨三个单元的MM-路径,.,197,图4-13从图4-12中导出的MM-路径图,.,198,六、分层集成目的通过增量式集成的方法验证一个具有层次体系结构的应用系统的稳定性和可互操作性。介绍分层集成就是针对通信系统中的分层模型使用的一种集成策略。3策略分层集成的具体步骤如下:划分系统的层次;确定每个层次内部的集成策略。确定层次间的集成策略。,.,199,优点其优点与其使用的层间集成测试策略类似。缺点其缺点与其使用的层间集成测试策略类似。适用范围有明显线性层次关系的产品系统。七、基于功能的集成目的采用增值的方法,尽早地验证系统关键功能。介绍,.,200,从功能实现的角度出发,按照模块的功能重要程度组织模块的集成顺序。3策略基于功能的集成策略具体如下:确定功能的优先级别;分析优先级最高的功能路径,把该路径上的所有模块集成到一起,必要时使用驱动模块和桩模块;增加一个关键功能,继续步骤2,直到所有模块都被集成到被测系统中。4优点直接验证系统中主要功能,最早地确认所开发的系统中关键功能得以实现;,.,201,测试过程比三明治策略所用时间短;验证接口的正确性时,为覆盖接口使用的实例相对要少;可以减少驱动模块的开发,只要设计和维护一个顶层模块的驱动器。5缺点不适用复杂系统;对于部分接口测试不充分,容易漏掉大量接口错误;集成测试开始的时候需要大量的桩模块的设计;容易出现相对大的冗余测试。,.,202,6适用范围主要功能具有较大风险性的产品;探索型技术研发项目;注重功能实现的项目;对于所实现的功能信心不强的产品。八、高频集成目的频繁地向一个已经稳定的基线中添加新的代码,避免遗留集成故障,同时控制可能出现的基线(Baseline)偏差。2.介绍使用高频集成需要具备的条件如下:,.,203,可以获得一个稳定的增量,并且已经完成的某子系统已经通过测试证明不存在错误;大部分有意义的功能增加可以在一个恰当的频率间隔内获得;测试包和代码并行开发,保证维护的是最新的版本;使用自动化,例如采用GUI的捕获/回放工具;使用配置管理工具,实际上是对版本的增量或变更进行维护。策略,.,204,高频集成有3个主要的步骤,具体如下:开发人员完成要提供的代码的增量部分,同时测试人员完成相关的测试包。集成测试人员将开发人员修改或增加的组件集中起来形成一个新的集成体,并且在上面运行集成后的测试包。评价结果。4.优点高效性。可预测性。并行性。,.,205,对桩代码的需要不是必须的,这可以避免编写和维护容易损坏的测试代码;尽早查出错误。容易进行错误定位。5缺点测试包可能会过于简单,不容易发现有价值的问题;初始阶段不能平稳地进行集成;如果没有适当的标准做保证,成功的集成可能导致不应有的可信度,增加系统的风险性。6.适用范围应用迭代(或增量)过程模型开发的产品。,.,206,九、基于进度的集成目的尽可能早地进行集成测试,提高开发与集成的并行性,有效地缩短进度。介绍基于进度的集成就是在兼顾进度和质量两者之间寻找了一个均衡点。3策略(略)优点具有比较高的并行度;能够有效缩短项目开发的进度。,.,207,5.缺点可能最早拿到的模块之间缺乏整体性,只能进行独立的集成,导致许多接口必须等到后期才能验证,但此时系统可能已经很复杂,往往无法发现有效的接口问题;桩模块和驱动模块的工作量可能会变得很庞大;由于进度的原因,模块可能很不稳定且会不断变动,导致测试的重复和浪费。适用范围进度优先级高于质量的项目。十、基于风险的集成,.,208,目的尽可能提早验证高危模块间的接口,从而保证系统的稳定性。介绍在软件系统中,风险最高的模块间的集成往往是错误集中的地方,因此尽早地验证这些接口有助于系统的稳定,从而增强对系统信心。3策略(略)优点可以对最具有风险的模块提前进行验证,有利于系统的快速稳定开发。缺点,.,209,需要花费额外的测试成本,对各组件的风险进行详细的分析。适用范围在应用软件项目中,有一些模块具有较大的风险。十一、基于事件的集成目的基于事件的集成,又称基于消息的集成。该方法是从验证消息路径的正确性出发,渐增式地把系统集成到一起,从而验证系统的稳定性。介绍验证消息路径的正确性对于嵌入式系统和面向对象系统具有比较重要的作用,,.,210,基于消息/事件/线程的集成就是针对这种特点而设计的一种策略。策略从系统的外部分析,判断系统可能输入的消息集;选取一条消息,分析其穿越的模块;集成这些模块进行消息接口测试;选取下一条消息,重复步骤2和3,直到所有模块都被集成到系统中;我们在选择消息的时候可以从不同角度出发,具体如下:,.,211,a、消息的重要性:尽早验证重要的消息路径;b、消息路径的长度:为了能有效验证消息接口的完整性和正确性,尽可能选取路径较短的消息;c、新的消息的选择是否能够使得新的模块被加入到系统中。4.优点a)直观性强,直接验证系统中关键功能;b)相对耗时少,因此测试过程比三明治策略所用时间少。c)验证接口的正确性时,为覆盖接口使用的实例相对要少;,.,212,d)避免大量设计驱动模块,只要设计和维护一个顶层模块的驱动器。缺点不适用功能之间的相互关联性强、不易于分析主要模块的系统;部分接口测试不完全,忽略大量接口错误;设计桩模块工作量大;容易出现相对大的冗余测试。适用范围面向对象系统;基于有限状态机的嵌入式系统。,.,213,十二、基于使用的集成1.目的针对面向对象系统,根据类之间的依赖关系来集成系统,从而验证系统的稳定性。2.介绍基于使用的集成从分析类之间的依赖关系出发,通过从对其它类依赖最少的类开始集成,逐步扩大到有依赖关系的类,最后集成到整个系统中。通过该集成方法,可以验证类之间接口的正确性。3策略划分类之间的耦合关系;首先测试独立的类;,.,214,其次测试使用一些服务器类的类;最后逐步增加具有依赖性的类(即使用独立类的类),直到整个系统被集成到一起。4.优点与自底向上集成的优点类似。5.缺点与自底向上集成的缺点类似。6.适用范围面向对象软件系统。十三、客户/服务器的集成,.,215,1.目的验证客户和服务器之间交互的稳定性。2.介绍对于和单独的服务器组件进行松散耦合的客户端组件,可以使用客户/服务器集成来完成。在这个模型中,不存在单独的控制轨迹。3.策略单独测试每个客户端和服务器端,必要时使用驱动模块和桩模块;把第一个客户端或客户端组与服务器进行集成;把下一个客户端或客户端组与上一个完成的系统进行集成;,.,216,重复步骤3直到系统中所有客户端都被加入到系统中。4.优点避免了大爆炸集成的风险;集成次序没有大的约束,可以结合风险或功能优先级进行;有利于复用和扩充;支持可控制和可重复的测试。5.缺点在集成过程中,需要大量的驱动模块和桩模块,因此相对其它集成策略而言需求量要大一些。,.,217,6.适用范围客户/服务器结构的系统。4.2.3集成测试环境在搭建集成测试环境时,可以从以下几个方面进行考虑:1、硬件环境2、操作系统环境3、数据库环境4、网络环境5、测试工具运行环境6、其它环境图4-14显示了两票系统的集成测试环境,.,218,图4-14两票系统测试环境示意图,.,219,4.2.4集成测试用例设计一、为系统运行设计的用例可使用的主要测试分析技术:1、等价类划分2、边界值分析3、基于决策表的测试二、为正向测试设计用例作为正向集成测试的一个重点就是验证这些集成后的模块,按照设计实现了预期的功能。基于这样的测试目标,我们可以直接根据概要设计文档导出相关的用例。,.,220,可使用如下几种主要测试分析技术:1、输入域测试2、输出域测试3、等价类划分4、状态转换测试5、规范导出法在集成测试中的逆向测试包括分析被测接口是否实现了需求规格没有描述的功能,检查规格说明中可能出现的接口遗漏或者判断接口定义是否有错误,以及可能出现的接口异常错误,包括接口数据本身的错误,接口数据顺序错误等。,.,221,可使用的主要测试分析技术:错误猜测法基于风险的测试基于故障的测试边界值分析特殊值测试状态转换测试四、为满足特殊需求设计用例在大部分软件产品的开发过程中,模块设计文档就已经明确地指出了接口要达到的安全性指标、性能指标等,此时我们就应该在对模,.,222,块进行单元测试和集成测试阶段就开展对满足特殊需求的测试,为整个系统是否能够满足这些特殊需求把关。可使用的主要测试分析技术:规范导出法。五、为高覆盖设计用例与单元测试所关注的覆盖重点不同,在集成测试阶段我们关注的主要覆盖是功能覆盖和接口覆盖,通过对集成后的模块进行分析,来判断哪些功能以及哪些接口没有被覆盖到来设计测试用例。可使用的主要测试分析技术:1.功能覆盖分析2.接口覆盖分析,.,223,六、测试用例补充在软件开发的过程中,难免会因为需求变更等原因,会有功能增加、特性修改等情况发生,因此我们不可能在测试工作的一开始就100%完成所有的集成测试用例的设计,这就需要在集成测试阶段能够及时跟踪项目变化,按照需求增加和补充集成测试用例,保证进行充分的集成测试。七、注意事项在集成测试的过程中,我们要注意考虑软件开发成本、进度和质量这三个方面的平衡。不能顾此失彼,也就是说要重点突出(在有限的时间内进行穷尽的测试是不可能的)。,.,224,4.2.5集成测试过程根据集成测试不同阶段的任务,可以把集成测试划分为5个阶段:计划阶段,设计阶段,实施阶段,执行阶段,评估阶段。如图4-15所示。,图4-15集成测试过程,.,225,一、计划阶段一般安排在概要设计评审通过后大约一个星期的时候,参考需求规格说明书、概要设计文档、产品开发计划时间表来制定。二、设计阶段一般在详细设计开始时,就可以着手进行。可以把需要规格说明书、概要设计、集成测试计划文档作为参考依据。三、实施阶段在实施的过程中,我们要参考需求规格说明书、概要设计、集成测试计划、集成测试设计等相关文档来进行。,.,226,四、执行阶段只要所有的集成测试工作准备完毕,测试人员在单元测试完成以后就可以执行集成测试。五、评估阶段当集成测试执行结束后,要召集相关人员对测试结果进行评估,确定是否通过集成测试。4.2.6集成测试举例(略)4.3集成测试经验总结集成测试界于单元测试和系统测试之间,不易正确理解和把握。因此,有些项目在开发过程中使用调试的手段把模块或子系统一个一,.,227,个集成起来,并用这种办法来替换集成测试,而忽略了正规的集成测试,致使软件中存在很多隐患,从而无法保证质量。根据以往项目开发和测试的实践,总结了如下几条集成测试的经验:1.根据概要设计尽早进行集成测试计划;2.要根据项目的实际情况制定一些覆盖率标准,从而根据覆盖率标准来设计足够多的测试用例。然后通过覆盖率分析来衡量集成测试的充分性,补充测试用例,最终使软件质量得到保证;3.在选择集成测试策略时,应当综合考虑软件质量、开发成本和开发进度这三个因素之间的关系;,.,228,4.要根据软件的体系结构特点,来选取集成测试策略,尽可能减少桩模块和驱动模块开发的工作量,同时要兼顾是否容易进行软件缺陷定位。5.在测试时,可以根
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 豆类品种识别与质量控制考核试卷
- 电气设备批发商员工激励措施考核试卷
- 礼仪用品企业市场分析与预测模型应用考核试卷
- 稀土金属压延加工中的设备选型与采购策略考核试卷
- 材料老化分析考核试卷
- 棉织造行业人才培养与技能提升考核试卷
- 认证认可ISO健康与安全管理考核试卷
- 跨国财产申报风险管理与合同
- 知识产权评估与产业政策对接协议
- 创新人才共有产权住房分割及交易合同
- 逆变器调试报告
- 消防控制室值班记录1
- 雷尼绍探头编程课件
- 市级优质公开课一元一次不等式组说课课件
- 婚前医学检查证明
- 妇科经带胎产杂99方方歌讲解学习
- 工艺变更通知单
- 一年级音乐教案 这是什么 (市一等奖)
- 20XX-烟草车辆运输方案计划
- 苏教版二年级下册数学竞赛试卷
- 晶体几何基础
评论
0/150
提交评论