3x3 移动app快速迭代与发布

Post on 12-Apr-2017

81 Views

Category:

Internet

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

3x3: 移动App快速迭代与发布

Keqiu Hu

自我介绍

LinkedIn 移动基础设施组

移动(iOS, Android)基础库,工具

持续交付流水线 - 3x3

规模 - iOS150+ 开发人员

20+ App,70+ 库

2000 commits/月 -> 发布

60000 个diff代码提交

4,000,000 行代码 (55% Swift)

3x3 是啥

一天至少部署/交付 3 次

开发人员commit代码到内部发布最多3小时

3x3 之前

移动App: 一个月发布一次

移动服务器端:一周部署一次

3x3 之前

移动App: (> 一个月)发布一次

移动服务器端:(> 一周)部署一次

为什么要3x3快速迭代 A/B测试

确保交付流水线的可靠性

如何达成3x3 手动测试

测试部署全自动化

挑战 1 - 可靠性

单元测试

页面布局测试

情景(UI)测试

页面布局测试

情景(UI)测试

挑战 1 - 可靠性

企业Beta 版本测试

挑战 1 - 可靠性

服务端控制的A/B测试

挑战2 - 速度

编译器

挑战2 - 速度

优化测试框架

挑战2 - 速度

分布式测试

挑战3 - 稳定性

测试框架与基础设施的稳定性

编译发布工具与机器的稳定性

挑战3 - 稳定性

测试框架与基础设施的稳定性

挑战3 - 稳定性

测试框架与基础设施的稳定性

- 更稳定的API

挑战3 - 稳定性

测试框架与基础设施的稳定性

- 稳定的测试套装

99.9%1000 = ?

99% 95% 90% 80% 50%

挑战3 - 稳定性

测试框架与基础设施的稳定性

- 测试质量 = 产品质量

挑战3 - 稳定性

测试框架与基础设施的稳定性

- 测试质量 = 产品质量

Flaky Tests Are Worse Than No Tests

挑战3 - 稳定性

测试框架与基础设施的稳定性

- 代码守卫

挑战3 - 稳定性

工具及机器的稳定性

挑战3 - 稳定性

工具及机器的稳定性

- 机器池守卫

挑战3 - 稳定性

工具及机器的稳定性

- 分布式测试的不稳定性 95% -> 95%10 = 60%

挑战3 - 稳定性

工具及机器的稳定性

- 分布式测试的不稳定性 95% -> 95%10 = 60%

总结

产品的快速迭代

全自动化测试环境

高稳定性的编译测试部署系统

top related