.5.18周一
留●白
宜
沉思
浮躁
忌
我以我们团队招聘功能测试和测试开发工程师为例,带你了解一下测试工程师的核心竞争力到底是什么。案例一来自我们的资深功能测试工程师招聘。当时,有一位拥有近9年测试经验的资深测试候选人,我对他的简历还是比较满意的,所以就安排了面谈。但是,在聊的过程中我很快发现,这位候选人绝大多数的测试经验积累都“强”绑定在特定的业务领域。如果抛开这个特定的业务领域,他对测试技术本身以及产品技术实现都缺乏系统的思考和理解。换言之,他的价值仅仅能够体现在这个特定的产品业务上,而一旦离开了这个业务领域,他的经验积累很难被有效重用,也就是说他很难快速适应并胜任我们的业务领域测试。所以,他最终没有得到我们的offer。从这个案例中,你可以看出作为测试人员,必须要深入了解业务,但是业务知识不同等于测试能力。案例二来自我们的测试开发岗位招聘。当时,有一位5年测试开发从业经验的候选人,是南京大学软件学院的硕士,毕业后一直在国内的互联网巨头公司从事测试框架和工具平台的开发工作。看完他的简历,我发现他参与开发过的测试框架和工具和我们当时在做的项目很匹配,加之他的背景也相当不错,内心感觉这个职位基本就是他的了。但是,面谈结束后,我彻底改变了想法。他所做的的确是测试框架和工具平台的开发工作,但是他的核心能力纯粹就是开发,他只1
第一项核心竞争力,测试策略设计能力测试策略设计能力是指,对于各种不同的被测软件,能够快速准确地理解需求,并在有限的时间和资源下,明确测试重点以及最适合的测试方法的能力。具备出色的测试策略设计能力,你可以非常明确地回答出测试过程中遇到的这些关键问题:2
第二项核心竞争力,测试用例设计能力
测试用例设计能力是指,无论对于生命类型的测试,都能设计出高效地发现缺陷,保证产品质量的优秀测试用例。要做好测试用例设计,不仅需要深入理解被测软件的业务需求和目标用户的使用习惯,还要熟悉软件的具体设计和运行环境,包括技术架构、缓存机制、中间件技术、第三方服务集成等等。测试用例设计能力要求你不仅仅局限于熟悉业务领域的测试用例设计,而是能够融会贯通,熟练地把系统性的测试设计方法和具体业务有机结合,对任何被测软件都可以输出出色的测试用例。要想提高测试用例设计能力,你平时就要多积累,对常见的缺陷模式、典型的错误类型以及遇到过的缺陷,要不断地总结、归纳,才能逐渐形成体系化的用例设计思维。同时,你还可以阅读一些好的测试用例设计实例开阔思路,日后遇到类似的被测系统时,可以做到融会贯通和举一反三。3
第三项核心竞争力,快速学习能力
快速学习能力,包含两个层面的含义:1.对不同业务需求和功能的快速学习与理解能力;2.对于测试新技术和新方法的学习与应用能力。显然,快速学习能力是各行业从业者应该具备的能力,但为什么我会单独列出来呢?现今的软件项目,尤其是互联网项目,生命周期通常以“月”甚至是以“周”、“小时”为单位,一个测试工程师需要接触各种类型的测试项目,而不再像早年,可以在很长一段时间内只从事一个产品或者相关产品的测试了,所以快速学习能力对测试工程师来说,就是至关重要了,否则就容易被淘汰。快速学习能力,乍一看是比较难培养的,但其实也有一些小窍门。比如,当你学习一个新的开源工具时,建议你直接看官方文档:一来,这里的内容是最新而且是最权威的;二来,可以避免网上信息质量的参差不齐。知识输入源头是单一,而且权威的话,你的学习曲线也必然会比较平滑。另外,当学习新内容时,你一定要做到理解其原理,而不是只停留在表面的、简单的操作和使用,长期保持这种学习状态,可以在很大程度上提高逻辑思维和理解能力。这样,当你再面对其他新鲜事物的时候,也会更容易理解,形成良心循环。4
第四项核心竞争力,探索性测试思维
探索性测试是指,测试工程师在执行测试的过程中不断学习被测系统,同事结合基于自己经验的错误猜测和逻辑推理,整理和分析出更多的有针对性的测试1
第一项核心竞争力,测试系统需求分析能力
除了代码开发能力,测试开发工程师更要具备测试系统需求分析的能力。你要能够站在测试架构师的高度,识别出测试基础架构的需求和提高效率的应用场景。从这个角度说,你更像是个产品经理,只不过你这个产品是为了软件测试服务的。2
第二项核心竞争力,更宽广的知识体系
测试开发工程师需要具备非常宽广的知识体系,你不仅需要和传统的测试开发工程师打交道,因为他们是你构建的测试工具或者平台的用户;而且还要和CI/CD、和运维工程师们有紧密的联系,因为你构建的测试工具或者平台,需要接入到CI/CD的流水线以及运维的监控系统中去。除此之外,你还要了解更高级别的测试架构部署和生产架构部署、你还必须对开发采用的各种技术非常熟悉。可见,对于测试开发工程师的核心竞争力要求是非常高的,这也就是为什么现今市场上资深的测试开发工程师的价格会高于资深的开发工程师的原因。蒲公瑛姑娘谢谢