手机淘宝高质量持续交付探索之路

发表于:2015-4-30 11:01

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

 作者:杨强    来源:51Testing软件测试网采编

  工程架构
  现在手机淘宝的工程架构进行了进一步的改造,形成了一套插件化的体系,而分bundle编译的引入大大缩短了构建时间,从而使构建速度不再成为瓶颈。另外分bundle编译可以提早发现编译问题,从而不会导致整包编译时编译失败。另外引入了依赖配置项的概念,目前项目完整包的构建完全取决于依赖配置,在单bundle开发、提测、项目集成、发布等各个阶段的依赖配置完全独立,各个bundle的开发测试人员可以在完全独立的环境中进行开发测试,不会受到干扰。
  研发流程
  有了工程架构的有力支持,研发流程慢慢进入了正轨。首先明确了bundle开发、提测、集成、灰度、正式发布等各个生命周期的边界,真正做到各个阶段的相互独立。其次在各个生命周期中加入了规范性的流程,并由平台保证了流程的真正实施。最后质量保证手段和效率也有了很大提升。基于以上几点手淘的整个研发做到了类似于火车发车的发布过程:
  各个bundle在有着自己的需求、开发、测试计划,相互独立。
  手机淘宝主项目制定发布计划,确定集成窗口和发布时间点。
  在集成窗口时间bundle可以自主提交集成。
  集成提交需要走流程,包括填写checklist、代码检查、bug统计、提前编译预集成包进行测试等。这就避免了明显的集成问题遗漏到集成环境中。
  集成期间的集成包每天出一个或者两个,避免了测试人员不断拿包回归的情况。
  集成窗口对于时间要求严格,赶不上计划或者质量不达标的bundle不予集成。这就是火车不等人的原则。
  以上机制保证了手机淘宝每天都有一个候选包,可以随时进行灰度发布,并且灰度发布单独拉取一个依赖配置分支,不影响集成窗口。
  bundle的独立,依赖配置的独立保证了手机淘宝可以并行多个发布计划,各个bundle可以按照需求自主决定搭乘哪个发布计划进行发布。
  目前手淘项目节奏为两个星期发布一个版本。如果需要还可以更快的进行发版。最短只需要1个小时就可以发一个新版。
  目前的平台建设工作也进入了快车道,所有的项目生命周期都有相应的平台工具支持,如下图:
  质量保证手段
  有了高效稳定的流程,剩下的事情就是如何保证产品在快节奏的持续交付下的保持很高的质量。质量保障上面手机淘宝研发团队做了几方面事情:
  1. 流程方面
  1)创建了提测单、集成单、发布单等流程。建立了标准,并依托平台自动检查,提高了交付的质量。
  2)建立持续集成体系,不但能提早发现更多的问题,而且提升了测试人员拿到的包的质量。
  3)建立线上线下监控分析体系。
  2. 包稳定性方面:
  1)bundle阶段根据项目进度自己控制提测包的频率,集成阶段每日验证DailyBuild即可,所以解决了之前测试同学不断安装新版本的包的问题。
  2)研发阶段的包内部支持环境切换,这实现了只构建一次,环境根据配置切换的梦想。测试时手机上只需要安装一次包即可完成多种环境下的测试。
  3. 自动化测试与测试工具方面
  1)引入多种静态扫描引擎,并定制多种规则:适配规则、Crash规则、框架约定规则、安全规则等,并且不断地将测试阶段、线上问题等总结抽象成新的扫描规则补充进入扫描引擎。
  2)在测试阶段包种插入相应的测试SDK,并且这种SDK不会侵入应用代码,所以只需要在发布的时候去掉测试SDK即可。测试SDK可以在测试人员(包括外包适配测试人员)正常使用过程中自动检测并上报问题,这样就可以在同一的平台上看到研发过程中的质量情况并进行修复。
  3)自动化平台方面也在根据手淘测试经验不断的进化,在整个研发过程中自动化测试一直在执行,不仅可以提高产品稳定性,也可以发现性能、电量等非功能问题。
  4)mock工具、验证平台等辅助测试工具也提升了测试人员的效率。
  4. 线上线下监控分析
  1)线下质量数据、线上业务问题、舆情反馈等信息统一汇集到平台上进行统一的分析告警,不仅能快速的发现问题,而且能通过数据分析能够帮助快速定位和解决问题。
  2)根据平台中的数据,可以用经验推动流程的优化、补充测试用例、添加扫描规则、增加自动化场景、催生新的测试工具等,这样可以使经验形成闭环,使质量保障工作更加高效。
  以上就是手机淘宝研发团队在建立高质量持续交付体系过程中的经验分享,虽然现在在架构、流程,质量保障方面有了一些积累,但是在移动互联网这个领域还有诸如稳定性、电量、流量、性能、适配、用户体验、线上运维、故障告警等难题等待我们去解决。前方的道路依然坎坷,我们会更加努力,并不断前行。
  作者简介
  杨强(花名:元战)阿里巴巴技术专家,2012年加入阿里巴巴无线事业部,目前负责手机淘宝专项测试组,主要负责无线研发支撑平台,无线技术运维平台,无线专项测试工具以及无线SDK测试等方面的工作。曾经在趋势科技、华为从事测试工作。
33/3<123
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • tigerge000
    2015-5-09 15:22:43

    感谢楼主分享,其实目前很多公司均处于手机淘宝的第一个阶段,只维护一条基线,有些不愿意再做进一步的思考及改进,其原因面对的客户群不完全一致

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号