クラウドでの実機検証サービスの考察 ~Remote TestKitの魅力について~

本記事は[Qiita Engineer Festa 2022](https://qiita.com/official-campaigns/engineer-festa/2022)の[Remote TestKitを使ってレビューを書こう！](https://qiita.com/official-events/f0e8b25feb05af6326b3)のエントリー記事です！

https://qiita.com/official-events/f0e8b25feb05af6326b3

----

# はじめに

ある日、新機能の開発が完了し、実機検証を進めていると、表示崩れが！！！！

すぐにデザイナーの方に「ここデザイン崩れてるので直してください！」と伝えると「私の方だと崩れてないですよ？」との返答。
あれーおかしいなと思い、調べてみるとSafariのバージョンが異なっていました。

別の端末で見ると確かに表示崩れは起きずに、綺麗に表示されています。[^1]

Safariのどのバージョンからこの現象が起きてしまうのか調べようとするものの、**SafariはOSのバージョンと紐づくため、ダウングレードをしなければならない**ということになり、かなりの手間の発生が予想されました。

結局、その時は崩れていた方が最新のバージョンだったため、端末を最新にすることで検証できたのですが、逆のケースだったらどうなっていたか。

今回のようなケースに遭遇した時に、すぐに別の検証端末使えたらなあと思い、調べていると、ちょうど**Remote TestKit**が見つかりました!

今回は**Remote TestKit**を使って、どんなことができるのかを検証していきたいと思います。

## クラウドでの実機検証サービスについて
**Remote TestKit**について紹介する前に、クラウドでの実機検証サービスを使うことによるメリットについて考えてみたいと思います。
会社によっては検証端末が豊富で、実機検証サービスは必要ないよーという方もいらっしゃるかもしれませんが、果たして本当にそうでしょうか？
クラウドで利用できることで、以下のメリットがあると考えられます。

* **管理コストの低減**
    * バッテリーなどの経年劣化によるメンテナンスが必要ない
    * 誰がどの端末を現在保持しているかといった申請のやり取りが不要
    * 社内での紛失リスクや重複、盗難など機密情報の漏洩リスクを防ぐための管理コストが減らせる
* **複数端末の同時使用**
    * 一度に大量の端末を操作して、検証テストを行う。みたいなことは直接実機を触る場合だと時間がかかってしまうため。
* **ユーザーからの問い合わせに対してすぐに検証を始めることができる**
    * ユーザーの使用している端末が無かったり、あっても申請が必要だったり他の人が使っていたり。

料金については、ケースバイケースだと思うので、どちらとも言えないかなと考えています。
具体的には管理方法だったり、検証端末のユースケースで変わってくる部分かなと思います。

先にメリットをお伝えしましたが、クラウドであることで下記の問題が発生しないかは気になるポイントです。
* **セキュリティ面**
    * 検証した内容が外部に漏れないか。
* **端末の種類**
    * 契約したはいいが、結局求める端末が利用できずに導入の意味がなくなってしまわないか。
* **端末のアップデートの速さ**
    * 新しい端末発売後に導入されるまでにどれくらいのラグがあるか。 

## Remote TestKitとは
前置きが長くなりましたが、上記で語ったメリットや気になるポイントがどうなっているのか確認しながら**Remote TestKit**を触っていきたいと思います！

![スクリーンショット 2022-07-14 1.53.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/2998ca7f-9b3a-0bb4-abfc-c4f16420bbca.png)


以下の項目にまとめましたので、興味がある箇所から参照いただければと思います！
* 機能
* 料金体系
* セキュリティ
* 端末の種類
* 使用感
* その他特筆点・感想

### 機能
複数端末の同時操作と既存テストツールとの連携が特に有難いですね！
一気にいろんな端末で検証を行うことで、工数の短縮に繋がりそうです！

* 複数端末の同時操作
* キャプチャ機能
* 音声の入出力機能
* アプリの検証
* PCからの入力受付
    * 文字入力がキーボードからそのまま端末に入力が可能！
* 仮想ADB、XcodeConnectorを利用して既存のテストツールとの連携
    * Appium等で作成した自動テストスクリプトを実行したり、Jenkins等と連携してCIでの活用も可能！

などなど豊富な機能があります！
また、他にもたくさんの機能がありました！
その他の機能については[コチラ](https://appkitbox.com/testkit/spec/#feature-013)から参照してください。

下記機能については、技術上・運用上の理由で利用できないとのこと。
* 端末の設定機能（オプションメニューで提供）
* SIMを必要とする機能（オプションメニューで提供）
* ハードウェア(赤外線、Bluetooth、ジャイロセンサ、FeliCa、NFC、ワンセグ）機能
* GPS機能(実端末位置は変化しません)
* カメラ機能(撮影対象を指定できません)


### 料金体系
[公式HP](https://appkitbox.com/testkit/price/)より抜粋。
プランは　**フラットプラン**/**チケットプラン**/**無料プラン**の３種類があったようですが、現在はフラットプランか無料プランの2種類です。
無料プランはローカルの端末をクラウド上で操作できるようにする仕組みを提供してくれるようです。(2台まで)
フラットプランがメインのプランになるので、こちらのプランを紹介します。

※[チケットプラン](https://appkitbox.com/testkit/oldprice-ticket/)は2019年1月23日で終了。
#### [フラットプラン](https://appkitbox.com/testkit/price/)

4つの標準プランがあり、個別でプランの相談をお問合せすることも可能なようです。
プランの違いは同時に利用できる端末数に違いがあります。
初月は無料で利用できます。
※価格表示は税抜です。

|プラン名| FLAT1 | FLAT2 | FLAT3 | FLAT5|
| ---- | ---- | ---- | ---- | ---- | 
|料金 | 50,000円/月 | 80,000円/月 | 125,000円/月 | 200,000円/月|
|同時利用端末数 | 1端末 | 2端末 | 3端末 | 5端末 |


#### オプション
追加料金を支払うことで、オプションを有効化できます。
※価格表示は税抜です。
* **最新・人気端末パック** 20,000円/月
    * 最新・人気の端末を利用可能。端末の予約も可能になる。
* **OS設定解放** 80,000円/月
    * レンタルした端末のOS設定を変更可能
* **端末お預かりオプション** 100,000円/月
    * ローカルで所持している端末を専用端末としてRemote TestKit上で利用可能
* **接続元IP制限** 100,000円/月
    * 登録済みのIPアドレス以外からの接続制限
* **サブアカウント機能** 100,000円/月
    * 利用者アカウントを自由に発行可能

特に気になったオプションとしては、端末お預かりオプションですね。
端末たくさん所持している企業の方も、端末お預かりオプションが利用できれば
管理コストを減らせるのでお得かもしれないですね！

### セキュリティ

一番気になるのは、利用した端末の履歴が残って、他者に悪用されてしまわないかというところかと思います。
この点を**Remote TestKit**はばっちり解消しています。

[公式の記事](https://journal.ntt.co.jp/article/3001)から抜粋します。

> ：SaaS(Software as a Service)でレンタルした端末には履歴やデータが残るため、次の人が借りる前にデータを消す作業が必要になりますが、その実現においてもひと手間かけています。工場出荷状態に戻すファクトリーリセットという機能が使えると楽なのですが、これでは端末とサーバとの連携設定も外れて操作不能となってしまうため、この機能を使わずに初期に近い状態にもっていくのが肝です。通常のAPI(Application Programing Interface)によるコマンド操作ではクリアできない項目などのクリーニング処理も、独自の技術で自動化しています

独自の技術を使ってクリーニング処理をかけているとのことです。
同記事をさらに引用しますが、海外の競合では、データクリアをしていないサービスもあるとのこと。怖いですね。
> 理由は分かりませんが、海外の競合サービスは、端末のレンタル後にデータクリアしなくてもOKという文化があるようです。

### 端末の種類
[端末一覧](https://appkitbox.com/testkit/devicelist/)
上記から参照することができます。
**700機種以上**の端末を利用できるとのことで、なかなかこういうサービスを使わないとこれだけの種類の端末確保は難しいかもしれないですね。
**新発売機種についても、2週間以内**に原則用意していくとのことで、スピードが早いですね！

### 使用感
Web版とソフトウェア版がありますが、今回はソフトウェア版を使用します。
ソフトウェア版の方が高機能なためです。[^2]
Mac OSでもWindowsでもどちらでも使用可能です。
使い方については[ドキュメント](https://appkitbox.com/testkit/doc/software_ui/?entry=footer)を参照してください。

GUIはこんな感じです。
![スクリーンショット 2022-07-14 0.37.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/97588108-5bbf-ff25-923a-ae1ec0e63863.png)

端末がずらーっと並んで、どれ使おうかなーとちょっとワクワクします笑

せっかくなので、高スペックマシンを使っていこうと思います。
最新モデルの[Xperia 1 IV SO-51C](https://www.docomo.ne.jp/product/so51c/)を使います。
普通に買ったら10万以上はする製品がボタンクリックで簡単に使えちゃうのはびっくりですね。

有効化してすぐに使用することができました。 
<img alt="端末のスクショ" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/b0477c6e-3f50-85b3-67c8-66c7e81d23e3.png" width="300px"/>

URLの直接入力だとページを開くのに少し時間はかかりますが、開いた後の操作感はサクサクでほとんど気になりませんでした。

| URL入力 | 操作感 |
| ----- | ----- |
|![URL入力.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/d8d62181-ea16-9894-a2a2-d6066f35c5d0.gif)|![操作性 - HD 720p.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/f3226b3f-565e-76ee-5905-95222cbd1943.gif)|

全体的に、実機の使用感そのままに、PCでの利用をしやすくしており、非常に使いやすかったです！
これなら検証もかなりしやすいかと思います。

使用した後、すぐにオフラインとなり、別の人に使われないことも確認できました。
どれくらいのタイミングで再度使えるようになるかも調べてみました。

| before | after|
| ----- | ---- |
|![スクリーンショット 2022-07-14 1.15.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/20e26052-f1eb-5831-3488-d56cb1a4788a.png)|![スクリーンショット 2022-07-14 1.19.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/1659829d-aacd-5af8-c8ed-f0a72ab6f4ad.png)|

なんと！わずか10分で再使用可能になりました。恐るべし。 (スクショの時間で計測してます)
削除されているかも念のためみてみます。
![スクリーンショット 2022-07-14 1.25.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/2cf537f1-273e-92e0-a4f7-a5a2ce01b889.png)

chromeで開いていたタブが全て消え、履歴も消えています。
(※肖像権や著作権などに引っかからないように意図的にモザイクをかけています)
![スクリーンショット 2022-07-14 1.27.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/a7147d7c-2b55-f901-ebbc-a9b147d52a62.png)

すごい技術だ...


複数端末同時操作も簡単でした。
![スクリーンショット 2022-07-14 1.35.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/fa0faca7-bfa3-7618-f73a-55431763afed.png)


### その他特筆点・感想
箇条書きで感じたポイントを羅列していきます。
* キーボードでそのままPCから入力できるのは便利！ シミュレータと似た操作感で使えるのはかなりありがたいです。
* スワイプなどスマホ特有の操作や物理ボタンのデバイスに対応していたり、スマホと同じ操作感を担保しているのが良い！
    * 検証する時、やっぱり直接触った感って大事になってきますからね。
* apkファイルを直接アップロードできるのは楽。すぐにアプリ入れて試せるのはありがたい！
* 利用をやめてからわずか10分で再び使えるようになるのがすごい！端末待ちの状況が長くかからない！！
* Appiumテスト連携できるものの、テスト特化しているわけではないのでテストメインに寄せたい場合は別の選択肢になってくる可能性がありそうです。

## 他サービスとの比較
最後に、**Remote TestKit**と他サービスとの簡単な比較をします。
比較検討しましたが、**Remote TestKit**か**AWS Device Farm**のどちらかを選択するのが現状良い選択肢なのではと思います。
ただし、**Remote TestKit**と**AWS Device Farm**では用途が異なると思います。
**Remote TestKit**はより**自分で操作して動きを細かく確かめたい**時に真価を発揮しますし、
**AWS Device Farm**は**テスト自動化を推進**するときに真価を発揮すると思います。
**Remote TestKit**は少しお高めですが、端末の種類の豊富さやセキュリティ面、機能面などを比較すると妥当どころか、むしろ安いくらいの料金かもしれません。

| 項目/サービス | Remote TestKit |モバオペ  |AWS Device Farm | MOBACloud|
| ------- | -------- | ------- | ------- | ------ |
| 機能  | ○ | ○ | ○ | ?(不明) | 
| 料金 | △ | ○ | ◎ | ○ | 
| セキュリティ | ◎ |?(不明)|○| ?(不明) | 
| 端末の種類 |　◎ (700種類以上) | △(Android端末のみ 100種類以上) | ○(100種類以上) | ×(20種類以上) | 

以下、詳細については折りたたみにて記載しますので、ご興味あれば折りたたみをクリックしてください。

<details><summary>各サービスとの比較詳細</summary><div>

### [モバオペ](https://mbop.io/lp/)について
![スクリーンショット 2022-07-14 1.52.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/fcd8890e-9620-a123-b4af-4ff8a9c81e7e.png)

基本的な欲しい機能は抑えてくれているが、エンタープライズ版でないと自動テストツールが使えないのがネックか。
iOS端末が使えないのも痛い(日本だとiOSの割合が多いため)

* [機能](https://mbop.io/lp/mbop)
    * キャプチャ機能
    * アプリインストール
    * キーボード入力可能
    * 同時操作可能
    * Appiumでのテスト利用可能
* [料金体系](https://mbop.io/lp/#plice) (※価格は税抜です)
    * スモールプラン: 1アカウント 20,000円/月
    * ミディアムプラン: 3アカウント 50,000円/月
    * ラージプラン: 5アカウント 80,000円/月
    * エンタープライズ:　要相談
* セキュリティ: 不明。(サイトに情報なし)
* [端末の種類](https://mbop.io/lp/list)
    * Android端末が100種類以上
    * iOSもサポートを検討している。

### [AWS Device Farm](https://aws.amazon.com/jp/device-farm/)について
https://youtu.be/21oIarLiAKU
上記動画がどんなものかがわかりやすいと思います。
![スクリーンショット 2022-07-14 2.19.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/e34e7d43-5cb0-f755-9057-6f4ae4ad3e5b.png)

料金が従量課金もしくは定額プランと選べるのがありがたいですね。
カスタマーサポート的に使う人は従量課金でいいと思いますし、日常的に検証で使うなら無制限テストで使うなど柔軟に切り替えられます。
また、テストにとても特化している印象です。
テストフレームワークが色々使え、かなり楽に使用できそうでした。
パフォーマンスデータの収集も、ゲームアプリ開発者にとってはとても嬉しいと思います。

* [機能](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html)
    * マルチデバイス、マルチブラウザでのテスト実行
    * 同時操作、同時テストの実行
    * テストフレームワークをそのまま選択してテストをカスタマイズできる
    * ビデオ、ログ、パフォーマンスデータの収集
* [料金体系](https://aws.amazon.com/jp/device-farm/pricing/)
    * 従量課金 最初の1000分無料 以降 0.17$/1デバイス利用分
    * 無制限テスト 250$/月 1デバイススロット毎
    * プライベートデバイス 200$/月~
        * ユーザーに応じた専用のデバイスが割り当てられる
* セキュリティ: 記載は特になし。　ですが、プライベートデバイスも使えるので、担保はできそうです。
* [端末の種類](https://us-west-2.console.aws.amazon.com/devicefarm/home?region=us-west-2#/mobile/publicdevices): 100種類以上。 iOSもAndoridもどちらもあります。

### [MOBACloud](https://mobacloud.com/)について
Webサイトの更新が頻繁ではないため、そもそも不安点が多いです。

* 機能: おそらく単純なデバイスの操作のみ？ 情報が少なく不明。
* [料金体系](https://mobacloud.com/?page_id=22) ※料金は税込です。
    * ライトプラン 5,400円/日 5機種から選択
    * ビジネスプラン 16,200円/7日間 10機種から選択
    * プラチナムプラン 54,000円/月 25機種から選択
* セキュリティ 情報が無く、わかりませんでした。
* [端末の種類](https://mobacloud.com/?page_id=165) 20種類以上

</div></details>

## まとめ
ということで**Remote TestKit**を使ってみました。
最初に、下記3点が気になるなあと思い、注意深くみていたのですが、３点とも見事にクリアしており、素晴らしい製品だと感じました。

* **セキュリティ面**
* **端末の種類**
* **端末のアップデートの速さ**

セキュリティ面は独自技術でしっかりカバー。
端末の種類も700種類以上と豊富で、しかもすぐに借りれて使いやすい。
端末のアップデートの速さもばっちりで、2022年6月24日発売(執筆時点2022/7/14)の新しいモデルもすぐに使えました。

ぜひ、会社でも必要な場面が来た際にはぜひ取り入れていきたいなと思いました。
最後までご覧いただきありがとうございました！


最後に、この記事は[Qiita Engineer Festa 2022](https://qiita.com/official-campaigns/engineer-festa/2022)のテーマの一環の記事です！
みなさんも一緒に[Qiita Engineer Festa 2022](https://qiita.com/official-campaigns/engineer-festa/2022)を盛り上げていきましょう！

## 参考文献
* [Remote TestKitの評判について。アプリ開発者の実機テストに。](https://remotetestkit.hatenablog.com/)
* [実機検証 クラウドサービスを端末や料金で比較してみた](http://shiru-web.com/2017/04/18/01-23/)
* [NTT技術ジャーナル記事 スマートフォンの実機がなくても画面確認やテストができるサービス「Remote TestKit」をコアに事業を展開](https://journal.ntt.co.jp/article/3001)
* [まだ実機検証してるの？クラウド上でテストできる「モバオぺ」がすごい](https://liginc.co.jp/406644)


[^1]:↓ちなみにこんな感じのことが起きていました。※画像はイメージです。　右が正規。左に変な線が入っています。
![スクリーンショット 2022-07-12 23.40.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/2e92afb8-2e4b-e036-6a46-f8c6f624e96b.png)![スクリーンショット 2022-07-12 23.41.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224825/7f6123fc-2657-39cd-198d-dd9fec37f688.png)
[^2]: https://appkitbox.com/testkit/spec/ ソフトウェア版とWeb版の機能比較についてはリンクのページ下部を参照。