垂直化开发模式在支付宝无线测试平台建设中的实践

摘要:支付宝无线统一测试平台承载着整个支付宝无线应用研发的质量控制体系,提供字节码测试、monkey测试、遍历测试、UI自动化测试、适配测试、设备管理、真机访问、性能监测、安全扫描等。
  一、引言
  无线应用的浪潮已经掀起,无线测试质量保障体系的建立步伐步步紧逼,在这样的背景下,支付宝无线统一测试平台应运而生,结合支付宝无线应用的特性,定制开发一套统一无线测试平台迫在眉睫,本平台主要涵盖monkey测试、遍历测试、UI自动化测试、适配测试、设备管理、真机访问、性能监测、安全扫描等,研发团队采取垂直化研发协作模式,坚守OneSolution&OneApp&OneProject&OneDB&OneOwner的责任到人的开发模式,秉承高内聚、低耦合的开发理念,极大的提升了整个平台的开发效率。开发过程中,强化进度层层把关与同行评审机制,坚守产品第一、质量第一,为统一无线测试平台的构建打下坚实的基础。在开发效率提升的同时,这种垂直化研发协作模式也有效的提升了整个平台的可扩展性、可维护性等。
  二、案例解读
  (1).核心模块划分
  鉴于本平台的自身特点,在模块化设计方面,我们对本平台进行模块解耦设计,主要分为基础组件(如用户管理、权限管理、任务调度等)、统一控制中心(与移动设备交互层)、应用提测、设备管控、应用评价中心、自动化测试等模块;同时鉴于集团共建,本平台建设主要采用开源的技术体系springmvc&mybatis&velocity&mysql。核心模块结构图如下:
垂直化开发模式在支付宝无线测试平台建设中的实践
  (2).核心功能剖析
  字节码测试:我们通过对findbugs进行拓展开发,提供一体化的字节码测试解决方案,填补了支付宝在字节码扫描领域的空白,这里的扩展开发主要包括findbugs的缺陷的关键字过滤、缺陷的规则扩展、缺陷的翻译等,业务流程见下图:
垂直化开发模式在支付宝无线测试平台建设中的实践
  安装、启动、卸载、升级测试:主要是对应用在不同型号的手机上进行安装、启动、卸载测试的相关数据指标的获取以及分析;同时,鉴于支付宝应用发布的高频率情况,整个无线平台提供了应用升级测试方案,支持从低版本到高版本的升级测试相关数据指标的获取与分析,业务流程见下图:
垂直化开发模式在支付宝无线测试平台建设中的实践
  性能监测:切合支付宝无线自动化解决方案,收集在特定的场景(也即测试计划)运行与底层框架函数埋点的情况下,透明化该特定场景下的移动设备的流量、耗电量、CPU、内存等数据指标,并提供基于特定性能基线的移动应用性能评测中心,相关模块以及性能指标见下图:
垂直化开发模式在支付宝无线测试平台建设中的实践
垂直化开发模式在支付宝无线测试平台建设中的实践
  真机访问:本模块我们主要着手解决了实时获取到手机当前屏幕截图以及可以将浏览器上的鼠标或键盘事件回传到手机上并得以执行。工作流程见下图:
垂直化开发模式在支付宝无线测试平台建设中的实践
  关于实时获取当前手机屏幕截图,有两种使用较多的方案:1.使用adb本身提供的截图命令screencap;2.使用开源的C程序gsnap生成截图。方案1简单,但效率低,大概每秒只能截图一张,不能满足实时性要求,方案2需要将此C程序编译并放到手机上,同时,手机需要被root,因为此程序读取/dev/graphics/fb0设备生成图片时需要root权限。
  关于鼠标或键盘事件回传到手机并得以执行,首先需要开发一个Android手机上运行的控制台程序(此程序要能构造Android平台的MouseEvent对象并且发送给系统执行),打成jar包,将预先放置在手机的某个目录中,当浏览器中捕获到某个事件时,传送回服务器,服务器使用adb向手机发送一个命令及参数,执行之前准备好的命令行程序,之后命令被换成Android平台的事件并分发执行。
  自动化测试:提供用例的同步与管理、测试工程的管理、测试计划管理、测试数据管理等模块,将自动化测试纳入到整个支付宝无线研发的流程体系中去,相关模块和用例特点见下图:
垂直化开发模式在支付宝无线测试平台建设中的实践
  应用评价中心:可以将不同的应用发布渠道的热点评价同步到本无线平台,进一步分门别类的去进行分析。
  其他:本无线测试平台还支持monkey测试、遍历测试、基于代码级的安全扫描、应用自动打包、一体化的质量报告体系等。
垂直化开发模式在支付宝无线测试平台建设中的实践

垂直化开发模式在支付宝无线测试平台建设中的实践
垂直化开发模式在支付宝无线测试平台建设中的实践
  统一化:在开发模式、url组织、静态资源、编码规范、数据库设计规范、工程结构等方面都高度统一,确保团队成员对其他模块的快速掌控能力,有效的降低了人才流失的风险,此外,也提升了整个团队的技术体系的培养和专业技能的沉淀。
  OneRule:采取专人、专职、专责、专事的垂直化的研发模式,也即OneSolution&OneApp&OneProject&OneDB&OneOwner原则,同时强化PeerReview(同行评审)机制,协助不同方案的Owner业务与技术的不断成长。
  快速原型验证:进行快速的POC(proofofconcept)原型验证和方案确认,加快特定方案的可行性研究步伐,有效的降低了资源的浪费和风险。
  螺旋式迭代:采取了螺旋式的迭代研发模式,确保项目的快速迭代交付周期。
  线上与线下部署:采取统一的发布与部署流程,进行每日构建,分为线上和线下两套环境,线上提供给用户进行使用或试用,线下提供给研发人员进行验收测试。
  源码控制:采取了主干与分支管理,强化模块级别的同行评审,在部分编码技能稍弱的同事中,我们会采取结对编程的方式,协助同事编码能力的提升。
  架构和数据库设计:由技术架构师统一负责模块解耦设计以及数据库设计,并强化组员评审与方案解读,以确保整个方案的正确性。
  研发资源共享:系统开发方面,采取统一的三层架构研发模式与标准的模板工程,强化基础组件(如grid控件、user组件等)的研发,提升整个系统研发层面的组件复用力度,从而有效的节省资源。
  三、案例启示
  无线应用异军突起,无线测试平台建设迫在眉睫,目前业界也有尚有一些较好的案例,如testin等,但存在一些现实问题,如费用较高、针对性不强且难以满足不同公司的无线测试的特定需求,在支付宝无线测试平台建设中,我们借鉴了同行产品(如一淘网的摩天轮和淘宝网的athrun)的一些经验,提出了垂直化团队协作研发新模块式,开辟了适合支付宝测试工具研发团队的全新的系统或应用研发新的篇章,有效的提升了支付宝无线统一测试平台建设步伐,提升了测试工具团队组员的独挡一面的能力以及整体把控一个方案(从需求、设计、实现、测试、交付等)的能力,同时提升整个测试工具研发团队的技术沉淀与研发能力,为统一化平台建设奠定了基石。
  作者简介:
  王超,花名于龙,2007年计算机软件与理论专业硕士毕业,先后在微软全球技术支持中心、SAP中国研究院、淘宝网从事自动化测试用例开发、自动化框架研发、测试平台建设、信息系统研发、测试工具研发团队管理等工作,主导研发淘宝网PC自动化测试框架AutomanX、支付宝统一测试平台AQC、支付宝无线测试平台、支付宝缺陷管理移动端QOne等产品,目前负责支付宝质量部测试工具研发团队。
  李国栋,花名富曲,2002年计算机应用专业本科毕业,先后在中国建设银行、金蝶软件、淘宝网从事java开发工作,相关领域包括金融行业软件、ERP软件、电子商务网站,性能测试平台、自动化测试、字节码测试等。擅长java企业级应用平台架构,测试平台技术架构,目前是支付宝质量部测试工具研发团队测试开发专家。
版权声明:本文来源于TOP100全球软件案例研究峰会  王超(花名于龙) 、李国栋(花名富曲),51Testing软件测试网原创出品,未经明确的书面许可,任何人或单位不得对本文进行复制、转载或镜像,否则将追究法律责任。

最新内容请见作者的GitHub页:http://qaseven.github.io/
上一篇:表格、表单、js常识总结


下一篇:云支付常见业务问题汇总