有人说:软件测试就是最low的点点点工作。
有人说:测试工作职位薪水到一定程度只能原地踏步无法提升
也有人说:测试行业相对于开发来说技术性很低,容易被取代。
这其实是对测试行业最大的误解。测试可深可浅,可窄可广,牛叉的测试很少,很多对测试侃侃而谈的人其实提不了几个bug。
1,测试的7个层次
最初我接触测试纯粹是出于偶然,微软到我们学校的面试只有做测试的肯要我。不过后来做了一阵子之后慢慢就喜欢上这个位置了。
就像开发一样,有经验和没有经验的测试在团队起到的作用是很不一样的。从测试中遇到问题采取的行动来看,我观察到的测试人员能达到的层次大概有这么几个级别:
1.开一个bug;
2.查找一些额外的资料如设计文档和历史,确定这是一个问题,然后给出详细的bug重现步骤;
3.对重现步骤做一些精炼,确定能够重现bug的最少步骤;可能的话,将重现步骤做自动化;
4.尝试通过研究代码确认问题所在;
5.尝试给出一个fix;
6.对错误的原因进行分析,提出一些标准化的方法来检测出类似的问题,比如stress,fuzzing等等;
7.能够对标准化的测试流程定义对应的数据分析方法,可以保证开发和项目主管都能从中得到需要的信息来掌控质量状况。
2,作为一个测试人员,我们的目标是什么?
我对自己的目标是能对我控管的所有的bug从1做到4,在至少两个例子中我甚至能做到级别6。
我在微软六年多,在很多部门都见到过总是做到级别7的测试,能做到这个状态的测试,没有人敢说他们技术不行。
对于开发人员来说,如果你身边有一位能对大部分bug做到级别4的测试,我相信开发的工作也会轻松很多。
即使是抓bug也分很多种。
抓一群猴子来随便在键盘上胡点两下算是测试,认认真真地一步步通过各种技术手段(代码覆盖、压力测试、安全分析等等)来步步推进也是测试。
作为技术人员,你信任哪一种?
我想多数人都会选择后者,但我要说的是在实践中很多测试团队都会不知不觉地变成前一种。
为什么?因为测试对产品的设计不了解,所以本能地会选择最容易做的,可问起他们:你们测了多少?信心多高?他们就都傻掉了。
我不是说猴子测试没意义:恰恰相反,它可以抓到我们思维上的许多盲点。但如果你的整个团队完全靠猴子测试过日子,那绝对不可能给你一个可信任的结果。
3.大牛测试和大牛团队有多少?
很不幸,就我个人的经验来说,事实是在我遇到的测试人员中,最多只能做到级别1的测试人员并不罕见。
能做到3的测试人员就被很多人认为相当不错了,至于团队中存在多个大牛测试的队伍则真的很少见(微软总部的比例高很多)。
是的,别惊讶,这就是我工作中遇到的情况。但是请注意,这不是说公司在花钱养废物,而是说在没有专业测试教育的情况下在入行初期必然会导致的现状。我们所有人都是从这个状态开始的,也都需要时间来让自己进步。
也许还会有人问:这不是跟开发抢活儿干么?是的,没错。但为什么不能抢呢?
我们的目的是什么?是开bug还是做更好的产品?如果你的全部目的只是多开bug,那真的很简单。
真实的例子,我曾经见过有同事将测试自动化代码的bug开成产品bug的,他的理论就是不管bug是什么,先开出来再说,至于它是产品问题还是测试代码的问题甚至是环境的故障都可以缓一缓,反正他不负责指出原因。
这种什么都不做就先开了bug再说的做事风格是在耽误所有同事的工作。
作为团队的一分子,测试在产品上多花一分时间,有时候能省下开发几天的工作量,因为测试是最熟悉这个bug的人,而开发则需要从头开始分析。
——当然,反过来开发也应该尽量将测试带入开发过程,让大家都知道各种功能进度的细节。这种合作同样能大大减少测试在产品设计变更时重新设计用例的时间。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取