不管是刚入测试行业的萌新,仍是已经在测试行业闯荡了两三年的小司机们,都会琢磨一个问题:若是要持续发展下去,我要不要懂代码?java
在软件测试初级阶段,不须要编程能力。可是任何一个职业,都会追求长期发展。python
让咱们来看看软件测试的几种职业生涯历程(转行的就另说了)。mysql
一、技术 + 管理方向:一枚萌新 - 》技术阶段 -》测试经理、主管这样的管理岗linux
-------编程能力 + 管理能力俱在web
二、纯技术方向 :一枚萌新 -》功能测试 -》自动化/性能/安全 - 》测试开发/性能、安全测试专家/架构师面试
-------优秀的编程能力sql
三、产品方向:一枚萌新 -》业务专家 -》产品经理、产品需求等岗位。数据库
-------不须要编程能力编程
初入软件测试行业,要成为一名合格的的软件测试工程师,须要学习的东西仍是不少的。安全
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)框架思想、项目实践与流程
在功能测试岗位中作了几年时间以后,会开始焦虑。
在工做中,感觉到了成长的限制。除了业务愈来愈熟以外,工做就是点点点,其它方面没有成长。
想跳槽想涨薪,可是颇有挫败和无力感,由于全身上下价值就在这里。
想在工做的过程当中自学提高,迈向高薪的自动化测试、性能 测试、安全测试等。
固然自动化测试工具也能够实现自动化,可是有好与坏的区别。
第一道门坎就是编程!!
-----引发了不少人的头疼。非计算机专业的没接触过、计算机专业已毕业几年,早忘了。
因而,又妥妥的成为新阶级的萌新。
我应该把编程和自动化学到什么程度?我应该学到什么程度才能在面试中面上自动化测试?才能在工做中胜任起来?(性能 和安全通用)
带着一脸懵逼的状态去自学代码、自学自动化。查到什么资料学什么。
而招自动化测试的岗位,基本上都是要有实战经验的,没经验的直接咔了,或者转功能测试岗。
在这个过程当中,有些人放弃了,有些人经历了一两年还在挣扎中,有些人机遇来了上了这趟船。。。。
但一旦上了船,就打开了新世界的大门,能够扬帆起航走的更远。
并且,在开发同胞的眼中,你做为测试的地位绝对上升很多。。。。
另外,想要成为优秀的安全测试与性能测试工程师,则不只仅是会编程还须要有更多的计算机相关知识。
测试开发,具有测试能力与代码能力,提高测试效率与软件质量。又能够作开发,又能够作测试。
要求比较强的开发能力,深刻代码层。通常不直接参加测试工做。
一、对测试框架、测试工具的二次开发,更好的符合公司产品的测试要求
二、开展单元测试或者协助开发开展单元测试,从开发阶段就开始把控产品代码质量。在后续迭代过程当中快速挖掘问题
三、开发测试工具和平台,为测试团队提升测试效率,各类测试的简化、测试结果的量化。好比性能测试平台、接口测试平台等。
此处省略几百字。
若是你不是业务专家,也不想在初级测试工程师里中止不前,那么长远发展来讲,编程是你不管如何都躲不掉的。