Parasoft软件测试实践:什么是左移测试?

发表于:2021-7-30 10:26

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:ymy_666666    来源:掘金

  Parasoft是一家专门提供软件测试解决方案的公司,解决方案几乎涵盖了软件开发周期从开始到结束所有的阶段。在工作中,您越早发现代码中的问题,他们的影响就越小,处理的成本也越低。在本文中,我们将探讨左移方法以及如何在组织中左移。
  左移测试方法
  “shift-left”的运动是将关键测试实践转移到开发生命周期的早期阶段,其特别适用于敏捷、持续和DevOps计划。那么为什么需要进行早期的软件测试呢?
  许多测试活动发生在周期的后期,需要更长时间才能找出问题所在并且需要花费更多的时间来修复。向左移动是指将缺陷的识别和预防转移到更早的阶段。如果没有进行左移测试,只等着在周期的后期执行测试实践,那能做的就只是修补而不是正确的修复它们。
  代码什么时候会有Bug
  在Capers Jones的一个着名的图表中很好地说明了左移测试策略,该图表显示了在软件开发的几个阶段,软件处理错误和缺陷的成本在增加。该图的第一部分显示绝大多数错误在编码阶段进入,这是符合预期的。
  无论是出现实际错误,还是误解了要求,或者没有考虑特定代码片段的影响,开发人员都会在代码生成时引入缺陷。
  什么时候发现了这些Bug
  我们在引入的图表发现缺陷的位置进行显示,发现基本上是第一条线的反转。
  这并不奇怪,因为通常在开始测试时会发现错误,如果没有适当的基础设施以及在一切准备就绪之前就开始测试可能会很困难。我们在这里看到的是,错误主要是在编码期间引入的,但在该阶段几乎从未找到过。
  修复Bug的费用
  由于大多数错误是在编码期间引入的,但直到后期才发现,因此了解在每个开发阶段修复缺陷所需的成本差异变得非常重要。如下图所示:
  我们看到一个令人讨厌的成本变化。修复潜入系统测试Bug的成本是在编码期间修复它的40倍,或者比在单元测试期间找到相同的bug要贵10倍。这种成本上升的原因有很多,包括:
  ·追踪问题所需的时间和精力。测试用例越复杂,就越难以弄清楚它的哪一部分是真正的麻烦制造者。
  ·在数据库或第三方API之类的系统依赖下,开发人员找到Bug的难度增加。
  ·修复Bug所产生的其他影响。比如这个Bug已经引入到其他框架或者任何地方。
  早期测试和频繁测试
  现在橙色线添加到下图中,它表明了在早期测试的建议下Bug检测周期已经左移:
  您可以看到橙色检测曲线代表的成本值在左侧变大,意味着我们的成本显着下降。
  左移测试依赖于更成熟的开发实践环境,您只需要进行一定的手动/UI测试即可证明一切正常。这样,后期循环测试就是为了证明功能,而不是发现错误。
  更远的左移测试
  有些组织在进一步向左推进编码本身时会获得更多的价值。毕竟这是最开始引入错误的地方。通过查找更左边的缺陷,使缺陷修复更便宜:
  避免将负担转移给开发人员
  更远的左移测试有一个危险,就是不小心给开发人员带来太多的测试负担。虽然随着时间的推移,缺陷修复的成本会大幅提高,但左侧的资源可能是软件生命周期中的最高成本。
  所以正确的是将所有提到的这些提升到一个新的水平。我们不仅希望更早发现缺陷,而且希望减少实际放入应用程序的缺陷数量。
  左移测试的主要方法
  一、应用开发测试最佳实践
  执行早期阶段开发实践(例如静态代码分析和单元测试)有助于在流程早期识别和预防缺陷。重要的是减少错误的数量而不是找到错误。
  二、利用服务虚拟化来实现持续测试
  您必须接受在开发过程的所有阶段(包括后续阶段)创建的测试,并继续执行它们。单元测试可以很容易地连续执行,但由于外部系统依赖性,后续阶段功能测试的执行通常很困难,这是您可以利用服务虚拟化实现连续测试的地方。
  总结
  有效的质量保证流程可显着提高质量,同时节省时间和金钱。 当您通过利用现代软件测试技术向左移动时,您可以获得可靠和安全的软件。通过左移测试,您可以通过更早发现Bug来降低测试成本,同时还可以减少放入代码中的Bug数量。

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号