告别打杂!如何实现测试开发能力的快速提升?| 茹炳晟专访
茹 炳 晟
业界知名实战派软件质量和研发工程效能专家,腾讯云最具价值专家TVP,阿里云最具价值专家MVP,中国商业联合会互联网应用技术委员会智库专家,畅销书《测试工程师全栈技术进阶与实践》作者,《软件测试52讲-从小工到专家的实战心法》作者,新书《高效自动化测试平台:设计与开发实战》也即将出版。
现任Dell EMC中国研发集团资深架构师,历任eBay中国研发中心测试基础架构技术负责人,HP软件中国研发中心资深架构师、性能测试专家,Alcatel-Lucent高级技术主管,Cisco中国研发中心资深工程师等职位,具有超过17年的软件研发和技术管理经验。曾在国内外学术期刊上发布十余篇技术与管理论文,并担任“软件测试世界杯赛”的亚洲区评委,多次受邀在国内外顶级技术大会上担任技术委员会成员和专题出品人,并发表技术与管理演讲。
转行软件测试,爱上软件测试
茹炳晟:说起我的职业生涯,这是一个非常有趣的话题。这个的从十多年前刚入行讲起,刚开始的时候我一直从事软件开发,也就是程序员的工作,当时用的是C和C++,后来是在老板的“威逼利诱”下才转行做的测试。
老一辈的软件测试从业者应该都知道,那时候开发才是正规军,测试基本是属于打杂的角色,记得当年公司面试新同学,当技术面试的结果不是太理想的时候我们往往会追问一句是不是愿意从事软件测试工作,可见当年的测试工作对技术的要求是偏低的,更多关心的还是对业务的理解和学习。
那当时为什么老板要把我转去搞测试,并不是对我的开发工作不满意,主要原因是当时我们产品的特殊性。那时候的软件研发周期基本是以“年”为单位的,所以测试会有大量充足的时间完成工作,但是我们的产品由于每个客户都有特定的定制版本,虽然大部分功能都是相同的,只有少部分功能的差异,但是这就给测试工作造成了很大的困扰,每个客户版本都需要经过全面系统的测试,光靠传统的手工测试根本无法应对,因为我们的客户版本太多,基本没几周就会有等待测试的待发布版本。在这种情况下,我临危受命接手了测试组的工作。
由于接手后引入了自动化测试能力,这在当时还是很前沿的做法,所以我也成为了国内最早一批的测试开发人员,再加上自己感觉对产品也有了更深入的理解,所以从此就爱上了测试一行。
这段经历的有趣之处在于我是先做开发后转测试,然后爱上了测试,如果这个顺序反过来,一开始我就做测试,那么我一定会想着转型做开发,可见这个顺序的重要性。
在接下来的职业生涯中,我基本以测试开发和DevOps为主线,从事测试框架设计开发,测试平台建设,CI/CD建设以及工程效能等工作,服务过的机构包括eBay中国研发中心、HP软件中国研发中心、Alcatel-Lucent和Cisco。
期间负责建立全球大型电商网站的测试基础架构和和自动化测试方案,主持搭建DevOps生态体系和推进工程效能改进方案,并负责主导无线路由产品的整体自动化测试方案、金融平台产品SDK测试框架设计、系统开发平台的白盒测试方案、DSP平台自动化测试方案、轨道交通安全软件平台测试、大规模产品链的自动化部署和多个大型电子商务网站的自动化功能测试,API测试,性能调优,混沌工程和全链路压力测试。同时也参与了很多行业技术峰会,并担任技术委员会成员和专题出品人。
以不变应万变:快速学习和积累
2. 到目前为止,您从业多年,有哪些心得体会吗?
茹炳晟:在这个行业摸爬滚打了这么多年,感觉可以和大家分享的心得体会会有很多,这里我就挑几个我被大家问的最多的问题和大家聊聊:
3. 在过往的经历中,有什么印象深刻的困难和挑战吗?
茹炳晟:让我印象最深刻是我从传统IT企业跳槽到了互联网企业,那个时候我的最大感触就是软件迭代的速度。用一个字来概括就是“快”。
正所谓“天下武功,唯快不破”,我以前积累的大量测试策略设计和方法在互联网企业都失效了,原本最优的策略现在变得一无是处,那段时间我非常郁闷,不过好在我的学习能力还算比较强,通过对互联网敏态研发模式的理解,再结合自己在传统稳态研发模式下的积累,很快也就适应了,并且在此基础上提出了最早的测试中台概念,并将软件测试过程中需要的各项能力做了服务化的输出,形成了Test as a Service(TaaS)体系,并将TaaS和 CI/CD 做了全面的整合,在实践过程中取得了非常好的效果,为此也获得了全球技术创新奖,并受邀在美国和日本的技术峰会上做了分享,获得了很多好评。
4. 对于测试工程师晋升道路中比较重要的经验之谈有哪些?如何成为优秀测试架构师?
茹炳晟:我个人认为想成为一名优秀的测试架构师,除了测试全局观和技术能力以外,比较重要的核心能力以下有三个。
1、知识的广度。这其中包括软件架构知识,DevOps的实践知识,产品化的思维能力。
2、沟通能力。因为测试可以说是研发各环节的连接器,起到承上启下的作用,良好的沟通能力是确保工作顺利推进的基础,当然,沟通能力还应该包含技术的分享能力,能够化繁为简,将技术语言转化为通俗语言,讲述复杂技术的时候能够做到“帮别人听”,而不是“自我叙述”。
3、快速获取知识的能力。更注重调用知识而非记忆知识,在面对问题时,能够更快地找到关键信息、调用相关知识,就能更快地解决问题,就具有更大的优势。
5. 老师,可以聊一下《测试工程师全栈技术进阶与实践》这本书的创作历程和意义吗?
茹炳晟:《测试工程师全栈技术进阶与实践》这本书的写作的确花了我不少时间和精力,全书的内容是在“软件测试52讲”基础上的进行扩展,增加了很多移动应用测试的内容。这本书的最大特点就是全书我尽量避免对于测试工具使用步骤的讲解,也就是说,如果你是想找一本测试工具(比如Selenium,UFT, JMeter)的使用指导,那这本书会让你失望,因为我认为工程师学习工具使用的最佳途径一定是工具自身的文档,而不是这类工具书。
所以本书的写作基本都是我个人基于实践经验的总结,更多是去讲清楚技术背后的原理和逻辑,以及企业实践中遇到的问题和对应的解决思路,而且采用循序渐进,见招拆招的方式逐步展。
另外,通过本书的写作,其实对我自己的成长也起到了很好的作用,很多时候我自己知道的经验如果不经过系统化的组织和整理,就很难表达清楚,写作的过程就是帮助自己整理的过程。
同时,我也注意到业内现在关于测试框架设计与开发的系统化内容还是比较缺乏的,所以我最近还会有一本和Dell EMC的测试开发专家徐德晨合作的新书《高效自动化测试平台:设计与开发实战》面世,这本书会基于Python全面讲解测试框架设计与开发的方方面面。
传统企业转型,切入点是关键
6. 对于一家企业实践 DevOps ,需要走过哪些路程,有什么好的建议吗?
茹炳晟:随着微服务架构和容器技术的快速普及和发展,DevOps实践可以说已经成为了软件研发企业的标配,以前是互联网企业实施DevOps,现在是各类传统IT企业,尤其是有规模效应的大型IT企业,比如银行、典型、金融等机构也大举推行DevOps实践,这一现象背后的原因是DevOps实践确实让企业享受到了工程效率提升带来的红利,不仅交付频率更高了,而且质量也更好了。
但是 DevOps 实践是个非常庞大的实践和知识体系,可以说涵盖了研发和运维工作的方方面面,所以企业实施 DevOps 的切入点选择就变得很关键,同时如何在实施过程中避免踩坑,少走弯路也是 DevOps 在企业成功开展的核心要素。有些企业想通过采购工具平台的方式来提高自身的 DevOps,虽然看起来可行,但是实际效果往往会很有限,这就像你买了一辆保时捷不会让你成为一个赛车手的道理是一样的。
我个人之前参与了由信通院发起的《研发运营一体化(DevOps)能力成熟度模型》的编制工作,而且也看到了国内不少大型企业落地这个标准后带来的实质性改进,所以我觉得这就是一个很好的切入点,通过系统化的全面评估确定DevOps能力基线,并在此基础上找到差距点并逐条改进,最终全面提升企业级的DevOps能力。