Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
3x3: 移动App快速迭代与发布
Keqiu Hu
自我介绍
LinkedIn 移动基础设施组
移动(iOS, Android)基础库,工具
持续交付流水线 - 3x3
规模 - iOS
150+ 开发人员
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://engineeri...
Nächste SlideShare
Wird geladen in …5
×

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

59 Aufrufe

Veröffentlicht am

3x3 中文

Veröffentlicht in: Internet
  • Als Erste(r) kommentieren

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

  1. 1. 3x3: 移动App快速迭代与发布 Keqiu Hu
  2. 2. 自我介绍 LinkedIn 移动基础设施组 移动(iOS, Android)基础库,工具 持续交付流水线 - 3x3
  3. 3. 规模 - iOS 150+ 开发人员 20+ App,70+ 库 2000 commits/月 -> 发布 60000 个diff代码提交 4,000,000 行代码 (55% Swift)
  4. 4. 3x3 是啥 一天至少部署/交付 3 次 开发人员commit代码到内部发布最多3小时
  5. 5. 3x3 之前 移动App: 一个月发布一次 移动服务器端:一周部署一次
  6. 6. 3x3 之前 移动App: (> 一个月)发布一次 移动服务器端:(> 一周)部署一次
  7. 7. 为什么要3x3 快速迭代 A/B测试 确保交付流水线的可靠性
  8. 8. 如何达成3x3 手动测试 测试部署全自动化
  9. 9. 挑战 1 - 可靠性 单元测试 页面布局测试 情景(UI)测试
  10. 10. 页面布局测试
  11. 11. 情景(UI)测试
  12. 12. 挑战 1 - 可靠性 企业Beta 版本测试
  13. 13. 挑战 1 - 可靠性 服务端控制的A/B测试
  14. 14. 挑战2 - 速度 编译器
  15. 15. 挑战2 - 速度 优化测试框架
  16. 16. 挑战2 - 速度 分布式测试
  17. 17. 挑战3 - 稳定性 测试框架与基础设施的稳定性 编译发布工具与机器的稳定性
  18. 18. 挑战3 - 稳定性 测试框架与基础设施的稳定性
  19. 19. 挑战3 - 稳定性 测试框架与基础设施的稳定性 - 更稳定的API
  20. 20. 挑战3 - 稳定性 测试框架与基础设施的稳定性 - 稳定的测试套装 99.9%1000 = ? 99% 95% 90% 80% 50%
  21. 21. 挑战3 - 稳定性 测试框架与基础设施的稳定性 - 测试质量 = 产品质量
  22. 22. 挑战3 - 稳定性 测试框架与基础设施的稳定性 - 测试质量 = 产品质量 Flaky Tests Are Worse Than No Tests
  23. 23. 挑战3 - 稳定性 测试框架与基础设施的稳定性 - 代码守卫
  24. 24. 挑战3 - 稳定性 工具及机器的稳定性
  25. 25. 挑战3 - 稳定性 工具及机器的稳定性 - 机器池守卫
  26. 26. 挑战3 - 稳定性 工具及机器的稳定性 - 分布式测试的不稳定性 95% -> 95%10 = 60%
  27. 27. 挑战3 - 稳定性 工具及机器的稳定性 - 分布式测试的不稳定性 95% -> 95%10 = 60%
  28. 28. 总结 产品的快速迭代 全自动化测试环境 高稳定性的编译测试部署系统
  29. 29. 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/

×