スマホアプリのテスト自動化ツールについて

# スマホアプリのテスト自動化ツールについて

スマホアプリの結合テストや総合テストなど
UIのテストを手動でやっていて稼働が取られるので
自動化できないかなということでツールを探しためも

## ツール一覧ページ

http://www.infoq.com/jp/news/2014/01/tool-atlas-enterprise-dev
http://www.testingtools.com/mobile-testing/

## infoqに列挙されていたツール

分野：アプリケーションテスト自動化

### 360logica

http://www.360logica.com/

http://www.360logica.com/request-for-one-week-free-pilot-testing

問い合わせてみないと詳しいことはわからない

### Apkudo

https://apkudo.com/

問い合わせてみないと詳しいことはわからない

### testdroid

http://testdroid.com/

http://www.infoq.com/jp/news/2014/10/testdroid-gets-jira-integration

http://docs.testdroid.com/prereq-and-concepts/devices.html

クラウドでiOS、Androidのデバイスを用意している
CalabashやAppiumが使える
iOSとAndroidで同じアプリを提供してて
同じテストケースでやりたい場合はCalabashかAppiumのテストコードを置いて実行する感じ
JIRAと提携してるので、Atlassian製品でデプロイしてる場合は親和性が高いかもしれない

### bsquare

http://www.bsquare.com/

Iotビジネスがメインなのかな

### infostretch

http://www.infostretch.com/service-overview/test-automation/

ここもIotを取り入れて
テスト自動化というよりは
開発フロー全般を視野に入れてるイメージ

http://www.infostretch.com/service-overview/test-automation/

#### qmetry-automated-studio

http://www.infostretch.com/mobile-testing-tools/automated-testing-tools-qmetry-automated-studio/

* qmetry automated studioは下記を組み合わせたテスト自動化環境のこと

Open Source Tools(Appium) + Test Management Platform(QMery, HP ALM, Rally, Ap Test) + Continuous Integration Systems(Jenkins) + Mobile Device Cloud Solutions(Sauce Labs, Perfecto Mobile)


### keynote

http://www.keynote.com/solutions/testing/mobile-testing

http://www.keynote.com/solutions/monitoring/mobile-app-monitoring

#### keynote 日本語

http://jp.keynote.com/ent-testing.php


### mobile labs

http://mobilelabsinc.com/solutions/mobile-app-testing/automated-mobile-app-testing/

### perfectomobile

https://www.perfectomobile.com/



#### 日本IBM、モバイルアプリのテスト代行センターを開設

http://ascii.jp/elem/000/000/994/994377/

##### IBMの構成

体制: ![IBM](http://ascii.jp/elem/000/000/994/994374/150331_IBMmobile_1_800x457.jpg "IBM")

##### IBMで使ってるツール

* IBM Rational Test Workbench Eclipse Client (複数デバイス上での同時テスト実行のサポート)
* Rational Quality Manager (テスト管理、実行テストもレポート出力)
* Rational Team Concert (Redmine的なタスク管理ツール)
* Perfecto Mobile (リモート自動UIテストサービス)
* IBM Security AppScan Source(セキュリティテスト)
* サービス利用料金は、テスト対象アプリの特性やデバイス数などに応じて変化するため、個別見積もりとなる。
* IBMでは「初回テストは120万円から、複数デバイス／複数バージョンで同じテストを実施する場合は半額程度になる見込み」としている。なお、テスト期間は通常2～3週間程度を想定している。

### ranorex

https://www.techmatrix.co.jp/quality/ranorex/

高性能なUIキャプチャ機能を搭載したUIテスト自動化ツール

https://www.techmatrix.co.jp/quality/ranorex/function/mobile_app_test.html

Ranorex は、AndroidまたはiOS、Windows8のモバイルアプリのUI上でのユーザー操作をキャプチャし、テストを作成・実行できます。

#### モバイル端末の実機でユーザー操作をキャプチャ、テストを生成

モバイル端末の実機上で、ユーザーの操作をキャプチャし、テストを生成します。キャプチャしたテストを編集する際には、コードを記述する必要はなく、マウス操作で編集を行えます。 

#### キャプチャしたオブジェクトにテスト用アクションを設定

キャプチャしたモバイルアプリのボタンやテキストフィールドといったオブジェクトにタッチや検証といったアクションアイテムを簡単に設定できます。オブジェクトベースでテストを作成するので、異なる種類の端末に対するテストの準備が容易になります。 

#### 簡潔な操作で実機にテストをデプロイ。素早くテストを実行可能

作成したテストをウィザードに従って、インストルメント化し、WiFiまたはUSB経由で実機にデプロイすれば、テストの準備は完了し、素早くテストを実行できます。 

#### V&V(検証と妥当性確認) にも効果を発揮

Ranorexの高度なオブジェクト認識メソッドは、大量のコントロールの属性の検証にも耐えられるため、 V&V(検証と妥当性確認)ステップをRanorexによる自動テストに組み込むことが可能です。 

#### データ駆動型テストの作成も容易

SQL、CSV、Excelなどのデータソースからデータを挿入し、テストを実行できます。キャプチャしたテストやリポジトリ、コードモジュールテストと変数を組み合わせることにより、データ駆動型テストを作成できます。 

#### テストケースの管理も容易

キャプチャしたテストとモジュールを1つのテストケースとして結合したり、テーブルや外部データソースのテストデータをモジュールやリポジトリの変数に直接関連付けることが可能です。 

#### グラフィカルにテスト結果をレポート

テストの実行結果がグラフィカルに表示されるので、テストの概要を素早く確認できます。レポートには、エラーのスクリーンショットが表示されるので、問題の特定が容易です。また、レポートからエラーが発生したアクションアイテムにジャンプすることも可能です。 

#### 驚きのキャプチャ機能らしい

### saucelabs

https://saucelabs.com/

デモのビデオがPCのgoogleのwebをテストするSelenium使ったものだったけど
アプリはテストできるんだろうか？

### soasta

http://cloudtest.vccorp.net/

日本語で書かれてるけど、どうも、webのことみたいで
アプリのテストのことではない気がする

## Mobile Testing Tools で紹介されてるもの

### eggPlant

http://www.testplant.com/eggplant/testing-tools/eggplant-mobile-eggon/

### See Test

https://experitest.com/

### native driver

https://code.google.com/archive/p/nativedriver/

### Appium

http://appium.io/

#### レポート機能

http://blog.trident-qa.com/2015/03/sahagin-with-appium/

サハギン



### TestStudio

http://www.telerik.com/teststudio/mobile-testing

良さそう、でも全部合わせると高そう

### usertesting

https://www.usertesting.com/product/mobile-application-testing

### Xamarin Test Cloud

https://www.xamarin.com/test-cloud

良さそう
2,000台以上の実機でUIテストが出来るクラウド上のテスト環境です。

#### 機能
* テストフレームワーク
* https://www.xamarin.com/test-cloud/recorder (テストレコーダー)
* レポート、パフォーマンスチェック
* 2,000台以上の実機

C#かRuby(Calabash)でテストコードを書く
Xamarinでアプリをつくってなくても、使えるのかな？

## その他

### google

https://developers.google.com/cloud-test-lab/

デバイスがNexusだけなんじゃあなかろうか

https://developers.google.com/cloud-test-lab/robo-ux-test#configuring_robo_test

人工知能に近いのかな？
ロボが解析してテストしてくれるとか素晴らしい

### MovaTesting

https://www.movatesting.com/

人工知能によるテストの完全自動化を目指す

ユーザのテストの仕方を学習していって
最終的には、ユーザーが操作しなくても、人工知能がテストしてくるようになるサービス

#### Movarobo

http://www.movarobo.com/

http://prtimes.jp/main/html/rd/p/000000002.000014118.html

Androidアプリのみですね

apkを入れて、テストが終わるのを待つだけ！


## コアとなってるフレームワーク

iOS, Androidの両方をテスト自動化対応する場合
下記の２つのフレームワークを使用するケースが多い

### Appium

http://appium.io/

http://qiita.com/Kazu_cocoa/items/115e162133ac0bbdbce6


### Calabash

http://calaba.sh/

cucumberか
rubyでかけるUIテストフレームワーク
iOSとAndroidのクロスプラッフォーム対応
Xamarinでアプリをつくってなくても、使えるのかな？

http://qiita.com/yosan/items/3e2782376accf57f98b3