[iOSDC Japan 2019 リポート]「実機の管理とおさらば!AWS Device FarmでiOSのテストをしよう!」を聞いてきた
こんにちは。きんくまです。iOSDC Japan 2019に参加しています。
セッション「実機の管理とおさらば!AWS Device FarmでiOSのテストをしよう!」を聞いてきました。
発表:アマゾン ウェブ サービス ジャパン株式会社 白山 文彦さん(@fushiroyama)
AWS Device Farmを使うと、自分たちが持っていないバージョンのiOSデバイスでバグが報告された場合もリモートアクセス機能を使ってすぐに動作確認をすることができます。また、CI/CDパイプラインに組み込んで自動テストを実行することも簡単に行なえます。
このセッションではまずDevice Farmを利用するためのステップをひとつずつ分かりやすく紹介します。そして次に、iOSにおける自動テストやUIテストについて説明し、XCTestやXCUITestを実際に実行してテストのイテレーションを回す実例を解説します。
スライド
iOSの自動テストを速習する
テストの基礎
テストの種類
- Unit Test
- Integration Teest
- UI Test
XCTestでのコードやXcodeでのテストの実行方法について
サンプルアプリでは、テストコードが書きにくいため、DIを使って決まった手を出すモックを使う方法を紹介
UIテストについて
AWS Device Farmで自動テスト実行とリモートアクセス
バグの報告があったが、端末が古いため手元にない!
-> AWS Device Farm
- 自動テスト
自動テストを好きな時に好きな数だけクラウド上にで並列実行 -
リモートアクセス
クラウド上の好きな端末の任意のバージョンですぐにリモートで動作確認 -
リモートデバッグ
クラウド上のiOS端末やAndroid端末をローカルのIDEから接続してデバッグ
様々なテストパターンに対応
デバイスタイプ
- パブリックデバイス
- 端末はテスト毎にデータ消去して再起動)
- プライベートデバイス
- 専有デバイス
- デバイスは専有で決して他者と共有されず、契約終了後に破棄
- リモートデバッグ機能が利用可能
早速使ってみよう
- ipaをビルド
- AWSコンソールからipaのアップロード
- Automated Tests
- テスト結果
- テスト時の動画
- Screenshots
- Log
を後から確認することができる
AWS Device FarmとCI/CDツールとの統合
CI/CDツールと連携することで日々のテストを自動化できる
- CircleCIの設定
- AWS Device Farmと連携するfastlaneプラグインが提供されている
- Circle CIに組み込んでAWS Device Farmと連携することができる
- Circle CIコンソール / AWS Device Farmコンソールでテスト結果を確認
感想
前半はテストについてのおさらいだったのですが、大変わかりやすかったです!
後半はAWS上でデバイステストができるAWS Device Farmの紹介でした。
運用・保守をしているときに、古い端末での不具合報告が来ることはあります。そのときに、クラウド上でテストができるのは非常に便利だと思いました。
また、プライベートデバイスではクラウド上の端末に対してリモートデバッグを実行できるというのは驚きました。すごいですね。