Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >为什么集成测试被人瞧不起?我不理解还是?

为什么集成测试被人瞧不起?我不理解还是?

作者头像
用户7466307
发布于 2020-12-29 06:18:28
发布于 2020-12-29 06:18:28
1K0
举报

软件测试软件开发周期中的一个阶段,在此阶段中,对关键业务软件进行正确性,质量和性能验证。

软件测试中有四个基本级别,每个级别都在开发过程中从独特的角度检查软件功能。下图显示了软件测试的四个级别。

本文详细介绍了集成测试,这是软件测试的第一级。

什么是集成测试?

集成测试是软件测试的一个级别,其中将各个单元组合并进行测试,以验证它们在集成时是否按预期工作。这里的主要目的是测试模块之间的接口。

由于多种原因,仅单元测试是不够的,例如:

  • 模块/单元通常由单独的软件开发人员设计,其技术和编程逻辑与其他程序员不同
  • 通常在模块开发时,用户需求会发生变化,并且这些新需求可能未经过单元测试。这引发了问题
  • 在单元测试期间,有时会遗漏诸如数据格式,错误陷阱,硬件接口和第三方服务接口之类的问题

因此,无论每个模块/单元的运行效率如何,如果它们未正确集成,都会影响软件程序的功能。作为解决方案,集成测试得以实施。本文“什么是集成测试?” 进一步列出了集成测试的优势。

集成测试的优势

进行集成测试有很多好处。下面列出了其中一些:

  • 确保集成模块按预期正常工作
  • 一旦要测试的模块可用,测试人员就可以开始测试
  • 它检测与模块之间的接口有关的错误
  • 帮助模块与API和其他第三方工具进行交互
  • 通常覆盖大量系统,因此效率更高
  • 增加测试范围并提高测试的可靠性

软件工程师执行集成测试。有时,公司会聘请独立的测试人员来为他们做。但是,实际上如何进行集成测试?它是否与其他测试过程相似?让我们看看“什么是集成测试”的下一部分。文章。

集成测试如何完成?

集成的含义非常简单–将经过单元测试的模块一个接一个地组合,然后测试组合单元的功能。通常,集成测试是在单元测试之后进行的。一旦创建并测试了所有单个单元,我们便开始组合那些经过测试的模块并开始执行集成测试。这里的主要目标是测试单元/模块之间的接口。以下是一些简单的步骤,可帮助您开始进行集成测试:

  • 准备测试整合计划
  • 确定集成测试方法的类型
  • 相应地设计测试用例,测试场景和测试脚本
  • 一起部署所选模块并运行集成测试
  • 跟踪缺陷并记录测试结果
  • 重复上述步骤,直到测试完整个系统

请记住,必须优先考虑模块或单元之间的集成接口链接。如您所见,在第二步中,您需要确定集成测试方法的类型。在“什么是集成测试”中前进 文章,让我们了解如何执行这些测试策略,它们的优缺点。

集成测试的类型

在开始讨论可用的集成测试类型之前,我们需要了解存根和驱动程序的概念。在测试期间,有时我们会遇到某些模块仍在开发中的情况。这些用于测试目的的模块已替换为一些虚拟程序。这些虚拟程序称为存根和驱动程序。

想象一下,我们有一个包含两个模块的应用程序,即Login Page(模块A)Admin Page(模块B)

情况1:您必须测试已开发并发送给测试团队的登录页面。登录页面取决于管理页面。但是管理页面尚未准备好。为了克服这种情况,开发人员编写了一个虚拟程序,充当管理员页面。这个伪程序是Stub。存根是“被称为程序”。

情况2:您必须测试管理页面,但登录页面尚未准备好。为了克服这种情况,开发人员编写了一个虚拟程序,其作用类似于“登录页面”。该虚拟程序是Driver。驱动程序是“调用程序”。

现在您已经了解了这些必要的概念,让我们检查一下不同类型的集成测试。集成测试类型分为以下列出的不同组:

大爆炸整合测试

在这种测试方法中,一旦所有模块分别开发和测试,它们将被集成一次并立即一起测试。这种测试的唯一优点是,它非常适合于较小的系统。

缺点

  • 故障定位很困难
  • 测试之前有很多延迟
  • 关键问题没有得到优先解决
  • 很难找到问题的根本原因

增量集成测试

通过将逻辑上相关的两个或更多模块连接在一起来执行增量测试。后来又添加了更多模块,并对其功能进行了测试。直到完成所有模块的集成并成功测试为止。它又分为自上而下方法,自下而上方法和三明治方法。

自上而下的集成测试

自上而下的方法从测试最顶层的模块开始,然后逐步地逐步降到最低的一组模块。测试按照软件系统的控制流程从上到下进行。由于在测试顶层模块时有可能未开发出较低级别的模块,因此我们使用存根而不是那些尚未就绪的模块。对于简单的应用程序,存根将简单地将控件返回其上级模块。对于复杂的应用程序,他们将模拟整个响应范围。

优点:

  • 故障定位更容易
  • 测试产品极为一致
  • 与驱动程序相比,可以以更少的时间写存根
  • 关键模块经过优先级测试
  • 尽早发现主要设计缺陷

缺点

  • 需要几个存根
  • 对早期发布的支持不佳
  • 在周期结束时测试基本功能

自下而上的集成测试

自下而上的方法从测试应用程序的最低单元开始,然后逐步地逐步进行。从控制流的底部到向上进行测试。同样,在测试较低的模块时,可能尚未开发出较高级别的模块。在这种情况下,我们通过使用驱动程序来模拟缺少的模块的功能。这些驱动程序执行一系列任务,例如调用被测模块,传递测试数据或接收输出数据。

优点

  • 在这里,开发和测试可以一起完成,从而使产品高效
  • 测试条件很容易创建

缺点

  • 需要几个驱动程序
  • 数据流测试很晚
  • 需要驱动程序使测试数据管理变得复杂
  • 对早期发布的支持不佳
  • 关键接口缺陷发现较晚

三明治集成测试

为了克服这些限制并利用自顶向下和自底向上方法的优势,使用了集成测试的混合方法。这种方法称为三明治集成测试或混合集成测试。在这里,系统被视为三层。主目标层位于中间,目标层上方的另一层,目标层下方的最后一层。自上而下的方法用于从顶层到中间层的层。自下而上的方法用于从底部到中间的层。大爆炸方法用于中间的模块。

优点

  • 自上而下和自下而上的测试技术可以并行执行,也可以一个接一个地执行
  • 对于大型企业和大型项目(还有几个子项目)非常有用

缺点

  • 成本要求很高
  • 不能用于模块之间相互依存性强的小型系统
  • 不同级别的测试人员需要不同的技能

这些是可用于根据测试要求执行集成测试的不同方法。您应该检查可以采用的测试策略,并相应地准备测试数据和测试计划。集成测试虽然很有用,但并非没有缺点。您需要了解实施它时可能面临的挑战。

集成测试的挑战

  • 有时由于诸如数据库,平台,环境等各种因素,管理集成测试很困难
  • 将新系统集成到旧系统或集成两个旧系统需要大量测试工作和更改
  • 两家不同公司开发的两种系统之间的兼容性较弱,这对程序员来说是一个挑战
  • 有太多不同的路径和排列方式无法应用于测试集成系统
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试test 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
集成测试概述
http://mpvideo.qpic.cn/0b782iaaaaaaoaacyovm5fpfbuwdadjaaaaa.f10002.mp4?dis_k=15d3045601ae15530c8c951
归根落叶
2020/05/15
2.1K0
集成测试概述
集成测试之自顶向下、自底向上、三明治集成
自我理解:自顶向下测试包含两种测试策略,分别是深度优先和广度优先,这个不难理解,看例子基本就能懂
后端码匠
2019/12/05
6K0
集成测试之自顶向下、自底向上、三明治集成
嵌入式软件测试笔记5 | 开发人员需要做哪些测试?
虫无涯
2023/06/15
2430
【表情包-软件测试基础理论】面试官让你谈谈黑盒-白盒-灰盒测试,你打算怎么说?
只要做测试的同学,就没有不知道黑盒测试 灰盒测试 白盒测试的。但是面试官依然喜欢让你简单谈一谈,你怎么说?
我去热饭
2022/05/20
4840
【表情包-软件测试基础理论】面试官让你谈谈黑盒-白盒-灰盒测试,你打算怎么说?
【饭谈】【超详细】的资深测开的招聘要求,大家看看这符合了值多少钱?
很多小伙伴总是很困惑一个问题,就是去面试,明明自己完全符合招聘jd上的要求,但是为什么还会失败呢?
我去热饭
2022/05/19
3740
【饭谈】【超详细】的资深测开的招聘要求,大家看看这符合了值多少钱?
集成测试类型和最佳实践
大爆炸法是最常见的集成测试类型之一。本质上,您要测试的所有单元都被粉碎在一起并同时进行了测试。现在,这对于小型软件项目或完成其他形式的测试之后非常有用。
FunTester
2020/02/17
1.5K0
软件测试习题(附答案)
1. 在软件生命周期的哪一个阶段,软件缺陷修复费用最低                               (   A   )
红目香薰
2022/11/29
1.9K0
深入理解端到端测试及与集成测试的区别
端到端测试是一种软件测试方法,它的目标是验证整个系统是否按照预期工作。在端到端测试中,我们会模拟真实用户的行为,从开始到结束对整个系统进行一系列的操作,看看是否能得到预期的结果。
运维开发王义杰
2023/08/10
1.9K0
深入理解端到端测试及与集成测试的区别
单元测试和集成测试
单元测试对构件的五方面进行测试:  (1)模块或构件接口;  (2)局部数据结构;  (3)边界条件;  (4)独立路径;和  (5)处理错误的路径
葆宁
2019/04/18
2.5K0
单元测试和集成测试
集成测试、单元测试、系统测试
为了使软件正常工作,所有单元都应集成在一起并正常运行。集成测试就像是要求不同工种的工人修建一个房子,希望他们都团结协作。如何判断他们在一起是否可以按照计划完成建设呢?唯一了解的方法是通过将它们全部拉在一起并测试它们如何相互作用来执行“集成测试”。软件开发和设计也是如此。
FunTester
2020/02/17
1.7K0
【ASP.NET Core 基础知识】--测试--单元测试和集成测试
单元测试是软件开发中的一种测试方法,用于验证软件中的最小可测试单元——通常是函数、方法或类——的行为是否符合预期。它的核心思想是将程序分解成独立的单元,并针对每个单元编写测试用例,以验证其功能是否正确。以下是单元测试的一些关键概述:
喵叔
2024/05/24
6960
建立测试自动化策略【译】
通过测试自动化,可以学到了很多东西,并已在经验丰富的敏捷教练的帮助下开始制定策略。测试策略应针对该项目制定,让我们逐步执定义下一个项目策略的步骤。
FunTester
2021/10/08
4130
集成测试是什么?为什么要做集成测试
集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。
测试小兵
2019/11/20
3.3K0
代码中的单元测试与集成测试
对应用程序的准确测试决定了它的性能、可用性和可靠性。虽然测试是软件开发生命周期的一个组成部分,但是没有简单的方法可以一次完成它。每个软件产品都要经过开发人员和专门的测试团队的一系列测试。执行这些测试是为了确定应用程序在暴露于不同情况时的执行或行为。
从大数据到人工智能
2022/01/19
1.1K0
嵌入式基础知识-测试基础概念
动态测试的主要特征是必须真正执行被测试的程序,通过输入测试用例,对其运行情况进行分析。
xxpcb
2024/01/22
2290
嵌入式基础知识-测试基础概念
软件测试学习笔记-概念篇(一)
  每个系统的成型,上线都离不开测试,这段时间陆陆续续的学习测试,在这里总结一番;作为学习交流之用;
Dawnzhang
2018/10/18
8680
软件测试学习笔记-概念篇(一)
相关推荐
集成测试概述
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档