作为一位长期研究软件测试技术的从业人员来说,毫不避讳地告诉大家,软件测试的方向一定是全栈、测试开发的方向,不能还抱着自己功能测试的“铁饭碗”了,因为这个铁饭碗太没竞争力,很容易被一些新入行的年轻人替代,到时候不要抱怨所谓的IT行业35岁魔咒啦,问题一定是出在你自己身上。
不会写代码的测试人员不是称职的测试人员在不久的将来会成为淘汰一部份测试的铁律,不信的话,我们时间来作证。
随着测试行业不断提升对编码能力要求的同时,一个全新的测试岗位-“测试开发”也悄悄成了一个热门的岗位,而且是那种薪资和待遇抗衡开发的岗位,测试开发工程师简单地说就是既会测试又懂代码的测试人才!他们能够帮助开发和测试同学提升测试效率,进而帮助公司提升整体的研发效率!
今天allen老师就带大家来了解一下测试开发工程师的主要工作职责是什么?以及java技术栈需要掌握哪些技术!
一、 测试开发工程师的职责
这个岗位不是最近几年才火起来的,google在很早之前就引入了测试开发的概念,感兴趣的同学可以去读一下《google测试之道》这本书,他的定位是更好地沟通测试人员和开发人员的工作,让测试工作更加简单,当然这就提到了需要去设计UI、接口自动化测试的框架,测试小工具开发以及测试平台的开发等。
但是现在的一些公司在一定层度上却偷换了概念,公司内不再设立测试岗位,只招聘测试开发岗位,当然具体做什么工作,大家也都懂得。
我们来看两个boss直聘上测试开发的招聘岗位职责,其实该岗位定位还是以测试工作为主,额外对行业、开发语言和设计有一些要求。
上图这个测试开发岗位虽然薪资定位在20~40K之间,取中值也就是30K的样子,也算是中规中矩的范围,但职责上除了测试基本工作内容之外,能筛选出来也就是持续改进测试过程和方法,引进测试工具提升测试效率啦,可见从测试跨到测试开发,也就是简简单单的一层窗户纸。
这个招聘基本也差不多,对自动化和白盒测试有一定的要求,因此也就对开发语言有响应的要求了,除此之外就是解决测试问题、提升测试质量这些啦。
二、 测试开发工程师的任职资格
和其他岗位招聘要求差不多,学历和行业背景也是其中两个必备的条件,我们此处直接忽略,更多地放在技术方面。
下面是boss直聘的多个测试开发招聘简章中过滤出来的任职资格,除去我们测试人员也要熟悉的linux、mysql、jenkins、git和沟通能力外,也无非就是java、python两个技术栈以及其对应框架的使用了。
1、精通至少一门开发语言,如Java、python、Shell等,熟悉Hadoop、Spark者优先;
2、熟练使用Linux或Unix操作系统;熟练apache、tomcat等应用服务器配置与管理;
3、熟练Oracle/Sql server/My SQL等常用数据库的操作,能熟练编写复杂SQL语句;
4、具有较强的逻辑思维能力、分析能力、理解业务的能力、沟通能力和表达呈现能力;
5、熟练掌握接口自动化,具备测试框架/测试平台开发经验、性能测试经验;
6、熟练使用MongoDB、PG数据库,熟练掌握一门或多门编程语言 Python/Go/Java等;
7、熟练使用Jenkins/Git/Docker,了解k8s、docker环境搭建和管理。
总之,任职资格核心就是:编码能力!Java或者Python都可以,两者兼顾最好!
三、测试开发java栈必备技能
1、Java基础知识
数据类型
数组
集合
Map
常见类如String、正则表达式类等
java函数定义和调用
Java的异常机制
java面向对象,继承,封装和多态
Java中IO概念与文件的读写
单元测试框架Junit4和TestNG的使用
参见系列文章:
2、java高级
容器
多线程
反射
泛型
设计模式
3、后端开发技术
Spring全家桶(Spring MVC、Spring Boot 、Spring Data JPA等)
4、前端开发技术
这个就比较通用了,HTML、DOM、Javascipt、Css
框架这块选择Vue和react
5、maven 基础
在IDE中快速搭建maven项目
配置pom.xml文件
快速构建工程
6、Git\SVN基础使用
两个版本关联软件,会其一即可,如果两个都会的话就更好了。
如果还能结合使用一些托管系统如gitee、github就更好了。
7、自动化测试
其实就是采用java语言实现UI自动化测试和接口自动化测试。
Web端UI自动化:java+selenium+junit/testng+ant+其他jar
移动端UI自动化:java+appium+junit/testng +ant +其他jar
接口自动化:java+httpclient+junit/testing+ant+其他jar
四、测试开发python栈必备技能
1、python基础知识
python基础语法和运算符
列表
集合
字典
常见模块如os、re、json等
python函数定义和调用
python的异常机制
python面向对象,继承,封装和多态
python中IO概念与文件的读写(csv、json、excel等)
单元测试框架unittest和pytest的使用
参见系列文章:https://zhuanlan.zhihu.com/p/250501217
2、python高级
迭代器
闭包
装饰器
多线程
队列
网络编程
路由技术
设计模式等
3、后端开发技术
Flask是一个不错的、简单的后台开发框架。
Flask初次使用与config配置
路由语法和快捷路由方法
MVC设计思想和MTV实现
jinja2模板语法和静态资源
blueprint插件与模块化
ORM设计思想和sqlalchemy框架应用
Flask-Restful插件应用
Flask+Vue+Docker测试平台开发
4、前端开发技术
这个就比较通用了,HTML、DOM、Javascipt、Css
框架这块选择Vue,主要需要掌握的内容:
Vve实例生命周期
Vue组件化开发、组件通信
Vue-CLI项目框架设计、Nodejs安装与npm使用
vue ui可视化管理项目服务
Vue集成axios和ElementUI
Vue路由与子路由
VueX的应用与开发
Vue项目编译与打包
5、Git\SVN基础使用
两个版本关联软件,会其一即可,如果两个都会的话就更好了。
如果还能结合使用一些托管系统如gitee、github就更好了。
6、自动化测试
其实就是采用java语言实现UI自动化测试和接口自动化测试。
Web端UI自动化:python+selenium+unittest/pytest+json+ddt+其他模块
移动端UI自动化:python+appium+ unittest/pytest+json+ddt+其他模块
接口自动化:python+requests+ unittest/pytest+json+ddt+其他模块
更多关于“软件测试技术干货”的问题,欢迎咨询千锋教育在线名师。千锋教育多年办学,课程大纲紧跟企业需求,更科学更严谨,每年培养泛IT人才近2万人。不论你是零基础还是想提升,都可以找到适合的班型,千锋教育随时欢迎你来试听。