Android開発で泣かないための「テスト」の重要性

Android開発で泣かないための「テスト」の重要性


第1回Androidテスト祭りレポート

仲里淳
@nakazato
2011/9/5

ユーザーの意見や評価データから導き出すガイドライン

- PR -

 ACCESSの生路茂太氏は、「Android受け入れテストガイドライン」と題した講演で、ビジネス視点からのAndroidアプリ開発とテストについて語った。

 生路氏は、そもそも現在のAndroidビジネスで何に困っているのか問い掛けた。「われわれは何に困っているのか。Androidアプリを作ったはいいが、マネタイズが難しい。つまり儲からないことが問題であり、これに対して受け入れテストがどう役に立つか。動かない、売れないとはどういうことなのかを考えてみます」(生路氏)

 生路氏によると「動かない」とは、「差別化」という商売の原則と「標準化」という理想の矛盾した2つの命題に起因するという。互換性を実現するためにAPIが存在するが、それでも問題は生じる。結局、「別名の商品は何かが差別化されている」のであり、動かないのは避けられない。なぜなら、差別化(非標準化)が商売には必要だからだ。特殊なハードウェア(センサなど)、標準APIだけでは作りきれない機能があり、さらに互換性テストが、そもそも厳格ではない。このような中で、「Run Anywhere」を実現するには、キャリアとメーカーとOSバージョンの膨大な組み合わせを検証することになるが、それにはコストが掛かる。

動かない! −「差別化」という商売の原則と「標準化」という理想(生路氏の講演資料より)

 さらに、マーケティング的観点からいえば、「Run Anywhere」を実現したからといっても必ず売れるとは限らない。Androidアプリは単価が低いから回収が難しいという面もあるが、それにもかかわらず、「『Run Anywhere』のために試験コストや市場調査コストを掛けて大ヒットを狙うべきか」という判断が必要だ。「超高速開発でニッチ市場に対して小ヒットを狙う」と、互換性が低くなる。

ACCESSの生路茂太氏

 生路氏は、受け入れテストを次の2つの形に定義する。そして、Androidの受け入れテストがどうあるべきか、他のプラットフォームとの比較で見えてくるという。

  1. どうやって作ればどこでも動くのか?=動くもののための試験
  2. どうやって作れば市場で受けるのか?=売れるもののための試験

 「NTTドコモのiモードは、垂直統合とメーカー連携によってアプリの動作問題を解決しています。また、マスマーケットとしての規模やターゲティングのしやすさ、月額課金による安定収入など、非常に優れたモデルです。

 アップルのiOSは、「制服に身体を合わせろ」とでもいうかのように、とにかく全てをアップルがコントロールしています。練り上げられたUIガイドラインと独自の審査基準によって、アプリの動作問題を解決しています。また、クセのある端末ではあるものの、iTunes App Storeというグローバルマーケットや課金システム、iPodやiPhoneの成功による大規模経済によってビジネスが成立しています。「優秀な独裁による最大公約数の確保』といえます。

 マイクロソフトのWindowsは、「動かないこともあるさ」という共通意識や強烈な刷り込みがあります。アップデートやフリーズ問題も、ユーザーは「あって当然」と思っています。うらやましい(笑)。ビジネス面でも、アップル以上に強力な規模の経済、自由な流通、多くの成功事例など、Windowsそのものがマスマーケットであり、自分自身がルールであることが強みとなっています」(生路氏)

 これら他のプラットフォームのモデルを示したうえで、生路氏はAndroidを「発展途上の民主主義」と表現する。

Androidにまつわる問題は無政府ポリシーが根本的な原因となっている(生路氏の講演資料より)

 「グーグルのAndroidは、発展途上の民主主義や無政府状態に近いといえます。無償であることの品質統一へのモチベーションの低さ、課金システムの未整備やユーザーの単価意識の違いなど課題があります。グーグルやキャリアにルールを制定してもらう、アプリベンダ間でカルテルを作るといった考えもありますが、一番現実的なのは『Androidとは、そういうものだ』という前提で現実を受け入れることです」(生路氏)

 また、生路氏は「Androidの現実」を、以下の3点にまとめている。

  1. OSのベースはどんどん変化する――統一より進化優先
  2. アプリ単価は安い――速く安く作る&グローバルに広く売ることが必須
  3. 完全な「Run Anywhere」は難しい――互換性確認テストには割り切りが必要

 このようなAndroidの現実を受け入れたうえで、あるべき受け入れテストのガイドラインとはどのようなものか。生路氏は、ガイドラインとは「ことわざ=Wisdom(経験則や知恵)」のようなものとし、そうであれば端末評価とユーザー意見のデータから演繹可能ではないかという。そして、ACCESSでリリースしたAndroidアプリ「ACCESS NetFront Lifeシリーズ」の例を紹介した。

 まず、ユーザーからのデータを収集するために、コンタクトフォーム、メール、Twitterといった各種窓口と1人の専任担当者を用意し、開発チームと連携して素早くレス対応するという体制を作った。その結果、Twitterを始めユーザーからのフィードバックを集めることができた。

 続いて、それらを「意見」「質問」「不具合」などの報告種別に分けたり、報告元との関係を分析したり、OSや端末で整理したりすることで、国別の要望傾向や不具合の原因を知ることができた。さらに、それを基にアプリの改善すべき点を見い出し、不具合の回避方法や根本修正方法をガイドラインとしてまとめた。確固としたルールがないなりに、ユーザーからデータを収集してそれを知識に変え、さらにガイドラインという形でノウハウ化することまできたわけだ。生路氏は「このアプローチが正しいかどうかは検討が必要」としながらも、業界全体での取り組みを提案する。

 「今は、まだACCESSという1企業での話ですし、アプリ企業にとって知識は重要なので共有するかどうかは経営判断になります。ただ、知識の共用は難しいとしても、まずはデータの共有から始めてみてもいいのではないかと考えています。例えば、非営利団体の日本Androidの会でデータ収集するなど、検討してみてもよいのではないでしょうか」(生路氏)

60%の負担軽減ができるUIテスト自動化ツール

 ソニックスの立花優人氏は、AndroidのUIテストツール「Scirocco(シロッコ)」を紹介した。

ソニックスの立花優人氏

 Sciroccoは、AndroidのUIテストを自動化できるツールで、ApacheライセンスのオープンソースソフトウェアとしてGoogle Codeで提供されている。UIテストの自動化、レポート生成、Webでの共有などができるので、利用することで負担を大きく減らすことができる。日本語版チュートリアルもある

 SciroccoはJaywayによる「Robotium」とソニックスの「Scirocco plug-in」および「Scirocco TMS(Test Management System)」から構成されている。

  • Robotium
    • Jayway社が開発したテストライブラリ
    • UIのテストコードを簡単に記述
    • ほとんどのUI操作をサポート
  • Sciroccoプラグイン
    • Eclipseプラグイン
    • 複数端末で連続テスト実行
    • メモリ使用量を表示
    • テストコードを基に、スクリーンショット付きのテスト報告書を作成

 Androidアプリの企画開発を行っているソニックスでは、テスト項目数、端末の種類、OSバージョンが増えることで負担も増大して課題になっていたという。これを解決するために作ったのがSciroccoである。

 Andoridのテスト現場では、開発案件は増えるものの、どういったテストをすべきか分からないと悩むベンダも少なくないという。テスト部が発足してガイドラインの整備が進めば、Sciroccoの有用性も高まることになる。

 立花氏は「2時間でテストコードを書き、実機テストに10時間(例:1時間×10端末)かけるとしたら、全部で12時間かかります。Sciroccoを使うと、テストコード作成の4時間だけで済むため、60%以上の工数を削減できることになります」と、その導入効果を説明した。

条件によってはSciroccoを導入することでテストにかける時間を3分の1にまで削減できる(立花氏の講演資料より)

今後もAndroidテスト祭りと定例会を実施


Androidテスト部部長の宮田友美氏。イベントの最後で次回のテスト祭りや定例会といった今後の活動目標について紹介した

 イベントの本編では、これらの他にもテストを容易にすることを意識したソフトウェア設計改善や実際のテストテクニックをはじめとした実践的な話や高度な話など、とても濃い内容の講演が行われた。当日の発表スライドについては、Androidテスト部サイト内で公開されているので、本稿で紹介しきれなかったものも含めて、興味深いスライドばかりなので、ぜひチェックしてほしい。

 テスト部では、今後も第2回Androidテスト祭りや定例会などを開催予定しているとのことなので、Android開発のテストに興味がある方は参加してみてはいかがだろうか。

@IT関連記事


Androidアプリ開発テスト入門
日本Androidの会テスト部が、いままで培ってきたAndroidアプリ開発におけるのテストのノウハウを、実際のテストコード例とともに紹介していきます
New!Smart & Social」フォーラム
売れるスマホアプリを目指せ! テスト達人への道
安藤幸央のランダウン(56)
 iPhone/iPad・Androidアプリ開発にが重要な“使い心地”。しっかりとしたテストを経た高品質なアプリを作るためのポイントをまとめて紹介しよう
Java Solution」フォーラム 2011/4/27
スマートフォンアプリデザインに役立つ基礎のまとめ!
一撃デザインの種明かし(14) iPhone/AndroidアプリのUIデザインに困っている方のために、アプリの事例や、作るときのコツ、画面サイズのデータ、参考リンクなどを紹介
Androidはオタクとオシャレのハイブリッドで流行る!
日本Androidの会 女子部に聞く 
「女子部」の成り立ちや活動内容を中心に、Androidマーケットの問題点、UIデザインの重要性、ライバルであるiPhoneについて、など
Smart & Social」フォーラム 2010/1/21
はじめまして。Androidアプリ開発&デザイン
@ITスマソ開設記念! 女子部部長に聞くAndroid
年末も大注目のAndroidのアプリについて。制作のコツ、注意点、アイデア、ソーシャルサービスの生かし方などを探った
Smart & Social」フォーラム 2010/12/7
女子部が斬る! Androidアプリ評価コメント
昨今問題となっているアプリストアのアプリ評価(レビュー)コメント。参考にならないコメントや点で的外れの評価、いわれのない中傷などなどに悩むアプリ開発者も多い。そんな状況を打破するための“評価コメント”を“評価”するコラム連載
Smart & Social」フォーラム
イチから始める! Androidセキュリティ
Androidに潜む危険はマルウェアだけはありません。実はアプリの作り方にも注意が必要です。クウと一緒に学びましょう
Security&Trust」フォーラム
Androidセキュリティの今、これから
爆発的な勢いで普及し始めたAndroid端末は、大きなポテンシャルを秘める一方で、セキュリティという課題にも直面しています。この連載では Androidアプリ開発者や一般ユーザー、ビジネスユーザーと、あらゆるユーザーを対象に、Androidのセキュリティについて解説していきます
Security&Trust」フォーラム

2/2  

 INDEX
第1回Androidテスト祭りレポート
Android開発で泣かないための「テスト」の重要性
  Page1
Androidアプリ開発の“テスト”について考えるイベント
勢いの裏に隠されたAndroidのテスト問題
Androidテストの重要性と有効性
テストの複雑さ故に品質問題を抱えるAndroid
Page2
ユーザーの意見や評価データから導き出すガイドライン
60%の負担軽減ができるUIテスト自動化ツール
今後もAndroidテスト祭りと定例会を実施


 Smart&Social フォーラム トップページへ



Smart & Social フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Smart & Social 記事ランキング

本日 月間