LoginSignup
27
25

More than 5 years have passed since last update.

UIテスト自動化ツール

Last updated at Posted at 2016-09-14

今回調査した自動化ツールまとめ

  • XCUITest
  • Earl Grey
  • appium
  • KIF

XCUITest

Xcode7から利用できるようになったデフォルトツール

XCTestを拡張し、さらにはAccessibilityの機構を使うことができる

メリット

アプリケーションと同じ言語で書かれている(swift)

テストステップ毎にスクリーンショットを自動で撮影してログに残してくれる

シミュレータを操作してテストコードを生成することもできる(UI Recoding)

sleep/waitの処理を書かなくてもある程度はやってくれる(3回tryしてくる)

Xcode内に統合されているため導入が簡単

シュミレーターでのUIテストは結構はやい

デメリット

レコーディングで作成したコードだけでは完璧なUIテストはできない

XCUIElementTypeではないUIオブジェクトは扱えない

長い通信状態が発生する場合ではsleep/wait処理を書かなくてはいけない

任意のタイミングでスクリーンショットが取れない

任意のタイミングでスクリーンショットを撮りたいのであればfastlane/snapshotで補完する方がいい

fastlane/snapshotではスクリーンショットを一覧するためのHTMLファイルも作成してくれる

snapshot runで実行が簡単である

Earl Grey

Google製のiOS自動テストフレームワーク
https://github.com/google/EarlGrey

メリット

Cocoapodによるインストールで使えるので導入が簡単

Xcode内に統合できる

UI automationを簡単に書けるようにしているのでAccessinility Identifierによる認識ができる

GithubでのEarlGreyのドキュメントが結構充実している

テストはUIと対話する前のアニメーションや、ネットワーク接続などのイベントを自動的に待機しする。

この際、特にスリープなどを書く必要がないため、テストコードはシンプルになる。

デメリット

長い通信状態が発生する場合ではsleep/wait処理を書かなくてはいけない

任意のタイミングでスクリーンショットが取れない

accessibilityIDで要素を取得しているので内部コードを変更しなくてはいけない

Recording機能がないので最初から全て自分で書かなくてはならない

Appium

オープンソースのテスト自動化フレームワーク
https://github.com/appium/appium

メリット

お気に入りの言語(rubyやpythonなど)でテストがかける

iOSとAndroidでテストコードを共通化できる

シミュレータを操作してテストコードを生成するRecording機能が使える

Appium自体はHttpServerであり、iOSの場合はこのサーバーからInstrumentsを経由してクライアント(端末側)を操作しているので、テストするアプリに全く手を加えなくていい

デメリット

appiumの導入は他のUIテストツールも多少時間がかかる

iOS開発言語であるswiftでテストコードが書けない

Recording機能でのテストコードの作成がかなり遅い

KIF

Squareが開発しているiOSテスト自動化フレームワーク

メリット

SwiftとObject-Cでテストコードが書ける

CocoaPodsによるインストールで使えるので導入が簡単である

開発者自身で操作の定義をすることもできる

デメリット

accessibilityIDで要素を取得しているので内部コードを変更しなくてはいけない

Swiftでも書けるがSwiftの文献がかなり少ない

参考文献

http://qiita.com/dreamagicjp/items/d48fc2be16b8e04937d4
http://qiita.com/IsaoTakahashi/items/f9c3ef367d7e0f60e2d6
http://www.slideshare.net/kenichitatsuhama/appium-ios-android-ui

27
25
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
25