写在最前面:本文毫无文艺气息,更多的是吐槽。
写在前面:文章内容纯属个人观点,如有雷同,绝无可能。
关于我
12年开始从事软件测试测试行业(以下简称测试),至今四个年头,先后混迹过好多大项目和小项目。
测试、测试
测试是什么?
测试就是质检。软件测试,说白了就是软件的质检,并不是什么高大上的职业。相反,测试总是和开发联系在一起,自称屌丝的,大多就是这么一类人了。
测试的分类
现今测试的种类大致分为功能测试、性能测试、自动化测试、和专项测试招聘要求上写的测试种类大概也就是这么个样子了。
测试行业
怎么说呢,测试作为软件开发行业发展到一定阶段的衍生职业,目前来看正在逐步得到重视。但是,仍然不够,至少目前来看,还不够。
测试的价值
测试的价值无法评估,这是测试行业发展的最大限制原因。而与测试相对应的开发,则有很明确的价值估量。一定的时间内,开发能写出什么东西,能够看得到,用得到。比如前端开发能写出靓丽炫酷吊炸天的界面,后台开发能写出复杂优雅的后台,软件写出来就能投入使用变现了,但是测试呢?
不好意思,完全看不出来,你测得bug能卖多少钱?你写的测试案例能卖多少钱?你说你的测试计划多少完美,多少合理,能卖钱吗?
从古至今,我们的社会一直都是结果导向,历史都是成功者书写的。同理,一款产品成功了,别人会说这个产品经理牛,产品设计的好。或是这些开发厉害,写出了这么牛的东西,好像还没听说有人称赞,这个产品那么成功,是测试的功劳啊!但是,如果一个产品失败了,马上就会有人说,测试到底是怎么测的,这么简单的问题都没测出来,这么简单的逻辑都没想到。
万能的测试?
说真的,测试真不是万能的,不论哪一款产品,都一定会有bug。不是找借口,而是真心话。微信牛吧?支付宝牛吧?苹果牛吧?微软牛吧?他们都这么牛,也都一样有bug。我们只能尽力的去减少bug,而无法做到完全没有bug。
测试流程
流程这个东西,在我看来真的很重要,有一个完善的流程,做起事来绝对是事半功倍。前几年流行CMMI,现在流行敏捷。但是目前大多数公司的情况是:流程乱或者没流程。
没流程很正常,现在是万众创业的时代,创业的时候钱都没赚到,谈什么流程,先吃饱了再说。
流程乱,这说来就话长了,有时间再写一篇文章阐述背景吧,简单来说就是跟风引起的。比如现在流行敏捷了,什么公司都是敏捷,一面试就问,你会不会敏捷?相信我,问你这个问题的面试官,很可能他也不知道敏捷是什么。现在社会发展太快,慢一步就会被淘汰,所以什么都是快,能省的东西都省了,反正越快越好。这种错误的思想导致了乱七八糟的流程,更导致了研发团队大量的重复工作。
怎么理解CMMI和敏捷呢。举个例子,一首无损音乐的大小大概在30M左右,一首MP3格式的音乐大概在5M左右,无损压缩到有损音乐的过程,就是CMMI过度到敏捷的过程。无损压缩到有损是根据一定的规则来减小音乐文件的大小,有损的音乐也依然是一段完整的音乐。同理,敏捷流程快,但是五脏俱全,该有的过程还是有,非必须的东西砍掉,但是它还是一个完整的流程。
测试的技能
好像扯了太多没用的东西了,下面来点干货。我认为测试人员需要具备的技能有这么些:
- 缜密的测试思想
- 较好的文档能力
- 较好的沟通能力
- 较好的总结能力
- 较好的业务能力
- 较好的理解能力
- 碎片化工作的能力
- 一定的代码能力
具备了上述的能力,基本上可以成为一个比较合格的测试人员。
没错,我列出来的除了一定的代码能力可以称之为硬技能,测试思想为专业技能,其他的能力都是软技能,为什么这么列?
假设你在一个大的研发团队,那么你不会和开发人员直接接触,更多的方式是以IM或者Email的方式沟通,那么你发现的问题怎么告诉开发?你不知道怎么把发现的问题整理成文档你怎么发出去?
假设你在一个小团队,那么就是one man one team,你一定会直接和研发流程的各个人员打交道,那么你的沟通能力就更为凸显重要。通过IM交流你还能有时间思考,面对面交流就完全看你的能力了。同一个问题在不同的时间通过不同的方式告诉一个人,产生的结果可能会完全相反。这里不做过多拓展,因为涉及到了很多人性的方面了。
当初在招行,好多人说在招行做测试完全是浪费时间,真的浪费时间吗?只是你没有用心吧。不用心,在什么地方都是浪费时间,用心了,处处是学习的东西。
一定的代码能力
这点我想抽出来专门说一下,不要认为写代码都是开发的事,有一定的代码能力,绝对是测试的好帮手。
- 你能够以开发的思维思考问题
- 你能够写脚本处理一些重复的东西
能够以开发思维思考问题,你就更能理解他们,有些问题在外行看来很简单,但是真正从程序实现角度来看,是比较复杂的。同理,你知道开发的过程了,那么换一个角度来看问题,也许能够发现更多的bug。
人喜欢新的东西,而程序喜欢旧的东西,所以,一些重复的杂事就丢给程序做吧,省下来的时间去走廊呼吸一下新鲜空气也好。
测试的硬技能
性能测试和自动化测试,用的东西我称之为硬技能,为什么这么叫,因为他们的适用范围很小,比如性能测试你用LR,那么你就只能做性能测试,自动化测试同理。
支付宝钱包的测试负责人陈晔列了一些移动测试工程师需要会的技能——《移动无限测试技能树》,高能、慎点。
反正比起这个技能树来说,我觉得还是学一门脚本语言来的实在,人生苦短、我用Python。简单粗暴,两三个月就能速成,作品在这:《点点寒彬的博客》
最后的吐槽
一开始我想研究一下自动化测试,这样能让我的测试档次显得不那么low,于是我去了解QTP。
了解后发现,QTP已经过时了,现在都是找开源框架自己二次开发,于是我放弃了QTP,找到了一个叫selenium的东西。
看了selenium后我发现,原来这东西需要会一门编程语言,于是我去看了Python。
selenium是web端的自动化测试,所以我在看Python的同时顺带看了一下web的框架Django,然后顺手写了一个博客。
在写博客的过程中,我需要了解一些基础的http的知识,于是我又顺带看了一点这一块的知识。
看完Python的基础语法之后,我发现要用selenium,我还要学会html的知识,于是我又去看了html。
看完html之后,我发现只会html是不行的,还要了解css,于是我又去看了css。
看完css之后,我发现现在的网页都是动态的,我还需要会js的知识,然后我又去看了js。
然而。。。。。我的专业是会计啊!坑爹啊!有没有公司需要不会记账不会报账不会看报表不会出报表不会装订凭证不会入库不会清算,但是会聊天会吹牛会耍宝会卖萌会逗逼会写代码的会计?
网友评论