集成测试如何做?

今天学习下如何进行集成测试。

什么是集成测试?

集成测试被定义为一种测试类型,其中软件模块在逻辑上集成并作为一个组进行测试。一个典型的软件项目由多个软件模块组成,由不同的程序员编码。此级别测试的目的是在集成这些软件模块时,暴露它们之间交互中的缺陷

集成测试的重点是检查这些模块之间的数据通信。因此,它也被称为“I & T”(集成和测试),“字符串测试”,有时也称为“线程测试”。

为什么要进行集成测试?

虽然每个软件模块都进行了单元测试,但是由于各种原因仍然存在缺陷

一般来说,模块是由独立的软件开发人员设计的,他们的理解和编程逻辑可能与其他程序员不同。集成测试是验证软件模块统一工作的必要条件

在模块开发时,客户的需求有很大的变化机会。这些新需求可能无法进行单元测试,因此系统集成测试就变得必要了。

软件模块与数据库的接口可能出现错误

外部硬件接口,如果有,可能是错误的

不充分的异常处理可能会导致问题。

集成测试用例的示例

集成测试用例与其他测试用例的不同之处在于,它主要关注模块之间的接口和数据/信息流。这里优先考虑的是集成环节,而不是已经测试过的单元功能。

应用程序有3个模块,分别是“登录页面”、“邮箱”和“删除邮件”,每个模块在逻辑上都是集成的。

这里不太关注登录页面测试,因为它已经在单元测试中完成了。但是检查它是如何链接到邮箱页面的。

类似邮箱:检查它与删除邮件模块的集成。

测试用例id

测试用例目标

测试用例描述

预期结果

1

检查“登录”和“邮箱”模块之间的接口链接

输入登录凭证,单击“登录”按钮

跳转到“邮箱”

2

查看“邮箱”和“删除邮件”模块之间的接口链接

从“邮箱”中选中该邮件,单击“删除”按钮,

选中的邮件将出现在“已删除/垃圾”文件夹中

集成测试的类型

软件工程定义了执行集成测试的各种策略,即。

  • 大爆炸方法:

  • 增量法:进一步分为以下几部分

  • 自顶向下法

  • 自底向上法

  • 三明治方法——自上而下和自下而上的结合

以下是不同的策略,它们的执行方式及其局限性和优点。

大爆炸测试

大爆炸测试是一种集成测试方法,在这种方法中,所有组件或模块立即集成在一起,然后作为一个单元进行测试。在测试时,这组组合的组件被视为一个实体。如果单元中的所有组件都没有完成,集成过程就不会执行。

优点:

适用于小型系统。

缺点:

故障定位困难。

考虑到在这种方法中需要测试的接口数量之多,一些需要测试的接口链接很容易被遗漏。

由于集成测试只能在“所有”模块设计完成后开始,因此测试团队在测试阶段执行的时间更少。

由于所有模块都是一次测试,因此高风险的关键模块不会被隔离,并根据优先级进行测试。处理用户界面的外围模块也没有被隔离和优先级测试。

增量测试

在增量测试方法中,测试是通过集成两个或多个彼此逻辑相关的模块来完成的,然后测试应用程序的正常功能。然后以增量方式集成其他相关模块,该过程继续进行,直到所有逻辑相关的模块都被集成并成功测试为止。

增量法依次采用两种不同的方法:

  • 自底向上

  • 自顶向下

打桩和驱动器

打桩和驱动程序是集成测试中用来促进软件测试活动的虚拟程序。这些程序作为测试中缺失模型的替代品。它们不实现软件模块的整个编程逻辑,但它们在测试时模拟与调用模块的数据通信。

打桩:被测试模块调用。

驱动程序:调用要测试的模块。

自底向上集成测试

自底向上集成测试是一种首先测试较低级别模块的策略。然后,这些测试过的模块将进一步用于促进更高级别模块的测试。该过程继续进行,直到顶级的所有模块都被测试完毕。一旦测试和集成了较低级别的模块,就会形成下一级别的模块。

图解表示:

集成测试教程:大爆炸,自顶向下和自底向上

优点:

  • 便于故障定位。

  • 不像大爆炸方法那样浪费时间等待所有模块的开发

缺点:

  • 控制应用程序流程的关键模块(在软件体系结构的顶层)最后进行测试,可能容易出现缺陷。

  • 早期的原型是不可能的

自顶向下集成测试

自顶向下集成测试是一种按照软件系统的控制流程从上到下进行集成测试的方法。首先测试较高级别的模块,然后测试和集成较低级别的模块,以检查软件功能。存根用于测试如果某些模块还没有准备好。

图解表示:

 集成测试教程:大爆炸,自顶向下和自底向上

优点:

  • 更容易定位故障。

  • 获得早期原型机的可能性。

  • 对关键模块进行优先级测试;主要的设计缺陷可以先被发现并修复。

缺点:

  • 需要很多存根。

  • 较低级别的模块测试不足。

三明治测试

三明治测试是一种策略,在这种策略中,顶层模块与较低层模块进行测试,同时较低层模块与顶层模块集成并作为一个系统进行测试。它是自顶向下和自底向上方法的组合,因此被称为混合集成测试。它同时使用存根和驱动程序。

集成测试教程:大爆炸,自顶向下和自底向上

如何进行集成测试?

不考虑软件测试策略的集成测试过程(如上所述):

  • 准备集成测试计划

  • 设计测试场景、用例和脚本。

  • 执行测试用例,然后报告缺陷。

  • 跟踪并重新测试缺陷。

  • 重复步骤3和4,直到集成成功完成。

集成测试计划的简要描述

它包括以下属性:

  • 测试的方法/方法(如上所述)。

  • 集成测试的范围和范围外项目。

  • 角色和责任。

  • 集成测试的先决条件。

  • 测试环境。

  • 风险和缓解计划。

集成测试的进入和退出标准

在任何软件开发模型中集成测试阶段的进入和退出标准

输入条件:

  • 单元测试组件/模块

  • 所有高优先级的bug修复并关闭

  • 所有模块代码完成并成功集成。

  • 集成测试计划、测试用例、要签署并记录的场景。

  • 为集成测试设置所需的测试环境

退出标准:

  • 成功测试集成应用程序。

  • 已执行的测试用例被记录

  • 所有高优先级的bug修复并关闭

  • 提交技术文件后提交发布说明。

集成测试的最佳实践/指南

  • 首先,确定可以采用的集成测试策略,然后相应地准备测试用例和测试数据。

  • 研究应用程序的体系结构设计,确定关键模块。这些需要按优先级进行测试。

  • 从架构团队获得接口设计,并创建测试用例以详细地验证所有接口。必须详细测试与数据库/外部硬件/软件应用程序的接口。

  • 在测试用例之后,发挥关键作用的是测试数据。

  • 在执行之前,总是准备好模拟数据。不要在执行测试用例时选择测试数据。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/219880.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

羊大师带大家探寻,南北地区冬季饮食的差异

羊大师带大家探寻,南北地区冬季饮食的差异 南北地区的冬季饮食有着明显的不同。随着气温的骤降,人们的餐桌上也逐渐变得丰盛起来。精心准备的美食不仅温暖了身心,更能带来满满的幸福感。接下来,让小编羊大师带大家一起走进南北饮…

软件测试,缺少项目实战怎么办?

解决办法 你可以进行一个简单的web测试。 以我目前的认知和经验,悄悄告诉你:政府网站大概率会有bug。 在著此文时,我随便找了个地方政府网站,点了进去。 http://www.yibin.gov.cn/en/ybsq/201905/t20190513_976652.html 大家…

猜数字游戏--数据控制流

#随机生成一个1~100之间的数字作为基准数,每次通过键盘输入一个数,如果输入数和基准数相同,则成功过关,猜中则退出游戏。 import randombase_number random.randint(1, 100) # 生成基准数guess_times 0 # 初始化猜测次数whil…

基于Python+OpenCV的车道线和车辆检测系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 本文将介绍如何使用Python编程语言结合OpenCV库进行车道线和车辆检测。这种技术常用于计算机视觉领域,特…

Windows使用Redis

Windows使用Redis 前言一、安装wsl2(Windows Subsystem for Linux)二、在wsl中下载并安装Redis一主二仆哨兵模式 前言 主要是记录一下,免得自己忘了。 一、安装wsl2(Windows Subsystem for Linux) Redis官网中说&…

Course2-Week1-神经网络

Course2-Week1-神经网络 文章目录 Course2-Week1-神经网络1. 神经网络概述1.1 欢迎来到Course21.2 神经元和大脑1.3 引入神经网络-需求预测1.4 神经网络的其他示例-图像感知 2. 神经网络的数学表达式2.1 单层的神经网络-需求预测2.3 前向传播的神经网络-手写数字识别 3. Tensor…

YOLOv4 学习笔记

文章目录 前言一、YOLOv4贡献和改进二、YOLOv4核心概念三、YOLOv4网络架构四、YOLOv4数据增强五、YOLOv4的损失函数总结 前言 在近年来的目标检测领域,YOLOv4的出现标志着一个重要的技术突破。YOLOv4不仅继承了YOLO系列快速、高效的特点,还引入了一系列…

【LeetCode热题100】【双指针】接雨水

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] …

数据分析师的学习之路-pandas篇(6)

接上篇,画图告一段落,现在学习表格的各种操作。 3.8 表格操作 3.8.1 表的校验 表里有些列的数据是有一定的要求的,比如说下面这个表,Score分数列,要求成绩只能是0到100,那如果有出现错误的数据&#xff0…

opencv轮廓

寻找轮廓之前需使用阈值或者canny边缘检测 找到轮廓 contours, hierarchy cv.findContours(thresh, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE) 绘制轮廓 第三个参数是轮廓的索引 cv.drawContours(img, contours, -1, (0,255,0), 3) 轮廓面积 area cv.contourArea(cnt) 轮…

很全面 影响无人机自动返航的因素总结

在无人机技术不断成熟的今天,自主返航技术成为保障飞行安全的一种重要工具。无人机在多种情况下能够智能判断,主动实施返航动作,为用户提供更加可靠的飞行保障。以下是一些常见的无人机自动返航场景,让我们深入了解这项技术背后的…

一键抠图2:C/C++实现人像抠图 (Portrait Matting)

一键抠图2:C/C实现人像抠图 (Portrait Matting) 目录 一键抠图2:C/C实现人像抠图 (Portrait Matting) 1. 前言 2. 抠图算法 3. 人像抠图算法MODNet (1)模型训练 (2)将Pytorch模型转换ONNX模型 &…

03、pytest初体验

官方实例 # content of test_sample.py def func(x):return x 1def test_ansewer():assert func(3) 5步骤解释 [100%]指的是所有测试用例的总体进度,完成后,pytest显示一个失败报告,因为func(3)没有返回5 注意:你可以使用ass…

MIT_线性代数笔记:第 12 讲 图、网络、关联矩阵

目录 图和网络 Graphs & Networks关联矩阵(Incidence matrices)矩阵的零空间矩阵列空间矩阵的左零空间矩阵的行空间 本讲讨论线性代数在物理系统中的应用。 图和网络 Graphs & Networks “图”就是“结点”和“边”的一个集合。 边线上的箭头代…

枚举以及枚举的应用简化if/else

枚举定义 public enum Week {SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY;//无参构造器,默认privateWeek(){System.out.println("hello");} }public class Test {public static void main(String[] args) {Week w Week.FRIDAY;} }…

网络程序设计

互相连接,发送信息 tcp和udp协议 tcp会有准备,udp不会准备。 8080端口:tomcat端口,java和web相连接 80端口:http 21端口:ftp 套接字 socket:提供给程序可以对外进行连接的接口 ip地址 特…

C#多线程开发之----List Task有返回值

C#中的List<T>是一个泛型集合类&#xff0c;可以用来存储任意类型的元素。在多线程环境下&#xff0c;可以使用Task<TResult>类来执行异步操作并返回结果。通过将List<T>与Task<TResult>结合使用&#xff0c;可以实现多线程处理带有返回值的操作&#…

系统运维安全之病毒自检及防护

一、前言 Linux勒索病毒&#xff08;Linux ransomware&#xff09;是一种最令人恶心的计算机恶意病毒&#xff0c;它以侵入Linux系统&#xff0c;捆绑文件并要求支付赎金才能释放文件为主要目的&#xff0c;破坏用户的数据&#xff0c;造成数据讹诈。Linux勒索病毒它们的存在已…

轻松入门性能测试:打造高效稳定的应用系统!

性能测试乍一听&#xff0c;好像是很高大上&#xff0c;不过也确实很高大上&#xff0c;一般的测试人员&#xff0c;没有经过专门的训练的话&#xff0c;可能都难以理解性能里面的一些术语。 本文是小马哥从教学和答疑的过程中总结出的一些关于性能测试的简单理解&#xff0c;…

网工学习10-IP地址

一、IP地址概念 IP地址是一个32位的二进制数&#xff0c;它由网络ID和主机ID两部份组成&#xff0c;用来在网络中唯一的标识的一台计算机。网络ID用来标识计算机所处的网段&#xff1b;主机ID用来标识计算机在网段中的位置。IP地址通常用4组3位十进制数表示&#xff0c;中间用…