最近一直有同学问我:测试,测试开发,有没有速成的方法呢?
我的答案是肯定的:坚决没有速成之道,但有提升捷径!!!
一,测试工作中浮躁的现象
前两三年的时候,测试行业忽然就火了起来,测试培训也比较多。于是大家就有这个看法,不管以前是做什么工作的,技术水平如何,通过一两个月的培训,就能很好地完成测试工作。诚然,测试行业入门比较容易,会一些测试方法,理解能力没有问题就能进入测试行业。但是你要认为通过培训,自己的测试能力就很牛的话,那就有点不切实际了。主要表现如下:
(1)通过学习测试,认为自己掌握了测试的所有能力,表现的牛气哄哄,其实所有的东西仅限了解,完全不会使用。
(2)基本能力较差,还不能深入学习。不会编码,仅仅借助于工具,想轻松实现较复杂的工作,结果反而事得其反。
(3)在工作中不会学习和成长,对于基本的常识性的知识,不会通过网络查询学习,常常拿着常识性的问题去请教,结果造成大家认为你能力较差,并且不愿意教你。
二,测试行业入门容易,成长不易
测试不仅仅是点点点,现在大家已经意识到这一点。同时先前的理念,黑盒测试,白盒测试,灰盒测试也不存在了,现在的测试分为:功能测试,性能测试,安全测试,自动化测试,测试开发,高级测试开发,资深测试开发,测试架构师等。暂且不说从一种测试向另一种测试的难度较大,需要掌握的知识较多,只说一种测试也是不你想象中的那么简单。
以功能测试为例,我们大部分同学都是从功能测试入手开始测试工作的。功能测试是什么?根据需求编写测试用例,然后执行测试用例,发现 bug 提交 bug,等开发同学修改完 bug 后再验证修复情况,最后做一个沙箱回归,上线再做线上回归。这恐怕是绝大多数同学的认识,如果你按这个认识来进行工作的话,工作十几年也不会有所成长的。我曾经面试过一个工作了十年的同学,十来年都是这样工作的,现在想换工作了,却处处碰壁。
前一段时间,我设计了一个 “功能测试知识体系和技能大全” 系列课程,介绍了一下功能测试需要做的工作和掌握的能力,虽然不能说非常全面吧,但也是相对来说较完善的:
(1)如何参与需求评审,并准确确定测试方案
(2)编写覆盖全面的测试用例设计与进行高效用例评审
(3)测试准备与环境部署 -- 测试前置
(4)如何提出优质的 bug 与 bug 管理
(5)资源协调与跨部门沟通技巧
(6)测试环节如何引入技术方案
(7)如何做项目总结与汇报
(8)测试人员如何管理项目与风险预警
希望你能思考一下,自己的功能测试做的如何?每一种测试都是一个完整的知识体系,不能学会了劈柴,就认为自己是掌握了木工技巧!由此可以推出其他的测试,性能测试,安全测试,自动化测试等,我们是仅仅了解大概,还是掌握了对应的技巧呢?
三,编码能力,测试开发进阶必经之路
有不少同学认为,测试要求比较低,编码能力不足也能胜任。其实这只是国内的现象,在国外测试的编码能力,架构能力必须比开发要强,否则你怎么能发现开发的错误呢?虽然国内现状是测试能力比开发能力弱,但是这是两个不同的技术发展方向;开发是纵向发展,他们需要把相应的代码研究的比较深入才行,而测试是横向发展,需要把知识掌握的比较全面。
有人认为作为测试人员,能不学习代码而通过测试工具就能去做测试开发工作。其实,借助于一些常用的测试工具,如 robot framework, QTP, Katalon Studio,可以实现自动化测试,但是你有没有发现大公司一般是不使用现成的测试工具的。测试工具或是测试框架,为了通用性,兼容的场景比较多,对你们公司的业务适应就不一定较好。所以很多公司比较喜欢对开源的框架做二次开发,以更好的适应自己的工作需要,从而最大化地提高工作效率。不要幻想着不学习任何语言,借助于工具做测试开发,这个路是行不通的,也是走不远的。测试需要掌握的语言不必太多,python, java 即可,也不需要学习的很深,掌握基本的数据类型,函数,类的操作就行,其他高深一点儿的技术用到时候再学也不晚。
四,测试开发进阶捷径
在武侠小说中,打通了任督二脉后,学习什么武功都比较快。测试行业有没有这样的方法呢?我们开篇就说了,测试开发没有速成宝典,但是有提升的捷径,如果现在还不介绍一下,就有点儿不厚道了。互联网行业,是一个需要不断学习和提升的行业,你永远不可能用一项能力工作上好几年的。你一定要有终身学习的理念,再加上以下几个建议,就能轻松提升:
(1)认清自我,了解自己所处的阶段
认清自己现在是什么水平,具备什么能力,然后有针对性的提高。比如说,刚刚进入测试行业,就需要踏踏实实地做功能测试,花上一年的时间来全面了解功能测试是如何做的。然后再去了解一下测试行业大家是如何做的,你想提升,应该从哪儿入手?不能测试用例还写不全,就想去做自动化,“才吃三天素,就想上西天” 的想法是不可取的。
(2)打好基础,学习一门语言
如果你想在测试行业有所发展,不安于天天点点点的功能测试工作,那就踏实地学习一门语言,python,java 均可。学习语言的时候,无论你是通过看书,还是通过网上的教程来学习,必须动手写代码。只有通过反复地编码,才能掌握一门语言,除此之外,别无他法。永远不要幻想,不学习编码语言,就能在测试行业发展很好。
(3)明确发展路线,定好发展目标
测试的发展和提升是有路线可寻的,你可能遇到过测试行业的大牛,他们的牛 X 点都不相同,其实只是侧重点不同,基本的路径也是一致的。你先要明确一下自己的发展路径,根据现在的能力,工作情况,生活阶段,制定好发展目标,分阶段地进行提升,不可贪多。比如说,先学习 python,然后学习 python 版本的接口自动化,然后是 WebUI 自动化,App 自动化等等,不可同时学习多个语言,或是多个技能,那样容易造成混乱的。
(4)提升有技巧,善于借助于外力
在上高中的时候,我意识到了物美价廉几乎是不可能的,几十块钱的衣服是不可能和几百块的相比的。现在工作后,想让同事心甘情愿地教你技术也是不可能的,所以我们就需要一些技巧与其拉近关系。同时通过看书学习,通过看视频学习也是非常好的学习手段,但是想完全通过免费的东西学到实用的技能也是很难的,大家都学习也就完全没有竞争优势。如何平衡时间与金钱,如何分析投入产出比,相信大家都有自己的一杆秤的。我通常比较善于利用各种资源来提升自己,通过提升,相应的薪资待遇也达到了理想的水平,相信你也可以的!
五,总结
经过最近和同学们的聊天,发现大家有点儿浮躁,想在测试行业进行速成。针对这种情况,我进行了全面的分析,测试开发没有速成之道,但是有提升技巧。只有掌握了相应的技巧,不断地学习和提升,每天提升一点点,最终能达到你想要的水平,进而得到相应的薪资待遇,过上悠闲的生活的哟!
有人喜欢创造世界,他们做了开发者;有的人喜欢开发者,他们做了测试员。什么是软件测试?软件测试就是一场本该在用户面前发生的灾难提前在自己面前发生了,这会让他们生出一种救世主的感觉,拯救了用户,也就拯救者这个软件,避免了他们被卸载的命运。