AIGC革命已来,如何在企业场景落地?如何选择模型、怎样应用RAG、需要哪些组织流程配套? 了解详情
写点什么

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

  • 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:492607

评论

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

限频/限流的一些思考

i风语

Java redis 微服务 sentinel ratelimiter

深入浅出kubernetes之WorkQueue详解

博文视点Broadview

Kubernetes 源码分析 k8s 队列 延迟队列

告别静默式看房 融云音视频助力上海中原 App 上线 VR 带看服务

Geek_116789

iOS 动画 - 窗景篇(三·完结)

柯烂

ios swift 动画 移动互联网 动效

【写作群星榜】6.20~6.26 写作平台优秀作者 & 文章排名

InfoQ写作社区官方

写作平台 排行榜 热门活动

揭秘!中国人一定要知道的北斗卫星系统

程序那些事

北斗卫星 北斗系统 卫星定位 卫星授时 黑科技

那些会阻碍程序员成长的细节[3]

MavenTalker

程序员 职业规划 职业成长

为什么建议你使用枚举?

王磊

Java 枚举

对直播带货的一点思考

Neco.W

直播 直播带货

ARTS 第五周 6.21-6.28

我笔盒呢

ARTS - Week 4

Khirye

ARTS 打卡计划 arts

一群龙舟划手 “拍了拍” 你:端午节安康~

博睿数据

玩转Java8中的 Stream 之从零认识 Stream

Java小咖秀

学习 面试 stream java8 经验

IM聊天教程:发送图片/视频/语音/表情

GoEasy消息推送

websocket 即时通讯 聊天室 聊天

海阅优品致力打造新零售蓝海

Geek_116789

MySQL实战45讲笔记(1)

程序员老王

msyql

架构师训练营第四周作业

张明森

Dart vs Swift

柠檬水

swift dart

Week2:作业二

车小勺的男神

区块链≠分布式账本,别再傻傻分不清

CECBC

区块链技术 高考 信息防篡改

势能造就下的互联网大厂程序员为什么去开滴滴了?

非著名程序员

程序员 程序人生 提升认知

在以后的高校招生中,应用区块链技术,可以防、治冒名顶替吗?

CECBC

区块链技术 高考 信息防篡改

架构师训练营第四周作业

烟雨濛濛

重学 Java 设计模式:实战中介者模式「按照Mybatis原理手写ORM框架,给JDBC方式操作数据库增加中介者场景」

小傅哥

设计模式 小傅哥 代码优化 代码规范 中介者模式

了不起的 TypeScript 入门教程 [1.2 w字]

阿宝哥

Java typescript 大前端 Web

ARTS 第四周 6.15-6.21

我笔盒呢

[深入理解Redis]读取RDB文件

老胡爱分享

redis 源码阅读

架构师训练营第四周总结

烟雨濛濛

如何搭建一个Hadoop集群

Rayjun

大数据 hadoop

软件架构语录

烟雨濛濛

融云年中大促钜惠来袭 IM+RTC 超值套餐最低6折起

Geek_116789

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