聊聊Google DSM产品的发布
只有产品顺利的发布给用户使用并获得良好反馈,整个团队的价值才有所体现。
引言
不知不觉,从13年接手Google Doubleclick Sales Manager到今年7月,4年经历了3个milestone, beta, GA最终和ad exchange集成,一路走来,冷暖自知。
开始前做个调查,大家的项目发布周期是如何的,可以在回复里打数字:
- 无固定发布周期
- 每周发布
- 每两周发布
- 每月发布
- 更长的发布周期
DSM如何做发布
DSM项目的发布情况,分为两大块:
常规的每周发布和新功能发布
常规的每周发布
上线的标准很简单,就是没有P0/P1的bug
发布流程见下图

- 从TAP(Test Automation Platform)中自动获取最近三小时跑绿的Changelist(CL),然后build新的版本
- 发布到QA环境
- QA环境的自动化测试和手工测试
- 如果发现P0/P1的bug,提交给开发修复,重新打补丁发布到QA
- QA环境验证bug后并sign off后发布到Canary环境
- Canary环境停留3到6个小时,检查监控系统eye3
eye3系统没有错误报告,最终上线
- 下图是Rapid(Release Automation Platform in DevInfra)系统中一个完整的发布过程
- Rapid系统自动创建一个候选包
- 同时运行webdriver自动化测试(TAP上一般执行UT和ServiceTest, UI test耗时单独跑)
- 将候选包发布到QA环境,自动创建当周的release bug和hotlist, 上到QA环境后运行screen diff
- QA测试完成Sign off后陆续发布到Canary和Prod环境
- 下图是Rapid(Release Automation Platform in DevInfra)系统中一个完整的发布过程
新功能发布
每个新功能都有单独的功能开关
每个新功能都建立一个新功能类别的bug,让所有参与人有一个统一的沟通渠道,保证信息是同步的
新功能上线申请表,有若干检查项
如果新功能上线发现重大问题,可以快速的关闭
碰到的问题与解决
TAP可能不能获取到最近三小时绿色CL,怎么办?
- 建立一个build cop的三人小组,每周五和每周一关注TAP greenness
- 如果超过10个小时TAP还是红色,需要紧急处理,保证每周发布有可靠的基准CL
- 建立一个build cop的三人小组,每周五和每周一关注TAP greenness
回归测试中有可能P2的bug实际是P1的
- 测试完成后,发现的bug经过TLs(Tech Leader)再次审核来决定P2的bug是否需要Cherrypick
- 回归测试结束后需要有个sign off的过程
如何知道新功能可以测试了?
- 从Feature bug中拿到开发最后一个CL,在cl-status(一个辅助工具)里查询
- 辅助的Chrome插件工具
- 从Feature bug中拿到开发最后一个CL,在cl-status(一个辅助工具)里查询
怎样方便的获取错误日志信息,有助于开发快速定位修复发现的bug
- 辅助的Chrome插件工具
- 辅助的Chrome插件工具
上线后发现问题如何处理?
- Eye3监控机制
- Oncall机制
- 回滚机制
- Cherrypick机制
- 剖尸机制
达成
确定了上面的流程,QA团队一周的时间分配自然也就有了
统计每周发布情况了解产品是否稳定
顺利运行后大大缩减回归时间,同时CP(Cherrypick)的数量减少
有更多的时间投入到新功能测试以及自动化测试
后记
后续的改进:
- API加速发布: 将API和FE进行剥离,API通过高覆盖率的自动化测试,从一周一发到一周四发
- 兼容性测试: API和FE剥离后,API会有三个版本比FE新,引入兼容性测试,保证FE稳定
- 上线时间定在每周四: 这样有问题周五处理,不用周末加班
关于每周发布
几年的每周发布做下来,发现每周发布对团队的压力很大,基本每天有明确的任务,虽然回归时间从2天减到1天,但是每周超过3个新功能没有任何喘息时间,不利于团队成员反思。个人体会最理想的情况还是两周一次发布。
结尾
从事测试12载,一直比较喜欢参与面向客户的产品,不管这几年测试行业的称谓从测试到测试开发到工具开发,还是觉得自己就是测试工程师。近几年发现,仅仅做测试执行,学习测试技术运用,远远没有推动整个团队的测试质量提升更有成就感。
聊聊Google DSM产品的发布的更多相关文章
- Flutter 2022 产品路线图发布
为了提升产品的透明性,每年年初 Flutter 团队都会发布今年度的产品路线图,以帮助使用 Flutter 的团队和开发者们根据这些优先事项制定计划. 2022 年 Flutter 团队将重点通过关注 ...
- fir.im Weekly - 聊聊 Google 开发者大会
中国互联网的三大错觉:索尼倒闭,诺基亚崛起,谷歌重返中国.12月8日,2016 Google 开发者大会正式发布了Google Developers 中国网站 ,包含了Android Develope ...
- Google Developers中国网站发布!(转)
Google Developers 中国网站是特别为中国开发者而建立的,它汇集了 Google 为全球开发者所提供的开发技术资源,包括 API 文档.开发案例.技术培训的视频.并涵盖了以下关键开发技术 ...
- 苹果产品时间发布表统计(iPhone、iPad),以及32位和64位机的说明
之前因为某些原因,需要对apple家族的手机和pad产品做一个上市时间排序,以及分析分别是哪种CPU机型 总结如下: iPad家族: 1.iPad - 2010.1.27发布 2.iPad 2 ...
- 【我的Android进阶之旅】 Google Developers中国网站发布啦!
今天,Google Developers 中国网站 (https://developers.google.cn) 正式发布! Google Developers 中国网站是特别为中国开发者而建立的,它 ...
- Google V8扩展利器发布:v8-native-binding-generator
用C++扩展Google V8很简单,但是类比较多时还是很烦的.前段时间开发cantk-runtime-v8时,我写了一个代码产生器v8-native-binding-generator,让扩展Goo ...
- 聊聊Google face api
图像处理开源了很多东西,保存下一些基础的东西,以用来follow最新的东西. Google Face API 是什么? Google 的 Face API 用于面部检测,从图片中找出人的面部,以及位置 ...
- 围绕Buganizer的产品流程
做技术的一定知道缺陷跟踪系统(bug系统),更不用说做测试的了,不过普遍都认为这系统是用来记录bug的,其实在google内部,这套系统是产品/项目围绕的核心.Google Buganizer扩展了类 ...
- 如何在Google Play商店发布多个版本apk
原文:http://android.eoe.cn/topic/android_sdk 多种apk的支持是一个特点在Google Play,它允许你发布不同的APKs为你的应用匹配不同尺寸的设备.每个A ...
随机推荐
- loadrunner11浏览器兼容性的问题
最近项目中遇到了新开发的系统,全是HTML5和一些最新的前端框架技术,由于没有做浏览器兼容处理,所以该系统无法在IE浏览器进行操作,对firefox和google浏览器支持较好.但是又一个问题出现了, ...
- 我在MySQL免安装版使用过程中遇到的问题记录【二】
跟上次问题不一样!这次是重新安装MySQL免安装版,各种文件搞对了还是错了也不清楚. 现在是:下载完安装包之后,按照现在的下方的代码,创建一个my-default.ini文件并放入下代码: [mysq ...
- SQLServer 2008R2主从部署实战
说明: 由于临时接到做OA的主从环境,基于Windows 200R2 SQLServer2008 R2,由于搜索的资料都不完整,好多重要之处有遗漏,亲自动手做了好几次,填完了坑,整理以备忘记与分享,如 ...
- HyperLogLog算法
项目在统计UV/PV时用到了Druid的Hyper hyperunique算法,书上介绍这种算法求出的UV/PV存在一定误差,因此需要了解下误差来自哪里. 实现去重功能,最简单的就是使用set记录集合 ...
- 处理文件中的" M-BM- "特殊符号
有时为了方便,会在Excel中进行代码拼装,比如说是建表SQL语句,但是在复制的代码过程中可能会带入不可见字符,造成代码无法运行. 本次代码中就需要了不可见的" M-BM- " 问 ...
- 最详细的 linux grep命令教程
简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...
- mysql启动报错 mysql InnoDB: Error: could not open single-table tablespace file
mysql启动不成功,报错 mysql InnoDB: Error: could not open single-table tablespace file innodb_force_recovery ...
- Centos6.5下使用LAMP搭建discuz论坛(编译安装 PS :自学中 写的不好请见谅)
wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.27.tar.gz 下载Apache软件包 wget http://downloads.my ...
- 对spring框架的理解
spring框架的两大核心理念就是IOC和AOP,在面试的时候经常会被问到你对spring的理解.下面大致的说一下我对spring的理解. 一.IoC 1.1.什么是IoC 众所周知,IoC就是控制反 ...
- c/c++的常用函数和STL使用
一个超好用的c++网站:http://www.cplusplus.com/reference/string/string/erase/ 一.函数头中包含的函数 1.qsort函数对数组.结构体等进行排 ...