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