Pocket

こんにちはkoglenです。
今回は今や需要が増えているスマートフォンのWebアプリケーションサイトを構築するうえで、気を付けるべき点を私が経験したことを踏まえていくつかのポイントをご紹介したいと思います。

要件定義フェーズ

★ユーザー定義を明確にすべし

スマートフォンはOSのバージョンや実機端末のブランドや利用するブラウザにより表示が崩れたり予期せぬ動作が発生したりします。
予算があればもちろん対応することは可能ですが、限られた予算と工数の中では、対象を絞ってプロジェクト計画をたてなければリリース後に問題が発覚してあとでもめる原因となる可能性があります。
要件定義の段階でどうすべきかを明確にし顧客への同意を得ておくことを強くお勧めします。

★テスト環境と実機端末の状況を把握すべし

まずは実機端末を利用してテスト環境へアクセスできる環境が存在するか確認しておく必要があります。
存在しない場合はどのように環境を作るかプロジェクト計画の時点で検討しなくてはなりません。
また、移動中や顧客が利用する通信回線状況、実機端末により画面描画までのレスポンスが大きく変わることになるため、
どこまでをテストで担保するかをあわせて確認しておくとよいでしょう。

さらにはおおまかなスケジュールを作成した後に、現在のOSのバージョンアップや新しい実機端末の発売状況から、スケジュールの中にどのタイミングまでであれば追加で確認対象とするかを明示しておくことでリスクが軽減できるので、プロジェクト計画にもりこんでおくことをお勧めします。

設計フェーズ

★対象OS、ブラウザの仕様を把握しておくべし

例えば有名なところでiOSの5と6ではinput tyep=numberを仕様した際にリクエストを飛ばしたタイミングで先頭の0が削除さるなどの挙動が変わるケースがあります。
ユーザーフレンドリーな実装とするには入力フィールドに適したキーボードが立ち上がるように指定すべきですが、設計時に対象としたOSやブラウザの仕様をおさえて設計する必要があります。

テストフェーズ

★検証は実機端末を利用すべし

プロジェクト計画時にどのようなテスト方針とするかを明確にしておけばあとは粛々とテストするだけです。
そこでエミュレータを利用して動作を担保することを検討することもあるかと思いますが、エミュレータはあくまでエミュレータです。
例えばAndroid OSのエミュレータで2.X系のOSバージョンで動作検証をしたからといって、前述のとおり対象のOS/ブラウザでの動作が担保できるかというとそれはNOです。
ですのでエミュレータは実装後の軽い動作確認程度ととらえておくとよいでしょう。

★テスト対象のエビデンスを取得する箇所を明確にすべし

実機端末を利用してテストするうえで苦労するのはテスト結果をどのように残すか?という点が挙げられます。
作成する画面が長いスクロールとなる場合など、全ての画面を取得する場合はスクリーンショットを複数とったあとにその画像をつなぎ合わせるなどの作業が発生する可能性があります。
正直こういった作業が発生すると取得したスクリーンショットの命名規則も実機によることになるためとても大変でした。
大変といえばテスト対象に購入した古めのOSの検証対象実機がそもそもスクリーンショットが撮れない(Android 2.3.5でもそういった機器がありました)ということもありました。
また自社案件でない場合などは、検証実機を直接PCに接続することへのコンプライアンスの壁などがあるため取得したスクリーンショットをどのようにエビデンス格納フォルダーへ持っていくかなども検討しておかなければなりません。
最後に効率化という意味では全画面をスクロールして取得するアプリなどを利用して軽減する手もありますが、その場合、あくまでもそのアプリの仕様によってしまうことになりかねません。
このような理由からただエビデンスを撮るというだけでも様々な点を考慮した効率的なテスト方法の検討が必要になるわけです。

終わりに

以上、いかがでしたでしょうか?
こんなこと常識だよという方もいらっしゃると思いますが私は色々と苦労しました・・・
全ては計画の時点で考えておければ理想ですが、実際はなかなか全て事前に懸念事項の洗い出しを行い対応方針を決めておくのは難しいと思いますので、最低でも要件定義に記載した記述は顧客と握っておくことをお勧めします。
この記事が少しでも皆さんのお役にたてたのであれば幸いです。