测试的核心竞争力是什么?

前几天在某个测试技术交流群,有大佬抛出了一个问题:如果抛开技术不谈,如何衡量测试的Level?

简单理解就是:排除技术因素,如何衡量测试工程师的能力达到什么层次?或者说用什么来评估测试工程师核心竞争力?

如果从企业的角度来讲,这就涉及到一个岗位匹配度模型和晋升机制的问题。什么能力做什么事情,让合适的人做合适的事情。

从个人角度来讲,明确这点,能更好的在求职市场以及职场有个更明确的定位和职业规划。

这篇文章,我想谈谈我对测试工程师核心竞争力的一些思考和想法。

 

技术

既然上面的问题提到了技术,那我就先聊聊技术方面的因素。

首先,软件测试岗位是一个技术岗位,这点毋庸置疑。那对于技术岗位来说,技术的底子或者说能力,是很重要的。

如何评估一个软件测试工程师的技术能力呢?在求职或者企业招聘时,通常关注如下几点:

  1. 学历:学习能力;
  2. 技术栈:会什么技术;
  3. 项目经验:利用技术解决过哪些实际的具体的问题;
  4. 大厂履历:业务复杂度更高,高流量带来的技术挑战范围更广,深度要求更高;
  5. 沟通表达:现代职场需要多人协同,高效沟通协调才能解决更复杂的问题和工作;

参照上述几点,我对技术的定义是:技术是工具,利用工具解决问题是能力,能力高低取决于如何更高效的利用工具解决更复杂的问题

在我看来,技术是所有技术岗位或技术工种的基本面,就像盖房子需要打地基一样。万丈高楼平地起,技术就是打地基。

技术很重要,但技术只是重要因素之一,利用技术更高效的解决更复杂的问题,才是衡量技术能力的标准

 

业务

聊完技术,接着聊聊我对业务的理解。

不同企业的业务类型不尽相同,团队面临的业务挑战也不一样。

大家都知道,互联网技术岗位,日常的工作就是完成需求,需求的来源就是实际的业务场景和挑战。

上面我提到了利用技术解决问题,这里的问题就是实际的来源于业务迭代带来的挑战。

我在面试候选人时,会经常问到下面几个问题:

  1. 介绍下最近做过的项目;
  2. 你在其中担任什么角色;
  3. 在项目中遇到过哪些问题;
  4. 你是如何解决这些问题的;
  5. 解决问题背后的思路是什么;
  6. 有没有其他解决问题的方案;

从上面几个问题展开来讲,我希望候选人能对项目背景、项目目标、技术选型、面临的挑战、要解决什么问题、分析问题的思路、典型问题的处理细节等多方面来进行介绍说明,便于我评估候选人的技术能力及对业务的熟悉程度。

你看,其实除了技术,对业务的熟悉和理解也很重要。

我的观点是,技术本身并没有具体的价值,技术能解决多大的业务问题,就具备多大的价值

 

流程

前文中我提到了现代职场需要多人协同,高效沟通协调才能解决更复杂的问题。每个员工在之前工作中所遵守的流程、工作沟通习惯或许都各有差异。

而流程的目的就是尽可能的是团队在解决问题的过程中,尽可能保持节奏和目标一致。这里引用我在之前的文章《测试工程师的职场发展二三谈》中关于流程的一段描述:

问:流程是什么?为什么要有流程?流程能解决什么问题?流程能带来什么保障?

流程是什么?

流程是保障团队目标达成的最佳实践,因人/团队/业务类型/迭代速度/资源紧张程度而异。

为什么要有流程?

没有流程会导致团队中的个体各自为战,目标不统一,进度不协调,资源配给失衡而导致交付质量下降。

流程能解决什么问题?

流程能保障团队或者群体在大方向上保持协调一致,尽可能降低由于团队人员能力、认知水平、资源不足、意外情况导致的项目延期或者质量下降。

流程能带来什么保障?

保障工作中遇到沟通或者争执时你可以有底气的据理力争,虽然不一定能扭转局势,但在一定层面上,会哭的孩子有奶吃,偶尔学会受委屈给领导看,也是以退为进保障自己利益不受太多损失的技巧。

如何高大上的理解流程?

风险可识别+问题可追踪+结果可验证+数据可量化!

 

总结

聊到这里,我要表达的核心观点已经在上文陈述了,这里做个总结。

测试工程师的核心竞争力是:将技术作为底层能力,在尽可能熟悉业务的情况下基于技术解决问题,过程中不断优化流程,保持高效的沟通,保障最终交付产出物的质量和交付过程效率

核心竞争力最终又回到了QA这个岗位的本质:质量+效率

当然,实践过程中,要关注过程,但结果是最终唯一可量化竞争力的指标