サイトアイコン TechWave(テックウェーブ)

デバッグ人工知能も成長中、MovaTesting- クラウド実機で自動テストできる神サービス 【@maskin】

 モバイルウェブ/アプリ開発においてデバッグ(不具合を発掘して改善すること)は鬼門だ。ただ、避けられるものでもなく、むしろユーザーとの接点を磨きあげる最重要プロセスといってもいいだろう。どんなに素晴らしい企画でも、たった一つのバグで評価を下げるばかりか、事業そのものが立ちゆかなくなることだってある。

 しかしながら、多くの開発現場においてデバッグはないがしろにされている。デバッグ担当が不在。開発者や関係のない社員までもが狩り出されるも、専門的な能力が必要なデバッグでは効力を発揮できず、結局プロデューサーやディレクターといった全体を把握している人が他の仕事そっちのけでデバッグに当たるという(あるある)。エミュレータでは確認し切れない機種ごとの差異を確認するために、ローンチ間際になって新端末を購入に走るなんてことも、実にあるあるである。

 実機テストという意味では、クラウドに接続された実機をレンタルできるサービスがいくつか存在する。動作確認や障害対応などその活用の幅は拡まっている段階だが、ムーバクラウドの「MovaTesting」はその先をゆく。クラウド経由の実機検証はもちろん、複数の実機でテストを自動で実行することが可能。デバッグ作業を大幅に省力化してくれるのだ。

実際に操作した流れを複数実機で自動テスト

 現時点で対応しているのはAndroid用アプリ。2016年夏にiOS/Andoid用ウェブブラウザ上のテストが可能になる。その後、2016年冬にはiOS用ネイティブアプリにも対応する予定。価格は、エントリープランの場合、月額1万円で、端末利用が10時間分、ログや画面等を保存するストレージは2GB、全ての機種から5機種を選択して自動テストすることが可能。

 例えばAndroidアプリの場合、apkファイルを「MovaTesting」に読み込ませるだけで準備オーケー。クラウド上に用意された実機を選択し、すぐにその上でアプリの操作をすることが可能になる。

 ただ、実機でアプリが立ち上がったからOKかというとそうではない。実機で動作テストをしなければ、バグを回避するのは不可能。そういった場合でも「MovaTesting」なら、簡単にテスト用スクリプトを作成し、クラウド上の複数の実機で一斉にテストできる。テストスクリプトは、いろいろなタイプがあるが「MovaTesting」ではJavaを採用。アプリがインストールされたスマートフォンで実際に操作をするだけで、自動でテストスクリプトが生成されるため、いちいちコードを書く必要がない。もちろん、スクリプトをカスタマイズすることも可能だ。(将来リリースされるウェブテストではRubyが使用される)

 テストを実行すると、すべての端末の実行結果が記録されてゆく。スクリーンショットや動画、各種ログなどデバッグに必要な情報はもちろん、UI等の確認もここでおこなえる。

 また「MovaTesting」では、そのテストスクリプトが、全コードのどれくらいをテストしたのかをカバレッジとして比率で表示してくれる。

実機端末ごとのUI際を一斉比較

 興味深かったのが、同じ画面を複数の実機でテストした結果だ。ここまで違うのかというほど差が出てくる。これらを一気に実際に実行して調べられることはなかなかないのではないだろうか。

 最終的に、テストをした端末で、どれくらいの確率でクラッシュが発生したか、また、どれくらいのメモリーを消費し、どれくらいCPUパワーを消費したかといった結果が見えるわけだが、それ以外も膨大なデータを蓄積している。

人工知能がバグを発見してくれる

 テストで蓄積されたバグの情報は「MovaTesting」の頭脳となる。デバッグ人工知能がすでに稼動中で、その知識を活用してバグが発生しやすい領域を自動でテストしてくれるのだ。

 まだ、利用者数が少ない状態なので、人工知能の精度が十分とはいえないが、ゆくゆくはアプリを登録してテストを実行するだけで、バグを的確に発見してくれるようになるとのことだ。



【関連URL】
・MovaTesting – Androidアプリ・サイトの実機検証と自動テスト
https://www.movatesting.com

蛇足:僕はこう思ったッス
 ガラケー時代ほどではないにしても、モバイル端末の機種毎の差異は依然として問題になる。それよりも、テストを自動化することで、効率よく、かつローリング方式でバグをつぶしていけるわけで、アプリの品質は格段に向上すると思う。

ただ、やはりテストの方法が問題だ。大きなゲープアプリなんかでは数百人の人員てテスト作業をするというが、素人にテストスクリプトを実行させても効率も精度も悪いという問題がある。その点、MovaTestingでは、スクリプトに処理を組み込むことが可能で、より高度で高精度のテストを自動化できる可能性がある。

そしてこうして、有効なテストが実行されればされるほど、「MovaTesting」のデバッグ人工知能はかしこくなっていくだろう。アプリリリース前に、全自動でデバッグしてくれるサービスなんて、まさに夢のようだ。

なお、「MovaTesting」はアプリ万博 にも出展の予定です。

モバイルバージョンを終了