集成测试的策略详解:
集成测试的基础策略有很多,通常分为两种:非增量式集成测试策略和增量式集成测试策略
第一种:非增量式集成测试策略
非增量式集成测试策略也叫做大爆炸集成、一次性集成;
即在最短的时间内把所有的系统组件一次性集成到被测系统中,并通过最少的用例来验证整个系统,不考虑各组件之间的相互依赖性或者可能存在的风险。
优点:
容易理解,比较简单
可以多人并行工作,对人力物力资源的利用率较高。
缺点:
- 问题定位和修改都比较困难
- 即使被测系统能够被一次性集成,但是还会有许多接口上测试被遗漏,甚至会躲过测试遗留在系统中。
适用场景:
- 适用于维护型的项目,并且新增的项目只有少数的模块被增加或修改
- 适用于测试系统比较小,并且各个组件都经过了充分的单元测试。
第二种:增量式集成测试策略
增量式集成的策略有很多种:自顶向下集成,自底向上集成,三明治集成,基于功能集成,基于风险集成,基于分布式集成等。
该策略最大的特点就是:支持故障隔离、定位问题
1,自顶向下集成:(个人理解:随着底层不断增加,测试越来越难以全面。)
自顶向下集成首先要集成主控制模块,然后从软件控制层次结构向下逐步集成,可以采用深度优先或者广度优先进行集成测试,主要验证接口的稳定性。
优势:
能够较早的验证主要的控制点和判断点,如果主控制出现问题能够及时发现。
深度优先:首先实现并验证一个完整的功能需求的正确性
缺点:
桩的开发和维护是该方法的最大问题,底层模块增加,系统越来越复杂,底层模块从测试会越来越不充分。
使用场景:
接口变化比较小的项目并且控制结构比较清晰。
2.自底向上集成
对底层模型的行为进行较早的验证,早期可能出现并行的测试。
缺点:
对顶部的验证推迟了,设计上的错误不能被及时发现,随着顶层的集成,对产品底部的异常越来越难发现。
使用场景:
顶层接口变化比较复杂的,变化比较频繁的系统
3.三明治集成
三明治集成属于混合式集成,综合了自顶向下和自底向上集成的优缺点;测试的时候,将被测软件分成三份,中间一份为目标层,目标层的上部分采用自顶向下集成策略,下部分采用自底向上集成策略。最后在目标层进行会和。
缺点:
最大的缺点就是对中间层的测试不够充分;
使用场景:
适用于大多数项目。使用时要尽可能的减少驱动模块和桩模块的数量。
4.基于功能集成
基于功能角度出发,按照功能的关键程度对功能模块进行集成。
缺点:
对一些接口测试不充分。系统很复杂的时候,功能之间的相互联系很难分析清楚,会造成大量的冗余测试
5.基于风险集成
是一种假设,系统风险度较高的模块间的集成往往是错误集中的地方。
优点:
加速系统的稳定性。
关键点:
风险的识别和评估。
通常跟基于功能集成合用
6.基于分布式集成
主要是验证松散耦合的同级模块之间的交互稳定性。在一个分布式系统中,由于没有专门的控制轨迹,没有专门的服务层,所以构造测试包非常困难,主要验证远程主机之间的接口是否具有最低限度的可操作性。
使用场景:
主要用在分布式系统中。
集成测试的策略详解:相关推荐
- Spring Data JPA 从入门到精通~Naming命名策略详解及其实践
Naming 命名策略详解及其实践 用 JPA 离不开 @Entity 实体,我都知道实体里面有字段映射,而字段映射的方法有两种: 显式命名:在映射配置时,设置的数据库表名.列名等,就是进行显式命名, ...
- CentOS7下的软件安装方法及策略详解
CentOS7下的软件安装方法及策略详解 互联网 01-24 15:15:09 作者:佚名 我要评论 今天小编为大家带来的是CentOS7下的软件安装方法及策略详解:希望对大家安装Cent ...
- Firewalld防火墙策略详解
Firewalld防火墙策略详解 一.Firewalld firewalld防火墙是Centos7系统默认的防火墙管理工具,取代了之前的iptables防火墙,也是工作在网络层,属于包过滤防火墙. f ...
- Iptables防火墙策略详解
Iptables防火墙策略详解 一.iptables Linux 系统的防火墙--netfilter/iptables IP信息包过滤系统,它实际上由两个组件netfilter 和 iptables组 ...
- Redis的淘汰策略详解
接上一篇Redis的过期策略详解 Redis的过期策略详解 所谓的淘汰策略就是: 我们redis中的数据都没有过期,但是内存有大小,所以我们得淘汰一些没有过期的数据!! 那么怎么去淘汰了,我们上一篇讲 ...
- Java多线程之线程池7大参数、底层工作原理、拒绝策略详解
Java多线程之线程池7大参数详解 目录 企业面试题 线程池7大参数源码 线程池7大参数详解 底层工作原理详解 线程池的4种拒绝策略理论简介 面试的坑:线程池实际中使用哪一个? 1. 企业面试题 蚂蚁 ...
- 多线程池、饱和策略详解
一.序言 当我们需要使用线程的时候,我们可以新建一个线程,然后显式调用线程的start()方法,这样实现起来非常简便,但在某些场景下存在缺陷:如果需要同时执行多个任务(即并发的线程数量很多),频繁地创 ...
- Istio 中的授权策略详解
本文节选自 ServiceMesher 社区出品的开源电子书<Istio Handbook--Istio 服务网格进阶实践>,阅读地址:https://www.servicemesher. ...
- Redis系列教程(九):Redis的内存回收原理,及内存过期淘汰策略详解
Redis内存回收机制 Redis的内存回收主要围绕以下两个方面: 1.Redis过期策略:删除过期时间的key值 2.Redis淘汰策略:内存使用到达maxmemory上限时触发内存淘汰数据 Red ...
最新文章
- Docker入门之 - 如何安装Docker CE
- hive like 模糊匹配
- 初级和高级产品运营的分水岭指标:大局观和节奏感
- MySQL探秘(三):InnoDB的内存结构和特性(可靠性和持久性)
- 小米9首次官方降价:2799元,依旧实力强劲
- python 基本数据类型之列表
- SpringBoot之idea调出Maven Project
- 【转】PNG文件结构
- java 中类超时_Java中httpClient中的三种超时设置总结
- 前端cookie 放到请求头_ajax请求头cookie问题
- 安装Win8跳过密钥方法
- 一个JSP页面打开另外一个JSP页面并传值
- 【mysql】mysql 导出全库表结构,并排除指定库
- python学习笔记(一)数据处理
- 父进程和子进程之间的关系
- c语言循环单链表实现约瑟夫环问题
- Python字符串算法
- CLOUDXNS 使用体验
- 玩消费电子产品,常用6款传感器不可不知
- JS Worker多线程
热门文章
- 如何推广你的区块链初创企业,顺利完成ICO及后续发展
- ipad未能与itunes连接到服务器,itunes与ipad无法连接怎么办-互盾苹果恢复精灵
- Knn算法之手写识别系统
- Java实现 LeetCode 55 跳跃游戏
- 应用计算机怎么弹ink,Win7系统打开计算机管理提示computer management.Ink的解决方法教程[多图]...
- 手机摄像头+Matlab完成图像的自动识别
- 将sublime右下角永远改为HTML格式
- Java kafka producer 的常用参数的意义说明及默认值
- VMbox下ubuntu调整分辨率/安装增强功能
- 干货!深度推荐系统的探索与实践