职业经验 略谈测试之发展

梦里长安 · 2018年11月01日 · 最后由 wolf5 回复于 2018年12月02日 · 47 次阅读

从事 IT 测试行业的工作近 5 了,一路走来多多少少有些想法想跟大家分享一下。

在正文开始之前我想问大家一个问题:如果你是一名测试人员,那么你觉得 IT 测试算是程序猿么? 请把答案放在回复中,谢谢!

首先,我们来聊一聊 IT 家族的成员有哪些,分析一下测试的地位。在我个人的认知里一个 IT 完整的由高到低的链路是这样的:产品经理&项目经理 -> IT 顾问 -> 架构师 -> 开发 -> DBA&运维 -> 测试 -> 需求。在这里我把测试的排名仅仅放到倒数第二,现在来分析一下,作为一名测试人员,最常接触的人员就是开发和需求,在工作之余交往聊天当中也能感觉到,开发对测试这个工作岗位还是嗤之以鼻甚至不屑一顾的,当中这种鄙视是不敢在工作当中表现出来的,不然你们懂得……(▽^)

那么就要分析一下开发人员为什么会对测试人员有所鄙视呢?原因在于专业性。开发的这种专业性或许是源于理工科人员与生俱来的一种气质,探索、分析、学习、创造使他们对事物的基础逻辑及构成更为敏感,这种专业性是一种内在的素养。这样的话,那是不是说测试人员是不是不够专业呢?答案当然不是,测试的专业性往往使得他们更注重于结果,质疑 + 验证概括了测试工作的本质,测试的专业性使他们对 IT 系统存在的风险感知更为敏感。

举个例子,如果开发是一个厨子,测试是一名食客,厨子在是食客面前总会炫耀他的拿手之作,选材是多么严格、做工是多么复杂、火候掌控多么精细、还有秘制的调料等等,在厨子眼中这个食客根本不会做出来这样的美食的。等到厨子出品的炒面端到食客面前,没多久食客发话了:炒面里有头发、而且我明明点的是加香菜的炒面这里面也没有、还有炒面太干、颜色太深酱油放多了吧看起来很难看、你做个炒面让我们等太久了……一堆问题接踵而至。作为一个食客我们会从 360 度各种视觉去发现厨子做的这盘炒面的各种问题,实际上并不特别在乎他是怎么做的,从这里可以发现开发的专业性是:做;测试的专业性是:验。

俗话说:闻道有先后,术业有专攻!开发人员的专攻在于代码基础的掌握,能码得一手好代码基本上就很不错了,所以开发人员起步就是啃各种语言、语法、架构、模型……,对测试人员而言就像是文科生和理科生、普通班和奥数班差别一样。测试人员的专攻在于精通测试理论,在测试过程中尽可能地发现更多、更深层的系统 BUG,在这个过程中测试人员也会逐步涉及到代码基础的东西。简单的来说,测试人员的起步低,在你不需要复杂的基础功底的时候就可以去做测试的工作,根据我面试的经验,现在培训机构对测试人员的产出还是挺高的,一万多的学费基本上三个月速成,把你包装成 2-3 年工作经验的样子,但是培训机构出来的开发产出就没这么高了。

起点低决定了我们测试比开发 - 即那些真正的程序猿们低半头,这也是他们在我们鄙视链上端的原因,实际上他们工资水平也比我们测试高几个档次。有次跟开发朋友一块聊天:

他跟我讲:最近快被你们测试搞死了,BUG 催那么紧,压力山大啊!

我就呵呵一笑:那你转测试啊,不开心的时候还可以提几个 BUG 怼一怼开发呢?

他立马回答:我才不呢,测试那么简单,做测试有什么意思。

而旁边坐了另一开发回答道:等哪天开发干不动了再做测试。

种种鄙视无以言表,其实我想告诉他们,测试并不想他们想的那么简单,如果真让他们做测试工作他们并不一定能够做好,我在上家公司的时候就有这种例子。上家公司新招进来一个高级测试工程师,简历上的经历就是有多年的开发经验,也带过项目等等的,从后来交往上看他确实很厉害,发现的问题分分钟能从开发源代码中拎出问题根源在哪,并告诉开发代码该怎么修改,而他这种 ‘’ 专业性 ‘’ 也一度让开发折服。但是事实是在以后的几个月里,测试经理在统计分析线上 BUG 的时候发现几乎每个月他测试的需求都有遗漏的线上 BUG,线上 BUG 作为测试人员最重要的一个考核指标,所以那几个月他的绩效也是频频得 C(绩效工资=绩效标准工资 *0.5),没多久他就离职了,听说又重新做了开发。

这么牛逼的测试为什么会遗漏那么多的线上 BUG 么?后来我分析了有以下几点:

1、思维导向,他之前是做开发的,更注重过程的他会让他在分析结果的时候,不能高度集中。简而言之,作为一个测试你发现问题就行了,怎么改 BUG 不是你的事。

2、需求导向,在拿到开发的产品之前,我们要根据需求文档进行测试用例编写,把需求都消费成一条条的可执行用例,尽可能全地扩大用例的覆盖度,探索任何可能产生 BUG 的条件,为后期测试工作做思想上的铺垫,而他显然没有做到这一点。

3、不够严谨,测试是一个能够平衡在需求和开发之间的一个角色,如果一味地站在开发角度去分析问题,同样会忽略掉很多需求方存在的很多问题,开句玩笑话:做测试你可以不用对自己狠一点,但是一定要对开发狠一点。

以前看过一个段子感觉描述的很到位,A 问 B:为什么开发不会测试自己的代码 BUG 呢? B 回答:你会告诉别人你的孩子长得丑么?

说了那么多,就是为了强调测试工作的意义,但是如何做才能不会让别人鄙视而且在这个岗位上走得更远呢?虽然测试的工作入门槛很低,但是我们也不能在门槛不远的地方躺着睡大觉。关于测试人员的职业发展我有以下几点想法:

一、积极健康,保持良好心态;如果做不到外表美丽,我们就要做到心灵美丽,毕竟我们工作的本质也是为了养家糊口、体验人生,身心健康、心情愉悦活的开心就好,没必要为了什么废了自己的健康、委屈了自己的内心。这种积极健康的态度也是会传染的,如果一个团队氛围融洽这样更利于我们工作、学习、交往。每天早起一会精心打扮自己美美哒、帅帅哒,抽时间跟同事们一块去聚餐、去打球、去跑步、去健身、去逛街、去旅游、去参加社会活动……,工作时候没必要那么严肃偶尔跟大家开开玩笑,分享些零食,岂不乐乎?

二、提升自己,保持学习心态;上面也说了我们不能在门槛不远的地方躺着睡大觉,不然离淘汰也不远了,况且我们工资增长也是伴随个人能提升的。提升自己的本质也是为了让工作变得越来越简单,让程序中更多的问题能够清晰地浮现在我们面前。

基础提升:要学会 SQL,学编程语言 java 和 python,要学会建站的基础 html、CSS、JavaScript、json,要学 linux 操作命令;

专业提升:要学会接口测试,学会性能测试、学会自动化测试、学会白盒测试;

业务提升:尽可能多地掌握公司的业务知识,认真编写测试用例,不断汇总和融合自己了解的业务内容,这些都是宝贵财富,大浪淘沙说不定哪天就真金显露,成为公司的顶梁柱也是指日可待 (▽^)。退而求其次,如果有跳槽同行或者创业的想法,你说掌握的业务知识都会成为你乘风破浪的重要支柱;

管理提升:工作久了总会接触到管理这块,哪怕是带个徒弟,掌握沟通的技巧,学会规划总结,还有一点比较重要要学会写 PPT,要敢在众人面前表现自己,管理是走向公司核心的重要通道,且行且珍惜。

三、学会输出,保持分享心态;有人说我那些该学的都学会了,是不是测试工作职业生涯就到了?如果一个人说他学富五车、阅览群书,可是他却写不出来一个 800 字的文章,你会认可他么?你以前学习到的并不是你的,只有经过自己消化、吸收、转化这才是你的,如果你能利用你学到的 python 知识编写一个测试辅助工具并应用到测试工作当中,这才是能力提升的真正表现。输出的方式可以分为学习笔记(推荐有道笔记)、写 PPT 写文章、开发测试辅助工具、维护自己的空间等等。输出是一方面,也要学会分享,大家认可你了,认为你写的测试辅助脚本确实实用、写的论文确实有建设性让人振聋发聩,这才是真正的大牛,站在武林之巅,主宰江湖。

最佳回复
梦里长安 回复

对,因为少才会有一个一直达不到的目标牵引着我们,不看轻自己,也就会对开发或者其他的误解置之度外了😀

共收到 29 条回复 时间 点赞

在我个人的认知里一个 IT 完整的由高到低的链路是这样的:产品经理&项目经理 -> IT 顾问 -> 架构师 -> 开发 -> DBA&运维 -> 测试 -> 需求

这这这……异样鄙视链,比较清新脱俗啊

仅楼主可见
槽神 回复

其实也没什么,只是前几天过 10.24 程序员节 感觉跟我们没卵蛋关系

槽神 回复

怎么就清新脱俗了

仅楼主可见
6楼 已删除
恒温 回复

好吧

没有一项工作是不可以做到极致的,努力后都是可以到达被仰望的高度的

旭愿 回复

所言极是,但是能走到顶端的少之又少

梦里长安 回复

对,因为少才会有一个一直达不到的目标牵引着我们,不看轻自己,也就会对开发或者其他的误解置之度外了😀

算程序媛 & 程序猿

旭愿 回复

怎么说呢,我们这个工作岗位是最容易温水煮青蛙的,我是一个公司的测试负责人,身边人大都这样,目标其实对大家来说也是比较明确的,但是看着这座高峰,又有几个勇于攀登呢?

WangYuan 回复

👍 这样认为的都是好样的

梦里长安 回复

我还是没有入职的测开小白,会牢记您说的这句 “温水煮青蛙”,希望自己能坚持下去,多反思自己,谢谢您

旭愿 回复

加油

感觉写代码的测试才能算程序员😂

仅楼主可见
仅楼主可见
Ribosome 回复

哈哈,所以啊,测试往后面发展就是程序猿了

magicyang 回复

重点就是居安思危、破而后立 赞!

Zero 回复

观点不错,虽然目前测试起点低,但是走上写代码的道路那是肯定的事,大浪淘沙,青出于蓝,老同志们要加油啊!

测试转开发不适应怎么办?
感觉还是想去做测试。

徐汪成 回复

应该是有点你没有准备好,一,开发需要更扎实的编程基础;二,开发需要更多的时间去融会贯通,加班是常态;三,开发需要更加好学的态度,业务时间学习、交流是常态。总而言之,心态放好未来可期!

开发测试想通的,做个快乐的开发测试工程师,不卑不亢。做测试里面开发技术最强的开发工程师。做开发里面性能调优最牛的测试工程师。

无所谓 回复

哈哈,开心和赚钱最重要😂

这是一篇发自肺腑的文章。说一下自己的观点 - 我觉得没必要去划那么多的界限,不要去在意鄙视链。只需要知道,自己目前的工作是什么,怎么样才能把他做好,怎么样才能得到更多的收入,仅此而已。 至于是开发还是测试,是运维还是 PM,这个只是你和别人吹牛逼时候的谈资,饭局过后,一切如常你还得养家糊口跑步看书。

自己开心就好,我已经到只关注家庭的时候了,不会被其他事情分心了

难道你不觉得,测试做到最后就是开发,开发做到最后也就是测试? 殊途同归。只是两条路不一样,开发是具有非常鲜明的系统性,阶段性的宽广大道。测试属于具有非常高的机动性,多样性的阳间小道。但是最终的终点是一个。开发测试工程师和测试开发工程师,只是大家因为出处不一样,更加会在意你的 “” 出生地 “”

jackyin 回复

同意,以后开发要做测试,测试也要会开发,未来的趋势就是统一称为工程师。

其实从更高阶的名头 -- 软件工程师来看,测试也需要会写代码,开发也得做测试 (至少单元测试)。细分了开发和测试,是因为工作内容的偏重差异,就像装潢的施工和监理。梳理好技能树,尽量把本职工作最到位吧。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册