近些年来,测试人员会写代码已经成为业界刚需。目前高薪的测试工作岗位都硬性需要java和python的代码技能,大家也一定意识到了能够编写代码的重要性和迫切性。 “测试开发”也成了热门岗位。测试开发工程师简单地说就是既会测试又懂代码的测试人才!他们能够帮助开发和测试同学提升测试效率,进而帮助公司提升整体的研发效率!那么测试开发工程师的主要工作职责是什么呢?他们需要的技术栈又有哪些呢?在这里我给大家进行一个详细的汇总!
核心:编码能力!Java或者Python都可以,两者兼顾最好!
主要工作内容:UI自动化测试、接口自动化测试、测试小工具开发、测试平台开发。
本篇文章以Java为主线对测试开发进行技术栈分析
Java基础知识
数据类型
8种基本数据类型:byte、short、int、long、float、double、char、boolean
3种引用数据类型:类、接口、数组
条件语句应用
循环语句应用
String的常用方法使用,字符串的查找、拼接、替换、删除
数组和动态数组(arraylist)
hashmap
正则表达式
java函数,包括函数的定义,参数和返回值
Java的异常机制
Java命名规范
面向对象继承,封装和多态
JavaIO概念与文件的读写
maven 基础,重点是:安装maven环境,创建maven工程,maven工程结构,pom.xml,在ide中使用maven
Git\SVN基础使用
测试框架Junit4和TestNG
UI自动化测试
核心:使用java的jar包+Java测试框架进行自动化测试
如果你进行web应用的自动化测试,使用selenium jar包
如果你进行IOS或者Android应用的自动化测试,使用appium jar包
接口自动化测试
核心:使用java的jar包+Java测试框架进行自动化测试
如果你进行http或者https接口测试,使用httpclient jar包
如果你进行其他类型的接口测试(包括:TCP、UDP、dubbo等等),需要与研发沟通,具体的协议是什么?如何调用该服务接口?因为接口测试的本质就是(以java为例),通过new 类的实例来调用类中的某个方法!
测试小工具开发
核心:通过代码解决手工测试重复度高的工作,这里举几个例子
测试数据创建:可以通过写sql语句+UI自动化+接口自动化的方式来创建测试数据
测试环境构建:主要是python,shell+ansible
Excel文档相关处理:使用poi-ooxml jar包
Jenkins任务处理:使用jenkins-client jar
测试平台开发
个人观点,测试平台开发本质上就是开发了,只不过是开发测试相关的产品。那么就需要较为深入地了解Java开发的相关的知识了,主要包括:
- 容器
- 多线程
- 反射
- 泛型
设计模式,重点关注:工厂设计模式,单例模式,代理模式,模板方法,包装器模式,观察者模式和适配器模式
由于绝大多数测试平台都是基于B/S架构开发的,所以我们需要掌握前后端相关技术。
后端需要掌握的知识包括:
- Spring,后端基础框架
- Spring MVC,是基于 Spring 的一个 MVC 框架
微服务的概念
- Spring Boot,是基于 Spring的条件注册的一套快速开发整合包,目前最主流的技术
- Spring Data JPA,操控数据库
- MyBatis,操控数据库
Spring Data JPA和MyBaits的比较如下
1.表关联较多的项目,优先使用mybatis
2.持续维护开发迭代较快的项目建议使用mybatis,因为他更为灵活。
3.对于传统项目或者关系模型较为清晰稳定的项目,建议JPA
Spring Boot消息驱动(包括:KafkaTemplate、RabbitTemplate等等)
前端需要掌握的知识包括:
- HTML
- DOM
- Javascipt
- Css
- Vue
- react
总结
以上就是测试开发同学必备的技术栈了,难点自然是测试平台开发,因为这个职位本质就是开发!有兴趣的同学可以按照文章的知识点,自行充电,慢慢提升!原创不易,如果文章帮到了你,欢迎大家点赞、收藏、转发,您的支持是我不断原创的动力!