全体テスト計画
テスト方針
テストに関する事項で記載したテスト要件を網羅するようにテストを実施します。
テスト工程定義
このアプリのテストでは、単体テストと結合テストを実施します。 テストに関する事項のテスト種別で定義したテスト種別をそれぞれのテスト工程で検証します。
テストに関する事項の「実施タイミング」では、システムテスト工程も記載しています。しかし、モバイルアプリで特徴的なテストをシステムテスト工程で実施することは少ないと考え、このアプリでは結合テストまでの計画としています。
単体テスト
単体テストでは、主に開発した画面や機能単位のレイアウト(表示崩れなど)と動作を検証します。なお、カメラやPush通知といったネイティブ機能と連携する画面や機能については実機を用いて動作検証します。 これにより、画面や機能単位の品質を保証することが目的となります。
テスト種別 | 検証内容 |
---|---|
機能テスト | 画面または機能毎のレイアウト(表示崩れなど)と動作を検証。なおカメラやPush通知などネイティブ機能と連携する画面や機能については実機を用いて動作を検証 |
結合テスト
結合テストでは、複数の画面や機能にまたがる動作を検証し、利用シナリオ全体の品質を保証します。また、バックエンドおよび外部サービスとも接続し、アプリとそれらの間のインターフェースなどに齟齬がないことも保証します。 加えて構成テスト、性能テスト、セキュリティテストの観点についても検証し、総合的にアプリとしての利用に耐える品質であることを保証します。
テスト種別 | 検証内容 |
---|---|
機能テスト | 利用シナリオに沿ったアプリの動作と、バックエンドおよび外部サービスとのインターフェースを検証 |
構成テスト(OSバリエーション) | テスト対象OSバージョン毎に機能動作を検証(※1) |
構成テスト(レイアウトバリエーション) | アスペクト比率、画面解像度(パンチホール、ノッチ含む)毎にレイアウト崩れがないかを検証(※1) |
構成テスト(ネイティブ機能バリエーション) | このアプリに関連するネイティブ機能(※2)の有無や種別に関係なく動作することを検証(※1) |
性能テスト | テスト実施中にレスポンス遅延がないこととその他に性能に問題のある箇所がないことを検証 |
セキュリティテスト | 外部のセキュリティ診断サービスを利用して、セキュリティ面に問題がないことを検証 |
(※1)テスト対象機種は、テスト端末バリエーションで選定しています。
(※2)ネイティブ機能のバリエーションとは、ネイティブ機能の有無や種類(生体認証は指紋認証、顔認証、虹彩認証など)を指します。
セキュリティテストは本来、外部の機関へ依頼して診断を求めるのが望ましいですが、 このアプリはサンプルという位置づけのため、外部機関でのセキュリティ診断は行っていません。
テスト実施範囲
このアプリのテスト実施範囲は次のとおりです。
- フロントエンドとなるモバイルアプリ
- モバイルアプリと外部サービス/バックエンドとの連携部分(外部サービス/バックエンドそのものはテスト対象外)
このアプリはフロントエンド部分の開発に主眼を置いているため、バックエンド単体でのテストは実施しません。
モバイルアプリをテストする際のバックエンドは、OpenAPI定義をもとに稼働させるモックサーバや、テストツールのモック機能で代替します。
網羅の方針
テスト観点
テストに関する事項で定義したテスト種別ごとに詳細なテスト観点を作成し、 テスト観点をどのテスト工程、方法で実施するかを定義して、テスト観点の網羅性を確保します。 テスト種別それぞれのテスト観点を検証するテスト方法は、別途検討する単体テストや結合テスト計画の中で決定します。
単体テスト工程
単体テストのテスト工程定義に従い、以下の観点をテスト対象とします。
結合テスト工程
結合テストのテスト工程定義に従い、以下の観点をテスト対象とします。
- ユースケース(複数機能の連携や、複数画面にまたがるユースケース)
- OSバリエーション
- レイアウトバリエーション
- ネイティブ機能バリエーション
- 性能
デバイス
このアプリをインストールして実行するデバイスは多種多様です。 これら全てのデバイスでテストを実施することは、コストやスケジュールを踏まえて現実的に難しいため、テスト対象とするデバイスは以下の点で絞り込みます。
上記の点でテスト対象を決定し、全てのテスト対象が網羅できるようにテストを実施するデバイスを決定します。なお、これらの組み合わせについては網羅しません。 また、このアプリのメインターゲットはスマートフォンであるため、実機での検証はスマートフォンに限定してテストを実施します。 タブレットについては、後述する方針に従って選定したものをエミュレータ/シミュレータ上でテストを実施します。
詳細なテスト対象機種のバリエーションは、テスト端末バリエーションでまとめています。
OSバージョン
非機能要件のユーザービリティおよびアクセシビリティに関する事項にあるとおり、 このアプリは以下のOSバージョンをサポート対象として定義しています。
カテゴリ | 区分 | サポート範囲(※1) |
---|---|---|
OSバージョン | Android | 8.0, 8.1, 9, 10, 11, 12 |
OSバージョン | iOS/iPadOS | 13, 14, 15 |
(※1)このアプリの設計は、2021年12月時点から開始しており、その時点で最新であったOSバージョンをサポート範囲に含めています。
テストに関する事項の構成テスト(OSバリエーション) で定めたとおり、サポート対象OSバージョンの内以下の条件に合致するバージョンへ絞ってテストを実施します。
- (A)ユーザ使用率が高いOSバージョン
- (B)このアプリへ影響のある機能追加・変更があったOSバージョン
なお上記の(A)については、このアプリではユーザ使用率が最も高いOSバージョン1つをテスト対象バージョンとします。
上記の観点に従って、サポート範囲のOSバージョンから選定した結果は以下のとおりです。
OS | バージョン | 理由 |
---|---|---|
Android | 11 | Aに該当するため、テスト対象に該当 |
Android | 9 | Bに該当(ダークモードが利用可能となる前バージョン)するため、テスト対象に該当 |
iOS/iPadOS | 14 | Aに該当するため、テスト対象に該当 |
アスペクト比率・画面解像度
Android、iOS/iPadOSで多種多様なアスペクト比率や画面解像度の端末がリリースされています。 そのため、以下それぞれの方法でテスト対象となるアスペクト比率または、画面解像度を決定します。
Androidのアスペクト比率
テストに関する事項の構成テスト(レイアウトバリエーション)のAndroidの選定基準に従って揃えた機種でアスペクト比率を纏めたものが以下になります。
種類 アスペクト比率 画面解像度 スマートフォン 9:16 720x1280 ~ 1080x1920 スマートフォン 9:18 1080x2160 ~ 1440x2880 スマートフォン 9:18.5 1080x2220 ~ 1440x2960 スマートフォン 9:19 1080x2280 ~ 1440x3040 スマートフォン 9:19.5 720x1560 ~ 1080x2340 スマートフォン 9:20 1080x2400 スマートフォン 9:21 1080x2520 タブレット 10:16 800x1280 ~ 1600x2560 上記のアスペクト比率の中から以下のとおり、最小と最大のものをテスト対象とします。
種類 アスペクト比率 スマートフォン 9:16 スマートフォン 9:21 タブレット1 10:16 iOS/iPadOSの画面解像度
テストに関する事項の構成テスト(レイアウトバリエーション)のiOS/iPadOSの選定基準に従って テスト対象OSバージョンがサポートしている機種から、画面解像度を以下の条件で決定します。
- (A)最大と最小の画面解像度
上記の観点に従って、以下のとおり最小と最大のものをテスト対象とします。
種類 画面解像度 スマートフォン 1284×2778 スマートフォン 640×1136 タブレット1 2048×2732
パンチホール有無・ノッチ有無
パンチホールとノッチそれぞれ有無で、以下のバリエーションでテストします。
- パンチホール:あり
- ノッチ:あり
- パンチホール/ノッチ:なし
パンチホールとノッチ両方を備えている端末はありません。 また、AndroidのタブレットとiPadの機種にはパンチホール有または、ノッチ有の機種はありません。
ネイティブ機能の有無、種類
ネイティブ機能の有無、種類については、以下のバリエーションでテストします。
- カメラ機能:あり
- 生体認証
- なし
- 指紋認証
- 顔認証
カメラ機能については、現在販売されている端末の大多数がカメラ機能を有しているため、カメラ機能を持つ端末でのみテストを実施します。
生体認証のうち虹彩認証については、シェアの多い機種で虹彩認証に対応した機種がなかったため、市場シェアが低いと判断してテスト対象外としています。 その他の指紋認証、顔認証は大多数の端末が両方もしくはどちらかの機能を有しているものになることから、生体認証なしのバリエーションは端末側の設定をOFFにしてテストを実施します。
ネイティブ機能のバリエーションは主にスマートフォン側で検証します。そのため、タブレットではネイティブ機能のバリエーションのテストは実施しません。
- タブレットはこのアプリのメインターゲットとしておりませんので、アスペクト比率または、画面解像度は最大のもののみを対象とします。↩