SlideShare a Scribd company logo
1 of 41
Download to read offline
Scrum Gathering
                              Shanghai
                                 2012




快速可持续 的 高质量发布
   - 持续交付案例分享

            路宁
    luning.tw@gmail.com
      weibo@路宁同学
集成,测试和
   部署的消耗低

快速可持续 的 高质量发布
市场需要        BUG少
 就发布
C++产品线,100+人
    承担收入,更新频繁
      项目小,且多




   测试周期长,Bug排查耗时
项目排队提测,排队上线,内部PK消耗大
    合并分支风险大,耗时长
•••      •••     •••   •••
       •••


      6步代码修改习惯                  增加和优化质量保证
构
建
基
     •••

础
      鼓励集成的
CI
    分支管理策略                 •••              •••   •••

环
境      •••               自动化提测                自动化上线
      在目标分支运行已
       有的自动化测试




                      个体技能提升
             (单测, 重构, Code Review, 每天一次Check In)
6步代码修改习惯
                             增加和优化质量保证
构
建
基
        鼓励集成的
础
     分支管理策略        用脚本测试
CI
                        •••

环
境                     自动化提测                自动化上线
      在目标分支运行已
       有的自动化测试




                   个体技能提升
          (单测, 重构, Code Review, 每天一次Check In)
DB
❶
开发基于Python的测试工具,用
   Python脚本写测试
        
       ❷
测试工具、用例及数据与生产代码
    做同源版本管理
        
       ❸
测试环境标准化,每个人都能运行
      所有测试
6步代码修改习惯        单分支+功能
                        增加和优化质量保证
构
                      开关
建
基
        鼓励集成的
础
     分支管理策略
CI
环
境                     自动化提测                自动化上线
      在目标分支运行已
       有的自动化测试




                   个体技能提升
          (单测, 重构, Code Review, 每天一次Check In)
P1
                           R1

     P2
                      R2


          P3
                 R3




               特性分支
P1      P3

      P2      P4



      R1      R2




单分支 + 规律性发布
特性开关 配合 单分支开发
声明




使用
避免使用特性开关的 双分支开发
F1                                              F7
F1   F1   F3             F1         F7   F8        F9                    F8

                         F3                                              F9


                               R1                                                   R2   A

                                                        R2                               B
                                              F4

               F4   F5        F6              F5             F10   F1I        F12

                                              F6
6步代码修改习惯
                             增加和优化质量保证
构
建
基
                      编译和测试加速
        鼓励集成的
础
     分支管理策略
CI
环
境                     自动化提测                自动化上线
      在目标分支运行已
       有的自动化测试




                   个体技能提升
          (单测, 重构, Code Review, 每天一次Check In)
25min
             代码和测
              试增加                 应用编译集群

 分布式编译
               16min
  - discc
  测试加速
优化编译依赖
             9min   应用编译缓存
     10min
                     - ccache           7min
Dev
                      OP
  
                          
SVN                        产品库
            编译集群




            产品线构建集群
Check6步代码修改习惯
      In触发                    增加和优化质量保证
 构
 的性能测试
 建
 基
         鼓励集成的
 础
     分支管理策略
 CI
 环
 境                     自动化提测                自动化上线
       在目标分支运行已
        有的自动化测试




                    个体技能提升
           (单测, 重构, Code Review, 每天一次Check In)
?


通过Branch隔离   通过Check In隔离
Pre-performance
  提供性能的快速反馈
开关常开方案
确保Hudson在Trunk上的性能测试能够测到新功能
基于Check In的
    6步代码修改习惯
 性能测试                       增加和优化质量保证
 构
 建
 基
      鼓励集成的
 础
  分支管理策略
   测试Pipeline
 CI
 环
 境                   自动化提测                自动化上线
    在目标分支运行已
     有的自动化测试




                  个体技能提升
         (单测, 重构, Code Review, 每天一次Check In)
在构建集群中的测试Pipeline
依赖持续集成平台运行测试
 功能集成,性能,大数据对比测试
基于Check In的
    6步代码修改习惯
 性能测试                        增加和优化质量保证
 构
 建
 基
        鼓励集成的
 础
    分支管理策略
 CI
     测试Pipeline
 环
 境                   测试
                     自动化提测                 自动化上线
     在目标分支运行已
      有的自动化测试        前移


                   个体技能提升
          (单测, 重构, Code Review, 每天一次Check In)
RB


                       Trunk


          Local Test
                                            RB


                                        Trunk
              RB

                               Trunk Test
            Trunk


RB Test
NEW -> RB-READY -> RB-TESTING -> ONLINE
基于Check In的
    6步代码修改习惯
 性能测试                        增加和优化质量保证
 构
 建
 基
        鼓励集成的
 础
    分支管理策略
 CI
     测试Pipeline
 环
 境                   测试
                     自动化提测                 自动化上线
     在目标分支运行已
      有的自动化测试        前移                  Remote
                                       Personal Test

                   个体技能提升
          (单测, 重构, Code Review, 每天一次Check In)
local test
Dev能随时针对本地代码发起运行于构建集群中的性能测
      试,功能集成测试和大数据对比测试
6步代码修改习惯     自动创建Release
                        增加和优化质量保证
构
                 Branch并建Job
建
基
        鼓励集成的
础
     分支管理策略
CI
环
境                     自动化提测                自动化上线
      在目标分支运行已
       有的自动化测试




                   个体技能提升
          (单测, 重构, Code Review, 每天一次Check In)
6步代码修改习惯
                             增加和优化质量保证
                              通过脚本实现自动化
构
建
基
        鼓励集成的
础
     分支管理策略
CI
环
境                     自动化提测                自动化上线
      在目标分支运行已
       有的自动化测试




                   个体技能提升
          (单测, 重构, Code Review, 每天一次Check In)
• 配置,数据及部署脚本与源码做同源版本管理

• 上线步骤全部脚本化,通过一条命令运行

• 线上配置的修改与代码一样,需要自动化测试
  保证质量

• 与Hudson集成,实现一键上线
env/
 - base/
 - dev/
 - test/
   - functional/
   - query_diff/
   - performance/
 - production/
   - node_base/
   - nodes/
     - IDC_1
     - IDC_2
6步代码修改习惯
                         增加和优化质量保证
                          通过脚本实现自动化
构
建
基
     鼓励集成的
础
  分支管理策略
CI
环
境 签单流程与上线操作 自动化提测                      自动化上线
        分离
  在目标分支运行已
   有的自动化测试




               个体技能提升
      (单测, 重构, Code Review, 每天一次Check In)
8
    8
6
                QA        QA
4

2
          2.5        RD        RD
0
    试点前   试点后


    发布周期缩短           人力比下降
还有问题,还没结束
谢谢

        路宁
luning.tw@gmail.com
  weibo@路宁同学

More Related Content

Viewers also liked

Arlt roberto un hombre extraño
Arlt roberto un hombre extrañoArlt roberto un hombre extraño
Arlt roberto un hombre extrañoivan
 
Goini formation-go-les-bases
Goini formation-go-les-basesGoini formation-go-les-bases
Goini formation-go-les-basesCERTyou Formation
 
дорожная карта подготовки к проведению гиа в 2016 году
дорожная карта подготовки к проведению гиа в 2016 годудорожная карта подготовки к проведению гиа в 2016 году
дорожная карта подготовки к проведению гиа в 2016 годуvirtualtaganrog
 
Ecuación de la función lineal
Ecuación de la función linealEcuación de la función lineal
Ecuación de la función lineallucia monzon
 
205711094 labor-cases
205711094 labor-cases205711094 labor-cases
205711094 labor-caseshomeworkping7
 
English exercises. Unit IX
English exercises. Unit IXEnglish exercises. Unit IX
English exercises. Unit IXmimio_azerbaijan
 
Lista unitaria retificação
Lista unitaria  retificaçãoLista unitaria  retificação
Lista unitaria retificaçãoPedro França
 

Viewers also liked (10)

Selecta Wholesale XL
Selecta Wholesale XLSelecta Wholesale XL
Selecta Wholesale XL
 
Arlt roberto un hombre extraño
Arlt roberto un hombre extrañoArlt roberto un hombre extraño
Arlt roberto un hombre extraño
 
Goini formation-go-les-bases
Goini formation-go-les-basesGoini formation-go-les-bases
Goini formation-go-les-bases
 
дорожная карта подготовки к проведению гиа в 2016 году
дорожная карта подготовки к проведению гиа в 2016 годудорожная карта подготовки к проведению гиа в 2016 году
дорожная карта подготовки к проведению гиа в 2016 году
 
Ecuación de la función lineal
Ecuación de la función linealEcuación de la función lineal
Ecuación de la función lineal
 
205711094 labor-cases
205711094 labor-cases205711094 labor-cases
205711094 labor-cases
 
TRATAMIENTO PARA EL VITILIGO
TRATAMIENTO PARA EL VITILIGO TRATAMIENTO PARA EL VITILIGO
TRATAMIENTO PARA EL VITILIGO
 
Ibn it service profile 2015
Ibn it service profile 2015Ibn it service profile 2015
Ibn it service profile 2015
 
English exercises. Unit IX
English exercises. Unit IXEnglish exercises. Unit IX
English exercises. Unit IX
 
Lista unitaria retificação
Lista unitaria  retificaçãoLista unitaria  retificação
Lista unitaria retificação
 

Similar to Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)

打造面向服务的敏捷团队 Q con-beijing2012
打造面向服务的敏捷团队 Q con-beijing2012打造面向服务的敏捷团队 Q con-beijing2012
打造面向服务的敏捷团队 Q con-beijing2012Qiao Liang
 
Top100summit 宗刚-全生命周期性能评估体系的实践
Top100summit 宗刚-全生命周期性能评估体系的实践Top100summit 宗刚-全生命周期性能评估体系的实践
Top100summit 宗刚-全生命周期性能评估体系的实践drewz lin
 
91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOpsAndrew Wu
 
The way to continuous delivery
The way to continuous deliveryThe way to continuous delivery
The way to continuous deliveryQiao Liang
 
Top100summit automan x之框架介绍 王超
Top100summit automan x之框架介绍 王超Top100summit automan x之框架介绍 王超
Top100summit automan x之框架介绍 王超drewz lin
 
持续集成之代码度量模型与应用
持续集成之代码度量模型与应用持续集成之代码度量模型与应用
持续集成之代码度量模型与应用drewz lin
 
互联网持续交付整形记
互联网持续交付整形记互联网持续交付整形记
互联网持续交付整形记Ryan YU
 
持续集成中的六步提交
持续集成中的六步提交持续集成中的六步提交
持续集成中的六步提交Qiao Liang
 
QCon - Engineering Productivity in Large Scale Development
QCon - Engineering Productivity in Large Scale DevelopmentQCon - Engineering Productivity in Large Scale Development
QCon - Engineering Productivity in Large Scale DevelopmentVincent Xia
 
QCon - 支持百度万人开发的工具装备及百度工程效率提升实践
QCon - 支持百度万人开发的工具装备及百度工程效率提升实践 QCon - 支持百度万人开发的工具装备及百度工程效率提升实践
QCon - 支持百度万人开发的工具装备及百度工程效率提升实践 Vincent Xia
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松Michael Zhang
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松areyouok
 
广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdf广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdfbj_qa
 
持續交付高品質程式碼 公開版
持續交付高品質程式碼 公開版持續交付高品質程式碼 公開版
持續交付高品質程式碼 公開版Kirk Chen
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介pan weizeng
 
Angular Conf 2018 - 原來 Angular 可以這樣玩設定
Angular Conf 2018 - 原來 Angular 可以這樣玩設定Angular Conf 2018 - 原來 Angular 可以這樣玩設定
Angular Conf 2018 - 原來 Angular 可以這樣玩設定Poy Chang
 
分会场六利用赛门铁克的Sort工具降低风险,提高应用的持续运行时间 中文版
分会场六利用赛门铁克的Sort工具降低风险,提高应用的持续运行时间 中文版分会场六利用赛门铁克的Sort工具降低风险,提高应用的持续运行时间 中文版
分会场六利用赛门铁克的Sort工具降低风险,提高应用的持续运行时间 中文版ITband
 
冉有 支付宝钱包的研发挑战和最佳实践
冉有 支付宝钱包的研发挑战和最佳实践冉有 支付宝钱包的研发挑战和最佳实践
冉有 支付宝钱包的研发挑战和最佳实践Trinea Trinea
 
敏捷测试中的工具实现
敏捷测试中的工具实现敏捷测试中的工具实现
敏捷测试中的工具实现drewz lin
 
未来网络技术发展探梦 - 开篇
未来网络技术发展探梦 - 开篇未来网络技术发展探梦 - 开篇
未来网络技术发展探梦 - 开篇Yao-Wei Ou
 

Similar to Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁) (20)

打造面向服务的敏捷团队 Q con-beijing2012
打造面向服务的敏捷团队 Q con-beijing2012打造面向服务的敏捷团队 Q con-beijing2012
打造面向服务的敏捷团队 Q con-beijing2012
 
Top100summit 宗刚-全生命周期性能评估体系的实践
Top100summit 宗刚-全生命周期性能评估体系的实践Top100summit 宗刚-全生命周期性能评估体系的实践
Top100summit 宗刚-全生命周期性能评估体系的实践
 
91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps91APP: 從 "零" 開始的 DevOps
91APP: 從 "零" 開始的 DevOps
 
The way to continuous delivery
The way to continuous deliveryThe way to continuous delivery
The way to continuous delivery
 
Top100summit automan x之框架介绍 王超
Top100summit automan x之框架介绍 王超Top100summit automan x之框架介绍 王超
Top100summit automan x之框架介绍 王超
 
持续集成之代码度量模型与应用
持续集成之代码度量模型与应用持续集成之代码度量模型与应用
持续集成之代码度量模型与应用
 
互联网持续交付整形记
互联网持续交付整形记互联网持续交付整形记
互联网持续交付整形记
 
持续集成中的六步提交
持续集成中的六步提交持续集成中的六步提交
持续集成中的六步提交
 
QCon - Engineering Productivity in Large Scale Development
QCon - Engineering Productivity in Large Scale DevelopmentQCon - Engineering Productivity in Large Scale Development
QCon - Engineering Productivity in Large Scale Development
 
QCon - 支持百度万人开发的工具装备及百度工程效率提升实践
QCon - 支持百度万人开发的工具装备及百度工程效率提升实践 QCon - 支持百度万人开发的工具装备及百度工程效率提升实践
QCon - 支持百度万人开发的工具装备及百度工程效率提升实践
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松
 
广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdf广告技术部自动化测试介绍.pdf
广告技术部自动化测试介绍.pdf
 
持續交付高品質程式碼 公開版
持續交付高品質程式碼 公開版持續交付高品質程式碼 公開版
持續交付高品質程式碼 公開版
 
美团前端架构简介
美团前端架构简介美团前端架构简介
美团前端架构简介
 
Angular Conf 2018 - 原來 Angular 可以這樣玩設定
Angular Conf 2018 - 原來 Angular 可以這樣玩設定Angular Conf 2018 - 原來 Angular 可以這樣玩設定
Angular Conf 2018 - 原來 Angular 可以這樣玩設定
 
分会场六利用赛门铁克的Sort工具降低风险,提高应用的持续运行时间 中文版
分会场六利用赛门铁克的Sort工具降低风险,提高应用的持续运行时间 中文版分会场六利用赛门铁克的Sort工具降低风险,提高应用的持续运行时间 中文版
分会场六利用赛门铁克的Sort工具降低风险,提高应用的持续运行时间 中文版
 
冉有 支付宝钱包的研发挑战和最佳实践
冉有 支付宝钱包的研发挑战和最佳实践冉有 支付宝钱包的研发挑战和最佳实践
冉有 支付宝钱包的研发挑战和最佳实践
 
敏捷测试中的工具实现
敏捷测试中的工具实现敏捷测试中的工具实现
敏捷测试中的工具实现
 
未来网络技术发展探梦 - 开篇
未来网络技术发展探梦 - 开篇未来网络技术发展探梦 - 开篇
未来网络技术发展探梦 - 开篇
 

Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)

  • 1. Scrum Gathering Shanghai 2012 快速可持续 的 高质量发布 - 持续交付案例分享 路宁 luning.tw@gmail.com weibo@路宁同学
  • 2. 集成,测试和 部署的消耗低 快速可持续 的 高质量发布 市场需要 BUG少 就发布
  • 3. C++产品线,100+人 承担收入,更新频繁 项目小,且多 测试周期长,Bug排查耗时 项目排队提测,排队上线,内部PK消耗大 合并分支风险大,耗时长
  • 4. ••• ••• ••• ••• ••• 6步代码修改习惯 增加和优化质量保证 构 建 基 ••• 础 鼓励集成的 CI 分支管理策略 ••• ••• ••• 环 境 ••• 自动化提测 自动化上线 在目标分支运行已 有的自动化测试 个体技能提升 (单测, 重构, Code Review, 每天一次Check In)
  • 5. 6步代码修改习惯 增加和优化质量保证 构 建 基 鼓励集成的 础 分支管理策略 用脚本测试 CI ••• 环 境 自动化提测 自动化上线 在目标分支运行已 有的自动化测试 个体技能提升 (单测, 重构, Code Review, 每天一次Check In)
  • 6.
  • 7.
  • 8. DB
  • 9. ❶ 开发基于Python的测试工具,用 Python脚本写测试 ❷ 测试工具、用例及数据与生产代码 做同源版本管理 ❸ 测试环境标准化,每个人都能运行 所有测试
  • 10. 6步代码修改习惯 单分支+功能 增加和优化质量保证 构 开关 建 基 鼓励集成的 础 分支管理策略 CI 环 境 自动化提测 自动化上线 在目标分支运行已 有的自动化测试 个体技能提升 (单测, 重构, Code Review, 每天一次Check In)
  • 11. P1 R1 P2 R2 P3 R3 特性分支
  • 12. P1 P3 P2 P4 R1 R2 单分支 + 规律性发布
  • 16. F1 F7 F1 F1 F3 F1 F7 F8 F9 F8 F3 F9 R1 R2 A R2 B F4 F4 F5 F6 F5 F10 F1I F12 F6
  • 17. 6步代码修改习惯 增加和优化质量保证 构 建 基 编译和测试加速 鼓励集成的 础 分支管理策略 CI 环 境 自动化提测 自动化上线 在目标分支运行已 有的自动化测试 个体技能提升 (单测, 重构, Code Review, 每天一次Check In)
  • 18.
  • 19. 25min 代码和测 试增加 应用编译集群 分布式编译 16min - discc 测试加速 优化编译依赖 9min 应用编译缓存 10min - ccache 7min
  • 20. Dev OP SVN 产品库 编译集群 产品线构建集群
  • 21. Check6步代码修改习惯 In触发 增加和优化质量保证 构 的性能测试 建 基 鼓励集成的 础 分支管理策略 CI 环 境 自动化提测 自动化上线 在目标分支运行已 有的自动化测试 个体技能提升 (单测, 重构, Code Review, 每天一次Check In)
  • 22. ? 通过Branch隔离 通过Check In隔离
  • 25. 基于Check In的 6步代码修改习惯 性能测试 增加和优化质量保证 构 建 基 鼓励集成的 础 分支管理策略 测试Pipeline CI 环 境 自动化提测 自动化上线 在目标分支运行已 有的自动化测试 个体技能提升 (单测, 重构, Code Review, 每天一次Check In)
  • 28. 基于Check In的 6步代码修改习惯 性能测试 增加和优化质量保证 构 建 基 鼓励集成的 础 分支管理策略 CI 测试Pipeline 环 境 测试 自动化提测 自动化上线 在目标分支运行已 有的自动化测试 前移 个体技能提升 (单测, 重构, Code Review, 每天一次Check In)
  • 29. RB Trunk Local Test RB Trunk RB Trunk Test Trunk RB Test
  • 30. NEW -> RB-READY -> RB-TESTING -> ONLINE
  • 31. 基于Check In的 6步代码修改习惯 性能测试 增加和优化质量保证 构 建 基 鼓励集成的 础 分支管理策略 CI 测试Pipeline 环 境 测试 自动化提测 自动化上线 在目标分支运行已 有的自动化测试 前移 Remote Personal Test 个体技能提升 (单测, 重构, Code Review, 每天一次Check In)
  • 33. 6步代码修改习惯 自动创建Release 增加和优化质量保证 构 Branch并建Job 建 基 鼓励集成的 础 分支管理策略 CI 环 境 自动化提测 自动化上线 在目标分支运行已 有的自动化测试 个体技能提升 (单测, 重构, Code Review, 每天一次Check In)
  • 34. 6步代码修改习惯 增加和优化质量保证 通过脚本实现自动化 构 建 基 鼓励集成的 础 分支管理策略 CI 环 境 自动化提测 自动化上线 在目标分支运行已 有的自动化测试 个体技能提升 (单测, 重构, Code Review, 每天一次Check In)
  • 35.
  • 36. • 配置,数据及部署脚本与源码做同源版本管理 • 上线步骤全部脚本化,通过一条命令运行 • 线上配置的修改与代码一样,需要自动化测试 保证质量 • 与Hudson集成,实现一键上线
  • 37. env/ - base/ - dev/ - test/ - functional/ - query_diff/ - performance/ - production/ - node_base/ - nodes/ - IDC_1 - IDC_2
  • 38. 6步代码修改习惯 增加和优化质量保证 通过脚本实现自动化 构 建 基 鼓励集成的 础 分支管理策略 CI 环 境 签单流程与上线操作 自动化提测 自动化上线 分离 在目标分支运行已 有的自动化测试 个体技能提升 (单测, 重构, Code Review, 每天一次Check In)
  • 39. 8 8 6 QA QA 4 2 2.5 RD RD 0 试点前 试点后 发布周期缩短 人力比下降
  • 41. 谢谢 路宁 luning.tw@gmail.com weibo@路宁同学