エンジニアtype - エンジニアのシゴト人生を考えるWebマガジン

面倒な実機検証がクラウド上で! 『Developers AppKitBox』開発陣に聞く、Androidアプリテストの肝

公開

 

AppKitBox-banner

2012年通年のOS別・世界スマートフォン出荷台数で、約4億9700万台とトップの座を占めたAndroid(米調査会社IDC調べ)。出荷台数伸び率も、主要OSの中で唯一「対前年比100%越え」をしており、これと比例するようにAndroidアプリ数は日に日に増え続けている。

ただ、Androidアプリ開発で難儀なのは、テストが面倒なこと。

Apple製品に限定されるiOSと違い、Androidは各メーカーが出す端末ごとに挙動や表示が微妙に変わるため、リリース前のテストやリリース後の修正が大変だという声をよく聞く。

この悩みを解消してくれる注目サービスが、昨秋NTTレゾナントからリリースされた。Androidスマートフォンアプリ開発のためのクラウド型開発者支援サービス『Developers AppKitBox(デベロッパーズ アップキットボックス)』だ。

同サービスの特徴は、「Remote TestKit for Android」と名付けられたリモートによる実機検証機能。手元に実機がなくても、クラウド上に置いてあるスマートフォンにアクセスして、実機検証ができるという便利な機能である。

ユーザーは専用ソフトをPCにインストールすると、日本国内で利用台数の多い約60種類のAndroid搭載スマホ(2013年2月時点)の中からテストしたい端末をピックアップし、オンライン上での検証が可能になる。しかも、エミュレータとしてではなく、“実機”とつながる形で、だ。

AppKitBox-image

手元のPCから、クラウド上にあるスマホ端末にアクセスした際のデモ。タッチインターフェース採用のPCであれば、PCで触った画面と指定のスマホ端末の画面は同じ動きに

MacやWindows 8搭載PCのようにタッチインターフェースを採用しているPCであれば、手元のPC上でスマホ画面を触っているような感覚で検証することもできるのだ。

リリース当初は法人向けの利用プランのみだったが、今年1月から個人の開発者向けプランも公開され、945円/1時間(税込)で利用できるようになっている(※ほか、人気端末が1回あたり最大30分まで無料のお試しプランもあり。詳しい料金プランはコチラ)。

24時間365日、約50台のスマホにアクセスしてもらうための工夫

AppKitBox-dev01

(写真左から) 『Developers AppKitBox』を企画・開発した、NTTレゾナントの森本恭平氏、角田和也氏、栗島聡哉氏

この『Developers AppKitBox – Remote TestKit for Android』を開発したのは、ポータルサイト『goo』などの提供を行っているNTTレゾナントで、開発者向けサービスを企画・運営しているビジネス推進部門の面々。

同サービスのプロジェクトリーダーを務める角田和也氏は、開発のきっかけをこのように語る。

「一番の理由は、自社でさまざまなサービスの開発、提供を行っている中で、開発チームから『Androidアプリは実機テストが面倒だ』という声が上がっていたから。それまで、われわれビジネス推進部門ではHTML5を使ったアプリの開発環境や開発ノウハウをリサーチしていたのですが、こちらの課題の方が多いという声を聞いて、『それならそこにフォーカスしたサービスを作ろう』ということになりました」(角田氏)

プロジェクト自体は2012年の夏ごろに始まり、一般公開を前提に開発し出したのは同年8月。リリースまでの最大の難題だったのは、実機を用意して24時間365日アクセス可能にすることだったと話す。

「サーバに1度に約50台ものスマートフォンを接続しておくのは、Googleのドライバーですら対応していません。当然、USBハブも一般に市販されているものでは安定して動作させることが難しく、自分たちであれこれ研究しながら、独自に開発したり特殊なハブを取り寄せたりしました」(森本氏)

また、『Developers AppKitBox – Remote TestKit for Android』を通じて利用できる実機は、すべてとあるデータセンターのサーバルームにまとめて格納されているが、運用側が遠隔管理するための仕組みづくりも試行錯誤の連続だった。

「加速度センサとジャイロスコープの組み合わせ方で、横にして置くと正しくアプリを表示できない機種があったりするんですね。こういった端末ごとの細かな特徴を把握しつつ、スマホを常時稼働させても熱がこもらないような筐体を独自に作るなど、ユーザーの方々がいつ、どの端末にアクセスしても快適に実機検証ができるよう工夫しました」(栗島氏)

アプリテストを効率的に行うための3つの留意点

このように、『Developers AppKitBox』の開発を通じて自分たち自身がAndroid端末の特徴を調べ尽くした結果、アプリのテストフェーズで押さえておきたいポイントも理解できるようになったという。彼らが語る、テスト時のポイントはこの3つだ。

【1】最も重視すべきは「プロセッサ×メーカー」の組み合わせ

Androidアプリの表示や挙動を左右する要素は、大きく分けると

1)OSのバージョン
2)端末に搭載されるプロセッサ
3)端末を提供するメーカー
4)キャリア

の4つ。その組み合わせは実に300種類超に達するという(同社の記者発表より)。だが、これらすべてのパターンを考慮してテストを行うのは、現実的に不可能だ。

そこで、同社では『Developers AppKitBox – Remote TestKit for Android』の開発を進める上で、「プロセッサとメーカーとの組み合わせ」を特に重視。この2つの組み合わせが同じ機種であれば、アプリもある程度同じ挙動になると話す。

「機種別の販売シェアを参考にしながら、『プロセッサ×メーカー』のかけ合わせでテスト用機種をいくつか決めておけば、実機検証をする台数も少なくて済むはずです」(角田氏)

【2】GPUやメモリの差でアプリが落ちる可能性もチェックを

加えて、いわゆる端末スペックの差でもアプリの挙動は変わるため、「あらかじめ、メモリとGPUに差のある端末でテストをしておくのがベター」と森本氏。

『Developers AppKitBox – Remote TestKit for Android』のサービスサイトの中には、取り扱う「端末一覧」として、GPU情報のほか表示を左右する画面解像度の情報も載っている。こちらを参考にしながら、実機検証しておきたい端末を取捨選択するのが良いだろう。

【3】エミュレータを信じるな!テストは「実機+Webベース」の両方で

一般的に、デザインからプログラミングへと進み、デバッグに至った段階で初めて表示の不備やレイアウト崩れをチェックする開発者が多いが、この際に「エミュレータだけで検証するのは危険だ」と栗島氏は言う。

「当然と言えば当然ですが、実機で検証してみないと分からないバグもあるからです。ぜひ『Developers AppKitBox – Remote TestKit for Android』をご利用いただき、実機でテストをしてみてください」(栗島氏)

加えて、「HTML5のDevツールも合わせて活用すると、表示崩れのチェック&デバッグがやりやすい」(森本氏)そうだ。

普及させたいのは「品質向上に向けたテスト文化」

なお、『Developers AppKitBox』は単なる“設備産業”としてのサービスだけでなく、『Knowledge Note』と呼ばれるコンテンツページでアプリテストやAndroidについてのノウハウも提供している。

これらを通じて実現していきたいのは、品質に大きな差があるといわれるAndroidアプリマーケットの中で、良質なアプリを増やすための「テスト文化」を普及させることだと角田氏は話す。

「法人でも個人でも、企画や開発の段階では手掛けるアプリがユーザーにどう評価されるのかまでは分かりません。ただ、『Developers AppKitBox』によってテストフェーズの効率化を図っていただければ、企画や開発にかけられる時間が増えるはずです。企画~販売までのサイクルをより効率的に回す意味でも、ぜひ利用していただきたいと思っています」(角田氏)

取材・文/浦野孝嗣 撮影/伊藤健吾(編集部)