スマホアプリとは?(iOSとAndroid)
スマホアプリは、主にiOS用とAndroid用の2種類に大別されます。これは、現在の主流のOSごとに分かれているため、わかりやすい分類です。さらに、スマホアプリはその内容によって、ネイティブアプリとハイブリッドアプリの2種類に分けられます。
ネイティブアプリ: Android、iOSそれぞれのOSに最適化されたコードで作成されているアプリです。動作が軽く、細かい設定が可能ですが、開発費用が高くなりがちです。
ハイブリッドアプリ: Android、iOSに対応していますが、一部のコンテンツにWebviewを利用してWebアプリの内容を表示するアプリです。開発費用は抑えられますが、動作が重く、細かい設定が難しいことがあります。
本記事では、主にネイティブアプリのテストについて説明します。
スマホアプリのテストで注意すべきポイント
スマホアプリのテストでは、Webアプリとは異なり、スマートフォン特有の観点を考慮する必要があります。以下のポイントに注意してテストを作成しましょう。
圏外になったり、基地局が切り替わったりする状況での動作確認が必要です。また、電波状態が悪い場合の挙動も確認しましょう。
電源ボタンを押してのスリープや、他アプリの起動、電話着信があった際の復帰時に正常に動作するかを確認します。
アプリ内で時間を意識する必要がある場合、スマホの日時を変更した際に問題が発生しないか確認します。
アプリがデバイスの容量を適切に使用しているか(不要なデータやキャッシュが増えていないか)や、容量が逼迫している状態でも正しく動作するかを確認します。
スマートフォンには、様々な解像度の端末があります。よくある欠陥として、画面解像度の違いによる画面崩れがある為、複数の画面解像度でのテストを行う必要があります。また、OSのバージョンは複数バージョンが並行で稼働している為、端末要件を確認した上で、対象バージョンで動作確認も行う必要があります。
効果的なスマホアプリのテスト方法

スマホアプリのテストでは、「2. スマホアプリのテストで注意すべきポイント」でも記載した通り、多端末での検証が重要です。しかし、市場には多くの端末が存在するため、全ての端末でテストを行うのは不可能です。効率的なテストを行うためには、「どの端末」で「何を」確認するかが重要です。以下のポイントに注目しましょう。
OSバージョンを選定する目的は、特定のOSバージョンで機能的な欠陥が発生しないかを確認するためです。一般的に、OSバージョンはメジャーバージョンとマイナーバージョンに分類されます。機能的に大きな変更がある場合はメジャーバージョンが変わることが多いため、テスト対象を選定する際にはメジャーバージョンに注目することが多くなります。選定の際には、テスト対象システムの動作バージョンを確認し、動作バージョンの下限から最新バージョンまでを対象とする必要があります。また、OSバージョンの市場シェアも考慮しましょう。

市場には様々な解像度の端末が存在します。コンテンツはそれぞれの解像度に合わせて最適化されて表示されますが、一部の端末では最適化が行われず、画面表示が崩れてしまうことがあります。このような画面崩れを発見するためには、様々な解像度を持つ端末を選定し、テストを行う必要があります。
上記の2点に加えて基準とするのが、市場の端末シェア率です。マイナーな端末の場合、ユーザーが使用する可能性が低いため、端末選定の優先度は下がります。逆に、市場で高いシェアを持つ端末であれば、その端末を使用するユーザーも多くなる為、端末選定の優先度が上がります。市場シェアについては、定期的に調査結果が公表されていますので、それを参考にして効率的に端末を選定しましょう。
端末台数が増えると、当然ですがテストの工数も増えていきます。そのため上記の3点(OSバージョン、画面解像度、端末シェア)に注目して、端末を選定した後は、その端末で「何を」テストするかを考える必要があります。
例えば、画面解像度によって表示が崩れる可能性があるため、表示系のテスト項目は画面解像度別に実施する必要があります。しかし、機能系のテスト項目については画面解像度に依存しない為、優先度を下げることができます。一方、機能系のテスト項目は、OS バージョンに依存する為、OS バージョン別に実施する必要があります。
また、端末依存の欠陥が発生する可能性がある為、市場シェアが大きい端末については、機能系、表示系ともに優先度を上げて対応しなければなりません。このように、「どの端末」で「何を」確認するかの優先度をつけることで、テストの実施範囲を効率的に決めることができます。限られた工数の中で効果的なスマホアプリのテストを行うためには、テスト対象の選定と実施範囲の見極めが重要です。
効率的なテスト範囲の決め方
スマホアプリのテストには、スマホならではの特有の観点が数多く存在します。例えば、異なる解像度やOSバージョン、通信状況などが挙げられますが、これら全てを網羅するのは現実的ではありません。そのため、テスト範囲を効果的に決めることが重要です。具体的には、以下のようなアプローチが考えられます。
全ての状況を想定してテストを行うのではなく、重要な機能や影響が大きい項目に絞ってテストを行うことで、リソースの節約が可能です。例えば、オフライン時の動作確認を全ての画面で行うのではなく、主要な処理に集中することで効率的にテストを進めることができます。
「3. 効果的なスマホアプリのテスト方法」でもご紹介しましたが、市場シェアが高い端末や、重要なユーザーが利用すると予測される端末に重点を置き、その端末でのテストを優先的に行います。これにより、実際の利用状況に即したテストが可能になります。
ユーザー体験に大きな影響を与える機能やセキュリティに関わる要素など、リスクが高い項目に対して優先度を上げてテストを実施することで、重要な項目から取り組むことができます。
これらの対応により、限られたリソースの中で効果的なテストを実施し、スマホアプリの品質を確保することが可能です。工数を考慮しつつ、優先度をつけてテストの実施範囲を決めることが、スマホアプリのテストの成功につながります。
スマホアプリのテストケース例

スマホアプリの具体的なテストケースを紹介します。これらのテストケースは、アプリが様々な条件下で正しく動作することを確認するために重要です。以下に、ログイン画面を対象としたテストケースを示します。
テスト対象 | ログイン画面 |
テスト観点 | 正しいユーザー名とパスワードを入力し、ログインできること ログイン後は入力したユーザー名でログインできていること |
テスト条件 | ユーザー名(XXXXXXXXX) パスワード(XXXXXXX) |
テスト手順 | ログイン画面を開き、テスト条件のユーザー名、パスワードを入力後、ログインボタンをクリックする |
期待結果 | ログイン成功画面にて、ユーザー名1が表示されること |
テスト対象 | ログイン画面 |
テスト観点 | オフライン状態でログインを行なった場合、ログインできないこと |
テスト条件 | ユーザー名(XXXXXXXXX) パスワード(XXXXXXX) |
テスト手順 | 1.ログイン画面を開き、オフライン状態にする 2.テスト条件のユーザー名、パスワードを入力後、ログインボタンをクリックする |
期待結果 | ログイン画面にて、「ログインに失敗しました」のメッセージが表示されること |
テスト対象 | ログイン画面 |
テスト観点 | ログイン中にサスペンド(着信)が発生しても、処理が継続されること |
テスト条件 | ユーザー名(XXXXXXXXX) パスワード(XXXXXXX) |
テスト手順 | 1.ログイン画面を開き、テスト条件のユーザー名、パスワードを入力後、ログインボタンをクリックする 2.クリック直後に着信を受け、サスペンドさせる 着信を終了し、アプリ表示へ戻る |
期待結果 | ログイン成功画面にて、ユーザー名1が表示されること |
テスト対象 | ログイン画面 |
テスト観点 | 端末容量が逼迫している状態でもログインが可能なこと |
テスト条件 | ユーザー名(XXXXXXXXX) パスワード(XXXXXXX) 端末容量逼迫状態(空き容量10MB以下) |
テスト手順 | ログイン画面を開き、テスト条件のユーザー名、パスワードを入力後、ログインボタンをクリックする |
期待結果 | ログイン成功画面にて、ユーザー名1が表示されること |
テスト対象 | ログイン画面 |
テスト観点 | ログイン画面にて、画面を回転させた際に表示崩れが発生しないこと |
テスト条件 | ユーザー名1(XXXXXXXXX) パスワード1(XXXXXXX) |
テスト手順 | 1.ログイン画面を開き、画面を縦画面から横画面に変更する 2.その後、横画面から縦画面へ変更する |
期待結果 | 縦画面から横画面への変更、横画面から縦画面へ変更した際、画面サイズに合わせて表示が変わり、画面崩れや見切れ等が発生していないこと |
まとめ
本記事では、スマホアプリのテストで注意すべきポイントや効果的なテスト方法について解説しました。スマホアプリを提供する際には、端末の多様性や環境条件に応じた適切なテスト戦略の立案が不可欠です。テスト範囲を適切に設定し、リソースを最大限に活用しましょう。
当社は、スマホアプリをはじめ、WEBサイトやIoT機器、組み込み機器など幅広い検証実績があります。お客様の慣習やプロダクト特性を考慮し、テスト計画から実行までトータルでご提案します。当社のソフトウェアテスト・第三者検証サービスについて詳しい話を聞きたい、具体的な費用感を知りたい方は以下よりお気軽にお問い合わせください。