Etsy: モバイルアプリの継続的インテグレーション

http://codeascraft.com/2014/02/28/etsys-journey-to-continuous-integration-for-mobile-apps/

1 comment | 0 points | by WazanovaNews 約8時間前 edited


1000
Jshiike 約8時間前 edited | ▲upvoteする | link

EtsyのNassim Kammahが同社のモバイルアプリのCIシステムを紹介しています。

Build

CIマシンはMac Mini + Chef

例えばiOSアプリのビルドはコマンドラインで、xcodebuild -scheme "Etsy" archive

パッケージのインストールはhomebrew cookbook

ruby環境の管理はrbenv cookbook

Xcode(一部手動のテップあり。)/ Git / Androidのパッケージの95%をCIマシンでのビルド & テストに自動インストール。

iOSプロビジョニングファイルをまとめて管理できるようになっている。

CIマシン + Jenkinsサーバで全てのgit pushのビルド作成。エンジニアにはIRC or emailで即フィードバックがくる。

社内向けに日次で最新ビルドを提供している。(社内向けお知らせpush notification)

Test Suite

データはAPI経由で、web viewの画面も多いので、web向けの充実したテストスイート を利用できる。

APIはwebスタックの単体テストとスモークテストで確認。モバイルアプリのコアロジックの多くはUIレイヤなので、機能テストが中心。QAチームがCalabash + Cucumberでテストを書く。

テストの流れは、ユーザ登録 / アイテム探し / カートに入れてプレイペイドのクレカで購入。(ビデオ) テストが完了すると、注文のキャンセルと払戻しが自動で行われる。

デバイスとOSバージョンの組み合わせもテストされ、クラッシュの確認もできる。

機能テスト進捗/結果のダッシュボード

実機テスト用のデバイスは自社管理していたが、AppThwackのサービスに移行した。CIシステムとAppThwackをどううまくつなぎ込むかはこれからの課題。(例えば、200機のデバイスで支払テストを平行稼働させるのに、テストアカウント200個つくるのか?など。)

GitHub pull request builder Jenkins plugin でビルド & 静的コード分析(OCLint )をして、結果をGitHub issueにフィードバックする。(画面)

Mobile CI Infrastructure

構成図


[Feb/2014] ワザノバTop25アクセスランキング


#ios #android #テスト #継続的インテグレーション #自動化

1000
Back