
...いくつかの点で不完全であるという事実にもかかわらず、多くの疑わしい部分が含まれている、または、
いずれにせよ、あからさまに不正確であるため、2つの重要な利点があります。
第一に、それは少し安く、[...]、第二に、そのカバーに、大きい
そして楽しい手紙で、「パニックなし!」という言葉
-銀河ヒッチハイクガイド
こんにちは、Habr!
私の名前はArseny Batyrovです。私はQA Badoo部門で働いており、主にWebアプリケーションの手動テストを行っています。 また、モバイルアプリケーションの手動および自動テストのコースも教えています。
新しいコースを開始する前に、学生にどのツールを教えるべきかを考えました。 私はロシアのインターネットと比較記事を探してインターネットを走らせましたが、奇妙なことに、適切な情報源を見つけることができませんでした。 そして、私は自分で作成することにしました。
私は3つの目標を追求しました:
- AutoTestスタックのツールを分類して、階層と互換性を理解できるようにします。
- 現在市場で人気のあるツールを示します。
- 各タイプの最も人気のあるツールについて話し、それらをいくつかの方法で比較します。
私の仕事の結果は、モバイルアプリケーションを自動テストするための、最も人気があり、最も簡単に学習できるツールのガイドです。
それを使用してください!
- ツールを選択してください- 比較をご覧ください。
- 自動化がモバイルデバイスでどのように機能するかを知りたい場合は、 分類をご覧ください 。
- 昇給を達成したい場合- 人気のツールを習得してください。
内容
免責事項:私はテストの第一人者ではなく、この記事は完全なリストではありません。 間違いを見つけたり、ガイドブックを補足したい場合は、コメントを歓迎します-そこからすべての有用な情報を間違いなく入手できます。アプリケーションとテスト
まず、ツールがどのように機能するかを理解しましょう。
自動化スタックの一部ではない、私たちにとって重要な2つのエンティティがあります。このアプリケーションとテストです。 すべての自動化ツールがアプリケーションにアクセスします。 GUI、API、ネットワークインターフェイス、CLI、その他のインターフェイスを介して、ユーザーや他のアプリケーションとやり取りします。
API (アプリケーションプログラミングインターフェイス)-他のプログラムと対話するためのメインインターフェイス。
GUI (グラフィックユーザーインターフェイス)-ユーザーとの対話に使用されるグラフィカルインターフェイス。
ネット (ネットワークインターフェイス)-ネットワークを介して機能し、上級ユーザーとプログラムの両方で使用されます。
テストでは、これらすべてのインターフェイスを使用して、アプリケーションと対話できます。 手動テストでは、テスターはテストとアプリケーションの間の仲介者です。テストケースのテキストを、アプリケーションインターフェイスの1つを使用したアクションに変換します。
自動化を行うには、テスターを1つ以上のアプリケーションインターフェイスと対話できるツールに置き換える必要があります。 また、一連のテストを実行して形成するためのユーティリティも必要になります。
これらのツールはすべて、セルフテストスタックと呼ばれます。 それらがスタック上でどのように相互作用するかを理解するには、それらを分類する必要があります。 提示された分類は条件付きであり、主にツールとその互換性を理解するために必要です。
ドライバー、アドオン、フレームワーク、コンバインの合計4つのツールグループがあります。 それらをより詳細に検討しましょう。
ツール分類
運転手
自動テストユーティリティは、他のプログラムと同様に、プログラムインターフェイスを介してのみアプリケーションと対話できます。他の方法はわかりません。 他のインターフェイスを介して作業するために、特別なプログラム-ドライバーがあります。
ドライバーは、アプリケーションインターフェイスの1つにAPIを提供するプログラムです。実際にはAPIを除く各インターフェイスに対して、独自のドライバーが必要です。 たとえば、GUIコマンド「Press the Menu Button」のドライバーを指定すると、ドライバーはAPIを介してそれを認識し、テスト対象のアプリケーションに送信します。 アプリケーションAPIと対話するには、ドライバーは必要ないか、ほとんど必要ありません。対話はソフトウェアです。 しかし、他のインターフェースを使用する場合、それらなしではできません。
このインターフェイスは通信プログラムの通常のコードとは非常に異なるため、GUIのドライバーは通常最も複雑です。 同時に、モバイルアプリケーションの自動テストでは、GUIが最も関連性が高くなります。これは、GUIを統合テストで使用する必要が最も多いためです。 モバイルテストでのGUIの最も一般的なドライバーは、Android用の
UIAutomatorと
Espresso 、iOS用の
XCUITestです。
アドイン
ドライバーの機能が十分でない場合、または不便で複雑な場合、別のレベルが表示されます。これをアドオンと呼びます。
アドインは、1つまたは複数のドライバーを介してアプリケーションと対話し、使いやすさを向上させたり機能を拡張したりするプログラムです。アドインには次の機能があります。
- 動作の変更(APIを変更せずに)。
例:
- 追加のロギング
- データ検証
- アクションが一定時間完了するのを待っています。
- 以下を介して、API抽象化のユーザビリティおよび/またはレベルを改善します。
- 構文糖の使用-便利な関数名、それらへの短い呼び出し、テストを書く統一されたスタイル。
- たとえば、自動的に初期化される場合の暗黙的なドライバー制御。このような各アクションを手動で登録する必要はありません。
- カレンダーからイベントを選択する、スクロールリストを操作するなどの複雑なコマンドを簡素化する
- 手続き型や流fluentなどの代替プログラミングスタイルの実装。
- ドライバーAPIの統合。
ここで、アドインは、複数のドライバーを同時に操作するための単一のインターフェイスを提供します。 これにより、たとえば、人気のあるAppiumアドインと同様に、iOSとAndroidのテストに同じコードを使用できます。
枠組み
テストの反対側には、起動フレームワークがあります。 この記事では、まもなく「フレームワーク」と呼びます。
フレームワークは、テストスイートの起動結果を生成、起動、および収集するためのプログラムです。フレームワークのタスクは次のとおりです。
- 一連のテストの形成、グループ化、整理、
- セットの並列化(オプション)、
- 器具の作成
- 実行中のテスト
- 実装の結果のコレクション、
- パフォーマンスレポートの生成(オプション)。
これらの機能は、モバイルアプリケーションのみのテストに関連するものではないことに気付くかもしれません。デスクトップアプリケーションやWebアプリケーションのテストにも使用できます。 実際には、フレームワークはテストとアプリケーションの相互作用を保証すべきではありません-テストでのみ機能し、アプリケーションの種類は重要ではありません。
ドライバとアドオンがテストとアプリケーションの間にある場合、フレームワークはテストの上にあり、それらの起動を整理します。 したがって、「ドライバー」と「フレームワーク」の概念を混同しないことが重要です。 もちろん、一部のフレームワークにはアプリケーションを操作するための独自のドライバーがありますが、これは前提条件ではありません。 最も注目すべきモバイルテストフレームワークは
xUnitと
Cucumberです。
収穫機
最後に、モバイルアプリケーションのテストを自動化するために使用されるユーティリティの別のグループは、フレームワークとドライバー(モバイルのものだけでなく)と開発機能を組み合わせた組み合わせです。
Xamarin.UITest 、
Squish 、
Ranorex-これらはすべて、iOSアプリケーション、Androidアプリケーション、Webアプリケーション、および最後の2つのデスクトップアプリケーションのテスト自動化をサポートしています。
そのため、ツールを分類しました。 各カテゴリで最も人気のあるものを決定し、それらを比較することは残っています。
世論調査
最もよく使用されているユーティリティを特定するために、QAエンジニア向けにいくつかのサイト、コミュニティ、チャネルでアンケートを実施し、3つの簡単な質問をしました。 さまざまな種類のツールを選択する必要がないように、回答オプションの数を制限しませんでした。 独自のバージョンを追加することもできました。これは、分類に適合しないさまざまなユーティリティからかなり長い「テール」が表示される方法です。 結果は統計的に正確なふりをするものではありませんが、2018年1月現在のモバイルアプリケーションテスト自動化業界の傾向を完全に示しています。



結果からわかるように、主要な位置はWebDriverベースのユーティリティである
Appiumおよび
Seleniumによって占められています。 フレームワークの中で最も人気のあるのは
JUnitと
Cucumberで、2番目のフレームワークはより人気があります-これは驚くべきことです。 どのプラットフォームでも、公式ドライバーは非公式ドライバーよりも人気があります-明らかに、サードパーティ製品よりも高品質のサポートとより多くの機能があるためです。
最もよく使用される3つのプログラミング言語は、
Java 、
Python 、
Ruby (Javaが大幅にリードしています)のように見えます。 Cucumberの人気に関連するトップ3へのRubyのエントリー。
最後に、プラットフォーム別の配信が非常に期待されています-Androidは
iOSよりもかなりマージン
が先で、
モバイルWebがそれに続き
ます 。 前回の調査でWindows用のデスクトップアプリケーションに関する回答のみが驚かれましたが、一部のハーベスターはモバイルアプリケーションとデスクトップアプリケーションを同時にテストできます。
ツールの人気を扱った後、最も重要なものの比較に進みます。 各タイプについて、それに関連するツールの機能の比較表が最初に提供されます。 各機器について最も関連性が高く信頼性の高い情報を収集しようとしましたが、何か見落としていました。 そのため、説明に突然エラーが見つかった場合は、コメントに必ず書いてください。
ツール比較
ドライバー

モバイルテストのドライバーはほとんどなく、多くの場合、オペレーティングシステムと同じ会社によって開発されています。 Androidには、
現在バージョン2.0の
UIAutomatorと
Espressoの 2つの公式ドライバーがあります。 どちらも、Googleが開発し、十分に文書化されたAndroid Testing Support Libraryの一部です。 それらに加えて、サードパーティ企業によって開発されたプロジェクト
Robotiumおよび
Selendroidがあります。 4つの製品はすべて、Android Instrumentation Framework(Androidがシステムと対話するために提供する基本API)で何らかの形で機能します。
まず、Googleのドライバーを見てみましょう。 どちらのツールもWebViewとハイブリッドアプリケーションで動作し、JavaとKotlinでの開発をサポートし、エミュレーターと実際のデバイスの両方で動作します。
UIAutomator
UIAutomatorは、APIレベル18(Android 4.3)以降のAndroidバージョンをサポートします。 プロジェクトにコードを実装する必要はありません。つまり、コンパイル済みのアプリケーションと対話できます。 さらに、UIAutomatorを使用する場合、Androidシステムの機能を完全に使用できます。たとえば、ジオロケーションをオンにし、システムアプリケーションを呼び出し、デバイスをオンにし、ホームボタンを押すか、スクリーンショットを撮ります。 したがって、このツールは、単独で、またはアドオンとともに、機能的なエンドツーエンドのテストによく使用されます。
UIAutomatorにはテスト用の独自のレコーダーはありませんが、エミュレーターまたは実際のデバイスで実行されているアプリケーションの要素に関するデータを取得し、これらの要素のロケーターを表示できるUI Automator Viewerユーティリティがあります。 すべての要素の階層構造がすぐに表示され、テストでそれらを使用するのに非常に便利です。
エスプレッソ
エスプレッソは、ホワイトボックステスト向けに開発されたもので、開発者向けのツールとして作成されました。 APIレベル10(Android 2.3.3)以降の古いAPIをサポートしていますが、実行するにはソースコードへのアクセスが必要です。 したがって、エスプレッソは他のアプリケーションやAndroidシステムと独立して動作することはできません。 ただし、このツールにはレコーダーがあり、これを使用して単純なスクリプトを記録し、自動化の初期段階で使用できます。
一般に、システムとの相互作用を考慮せずにアプリケーションのみをテストする必要があり、ソースを操作する意欲と能力がある場合は、Espressoを使用することをお勧めします。 さらに、テストとアプリケーションUIの自動同期などの便利な機能が実装されており、さまざまな待機コマンドを作成することはできません。
他の機能またはシステム機能と組み合わせてアプリケーションをテストする必要があり、アクセスが.apkのみである場合は、UIAutomatorを選択します。
ところで、これらのツールは同じライブラリの一部であるため、一緒に使用できます。 1つのテストでも、両方のツールのコマンドを組み合わせることができます。
セレンドロイドとロボティウム
SelendroidとRobotiumは両方とも、公式ドライバーが登場する前にリリースされ、現在も存在しています。
Robotiumは、APIレベル8以降のAndroid APIバージョンをサポートし、APIレベル15以降のWebViewで動作します。Selendroidは、APIバージョンの限定リスト(10〜19)で動作します。エミュレータおよび実際のデバイスでの作業をサポートします。 Robotiumの場合、テストはJavaで作成する必要があり、SelendroidはWebDriverプロトコルをサポートしているため、ほとんどすべての一般的なプログラミング言語を使用できます。
SelendroidにはInspectorユーティリティがあり、これを使用して要素の階層を表示し、簡単な記録と再生のテストを記録できます。 Robotiumは、IntelliJ IDEAおよびAndroid Studioに同様の機能を備えたRobotium Recorderプラグインを提供します。
一般に、これらのツールの開発はGoogleのドライバーよりも活発に行われておらず、対象者ははるかに限られています。 それにもかかわらず、調査結果は、一部の企業がまだそれらを使用していることを示しています。
XCUITest
iOSでは、UIAutomationドライバーがアプリケーションとの対話に長時間使用されましたが(とりわけAndroidドライバーの名前との類似性により混乱を引き起こしました)、iOS 10以降、Appleはこのドライバーのサポートを停止し、代わりにXCTestパッケージのXCUITestドライバーが表示されました。
バージョン9.0以降のiOSをサポートし、そのテストはObjective-C言語とSwift言語、およびアプリケーション自体で記述されています。 アプリケーションをテストするために、そのコードにアクセスする必要はありません。Xcode9以降、ドライバーはシステムアプリケーションを含む複数のアプリケーションを同時にテストできます。 「そのまま」XCUITestを使用すると、シミュレータでのみテストを実行できますが、一部のサードパーティユーティリティを使用して、実際のデバイスで動作させることができます。
XCUITestには、Xcodeインターフェイスに直接組み込まれた独自のレコーダーがあります。 これを使用すると、単純なUIテストを記録できるだけでなく、UI要素とそのプロパティを見つけることができます。

アドオン

アピウム
Appiumは、今日最も有名なアドインです。 システムのプラットフォーム、タイプ、バージョンにほとんど関係なく、アプリケーションをテストできます。 もちろん、このアプローチにはいくつかの重要な長所と短所があります。
Appiumは、モバイルだけでなく多くのドライバーをサポートしています。
- iOS
- XCUITest
- (非推奨)UIAutomation
- Android
- (ベータ)エスプレッソ
- UIAutomator 2.0
- (非推奨)UIAutomator
- (非推奨)Selendroid
- Windowsドライバー(デスクトップWindowsアプリケーション用)
- Macドライバー(デスクトップMacアプリケーション用)
このようなさまざまなドライバーのサポートは、かなり興味深い方法で実装されています。Appiumは、Selenium WebDriverで誰もが知っているバージョンのWebDriverインターフェースを使用します。 また、サポートされている多数のプラットフォームに加えて、このアプローチには他の利点もあります。
- WebDriverをサポートする任意の言語でテストを作成する機能(およびこのリストには、ほとんどすべての一般的なプログラミング言語が含まれます)。 さらに、これにより、アプリケーションに「ネイティブ」言語を使用することからテストを「アンティ」できます。 XCUITestでのテストはXcodeでのみ記述できるため、これはiOSに最も関連しています。 この場合、Appiumでは、任意の言語と便利な開発環境を使用できます。
- ハイブリッドおよびWebアプリケーションのテストへの簡単な移行:WebDriverプロトコルはすでに(ほぼ)Web自動化の標準になっています。
- テストフレームワークの使用-ほとんどすべてのテストフレームワークは、何らかの形でWebDriverプロトコルと連携できるため、Appiumへの接続に問題はありません。
- アプリケーションコードに何かを追加する必要はありません。コードにアクセスする必要のないプラットフォームごとにドライバーが使用されます。 これは、展開の容易さに加えて、特別なテストアセンブリではなく、ユーザーに表示されるアプリケーションのビルドを正確にテストできることを意味します。
モバイルアプリケーションのサポートに関心があるため、UIAutomator 2.0、Selendroid、およびXCUITestドライバーの実装について詳しく見ていきましょう。
最も簡単なものはUIAutomator 2.0で、Appiumはこれと直接やり取りし、必要なコマンドを渡します。 Android 5.0以降のバージョンで動作します。 4.2から5.0では、UIAutomator 1を使用でき、既知のSelendroidドライバーによって古いバージョンとの対話が提供されます。 XCUITestと対話し、いくつかの制限を回避するために、FacebookのWebDriverAgent(WDA)が使用されます。 WDAはシミュレータまたは実デバイスのコンテキストで実行され、XCUITest APIを介してコマンドを渡します。
Appiumの短所は、そのメリットに由来します。
- アドイン自体のコードのエラーのため、テストはネイティブドライバー用に作成されたテストよりも頻繁に中断します。 これは特にiOSに当てはまります。WDAがそこに追加されているためです。
- Appiumは、アプリケーションで写真を見つけて比較することも、Androidでアラートを直接操作することもできません。
- Android API <17の限定サポート。ただし、Espressoをドライバーとして接続することで修正できます。
- それにもかかわらず、Appiumアドインは非常に人気があり、積極的に開発されているため、多くの問題は将来コミュニティで解決できます。
WebDriverAgent
AppiumがiOSを操作するために使用するWebDriverAgentアドオンに移ります。 実際、これはWebDriverプロトコルのサーバー側の実装であり、iOSでデバイスを制御できます。 さらに、機能は非常に豊富です。アプリケーションの起動と停止、ジェスチャの使用、画面上の要素の可視性の確認ができます。
アドインは、シミュレーターと実際のデバイスの両方で機能します。 要素を検出するために、ブラウザで開くインスペクターインターフェイスがあります。 アドイン自体は、FacebookおよびAppiumチームによってサポートされており、非常に活発に開発されています。 同時に、何らかの理由でAppiumがあなたに合わない場合、Appiumとは別に使用できます。
ひょうたん
次の非常に人気のあるアドオンは、AndroidおよびiOS用のCalabashです。 このツールはXamarinによって開発されましたが、2017年にサポートを停止し、現在はコミュニティのみがサポートしています。
各OSには、Calabash iOSまたはCalabash Androidという独自のアドオンがあります。 どちらもWebViewテストとRuby / JRuby言語をサポートしています。 Calabash Androidが機能するためには、アプリケーションソースにアクセスする必要はありませんが、Calabash iOSの場合は、Calabashフレームワークをアプリケーションコードに接続する必要があります。 また、ネイティブiOSアプリケーションの外部でビューを操作するには、追加のツールが使用されます。DeviceAgentを使用すると、これらのビューを検出して操作できます。 理論的には、これはWebViewをテストできることを意味しますが、実際には、iOSがアプリケーションに提供するビュー(確認用のさまざまなオーバーレイ、文字の送信、写真の挿入)に制限する方が適切です。 Calabash AndroidはWebViewの操作をサポートしていますが、タップ、テキスト入力、アラートなど、かなり限られた規模で動作します。
一般に、Calabashはかなり安定した高速なツールであり、アプリケーションを目的の状態(バックドア)にする便利な機能を備えており、そのままでCucumberとの統合をサポートしています。 しかし、その使用に対する公式サポートが不足しているため、問題が発生する可能性があり、コミュニティは迅速な解決を保証できません。
アールグレイ
Earl GrayはEspresso for iOSの一種の実装であり、Googleによって開発されています。 ここではすべてがiOSアドオンの標準です。Xcodeでプロジェクトに追加する必要があります。Objective-CとSwiftでのみテストを記述でき、1つのアプリケーションのみをテストできます。外部ビューは表示されません。 ただし、実際のデバイスでのテストはサポートされています。 アドイン自体は興味深いものであり、多かれ少なかれ定期的にサポートされていますが、何らかの理由でテスターには人気がありません。
フレームワーク

フレームワークは、モバイルデバイスのテストとの関連性が最も低く、テストで動作し、ドライバーやアドオンと統合されます。 したがって、私はそれらを詳細に検討しません(インターネット上の何百もの資料がこれに専念しています)が、表面的な比較のみを行います。
xUnitおよびTestNG
最も人気のあるxUnitファミリーフレームワーク。 これらは単体テスト用のツールとして作成されたもので、最初のそのようなサービスはJUnitでした。 さらに、それらは単体テストだけでなく、他のテストでも機能します。 その汎用性により、xUnitフレームワークはどこでも使用され、Webアプリケーションのテストを支配します。 JUnitはJavaでのみ動作しますが、現在では、ほとんどすべての一般的なプログラミング言語にこのようなフレームワークの実装があります。
より多様な補助機能を持つTestNGフレームワークは、このグループとは多少異なります。
きゅうり
BDDフレームワークも人気があり、特にキュウリが有名です。 xUnitやTestNGとは異なり、ここではテストとその手順はドキュメントに基づいて形成され、自然に近い言語であるGherkinで記述されています。 Cucumberはまだ受け入れテストを目的としているため、機能テストの自動化を実装することは非常に困難です。
収穫機

シャマリン
Xamarinは、モバイルアプリケーションの開発とテストのためのサービスであり、独自のファームにモバイルデバイスと、これらのファームを含むテストの自動化のためのツールがあります。 開発は主にC#で行われ、独自のレコーダーがあります。
ラノレックス
Ranorexは、ほとんどすべてのアプリケーションを自動化するためのツールです。 Seleniumと統合し、エミュレーターと実際のデバイスでモバイルアプリケーションをテストできます。 Windowsでのみ使用可能で、テスト用の言語としてC#およびVB.NETを使用します。 テスト用のレコーダーもあります。
スキッシュ
Squish-Web、モバイル、デスクトップアプリケーションを自動化する方法も知っており、BDDをサポートし、独自のレコーダーとIDEを備えています。 Python、Perl、JavaScript、Tcl、またはRubyを使用してテストを作成できます。
このようなソリューションの主な利点は、テストサイクル全体です。 個々のユーティリティとその相互作用を設定する必要はありません。 ただし、これらのツールはすべて有料であり、多くの場合、クローズドソースコードが使用され、モバイルアプリケーションのテストにはほとんど使用されません。 したがって、私は間違いなくそれらをお勧めすることはできません。
おわりに
もちろん、これはモバイルアプリケーション用の機能テストツールの完全なリストではありません。 この記事の範囲外は、KIF、Frank、SilkMobile、TestComplete、および他の多くのユーティリティです。 この記事は基本的なツールのガイドとして考案されたものであり、モバイルアプリケーションのセルフテストスタックを誰かが理解し、サービスの選択を間違えないように役立つことを願っています。 トピックに何か追加したいことがあれば、コメントを書いてください。私は間違いなくそれらを読み、いくつかの興味深いことで記事を補足します。
便宜上、すべてのツールを1つのテーブルに配置し、便利なリンクのリストを作成しました。これらの資料は、以下の「ベビーベッド」セクションにあります。
謝辞
記事の準備とレビューに協力してくれたBadooチーム全体に感謝します。
z3us 、
nizkopalおよびViktor Karanevichに感謝します。
チートシート



便利なリンク
モバイルアプリケーションの自動化をテストするポッドキャスト共有の経験すべてが開始された
自動化コースUIAutomator 2.0:
github.com/appium/appium/blob/master/docs/en/drivers/android-uiautomator2.mdbitbar.com/how-to-get-started-with-ui-automator-2-0developer.android.com/training/testing/ui-testing/uiautomator-testing.htmlXCUITest:
github.com/appium/appium/blob/master/docs/en/drivers/ios-xcuitest.mddeveloper.apple.com/library/content/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/09-ui_testing.htmlエスプレッソ:
developer.android.com/training/testing/espresso/index.htmldeveloper.android.com/training/testing/ui-testing/espresso-testing.htmlRobotium:
github.com/RobotiumTech/robotiumgithub.com/RobotiumTech/robotium/wiki/Questions-&-Answersセレンドロイド:
selendroid.io/setup.htmlselendroid.io/faq.htmlカラバッシュiOS:
github.com/calabash/calabash-iosgithub.com/calabash/calabash-ios/wiki/DeviceAgentカラバッシュAndroid:
badoo.com/techblog/blog/2017/01/24/break-limitations-with-calabash-androidアールグレイ:
github.com/google/EarlGreybitbar.com/how-to-get-started-with-earlgrey-ios-functional-ui-testing-frameworkアピウム:
appium.io/introduction.htmlgithub.com/appium/appiumWebDriverAgent
github.com/facebook/webdriveragentwww.mutuallyhuman.com/blog/2017/04/20/webdriveragent-getting-started-with-automated-ios-testingきゅうり:
cucumber.ioxUnit
junit.org/junit5Testng
testng.org/docXamarin.UITest:
developer.xamarin.com/guides/testcloud/uitestdeveloper.xamarin.com/guides/testcloud/uitest/intro-to-uitestdeveloper.xamarin.com/guides/testcloud/introduction-to-test-cloud/#The_Anatomy_of_the_Test_Cloud_Frameworkスキッシュ:
doc.froglogic.com/squish/6.0/tutorials-iphone.htmldoc.froglogic.com/squish/6.0/tutorials-android.htmlラノレックス:
www.ranorex.com/help/latest/android-testingwww.ranorex.com/help/latest/android-testing/automation-of-system-appswww.ranorex.com/help/latest/ios-testing