时光荏苒,从毕业到现在已经10年,10年来一直从事着软件测试的工作。从一个什么都不会,到测试开发工程师,期间有迷茫,有痛苦,有弯路,有捷径。今天对自己过去的10年测试经历做一个总结,一是给自己重新出发增加动力,二是给刚入道的、迷茫中的测试朋友一点点建议,希望你们少走弯路。
1、首先,谈谈测试职业规划,即做什么的问题。
所谓方向比努力重要,这绝对是一句真理。如果能在刚走上测试工作岗位的时候明白这个道理,那么不出5年,你一定能成为某一测试领域的专家,那时不管是薪水、自信心都是顺其自然的事情。
但是遗憾的是,我们获取的太多信息是,测试人员是一个通才,什么都要学,什么都要懂。结果这样的一个方向,导致了三脚猫功夫的测试人员一大把。那么什么都懂一点的测试人员难道就没有用武之地了吗?也不是,随着互联网市场竞争越发激烈,软件研发效率要求越来越高,自动化测试成为测试团队提高效率的首选,在企业招聘软件测试中高级岗位时,熟悉自动化测试、接口测试、掌握热门工具使用、开发测试框架等已成为硬性指标。针对有点测试基础,希望深入进阶,可以朝着测试开发岗位发展。说到这里,引出了测试职业规划的全能路线:测试开发,提升自身测试能力,成为全能型人才,成为测试团队核心支撑。
2、其次,谈谈测试工程师的现状
很多测试小伙伴在工作中有时会比较迷茫,不知该怎样突破瓶颈,更好的发展。
那么测试人员究竟该如何打破瓶颈继续向上提升呢?如果你苦于不知所措,又满怀斗志向上的话,不妨一起聊聊。测试职业发展有典型的三种方向:
管理方向
技术型方向
转行
在此重点说下技术型方向的发展。曾几何时,提的bug被否认而倍感无力;曾几何时,遇到一个偶发复现的bug,到上线了都不知道该怎么复现;曾几何时,面对没有前端页面的测试任务,不知该从哪下手测试;曾几何时,面对每天重复繁琐的测试工作,恨不得有个机器人来帮忙。
依稀记得,有天发现一个bug,于是远程debug,一行代码一行代码的走,终于定位到是数组下标越界了,提出bug并附上断点定位的代码截图,开发看后瞬间改了,自此赢得开发不一样的认可。那么懂代码就算是测试开发工程师吗?答案是否定的,那究竟怎样才能做一名测试开发工程师,有哪些优势,和开发的区别又是什么呢?
3、测试开发工程师有什么作用呢?
对测试开发工程师来说,看懂代码,熟练使用测试工具,能做ui、接口、性能的测试,具备测试经验和测试思想逻辑是基本要求;既要会业务功能测试,又要能做代码层接口及单元测试,更重要的是通过能力和经验的积累,能搭建适用于技术研发团队的工具平台,以更好的降低公司成本和提高工作效率。在这样的理念下我们部门按照软件的生命周期,自主研发了整套的测试平台:
源代码监控分析平台,配置化平台实现对源代码进行系统化、规则化的全面覆盖测试,通过智能规则模型的有效过滤,及早发现问题,提高项目质量。
接口自动化平台,不用写一行代码就可完成对接层的测试,完美支持http和jsf接口,并生成美观可视化的报告;
UI自动化平台,让不懂代码的小白测试人员便捷快速的上手ui自动化测试工作,以往需要自己写代码,现在直接在页面维护一些元素即可;
测试工具平台,现已涵盖十几个大的业务系统,几十个便捷的功能,可快速、便捷的产生和查询测试数据,减少测试人员的联调时间和营造复杂场景数据的时间。上线时间虽不长,使用频次近3万,大大方便了开发、测试和产品人员。
BUG监控分析平台,通过对bug大数据进行分析、归类、汇总的智能处理,采用图表方式更加简洁明了的查看项目质量和进度;
4、测试开发工程师的必修课程
如何才能成为一名真正的测试开发工程师,需要具备哪些硬技能呢?
1)具备一定测试经验。
只有设身处地的经历过测试人员的痛点和难点,才能切实解决他们的问题。
2)会使用常用重要的测试工具。
比如性能测试常用的Loadrunner、jmeter;ui自动化常用的selenium;单元测试常用的testng、junit;安全测试常用的Appscan,js注入,xss注入,sql注入等等。
3)具备测试工具开发能力。
下面介绍一些主流的技术栈:
测试工具系统框架搭建: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能够提供简单易用的常用图表,使页面更加有档次感、数据展示更加直观简洁。
后端服务:spring,mybatis,使用Spring框架可以简化很多基础性的工作,配置好后可以方便构建业务应用,是一个非侵入性的轻量级容器。
数据库:MySQL或Orcale 的数据库安装,库表创建,字段设计,常用的sql语句
系统:能熟练在windows或linux系统上搭建项目,日志查看等操作
服务容器:Tomcat服务部署,Nginx负载配置,Docker使用
持续集成:git,jenkins
开发工具:idea和eclipse
代码调试:testng或junit的单元调试及debug和远程debug使用
5、那么,如何从一个有点测试基础的菜鸟变成测试开发工程师呢?
工欲善其事,必先利其器。
只有真正掌握专业知识,不用担心犹豫,无论走到哪都是有饭吃。不用担心自己能否胜任新的工作。人心叵测,世事多变,只有真正掌握了技术能力的人才会在工作中游刃有余,一定是自己身上有别人不可多得的能力,有与众不同的技术,有社会需要的知识,这样去哪都是有饭吃的。
最后想说测试开发这个工作真的不是吃青春饭的,如果你肯努力,肯学习,你就是常青树!