3x3 移动app快速迭代与发布
Post on 12-Apr-2017
81 Views
Preview:
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%
总结
产品的快速迭代
全自动化测试环境
高稳定性的编译测试部署系统
Reference工具及机器的稳定性
- https://engineering.linkedin.com/blog/2016/04/3x3--ios-build-speed-and-stability
- https://engineering.linkedin.com/blog/2015/12/test-stability---how-we-make-ui-tests-stable
- https://engineering.linkedin.com/blog/2016/02/3x3--speeding-up-mobile-releases
- https://engineering.linkedin.com/blog/2015/12/managing-ios-continuous-integration-at-enterprise-scale
- http://screenrant.com/guardians-of-the-galaxy-video-interview-vin-diesel/
top related