测试与开发这对立的命运啊
如果是对测试从业者心存鄙视的朋友啊,请关掉此页,带着偏见不好看的~
人生就像一个旅途,每个人看到风景不一样,世界观、人生观、价值观也就不同。不要试着去改变别人,因为你的观点在他的世界里并没有例子,或者例子在他世界里最后得到的结果与你相反的。
十年前看了一本软件测试书籍,里面有一个理论:
-------------------------------
一个软件的缺陷发现成分构成: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呢?