论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自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容 ...
随机推荐
- loj515 「LibreOJ β Round #2」贪心只能过样例[bitset+bool背包]
由于bitset极其不熟练且在实际题目中想不起来运用它来优化,于是练了几道题. 这题是一个分组的bool背包,每组必须选一个,暴力的话是$O(n^5)$. 如果dp数组不要一维滚动的话,有两种枚举方法 ...
- C# 动态语言扩展(11)
在 C# 4 开始添加 dynamic 类型.Mono C# 已经支持 C# 6.0 了. DLR C# 4 动态功能是 Dynamic Language Runtime (动态语言运行时,DLR)的 ...
- Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
当出现警告的时候,恭喜你,你已经离成功很近了. 远程主机这里设为slave2,用户为Hadoop. 本地主机设为slave1 以下都是在远程主机slave2上的配置,使得slave1可以免密码连接到s ...
- TypeError: Cannot read property '$$' of undefined at HTMLElement._attached.wx.getPlatform._touchstartHandlerForDevtools
TypeError: Cannot read property '$$' of undefined at HTMLElement._attached.wx.getPlatform._touch ...
- elementUI el-date-picker 时间范围设置 固定时间段可选 配置
https://blog.csdn.net/sinat_37255207/article/details/91793889 <el-date-picker v-model="start ...
- 长春理工大学第十四届程序设计竞赛A Rubbish——并查集&&联通块
题目 链接 题意:在 $10^5 \times 10^5$ 的大网格上,给出 $n$ 的格点的坐标,求联通块数(上下左右及对角线都认为相邻) 分析 DFS需要遍历网格的每个格点,可能会超时? 初始化时 ...
- jmeter正则表达式提取多个值
1.返回的数据截图,需要获取customerId.customerName的值 2.把jmeter查看结果树返回的数据放在 Regester,正则表达式写 : "customerId&quo ...
- python_glob模块的使用
glob是Python自己带的一个文件操作相关模块,用它可以查找符合自己目的的文件,就类似于Windows下的文件搜索,支持通配符操作,*,?,[]这三个通配符,*代表0个或多个字符,?代表一个字符, ...
- codeforces#1163C2. Power Transmission (Hard Edition)(计算几何)
题目链接: https://codeforces.com/contest/1163/problem/C2 题意: 给出$n$个点,任意两点连接一条直线,求相交直线的对数 数据范围: $1 \le n ...
- UVA 12501 Bulky process of bulk reduction ——(线段树成段更新)
和普通的线段树不同的是,查询x~y的话,给出的答案是第一个值的一倍加上第二个值的两倍一直到第n个值的n倍. 思路的话,就是关于query和pushup的方法.用一个新的变量sum记录一下这个区间里面按 ...