写点什么

测试开发工程师的进阶之路

  • 2020-03-22
  • 本文字数:2680 字

    阅读完需:约 9 分钟

测试开发工程师的进阶之路

一、测试工程师的现状

很多测试小伙伴在工作中有时会比较迷茫,不知该怎样突破瓶颈,更好的发展。


那么测试人员究竟该如何打破瓶颈继续向上提升呢?如果你苦于不知所措,又满怀斗志向上的话,不妨一起聊聊。测试职业发展有典型的三种方向:


  • 管理方向

  • 技术型方向

  • 转行


在此重点说下技术型方向的发展。曾几何时,提的 bug 被否认而倍感无力;曾几何时,遇到一个偶发复现的 bug,到上线了都不知道该怎么复现;曾几何时,面对没有前端页面的测试任务,不知该从哪下手测试;曾几何时,面对每天重复繁琐的测试工作,恨不得有个机器人来帮忙。


依稀记得,有天发现一个 bug,于是远程 debug,一行代码一行代码的走,终于定位到是数组下标越界了,提出 bug 并附上断点定位的代码截图,开发看后瞬间改了,自此赢得开发不一样的认可。那么懂代码就算是测试开发工程师吗,答案是否定的,那究竟怎样才能做一名测试开发工程师,有哪些优势,和开发的区别又是什么呢?

二、测试开发工程师的作用

对测试开发工程师来说,看懂代码,熟练使用测试工具,能做 ui、接口、性能的测试,具备测试经验和测试思想逻辑是基本要求;既要会业务功能测试,又要能做代码层接口及单元测试,更重要的是通过能力和经验的积累,能搭建适用于技术研发团队的工具平台,以更好的降低公司成本和提高工作效率。在这样的理念下我们部门按照软件的生命周期,自主研发了整套的测试平台:


  • 源代码监控分析平台,配置化平台实现对源代码进行系统化、规则化的全面覆盖测试,通过智能规则模型的有效过滤,及早发现问题,提高项目质量。

  • 接口自动化平台,不用写一行代码就可完成对接层的测试,完美支持 http 和 jsf 接口,并生成美观可视化的报告;

  • UI 自动化平台,让不懂代码的小白测试人员便捷快速的上手 ui 自动化测试工作,以往需要自己写代码,现在直接在页面维护一些元素即可;

  • 测试工具平台,现已涵盖十几个大的业务系统,几十个便捷的功能,可快速、便捷的产生和查询测试数据,减少测试人员的联调时间和营造复杂场景数据的时间。上线时间虽不长,使用频次近 3 万,大大方便了开发、测试和产品人员。

  • BUG 监控分析平台,通过对 bug 大数据进行分析、归类、汇总的智能处理,采用图表方式更加简洁明了的查看项目质量和进度;

三、测试开发工程师的必修课程

如何才能成为一名真正的测试开发工程师,需要具备哪些硬技能呢?


一、具备一定测试经验。只有设身处地的经历过测试人员的痛点和难点,才能切实解决他们的问题。


二、会使用常用重要的测试工具。比如性能测试常用的 Loadrunner、jmeter;ui 自动化常用的 selenium;单元测试常用的 testng、junit;安全测试常用的 appscan,js 注入,xss 注入,sql 注入等等。


三、具备测试工具开发能力。下面介绍一些主流的技术栈:


  • 测试工具系统框架搭建1)java+maven+SpringMVC ;2)python+django


对于第一种框架,最好创建分层化的多模块工程,以便更好的设计代码框架和结构。通常 dao 层主要是和数据库关联;web 层是 controller,是前端和服务层的衔接;service 层提供一些公共服务或业务处理逻辑。



Maven 工程有了之后,运用当前主流的框架-springMVC,将前后端数据库关联起来。




对于无代码基础,想入门测试开发的小伙伴,可学习第二种框架:python+django,较为易学易用。



  • 前端页面:html,css,jquery,bootstrap,Echarts,前端页面是门脸,是使用人员操作的入口,也是数据输入和展示最直观的地方。


Css 样式决定页面布局和美观度;jquery 是一种 js 框架,极大地简化了 js 编程;echarts 能够提供简单易用的常用图表,使页面更加有档次感、数据展示更加直观简洁。



(图表示例)


一般前端资源会存放在 web 层的 static 静态文件夹下。




(静态资源引用)


  • 后端服务:spring,mybatis,使用 Spring 框架可以简化很多基础性的工作,配置好后可以方便构建业务应用,是一个非侵入性的轻量级容器。



  • 数据库:Mysql 或 Orcale 的数据库安装,库表创建,字段设计,常用的 sql 语句

  • 系统:能熟练在 windows 或 linux 系统上搭建项目,日志查看等操作

  • 服务容器:tomcat 服务部署,nginx 负载配置,docker 使用

  • 持续集成:git,jenkins

  • 开发工具:idea 和 eclipse

  • 代码调试:testng 或 junit 的单元调试及 debug 和远程 debug 使用

四、测试开发工程师的进阶

为了提高测试效率,降低测试成本,使测试价值最大化,在具备测试经验、熟练使用测试工具并有一定开发能力的前提下,就可自主开发平台,或对现有开源工具进行二次开发了,这也是测试开发工程师不断进阶的必经之路。下面介绍一下企业金融测试部自主研发的其中几个自动化工具平台,希望对大家在开发测试平台时有一定的启发:



一、源代码监控分析平台。在开源平台 sonarqube 上定制符合部门需求的规则,通过 jenkins 集成定时对项目代码质量进行扫描,对单元测试和代码覆盖率进行统计、定制化邮件发送,让开发和测试同学可以发现项目源码的问题。



二、接口自动化平台。在测试工具基础上结合 HttpClient、testng 等,生成美观的可视化报告,并邮件发送给指定人员,实现接口自动化平台。现已稳定运行数月,并实现接口入参、加密传参及数据库检查点,以及多接口间的出入参依赖,可实现多接口,多场景的组合测试,完美覆盖 http、jsf 接口的测试,提高了使用者在接口方面的测试效率。



三、UI 自动化平台。在测试工具的基础上引入 selenium、Jenkins、testng,实现 ui 自动化平台。现在很多公司都在做 ui 自动化,通常是用 java(或 python)加上 selenium,跑自动化程序,但这对小白测试人员有一定难度。但在我们平台,测试人员只需要在页面维护相关元素,不用写代码,就可实现 ui 自动化,并且可以多场景组合测试,方便测试环境更新版本和线上的回归测试,对于元素维护简单方便易上手。<



四、测试工具平台。我们在测试工具基础上结合企业金融业务开发了测试工具平台,它是基于 springMVC 框架的前后端系统。目前总访问次数近三万次,覆盖约十几个业务线系统,单功能访问次数达几百次,在面对复杂业务场景、重复营造和查询数据、频繁业务联调时,可直接让对方访问此平台,一键生成和查询想要的数据,一键实现复杂的业务流程,极大的解脱了研发人员的时间,也避免了不必要的等待时间。


五、BUG 监控分析平台。在测试工具的基础上对 redmine 进行数据提取、处理,通过 web 页面图表直观展示,可简洁明了的查看 bug 数据及项目质量情况。




以上是对测试开发工程师发展的一些思考,希望能抛砖引玉,引起大家对测试平台的兴趣。 欢迎大家一起探讨测试的发展,若以上平台对大家工作有帮助,对京东大家庭的发展有帮助,欢迎大家技术接入,联系企业金融测试部邮箱:cft@jd.com。


2020-03-22 20:492876

评论

发布
暂无评论
发现更多内容

Redis该怎么学?其实很简单,这份学习路线,mybatis架构梳理

Java 程序员 后端

OpenFaaS实战之五:大话watchdog,MySQL高可用之主备同步

Java 程序员 后端

Redis入门到五大类型实现,java基础知识点大全

Java 程序员 后端

Redis:看完就比常人多会三种类型实战,可以拿去炫耀了

Java 程序员 后端

RocketMQ 5,学习linux系统管理

Java 程序员 后端

set集合,挑战华为社招

Java 程序员 后端

Redis分布式基石——主从复制技术详述,Java黑科技实现原理揭秘

Java 程序员 后端

Redis精通系列——LRU算法详述(Least Recently Used - 最近最少使用)

Java 程序员 后端

Set集合无法去重相同内容的父类对象和子类对象的问题解决

Java 程序员 后端

Nginx面试三连问:如何工作?负载均衡策略有哪些,如何成为一个更好的Java开发者

Java 程序员 后端

RabbitMQ实现即时通讯居然如此简单!后端代码都省得写了

Java 程序员 后端

Redis不只是get set,八种数据类型及应用场景分析,java技术栈面试题

Java 程序员 后端

OpenKruise v0,mybatis教程pdf

Java 程序员 后端

pageHelper----Mybaits分页插件,mysql架构设计器没有显示

Java 程序员 后端

Redis-生产架构选型解决方案,java开发架构师

Java 程序员 后端

seata-golang 一周年回顾,java面试准备内容

Java 程序员 后端

Redis哨兵原理,我忍你很久了!,java面试视频百度云

Java 程序员 后端

Redis总结,学Java必看书籍

Java 程序员 后端

Redis面试题汇总,mysql调优面试题

Java 程序员 后端

SCA Sentinel 分布式系统的流量防卫兵,春招我借这份PDF的复习思路

Java 程序员 后端

oh,老哥,是码友就来看这篇多线程,mybatis的底层原理

Java 程序员 后端

Redis 千万不要乱用KEYS命令,不然会挨打的,面试必问

Java 程序员 后端

Serverless Devs 的官网是如何通过 Serverless Devs 部署的

Java 程序员 后端

Offer经验分享 - 蚂蚁金服、字节跳动、PDD,蚂蚁金服面试Java后端经历

Java 程序员 后端

RabbitMQ 可靠性、重复消费、顺序性,突围金九银十面试季

Java 程序员 后端

Redis到底能干什么?又不能干什么呢?,kettle面试题

Java 程序员 后端

Redis高可用篇:Cluster集群能支持的数据量有多大?,再不了解你就out啦

Java 程序员 后端

RestFul API 统一格式返回 + 全局异常处理,linux系统编程视频教程

Java 程序员 后端

Servlet的Cookie和Session机制,面试谈谈对springboot的理解

Java 程序员 后端

redis 在微服务领域的贡献,java制作微信小程序教程

Java 程序员 后端

Redis-用的很溜,了解过它用的什么协议吗?,3天拿到网易Java岗offer

Java 程序员 后端

测试开发工程师的进阶之路_文化 & 方法_京东数字科技产业AI中心_InfoQ精选文章