关注成长 - 构建测试人员的能力体系
作者:郑文强
时间:2018年10月22日
作为在测试行业混了超过18年的测试人员,不管是在公司上班的10多年经历,还是最近几年测试培训和测试演讲过程中和不同学员之间的沟通交流,不少场合会碰到类似的问题:软件测试到底有没有前途?假如有,测试的前途在哪里?假如没有,作为测试人员我们应该怎么办?
今天,我们再重新思考一下我们讨论或面临过无数次的问题,到底什么因素影响了我们测试人员的未来?家庭背景、时代机遇、个人努力?还是智商、情商、资源?亦或知识、技能、天赋?等等。我相信大家一定还能给出更多的其他选项,而且选择该选项一定有充分的理由说明其重要性。尽管每个人给出的选项不尽相同,也即影响我们测试人员未来前途的因素会很多,那么到底哪些因素才是我们更应该关注的,或者是我们可以自身掌控的?
听过很多深刻的道理,但为何很多人依然过不好这一生呢?
通过这篇文章,我想和大家分享一下我在这几年总结和思考的内容,我把它命名为“测试人员的能力成长方程”,简称“成长方程”。我一直坚信:行业兴衰成败不可避免,例如:10几年前的通信行业,但作为测试人员的个体,我们可以更关注在自身,是否每天都在不断的成长。希望大家在阅读本篇文章时,带着批判性思维看待我提供的影响个人成长的因素。你可以基于你的经验和思考,将成长方程中的因素替换成更适合你自己的因素,即本文提供的是思考的思路,而非思考的答案。
一、什么是测试人员的能力成长方程
玩过游戏的人都知道,游戏里面通常都会有生命值、攻击力和防御力等成长值的概念,通过这些量化的数据作为角色级别不断变化的依据。而我们的人生也和玩游戏一样,其过程也是不断的积累成长值,然后一级一级的升级。级数越高往往代表着我们对人生的掌控能力,最终可以体现为你的收入,也可能是你的社会地位,可能是你的学术水平,甚至是你对生活的满意度。
假如将游戏中的成长值移植到测试人员的成长上面,我们是否也可以选择不同的成长影响因素,构建一个评估测试人员能力的成长方程?答案是可以的。根据自己多年的测试实践和经验总结,提出了针对测试人员的测试能力成长方程:
测试人员的能力成长方程 = [(行业知识)*(测试技能)] * 思维能力 * 学习能力 * (1 + 驱动能力)^n
我把影响测试人员成长的因素主要归结为5类,分别是行业知识、测试技能、思维能力、学习能力和驱动能力。根据上述的成长方程,我们可以得到量化的成长值,让我们更加直观的感受到不同影响因素对测试人员能力的影响程度,同时也可以更清晰的指导测试人员应该在什么阶段更注重哪方面能力的提升。当然,提供这个成长方程的目的不是为了通过详细的数据计算得到成长值,而是提供了一个相对定性的角度,为测试人员应该在什么阶段往哪个方向努力是必要的。
根据自己10几年的公司测试工作经历和近几年的测试培训和咨询经验,目前测试人员的测试能力成长值可以定性的分为下面3类:
三流测试:主要关注在行业知识上面;
二流测试:除了关注行业知识,也开始关注测试技能方面;
一流测试:除了关注行业知识和测试技能之外,更强调人在测试过程中的作用;
下面我对影响测试人员成长的5个因素分别进行讲解。
二、测试人员能力成长方程的构成
能力成长方程中得到的成长值,在不同测试人员之间的含义是不同的,甚至在同一个人的不同工作阶段其体现的意义也会不一样。例如:评估测试人员的成长值,有些人可能会基于他的收入进行,也有的人更关注收获的社会地位,有点类似马斯洛需求的不同层次要求,即使是同一个级别的测试能力成长值,其对应的需求也会是不一样的。但你可以把你不同人生阶段的需求或要求作为你要达到的目标,通过不断提高你的能力成长值而实现目标,这也是成长方程想提供的一个方向和思路。
1.行业知识
行业知识是测试人员开展测试工作的基础。假如测试人员对自己要测试的被测对象的用户需求、系统需求、工作原理、实现架构等都不了解,想良好的开展测试活动,那就是纸上谈兵、空中楼阁。例如:我自己这么多年一直是通信行业的,那么了解和掌握通信产品的需求、要求、网络拓扑结构、网络设备原理、通讯协议等,那是必要条件。
但是,行业知识也是相对变化比较快的,通信行业在我刚工作时,那是非常热门,同时也是高收入的代表行业。但是10年之后基本就没落了,通信公司并购或倒闭了不少,不管是待遇还是行业前景,都不再是热点。此时作为测试人员的我们,假如我们还只是关注在行业知识方面,除了行业知识方面有些经验,其他能力基本不具备,碰到了公司裁人,那我们将何去何从?再换工作,继续找通信行业的公司吗?每个通信行业公司面临着类似的问题;假如想换个行业,你的竞争力在哪里?因为你的通信行业知识在其他行业基本上是没用的。
尽管行业知识很重要,但是仅仅依赖于行业知识是不保险的,当出现行业动荡时,我们就会面临失业的风险,随着年龄的增加,其风险越高。因此,作为测试人员,我们在储备行业知识的基础上,必须为自己增加相对于行业不是十分相关的测试技能,为自己第二次职业选择时提供一定的竞争力。例如:我在2012年的时候还是想着去换一份工作,当时去面试了金融行业的一个英国公司。第一次过去面试时,我就和当时的面试官说:“我对你们产品所在行业方面的知识几乎没有了解,我是做通信行业的”,面试官的回答一直给我留着印象:“像你应聘的职位,主要的关注点肯定不是在产品上面,我们更关注你在测试管理、测试过程改进和质量管理等方面的经验和能力”。
2.测试技能
相对于行业知识,测试技能在不同测试行业是相对通用一些的。基于了解和掌握的行业知识,通过应用测试技能中包含的理念、技术、方法和实践,可以提高测试人员的效率和有效性,同时在提供一定质量保证的情况下及时交付软件工作产品。测试人员需要逐步构建自己的测试技能,主要包括(不同人对测试技能的分类都会不一样,适合自己的就是可以的):
1. 测试过程P;例如:过程阶段和活动、测试文档、测试环境、回归测试、脚本化测试与探索性测试、测试基本原则等内容;
2. 测试技术T;例如:静态测试、测试用例分析与设计、测试工具与自动化等内容;
3. 测试管理M;例如:测试计划、测试估算、测试风险、缺陷管理、测试度量、测试团队管理、测试过程改进等内容;
更多关于测试技能的内容,可以参考“构建高效的软件测试知识体系”一文。
不管构建了怎样的测试过程、测试技术和测试管理关键域和测试实践,最终都需要有合适的测试人员去实施。下面的“思维能力”、“学习能力”和“驱动能力”都是关于“人”的核心能力。逐步构建这方面的能力维度,不管是对于前面的行业知识和测试技能的积累,还是在未来职业选择方面都将有更多的选择权和主动权。
3.思维能力
我们经常会听到关于思维的不同词汇:发散性思维、逻辑思维、双赢思维、正向思维、逆向思维、结构化思维等,其中都涉及到思维,但在不同的语境下,思维的含义又会有所不同。例如:
发散性思维、结构化思维、逻辑思维中的思维,更多指的是思考方法;
正向思维、逆向思维、双赢思维中的思维,更多指的是观察问题的角度,类似于价值导向;
假如思维指的是观察问题的角度,那么思维方式就会影响测试人员成长的方向,它决定了你通往目标的方向,是朝着正确的方向前进还是背道而驰,或走了弯路。例如:对于一些测试人员而言,觉得测试没有什么前途、没有什么技术含量,天天觉得处于迷茫的状态,不知道人生的方向在哪里。即使做什么测试工作或者完成多少测试任务,可能对其个人的成长都不会有太多的帮助,因为他一定是以被动的心态、消极的心态在对待他的测试工作;而假如你对测试是正面的思维,以正向的角度看待问题,觉得每完成一个测试任务或解决测试中的一个问题都是对个人能力提升的促进,离你制订的前进目标不断的靠近。此时,你的思维方式有点类似于汽车中的方向盘,掌控着你前进的方向。
而本文中的思维能力主要指的是思考方式。通过培养测试人员的思维能力,可以在下面两个方面得到应用:学习知识和处理问题。我们可以将两者都定义为问题,通过英语描述“问题”会更加清楚,并且其含义是不一样的:
问题可以分为Question 和Problem;
针对Question,需要我们去解答即Answer。Answer的过程需要我们强化对知识的记忆、理解或创新。而对于测试人员而言,就是需要记忆、理解或创新测试知识体系;
针对Problem,需要我们去解决即Solve。Solve更强调的是对测试知识的应用和评估;通过测试人员的思维能力去澄清问题、分析问题、解决问题;
根据上面的描述,对于测试人员而言,不管是构建测试知识体系(更多体现的是Answer Question),还是解决测试过程中面临的各种问题(更多体现的是Solve Problem),都需要应用各种不同的思维能力。在将来的文章中,我将会结合软件测试的知识和实践,和大家聊聊下面的一些思维方式:逻辑思维、归纳和演绎、结构化思维、发散性思维、可视化思维、创新思维、批判性思维等,以及它们在测试过程中的应用。
4.学习能力
现在是一个知识爆炸的时代,新东西太多,而且会越来越多。如果你没有明确方向,今天觉得大数据很热门,去看了一些书籍和文章;再过几天又发现人工智能很潮流,又开始去学习和研究。发现自己每天都在学习,但是学也学不过来,同时发现看了这么多书和文章,我还是我,发现并没有太多的改变,导致越来越焦虑。
对于每个测试人员而言,我们的目标应该是终身学习。那我们应该怎么进行学习呢?下面是我自己给出的建议,希望对你有所启发。至于对不对,大家要结合自己的实际情况,带着你的批判性思维。以构建软件测试知识体系为例,其学习的过程如下:
明确学习领域,例如:软件测试领域。当然这个方向范围很大,你也可以选择其中的某个关键域作为切入点,例如:缺陷管理、测试用例的分析与设计。
构建初始框架,例如:ISTQB测试知识体系作为构建你自己的初始框架,或基于测试行业的前辈提供的测试框架;
持续填充知识,根据ISTQB知识体系框架,对其内容进行分层分类,例如:测试过程、测试技术和测试管理;根据需要对前面的分类不断分解和细化,同时不断往框架中添加内容;
持续修正知识,将步骤2、3和4作为不断迭代反馈的过程。在学习过程中,测试人员必须带着批判性的思维能力,选择适合你自己测试上下文的测试知识。即把你看书和学习过程中收获的知识拆解掉,然后在自己的工作间将这些知识再重新组装;
通过前面4步构建了测试知识体系之后,并不一定代表你可以应用技术和解决测试过程中的实际问题。为了达到这些目标,你还需要将构建的测试知识不断在测试工作中进行刻意练习,将其完全转化为你的能力,使之真正可以在测试实践中落地。详细内容可以参考我的知乎回答:自学软件测试怎么学。
5.驱动能力
能力成长方程的第5个因素:驱动能力,对测试人员的成长值有非线性的影响。通过培养良好的驱动能力,即使你的思维能力、学习能力等都处于中间的水平,也就是那种一开始条件很普通的人,相比于这些条件更好的人,你愿意更加努力,并在一定时间积累之后,普通人也可超越大部分的人。拥有强大驱动能力的人完全可以弥补思维能力和学习能力方面的一些不足。在人生追求的过程中,借助时间的累积,也可以给一个人带来非凡的变化。一个典型的例子,就是阿甘,他是一个先天智障的人,但他通过自强不息的长时间努力在多个领域创造了奇迹。
驱动能力主要体现为两个维度的内涵,一个表现为努力程度;另一个为努力的持续时间;努力程度因素在成长方程中就是“驱动能力”,而努力的持续时间在方程中表示为“n”,其体现了对成长值的非线性影响。也就是我们平常说的:只要你每天努力一点点,在时间积累下你就会大不同。
驱动能力是因,而努力是果。只有驱动能力强大的人才能做到比别人更加努力,而且可以持续的时间更长,而不是三天打鱼,两天晒网。因此,即使我们在思维能力和学习能力不能达到最优,但通过构建自己强大的驱动能力,比别人更加努力更加坚韧,在时间的积累和帮助下,我们同样可以得到快速的成长。
如何提升我们自身的驱动能力?我觉得兴趣爱好、梦想、目标、理想和追求都应该是一流的驱动能力,有时候甚至是我们的野心。而驱动能力的构建,也需要我们在自控能力、专注能力和时间策略方面提供协助。
测试人员的能力成长方程,其目的并不是来计算具体的成长值数据,也不是在不同测试人员之间进行成长值的比较,而是为了说明我们的成长受到哪些主要因素的影响,以及我们已经具备了什么能力,还有哪些不足?什么因素对我们的成长是起关键性作用的?其目的是帮助我们更好的认识自己,为我们的成长提供指导和帮助。
三、往前看:活在未来
为了能更好的突破里程碑点,要求我们能够往前看:活在未来。把我们所有的时间和精力,都放在对将来有意义的事情上,能帮助你更好更快的实现你的目标。例如:假如你把测试工作只是作为挣钱的手段,那么就是活在当下,利用我们已有的技能换取生活费。更有甚者,是活在过去,例如:沉浸在过去10多年通信行业的辉煌上,对你的成长值增加没有什么帮助。
向前看:活在未来。关注成功,更关注成长!