テストに関する事項
テストに関する事項は政府公開のデジタル・ガバメント推進標準ガイドラインに照らし合わせると以下となります。
情報システムの設計から運用開始に至るまでの全てのテストについて、テストの種類、目的、内容、実施者、合否判断基準、テスト実施環境などを記載する。
本項では、このアプリのテストに関する要求として、以下の事項を定義します。
要件内容
- テスト対象OSバージョン
- 実施タイミング
- 検証観点
- 実施方法
テスト対象OSバージョン
テストでは網羅性が求められますがサポート対象とする全てのOSバージョンでテストを実施しようとすると、機種との組み合わせによってパターンが膨大になってしまい、工数が嵩みます。 また実機ともなるとOSの再インストールができないため狙ったバージョンを用意することも困難であり、仮に用意できたとしても多くの経費がかかってしまう懸念があります。
そのためサポート対象OSバージョンの中から以下の観点でテストに必要と思われるOSバージョンを選定します。
- ユーザ使用率が高いOSバージョン
- このアプリへ影響のある機能追加・変更があったOSバージョン
これらで選定したものをテスト対象OSバージョンとします。
実施タイミング
このアプリでは、以下の工程でテストを実施します。
工程 | 概要 |
---|---|
PG/UT | 機能単位でのレイアウト(表示崩れなど)と動作を検証する |
結合テスト | 複数の画面や機能にまたがる動作やバックエンドとの接続などを含めて、アプリ全体の動作を網羅的に検証する |
システムテスト | 要求した機能および、性能を満たしていること検証する |
テスト種別
テスト検証観点として、大きく以下のようにカテゴライズしてテストします。 それぞれのテスト種別をテストするタイミングとテスト内容に関する詳細は、テスト計画にて決定します。
テスト種別 | 検証概要 |
---|---|
機能テスト | モバイルアプリケーションの機能が動作することを検証する |
構成テスト(OSバリエーション) | 各種OSバージョン毎にモバイルアプリケーションの機能が動作することを検証する |
構成テスト(レイアウトバリエーション) | 異なる画面解像度でレイアウト崩れが起きないことを検証する |
構成テスト(ネイティブ機能バリエーション) | このアプリがサポートしているネイティブ機能(カメラ、生体認証など)を検証する |
性能テスト | モバイルアプリケーションのレスポンス遅延がないことと、アプリが使用するCPU・メモリ使用率を検証する |
セキュリティテスト | モバイルアプリケーションのセキュリティ品質が確保できているかを検証する |
機能テスト
要求、仕様通りに機能が動作すること、また表示されたアプリ画面においてレイアウト崩れが起きていないことを検証します。
構成テスト(OSバリエーション)
AndroidとiOS(iPadOS)それぞれで複数のOSバージョンを準備し、OSバージョン毎に機能動作を検証します。 なお検証するOSバージョンは先述したテスト対象OSバージョンについてで記載した観点を基に選定します。
構成テスト(レイアウトバリエーション)
AndroidとiOS(iPadOS)それぞれで複数の画面解像度を準備し、レイアウト崩れが起きていないかを検証します。 ここでは画面解像度の選定基準を以下に定義します。
Androidの選定基準
Androidは、多種多様な機種がリリースされており、画面解像度の種類が多く存在します。 全ての画面解像度をテスト対象とするのは期間や費用の面から現実的ではありません。 しかしシェアの高い端末の画面解像度のみをテスト対象とすると、テスト対象に偏りが出てしまう可能性があります。 そこで、国内シェアの高い主要メーカー数社を選び、それぞれのメーカーから直近4年間以内に発売された機種のアスペクト比や画面解像度を調査した上で、その中からテスト対象を絞り込むものとします。
選定基準 選定内容 シェア(利用度合い) Android機種の中からシェアの高いメーカーを調査して、上位数社を選定 これにAndroidの開発元であるGoogleを加え、以下の基準に従ってテストで使用する画面解像度を選定します。
選定基準 選定内容 アスペクト比率 主要メーカーが直近4年以内に発売した機種のアスペクト比率のバリエーションから、最小と最大のアスペクト比率を選定 パンチホール機種 パンチホール有の機種の中で最大の画面解像度を選定 iOS/iPadOSの選定基準
シェア(利用度合い)の高い機種を以下の基準に従って選定し、その機種の画面解像度をテストに使用します。
選定基準 選定内容 シェア(利用度合い) iPhone、iPadそれぞれの機種の中でシェアの高い機種を調査して、上位数機種を選定 これに加え配信対象OSバージョンの範囲内で、Appleのサポートが続いている機種より以下の基準に従って選定します。
選定基準 選定内容 画面解像度 最大と最小の画面解像度を選定 ノッチ ノッチ有の機種の中で最大の画面解像度を選定
構成テスト(ネイティブ機能バリエーション)
このアプリに関するネイティブ機能(カメラ、生体認証など)をテスト対象とします。 ネイティブ機能を踏まえてテストに必要な機種を準備します。詳細はテスト計画にて決定します。
性能テスト
性能テストは性能に関する事項で定義した応答速度が満たせているかの確認と、メモリリークなどアプリのクラッシュにつながる問題がないかの確認をします。 なおテスト内容に関する詳細は、テスト計画にて決定します。
セキュリティテスト
セキュリティテストは情報セキュリティに関する事項で定義した通りOWASP MASVSのL1(標準的なセキュリティ)を満たすテストを実施します。 ただし、このテストは外部のセキュリティ診断サービスを使用し、そのフィードバックを受けることで対応します。そのため開発時は有識者によるソースコードレビューのみとします。
実施方法
テストは、主に手動と自動の2種類でテストします。それぞれの実施内容は以下になります。
方法 | 概要 | 内容 |
---|---|---|
手動 | エミュレータ/シミュレータと実機にて、手動テストを実施する | 機能確認やレイアウト崩れがないかなどの表示確認と性能を検証する |
自動 | 自動化ツールを利用して、自動テストを実施する | ロジック部分の網羅条件を全て満たしていることを検証する |