モバイルアプリのテスト時における5つの課題とHPEが考えるテスト自動化とその先
社外向けサービスをスマートフォンアプリで提供するケースも増えてきた。つまりモバイルアプリが企業の「顔」となり、モバイルアプリのエクスペリエンスが企業の評価に直結する時代になっているということだ。アプリ開発にはテストがつきものだが、モバイルならではの課題や注意点もある。担当者の負担を減らし、ビジネス機会を逃さないスピードを実現する、コスト負担も少ないツールや手法はあるのか――。モバイルアプリテストの問題について日本ヒューレット・パッカード株式会社(以降、HPE)のシニアコンサルタントである小宮山 晃氏に話を伺った。
機能テストは自動化しなければやってられない
モバイルアプリのテストにおける課題を列挙してみよう。
- iOSやAndroidなどOSが複数あり、さまざまなバージョンを使っているユーザーがいる
- キャリアやメーカーによっては、OSをカスタマイズしている
- OSのアップデートが頻繁、アプリ自体のアップデートも頻繁
- ユーザーはネットワーク品質が制限された環境で使うことがある
- 社内でプロジェクトごとに可能な限りの台数のデバイスを購入してテストしている
すぐに思い浮かぶものだけでもこれだけある。このうち1〜3は「テストケースが大量になる」ことを意味する。大勢のテスト担当者が、さまざまなデバイスを使って機能テストを行い、それをExcelに記録していくような従来の方法では、そのうち破綻するだろう。もうすでに破綻しているという企業もあるかもしれない。つまり、モバイルアプリの機能テストは、自動化しなければ無理だということだ。
機能テストを自動化するツールは、フリーツールも含めていくつか存在する。HPEが提供するのは、HPE Unified Functional Testing(UFT)※やLeanFT※だ。開発担当とテスト担当が別で、異なる言語を使っている場合もあるが、LeanFTはその違いを吸収してくれる。
機能テストは自動化しなければやってられない、とはいえ、すべてのテストを自動化できるわけでもない。例えば「スライドしている途中にここをタップすると固まる」など、タイミングに依存するバグを見つけるのは人手に頼るほかない。HPEでは、そのような手動テストを効率化するツールとしてHPE Sprinterを提供している。手動テストでは「画面をキャプチャーして、どのような操作をしたか記録する」のが大変だが、HPE Sprinterは操作履歴ログをとっているので、自動的に記録され、テスターの負担を減らすことができる。
さて、いったん冒頭の課題4を飛ばして、5について考えてみよう。ユーザーが使うであろうすべてのデバイスを用意してテストするのはコスト的にも大変だが、プロジェクトごとに個別のテスト体制を組んでいる場合は、テスト用デバイスもプロジェクトごとに購入しているかもしれない。しかし、テストラボに用意したデバイスをすべてのプロジェクトで使えば、コストをおさえることができる。それを実現するのが2015年7月にリリースされたHPE Mobile Center※である。これはモバイルテスト管理の仕組みで、先述したHPE UFTやLeanFTと連係して、各デバイスに対してテストを行うことができる。
- 【HPE Mobile Center】さまざまなテストツールを統合し、実際のネットワーク(3G、LTE、Wi-Fi)環境や仮想ネットワーク環境下で、実デバイスプールとテストツール(機能テストツールや負荷テストツール)のHUBとなり、モバイルアプリケーションの機能テストと性能テストを実施できる、センターソリューション。テストツールをインストールしたPCの画面上に実デバイスのリモート画面が表示され、これを操作することで実機の遠隔操作やテストスクリプトの作成ができる。
テスト環境としては、テストケースを登録するテスト管理ツールの配下に、機能テストツールや手動テスト効率化ツールがあり、HPE Mobile Centerを通してデバイスにテストスクリプトを走らせるという状態だ。
性能テストはリアルなユーザーを再現しなければ意味がない
もうひとつ、機能テストツールだけではできないのが負荷テストである。機能テストツールと実機を何千台も用意するのはナンセンスなので、ユーザー操作の実記とサーバー間の通信をエミュレートするスクリプト化して多重度負荷をかけるのが一般的だ。このため、負荷をかけるシステムを組まないとテストできない。これを行うのは、HPE LoadRunnerである。高負荷の状態でもきちんと動作するか、高負荷状況下での機能テストを実施できる。HPE Mobile Centerを利用することで、高負荷状態での機能テストも統合できる。
構成としては、テスト管理ツールの配下にHPE LoadRunnerのコントローラーを置き、負荷を生成するHPE LoadRunner LoadGenaratorがアプリケーションのシステムに負荷をかける。この負荷生成マシンは、従来はオンプレミスでハードウェアを用意する使い方がメインだったが、AzureやAWSなどのクラウドを利用することもできる。使い分けとしては、金融機関などパブリッククラウドからのアクセスを制限しているようなセキュリティを重視する場合は従来通りオンプレミスで、イベントやキャンペーンなど対象サイト自体もクラウドで短期間に構築するといったスピードとコストを重視するなら負荷生成マシンにクラウドを利用するのがいいだろう。
性能テストでは、ユーザー以外のエミュレートも必要だ。例えば冒頭に挙げた課題のうち4は、ネットワーク品質の問題である。テストには、開発チームによる単体/コンポーネントテスト、結合テスト、UXテストなどいくつかのテストタイプがあるが、リリース前のモバイルテスト環境は通常、社内のWiFiを使って行う事が多く、その場合ネットワーク品質は非常によい。このため、最終的なシステムテストの段階になって3G環境ではうまく動かないことが分かり、非同期処理にするなどアーキテクチャの見直しが発生することもある。アジャイルを実現するためには、早い段階から実際のユーザーが利用するネットワーク品質でのテストをしておく方がいい。これを解決するのが、HPE Mobile Centerのソリューションを構成するHPE Network Virtualizationで、3G/4G/LTEといったモバイルアクセスをエミュレートする。
その他、昨今では外部サービスを組み込んだモバイルアプリも多い。この時、有償サービスであればテストのたびにコストが発生するため、あまりテストできないといった課題もある。さらに、データをキャッシュしていると応答性能を計測したことにならないので、データの仮想化も必要になる。HPE Mobile Centerは、これらの課題も解決する。
アジャイルならクラウド(SaaS)
冒頭に述べた5つの課題は、機能テスト自動化ツールや負荷テストツールをHPE Mobile Centerを使って統合することで、ほぼ解決できる。機能テストを自動化するだけならフリーツールもあるが、手動テストも性能テストもとなると、やはり有償ツールにメリットがある。モバイルアプリケーションのテストのポイントは、以下のとおりだ。
- 機能テストを自動化し、テスターは手動でしかできないテストに専念する
- 性能テスト用の環境を社内で構築できない場合はクラウドを利用
- ネットワーク仮想化によるテストで、ネットワーク品質に依存するバグを早めに見つけるのがアジャイル向き
さらに、アジャイルやDev/Opsの時代となれば、テストも速やかに実行したいので、負荷生成システムの構築などやっていられないかもしれない。例えば、イベントの登録申し込みで数万人が一度にアクセスするモバイルアプリを考えた場合、短期間かつ低コストで開発しなければならないのが普通だろう。
そこで有効なのがHPE StormRunner Loadだ。完全SaaS型の負荷テストソリューションで、ブラウザ越しにテストケースのスクリプト作成が行える。AzureやAWSなどにはすでに設定済みのインスタンスイメージが登録されているので、ツールのインストールなどは不要、10分程度で利用を開始できる。1ユーザーから百万ユーザーまで、世界中のクラウドを利用して大規模な負荷を迅速にかけることが可能だ。
モバイルアプリのテストでは機能テストの自動化が必須だが、HPEではそれだけでなく全方位での効率化にフォーカスしてツールやサービスを提供している。さらに、テストの前段階である計画と開発のフェーズでも、アジャイルポートフォリオを管理するツールHPE Agile Managerを提供しており、DevOps時代のモバイルアプリデリバーをライフサイクル全体にわたってサポートしている。
HPEのモバイルテストに関連する考え方やツール、ソリューションに関する無料セミナーが実施されるので、ぜひそちらも参考にしていただきたい。また、同じくHPEの藤井氏によるAgile Managerをベースにしたエンタープライズ・アジャイルの入門書が発売になるのでお見逃しなく。詳しくは以下をご覧ください。
インタビューに登場した小宮山氏も登壇する、Think IT主催のモバイル開発者向けのセミナーが2月25日に実施される。テーマは「エンタープライズモバイル」。これから導入を検討していたり、まさに開発中といった読者に必見の内容だ。
Think ITでの人気連載、HPEの藤井氏による「Agile Managerで始めるエンタープライズ・アジャイル」が1冊の本に。電子書籍は絶賛発売中、紙書籍(オンデマンド印刷)は2月中旬よりAmazonで発売予定。
インタビューの内容をまとめた資料を、関連サイト「Find-IT」で無料ダンロードできる。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- アプリケーションライフサイクルの最適化がモバイルアプリの企業価値を高める
- モバイルアプリケーション開発のトレンドやテストの方向性とは
- モバイルアプリの継続的テストフレームワーク、配信後のユーザー体験を測定―Think IT Mobile Developer Seminar 2015レポート
- エンタープライズモバイルに必要なアプリの品質とは?―Think IT Mobile Developer Seminar 2016レポート
- 【デモ動画あり】実現可能な地に足の着いたDevOpsの第一歩を踏み出そう
- HPが提唱するDevOps実現の確実な切り口はテストツールの革新から
- テスト自動化を導入してみたものの思ったより効果が出ない……その解決策は2つの仮想化にある
- アプリの差別化を図るにはインフラ監視だけでは不十分。UXを担保するAPMの必要性と手法とは
- 日本HP、モバイルアプリケーション開発の効率化を支援するソリューションを拡充
- クックパッドの開発体制、モバイルアプリを取り巻く環境と課題解決―Think IT Mobile Developer Seminar 2015レポート