Parasoft是一家专门提供软件测试解决方案的公司,解决方案几乎涵盖了软件开发周期从开始到结束所有的阶段。在工作中,您越早发现代码中的问题,他们的影响就越小,处理的成本也越低。在本文中,我们将探讨左移方法以及如何在组织中左移。

左移测试方法

shift-left”的运动是将关键测试实践转移到开发生命周期的早期阶段,其特别适用于敏捷、持续和DevOps计划。那么为什么需要进行早期的软件测试呢?

许多测试活动发生在周期的后期,需要更长时间才能找出问题所在并且需要花费更多的时间来修复。向左移动是指将缺陷的识别和预防转移到更早的阶段。如果没有进行左移测试,只等着在周期的后期执行测试实践,那能做的就只是修补而不是正确的修复它们。

代码什么时候会有Bug

在Capers Jones的一个着名的图表中很好地说明了左移测试策略,该图表显示了在软件开发的几个阶段,软件处理错误和缺陷的成本在增加。该图的第一部分显示绝大多数错误在编码阶段进入,这是符合预期的。

无论是出现实际错误,还是误解了要求,或者没有考虑特定代码片段的影响,开发人员都会在代码生成时引入缺陷。

什么时候发现了这些Bug

我们在引入的图表发现缺陷的位置进行显示,发现基本上是第一条线的反转。

这并不奇怪,因为通常在开始测试时会发现错误,如果没有适当的基础设施以及在一切准备就绪之前就开始测试可能会很困难。我们在这里看到的是,错误主要是在编码期间引入的,但在该阶段几乎从未找到过。

修复Bug的费用

由于大多数错误是在编码期间引入的,但直到后期才发现,因此了解在每个开发阶段修复缺陷所需的成本差异变得非常重要。如下图所示:

我们看到一个令人讨厌的成本变化。修复潜入系统测试Bug的成本是在编码期间修复它的40倍,或者比在单元测试期间找到相同的bug要贵10倍。这种成本上升的原因有很多,包括:

  • 追踪问题所需的时间和精力。测试用例越复杂,就越难以弄清楚它的哪一部分是真正的麻烦制造者。
  • 在数据库或第三方API之类的系统依赖下,开发人员找到Bug的难度增加。
  • 修复Bug所产生的其他影响。比如这个Bug已经引入到其他框架或者任何地方。

早期测试和频繁测试

现在橙色线添加到下图中,它表明了在早期测试的建议下Bug检测周期已经左移:

您可以看到橙色检测曲线代表的成本值在左侧变大,意味着我们的成本显着下降。

左移测试依赖于更成熟的开发实践环境,您只需要进行一定的手动/UI测试即可证明一切正常。这样,后期循环测试就是为了证明功能,而不是发现错误。

更远的左移测试

有些组织在进一步向左推进编码本身时会获得更多的价值。毕竟这是最开始引入错误的地方。通过查找更左边的缺陷,使缺陷修复更便宜:

避免将负担转移给开发人员

更远的左移测试有一个危险,就是不小心给开发人员带来太多的测试负担。虽然随着时间的推移,缺陷修复的成本会大幅提高,但左侧的资源可能是软件生命周期中的最高成本。

所以正确的是将所有提到的这些提升到一个新的水平。我们不仅希望更早发现缺陷,而且希望减少实际放入应用程序的缺陷数量。

左移测试的主要方法

一、应用开发测试最佳实践

执行早期阶段开发实践(例如静态代码分析和单元测试)有助于在流程早期识别和预防缺陷。重要的是减少错误的数量而不是找到错误。

二、利用服务虚拟化来实现持续测试

您必须接受在开发过程的所有阶段(包括后续阶段)创建的测试,并继续执行它们。单元测试可以很容易地连续执行,但由于外部系统依赖性,后续阶段功能测试的执行通常很困难,这是您可以利用服务虚拟化实现连续测试的地方。

总结

有效的质量保证流程可显着提高质量,同时节省时间和金钱。 当您通过利用现代软件测试技术向左移动时,您可以获得可靠和安全的软件。通过左移测试,您可以通过更早发现Bug来降低测试成本,同时还可以减少放入代码中的Bug数量。

查看转载原文请点击这里。

Parasoft软件测试实践:什么是左移测试?相关推荐

  1. 《软件测试实践--测试Web MSN》 之我的学习笔记(一)

    开篇话: 对于软件测试,对于一名大三的学生来说,我了解的确实不多,也很不全面,可以说是从学长学姐得到一些有些以偏概全的观点: 比如: 1.测试比开发要求的技术门槛要低,简单地来说,测试人员只需要轻点鼠 ...

  2. 基于超级网银异地多活项目的多活类项目测试经验分享,了解金融行业软件测试实践

    背景:在软件测试领域,金融行业软件测试无疑有着重要的位置,它吸纳了众多行业相关从业者,同时随着金融业务不断增加.模式也在不断变化,也对金融行业的软件测试人员在能力.测试技能的要求更高. 本文中,中国农 ...

  3. 扫雷游戏软件测试,暑期社会实践 | 扫雷游戏的测试完善及总结

    原标题:暑期社会实践 | 扫雷游戏的测试完善及总结 在程序的前期准备和代码功能实现的基础上,信息工程学院扫雷少女101团队成员针对已具备基本雏形的扫雷游戏进行全方位仔细的测试,来发现程序现有或是未知的 ...

  4. 【软件测试】敏捷方法与测试左移

    文章目录 敏捷方法 测试左移 测试左移与DevOps 敏捷方法 当敏捷开发方法(Agile Development Methods)出现时,人们认为它们"最适合约 50 人或更小的团队,这些 ...

  5. 软件测试五大特性,《软件测试52讲》——代码测试篇

    <软件测试52讲> 代码测试篇 25--掌握代码级测试的基本理念与方法 常见代码错误类型 1.语法特征错误 语法特征错误是指,从编程语法上就能发现的错误.比如,不符合编程语言语法的语句等. ...

  6. ”全球软件测试实践“问卷调查报告

    近日,ISTQB®发布最新"全球软件测试实践"的问卷调查报告,共有来自89个以上国家的将近3200个受访者参与此次问卷调查.报告涵盖了从"测试组织和经费"到&q ...

  7. 网上订票软件测试工资,软件测试实践《LoadRunner自带订票网站》性能分析报告...

    <软件测试实践<LoadRunner自带订票网站>性能分析报告>由会员分享,可在线阅读,更多相关<软件测试实践<LoadRunner自带订票网站>性能分析报告 ...

  8. 【软件测试】8年资深测试,聊一聊测试技术的厚度......

    目录:导读 前言 一.Python编程入门到精通 二.接口自动化项目实战 三.Web自动化项目实战 四.App自动化项目实战 五.一线大厂简历 六.测试开发DevOps体系 七.常用自动化测试工具 八 ...

  9. 拿去吧你,软件测试的文件和目录测试都在这

    铁子们,今日学习份额已更新~一起来头秃吧! 本章节主要讲解"软件测试的文件和目录测试"的内容,文件和目录测试主要是从服务器中的文件内容和目录方面测试服务器是否存在漏洞. 主要需要测 ...

最新文章

  1. Dockerfile中npm中Error: could not get uid/gid问题的解决方法
  2. 数据中心或许会成为未来5G最强大的技术支撑
  3. 如何系统性掌握深度学习中的数据使用
  4. CIKM 2021 | Google出品:将对比学习用于解决推荐系统长尾问题
  5. 华为吴晟:分布式监控系统的设计与实现
  6. javascript-变量的作用域
  7. 技本功丨用短平快的方式告诉你:Flink-SQL的扩展实现...
  8. rstudio server docker 部署_Docker环境运行Spring Cloud项目
  9. Python Revisited Day 09 (调试、测试与Profiling)
  10. ==、Equals 、ReferenceEquals它们的异同
  11. VS2010使用c++、gSOAP创建WebService 图文教程
  12. ttl转rs232发送十六进制_TTL和RS232之间的详细对比
  13. 赠书 | 《网络威胁情报技术指南》
  14. python发微信红包_微信公众号开发小记——5.python微信红包
  15. How to update BOL entity property value via ABAP code
  16. 2018ccpc吉林 C:JUSTICE 思维
  17. LED显示屏连接电脑屏幕以后无法显示
  18. 双色球python十种算法_13种最有效的推算双色球方法
  19. IT届人士的各种女人
  20. 如何理解自己的意识?

热门文章

  1. this全面解析(二)
  2. 通过jQuery.support看javascript中的兼容性问题
  3. RedHat系列linux源码包软件的安装与卸载
  4. 多角度解读优酷土豆合并的深意
  5. Mozilla Firefox 7.0 发布
  6. 轻松查看网页源代码-BlazingTool Instant Source软件的使用
  7. DevOps 和敏捷开发的区别是什么?
  8. 突发:Maze 勒索团伙公开 LG 和 Xerox 的内部数据,达数十GB
  9. Java:Overriding与Overloading
  10. 数据分析需要权衡哪些要素?