对这个问题,我的回答是:对,这是真的!
1.职位的由来。
在传统的软件测试领域中,是没有测试开发这个职位的,只有测试员,测试设计员和测试管理员这三个职位。
测试员要能看懂测试用例,执行测试用例及使用缺陷跟踪系统提交缺陷报告,在开发人员修复缺陷后还要进行返测及回归测试。
测试设计员负责设计测试用例及测试脚本(简单的),若工期紧张则也要做测试员的工作。
测试管理员则只要负责管理测试组织,编写测试计划、协调测试资源、与开发方沟通。
然而当进入网络时代,尤其是移动应用的出现,对整个IT行业的工作模式和人员要求都是一个大的提升,这其中对测试的影响巨大。
在这里我们先来说一个现象,然后根据这个现象就能得到线索。
如果你每天都打开手机里的“应用市场”功能,就会发现有一些应用总是频繁更新,很费流量,这是为什么呢?
作为商业产品,没有哪个公司敢说自己的软件没有缺陷,而且测试本身也做不到穷举测试,这就意味着软件一定有缺陷,只是当前没有发现而已。而当用户遇到缺陷或在随后的测试中发现缺陷,为了应对激烈的市场竞争及产品甚至企业的形象,这就要去企业要快速的解决问题,第一时间消除缺陷并向用户发布出去。
那么问题就来了,开发人员修改代码后不测试就发布,这是不可能的,没人敢这么干。而测试方呢,传统的测试主要依赖手工测试,这就需要大量的测试工程师手工执行大量的功能类测试用例及脚本,来对修改过的代码进行验证,消耗资源大,且时间无法把控。这就是当前IT企业招聘测试开发的诱因。
也有人可能会问,自动化测试工具就可以提高工作效率啊!对也不全对。
测试工具并不是万能的,若恰好是测试工具所不支持的技术或环境,测试工具就无能为力了。而当前,各种操作系统、不同的操作系统版本,各种平台技术五花八门,自动化测试工具的限制越来越大。
综上所述,企业招聘测试开发的原因,就是需要开发出适合当前产品的工具,从而提高测试效率,满足持续集成的要求,快速发布新版本。
2.职位的定义
测试开发工程师就是精通软件测试流程及基本技术,掌握开发技术,能够为产品开发出相应测试工具或测试平台的软件测试工程师。
3.工作的内容/目标
3.1初级目标:让功能测试更简单、更快
着眼于产品本身,为其他测试人员编写适合的自动化测试工具或自动化测试框架,提升功能测试的效率。
主要工作内容包括:
编写功能自动化测试脚本
编写接口自动化测试脚本
编写用于测试的各种小巧的程序
3.2中级目标:提升整体研发的测试效率
从测试工作的流程出发,针对耗时长,复杂且容易出错的环节,通过掌握的技能对其进行改造,将这些环节进行自动化处理并纳入到当前的持续集成中。目标是从软件整体的生命周期中解决问题,提升研发的测试效率
3.3高级目标:开发出适合产品/公司的测试架构或平台
能够从事这种工作的人称为测试架构师,目前是软件测试的终极职业之一。
着眼于整个软件测试流程,创建并维护测试环境及各种测试工具,满足功能、性能、白盒测试等工作需求。还要负责对测试团队进行必要的技术指导,协助测试团队研究新技术,开发新工具,提升团队整体技术能力。最重要的是根据产品或公司的技术特征,设计并开发出适合的测试平台(可使用现有平台和技术进行二次开发),从而提升测试的专业性并进而提升整体研发的工作效率和质量。
4.最后
想和大家说,软件测试的终点不是自动化测试,而是测试开发。若想从事软件测试工作,就要把测试开发作为技术目标。我们不是在开拓新的技术方向,而是在比较成熟的道路上不断前进。没有学不会的,只看你是否愿意学。