软件测试人员能力矩阵
软件测试人员能力矩阵
在国内,软件测试走过了一段崎岖的发展之路。从不被重视,不设置岗位,变成目前越来越被重视,招聘市场越来越火热,高校也纷纷开始设立软件测试专业,重视软件测试。现在互联网+的时代,卖方市场不存在了,各个软件的竞争已经是资本与市场的白热化反映,没有任何一个产品敢“爱用不用”了,毕竟市场推广成本都不低,如果因为软件的质量不好被客户放弃,损失还是比较惨重。
引子
目前的市场,以深圳为例,根据职友集的统计,最近30天,软件测试的招聘市场需求岗位为32766,为软件开发职位的两倍。从这里我们可以得出:软件测试人员的职位缺口大。然而目前市场上的软件测试人员能力参差不齐,高水平的候选缺乏,大量的初级水平的候选充斥市场,导致人员基数大,市场需求大,招聘难度更大。所以更现实的有效的方式,应该是提升初级水平的软件测试人员的能力,更多的软件测试人员达到高级甚至资深的层次,实现个人,企业和行业的三方共赢。
这里我们来聊一聊软件测试的能力矩阵,从技术能力、项目能力和业务能力三个维度,分别讨论从初级到高级到资深水平的能力值。
image技术能力
技术能力体现的是对技术手段的运用能力,在软件测试过程中制造和使用工具的能力。
站在进化论的角度,能够制造和使用工具,是早期人猿进化成人类的分水岭,当然也是区分人类与其他动物的本质区别。当然在软件测试中,能够制造工具,使用工具,也是衡量软件测试人员的技术能力的基本标签。
严格的讲,不会使用工具的软件测试人员是不存在的。哪怕纯粹“确认眼神”的手工测试,至少能够使用Windows操作系统吧,至少能够使用浏览器吧。这些都是算工具的。
这里我们以下面的几个因素来衡量软件测试人员的技术能力:
-
操作系统:使用操作系统是基本能力,尤其是服务器端的Windows Server与Linux。
-
浏览器:目前主要的大众软件的运行场所,离不开浏览器。但是真正用好浏览器的软件测试人员,事实上并没有那么多。
-
项目工具:国内常见的有禅道、TAPD(腾讯敏捷平台)等,以及还有国外的JIRA、ALM(HP QC)、Tuleap、Rally、QA Complete,还有企业自主开发的,功能类似,目前大多集中在敏捷(Agile)的处理上。
-
测试理论:这个毋庸置疑,软件测试的系统理论,决定了很多人员的职业发展高度。
-
测试工具:从普通UI功能、自动化测试,到接口契约测试、性能测试、安全渗透测试等各种工具的使用,无论商业版还是开源版,都是体现测试人员能力水平。尤其是能够综合现有工具(开源版)而构建出符合企业要求的定制测试方案,就更为重要。
-
编程工具:编程是目前的软件测试人员普遍欠缺的一部分,编程并不是为了去研发出产品,像开发人员一样,而是作为几乎唯一一种人类与机器交流的方式,如果需要机器做更多事情,那么必须掌握能与机器沟通的语言。编程语言是很好的途径。
-
学习方法:IT行业是持续发展的行业,技术的更新很快,那么需要持续不断的学习,对于新的知识、工具、方案等能够很快的学好,上手使用并创造生产力,非常关键。
让我们来看看各个级别的软件测试人员对应的矩阵。
初级 | 高级 | 资深 | |
---|---|---|---|
操作系统 | 能够熟练使用Windows桌面,了解Linux,知道Linux的基本命令使用 | 能够在熟练使用的基础上,在Windows和Linux服务器搭建和部署测试环境 | 能够使用PowerShell和LinuxShell脚本,自动部署服务器环境,并处理命令 |
浏览器 | 能够使用浏览器运行被测试的系统,知道常见浏览器的内核和分类 | 能够使用浏览器自带的开发者工具查看HTML源码,定位HTML标签 | 能够使用浏览器自带的开发工具查看网络通信,调试前端JavaScript代码 |
项目工具 | 能够使用项目管理工具提交缺陷,编写用例 | 熟悉项目管理工具从提测到发布的全部流程操作 | 知道各种项目管理工具的优缺点与侧重点,结合工具与实际流程使用 |
测试理论 | 能够准确提交缺陷,格式正确,内容清楚 | 能够编写测试文档,并根据测试文档指导测试执行 | 理解质量理论,并根据团队实际情况,将质量理论运用到测试度量上 |
测试工具 | 入门级别的使用工具,执行测试 | 能够使用工具抽离业务,编写测试脚本,并执行测试。 | 能够构建测试方案,指导初级测试工程师合理使用 |
编程工具 | 能够认识到编程工具的作用 | 能够编写基本的工具,辅助执行用例,准备测试数据 | 能够通过编程工具,使用开源第三方库,用面向对象的方法编程,构建测试方案 |
学习能力 | 不会举一反三,只会机械学习 | 能够举一反三,能够模仿并作出类似的甚至更好的方案 | 有完整的学习方法和体系,针对不同的知识有不同的学习和转化能力 |
项目能力
项目能力体现的是对IT项目管理的适应能力,能够在实际项目中体现自身的价值,帮助项目团队交付高质量的产品。
项目能力往往是靠单独学习得不到的,必须经过长时间的实践、总结,来提升自己。笔者见过很多“十年如一日”的软件测试人员,其实相当悲观。工作十年,积累的的项目能力相当于第一天的水平,夸张了点,但是确实很多类似的人员。
我们列出来项目能力的指标与因素,帮助更多的从业人员有更好的方向,避免“十年如一日”的产生。
这里我们以下面的几个因素来衡量软件测试人员的项目能力:
- 测试流程:测试的工作流程,是只能够“执行”,还是可以“驱动”?
- 项目流程:适应项目组的工作方式以及项目驱动方式,常见的有“瀑布”与“敏捷”。
- 项目理论:在项目管理方面,是否有更好的理论基础,了解软件生命周期,了解敏捷开发?
- 任务估时:能够准确的评估自己的工作能力和用时,是一个非常重要的指标。
- 项目并行:同时处理的项目,如果永远都是一个,那么说明你的项目水平还是有欠缺。
让我们来看看各个级别的软件测试人员对应的矩阵。
初级 | 高级 | 资深 | |
---|---|---|---|
测试流程 | 根据流程执行测试,跟踪和关闭缺陷 | 能够分析和定位缺陷原因,验证缺陷修复 | 分析工作流程中限制测试实施的因素,并提出方案解决 |
项目流程 | 根据项目的安排完成任务 | 项目的主要质量保证,可以独挡一面完成项目交付 | 分析和解决项目中遇到的问题,合理协调资源,完成项目交付 |
项目理论 | 理解基本软件生命周期,了解瀑布模型或者敏捷开发 | 合格的软件生命周期缔造者,运用瀑布模型里程碑或者敏捷开发的迭代,指导完成工作 | 精通瀑布模型或者敏捷开发的某一个框架,指导团队实践该框架 |
任务估时 | 无法准确估计任务时间 | 能够准确估计任务时间 | 能够对任务的进度与时间进行精准把控 |
项目并行 | 无力承担多项目并行工作或者能简单完成任务制的项目并行 | 能够胜任项目并行工作,合理分配工作时间安排,保证工作效果 | 解决和处理项目并行带来的冲突,协助团队实现项目并行的交付目标 |
业务能力
业务能力体现的是对用户故事(需求)的分析和理解能力,能够充分的理解产品的业务流程,通过对业务流程的分析,勾画用户使用行为,确认验收标准。
或许有的小伙伴会质疑,为什么要考虑业务能力?不是有需求分析师(BA)么?不是有需求说明书(SPEC)么?
一位合格的软件测试人员,应该能够合理的,快速高效的分析需求,对需求的分析与理解能力和层次,决定了你的工作高度,不是么?如果只能够停留在“输入框”与“是不是好看”这些方面,那么你的测试层次,就只是在入门的层面哦?因为你的工作,是不是你爸妈也可以替代呢?
这里我们以下面的几个因素来衡量软件测试人员的业务能力:
- 需求分析:基本功啦,测试的双V原理(验证做正确的事情,验证正确的做事情),如果你不会需求分析,如何知道需求是否是“正确的做事情”呢?细思极恐呀。
- 流程分析:没有流程,就没有测试,是这么个道理吧。
- 文档能力:有没有发现,会写文档的小朋友,领导都喜欢?另外建议学会Markdown语法与工具,增加文档的技术含量。
- 数据分析:最后这条,其实是从软件测试人员,迈向软件测试管理人员的必经之路啊。
让我们来看看各个级别的软件测试人员对应的矩阵。
初级 | 高级 | 资深 | |
---|---|---|---|
需求分析 | 能够理解需求的细节,分析和设计测试场景 | 能够对需求进行充分沟通与分析,制定需求验收标准与测试范围 | 能够理解需求不合理的部分,包括逻辑上的不合理以及与项目团队的不合理,并提出方案解决 |
流程分析 | 能够看懂流程图 | 能够画出流程图 | 能够溯源项目的数据,根据流程图追溯上下游以及数据的处理逻辑 |
文档能力 | 能够用Word编写文档,尽量保证格式 | 能够用正确的格式编写文档,能够使用WIKI工具或者Markdown工具 | 能够通过文档的描述,指导团队的软件测试工作 |
数据分析 | 无 | 能够使用数据分析工具,对当前的业务进行梳理并得出业务的所有流程 | 把数据分析作为业务的一个重要切入点,很高的数据敏感度来解决业务问题 |
总结
上述的三个维度,我们简单的阐述了软件测试的能力矩阵,其实不难看出,解决问题的能力尤其重要,在每一个维度中,资深级别的描述,都具有很强的解决问题。
本文我们简单的分析了技术、项目与业务三个维度,希望可以能够帮助到从事软件测试的各位小伙伴。另外也非常欢迎各位的讨论,如果您有其他方面的想法,欢迎与作者交流沟通:liu.tingli@qq.com。有任何的不足之处,也敬请指出,共同进步。