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

测试左移_安全左移什么意思测试左移一词(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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Jenkins详细教程

    Jenkins详细教程大纲  1.背景  在实际开发中,我们经常要一边开发一边测试,当然这里说的测试并不是程序员对自己代码的单元测试,而是同组程序员将代码提交后,由测试人员测试;  或者前后端分离后,经常会修改接口,然后重新部署;  这些情况都会涉及到频繁的打包部署;  手动打包常规步骤:  1.提交代码  2.问一下同组小伙伴有没有要提交的代码  3.拉取代码并打包(war包,或者jar包)  4.上传到Linux服务器  5.查看当前程序是否在运行  6.关闭当前程序  .

    2022年5月15日
    65
  • linux数据恢复_Linux操作系统服务器意外断电数据恢复成功案例

    【linux服务器数据恢复介绍】客户带来一台需要进行数据恢复的服务器,服务器是linux操作系统,导致服务器数据丢失的原因是由于服务器意外断电导致的一部分文件丢失。数据丢失后客户没再进行其他操作,直接将服务器正常关机后切断电源带到北亚数据恢复中心进行数据恢复操作。【服务器数据备份】北亚数据恢复中心接到客户的服务器后,将客户的linux服务器连接到数据恢复专用服务器上,将客户数据以只读模式进行镜像备…

    2022年4月3日
    57
  • Eigen库要点「建议收藏」

    Eigen库要点「建议收藏」旋转矩阵,旋转向量,四元数关系如下:另外,初始化(赋值)变换矩阵T的方式为:Isometry3dTcw(rotation);//rotation可以是旋转矩阵,可以是四元数,可以是旋转向量Tcw.pretranslate(t);//添加平移向量//或者:Isometry3dTcw=Isometry3d::Identity()//如果没有直接初始化,先设为单位阵Tcw.pre…

    2022年10月19日
    2
  • go语言环境搭建_如何搭建语言培训平台

    go语言环境搭建_如何搭建语言培训平台因为项目的原因,要用到go语言,所以自学了一下。要想学习一门语言,首先必须搭建 语言的环境,go也一样,我这边是采用源码安装的。1. 下载安装包,如果觉得翻墙麻烦,可以直接在Golang中国社区下载安装包 http://www.golangtc.com/download2.假设我们在包解压到 /home/work/dev/package/go目录下, 

    2022年10月12日
    2
  • CSDN更换博客皮肤教程

    CSDN更换博客皮肤教程1.进入博客设置,按F12键打开开发者工具调试页面2.找到博客皮肤的div,鼠标右键编辑HTML3.将checked=“checked”readonly=””剪切到你想要的皮肤里面,这里我是技术黑板的皮肤,之前就改了4.点击左边的页面,可以看到想要的皮肤是选中状态,然后点击保存,皮肤更改成功!…

    2022年7月14日
    18
  • &与&&的区别

    &与&&的区别

    2021年10月2日
    35

发表回复

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

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