作为一个毕业半年的我来说,换了两份工作,现在在游戏公司做测试开发工程师,也就不到两个月吧。之前在学校学了C/C++,数据结构,算法设计等,但也只是考试过了,还是菜鸟一枚。然后来到公司,有做一些兼容性测试之类的,前一个星期给我一个星期做一个网页爬虫吧。感觉自己做得都不是特别重要的工作,所以就很迷茫,不知道该学些什么,在网上有搜一些,然后,觉得有些比较符合测试开发工程师应该做的事情,做了下整理。
以下转载:https://mp.weixin.qq.com/s/WU5h8FW6BT5YZtlsSuCIcw
测试开发工程师的作用
-
基本要求:对测试开发工程师来说,看懂代码,熟练使用测试工具,能做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,将前后端数据库关联起来。
-
前端页面: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使用