Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20170209 ios/android app_build/test pipeline

1,713 views

Published on

Material of iOS/android app build/test pipeline presentation at CI/CD NIGHT

Published in: Engineering
  • D0WNL0AD FULL ▶ ▶ ▶ ▶ http://1lite.top/C7pT9 ◀ ◀ ◀ ◀
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

20170209 ios/android app_build/test pipeline

  1. 1. Copyright © DeNA Co.,Ltd. All Rights Reserved. iOS/Android App Build/Test pipeline CI/CD NIGHT, February 9, 2017 Masashi Kurita SWET(Software Engineer in Test) Gr. System Management Unit DeNA Co., Ltd.
  2. 2. Copyright © DeNA Co.,Ltd. All Rights Reserved. 自己紹介 ■ 栗田真史 (くりた まさし) ■ 株式会社ディー・エヌ・エー ⁃ 2015/4 - 現在 ■ SWET (Software Engineer in Test) ⁃ 事業サポートチーム • iOS/Androidアプリ開発プロジェクトに参加 2
  3. 3. Copyright © DeNA Co.,Ltd. All Rights Reserved. What’s SWET? ■ SWET (Software Engineer in Test) ⁃ http://www.slideshare.net/masaki/dena-software-engineer-in-test • プロダクト・サービスの品質向上(Product Quality) • エンジニアの開発生産性向上(Engineer Productivity) ⁃ 事業サポートチーム • テスト文化の醸成 ⁃ テスト戦略の策定 ⁃ テスト環境構築(Jenkins構築, テストFW導入 ...etc) • QA/開発プロセス改善 ⁃ テスト基盤チーム • 品質向上につながる仕組みづくり • テスト効率・生産性向上につながる仕組みづくり 3
  4. 4. Copyright © DeNA Co.,Ltd. All Rights Reserved. Agenda 現在ジョインしているiOS/Androidアプリ開発プロジェクトで、「 どんな課題があり」「どんな戦略をたて」「どう実施したか」 について、お話をします。 1.Situation 2.Strategy 3.Implementation 4
  5. 5. Copyright © DeNA Co.,Ltd. All Rights Reserved. 1. Situation 5
  6. 6. Copyright © DeNA Co.,Ltd. All Rights Reserved. プロジェクトにジョインしてから行ったこと ■ どんな課題があるのかを知りたい ⁃ プロジェクトに何らかの課題がある時 • 品質という形で現れる ⁃ 品質面からの現状分析をする ⁃ 改善前後の効果がわかるように • 分析結果を定量化したい ⁃ 定量的に分析するため、何らかのメトリクスをとる 6
  7. 7. Copyright © DeNA Co.,Ltd. All Rights Reserved. 不具合分析 ■ QAで見つかるバグは、どんなものが多いか調査 7
  8. 8. Copyright © DeNA Co.,Ltd. All Rights Reserved. ■配布漏れ ⁃ 現象: QA対象機能が、QA環境に反映されていない ⁃ 原因: 手動デプロイによる作業漏れ ⁃ 対策: PRマージ時に自動デプロイ ■ 実装ミス ⁃ 現象: • 画面項目の表示崩れ • 項目表示漏れ ⁃ 原因: 正常系/準正常系のパターン考慮漏れ・動作確認漏れ ⁃ 対策: UIテストの一部自動化 原因と対策 8
  9. 9. Copyright © DeNA Co.,Ltd. All Rights Reserved. 2. Strategy 9
  10. 10. Copyright © DeNA Co.,Ltd. All Rights Reserved. 対策方針 ■ 配布漏れ ⁃ 自動デプロイ環境の構築 ■ 実装ミス ⁃ 頻繁に変更が入る画面のUI変更検知 ⁃ => 手動リグレッションテストで全て見るのは厳しい • 端末/OSカバレッジ • 対象画面への全遷移パス網羅 ⁃ => UIテストの一部自動化 1 0
  11. 11. Copyright © DeNA Co.,Ltd. All Rights Reserved. 配布漏れ: アプリ自動デプロイパイプライン 1. PRマージ 2. ビルド a. App build b. Signing c. Versioning 3. デプロイ a. Upload to beta distribution service 4. 通知 1 1
  12. 12. Copyright © DeNA Co.,Ltd. All Rights Reserved. UIテストの一部自動化 ■ UI自動テスト実装方針 ⁃ 不具合の多い画面に絞る ⁃ 機能実装後のUI変更を検知 • 意図した変更かどうかを確認できるように ⁃ テストは実機で実行 • 実機固有不具合の検知 1 2
  13. 13. Copyright © DeNA Co.,Ltd. All Rights Reserved. 3. Implementation 1 3
  14. 14. Copyright © DeNA Co.,Ltd. All Rights Reserved. 自動デプロイ環境の構築 1 4 1.Merge PR 2.Trigger Job 3.Build 4.Deploy 5.Notify
  15. 15. Copyright © DeNA Co.,Ltd. All Rights Reserved. UIテストの一部自動化 ■ テスト環境: Jenkins + STF ⁃ STF とは? • Device Farm を構築するためのOSS ⁃ https://github.com/openstf/stf • Open STF Plugin を使うことで、CIでの実機テストが容易に ⁃ https://wiki.jenkins-ci.org/display/JENKINS/Open+STF+Plugin ⁃ SWET のエンジニアが開発 ■ テストFW&ツール: Espresso + Spoon ⁃ Spoon とは? • Espresso でスクリーンショットを取るためのOSS ⁃ https://github.com/square/spoon 1 5
  16. 16. Copyright © DeNA Co.,Ltd. All Rights Reserved. UI自動テスト環境の構築 1 6 1.Merge PR 2.Trigger Job 3.Build 4.Test 5.Notify ・・・
  17. 17. Copyright © DeNA Co.,Ltd. All Rights Reserved. 効果測定 ■不具合分析 1 7
  18. 18. Copyright © DeNA Co.,Ltd. All Rights Reserved. 今後の課題 ■ ビルド間でのスクリーショット差分の自動検出 ■ 差分のJenkinsビルド結果画面での表示 1 8
  19. 19. Copyright © DeNA Co.,Ltd. All Rights Reserved. 宣伝 iOS Test Night #3 3.13 (Mon) @ DeNA, 渋谷ヒカリエ https://testnight.connpass.com/event/49561/ 1 9
  20. 20. Copyright © DeNA Co.,Ltd. All Rights Reserved. 最後に 2 0 ■ SWETグループは人材を募集しております!! ⁃ プロダクト・サービスの品質向上 (Product Quality) ⁃ エンジニアの開発生産性向上 (Engineer Productivity) ⁃ 上記にフォーカスしたい方はぜひ! • (特に)クライアント周りをやりたい方 OpenSTF Jenkins 自動テスト Firebase iOSAndroid Docker CI/CD AWS Device Farm Unity
  21. 21. Copyright © DeNA Co.,Ltd. All Rights Reserved. ご清聴ありがとうございました 2 1

×