从 2018 年 4 月份和同事一起讨论搞测试开发培训的事情,到 9 月份正式在腾讯课堂上发布课程,目前已有将近 2000 人次学习,同时在我们的技术交流群中也有将近 300 个同学。平时大家遇到问题相互交流,我们也在尽力帮助大家解决遇到的各种问题。在与大家交流的时候,存在一个问题:测试,测试开发,有没有速成的方法呢?
我的答案是肯定的:坚决没有速成之道,但有提升捷径!!!
前两三年的时候,测试行业忽然就火了起来,测试培训也比较多。于是大家就有这个看法,不管以前是做什么工作的,技术水平如何,通过一两个月的培训,就能很好地完成测试工作。诚然,测试行业入门比较容易,会一些测试方法,理解能力没有问题就能进入测试行业。但是你要认为通过培训,自己的测试能力就很牛的话,那就有点不切实际了。主要表现如下:
(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)提升有技巧,善于借助于外力
在上高中的时候,我意识到了物美价廉几乎是不可能的,几十块钱的衣服是不可能和几百块的相比的。现在工作后,想让同事心甘情愿地教你技术也是不可能的,所以我们就需要一些技巧与其拉近关系。同时通过看书学习,通过看视频学习也是非常好的学习手段,但是想完全通过免费的东西学到实用的技能也是很难的,大家都学习也就完全没有竞争优势。如何平衡时间与金钱,如何分析投入产出比,相信大家都有自己的一杆秤的。我通常比较善于利用各种资源来提升自己,通过提升,相应的薪资待遇也达到了理想的水平,相信你也可以的!
经过最近和同学们的聊天,发现大家有点儿浮躁,想在测试行业进行速成。针对这种情况,我进行了全面的分析,测试开发没有速成之道,但是有提升技巧。只有掌握了相应的技巧,不断地学习和提升,每天提升一点点,最终能达到你想要的水平,进而得到相应的薪资待遇,过上悠闲的生活的哟!