モバイルアプリの継続的テストフレームワーク、配信後のユーザー体験を測定―Think IT Mobile Developer Seminar 2015レポート
DevOps時代のモバイルアプリケーション継続的テストフレームワーク
石坂氏のセッションで明らかになった課題を解決するためのソリューションについて、日本ヒューレット・パッカード株式会社 HPソフトウェア事業統括 ITマネジメントプリセールス本部 テクニカルコンサルティング部 小宮山 晃氏が解説。モバイルアプリケーションの継続的テストを実践するために、自動テストだけではなく手動テスト、性能テスト、テスト管理、仮想化を利用したテスト環境までをCIツールと連携し実行していくためのフレームワークを紹介した。
計画と開発フェーズの課題を解決するツール
モバイルアプリのデリバリ課題として、計画と開発、テスト、運用という3つのフェーズがある。石坂氏のセッションでは、計画と開発フェーズの解決策としてアジャイルが挙げられた。しかし、アジャイルプロセスは小規模であれば導入しやすいが、大規模システムや地理的分散チームでは導入しにくい。アジャイル開発手法として最も浸透しているSCRUMでは、スケールをもったプロセス実行が難しいからだ。
そのため、企業が求めるスケールに答えるためのプロセスとして、SAFe、DAD、Lessといったものが登場している。例えばSAFeは、大規模、地理的分散、コンプライアンスのための管理フレームワークで、Portfolio、Program、Teamの3層でアジャイルのスケールに対応する。Teamレベルでは、機能からユーザーストーリーに落として開発。Programレベルではエピックを実現する機能の管理と各チーム割り当てを管理する。Portfolio層では、戦略テーマから企業や事業部門で取り組むべき要望を管理し、経営層が投資効果を測定できる。
SAFeに準拠したアジャイルポートフォリオ管理を提供するツールとして、ヒューレット・パッカードが提供するのは「HP Agile Manager」である。バックログ、不具合テスト結果まで含めたアジャイルプロジェクトの進捗管理を可視化する。
また、開発にはテストがつきものだが、最もシンプルなテスト管理は、スプレッドシートによるものだろう。しかし、スマートフォンの場合は複数バージョンのOSや多種多様なデバイスがあるため、モバイルアプリの場合はWebシステムなどにくらべてテストケースが肥大化する傾向にある。このため、スプレッドシートでの管理は限界にきている。
ヒューレット・パッカードがテスト管理ツールとして提供するのは、「HP ALM/QualityCenter」である。要件、テストケース&結果、不具合情報を構造的に管理でき、品質状況にかかる管理コストを削減できる。また、各種レポーティングおよびKPIにより、品質状況をリアルタイムに把握、プロアクティブな対応が可能になる。
アジャイルで開発していると、タスクのひとつとしてテストが入っているが、QAチームは別という場合がある。この時、テストというタスクを管理するのはアジャイル進捗管理ツール、テストケースそのものを管理するのはテスト管理ツールというように、異なるツールを使っていることだろう。ヒューレット・パッカードでも、「HP Agile Manager」と「HP ALM/QualityCenter」に分かれている。ただし、これらは連係し、QAチームは早い段階から参加することが推奨される。プランニングの段階で、QAチームがアドバイスすることが重要だ。
テストフェーズの課題を解決するツール
モバイルアプリのテストでは、エミュレーターを使った単体テスト、実デバイスによる動作検証、UXテストやベータテスト、グローバルテストなどを含む統合フレームワークのテストの4つのレベルがある。特にモバイルに固有の問題として、実際のユーザーに近い通信環境でのテストが必要だ。社内のWiFi環境でのテストでは問題がなくても、3GやLTEなどの通信環境ではうまく動作しないなどのケースがある。最終テストの段階で通信環境に依存する問題が見つかると、アーキテクチャの見直しから必要になることもあるため、できるだけ早い段階で通信環境を含めたテストをするのがお勧めだ。
ヒューレット・パッカードの考えるモバイルアプリケーションテスト環境の構成は以下のようになる。
「HP Mobile Center」は、モバイルテスト管理とラボの機能を提供する。数百台のテスト用デバイスを複数のプロジェクトで共有でき、機能テストの自動化だけでなく、手動テストや性能テストの効率化も可能。ライフサイクルを通して必要とされる機能を、センター化して提供する。
例えば、機能テストは自動化が必須だが、手動テストが完全になくなるわけではない。従来は、テスターがテストのステップをスプレッドシートに記入し画面キャプチャーを貼り付けるといった管理方法が多かったが、手間がかかるうえすべてのステップを記憶しておくのも難しい。そこで「HP Mobile Center」では、手動・探索的テストツール「HP Sprinter」と連係することで、バックエンドでステップを記録し、画面キャプチャーを保存する。
また性能テストは、実デバイスで行うのはナンセンスなので、以下の4つの要素を仮想化する。
ユーザー
実ユーザーの操作をエミュレートし、大量ユーザーがアクセスしている状況を作って動作を確認する。
サービス
外部サービスと連係したアプリケーションでは、テストでそのサービスを使えない、あるいは使うとコストが発生するなどの状況がある。これを解決するため、ある種のスタブを作ってシミュレーションする。
ネットワーク
想定されるモバイルアクセス(3GやLTEなど)、クラウドアクセス時のネットワーク品質をシミュレーションできる。
データ
キャッシュを使うとテストの意味がないので、実データに近いデータを利用する。
これらの仮想化をPerformance Lifecycle Virtualizationと呼び、以下のようなソリューションで構成する。
また、性能テストでは、負荷をかけるためのマシンを大量に用意する必要があるため、せっかくアジャイルで迅速に開発しようとしているのに、テスト準備に時間がかかるという課題がある。しかし負荷生成の「HP LoadRunner」は、AzureやAWSといったパブリッククラウド上に構築することで時間短縮が可能だ。さらに、SaaS型で負荷テストソリューションを提供する「HP StormRunner Load」も提供している。
また、開発チームとQAとチームが分かれている場合、異なるツールを使っていてやりとりがわずらわしい。さらに、開発チームが使っているツールは、開発者以外には理解しづらいという課題がある。これを解決するツールが「HP LeanFT」である。開発チームの開発IDE(Visual StudioやEclipse)のUnitテストフレームワークでGUI機能テストを可能にし、TDDやCucumberを利用したBDD、ATDDフレームワーク上で機能テストを実現する。さらに、ステージによって使うテストツールが違うとガバナンスが効かない恐れがあり、統一したプロセスを作るには「HP Codar」が有効。これにより、DevOpsフレームワークへの統合が可能になる。
あなたのスマホアプリをユーザーはどう評価している?
スマホアプリへの評価が自社サービス全体の評価につながるモバイルの時代には、リリースしたアプリがユーザーにどう評価されているかを正確に知る必要がある。アプリのどこを修正すべきか、体感性能、動作安定性、バッテリやメモリの消費度合いの観点から可視化してくれる「AppPulse Mobile」について、日本ヒューレット・パッカード株式会社 HPソフトウェア事業統括 ITマネジメント統括本部 戦略推進室 BSMビジネス推進担当部長 鉾木敦司氏が解説した。
サービスの価値とスマホアプリの品質の関係
モバイルサービスは、顧客接点の拡大(いつでも、どこでも)を実現し、ユーザーを自社サービスに繋ぎとめる絶好の手段となっている。一方で、モバイルアプリの品質が悪いと、アプリが悪いと思うだけでなく、サービス全体が悪いと感じてしまう。つまり、アプリの品質が、顧客離れや売上げに影響するということだ。
では、スマホアプリの品質とは何だろう。機能や操作性、バグがない、定期的な機能追加や改善が見込めるなども評価基準になるが、最低限必要なのは瞬時に動くことだ。モバイルサービス浸透により「いつでも、どこでも」が定着したことで、「必要な時に、必要なことができる」ことが期待されるようになった。逆に言うと、それができなければダメなアプリということになる。そして、モバイルユーザーがそれを判断するのは、ほんの一瞬のことだ。
鉾木氏は、ユーザーがスマホアプリを評価する瞬間、逆に言えばアプリを見限る瞬間について、市場調査の数字をいくつか挙げた。
- スマホアプリが4秒以内に起動することを期待する人の割合は、61%
- スマホアプリが2秒以内に反応することを期待する人の割合は、49%
- バッテリ消費の激しいことを理由にアプリの使用をやめる人の割合は、36%
- 「応答なし」または「クラッシュ」が起きたらそのアプリを削除する人の割合は、53%
「起動に4秒」、起動したアプリを操作したら「反応に2秒」がユーザーの期待だ。また、不安定なアプリに遭遇した時の、ユーザー行動の上位4つは「アップデートやバージョンの有無のチェック」「そのアプリはもう使わない」「別の代替アプリを探す」「そのアプリを削除」である。アップデートをチェックしてくれるのはかなり寛容なユーザーで、ユーザーの本音は無慈悲だ。つまり、瞬時に動くかどうかというハードルを突破しないアプリは、門前払いされる危険性が高い。自社サービスの価値はスマホアプリの品質で決まり、それは一瞬の満足度で決まる。
AppPulseMobile:UXの定量的計測方法のご提案
ユーザー体験として測定すべき項目は、以下の6つだ。
- 起動時間(4秒以内)
- 画面反応時間(2秒以内)
- アプリのクラッシュ
- エラー発生
- バッテリ使用量
- データ通信量
これらは、性能、安定性、リソース消費の3つの分野にカテゴライズできる。
また、快適だったアプリが、ある日突然使いにくくなることがある。それは、端末を買い換えた、OSやアプリをバージョンアップしたなど、きっかけが分かりやすいものもあれば、ユーザー数が増えたためなど、ユーザー側ではコントロール不可能な理由もある。こういった情報を多面的に、かつ継続的に解析する必要がある。それを提供するのが、「AppPulseMobile」だ。仕組みは、以下の図のようになる。
「AppPulseMobile」は、iOSとAndroidに対応している。iOSのアプリはIPA、AndroidのアプリはAPKという形式だが、そのオリジナルのアプリに対して、まず「AppPulseMobile」のSDKでラッパー加工する。加工した物も、それぞれIPAとAPKの形式なので、それをGoogle PlayやApp Storeで配布する。ダウンロードしたユーザーは、ラッパー加工されているアプリを使っていると意識することはない。
ラッパー加工の手順は、「AppPulseMobile」のWebポータルにアクセスし、OSを選択、アプリ名を入力する。次の画面でアプリケーションキーが発行されるので、専用SDKをダウンロードする。それを解凍するとフォルダができるので、そこにオリジナルのアプリを入れると、ラッピング加工できる。オリジナルのソースコードにタグを追加するなどの変更は必要ない。
ユーザーがそのアプリを使用すると、起動時間やバッテリ消費などのUXデータを、HP Cloud上の「AppPulseMobile」に逐次転送する。それをリアルタイム集計して、インターネット経由で開発者や運用管理者に提供する仕組みだ。ダッシュボードでは、以下のような情報が見られる。
83というのは、100点満点中の得点。2段目が3つに分かれているのは、性能、安定性、リソース消費の3つのカテゴリである。図の例では、性能で5点マイナス、安定性で10点マイナス、リソース消費で2点マイナス、合計17点マイナスで、83点という評価になっている。このスコアは、測定対象期間とバージョンを選ぶことができる。
さらに、深掘りする以下のような情報を可視化できる。
ユーザーフロー分析
どの画面遷移を何ユーザーが推移したかを自動的に可視化。遅延の発生箇所、離脱したユーザー数とその原因、どの箇所に手を加えるべきかどこから改善すべきかの指針を得ることができる。
クラッシュ分析
発生時の端末状態やクラッシュトレールを見ることができる。
バッテリ消費分析
OSバージョンごと、端末機種ごとのバッテリ消費やユーザー数などをバブルチャートやグラフで可視化。
データ通信量分析
アプリ内で最も通信量を発生させるアクションTop5、アプリのバージョンごとの通信量比較、起動時(データ通信が一番多い)の影響度合い、バックグラウンド通信の影響度合い、通信先ドメインごとの通信量比較などを可視化。
「AppPulseMobile」は、擬似的なユーザー体験を測定するツールではなく、実ユーザーの体験を測定する。コード変更やタグ追加が不要で導入が容易という点も特長だ。価格は、ひとつのアプリケーションを1万スマホユーザーに、12カ月使って20万円と、導入しやすい価格で、継続的品質改善でビジネスに貢献する。スマホアプリの品質が自社サービスの価値に直結する時代、スマホアプリ品質の継続的改善によるビジネス寄与はますます大事になっている。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- クックパッドの開発体制、モバイルアプリを取り巻く環境と課題解決―Think IT Mobile Developer Seminar 2015レポート
- エンタープライズモバイルに必要なアプリの品質とは?―Think IT Mobile Developer Seminar 2016レポート
- アプリケーションライフサイクルの最適化がモバイルアプリの企業価値を高める
- モバイルアプリのテスト時における5つの課題とHPEが考えるテスト自動化とその先
- HPが提唱するDevOps実現の確実な切り口はテストツールの革新から
- アプリの差別化を図るにはインフラ監視だけでは不十分。UXを担保するAPMの必要性と手法とは
- 危険なモバイルアプリで会社を傾ける前に、低価格で簡単に使えるサービスで欠陥を洗い出そう
- ヒューレット・パッカード、世界最大級のARMスーパーコンピュータを開発、ベースプラットフォームを発売
- Ansible Practice Meetup ー「Ansible実践ガイド」出版記念イベントレポート
- 言語+フレームワークで選ぶ