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

测试左移_安全左移什么意思测试左移一词(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大佬提出了一种测试左移的方法论,尽早尽可能多的介入测试。这样做的好处就是将尽可能多的缺陷提早发现,基于缺陷修复成本曲线,这些缺陷发现的越早组织消耗的成本越少。实践这些的前提是,组织具有成熟的研发体系,比如完善的单元测试架构。
有些组织左移到了单元测试就停止了,但是如果可以进一步左移到编码阶段,其实能够获得更高价值, 毕竟,这是引入错误的地方。因此,如果组织能让在开发仍在进行的同时就开始寻找它们(缺陷),这就是组织从静态代码分析中受益的地方:通过查找最左侧的缺陷来修复缺陷。
通过静态分析,可以在实际的编码阶段开始寻找错误,这时发现错误的成本将尽可能降低。可以清楚地看到的那样,在“测试”开始之前先找到东西是最具成本效益的。 这也是最省时的方法,因为它不会使开发人员在尝试重现错误或理解故障方面有任何问题。 能够将缺陷修复周期从数天或数周缩短到数小时或数分钟。

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

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

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • golang2021激活码_通用破解码「建议收藏」

    golang2021激活码_通用破解码,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • js 数组splice_splice会影响原数组吗

    js 数组splice_splice会影响原数组吗今天用到了数组的删除,分别使用了splice和delete方法,记录一下,方便下次查找。原数组是一个关联数组,如vartest=[];test[1]={name:’1′,age:1};test[2]={name:’2′,age:2};test[4]={name:’3′,age:3};console.log(test)长度为5的关联数组,现在开始删除。1.splice方法test.splice(2

  • 【ceph】vdbench的使用教程——裸盘测试和文件系统测试

    【ceph】vdbench的使用教程——裸盘测试和文件系统测试目录即看即用详细说明vdbench简介常用执行选项和参数文件说明1、文件系统2、块设备(裸盘测试)运行使用1、单机运行2、联机运行结果分析1、输出文件2、结果分析测试说明1、测试总结2、常见测试参数即看即用测试一下vdbench的可用性:进入vdbench相应目录下./vdbench-t运行测试模型./vdbench-f{filename}-o{exportpath}#注:-f后接测试参数文件名,-o后接导出测试.

  • django和drf_jackson序列化原理

    django和drf_jackson序列化原理前言上一篇文章我们讲述了序列化,这篇就带大家一起来实现以下序列化Serializer我们使用序列化类Serializer,我们来看下源码结构,这里推荐使用pycharm左边导航栏的Structu

  • Linux curl 命令模拟 POST/GET 请求「建议收藏」

    Linux curl 命令模拟 POST/GET 请求「建议收藏」curl命令,是一个利用URL规则在命令行下工作的文件传输工具。curl支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、FTP等众多协议,还支持GET、POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征,还可以做网页处理流程和数据检索自动化。 …

  • 计算机cmd入门,教大家5个装逼用的CMD命令,让人一看你就是个电脑高手

    计算机cmd入门,教大家5个装逼用的CMD命令,让人一看你就是个电脑高手很多电脑小白使用电脑时,只会用鼠标点来点去的,教大家5个装逼用的CMD命令,让人一看你就是个电脑高手,专门震慑小姐姐、小学生。首先我们需要打开CMD命令提示符,这个操作大家都知道,按下键盘上的Windows+R键,然后输入“CMD”,按下回车键。一、改变命令提示符配色我们可以先输入“Color”—“空格”—“help”,来获取颜色的帮助。从这里可以看到,各种颜色的代码:0~7、A~F。如果想…

发表回复

您的电子邮箱地址不会被公开。

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