测试基础 聊聊测试左移

TesterHome小助手 · 2022年11月29日 · 最后由 KevinHon 回复于 2022年12月13日 · 4950 次阅读

编译:TesterHome
作者:Jersey Su,Yahoo 工程师

Shift-Left Testing (测试左移) 这个词我们追朔到 2001 年 Larry Smith 在 Dr.Dobb’s 期刊刊登的一篇文章。提到很多时候 QA 总是用手动测试完成任务,并且需要通过质量保证过程才能知道代码质量。

Bugs are cheap when caught young — Larry Smith

一、为什么要测试左移?

测试左移并非要代替所有的测试人员,它背后的概念更多的是越早且频繁地发现程序缺陷,因此开发人员可以更容易地修复问题,且成本跟压力都更小。同时它也回答了在不影响品质下,加速软件开发的方法。但这是什么意思呢?

回顾 1970–1990 年代,传统的开发模型 (SDLC) 是有顺序性的,从计划 -> 分析 -> 设计 -> 实操 -> 测试和整合 -> 维护,测试加入的时间都会在流程后期, 或者是整个流程的最后一项。

即使到现在, 很多团队还是会将测试放在开发流程的最后, 这也会造成很多潜在的问题:

  • 发布周期延迟,反馈迟缓。
  • 产品质量低下。
  • 开发和测试成本增加。
  • 测试成为瓶颈。

在传统的开发流程中,我们同时也会意识到发现 bug 的成本会随者时间而增加。因此,在测试左移的实践中,人们尝试将测试往开发流程的左边推送,在流程的早期就加入测试。

测试左移的概念,不只能够增加测试人员跟开发人员之间的合作,同时也反映出测试应该在更早期就介入。

测试左移的好处

  • 1、增加发布的速度
    假如你可以在开发前期就找到一个严重的 Bug,可以就能更有效率且容易的修复, 最显著的作用就是减少发布时间,反之就会增加发布时间。

  • 2、加强测试的覆盖率
    当一个项目开始将测试考虑在开发前期的时候,自然而然你也会考量到功能的可测试性,并且增加单元测试、功能测试、性能测试等等。这无形间也是加强了整个产品的测试覆盖率,间接会影响到整体的产品品质。

  • 3、简化流程
    老实说,测试左移不是一件简单的事情,但非常值得花时间跟精力来投资。对于整个测试团队来说,有更多的时间去深入了解产品,部署测试策略及改善测试方法。而且,还可以帮助测试团队更容易得导入测试工具及技术。
    提早测试也可以加更牢固地来巩固产品的商业逻辑跟测试 Script,并且驱动整个团队投入自动化测试。

  • 4、减少开发跟测试的成本
    发现错误其实在程序开发里面是一项挑战,越在后期发现的 Bug 有时候越难处理,间接投入成本也会提高。举个例子来说,如果是一个 payment 的 SDK,在预计上线前期发现一个严重的安全性问题,公司势必要投入更多的金钱人力精力来修复这个缺陷。复杂的线上产品,更难去纠错及修复,更别说是后期维护所附上的代价。

    1. 改善产品品质 当 Bug 以及问题都能够在早期被讨论、发现及修复,这也意味者测试人员、开发人员有着密切的沟通及反馈,这也确保交付的产品是一个高品质且稳定的版本。

测试左移的最佳实践

  • 1、良好的 Planning
    当产品需求都确定的时候,开发及测试人员应该要尽可能地在前期开始计划,并且更好地规划如何让产品进行测试,让整体的产品的易测试性提升。

  • 2、完整了解产品需求
    通过 Sprint Planning 我们尽可能的厘清产品需求,确保团队成员在产品开发环节不会有错误的认知,比如需求误解、设计不当、团队没对齐目标等。

  • 3、定义品质的标准
    由于开发者并不是那么深厚的测试基础,因此测试团队应该要明确的定义品质的标准,因此开发者在执行测试时可以厘清 bug 的类型及状态。

  • 4、拥抱测试自动化
    开发团队应该尽可能地将测试自动化,这不仅能够快速地知道代码的品质, 也能够确保功能的正确性。测试自动化是一个测试左移其中一个很重要的因子。

  • 5、导入测试工具
    俗话说,“工具善其事,必先利其器”。尝试去了解更多的工具,帮助团队建立起 CI/CD,带领团队一起前进。

总结

测试左移在测试领域已经是一个显学,笔者在目前的工作环境中也注重这个测试方法的实践,特别是笔者工作的环境中,需要面对跨区域及跨时区的团队协作,任何把测试提早的事情,都有助于公司减少成本并帮助团队前进。改变是痛苦,但不改变会更加痛苦。

共收到 2 条回复 时间 点赞

测试左移,还有测试右移

左移右移,就是要全链路的覆盖,持续进行

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册