QA同学,你的核心竞争力究竟是什么?

我刚刚花了一周时间研究Gatling,完成了Adventure系统的服务器压力测试。坦白讲,过程很坎坷。Gatling属于开源项目,官方文档简单陈旧,连入门级的指导作用都起不到,其使用的Scala更是迷之存在。期间,我在一个问题上卡了两天,怎么也搞不明白。只好等到邱大师有空时才去求教,他半个多小时就帮我解决了问题。但我并没有很开心,反而非常感慨。在自动化测试方面,我做过很多努力,也走过很多弯路。开发同学5分钟就能解决的问题,我常常要花费10倍或者更久的精力,但这的确是我在工作中的常态。

在TW做QA是一件即有趣又充满挑战的事。有趣,是因为QA需要参与敏捷开发的整个生命周期,也可以不断尝试新的领域和技术,工作丝毫不乏味;挑战,是因为QA需要更广泛的技能,比如像BA一样分析需求、像PM一样把控项目、像Dev一样分析系统架构、编写代码。有时也会受挫,倍感无力,QA除了是一名Tester,更是PM+BA+Dev的综合体。所以我常常在思考,作为一名QA,自己的核心竞争力究竟是什么?

先以看板的形式来粗略的展示一下QA在每个敏捷开发迭代中的工作内容。

在TW的工作生涯中,我一直独立负责一个项目的QA工作,因此需要进行需求分析、测试设计、自动化测试、功能测试、非功能测试、缺陷管理以及质量管理等具体事务。我大概统计了一下,这些事务分别在我的工作中占据这样的比重。

因此,要做好产品、做好交付,就必须具备需求分析、测试设计、自动化测试、功能测试、非功能测试、缺陷管理以及质量管理等能力。在提升自身能力的同时,我常常遇到一些痛点:

需求分析与澄清

QA需要具备良好的需求分析能力,才能真正理解业务价值,从而覆盖更完备的测试场景,发现更多的产品缺陷。在story Kick off 和Showcase过程中,QA需要不断地与BA和Dev进行需求澄清,沟通能力也能锻炼。在这一点上,QA与BA的技能是共通的。

虽然相比传统开发模式,敏捷QA不再只是站在软件开发生命周期的最末端,而是贯穿始终。然而,相比BA,QA终究缺乏直面客户的机会,也不具备需求挖掘和梳理能力。在团队内部沟通虽无障碍,但当独立面对客户的时候,缺乏技巧、无法张弛有度。

自动化测试

产品不同、测试类型不同,需要的测试框架和语言也就不一样。加上技术发展特别快,很多同学在各种自动化测试工具中苦苦挣扎。就我自己而言,仅仅脚本语言就写过Java、Ruby、JavaScript、Python、Scala等等,更别提纷繁复杂的框架和工具。别以为会的多就很厉害,其实事物都是相对的,同样的精力分散在越多方面,也就意味着每个方面的理解程度会大打折扣。

在平常的交付工作中,我能够分配给自动化测试的时间仅仅只有15%,再将这15%的精力分配给不同的语言和框架。最终的结果就是,各种语言的编程能力都只能停留在初级阶段,因此常常受限于自己的编码能力,写不出牛逼的测试来。除此之外,自己要花了很久才能写出来的代码,对于开发同学来说只是分分钟的事,难免让人沮丧。

很多QA最初之所以选择成为一名QA而不是Dev,大部分是因为不喜欢或者不善于写代码。在编写自动化测试的时候,编码技能自然不会很高超。因此,想要自动化测试完全替代不必要的重复劳动,不见得是一件容易的事情。但因为业界大力提倡自动化测试,自动化测试人员的薪水也要比手工测试更胜一筹。因此很多QA从一毕业开始就着急的想要置身于自动化测试中,关注于写代码,而忽略了测试本身。我认为,路走偏了。如果只是写代码,Dev就够了。QA的竞争力在哪里?

非功能性测试

对于大多数QA来说,非功能测试(性能、安全、兼容性等)都是个神秘的存在,非功能测试者更像是领域专家。很多大型企业会专门开发自己的云测平台,QA只需要将自己的应用上传上去,然后坐等执行结果,分析report。他们知道要“做什么”,“怎么做”便成了黑盒。这也是未来的一种趋势,但对于小型企业和产品,很难有这样的实力,非功能测试就不那么容易了。

质量管理

质量是很难度量的一件事,要具体项目具体分析,横向比较基本没有多大意义。但是,质量管理恰恰是QA的一项必备技能。在敏捷交付过程中,常常受制于时间、范围和成本的约束,质量往往成了不得不妥协的事情。QA既要做好把控,又要学会合理妥协,着实是一门很深的学问。

说了这么多,本想聊聊,作为QA,我们的核心竞争力究竟是什么?但却越写越没有确定的答案。核心竞争力决定了未来的发展方向,所以作为QA的你,有没有想过未来的样子?

TW的平台很开放,公司非常支持大家去做不同的尝试。因此大部分QA有了形形色色的发展方向:

在技术方向,有的成了更高级的QA,业界知名、有的成了Tech Lead、有的QA喜欢写代码,转而去做了开发;也有的转去从事DevOps的工作;

在管理方向,有人转去做PM,带团队、有人转岗做BA;

在咨询方向,有人成为了测试架构方面的咨询师,有人成为性能、安全等领域专家。

我问自己,“未来的我会做什么”?坦白讲,我不知道,这其中充满了太多不确定因素。做更多尝试是一件很有趣的事,但前提是,要先成为一名出色的QA,将事情做到极致。不过,若要问现在我该做什么,我可以很明确的回答,“突破瓶颈,找到自己的核心竞争力”。在成长的路上,自己才是自己最大的绊脚石,打败自己!

QA同学们,都来聊聊,你认为的竞争力是什么?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180726G1YKXY00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券