きっかけ
Android、iOSそれぞれに特化したシステムテストツールは多数あるのですが、共通で使えるものが無いとやはり保守性が大きく下がる。。。ということで、Android/iOS共通でシナリオを使い回せるツールが欲しい + それらのシナリオ実装言語を共通下したいということで、既に良いツールがあるか探してみました。
また、そのままリリースするモジュールをそのままテストしたいというのもありました。例えば、試験できるけれどリリースビルドとは別のビルドが必要となった場合、リリースしたいビルド自身をテスト・保証することができないためです。
その中で、WebDriverをベースとしたツールであるAppiumを見つけ、まずは使ってみることに。
Appiumとは
- AppiumのWebページは以下
- Githubは以下
Appiumは、専用のテスト用コードをテスト対象のアプリに埋め込んで特別にビルドする必要のない、リリース物をそのまま試験することが可能なテストツールです。なお、WebDriverをもとにした有名どころのモバイル向けテストツールでは ios-driver(http://ios-driver.github.io/ios-driver/)、Selendroid(http://selendroid.io) があります。
ちなみに、WebDriverはブラウザのテスト用APIとして https://dvcs.w3.org/hg/webdriver/raw-file/tip/webdriver-spec.html にて議論されています。それをSeleniumプロジェクトにて実装しているのが、 http://www.seleniumhq.org/projects/webdriver/ です。Seleniumと言われると、おそらくは”Webブラウザから試験を行う”という場合、有名どころのテストツールではないでしょうか。
Appiumのよいとこ
AppiumはシナリオをPythonだけではなく、Rubyをはじめとした複数言語にて記述可能ですので、各々の開発環境を鑑み、メンテナンス性を考慮した言語にて保守することができます。私はRubyをメインとし、RSpecやTurnipを使いシナリオを記述、結果の集計を行おうかなと思っています。
また、appiumはRubyのラッパーをライブラリとして提供しているのですが、モバイル以外でSeleniumを使ううえで、シナリオを部分的にでも共通化したい場合なんかは、あえてそのラッパー使わないでおくとシナリオの共通化できそうですね。
Selenium3を開発するうえで、iOS-driver、selendroid、appiumはそれぞれ協調し、互換性も考慮するというような内容もGoogleGroupでは投稿されており、今後もそれらの開発に寄与することで長期的なツールの利用が期待されます。
Appiumの欠点?
まだ使い始めたばかりなので、利点/欠点もあまり把握はしていないのですが、現段階ではAppiumは日本語による資料はかなり限られています。なので、英語苦手な方にはそのぶん座敷が高いかもしれません。
また、Rubyのような開発言語を学んでいないテスターさんからすると、Seleniumに比べるとシナリオを記録・コードとして出力するようなツールはあまり整備されていないので、座敷は高いかもしれません。
※テストエンジニアと名乗る方々ですと、おそらく何らかの言語にてテスト自動化とかされているかと思いますのでそんなに座敷は高くないのではと思います。
そもそも
ここまでAppiumをざっと書きましたが、そもそも、どのようなテスト計画/戦略をたて、どのような観点からの試験を行うのか?という全体像、その中でこのAppiumを使い何を試験したいのかということを決められていないと、単なる使ってみました程度になるので、実際の業務に使うさいはお気をつけ下さい。
ひとまず、これから
- Appiumを使うまでのセットアップ
- AppiumをiOSシミュレータで使う
- AppiumをAndroidシミュレータで使う
- AppiumのシナリオをRSpecで少し触ってみる
という感じで話しをまとめていこうと思います。(明日以降
1 Comment