左移测试

随着软件行业的发展,新趋势和运营模型也随之发展,每种“软件模型”旨在在“软件开发”的每个阶段带来更高的效率。

最广泛使用的软件开发模型之一是“瀑布模型”,其中软件开发生命周期中的所有活动(计划/需求收集->软件设计->编码(开发)->产品测试)按顺序执行。“瀑布模型”的主要缺点是,并非在每个阶段都执行测试活动。因此,仅在“产品开发”完成后才发现错误。

如果错误的严重性较小,则开发人员可以修复问题并提交更改以进行验证。如果严重性“非常高”,则情况将发生巨大变化,并且此修复程序可能会产生副作用。在这种情况下,向客户发布产品也会推迟。在这样的模型中,测试阶段位于测试生命周期的最右边。

赋予测试权力

随着不同软件模型的发展,例如敏捷模型,增量模型,螺旋模型等。人们意识到“软件测试” 的重要性。保持“一次性测试”活动涉及大量风险,因为它对项目截止日期和成本有很多影响。这种认识产生了“转移提升”的概念,即将测试阶段移至左侧,并通过让测试团队参与对项目执行至关重要的活动来赋予测试团队权力。在较早的测试方法中,测试阶段位于开发周期的末端,而在Shift-Left方法中,测试涉及开发的每个阶段。

在传统的软件开发方法中,测试团队会如孤岛般工作,因为他们的主要工作是通过识别错误并将错误报告给开发团队来提高产品质量。在产品计划和开发的重要阶段,几乎没有测试人员参与。通过Shift-Left的概念,测试团队可以更多地参与产品开发的每个阶段。通过这种方法,测试团队可以与其他利益相关者进行协作,例如开发团队,产品计划团队,产品开发团队,市场营销团队等,从而在开发的早期阶段就灌输“测试思想”。由于测试团队有机会与来自不同团队的成员进行互动,因此这种加深的理解将有助于他们编写有效的测试用例 有助于提高产品质量。

因此,Shift-Left的概念不仅有助于在产品开发的早期阶段发现错误;但它也可以帮助测试团队与其他利益相关者合作,提高领域竞争力,并提出更现实的测试案例。

左移测试的主要好处

将左移测试作为SDLC的一部分进行时,会带来很多好处。

降低成本

Shift-Left概念的创始人拉里·史密斯曾经提到“bugs are cheap when caught young”。在典型的测试生命周期中,测试是在产品开发周期结束时执行的。如前所述,错误修复所涉及的成本和含义将基于发现错误的时间成倍增加。根据拉里·史密斯的观点,BUG必须在发现之前就尽早发现。

一旦实施“左移”测试,就将测试视为产品开发每个阶段的组成部分。因此,每个构建都进行一次测试,以便在早期发现并修复错误。一旦代码量变多,更多细小的错误积累,模块之间的耦合越来越紧密,解决简单的问题也可能会花费更多时间,并且可能会导致一些副作用。左移测试策略可以减少开发,测试和修复的总成本。

提升质量

Shift-Left方法可确保项目的不同利益相关者之间及时进行沟通。开发人员可以合作进行浅谈单元测试集成测试的开发。自动化是Shift-Left测试的重要组成部分,借助自动化脚本,测试团队可以一天执行多次测试。以“BUG”形式提供的产品反馈,这有助于提高代码质量(以及通过开发测试用例和测试套件来提高代码覆盖率)。

这样可以减少在生产阶段遇到的问题数量,这意味着通过严格的代码质量检查可以提高整体代码质量,从而确保向客户交付“更稳定的最终产品”。

左移测试实现

“向右移”和“向左移”测试方法之间的根本区别在于,测试团队需要参与软件开发的“每个关键阶段”。从单位在开发环境中测试,以移植到测试环境推动最终代码到生产环境之前。但是,实施这种方法比做起来容易做起来难,因为测试团队需要走出“舒适区”,并且每个利益相关者都需要转变思维方式,以便他们可以与测试团队合作以成功完成项目。

左移测试亮点

  • 在“左移”测试方法中,测试团队参与了重要的项目讨论,这使他们更了解项目要求。在此过程中,测试团队将收集有关项目计划和执行的大量细节。这将激励团队在日常活动中做得更好,因为团队每天都会遇到重要的学习经验。
  • 除了产品/项目计划团队和开发团队之外,很少有成员对业务非常了解,因为他们从未获得过该信息。借助左移测试,软件测试人员可以在确保其工作有助于实现团队/组织的业务目标方面发挥至关重要的作用。
  • 在当今把精力都集中在“上线时间”上的时间,交付和执行的时间表越来越短。这就是为什么需要在DevOps引入自动化测试,以便可以加快测试过程。通过Shift-Left测试,测试团队将与开发团队紧密合作,以提出自动化测试案例。通过采用这种方法,将改善“团队之间的协同作用”,这对于实现行为驱动开发(BDD)和测试驱动开发(TDD)是非常重要的方面。
  • 有一个普遍的误解,即开发人员只需要开发代码。为了提高代码质量,开发人员应树立“开发与测试”的思维方式,以便开发人员自己发现并修复错误。通过实施Shift-Left方法,开发人员可以通过集中精力同时进行开发和测试来承担更多责任。
  • 参与自动化脚本实施的测试团队成员在技术上具有多种测试框架和编程语言的完整技能。一旦实施左移测试,测试人员就可以成为产品开发中定期例行会议,代码审查和其他重要活动的一部分。由于测试人员可以参与软件的每个阶段”、,因此他们可以提出更多的测试策略,测试计划和测试用例。

正确执行Shift-Left测试可以提高(开发人员,测试人员等)领域的技能,并改善团队内部的沟通,这对于任何项目的成功都是至关重要的。

左移测试种类

左移测试可以通过4种不同的方式进行:

  • 左移传统测试:传统的左移测试方法更多地侧重于单元级测试和集成测试。这是通过使用API测试工具来实现的。它没有更多地强调验收测试和系统级测试。
  • 左移增量测试:左移增量测试广泛用于具有很高复杂性的项目。为了降低复杂性,将项目任务和可交付成果分解为较小的部分。这种方法使测试任务变得容易一些,因为也可以在较小的零件上执行测试。这些片段是相互依存的,每次递增。该软件也交付给客户。每次交付后,开发和测试将逐渐移至左侧。
  • 敏捷/DevOps中的左移:顾名思义,此类左移测试是在许多sprint中执行的。它主要用于开发测试,而不用于操作测试。敏捷/DevOps左移测试正在逐渐普及,根据项目要求和进度在实施DevOps中使用这种左移测试方法。
  • 基于模型的左移:左移测试的整个概念是早期识别出BUG。但是,在先前类型的左移方法中,测试将在开发周期的早期阶段开始。因此,一旦软件准备就绪,就会发掘在需求收集/设计阶段可能已经发现的问题。主要问题是在需求收集阶段,设计阶段引入了接近45%〜65%的缺陷。在基于模型的左移测试中,测试可以最早开始,这样就可以在软件开发周期开始之前就报告错误。

总而言之,左移测试更多的是关于每个阶段实施连续测试


  • 郑重声明:文章首发于公众号“FunTester”,禁止第三方(腾讯云除外)转载、发表。

本文分享自微信公众号 - FunTester(NuclearTester),作者:FunTesting

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 自动化的好处

    为了收集有关当前和未来自动测试状态的见解,我们询问了27家公司的31位高管,“通过自动测试解决了哪些实际问题?” 这是他们告诉我们的:

    八音弦
  • 测试用例设计——一切测试的基础

    想要进行测试自动化的团队都会遇到这个问题:自动化的成功和编码能力有多大的关联?现在更多的招聘信息越来越偏重于对测试人员的编程能力的要求,似乎这个问题的答案是极大...

    八音弦
  • 什么阻碍手动测试发挥价值

    互联网上的大多数产品都在通过网络进行交互,试图连接更多的用户释放更大的潜力。网络数据交互一直是软件测试人员的主要测试对象,因为它们在确保应用程序质量方面起着关键...

    八音弦
  • 如何当好测试经理?

    张树臣
  • 一个完整的企业Java项目的生命周期

    1、需求分析  2、概要设计  3、详细设计(用例图,流程图,类图)  4、数据库设计(powerdesigner)  5、代码开发(编写)  6、单元测试(白...

    黑泽君
  • 持续测试是什么?

    软件开发和交付正在从复杂、独体式应用程序朝更加分布式、以服务为中心的架构转变,前缀的许多依赖关系在编译时解析,而后者的依赖关系在运行时解析。大部分企业应用程序...

    shaonbean
  • A/B测试

    在营销活动中,A / B测试能用于优化落地页,为其吸引更多流量,并将这些流量转化为有效线索。据统计,A/B测试能为B2B企业的落地页新增30%~40%的线索,电...

    Ptengine
  • 华为专家 | 轻量化微服务测试实践

    前言 在我过去工作的这十年间,IT行业经历了很多的变迁,从单体架构到微服务架构,从传统组织到敏捷组织,我正好都有不同的体验,现在我在华为任软件架构师,华为有各种...

    DevOps时代
  • 增效、降本,云测试成为经济复苏加速器

    有序完成复工的企业们发现,在注定不太容易的2020年,要更好地活着,谋求进一步发展,除了政府政策扶持,在运营层面增加效率、降低成本成为绕不过去的话题。

    曾响铃
  • 如何在DevOps中实施连续测试

    在过去的十年中,对软件开发的需求已急剧发展。软件已成为公司获得竞争优势的关键优势,特别是如果您的公司属于SaaS范畴。通过在SDLC中实施瀑布等传统流程,组织现...

    用户7118204

扫码关注云+社区

领取腾讯云代金券