专访王超:支付宝质量平台AQC的背后

发表于:2015-1-15 08:54

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:51Testing    来源:51Testing软件测试网原创

  导言:当"互联网"与"金融"这两个当下社会最热、几乎平均薪酬最高的行业结合在一起的时候,互联网金融这个名词就注定成为新世纪最热门的话题之一。支付宝作为全球领先的第三方支付平台,在互联网金融领域独占鳌头,其背后的质量体系、测试技术,让无数IT人士向往一探究竟。今天让我们跟着质量技术部工具平台高级技术专家王超(于龙),掀开支付宝神秘面纱的一角。
  1)51Testing:跟您也认识蛮久了,也有过很多次合作,首先要感谢您对我们51Testing的支持。访谈之前,先问一个一直困扰我的小问题:为什么您要起一个花名呢?
  王超:名字起的比较随意,因为阿里有着几万人,实在找不到更适合的江湖的名字了,但是之所以起于龙,我是个喜欢干活的人,而且喜欢带着别人一起干,俗话说,一个团队,没有龙头哪行啊,开个玩笑。后来淘宝的于平、于凡的花名也是我起的,寓意着平凡普通。
  2)51Testing:我了解到您从事软件测试开发多年,也曾加入过很多大公司,小伙伴们都很羡慕您的工作经历。能简单介绍一下你自己的经历,分享一下你与支付宝的不解之缘么?
  王超:2007年7月,从上海师范大学计算机专业硕士毕业后,先后在微软、SAP、阿里巴巴(淘宝网、支付宝)从事软件测试与工具平台研发团队管理工作;
  2007年,在微软的这段经历,对于我.net系列技术体系有了长足的进步,在工作之余,自己也接了一些外面的小项目,所以我对软件需求把控、数据库设计、系统设计、实现、交付等都有更加深入的实践和理解,也为我后来负责工具研发团队奠定了一定的技术和业务基础。此期间,让我深深感受到测试也要会开发;
  2008年,在SAP这段期间,我主导研发了SAP Business One的云测试平台OnDemand平台,主要功能模块有测试项目管理、测试资源(用例、测试机)管理、测试报告管理、执行调度管理、测试任务管理、客户端执行器等,记得当时我的manager告诉"OnDemand就是你的Baby",我至今记忆犹新,一个软件产品的孕育确实需要太多的思考和付出,那时候加班加点,一个人主导研发并顺利交付,历时4个月,目前这套平台还在持续运营(已经5年过去了,还是稳定运行,还是满引以为豪的),后来逐步负责一个小team,主要负责测试工具平台建设,业务涉及自动化框架、测试数据管理、环境管理、自动化执行调度器、任务管控系统等。此期间,让我深刻感受到实践出真知;
  2011年,顺利加入阿里巴巴淘宝网的kelude测试平台团队(我一直都在说,淘宝的kelude测试平台团队是互联网界测试工具的黄埔军校),负责PC自动化框架团队,之所以从SAP跳槽过来,主要是希望自己在互联网领域有所沉淀,也想提升下自己的互联网技术体系,在加入淘宝网的时候,由于自己之前是从事.net系列,对java体系了解甚少,入职的时候自己的岗位是技术专家(层级P7),能感受到周边的同事都对于我较大的期待,尤其是我的主管,所以刚加入淘宝网那段时间,倍感压力,真是如坐针毡,有想过逃避(甚至外出面试过其他公司)。既来之、则安之,后来逐步深入的去了解业务和相关技术,寻求业务痛点,虚心向他人请教,由于我有一定的.net的经验,所以对java技术的学习进展还可以,最关键的是kelude测试平台团队有着各方面的技术人才,平时可以多一些交流和学习,在这样的环境下,不成长都不行。在淘宝网的这段时间,主导研发了PC端自动化框架AutomanX,最大的成就感就是将原先用ruby写自动化用例的小二转向了用java写自动化用例,自动化领域的技术统一化,同时打破原先的多套框架(Automan、itest等),实现了统一化的集成自动化框架,此期间,也积极参加集团的一些创新学习,也带领团队分别在2012年和2013年拿到浏览器同步工具和爱吐槽2个赛马项目并顺利通过。此期间,让我深刻感受到的是坚持与感恩,千里马常有,而伯乐不常有,遇到一个好主管很重要,很感谢前主管,能够站在业务的高度去影响和感染下属,很难得,所以在某种意义上来说,跳槽是为了寻找好主管;
  2013年,由于平时有一些业务交流,和支付宝的研发或测试还较为熟悉,加上由于希望回上海发展,所以在2013年的6月份,我有幸加入到支付宝测试技术团队(现在叫质量技术部),负责组建工具平台研发团队,由于我有较好的测试工具研发的业务和技术背景,加上又是兄弟公司,所以很快就熟悉了这边的业务和技术体系,基于团队的现状,提出了统一化研发模式、统一化工具平台的理念,也得到了主管和领导们的高度认可,所以从2013年7月开始,逐步开始打造了蚂蚁金服全站质量技术平台AQC,业务涉及无线测试、全站分层自动化回归、代码测试平台、PC与移动端覆盖率、资损与核对、持续集成、CTU事件管控、用例管控、线下工具平台基础化建设等,在团队组建和工具平台建设方面有了一定的成效(如构建了全站无线测试平台、全站T+1资损核对平台、工具平台研发效率提升30%等),2014年上半年,有幸从原来的P7层级晋升到P8层级,也非常感谢主管和领导们的认可,当前正致力于工程化能力提升的工具平台建设,一直思考着返璞归真的研发模式,如开发自测、开发对产品质量等,也一直思考着数据驱动研发模式(Data Driven Development)的未来。由于负责的是工具平台研发团队,和一般的研发团队有所区别,在工具研发团队,我们人人都是产品经理、人人都是开发、人人都是测试,在人才引进和培养方面,需要有足够的耐心,我们的组员更多的是来自测试领域,当然后续更多的会引入开发背景的同学,所以,我们每2周会举行一次技术分享交流会,另外,在组内工具平台建设过程中,我们也会适当采取组内任务轮岗制,以提升各位同学的技术深度和广度。此外,让我感受到如何去做的一个好的主管(当然,我目前还不是好的主管,我还在努力中),更多的是以身作则,多站在对方的角度去思考,在管理方面,实行了专人专职专事与组内任务轮岗制,积极点燃下属,一起奋进,沿袭公司质量策略研发出好的产品,促进全站工程化研发效能。另外,非常感谢和我一起战斗的同学,目前所负责的工具研发团队的每个同学都肩负着和我一样的使命,没有和我一起战斗的同学,什么都是浮云。
  3)51Testing:提到支付宝,这响当当的大名家喻户晓,也因此使得互联网金融这个名词近几年火热得很。很多会员觉得做这方面的测试,会有很大发展空间,您对这个领域的发展趋势怎么看?
  王超:说个题外话,业内有种观点认为,互联网企业,介入了金融领域,才是互联网金融。金融企业使用互联网手段,则不是互联网金融,而是金融互联网。硬生生将他们俩割裂对立开来似乎不太可取,用金融的思维做互联网,或者用互联网的思维做金融,无非争论的是谁服务谁的问题。但是无论是互联网金融还是金融互联网,都离不开互联网技术;
  由于金融业务天然所具备的复杂性和高安全性,所以对测试人员的要求要格外的高,不但要具备一定的行业领域知识,更需要具备较强的编码能力和特定技术体系化能力(如java编码能力、spring、ORM、数据库、大数据、中间件、软件生命周期、无线客户端、互联网思维等),同时,也要具备金融领域的一些测试技能,如资损防控等;
  在研发模式方面,开发自测、开发对产品质量负责也许会是方向,在这样的变化下,工具平台将会透明化研发产品生命周期各个环节的研发数据,用数据去驱动研发,也就是我之前所提及的数据驱动研发模式(Data Driven Development),测试人员将会充当测试顾问的角色,提供一些测试方法论和最佳实践,引入一些新的测试方法、测试技术、效率工具,去协助开发做好测试、风险、质量防控等活动;
  万变不离其宗,作为测试从业人员,一定要不断积累测试理论基础(如黑盒测试白盒测试、边界值测试、模型驱动测试、自动化测试性能测试安全测试等)、开源测试技术或工具(如junit、jmeter、loadrunner、testng、selenium、watir、quality center、qtp、robot framework、app scan等)、领域测试知识(如硬件测试、移动专项测试、移动自动化测试、金融资损与安全测试等)、行业业务(如ERP、金融、保险、电商、物流等)、开发能力(如java、c#、javascript、html5、sql、hadoop等)等,以不变应万变。培养自己技术体系化、业务深入化、专业化的能力,当然,沟通能力、项目管理能力也是不可或缺的,需要不断的沉淀。
  4)51Testing:互联网金融我们接触最多的就是第三方支付平台,由于牵扯到用户隐私与资信问题,安全性是要求非常高的,您能给我们介绍一下,这种系统通常有哪些测试点呢?有哪些特殊的注意点么?
  王超:技术层面来说,主要采用白+黑模式,关于白盒扫描,主要是基于velocity层面、mybatis层面以及java代码层面,黑盒扫描,如采用appscan工具等;目前应用安全测试团队也在打造应用安全测试中心;
  业务层面来说,蚂蚁金服有相应的大安全部门,也有相应的安全防控平台,这块我不是很了解,不好意思;
  关于安全问题,设计及开发实现必须满足安全研发checklist,至于checklist,基于公司安全考虑,不便于分享,望大家理解。另外,资金类的项目,会要求部署T+1核对和实时资损核对等;
  5)51Testing:今年的双十一,淘宝又创新了巨额交易记录,支付宝作为其交易支撑平台,交易数据的处理肯定非常庞大,却几乎没出现过大的事故,你能给大家剖析一下支付宝是如何进行性能测试的么?
  王超:当前,性能稳定性架构面临着较多的挑战,如代码性能测试(如应用服务端、前端、中间件、数据库或缓存)、应用性能(如应用单点容量、网络容量、缓存容量等)、集群性能(应用集群、核心系统、集群应用依赖等)、性能建模(阈值预案、趋势分析、基线分析等);
  关于应用服务端性能,通常会考虑到JVM调优(FGC、参数优化、OOM、内存泄露等)、DB调优(索引、参数、业务等)、中间件容器(如死锁和线程数、JBOSS线程优化)、文件读写(如序列化和反序列化、对象拷贝、日志等)、代码方面(如服务调用的网络消耗、同步异步、velocity等)、底层系统(如缓存、消息中间件等);
  蚂蚁的性能测试完成了由原来的性能测试到全站性能保障的华丽转身,构建了线上线下多重性能压测保障体系,准确评估系统容量,提前做好扩容和性能隐患的排除;
  在线上,进行关键链路的真实场景的压测,模拟双十一的压力进行峰值压测,这样保障了系统在双十一之前就已经进行了性能的实战演练;在线下,持续的进行关键链路性能回归,针对重要业务,性能容量评估甚至涉及到了接口层面;
  此外,工具团队也在协助打造线上与线下压测平台,至于性能平台的建设,我就不在这里详述了。
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号