京东商城贾瑞卿谈深入转型——质量团队转型案例剖析
贾瑞卿:各位同行大家下午好,我是来自京东的贾瑞卿。在过去一年里面我们质量团队进行了从测试到测试开发的转型,那么我今天主要是针对转型过程当中会遇到什么问题和大家进行深入剖析。希望我今天分享能够给正在谋求转型的团队和个人一些启发。我分享从三个方面进行,首先我回顾一下京东团队质量转型的过程。第二方面就是深入进行转型案例剖析。第三是质量团队的转型规划。
首先第一部分就是讲一下我们团队为什么要不遗余力的去推行质量转型这件事情。分为三个层面,以及六个核心点,第一个从公司层面来讲,京东中台化战略的调整要求测试人员能够更加熟悉被测系统的底层,当前测试人员的能力不能够满足中台化长期的发展,同时转型提升有利于团队的建设。
第二个层面从行业发展——随着测试技术发展,自动化和工具化这块的好处是不言而喻的。不知道在座各位有没有这样的感觉,尤其是这一两年里面企业越来越难招到比较靠谱的测试开发人员,同时从求职者角度来说,大家很难去找到自己比较满意的工作,这块就形成了一个断层,中间差的就是技术的提升。根据当前现状我们认为行业内缺的不是测试人员,缺少的是具有质量意识的测试开发人员。不懂技术的测试人员越来越难找到比较高薪的工作,所以从公司层面行业发展的以及个人规划这块才会使我们不遗余力推行质量团队转型这件事情。
下面讲一下整个转型过程,我们将转型分成四个阶段,学习阶段中会包含三棵技能树。首先蜕变之路,蜕变之路阶段主要是线上课程学习和我们自己内训,线上课程我们采用的是前百度吴恩达教授创办的Cousera网站,每次培训完以后有对应练习题,能够使大家快速对学习的知识点重新复习。同时内训阶段我们系统的学习了测试用例设计、接口、UI、环境治理等方面的课程。然后我们内部创建评分排位的机制,每次培训结束后,每次课程学习完以后都有对应的练习作业,这个要求我们参与培训的同学必须完成,对这些作业完成情况进行评分排位,激发大家的竞争意识。
第二点就是应用为主,就是在这个阶段我们主要是开发一些框架来降低自动化测试的难度,使自动化测试的门槛降低。同时在应用为主阶段我们更加深入的将技术和业务结合,持续的去挖掘测试过程当中一些痛点和难点,用自动化和工具化方式去解决方案。
然后在“实践为王”阶段,大家已经进行了一段时间培训,同时在测试工作当中,我们鼓励大家使用技术解决问题。我们内部提出了“天天见计划”使每个测试人员每天都有和代码打交道的机会大家知道行业内都有一个潜规则,就是说一个测试要走到一个测试开发最少需要有两万五千行代码的积累,实践为王这个阶段我们就是要让大家持续学习和积累。
最后一个阶段就是融汇贯通,在这个阶段中我们团队通过众包开发模式共同的去打造测试框架,共同进行测试工具的开发的这样一个过程。目的是希望使参与转型的每一个人都具有开发小工具提效的能力。
以上是转型过程当中四个阶段,这四个阶段过程当中家会获得有三棵技能树。我们团队情况比较特殊,大部分成员都是业务为主,有很多甚至是工作了五年以上一直从事业务测试,大家没有代码经验,相当于零基础。在蜕变之路这个阶段我们第一棵技能树主要包括掌握最基础的JAVA的编写,用测试用例设计方法设计用例,能够完成单一HTTP接口测试和业务流的HTPP接口测试。
在应用为主阶段强调接口测试阶段,在这个阶会收获这样一棵技能树,包括熟练使用参数池类和检查点类,接口测试框架的熟练使用,能够使用正交实验工具去生成测试用例,能够精通接口测试。
以上是蜕变之路和应用为主阶段的两棵技能树,我们认为从测试到测试开发整个的过程当中一名测试开发人员需要具备这样一棵完整的技能树,这是我们团队的理解。这棵技能树包括五个大的方面,首先是流程管理和代码管理系统这块,包括对测试生命周期的管理,代码管理,缺陷管理等一系列的知识点。然后主要的是编程语言,我们团队学习的是JAVA和PYTHON。还要掌握服务器相关知识,包括Linux的简单维护,数据库、Web容器,消息中间件等等一系列的服务器相关技能。还有比较重要的一方面是测试理论这块,包括测试理论知识、用例执行、自动化测试、主流的测试工具等相关知识。最后一点也是比较核心的一点,测试框架这块包括UI测试框架、单元测试框架,性能测试框架等一系列测试框架类知识储备。
完成以上三棵技能树的知识储备,就已经完成师傅领进门的阶段。师傅领进门,那么修行靠个人。为了让大家能够持续学习和提升进行更多的实践,我们内部创建了多维度训练场,包括我们内部的实验室,主要提供各式各样的服务供大家调用和练习使用,如:http、Web service、RPC等服务,还有测试脚本训练代码库以及多种相关联测试框架,还有结群编码方式,目的是为了让大家有更多时间去学习,去练习和积累。
经过一年多转型实践和学习培训,目前我们团队所有的参与人员是90%以上都有接口测试能力和代码能力,这个代码能力为什么是90%呢?因为公司一直在发展会有一些新人进来。这个是我们团队转型的成果,这个精灵平台我们内部的一个测试工具平台,平台中的工具是我们团队群策群力一起打造的,通过众包开发的模式,所有团队成员一起参与,去打造工具集。同时包括持续集成,聚合报告,测试开发框架以及墨客系统,质量管理平台等等一系列的工具和系统,这个平台是我们团队群策群力的结果,也是大家能力提升的一个见证。
以上是我们京东质量团队转型的一个过程,那么在转型过程当中我们遇到许多坑,在座各位学习过程当中也会遇到这些问题。首先第一个问题“来,让我们立即开始转型吧”!在转型学习之前普遍会存在这一种情况:我要转型要提升,我是一个有追求的人我要寻求技术方面一定要有所突破,在这个阶段大家会去学习各种不同技术,包括工具,方法等知识。但是经过一段时间之后就会面临一个问题,我们学到知识点不能与业务进行相结合,你掌握知识不代表你拥有这个能力,而且随着时间推移,转型学习其实跟减肥情况差不多,随着时间的推移激情消失大家很难坚持下去。那么针对这个问题首先我们内部将转型进行阶段划分,使每一个阶段都有一个预期值,第二点我们建立内部的完善课程体系,明确我们学什么,针对某方面具体的提升。第三点是学以致用,我们每次培训完以后都会针对我们学习的知识点和业务相结合,给大家更多场景去练习达到这个学以致用的目的。第四点也是非常重要的一点,从长期学习周期来看,管理者要关注团队长期的刻意练习以及持续的反馈,要建立起这种持续的反馈机制,不断的去优化这个转型的过程。这是大家可能遇到的第一个坑。
第二个案例如何做好平衡这里讲一下如何做好转型提升和业务测试时间的平衡。通常情況大部分同学都想做更多关于团队转型提升的事情,但是现状,尤其是互联网公司大家都是比较忙的,忙于业务上线,有时候甚至要“996”的做一些工作。那么如何做好转型提升和业务测试之间的平衡?我们分为三点,首先第一点是业务第一,不管我们内部学习转型还是做业务测试,目的还是更好的为业务服务,不能因为转型影响了业务的正常开展这是第一点;第二点就是我们内部建立起了学习日,我们每周三6点到8点,这两个小时是固定的,大家再忙也需要参加学习培训;第三点是善意延期, 就是大家转型过程当中对于转型学习周期延期而不是延期业务,业务我们要保证不让它延期。在我们转型过程中,比如说我们这一阶段课程原计划两个月完成,考虑到大家当前的工作强度,我们可能会延期到两个半月甚至三个月,善意的延期保障业务的按期交付。
随着转型学习一段时间后,就会遇到一个成长当中的烦恼:“给我测试开发的活,业务测试再见!”什么意思呢? 我要做测试开发方面的工作,不要再做业务测试了,这是很现实问题。我们团队转型过程当中一个学习比较好的同学就过来找我,说老大我觉得我现在能力去做工具开发完全没有问题,我以后不想做业务了,我当时第一想法是挺好说明提升的还不错,但是回头想一下如果团队所有人都说我能力都到了都做工具开发方面的工作了,那么业务谁来搞?针对这个问题我们是这样解决的,首先是技术为业务服务这是一个宗旨,第二个就是随着大家一段时间学习,大家对技术越来越有渴望让大家在工作中增加功技术性,工作当中我们会逐步增加工作当中技术含量。我们经常要求大家去定期的开痛点挖掘会议,去挖掘测试过程当中有哪些痛点和难点,以技术手段我们该如何解决,这里我们大部分情况下都是通过工具化形式解决,我们鼓励开发小工具,去解决效率的问题。 最后一点调整工作业务比例,因为随着大家技能水平的提升,有一些同学确实展现出了测试开发这块的能力,这时候我们会适度调整测试任务和测试开发工作占比。
案例剖析——事成人爽。我们转型学习时间都是8小时以后进行的,有时候大家上线以后已经11点了,这时候突然想到明天是有新的课程培训,但是我的课后作业还没有写,这时候在座各位如果遇到这种情况心理上是否会爽?但是我明确告诉大家我团队是非常不爽的,为什么呢?因为工作强度都已经很大的,甚至有同学过来找我,说我已经996了你还要我怎么样呢?其实有情绪很正常,因为转型就意味着牺牲更多时间去学习和提升,压力大时就会有情绪烦躁,正常来讲遇到这种事情大家情绪都会烦躁,针对这种情况我们应该如何解决?首先就是做情绪的释放,我们在转型过程当每个阶段结束以后举行匿名问卷调查,之前我会找团队里学得比较好的或者比较差的进行沟通,问他对转型的看法,但是我最后发现不管哪个阶段,不管沟通对象是谁,最后得到结果就是没有任何问题觉得转型提升这个事情挺好的,所有人没有一个人告诉我哪个地方有问题的,这时候我会认为这个地方是有问题的。所以我们内部为了消除大家情绪化,会经常开一些类似吐槽大会或者匿名问卷方式让大家尽快吐槽,你对转型到底有什么看法,了解大家真实的想法。
第二点及时鼓励,用技术解决问题,哪怕是非常微小的问题,你用技术手段解决了,并且这个技术能够沉淀下来为别人进行服务,像这种事情在我们内部团队是最值得鼓励的。
最后一个是自豪感,也是成就感吧,了解一下测试人员成就感来自于什么地方?Bug?缺陷数量?团队测试成员成就感来自于你开发的工具对外提供服务的能力。我们内部打造了一个平台,这个平台上会沉淀下来每个人通过技术解决什么样的问题,我们会把这些工具沉淀到这个平台上,每当有人进来访问这个平台时候都能看到你这个服务被外部调用了多少次,试想一下如果你开发一个小工具哪怕不是特别有技术性的工具,但是用你工具解决了实际当中的问题,比如说每周你开发这款小工具每周一千以上访问量,每次访问节省10分钟以上时间,这就是测试人员所体现出来的价值,对于测试人员内心成就感是不言而喻的。
最后一个转型案例剖析,转型中的质疑,转型提升后团队会跳槽吗?或者说不管你是参与团队转型的成员,或者说这个团队的管理者你的兄弟们学得好,肯定会担心他们走,或者这个问题由你老板过来找你,说你带大家一起转型,这块做得挺不错的,大家能力确实得到了提升,你有没有想过他走了你怎么办?跳到友商公司怎么办?针对这个问题第一点内部团队打造学习型,技术型,创新型团队,打造一个好的团队氛围通过大家技术提升去提升这个质量和效率,另外一方面如果你学得非常棒,各方面能力已经远远超出你的预期,如果真的跳槽走了我之前也讲过,给我团队里人也讲过这个事情,如果你学得非常好,各方面都非常OK,外部有更好机会,通过你自己很强技术进入其他的团队,这也是我们团队的骄傲。不过现实情况是我们这边目前或没有遇到这样问题,我们推行团队转型一年多时间里相对稳定了,而且存在着内部团队的调整,这是闭环不是主动的,而是被动的,闭环完成后我们团队出去的人在京东各个团队里,很多都成为了小组长或者是成为这个团队里面新的技术这块的小负责人。
以上是我们在团队转型过程当中遇到的部分的坑,以及对应的解决方案。我相信这些问题大家以后在自己学习,或者推动自己的团队去学习的过程当中肯定也会遇到。
下来讲一下我们质量团队转型这块的规划。首先第一点AIT我们希望推动我们这个质量团队去在智能化测试这块有一些成果,比如说利用大数据做质量分析和度量,应用AI技术去做测试脚本自动生成,这两个事情目前我们团队已经在做了。第二点是说深度的转型,通过大家技术这块的积累,希望每个人都有测试框架开发的能力,开发或者二次开发的能力,同时让每个人都具有开发小工具提效这样的能力。第三点流程工具化,我们希望团队成员随着技术的提升能够更多的去洞察测试流程当中存在的哪些问题,通过技术的手段去解决流程中的问题。第四点是赋能,这个说大也大说小也小,因为我们转型的过程当中沉淀下来了很多的内容,包括课程、案例、故事、素材等等。我们会把这些知识沉淀下来为京东内部其他测试小伙伴赋能,同时也会对行业内正在转型的个人和团队进行赋能。我们出了一本书《京东质量团队转型实践》,希望对大家有帮助。
对于团队未来培养方向这块我们是两个方向,一个是业务专家方向,一个是架构方向,业务专家方向我们希望通过大家技术能力提升去和业务进行深度的结合,去提升效率;另外一方面在测试架构这块有更多的研究能够去理解,包括测试架构上层建筑思维。
以上是我们团队在转型过程当中遇到的一些“坑”和应对方式,以及对未来的一个规划,我们转型用了近一年多时间,本次我花了30分钟左右给大家进行了分享,更多质量团队转型方面的问题也希望大家在转型学习过程当中多多交流,我的分享完毕,谢谢大家!
提问:第一个问题,团队人员转型考核怎么做的?
第二个问题您在转型过程当中队员产生了负面情绪,您那边除了在软的沟通上的激励有没有其他的硬激励手段?
第三个问题是您这个技术团队转型是您内部自发的一种行为?还是从公司由上而下的一种主动推动的行为?
贾瑞卿:第三个问题是说这个转型是我们内部自发的,我们内部自发的没有上层要求我们必须去怎么样做,这是我们团队内部自发的。
第二个问题除了安抚大家情绪有没有硬激励,这块是有的。在做团队KPI考核的时候,我们会把团队转型这块作为一个维度去考量大家,我刚才分享里我讲我们建立了评分排位的机制,如果你学得好,在工作当中实际应用也体现出了这个价值,那么在打绩效时候我们会把转型学习作为一个维度去参考,好的会加分,差的会响应减分。在刚开始转型的时候,我给大家做动员大会时说如果大家学得好,年底比较硬的话就是升值加薪优先考虑。
第一个问题对于结果考核,每次学习完毕我们有作业,我们会对作业进行代码评审,进行代码评审还不够,我们还会在下次开会之前让这个代码你写的你上去讲,接受下面质疑,你为什么这么写,这块为什么,目的是避免大家抄。如果说转型作业去抄的话这就会变成形式化的东西,这样转型是没有意义的。
主持人:希望回答了您的问题。
提问:你们团队人数大概是多少?
贾瑞卿:最多时候有35人左右。
提问:你们中间有很多测试小工具,可以介绍一下吗?大概有哪些比较实用的工具,而且这个工具需求搜集怎么做的?
贾瑞卿:转型过程汇总我们团队内部开发将近30多款小工具,这些需求来源就是为什么要做,我们主要是通过定期开一些痛点挖掘会议,比如说一个项目结束时或者一个周期内会安排大家组织一个会,大家去讲最近影响测试工作的事情是什么,挖掘工作中的痛点和难点,这些点我们能不能通过工具化形式解决。比如我们内部有一个很小很小工具,就是大家转型初期做的。叫做“发送测试报告”为什么呢?因为我们内部发送测试报告是这样一个情况,你每次要发测试报告的时候会收集很多数据,包括测试用例,相关环境,BUG和关联需求等等一些数据,平均发一个测试报告搜集整理数据需要15分钟,针对这个流程我们认为太麻烦了,能不能做成自动化的。这时候我们就做了一款小工具,就叫“自动发测试报告”我们只要输入这次提测需求的的ID编号,会自动去取出这个ID下面对应所有测试报告中需要的内容,大概情况就是这样。原来发报告15分钟左右,现在可能发报告就只需要1分钟。
本文来自:2018中国首届云测试峰会,举办方:Testin 云测
Testin云测,让应用更有价值:www.testin.cn