スライド
20141018 selenium appium_cookpad
発表者
- 松尾和昭さん
- クックパッド株式会社
- テストエンジニア
会場アンケート
参加者の構成について
- テストエンジニア…少数
- 開発者…多数
- マネージャ…なし(?)
Appiumを知っている人?
半数強が知っていた
経緯
- Appiumに関するブログ記事を書いたら、声をかけられた
iOSアプリデザインリニューアルの舞台裏の舞台裏 - クックパッド開発者ブログ
Appiumとは
アプリをテストするということ
- アプリではMVCモデルが採用しづらい
今まで
- 描画テストをする場合、SDK+専用ビルドが必要だった
- リリースビルドと別物
Appniumを導入すると
- リリースビルドでテストが可能に
Appiumは色々な言語に対応
Appiumの良い点
- リリースビルドのテストが可能
- 多彩なツールとの組み合わせが可能
- Appniumはあくまでもアプリ操作部分のみ
- 黒魔術を使う必要がない
- OSの追従もしやすい
Appiumの良くない点
- 実例が少ない
- テスト実行に時間がかかる
- 環境構築が手間
- 社内に広めにくい
Appiumの活用事例
- iOSアプリで実施中
- UI修正も頻繁
- テストレベルはモバイル部分のみ
- 以下の段階全ての工程で利用中
- 企画段階(master branch)
- 開発段階(master branch)
- 検証段階(release branch)
テストケース
- 以下の2つに絞って実施中
- 画面遷移の部分
- レイアウト崩れのチェック
- 100テストケース/1capability
- 1capabilityあたりにかかるテスト時間は1時間
工夫した点
変化に追従できるように責務を分離した
- シナリオ部分…シナリオ自体の変更のみ
- 実装部分…Appniumの実装変更に対応
- Appnium部分…iOS対応などの変更に対応
Appniumに任せるべきところ
- 機械が実行可能な部分
- タップなど
- 人が忘れがちなシナリオ部分
シナリオの統合や作り替え
- 状態依存は行わせない
- 複数の操作を1つのシナリオで内包できるものは内包してテストケース削減
- 他の手段が見つかったシナリオは削除、もしくは操作を限定
成果
- 検証期間中のタスク内容の変化
- 致命的な不具合の検出
- リリースされた後に、クラッシュを検知する頻度が減少した
これからの課題
- iOS8対応
- 他のアプリへの展開
Q&A
テスト環境は実機?シミュレータ?
- シミュレータ。実機にしない理由は面倒だから。
ロケーターはどのように取得している?
- findはXPathごしなので、完全一致では使わないようにしている