软件集成测试策略和方法文件编号文件状态[]草稿[]正式发布[]正在修改当前版本拟制日期审核日期批准日期修订历史记录A-增加M-修订D-删除变更版本号日期变更类型(A*M*D)修改人摘要备注目录1引言........................................................................................................................................41.1目的.........................................................................................................................................41.2范围.........................................................................................................................................42集成测试策略和方法......................................................................................................42.1测试设计技术与策略.............................................................................................................42.2自顶向下方法.........................................................................................................................42.3自底向上方法.........................................................................................................................52.4“三明治”方法..........................................................................................................................51引言1.1目的指导软件项目组进行有效的系统集成测试。1.2范围本指南适合公司软件开发部的所有软件项目。2集成测试策略和方法2.1测试设计技术与策略进行软件集成测试的测试用例包括白盒法、黑盒法等多种设计技术。软件集成也有多种不同的策略。这些策略总的来说可以分为两种:A)非增量方式先测试好每一个软件单元,然后依次集成在一起再测试整个程序。本方式是一种很直接、原始的集成方式,它把所有通过单元测试的模块一块儿地全部集成在一起,直接集成为软件系统,并对它进行测试。采用这种方式的原因是期望它可以带来方便的、快捷的集成效果。但这种方法遭到广大测试专家的批评,普遍认为它会引起混乱,且难以确定错误源的位置。B)增量方式逐步把一个要被集成的软件单元或部件,同已测试好的软件部件结合起来测试。增量方式主要包括自顶向下、自底向上、自顶向下与自低向上相结合等方式。增量方式的优点是:占用人工少;可以较早发现模块接口错误;容易排错;测试效果好,比较彻底。增量方式的优点:占用机器时间少;有利于并行开发。2.2自顶向下方法自顶向下集成法是一个模块一个模块地集成软件的方法。按照控制的结构,从主控模块开始,向下地逐个把模块连结起来。把附属于主控模块的子模块等集成起来的方式有“深度优先”与“宽度优先”两种集成方法。A)深度优先法:先把结构中的一条主要的控制路径上的全部模块逐步集成起来(主要路径的选择与特定的应用特性有关,多少带有主观随意性。)然后再连接其它的控制路径。B)宽度优先法:是从结构的顶层开始逐层往下集成。集成的过程可以分为以下五个步骤:主控模块用作测试驱动器。直接附属于主控模块的各模块全部用桩模块代替。按所选的集成法(即深度优先法或宽度优先法)每次用一个真模块取代一个附属的桩模块。当装入每一个真模块时都要进行测试。作完每一组测试后又再用一个真模块代替另一个桩模块。可以进行回归测试(即重新再作过去作过的全部或部分测试),以便肯定没有新的错误发生。2.3自底向上方法自底向上集成方法是从软件结构中最底层的、最基本的软件单元开始进行集成和测试。这样,在逐步向上集成过程中下层模块总是存在的,也就是不再需要桩模块了,但却需要调用这些模块开展工作的驱动模块。自底向上集成可以按下列步骤实施:1、低层的模块组成簇,以执行某个特定的软件子功能。2、编写一个驱动模块作为测试的控制程序,和被测试的簇连在一起,负责安排测试用例的输入输出。3、对簇进行测试。拆去各个小簇的驱动模块,把几个小簇合并成大簇,再重复做1、2及3步。这样按软件结构逐步向上集成。2.4“三明治”方法自顶向下测试的主要优点是能较早显示出整个程序的轮廓。主要缺点是,当测试上层模块时使用桩模块较多,很难模拟出真实模块的全部功能,部分测试内容被迫推迟,直至换上真实模块后再补充测试。自底向上测试从下层模块开始,设计测试用例比较容易,但是在测试的早期不能显示出程序的轮廓。针对自顶向下、自底向上方法各自的优点和不足,人们提出了自顶向下和自底向上相结合,从两头向中间逼近的混合时集成方法,被形象地称之为“三明治”方法。其具体步骤为:A)对上层模块采取自顶向下测试;B)对关键模块或子系统采取自底向上测试。C)混合式的“三明治”方法,综合了自顶向下、自底向上两种方法的长处。