Scrum gathering 2012 shanghai_...

41
路宁 [email protected] weibo@路宁同学 快速可持续 高质量发布 - 持续交付案例分享 Scrum Gathering Shanghai 2012

Transcript of Scrum gathering 2012 shanghai_...

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

路宁 [email protected] weibo@路宁同学

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

Scrum Gathering Shanghai

2012

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

快速可持续 的 高质量发布市场需要就发布

集成,测试和部署的消耗低

BUG少

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

测试周期长,Bug排查耗时 项目排队提测,排队上线,内部PK消耗大

合并分支风险大,耗时长

C++产品线,100+人 承担收入,更新频繁 项目小,且多

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

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

增加和优化质量保证

自动化提测

构 建 基 础 CI 环 境 自动化上线

6步代码修改习惯

在目标分支运行已有的自动化测试

•••

鼓励集成的 分支管理策略

•••

•••

••• •••

••• ••• ••••••

•••

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

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

增加和优化质量保证

自动化提测

构 建 基 础 CI 环 境 自动化上线

6步代码修改习惯

鼓励集成的 分支管理策略

•••

在目标分支运行已有的自动化测试

用脚本测试

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

DB

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

❶ 开发基于Python的测试工具,用

Python脚本写测试 ❷

测试工具、用例及数据与生产代码做同源版本管理

测试环境标准化,每个人都能运行所有测试

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

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

增加和优化质量保证

自动化提测

构 建 基 础 CI 环 境 自动化上线

6步代码修改习惯

在目标分支运行已有的自动化测试

鼓励集成的 分支管理策略

单分支+功能开关

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

P1

P2

P3R3

特性分支

R1

R2

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

P1

P2

P3

P4

R1 R2

单分支 + 规律性发布

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

特性开关 配合 单分支开发

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

声明

使用

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

避免使用特性开关的 双分支开发

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

R2

R2 A

B

F5 F6

F1 F3F1

F4

F8F7 F9

F1IF10 F12F5

F6

F4

R1

F1

F1

F3 F9

F7

F8

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

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

增加和优化质量保证

自动化提测

构 建 基 础 CI 环 境 自动化上线

在目标分支运行已有的自动化测试

鼓励集成的 分支管理策略

6步代码修改习惯

编译和测试加速

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

25min

9min

16min

10min7min

分布式编译 - discc

测试加速 优化编译依赖

代码和测试增加

应用编译缓存 - ccache

应用编译集群

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

SVN

产品库

OP

编译集群

产品线构建集群

Dev

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

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

自动化提测

构 建 基 础 CI 环 境 自动化上线

在目标分支运行已有的自动化测试

鼓励集成的 分支管理策略

6步代码修改习惯增加和优化质量保证Check In触发

的性能测试

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

?

通过Branch隔离 通过Check In隔离

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

Pre-performance提供性能的快速反馈

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

开关常开方案确保Hudson在Trunk上的性能测试能够测到新功能

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

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

自动化提测

构 建 基 础 CI 环 境 自动化上线

在目标分支运行已有的自动化测试

鼓励集成的 分支管理策略

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

基于Check In的性能测试

测试Pipeline

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

在构建集群中的测试Pipeline

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

依赖持续集成平台运行测试功能集成,性能,大数据对比测试

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

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

自动化提测

构 建 基 础 CI 环 境 自动化上线

在目标分支运行已有的自动化测试

鼓励集成的 分支管理策略

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

基于Check In的性能测试

测试Pipeline

测试 前移

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

Local Test

Trunk

RB

Trunk Test

RB

Trunk

RB Test

Trunk

RB

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

NEW -> RB-READY -> RB-TESTING -> ONLINE

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

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

自动化提测

构 建 基 础 CI 环 境 自动化上线

在目标分支运行已有的自动化测试

鼓励集成的 分支管理策略

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

基于Check In的性能测试

测试Pipeline

测试 前移 Remote

Personal Test

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

local testDev能随时针对本地代码发起运行于构建集群中的性能测

试,功能集成测试和大数据对比测试

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

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

构 建 基 础 CI 环 境 自动化上线

在目标分支运行已有的自动化测试

鼓励集成的 分支管理策略

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

自动化提测

自动创建Release Branch并建Job

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

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

构 建 基 础 CI 环 境

在目标分支运行已有的自动化测试

鼓励集成的 分支管理策略

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

自动化提测 自动化上线

通过脚本实现自动化

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

•配置,数据及部署脚本与源码做同源版本管理

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

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

•与Hudson集成,实现一键上线

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

env/ - base/ - dev/ - test/ - functional/ - query_diff/ - performance/ - production/ - node_base/ - nodes/ - IDC_1 - IDC_2

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

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

构 建 基 础 CI 环 境

在目标分支运行已有的自动化测试

鼓励集成的 分支管理策略

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

自动化提测 自动化上线

通过脚本实现自动化

签单流程与上线操作分离

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

0

2

4

6

8

试点前 试点后

2.5

8

发布周期缩短 人力比下降

QA

RD

QA

RD

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

还有问题,还没结束

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

谢谢

路宁 [email protected] weibo@路宁同学