软件测试人员需要懂代码吗?如果软件测试人员会代码,那还有软件开发人员的事吗?既能测试又能敲代码的人是不是很牛?
不管是外行人还是内行人,对一份与自己无关的职业的认识往往缺乏基本的认知,比如今天要说的软件测试。很多人都会对软件测试这个岗位存在一个疑问?软件测试员一定需要懂编程代码?在回答这个问题前,先全面的了解下软件测试不同时期的各种技能吧。
软件测试会因软件产品的需求、行业的不同而所有不同,而优秀的测试工程师在整个产品的测试过程中扮演着极其重要的角色。一个优秀的测试工程师应该具备:1)丰富的行业知识 2)优秀的逻辑推理能力 3)良好的编程技能。
也即是说,不同时间段,做不同的事情。
一、菜鸟新人--初级测试工程师
初入软件测试行业,要成为一名合格的的软件测试工程师,需要学习的东西还是很多的。
1)软件测试理论基础。
2)测试用例设计、测试功能覆盖、软件测试项目实战应用。
3)对业务的精准把握 、培养对bug初步处理和分析。
4)在长期的测试工作中,要培养敏锐的bug嗅觉。
5)良好的沟通表达能力。如果你连一个bug都表达不清楚,那就尴尬了。如果你不能与开发好好聊天,那也尴尬了。
但此阶段,主要是功能测试为主,像用户一样去手工操作系统,模拟用户的使用场景 。
所以不需要任何的编程能力,你都是可以胜任的。因此,软件测试的入门并不难。
二、功能测试、测试工具 --初级测试工程师(入职已有一段时间)
随着测试时间的增加,就需要掌握更多的东西来扩充自己的技术能力了。
1)数据库操作:mysql、oracle等。
2)linux操作、环境搭建。
3)各种测试工具:抓包fiddler,wireshark。
4)从架构层了解被测系统、http通信协议、接口测试及其工具postman、soupui、jmeter等。
5)app的专项测试、兼容性测试、易用性测试。
在这个阶段,会有一部分人成为小组长、小领导。主要工作内容就是分配组内的测试任务、把握和反馈任务进展、完成测试工作。
在一些特殊的行业(比如医疗),可以逐渐形成业务专家。
在此阶段对编程能力也没有要求。
三、自动化/性能/安全(必须会编程) --中高级测试工程师
具备测试能力与代码能力,提升测试效率与软件质量。
以下以自动化测试为例来说明。
1)选一门编程语言学习:java、python、ruby等。
2)了解自动化测试、自动化测试工具、web/app/接口/pc端自动化基础。
3)框架思想、项目实践与流程。
在功能测试岗位中做了几年时间之后,会开始焦虑。
在工作中,感受到了成长的限制。除了业务越来越熟之外,工作就是点点点,其它方面没有成长。
想跳槽想涨薪,但是很有挫败和无力感,因为全身上下价值就在这里。
想在工作的过程中自学提升,迈向高薪的自动化测试、性能 测试、安全测试等。
当然自动化测试工具也可以实现自动化,但是有好与坏的区别。
第一道门槛就是编程!
另外,想要成为优秀的安全测试与性能测试工程师,则不仅仅是会编程,还需要有更多的计算机相关知识。
四、测试开发/性能、安全测试专家(必须会编程) --高级测试工程师
测试开发,具备测试能力与代码能力,提升测试效率与软件质量。又可以做开发,又可以做测试。
要求比较强的开发能力,深入代码层。一般不直接参加测试工作。
1、对测试框架、测试工具的二次开发,更好的符合公司产品的测试要求。
2、开展单元测试或者协助开发开展单元测试,从开发阶段就开始把控产品代码质量。在后续迭代过程中快速挖掘问题。
3、开发测试工具和平台,为测试团队提高测试效率,各种测试的简化、测试结果的量化。比如性能测试平台、接口测试平台等。
五、测试主管、经理、总监--职业发展和晋升阶段
既要强大的测试和编程能力,也要有足够的管理和交际能力。如果仅仅只有足够的测试能力,开发团队你无法震的住。
总结
如果不想被行业淘汰,想让自己的职业能力更上一层楼,那么编程对中高级技术测试人员而言则是必须要会的!在软件测试职业生涯里,编程能力将会成为你职场的助力,也会伴随你的整个职业生涯。建议你学习几种编程技术,至少学习一种脚本语言,比如Vb、Java、Ruby/Perl等,至少一种通用的编程语言,比如Java、C++、C等。
追求更高效的软件测试是一个测试人员不断提高自己水平的动力之一,编程能力对测试工程师很重要,但并不是核心的能力。会编程是为了让我们测试更高效的发现bug,这才是测试人员最核心的能力。
领取专属 10元无门槛券
私享最新 技术干货