最近很多同学在我公众号后台留言,提了很多问题,其中最多的就是如何提升技术能力。
目前的就业市场,对测试的技术能力要求越来越高,测试开发岗位逐渐成为了香饽饽。测试开发对技术要求较高,部分同学要么技术基础较差,或没有找到一个很好的学习方法和路径。
结合我在面试测试开发候选人时问的问题,以及我个人的工作经验,我将测试开发必须具备的能力进行了总结。我个人认为,具备如下几点能力,会是一个优秀的测试开发同学。
什么是测试开发工程师
我对测试开发的定义
个人认为,在国内测试开发很重要的一点是具备大部分测试所不擅长的coding能力以及技术广度,可以通过借助已有的工具框架或者二次开发,快速解决测试过程遇到的各种block效率的问题,以及为技术团队提供一些更高效的研发测试工具,提高交付过程的效率,并保障测试过程的质量。
测试开发日常做什么
以我的个人经验来讲,测试开发工程师的日常,大多在做如下几点事情:
- 借助已有的成熟工具或者框架,搭建内部的各种测试过程平台或者框架,如提测平台、用例管理、自动化测试平台、单元测试覆盖率、线上冒烟验证平台、测试的造数工具等;
- 业务需求较多时临时去支援业务的版本迭代测试,照样需求评审、写测试case、提BUG、线上发布验证;
- 内部技术分享、新人技术培训等;
做QA工作,最核心的就是交付效率和质量。测试开发的本质,还是和测试过程以及线上交付有关。测试开发工程师一方面通过工具和平台来提高测试过程的效率, 另一方面也要保障最终线上的交付质量。
测试开发的六大必备能力
基础能力
上面提到了,测试开发的本质还是做测试交付相关的工作。基本的如需求分析、设计测试场景、编写测试case、发现和验证bug、沟通协调以及测试流程管理、质量把控等。
技术能力
测试开发需要借助已有的成熟工具或者框架,搭建内部的各种测试过程平台或者框架。
因此除了coding能力,还需要负责对业内广泛使用或者成熟度较高的工具框架进行引入落地,来解决日常测试过程中的种种问题,提高测试过程效率,保障线上的交付质量。常见的有工具框架有:
- 单元测试框架如pytest;
- 单元测试覆盖率如jacoco;
- 自动化测试框架如airtest、selenium;
- 持续集成工具和框架,常见的如Git、Jenkins、Gitlab;
- 企业级性能测试技术和压测工具,常见的有Jmeter和beanshell;
沟通协调能力
沟通协调能力是一项软能力,但在今天的职场,却是一项非常重要的能力。
无论是平台工具推广落地,还是和其他团队的技术同学沟通配合,都需要大量的沟通协调。职场上沟通协调能力甚至比技术更重要。
产品设计能力
前面提到了测试开发需要去做一些平台或者工具落地,这里并不是说只要把工具用起来就OK了。因为团队里的同学技术能力各有不同,需要通过平台或者工具来规范流程,提供便捷的操作方式来提高效率。
而且每个公司的流程、业务特点导致了对平台的诉求各不一样。因此需要针对性的进行平台交互逻辑设计,甚至一人搞定原型图PRD前端后端开发各种事情。
画饼和落地能力
互联网行业打工人,几乎都逃不了KPI/OKR。做产出,推落地,拿结果,讲价值,哪个不需要画饼落地能力。
因此学会给领导画饼,并且把饼做出来,是很考验个人的一个技术活儿。这不仅关心到绩效的好坏,也是一个自我价值诉求的主动传递过程。
项目管理和交付能力
最后一个能力,实际上是测试同学很重要的一个能力。
工作除了版本迭代,偶尔还有独立的技术项目要参与其中。很多互联网企业都会强调员工的主动性,向前一步,主动承担责任。这些基本逃不开跟进项目进度、把控项目质量、评估风险、协调资源甚至保证按时交付。