收藏 分享(赏)

集成测试方法.ppt

上传人:tkhy51908 文档编号:7198127 上传时间:2019-05-09 格式:PPT 页数:14 大小:765.50KB
下载 相关 举报
集成测试方法.ppt_第1页
第1页 / 共14页
集成测试方法.ppt_第2页
第2页 / 共14页
集成测试方法.ppt_第3页
第3页 / 共14页
集成测试方法.ppt_第4页
第4页 / 共14页
集成测试方法.ppt_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、实用 软件测试方法与应用(集成测试),2006-9-19,第5章 集成测试,本章着重讲述集成测试的整个过程集成测试的基本理论、测试计划的编制、测试过程中的注意事项。集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)集成为子系统或系统,进行集成测试。,2006-9-19,5.1 集成测试基本理论,集成测试的目的和意义 考虑以下问题: 1.在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失; 2.各个子功能组合起来,能否达到预期要求的父功能; 3.一个模块的功能是否会对另一个模块的功能产生不利的影响; 4.全局数据结构是否有问题 5.单个模块的误差积

2、累起来,是否会放大,从而达到不可接受的程度。 要想发现并排除在模块连接中可能发生的上述问题,就需要进行集成测试。 集成测试有以下不可替代的特点: 单元测试具有不彻底性,对于模块间接口信息内容的正确性、相互调用关系是否符合设计无能为力。只能靠集成测试来进行保障。 同系统测试相比,由于集成测试用例是从程序结构出发的,目的性、针对性更强,测试项发现问题的效率更高,定位问题的效率也较高; 能够较容易地测试到系统测试用例难以模拟的特殊异常流程,从纯理论的角度来讲,集成测试能够模拟所有实际情况; 定位问题较快,由于集成测试具有可重复强、对测试人员透明的特点,发现问题后容易定位,所以能够有效地加快进度,减少

3、隐患。,2006-9-19,5.1.2 联调与集成测试的区别,集成和联调都是对系统模块的装配过程,只不过是两个级别的装配和集成过程。 集成测试是: 测试人员在开发人员的协助下,制定集成测试计划; 集成测试主要关注的是集成模块接口上消息的覆盖、异常流程、性能指标等深入的测试,集成测试不一定依赖于物理平台的支撑(如:机架); 集成测试是分层次的,某模块集成测试通过后,可以按照集成方案的策划开始着手下一个(组)模块或更高级别的模块的集成,即从(2)再开始,直至按照集成方案的要求将所有的部件集成完毕; 当按照集成测试计划全部完成后,就可以进行系统联调了 一般意义上,联调是指软件系统和硬件平台之间的联调

4、,联调完毕后,一个将交付的系统就搭建完成了,因此,联调可以说是更高级别的集成。 开发经理在开发测试相关人员的协助下,制定系统联调计划。 相关人员将已经经过集成测试软件系统和硬件平台集成在一起,构成将交付的系统,并调通该系统的基本功能特性,可以用系统与此项或联调方案所规定的检验方法确定基本功能特性是否实现,联调在系统联调环境上进行,是一个反复调试的过程; 在系统联调调通后,将系统联调调通后的版本提交系统预测试组进行系统预测试,系统预测试基于的系统预测试项是取自系统测试项的系统基本功能项,系统预测试的目的是确保提交一个可系统测试的版本。 在系统比较庞大、接口关系十分复杂的产品上,如果因争取时间或过

5、于自信的原因忽略集成,而直接跨越到联调,往往导致模块间接口问题难以发现或发现问题后查错十分困难,或反复更改模块内部代码和接口协议,造成语速则不达的后果。 完整的测试流程是:单元测试-集成测试-联调-系统预测试-系统测试,2006-9-19,5.1.3 集成测试、单元测试与系统测试的差别,由以上可以看出,整个软件系统的测试过程是:先对各个软件模块进行单元测试,然后把经过单元测试的各个模块组装起来进行集成测试,最后把经过集成测试的子系统合成软件版本,对照需求规格,在实际环境下,进行系统功能验证。,2006-9-19,5.2 集成测试的基本方案,一般来说,按测试过程中组合模块的方式,有两种不同的集成

6、方式:一次性集成方式和增值式集成方式。 1.一次性集成方式一次性集成方式是一种非增殖集成方式,也叫整体拼装。 按这种集成方式,首先对每个模块分别进行模块测试,然后再把所有模块集成在一起进行测试,最终得到要求的软件系统。例如,有一块系统结构,如图(a)所示,其单元测试和集成顺序如图(b)所示。(a) (b)模块d1、d2、d3、d4、d5是对各个模块做单元测试时建立的驱动模块,s1、s2、s3、s4、s5是为单元测试而建立的桩模块。这种一次性集成方式将所测模块连接起来进行测试,但是一次试运行成功地可能性并不大。其结果发现有错误,但茫然找不到原因,差错和改错都会遇到困难。,A,B,C,D,E,F,

7、d5,d4,d3,d2,d1,B,D,C,E,F,S1,S2,A,S5,S4,S3,A,D,C,B,F,E,2006-9-19,2.增殖式集成方式 增殖式集成方式也称为递增集成法,即逐次将未曾测试的模块和已测试的模块(或子系统)结合成程序包,然后将这些模块集成为较大系统,在集成的过程中边连接边测试,以发现连接过程中产生的问题。最后增殖逐步集成为要求的软件系统。 根据集成的过程又可以分为 自顶向下集成 自底向上集成 “三明治”集成法 定向冒险集成法 功能定向集成法等,2006-9-19,2.1 自顶向下的增殖方式 这种集成方式是将模块按系统的程序结构,沿控制层次自顶向下进行集成。 步骤: (1)

8、以主模块为所测模块兼驱动模块,所有直属于主模块的下属模块全部用桩模块对主模块进行测试。 (2)采用深度优先或宽度优先的策略,用实际模块替换相应桩模块,再用桩代替它们的直接下属模块,与已测试的模块或子系统集成为新的子系统。如下图 (3)进行回归测试(即重新执行以前做过的全部测试或部分测试),排除集成过程中引起错误的可能。 (4)判断是否所有的模块都已集成到系统中,是则结束测试,否则转到(2)去执行。1.在测试过程中较早地验证了主要的控制和断点。2.可以首先实现和验证一个完整的软件功能,可先对逻辑输入的分支进行集成和测试,检查和克服潜藏的错误和缺陷。3.功能可行性较早得到证实,还能给开发者和用户带

9、来成功地信心。,A,C,B,A,s3,s1,E,s2,s3,A,B,s4,s3,s2,A,E,s3,s2,B,A,D,C,B,S5,E,A,B,C,D,E,F,加入B,加入E,加入C,加入D,加入F,按深度方向组装,2006-9-19,自顶向下的集成和测试存在一个逻辑次序问题。在为了充分测试较高层的处理而需要较低层的处理信息时,就会出现这类问题。在自顶向下集成阶段,还需要用桩模块代替较低层的模块,所以关于桩模块的编写,根据情况可能有所不同,有如下几种选择。为了能够准确地实施测试,应当让桩模块正确而有效地模拟子模块的功能和合理的接口,不能是只包含返回语句或只显示该模块已调用信息、不执行任何功能的

10、哑模块。如果不能使桩模块正确地向上传递有用的信息,可以采用以下解决办法:(1)将很多测试推迟到桩模块用实际模块替代了之后进行;(2)进一步开发能模拟实际模块功能的桩模块;(3)自底向上集成和测试软件,桩模块stub A,桩模块stub D,桩模块stub C,桩模块stub B,显示跟踪信息,显示传递的信息,从一个表(或外部文件)返回一个值,进行一项表查询以根据输入参数返回输出参数,表示传递的数据消息,2006-9-19,2.2 自底向上的增殖方式 这种集成的方式是从程序模块结构的最底层的模块开始集成和测试。因为模块是自底向上进行集成,对于一个给定的模块,它的子模块(包括子模块的所有下属模块)

11、已经集成并测试完成,所以不再需要桩模块。自底向上增殖的步骤如下: (1)由驱动模块控制最底层模块的并行测试,也可以把最底层模块组合成实现某一特定软件功能的簇,由驱动模块控制它进行测试。 (2)用实际模块代替驱动模块,与它已测试的直属子模块集成为子系统。 (3)为子系统配备驱动模块,进行新的测试。 (4)判断是否已集成到达主模块,是否结束测试,否则执行(2)。 下图说明自底向上集成和测试的顺序:,d1,E,d2,C,d3,F,d4,D,B,d5,F,E,A,F,E,D,C,B,2006-9-19,自底向上进行集成和测试时,需要为所测模块或子系统编制相应的驱动模块。常见的几种类型的驱动模块如图所示

12、:随着集成层次的向上移动,驱动模块将大为减少。如果对程序模块结构的最上面两层模块采用自顶向下进行集成和测试,可以明显地减少驱动模块的数目,而且可以大大减少把几个系统集成起来所需要做的工作。,驱动程序 Driver A,驱动程序 Driver B,驱动程序 Driver C,驱动程序 Driver D,调用从属模块,从表(或外部文件)中传递参数,显示参数,兼有驱动程序B、C的功能,表示传送的参数信息,2006-9-19,优缺点自顶向下增殖的方式和自底向上增殖的方式各有优缺点。一般来讲,一种方式的优点是另一种方式的缺点。 1.自顶向下增殖方式的缺点是需要建立桩模块。要使桩模块能够模拟实际子模块的功

13、能十分困难,同时涉及复杂算法,真正输入/输出的模块一般在底层,他们是最容易出问题的模块,到测试和集成的后期才遇到这些模块,一旦发现问题导致过多的回归测试。优点是能够较早地发现在主要控制方面的问题。 2.自底向上增殖方式的缺点是“程序一直未能作为一个实体存在,直到最后一个模块加上去后才形成一个实体”。就是说,在自底向上集成和测试的过程中,对主要的控制直到最后才接触到。优点是不需要桩模块,而建立驱动模块一般比建立桩模块容易,同时由于涉及到复杂算法和真正输入/输出的模块最先得到集成和测试,可以把最容易出问题的部分在早期解决。此外,自底向上增值的方式可以实施多个模块的并行测试,提高测试效率。,2006

14、-9-19,2.3 混合增殖式测试,混合增殖式测试就是把以上两种方式结合起来进行集成和测试。这样可以兼具两者的优点 下面介绍3种常见的混合式增殖方式: (1)衍变的自顶向下的增殖方式:它的基本思想是强化对输入/输入模块和引入新算法模块的测试,并自底向上集成为功能相当完整且相对独立的子系统,然后由主模块开始自顶向下进行增殖测试。 (2)自底向上- 自顶向下的增殖测试:它首先对含读操作的子系统自底向上直至根结点模块进行集成和测试,然后对含写操作的子系统作自顶向下的继承与测试。 (3)回归测试:这种方式采取自顶向下的方式测试所修改的模块及其子模块,然后将这一部分视为子系统,再自底向上测试,以检查该子系统与其上级模块的接口是否匹配。在继承测试时,测试者应当确定关键模块,对这些关键模块及早进行测试。关键模块至少应具有以下几种特征之一: 1.满足某些软件需求; 2.在程序的模块结构中位于较高的层次(高层控制模块); 3.较复杂、较易发生错误; 4.有明显定义的性能要求。 在做回归测试时,也应该集中测试关键模块的功能,Thank You !,2006-9-19,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报