20170209 ios/android app_build/test pipeline
-
Upload
masashi-kurita -
Category
Engineering
-
view
869 -
download
2
Transcript of 20170209 ios/android app_build/test pipeline
Copyright © DeNA Co.,Ltd. All Rights Reserved.
iOS/Android App Build/Test pipeline
CI/CD NIGHT, February 9, 2017
Masashi KuritaSWET(Software Engineer in Test) Gr.System Management UnitDeNA Co., Ltd.
Copyright © DeNA Co.,Ltd. All Rights Reserved.
自己紹介■ 栗田真史(くりたまさし)■ 株式会社ディー・エヌ・エー
⁃ 2015/4 - 現在■ SWET (Software Engineer in Test)
⁃ 事業サポートチーム• iOS/Androidアプリ開発プロジェクトに参加
2
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
Copyright © DeNA Co.,Ltd. All Rights Reserved.
Agenda
現在ジョインしている iOS/Androidアプリ開発プロジェクトで、「どんな課題があり」「どんな戦略をたて」「どう実施したか」について、お話をします。1.Situation2.Strategy3.Implementation
4
Copyright © DeNA Co.,Ltd. All Rights Reserved.
1. Situation
5
Copyright © DeNA Co.,Ltd. All Rights Reserved.
プロジェクトにジョインしてから行ったこと■どんな課題があるのかを知りたい
⁃ プロジェクトに何らかの課題がある時• 品質という形で現れる
⁃ 品質面からの現状分析をする⁃ 改善前後の効果がわかるように
• 分析結果を定量化したい⁃ 定量的に分析するため、何らかのメトリクスをとる
6
Copyright © DeNA Co.,Ltd. All Rights Reserved.
不具合分析■QAで見つかるバグは、どんなものが多いか調査
7
Copyright © DeNA Co.,Ltd. All Rights Reserved.
■配布漏れ⁃ 現象 : QA対象機能が、 QA環境に反映されていない⁃ 原因 : 手動デプロイによる作業漏れ⁃ 対策 : PRマージ時に自動デプロイ
■ 実装ミス⁃ 現象 :
• 画面項目の表示崩れ• 項目表示漏れ
⁃ 原因 : 正常系 /準正常系のパターン考慮漏れ・動作確認漏れ⁃ 対策 : UIテストの一部自動化
原因と対策
8
Copyright © DeNA Co.,Ltd. All Rights Reserved.
2. Strategy
9
Copyright © DeNA Co.,Ltd. All Rights Reserved.
対策方針■ 配布漏れ
⁃ 自動デプロイ環境の構築■ 実装ミス
⁃ 頻繁に変更が入る画面の UI変更検知⁃ => 手動リグレッションテストで全て見るのは厳しい
• 端末 /OSカバレッジ• 対象画面への全遷移パス網羅
⁃ => UIテストの一部自動化
10
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.通知
11
Copyright © DeNA Co.,Ltd. All Rights Reserved.
UIテストの一部自動化■UI自動テスト実装方針⁃ 不具合の多い画面に絞る⁃ 機能実装後の UI変更を検知
• 意図した変更かどうかを確認できるように⁃ テストは実機で実行
• 実機固有不具合の検知
12
Copyright © DeNA Co.,Ltd. All Rights Reserved.
3. Implementation
13
Copyright © DeNA Co.,Ltd. All Rights Reserved.
自動デプロイ環境の構築
14
1.Merge PR 2.Trigger Job
3.Build
4.Deploy
5.Notify
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
15
Copyright © DeNA Co.,Ltd. All Rights Reserved.
UI自動テスト環境の構築
16
1.Merge PR 2.Trigger Job
3.Build
4.Test
5.Notify・・・
Copyright © DeNA Co.,Ltd. All Rights Reserved.
効果測定■不具合分析
17
Copyright © DeNA Co.,Ltd. All Rights Reserved.
今後の課題■ ビルド間でのスクリーショット差分の自動検出■ 差分の Jenkinsビルド結果画面での表示
18
Copyright © DeNA Co.,Ltd. All Rights Reserved.
宣伝iOS Test Night #33.13 (Mon) @ DeNA, 渋谷ヒカリエ
https://testnight.connpass.com/event/49561/
19
Copyright © DeNA Co.,Ltd. All Rights Reserved.
最後に
20
■ SWETグループは人材を募集しております!!⁃ プロダクト・サービスの 品質向上 (Product Quality)⁃ エンジニアの 開発生産性向上 (Engineer Productivity)⁃ 上記にフォーカスしたい方はぜひ!
• (特に )クライアント周りをやりたい方
OpenSTF
Jenkins
自動テストFirebase
iOSAndroid
Docker
CI/CD
AWS Device Farm
Unity
Copyright © DeNA Co.,Ltd. All Rights Reserved.
ご清聴ありがとうございました
21