《软测》期末 集成测试

第五章 集成测试

5.1概述

5.1.1定义、目的、内容、检查方面
  • 定义:集成测试又称组装测试,是在单元测试的基础上,将所有模块按照设计要求组装成子系统或系统进行的测试活动。又称子系统测试、联合测试。
  • 目的:确保各单元组合在一起后能够按既定意图协作运行,并确保增量的行为正确。
  • 内容:包括单元间的接口以及集成后的功能,通常使用黑盒测试方法测试集成的功能。并具对以前的集成进行回归测试。
  • 检查方面:
    (1)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失。
    (2)一个模块的功能是否会对另一个模块的功能产生不利的影响。
    (3)各个子功能组合起来,能否达到预期要求的父功能。
    (4)全局数据结构是否有问题。
    (5) 单个模块的误差累积起来,是否会被放大,从而达到不能接受的程度。
    (6)在单元测试的同时可进行集成测试,发现并排除在模块连接中可能出现的问题,最终构成要求的软件系统。
5.1.2层次

由集成的力度不同,一般可以把集成测试划分为三个级别
(1)模块内集成测试。
(2)子系统内集成测试:先测试子系统内的功能模块,然后将各个功能模块组合起来确认子系统的功能是否达到预期要求。
(3)子系统间集成测试:测试的单元是子系统之间的接口。子系统是可单独运行的程序或进程。

5.1.3原则

(1)要测试所有的公共接口,尤其是那些与系统相关联的外部接口,测试的重点是要检查数据的交换、传递和控制管理过程,还包括处理的次数。
(2)必须对关健模块进行充分测试。
(3)集成测试应当按一定的层次进行。
(4)集成测试的策略选择应当综合考虑质量、成本和进度之间的关系。
(5)集成测试应当尽早开始,并以总体设计为基础。
(6)在模块与接口的划分上,测试人员应当和开发人员进行充分沟通。
(7) 测试执行结果应当被如实记录。

5.2集成测试策略

在这里插入图片描述

5.2.1非增量式
  • 对所有模块进行个别的单元测试后,按照程序结构图将各模块连接起来,把连接后的程序当作一个整体进行测试。
    •又叫大爆炸式集成(Big Bang)

  • 优点
    方法简单
    允许多测试人员同时并行工作,人力物力资源利用率较高

  • 缺点
    必须为每个模块准备相应的驱动模块和桩模块,测试成本较高
    一旦集成后包含多种错误,难以纠正。

  • 使用范围:适应于一个维护型或被测试系统较小的项目

在非增量式集成测试时,应当确定关键模块,对这些关键模块及早进行测试。

  • 关键模块的特征:
    ① 完成需求规格说明中的关键功能;
    ② 在程序的模块结构中位于较高的层次(高层控制模块);
    ③ 较复杂、较易发生错误;
    ④ 有明确定义的性能要求。
5.2.2增量式
  • 逐次将未曾集成测试的模块和已经集成测试的模块(或子系统)结合成程序包,再将这些模块集成为较大系统,在集成的过程中边连接边测试,以发现连接过程中产生的问题。

按照不同的实施次序,增量式集成测试又可以分为三种不同的方法:

5.2.2-1自顶向下增量式测试
  • 步骤:
    (1)主控模块作为测试驱动器。
    (2)根据集成的方式(深度或广度),下层的桩模块一次一次地被替换为真正的模块。
    (3)在每个模块被集成时,都必须进行单元测试。
    重复第2步,直到整个系统被测试完成。

a.深度优先方式
首先集成在结构中的一个主控路径下的所有模块,主控路径的选择是任意的。
在这里插入图片描述
b.广度优先
首先沿着水平方向,把每一层中所有直接隶属于上一层的模块集成起来,直到底层。
在这里插入图片描述

  • 优点
    较早地验证了主要控制和判断点;
    按深度优先可以首先实现和验证一个完整的软件功能;
    功能较早证实,带来信心;
    只需一个驱动,减少驱动器开发的费用;
    支持故障隔离。

  • 缺点
    桩的开发量大;
    底层验证被推迟;
    底层组件测试不充分

  • 适用范围
    •产品控制结构比较清晰和稳定;
    •高层接口变化较小;
    •底层接口未定义或经常可能被修改;
    •产品控制组件具有较大的技术风险,需要尽早被验证;
    •希望尽早能看到产品的系统功能行为。

5.2.2-2自底向上增量式测试
  • 从具有最小依赖性的底层组件开始,按照依赖关系树的结构,逐层向上集成,以检验系统的稳定性。
    •最常用的集成策略,其他方法都或多或少应用此种方法。

  • 步骤
    1)起始于模块依赖关系树的底层叶子模块,也可以把两个或多个叶子模块合并到一起进行测试
    2)使用驱动模块对步骤1选定的模块(或模块组)进行测试
    3)用实际模块代替驱动模块,与它已测试的直属子模块组装成一个更大的模块进行测试
    4)重复上面的行为,直到系统最顶层模块被加入到已测系统中

  • 优点
    对底层组件行为较早验证;
    工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;
    能较好锁定软件故障所在位置。

  • 缺点
    驱动的开发工作量大;
    对高层的验证被推迟,设计上的错误不能被及时发现。

  • 适用范围:
    适应于底层接口比较稳定;
    高层接口变化比较频繁;
    底层组件较早被完成。

5.2.2-3三明治增量式测试(混合增量式测试)
  • 混合式集成
    •把系统划分成三层,中间一层为目标层,目标层之上采用自顶向下集成,之下采用自底向上集成
    在这里插入图片描述
  • 步骤
    (1)首先对目标层之上一层使用自顶向下集成,因此测试A,使用桩代替B,C,D
    (2)其次对目标层之下一层使用自底向上集成,因此测试E,F,使用驱动代替B,D
    (3)其三,把目标层下面一层与目标层集成,因此测试(B,E),(D,F),使用驱动代替A
    (4)最后,把三层集成到一起,因此测试(A,B,C,D,E,F)
  • 优点
    集合了自顶向下和自底向上两种策略的优点
  • 缺点
    中间层测试不充分
  • 适用范围
    适应于大部分软件开发项目

在这里插入图片描述
在这里插入图片描述

5.3集成测试步骤

5个阶段:计划、设计、实施、执行、评估
在这里插入图片描述
在这里插入图片描述

5.3.1制定集成测试计划
5.3.2集成测试设计和分析
5.3.3集成测试实施
5.3.4集成测试执行

5.4习题

1.对如下结构采用自顶向下深度优先策略进行测试

在这里插入图片描述

2.画图给出集成测试的步骤(自顶向下,自底向上)

在这里插入图片描述

  • 8
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值