はじめに
モバイルアプリケーションに対するテストは、これまでのクライアントアプリケーションと比べるとフラグメンテーション(OSバージョン、アプリバージョンバージョン、デバイス数)化が進んでおり、かつ、リリースまでの期間が短期間であるという課題を抱えている話をよく聞きます。
開発手法や短期間リリースのために Agile 手法やリリース&デリバリまでを高速化するために DevOps のフレームワークを活用しようという話も聞きますが、特にテストについてはフラグメンテーション化のために膨れ上がってるのが現実です。そこで、今回は、モバイルアプリケーションのテスト効率化を実現するコアとなる「 HPE Mobile Center 」の概要をざっと紹介し、インストールについても解説していきます。
概要
モバイルのテスト効率化というと機能テストの自動化にフォーカスされる事が多いですが、機能テストの自動化だけをとってみても、スクリプト資産やデバイスの管理など単純にスクリプト化する以外の部分まで含めて考えなければいけません。HPE では、モバイルアプリケーションのテストサイクルをカバーするコアとして「 HPE Mobile Center 」という製品があります。一枚で説明すると次のような範囲の課題をカバーする事ができます。
右下の図で示しているように自動テストだけではなく、マニュアルテストや性能テスト、セキュリティテストまでふくめた範囲をカバーする事が可能です。
また、テスト基盤を構成するラボ管理機能も提供しているため、大量のデバイスを管理したり(OSバージョン情報や複数プロジェクトで共有利用できるような管理)、ビルド後のアプリケーションのデプロイ、アンデプロイまでを統一したプロセスにできます。また、ラボ機能を利用することで、現在は機能テストや性能テストは弊社テストツールとの連携のみですが、将来的には OSS を含めた他のツールとの連携も予定しています。
ネットワーク仮想化も利用する事が可能です。ネットワーク仮想化ってなんだろう?という方がいましたら、先月に同じメンバーの松尾さんが Think IT の記事で書いていますので是非そちらを読んでみていただきたいと思います。ポイントを言うと、ネットワーク品質(パケットロスとか回線速度、遅延など)は実際にテスト環境で再現することができず、WiFi 環境でテストする事が多いですよね。その場合、リリース後にネットワーク品質による問題が発生するとシステム増強などでも改善できない場合が多く、アプリの改修が発生する事になります(非同期処理をいれるとか)。そこで、機能テストの段階から WiFi テスト環境でも実際の LTE や 4G の回線品質をシュミレーションして早くユーザー体感をフィードバックをかけるというのが海外では主流になっていて、弊社だけではなく他社を含めこのネットワーク仮想化というのがでてきています。
では、コア製品というのであればどのように他のツールと連携させて使っていくのかと言うと、下図のようになります。中央の「 Mobile Center 」というのが今回紹介する製品です(こういうコアになる製品をセンター製品と言ったりします、それで、製品名に Center が付いてます)。機能テストの自動化を実施するには、以前ご紹介した「Unified Functional Testing (UFT)」を利用します。この図をみると「 全部導入しないと使えないんですか? 」と聞かれる事がありますが、そうではないです、これはテスト製品のフルカバーを掲載していますので、必要な機能にあわせて取捨選択する事ができます。お客様にとってどこから導入開始したらいいのかと聞かれる事も多いですが状況(お客様現場メンバーのスキルや実施済みの取り組み、失敗した取り組みなど)によって変わりますのでブログだけで一方的なアドバイスは難しいですので、是非その際はこちらまでご相談いただければと思います。
先進的な取り組みをされているお客様の中には DevOps でチームがデプロイまでを自動化していく取り組みをされている事もあります(まだまだ日本では様子見という判断が多いですが)。その場合、チームやプロジェクトによってインフラ自動化のツールもまちまちだったり(Chef, Puppet, Ansible など)、パイプラインやゲート基準もまちまちだったりしますよね。そこで、そういったツールやパイプラインを統一していくツールとして HPE では「 HP Codar 」という製品があります。詳細は別の機会にしたいと思いますが(どうしても直接でも聞きたい方がいましたらこちらまで問い合わせください)、DevOps までモバイルアプリケーションのテストプロセスカバー範囲を広げると次のような構成になります。
DevOps の取り組みを実施するには開発チームだけではなく運用チームやゲート毎に承認プロセスがあるはずなのでそこまで含めたパイプラインを標準化していくためのフレームワークを提供する事が可能です。
スケールを考慮しなければならない場合、早めに標準化していく事がより重要になりますが、この話は別の機会にしたいと思います。
インストール
では、さっそく「 Mobile Center 」をインストールしていきましょう。まずは、システム要件ですが、想定しているのはブログ投稿時点で最新バージョンである 1.52 です。ですので、最新のシステム要件についてはこちらまでお問い合わせください。iOS デバイスを接続される方は事前に iTune をインストールしていただく事を推奨します。今回は事前にインストールしている事を前提に進めていきます。
ちとメモリー要求が高めなので、お手軽にとは言えませんが、なんとか近い環境をご準備ください。インストールバイナリについては、こちらまでお問い合わせいただければ DVD で送付させていただきます(その際、Windows 版希望とリスエスとしてください、Linux 版も提供可能ですが、今回の「ここからはじめよう」では Windows 版の説明だけですので、Linux 版はインストールガイドを見て実施していただく事になります)。
では、DVD まで入手して手元にあるとして手順を進めていきます。ドライブを開くと、「SERVER」フォルダがあるので、こちらをクリックして開きましょう(↓)。
次にフォルダ内の「install-server」という実行ファイルがあるので、これを「管理者として実行」しましょう(↓)。するとウィザードが起動してきます。
途中でエラーが発生してしまうことを考慮し、現在作業中のデータは一旦保存していただき、不要なアプリも終了しておきましょうという英語の案内がでるので、特に問題なければ、「Next」をクリックしましょう(↓)。
次にライセンスアグリーメントが表示されますので、目を通していただき、問題なければ、「I accept」にチェックして「Next」をクリックしましょう(↓)。
次はインストール先を指定します、特に問題なければデフォルトのパスのままで、変更されたい場合は適宜変更したパスを指定して「Next」をクリックしましょう(↓)。
iTunes がインストールされているか、Android のドライバがインストールされているかを聞いてきますので、今回はj事前に iTunes をインストールしているので、Yes 、Android ドライバについてはもし事前にインストールされている場合は Yes ですが、そうでない場合は、No をチェックして「Next」をクリックしましょう(↓)。この場合、Googleの標準ドライバがインストールされます。
次に、この「Mobile Center」がインストールされたマシンに外部からアクセスする際に使う IP アドレスかホスト名(他マシンからホスト名でアクセスできる)を指定して「Next」をクリックします(↓)。
「Mobile Center」はDB として PostgreSQL を利用しており、自動でインストールされます。その DB のポートと superuser のパスワードを指定します。また、管理者のID とパスワードも作成するためここで記述しておきます(↓)。
すると設定した内容の確認画面が表示されますので、問題なければ、「Install」をクリックしましょう(↓)。これでインストールがはじまります。
はい、ここまでくると、これまでの設定に基づき、インストールがはじまります。下にステータスバーがありますので(↓)、進捗具合は見えます。だいたい、上述の最低環境で 10 分以内ほどで終わりました。
途中で次のようなポップアップ画面がでることもありますが、そのまま無視してしてください。
はい、次の画面が表示されれば無事インストール成功です(↓)。「Done」をクリックしてウィザードを終了させましょう。
動作の確認をしておきます。ブラウザから、
http:// 先ほど設定した IP アドレスまたはホスト名 :8080/
と入力してみましょう。次の画面が表示されていれば無事サービスが起動している事が確認できます。私の環境でインストールしたのが1ヶ月ほど前でしたのであと 3 日で切れますよと警告がでています(↓)。評価期間ライセンスは 40 日になりますので、ちょうどこの投稿時点が 37 日目ってことになります。みなさんの環境ではこのブログでインストールしたばかりだと思いますので40日残っているはずです。
以上でインストールの説明を終了します。皆さんお疲れ様でした。
次回は、実際に問い合わせや検証で利用される事の多い、モバイルテストの機能テスト自動化を「 Mobile Center」と「UFT」を連携させる方法について紹介していきたいと思います。