左移测试

2022年01月15日 阅读数:1
这篇文章主要向大家介绍左移测试,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

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

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

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

赋予测试权力

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

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

所以,​​Shift-Left​​的概念不只有助于在产品开发的早期阶段发现错误;但它也能够帮助测试团队与其余利益相关者合做,提升领域竞争力,并提出更现实的测试案例。单元测试

左移测试的主要好处

将左移测试做为SDLC的一部分进行时,会带来不少好处。学习

下降成本

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

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

提高质量

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

这样能够减小在生产阶段遇到的问题数量,这意味着经过严格的代码质量检查能够提升总体代码质量,从而确保向客户交付“更稳定的最终产品”。

左移测试实现

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

左移测试亮点

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

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

左移测试种类

左移测试能够经过4种不一样的方式进行:

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

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