测试与开发这对立的命运啊

如果是对测试从业者心存鄙视的朋友啊,请关掉此页,带着偏见不好看的~

人生就像一个旅途,每个人看到风景不一样,世界观、人生观、价值观也就不同。不要试着去改变别人,因为你的观点在他的世界里并没有例子,或者例子在他世界里最后得到的结果与你相反的。

十年前看了一本软件测试书籍,里面有一个理论:

-------------------------------

一个软件的缺陷发现成分构成: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阶段重要性的更多相关文章

  1. UT之最后一测

    经过前面几次文章的分享的UT的相关知识,今天接着分享UT相关最后一测文章,希望对大家在UT的学习中有一点点的帮助. Spring集成测试 有时候我们需要在跑起来的Spring环境中验证,Spring ...

  2. 转:google测试分享-SET和TE

    原文:  http://blog.sina.com.cn/s/blog_6cf812be0102vbnb.html 前端时间看了google测试之道,收获了一些,在此总结下并打算写一个系列blog,顺 ...

  3. OLAP、OLTP的介绍CBO/RBO

    OLTP与OLAP的介绍 数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing).联机分析处理OLAP(On-Line Analytical ...

  4. 一个基于集成jenkins的测试平台

    (一)先看测试业务的情况: 有各种各样的任务包括代码构建.部署搭建.单元测试.功能自动化测试(包括许多模块的功能自动化测试,有十几个居多),性能测试.正确性验证:复杂一点的是这些任务在不同的测试阶段中 ...

  5. Survey of single-target visual tracking methods based on online learning 翻译

    基于在线学习的单目标跟踪算法调研 摘要 视觉跟踪在计算机视觉和机器人学领域是一个流行和有挑战的话题.由于多种场景下出现的目标外貌和复杂环境变量的改变,先进的跟踪框架就有必要采用在线学习的原理.本论文简 ...

  6. 第二阶段:2.商业需求分析及BRD:3.产品需求分析

    产品需求收集之后就可以进行产品需求分析了. 比如微信功能的逐步完善,偏向于做加法,但有时候也会做减法. Y轴是重要跟不重要 X轴是紧急跟不紧急 然后通过各个需求的分数来确定坐标位置.同时可以根据阶段调 ...

  7. 你真的会玩SQL吗?之逻辑查询处理阶段

    你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...

  8. 2016福州大学软件工程第五、六次团队作业-Alpha阶段成绩汇总

    1.本次作业成绩统计结果: 本次Alpha阶段团队作业公布如下: 表格说明: PE:贡献百分比 YS:演示评分(满分15分) BK:博客评分(满分15分) SH:事后诸葛亮环节(满分5分) P:个人分 ...

  9. 回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议

    引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容 ...

随机推荐

  1. Google 的Web开发相关工具

    一.PageSpeed Insights PageSpeed Insights 能够针对移动设备和桌面设备生成网页的实际性能报告,并能够提供关于如何改进相应网页的建议. 在线工具:https://de ...

  2. 如何在网页标题栏title加入logo(icon)图标?

    打开某一个网页会在浏览器的标签栏处显示该网页的标题和图标,当网页被添加到收藏夹或者书签中时也会出现网页的图标,怎么在网页title左边显示网页的logo图标呢? 方法一(被动式): 制作一个ico格式 ...

  3. NodeList类数组对象: HTMLCollection , NamedNodeMap,两套API(childNodes , children)

    快捷键:leishuzuduixiang(类数组对象)  bianlijiedian(遍历节点)  jiedian(节点)  htmlcollection , namednodemap , nodel ...

  4. MySQL多表查询总结

    MySQL术语: Redundacncy(冗余):存储两次或多次数据,以便实现快速查询. Primary Key(主键):主键是唯一的.表中每条记录的唯一标识. Foreign Key(外键):用于连 ...

  5. [Luogu] 花神游历各国

    https://www.luogu.org/problemnew/show/P4145 线段树区间求和 + 区间开根号 对1e9的数开根号下取整用不了几次就会<=1 因此暴力开根号,记录区间最大 ...

  6. 【poj1733】Parity game--边带权并查集

    Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 15776   Accepted: 5964 Description Now ...

  7. xgboost 特征重要性计算

    在XGBoost中提供了三种特征重要性的计算方法: ‘weight’ - the number of times a feature is used to split the data across ...

  8. MySQL之pymysql

    pymysql的安装 pip install PyMySQL 连接数据库   import pymysql db = pymysql.connect("数据库ip","用 ...

  9. Mybatis源码学习之parsing包(解析器)(二)

    简述 大家都知道mybatis中,无论是配置文件mybatis-config.xml,还是SQL语句,都是写在XML文件中的,那么mybatis是如何解析这些XML文件呢?这就是本文将要学习的就是,m ...

  10. 测试Promise与Async/await的基本使用

    想在项目中用, 发现自己不是很熟 promise基本使用 基本使用-思路 new Promise()返回了一个状态机 一个完全无法被外界影响的状态机 构造函数, 传入一个函数, 两个参数, 分别是re ...