品質管理部の仙波です。
自動テストツールShirates開発後記の3回目です。
前回は当社がスマホアプリのテストの自動化に取り組む理由について語りました。 今回はテストを自動化するにあたりドライバーソフトウェアとしてAppiumを採用した経緯について語ります。
製品調査とAppiumの評価
スマホアプリの自動化を始めるにあたり、まずは製品調査を行いました。 オープンソースソフトウェアでAndroidとiOSを両方サポートしているのはAppiumくらいでしたので、まずは使ってみることにしました。 評価にあたってはAppiumのライブラリとしてJava Clientを、テストコードの開発言語はKotlinを使用しました。
気に入ったこと
- オープンソースソフトウェアであり無償で利用できること
- オープンソースソフトウェアにおいてアプリ用テストツールとして最もメジャーであり、Seleniumと同様にコミュニティによってアクティブに開発されていること
- AndroidとiOSを両方サポートし、統一的なAPIで操作できること
- テスト対象アプリに手を加えなくてもXPathを使えば何とか自動化できること
- 画面の要素を調べるツールとしてAppium Inspectorが提供されていること
難点を感じたこと
- Appiumはアプリを操作するドライバーであり、テストコード作成にあたってはドライバーを操作するための抽象度が低いプログラミングを行う必要があること
- 包括的なテストツールではなく、テスト結果のログ、テスト結果の集計、レポートの機能が存在しないこと
- 作成したテストコードを一読してもどのようなテストシナリオなのかを理解することが困難であり、ソースコードコメントに頼らざるを得ないこと
- 要素を取得するためのロケーターが使いにくいこと(これはSeleniumも同じ)
一定期間Appiumを使用してみて上記のような感想を得ました。
普通だと他の製品も評価して星取表を作成し、総合的に優位な製品を選択するのでしょうが、筆者の場合は早々にAppiumの採用を決定しました。
以前Seleniumを利用したときも、Seleniumはあくまでドライバーの機能しか提供していないので、テストで使いやすいように関数を追加作成し、ライブラリ化して利用していました。 今回もライブラリを自前で作成し、自動テストに関する諸々の課題を解決したいと考えていたため、Appiumが提供するドライバーの基本機能で十分でした。
関連記事
こちらの記事もオススメです。 qiita.com