最近加入了新的团队,角色发生较大的转变,在这里分享一下自己的感受。
测试的划分
如果我们把产品的生产看成一个流水线的话,那么测试就是流水线上的一个重要岗位,把控着产品的质量。
当然,产品类型的不同,测试人员的能力不同,可做的事情也会有很大不同,比如是Web产品,那么我们会去做性能测试和Web UI自动化测试;比如是App产品,那么我们会去做专项测试和APP UI自动化测试,再比如是后端接口平台,那么我们会去做接口自动化测试。再比如游戏产品,测试方法和手段又不一样了。
在此过程中,如果你是一名新手,只能测试UI功能,那么定位为测试工程师;如果你可负责一些复杂业务的测试,并且可以做一些自动化工作,那么定位为中级测试工程师;如果你有丰富的测试经验,综合的测试技术,以及深入到产品内部去做类白盒的测试能力,那么定位为高级测试工程师。(注:这里只是一般的划分,不代表任何公司)
高级测试
接下来聊一聊我做高级测试时的工作。
以我负责的接口平台为例,当开发完成接口开发后,我通过阅读接口代码逻辑的方式进行接口自动化用例的编写,过程中发的代码问题,反馈由开发修改;当我的用例编写完成,那么接口测试也基本搞定。当有新的接口更新时,我就可以重跑接口自动化用例来确保接口的质量,每次只需要对更新的接口编写测试用例。
由于接口先测试,当产品提供可测界面时,问题就少很多了,只是界面样式和兼容性问题。整体上会在缩短整个测试时间。
当然,产品测试过程中还会有一些零散的测试需求,可以快速的选取测试工具或编写测试脚本的方式来完成工作。
这是一般高级测试工程师应该具备的能力。
测试开发
接下来谈一谈测试开发,以及它在项目中的定位。
以我目前所属的团队为例,初创阶段可能是没有测试人员的,随着产品的发展,为了提升产品的质量,另一方面也为了节约人力成本,所以会招一些功能测试人员承担产品的测试工作。开发人员完成功能开发后,由测试人员进行测试。
当公司进一步发展之后,为了优化团队,提升效率,单纯的功能测试人员就会成为短板,但为了保持团队的运行,不可能把功能测试人员全部替换为高级测试。另一方面功能测试也需要伴随公司成长。另一种办法就是引入测试开发团队。当然,大公司的测试开发与高级测试是并存的,测试开发只负责工具与平台的开发。
(注: 这里不讨论个体的情况,比如有一位能力很强的测试/Leader推动测试团队转型)
测试开发不直接参于产品的测试工作。这其实也是与高级测试最大的不同之处。简单将测试开发工作总结为以下几个方面。
-
协助开发编写单元测试(并不是所有开发都一定会写单元测试),规范开发输出(比如输出一定标准接口文档)。
-
帮助功能测试人员提升技术能力,能够独立完成自动化测试工作。
-
开发测试平台:比如,性能测试平台,帮助开发测试进行性能测试。开发接口测试平台,管理与维护接口平台,开发自动化测试平台,方便管理与维护自动化测试。
-
挖掘测试需求,通过技术手段帮助测试团队提升测试效率。
总结下来,就是测试的经验,开发的能力,干着服务于开发与测试的工作。
最后,测试开发并不是高级测试的下一阶段,只职责不同而已。以上仅个人看法!