测试左移_安全左移什么意思

测试左移_安全左移什么意思测试左移一词(shift-lefttesting)可能最早出现在测试行业大佬ArthurHicken的博客里,在他的博客中提到了测试左移的看法。他提到bug的产生,其中85%的缺陷产生于编码阶段,

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

测试左移一词(shift-left testing)可能最早出现在测试行业大佬Arthur Hicken的博客里,在他的博客中提到了测试左移的看法。他提到bug的产生,其中85%的缺陷产生于编码阶段,这是可以预期的:

 测试左移_安全左移什么意思

无论是开发编码错误,或者对需求理解有误,或者没有遵守特别的代码规范等等,各种原因,无可否认都会在编码阶段引入缺陷。
尤其是如果将各个应用组合在一起时,缺陷也会被引入到应用中,尤其在涉及到多团队配合时。(譬如目前流行的微服务架构)。
那么这些缺陷什么时候能被发现呢?请观察下面一张图中橙色的折线:

测试左移_安全左移什么意思

看起来就很因吹思婷了,因为在第一阶段(coding)时几乎很难发现缺陷,当然,这在目前研发流程中也是常见的,因为一般测试都是从单元测试阶段(unit test)甚至功能测试(functional test)才开始介入的。两张折线对比就能很明显发现,缺陷大部分在编码阶段被引入,却几乎没有被发现!!!
那么解决缺陷的成本是多少呢?下面这张图会让人们非常惊讶:

测试左移_安全左移什么意思

编码阶段修复缺陷的成本与编码本身成本相当,这很容易理解。但是在研发迭代周期中,缺陷发现的越晚,修复的成本将会急剧增加。譬如功能测试阶段修复缺陷的成本是10倍,系统测试阶段则是40倍,实际部署阶段剧增到640倍的成本,真的是可笑又可怕。举一个真实案例,当年微软的windows系统某版本发布时,因为一个ui bug在oem阶段才被发现导致数百万张光盘被迫收回并销毁,损失至少千万美元,而这个ui bug如果在coding阶段发现的话,可能只需要几秒钟就能修复!!!
大佬Arthur Hicken认为有以下原因导致成本上升:
跟踪问题所需的时间和精力。 测试用例越复杂(越大),就越难确定哪个部分是真正的缺陷原因。
由于引入了诸如数据库或第三方API之类的相关系统,在开发人员的电脑上则很难将缺陷复现。(在这种情况下,组织在缺陷检测和缺陷修复之间通常会经历数周的延迟。)
修复缺陷所需的更改的影响。 如果是简单的错误,那就没关系了。 但是,如果您在很多地方都做过此事,或者使用了错误的框架,或者所构建的代码的可伸缩性不足以承受预期的负载,或者无法确保代码的安全性…
笔者理解,其实不需要罗列很多成本上升的原因。因为在长久的研发过程中,所有it从业者或多或少都会有自己的心得体会。
因此Arthur Hicken大佬提出了一种测试左移的方法论,尽早尽可能多的介入测试。这样做的好处就是将尽可能多的缺陷提早发现,基于缺陷修复成本曲线,这些缺陷发现的越早组织消耗的成本越少。实践这些的前提是,组织具有成熟的研发体系,比如完善的单元测试架构。
有些组织左移到了单元测试就停止了,但是如果可以进一步左移到编码阶段,其实能够获得更高价值, 毕竟,这是引入错误的地方。因此,如果组织能让在开发仍在进行的同时就开始寻找它们(缺陷),这就是组织从静态代码分析中受益的地方:通过查找最左侧的缺陷来修复缺陷。
通过静态分析,可以在实际的编码阶段开始寻找错误,这时发现错误的成本将尽可能降低。可以清楚地看到的那样,在“测试”开始之前先找到东西是最具成本效益的。 这也是最省时的方法,因为它不会使开发人员在尝试重现错误或理解故障方面有任何问题。 能够将缺陷修复周期从数天或数周缩短到数小时或数分钟。

看完点个赞呗,难道想白嫖不成?更多内容请访问微信公众号 :三国测,扫码关注哟!

测试左移_安全左移什么意思

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167309.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • bootstrap分页css样式,修改bootstrap-table中的分页样式

    bootstrap分页css样式,修改bootstrap-table中的分页样式使用bootstrap-table时,使用$(“”)选择器没办法选中下方的分页button按钮,可能跟它是动态生成的有关吧。最终找到与之对应的js(bootstrap-table.js中搜索了data-toggle),将class类更换成自己定义的一个class,完成了期望的效果varpageNumber=[Utils.sprintf(”,this.options.paginationV…

    2022年7月17日
    16
  • java语言helloworld源代码[通俗易懂]

    java语言helloworld源代码[通俗易懂]java语言helloworld源代码publicclassHello{publicstaticvoidmain(String[]args){System.out.println(“hello,world”);}}

    2022年5月28日
    39
  • RNN训练算法BPTT介绍

    RNN训练算法BPTT介绍 本篇文章第一部分翻译自:http://www.wildml.com/2015/10/recurrent-neural-networks-tutorial-part-3-backpropagation-through-time-and-vanishing-gradients/,英文好的朋友可以直接看原文。最近看到RNN,先是困惑于怎样实现隐藏层的互联,搞明白之后又不太明白如何使用BPTT进…

    2022年6月23日
    33
  • uva 644

    uva 644第一次交用的冒泡排序,Re了,改成快排OK#include#include#include#includeusingnamespacestd;chartemp[100][10];intcmp(constvoid*_a,constvoid*_b){char*a=(char*)_a;char*b=(char*)_b

    2022年6月16日
    27
  • navict+15+激活码 最新(注册激活)

    (navict+15+激活码 最新)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~S32P…

    2022年3月26日
    45
  • java堆栈 (转)

    java堆栈 (转)

    2021年12月4日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号