论UT阶段重要性
测试与开发这对立的命运啊
如果是对测试从业者心存鄙视的朋友啊,请关掉此页,带着偏见不好看的~
人生就像一个旅途,每个人看到风景不一样,世界观、人生观、价值观也就不同。不要试着去改变别人,因为你的观点在他的世界里并没有例子,或者例子在他世界里最后得到的结果与你相反的。
十年前看了一本软件测试书籍,里面有一个理论:
-------------------------------
一个软件的缺陷发现成分构成:8:[2=(2:8)]
8:2, 缺陷发现分成10成,其中8成是开发UT阶段发现的,2成流到测试阶段。
2=(2:8),测试阶段这2成也看作一个10成,其中2成是测试阶段发现的,8成是发布后客户发现的。
-------------------------------
当时对这个理论是噗之以鼻,但现在对于从业测试八年的我来说,这特么 太真相、太事实。
就算多会功能,安全,性能,自动化,最多是把第二个比率加强到5:5。
所以总10成里一定有1~1.6成的缺陷流向生产环境,事实缺陷总是在软件发布后被客户发现并投诉的。
在下不会抛出这个命题求解。肯定存在一些大神可能有了解决方案,但绝对是独有的。这世界还没有贾维斯。
工作这么多年,观察了许多许多,咳~也就是所接触到的全部开发,其中仅有两位能做到UT自己的代码把这8成缺陷找完。可能是自身的层次不够高,接触不到更多的优秀开发大佬。
讲讲这两位同事吧(心里其实想吐槽那些的,不过糟心,还是讲讲正能量),
七年前,刚参加工作,那时我也是一位开发,写MFC前端,C/S项目,现在做了测试,惭愧!惭愧! 这位同事刚从部队转业出来,做事超级认真。他当时接到一个代码量为两周的大需求,花了七天,将流程图,时序图,详设,伪代码等文档都实现了,接着三天写完代码。代码三天搞定强大吧?但是,更强大的来了,看着他写Gtest,一天把自己所有的函数的Gtest全干完,然后一个一个测试,把所有传参场景都跑完了,无误后才提交测试,我全程在边上看他直播(想拍死当时的自己,坐这么近都没感染到他的优秀)。测试果然没发现几个问题的。这种匠人精神,怎么说了!现在应该还有,不过估计都存在于大厂中。这位同事与我共事的第二年就三面HW进去了。
另一位平凡一点,在一家外包公司,此时我已经转测试很久了,这位同事接了一个七天代码量的活,第一天弄好详设(后来才知道那详设里面有测试用例),码了五天代码,后面两天,一直在自己写接口测试脚本,搭建环境做功能测试,连UI的测试都不放过,等到第七天转测试给我。多数据提交经过七个阶段,七个角色层层审核,最后发布信息的大流程,一次性冒烟通过(最近项目组是全部开发包括项目经理都问我冒烟测试是啥意思,呵~),没有多余的话,三天测试,共测试了三轮功能,暴力测试,安全测试,共发了14个缺陷,啧啧~,上线后一直稳定。做完这个需求他就辞职了,理由是觉得周边没有一个懂他的人,没有一个朋友。其实吧,是拿到了一个大offer,都懂都懂,嘿嘿~
感谢人生遇到过这两位同事,朋友,匠人。
说完好的了啊,再说说那些的吧,唉~糟心~
近一年来,每天提缺陷10多个、脑补产品需求、教开发各种场景走流程、自己去抓取接口分析、给开发提供场景参数、还得去研究各种安全场景、测出一些低级的安全问题,然后软件功能上线后,弄的鸡飞狗跳的,天天紧急修复。能造成这样的情况,当然是毫无UT阶段可言啦,设计文档是啥东西,好吃么?
现在是这个潮流,快餐化、速食化,谁都不想把时间花在一些枯燥无味且自己看作没用的事情上的。UT将会在一些层次被神话了、传说了,是我层次太低吧。
最后想法:即然开发从业者都不把UT阶段这8成做到的话,{8:[2=(2:8)]} = 10,那么这10成全压在测试阶段,测试阶段仅能发现的缺陷是2~5成,还有5~8成是流向生产的。
可以想像,没有开发严格的UT阶段,一个软件发布在理论上(多年经验告诉我,需要替换成事实上)是存在着巨大的风险的。线上用户便成付费测试人员。
开发者会说:’测试也可以UT呀’?
当然,这是对的,测试里面有UT工作者。但测试工作者分为功能,性能,自动化,UT(白盒),接口安全等方向。目前业内,90%都是功能 、自动化测试从业者。且大多数是速食小白。开发者如何要求测试普遍能UT呢?
提醒开发者们:不努力UT,难搞哦!像我那两位朋友,都接到好的offer了。行动起来吧,做好UT,做一个牛逼的coder,别让测试们操碎了心,好吗~
论UT阶段重要性的更多相关文章
- UT之最后一测
经过前面几次文章的分享的UT的相关知识,今天接着分享UT相关最后一测文章,希望对大家在UT的学习中有一点点的帮助. Spring集成测试 有时候我们需要在跑起来的Spring环境中验证,Spring ...
- 转:google测试分享-SET和TE
原文: http://blog.sina.com.cn/s/blog_6cf812be0102vbnb.html 前端时间看了google测试之道,收获了一些,在此总结下并打算写一个系列blog,顺 ...
- OLAP、OLTP的介绍CBO/RBO
OLTP与OLAP的介绍 数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing).联机分析处理OLAP(On-Line Analytical ...
- 一个基于集成jenkins的测试平台
(一)先看测试业务的情况: 有各种各样的任务包括代码构建.部署搭建.单元测试.功能自动化测试(包括许多模块的功能自动化测试,有十几个居多),性能测试.正确性验证:复杂一点的是这些任务在不同的测试阶段中 ...
- Survey of single-target visual tracking methods based on online learning 翻译
基于在线学习的单目标跟踪算法调研 摘要 视觉跟踪在计算机视觉和机器人学领域是一个流行和有挑战的话题.由于多种场景下出现的目标外貌和复杂环境变量的改变,先进的跟踪框架就有必要采用在线学习的原理.本论文简 ...
- 第二阶段:2.商业需求分析及BRD:3.产品需求分析
产品需求收集之后就可以进行产品需求分析了. 比如微信功能的逐步完善,偏向于做加法,但有时候也会做减法. Y轴是重要跟不重要 X轴是紧急跟不紧急 然后通过各个需求的分数来确定坐标位置.同时可以根据阶段调 ...
- 你真的会玩SQL吗?之逻辑查询处理阶段
你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...
- 2016福州大学软件工程第五、六次团队作业-Alpha阶段成绩汇总
1.本次作业成绩统计结果: 本次Alpha阶段团队作业公布如下: 表格说明: PE:贡献百分比 YS:演示评分(满分15分) BK:博客评分(满分15分) SH:事后诸葛亮环节(满分5分) P:个人分 ...
- 回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议
引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容 ...
随机推荐
- Spring实战(第4版)
第1部分 Spring的核心 Spring的两个核心:依赖注入(dependency injection,DI)和面向切面编程(aspec-oriented programming,AOP) POJO ...
- Bootstrap-轮播图-No.2
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- iterm2 "agnoster"主题设置中的一些踩坑 2018.8
主线教程:https://www.cnblogs.com/xishuai/p/mac-iterm2.html (1)在链接的“3.配置oh My zsh”中,编辑vim~/.zshrc后两下回车,然后 ...
- TypeError: Object of type 'ListSerializer' is not JSON serializable
问题: 解决:ser.data是json数据,你想要的
- Verilog从文件读数据
reg start;reg [17:0] counter;always @(posedge i_clk)//置rst.startbegin //产生读数据地址 if(counter==171519|| ...
- ttf-mscorefonts-installer 无法安装,解决办法
ttf-mscorefonts-installer 无法安装,解决办法 原 lieefu 发布于 2017/01/11 08:11 字数 163 阅读 1007 收藏 0 点赞 0 评论 0 面试:你 ...
- 【线性代数】1-0:向量(Vector)
title: [线性代数]1-0:向量(Vector) toc: true categories: Mathematic Linear Algebra date: 2017-08-28 10:01:2 ...
- python桶排序代码
代码基于3.8 def bucketSort(nums): #选择一个最大的数 max_num = max(nums) # 创建一个元素全是0的列表, 当做桶 bucket = [0]*(max_nu ...
- 使用Pillow(PIL)库实现中文字符画
上班摸鱼写的,不多说了,直接上脚本 #coding=utf-8 from PIL import Image from PIL import ImageDraw from PIL import Imag ...
- iscc2018-Reverse-writeup
RSA256 解析公钥 yafu质因数分解 p=325045504186436346209877301320131277983 q=3028255367440967415185462127611943 ...