2020.11.27集成测试

复习

单元测试 针对代码 主要用白盒测试技术 函数 类 几个函数合并成一个单元

静态测试 检查代码

动态测试 针对独立路径或判定设计用例

Junit5 使用注解的方式

@Test

@BeforeEach//每一个测试方法之前都执行一次

@Beforeall // 只执行一次

@After… 静态方法

参数化 把数据元 放到一个文件里 如果多个参数 可以用csv写多个列

断言 : 比较实际结果与预期结果

批量执行测试类 一般都是以test来结尾

集成测试

​ 集成测试是在单元测试结束后,将所有已通过的单元测试模块按照设计要求组装为***子系统或系统*** 并进行测试

目的是 确保各单元模块组合在一起 后能按照 既定意图协作运行

1.1集成测试内容

​ 将模块组装起来,检查穿越模块接口的数据是否会丢失。

​ 判断子功能是否实现父功能

​ 单个模块的误差是否放大到不可接受

1.2集成测试的方法

(1)成对测试

将每个测试用例限定在一对调用单元上

Ø基本思想:将每个集成测试用例限定在一对调用单元上,每个集成测试用例都是最小的集成单元,仅涉及一对调用的接口

Ø测试用例设计:两个典型的模块成对集成

Ø规模估算:共m个模块,n条边,因每条边对应一对调用接口,确定一个成对测试用例,因此包含n个测试用例

特点

驱动模块 是 上级模块

桩模块 是 下级模块

中间的部分既需要 驱动模块 和 桩模块

优势 容易定位缺陷

劣势 用例数较多

(2)邻居集成

与该模块涉及到的 所有上级模块 和 下级模块(邻居)

特点

减少测试用例 导致定位缺陷比较困难

(3)基于独立路径的测试

函数控制流图 来找独立路径

这个用到了思想 这个是依据函数调用图(涉及多个模块)

增加一个 虚拟出口 switch 4个分支的可以判断 成 3个判定节点1

特点

不需要开发桩模块和驱动模块但定位更加困难

2.集成测试的遍历顺序

2.1大爆炸集成

将所有经过单元测试的模块一起测

达到用例规模的最小化

优点:测试规模小

缺点:缺陷难以定位

适用场景:稳定的软件版本,只修改其中的一个模块,或涉及的模块和接口数量不多

2.2自顶向下集成

1、对根节点进行集成测试,所有被根节点直接调用的模块均用桩模块来代替。

2、根据选择的推进策略,用实际模块替换桩模块,并用新的桩模块代替新加入的模块。

深度优先 :先测根节点 然后测下级直到下级没有了

优点

有助于早期实现并验证系统主要功能

l优先从根节点开始测试,有助于早期实现并验证系统主要功能,给开发团队和用户带来成功的信心,也便于早期验证主要的控制和判断,避免主控程序的缺陷,确保开发进度

l单个测试用例包含多个模块,可从整体上降低测试用例规模

l采用递增方式展开测试,每个新的测试用例一般仅加入一个新的模块,便于缺陷定位

不足

l桩模块的开发和维护工作量较大

l难以早期发现底层模块中复杂算法的缺陷,且随着测试的进行,系统越来越复杂,底层模块的测试很难保证充分性

l不利于测试的并行,难以充分展开人力

2.3自底向上的集成

l优先从叶子节点开始测试,有助于早期发现底层模块中复杂算法的缺陷,且驱动模块的开发有利于规范和约束系统上层模块的设计,在一定程度上增加系统可测试性

l多个集成测试可并行展开,确保测试工作进度

Ø不足

l驱动模块的开发和维护工作量较大

l难以早期发现上层模块中有关逻辑和控制方面的缺陷

l直至加入最后一个模块才能看到整个系统框架,难以早期发现时序问题和资源竞争问题

2.4混合集成

三明治集成

将自顶向下集成 自底向上的集成 并在子树上大爆炸集成

策略一 :将系统划分为3层 中间层为目标层 测试时对上面的层 自顶向下集成 下面的 自底向上的集成、

中间层进行 大爆炸集成。

项目测试用例数目桩模块驱动模块缺陷定位并行测试系统概貌
成对集成由边数决定需要需要非常容易可以不确定
邻居集成主要由中间节点数决定需要需要困难可以不确定
大爆炸不需要不需要非常困难N/A早期
自顶向下较多需要不需要较容易困难早期
自底向上较多不需要需要较容易可以较晚
三明治较多需要需要较困难可以早期
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值