• 0
  • 0
分享
  • 软件测试集成测试篇——软件测试圈
  • 饭团🍙 2022-05-17 13:52:07 字数 2553 阅读 828 收藏 0

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

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

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

什么是集成测试?

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

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

  • 模块/单元通常由单独的软件开发人员设计,其技术和编程逻辑与其他程序员不同

  • 通常在模块开发时,用户需求会发生变化,并且这些新需求可能未经过单元测试。这引发了问题

  • 在单元测试期间,有时会遗漏诸如数据格式,错误陷阱,硬件接口和第三方服务接口之类的问题

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

集成测试的优势

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

  • 确保集成模块按预期正常工作

  • 一旦要测试的模块可用,测试人员就可以开始测试

  • 它检测与模块之间的接口有关的错误

  • 帮助模块与API和其他第三方工具进行交互

  • 通常覆盖大量系统,因此效率更高

  • 增加测试范围并提高测试的可靠性

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

集成测试如何完成?

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

  • 准备测试整合计划

  • 确定集成测试方法的类型

  • 相应地设计测试用例,测试场景和测试脚本

  • 一起部署所选模块并运行集成测试

  • 跟踪缺陷并记录测试结果

  • 重复上述步骤,直到测试完整个系统

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

集成测试的类型

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

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

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

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

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

大爆炸整合测试

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

缺点

  • 故障定位很困难

  • 测试之前有很多延迟

  • 关键问题没有得到优先解决

  • 很难找到问题的根本原因

增量集成测试

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

自上而下的集成测试

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

优点:

  • 故障定位更容易

  • 测试产品极为一致 

  • 与驱动程序相比,可以以更少的时间写存根

  • 关键模块经过优先级测试

  • 尽早发现主要设计缺陷

缺点

  • 需要几个存根 

  • 对早期发布的支持不佳

  • 在周期结束时测试基本功能

  • 自下而上的集成测试

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

优点

  • 在这里,开发和测试可以一起完成,从而使产品高效

  • 测试条件很容易创建

缺点

  • 需要几个驱动程序

  • 数据流测试很晚 

  • 需要驱动程序使测试数据管理变得复杂

  • 对早期发布的支持不佳

  • 关键接口缺陷发现较晚

三明治集成测试

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

优点

  • 自上而下和自下而上的测试技术可以并行执行,也可以一个接一个地执行

  • 对于大型企业和大型项目(还有几个子项目)非常有用

缺点

  • 成本要求很高

  • 不能用于模块之间相互依存性强的小型系统

  • 不同级别的测试人员需要不同的技能

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

集成测试的挑战

有时由于诸如数据库,平台,环境等各种因素,管理集成测试很困难

将新系统集成到旧系统或集成两个旧系统需要大量测试工作和更改

两家不同公司开发的两种系统之间的兼容性较弱,这对程序员来说是一个挑战

有太多不同的路径和排列方式无法应用于测试集成系统

 

作者:软件测试大白
链接:https://zhuanlan.zhihu.com/p/439646018


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 导出json文件方便使用jenkins集成环境管理,导出python的话方便在linux系统下运行脚本。1、postman导出json文件:目前postman支持V1(逐渐弃用),V2,V2.1(推荐使用),只有客户端支持导出功能,chrome插件不支持选择要导出的版本号即可2、postman导出Python脚本生成后复制代码新建.py文件即可作者:笑笑就好90原文链接:https://www.cnblogs.com/xulinmei/p/10719231.html
            0 0 1048
            分享
          • Jmeter聚合报告(Aggregate Results)是一个常用的listener,以表格的形式显示取样器结果,表格里每一列的参数代表的数据含义如下:序号title释义1Label请求的名称2Samples发出的请求数量,等于模拟用户数*请求迭代次数3Average平均响应时间(单位:毫秒)4Median中位数,50%的用户响应时长在该时间内,单位毫秒590%Line90%的请求响应时时长在该时间内,单位毫秒695%Line95%的请求响应时长均小于这个时间,单位毫秒799%Line99%的请求响应时长均小于这个时间,单位毫秒8Min最小响应时间9Max最大响应时间10Error%错误率,...
            0 0 2446
            分享
          • 我们在使用软件的过程中,经常会发现了软件的一些问题,从客户体验的视角出发,我们觉得软件开发者一定要重视体验性测试,特别是软件异常的体验性测试,体会客户在操作过程中碰到各种操作异常错误或困境时的心理感受,理解他们的心理状态,分析其合理性,找到解决或规避方法,这样才能提高软件的口碑,减少用户的投诉。某商业银行的“掌上银行”的手机APP,面向大众客户,为客户提供各种金融服务,笔者对其在安卓版本和安全检测进行了体验性测试。这些体验场景是基础性的且容易引发用户第一感受反应,直接决定用户好感度和使用倾向。经过体验性测试,个人觉得较好地处理了软件异常的体验性问题。下面就是测试用例:测试用例一:测试用例编号:...
            0 0 2722
            分享
          •   Hi,亲爱的大家,这是我与大家的第一次沟通,但其实我已经51testing这个大家庭中和志同道合的你们在一起很久了,从刚开始学测试起,就关注了51testing,大概也有一年多的时间了,有人要吐槽,一年多和很久着实自相矛盾,但是照我的耐性来说,一年多已是很长情了,起码我手机上的游戏,就没有存活过一年之久的,当然后面我也会继续和大家一起关注51testing。  来说说我写这篇文章的初衷吧,最近在公众号上看到的文章都挺高级(对我而言),比如python啦、测试框架啦、以及较少见到接口测试,所以我觉得,我该出手了!  想写一篇给小白朋友们看的文章,就像当年我刚入门那时候看的那些特别简单的教程,...
            11 11 1519
            分享
          •   根据我的观察,优秀的测试人员可以做的事情可以包括如下3点:  ·由单纯的测试变成项目质量保证工作  · 持续集成探索和推动和自动化测试技术研究  · 测试相关工具的开发  1、我们先来讲第一点,由单纯的测试变成项目质量保证工作  测试,从狭义的角度来讲,包括如下这些环节:  测试计划和测试用例编写-测试执行-质量报告书写  测试人员一般会在开发阶段就进行测试计划和测试用例的编写和准备工作;在测试阶段,我们一般先会做功能测试,等项目功能基本稳定,bug较少了,就开始做兼容性测试、性能测试、安全性测试。兼容性测试保证了产品在多浏览器、APP在产品在不同机型下的兼容性;性能测试保证了产品在海量用...
            0 0 913
            分享
      • 51testing软件测试圈微信