公開:

ソフトウェアテスト

テストの抜け漏れはなぜ起こるのか?機能×観点のテストマップで網羅性を確保する方法

テストの抜け漏れはなぜ起こるのか?機能×観点のテストマップで網羅性を確保する方法

膨大なテストケースを管理しきれず、不具合の見落としに悩む現場は少なくありません。テストの抜け漏れを防ぐためには、特定のテストエンジニアの主観に依存せず、過不足や優先順位についてチームで共有・議論するための仕組みが求められます。

そこで活用したいのが、機能と観点をマトリクス形式で整理する「テストマップ」です。

本記事では、テストで抜け漏れが起こる原因を整理したうえで、テストマップを用いてテスト設計の質を高める方法について解説します。

開発プロジェクトにおける『第三者検証』の重要性とは|資料ダウンロード

テストの抜け漏れが起きる理由

全体像の把握不足と優先順位付けの曖昧さは、重要なテストの設計や実施漏れの原因となります。まずは、抜け漏れが発生するメカニズムを整理しましょう。

テストの抜け漏れが起きる理由

全体像が見えないまま設計している

プロダクトの全体像が見えないままテストケースを作成すると、「あれもこれも」と思いつくままに項目が増え続け、結果的に何が重要なのかを見失いやすくなります。

特に注意しなければならないのは、仕様変更に伴うテスト設計の変更時です。「この機能が追加されたから、○○の機能もテストしなくては」「あの変更で影響を受けるのはどこだろう」と、場当たり的な対応を繰り返すと、設計が煩雑になり、本来テストすべき重要な箇所が見落とされてしまうことにもつながりかねません。

優先順位付けの基準が曖昧

限られたリソースのなかで十分な品質を確保するためには、適切な優先順位付けが欠かせません。

一般的にテストの優先順位が高い要素として、プロダクトの基本的な利用目的に関わる要素(例:勤怠管理アプリの打刻機能)や、金銭・人命にかかわる要素(例:決済処理)などがあります。

あるいは、IT機器に慣れていないユーザー向けのスマートフォンアプリの場合、ボタンの視認性などの優先順位が上がる傾向が見られます。

何を優先すべきかの判断軸がないと、工数配分を適切に行えず、重要度の高いテストに十分な時間を割けないという事態をもたらします。

必要な品質を確保したうえでリリース期限に間に合わせるためには、特定の担当者の主観に頼らず、チーム全体で基準を共有して優先順位を定める仕組みが必要です。

「テストマップ」で全体像を可視化する

上記のようなテストの抜け漏れを防ぐ手段の一つに、「テストマップ」の活用があります。

ここからは、その定義やメリット、活用シーンについて解説します。

テストマップとは?

テストマップとは、「機能」を縦軸、「観点」を横軸に整理する表形式のドキュメントです。

マトリクス形式で一覧化することで、「どの機能に対してどの観点で行うべきか」が視覚的に把握でき、情報共有やレビューを円滑に進めるのに役立ちます。

下図は、勤怠管理アプリの開発を想定した簡易的なテストマップの例です。

【簡易的なテストマップの例:勤怠管理アプリの場合】

表示系入力系基本機能系非機能系
文言レイアウト入力チェック基本機能画面遷移/
状態遷移
応答速度表示視認性
勤怠打刻
勤怠時間修正
月次勤務時間統計・確認
残業・有給申請
アラート
ヘルプページ
◎:高優先度 ○:中優先度 △:低優先度 – :対象外

この表を見ると、「勤怠打刻」は全ての項目を高優先度(◎)としており、従業員が毎日使う機能として重点的にテストされることがわかります。一方で、「GPS連携」の機能はトライアルの位置づけで「ヘルプページ」は機能そのものの利用頻度が相対的に低いため、全体的に優先度を低めとしています。

このように「どの機能をどの観点でテストするか」と「どのテストケースが優先か」を一覧で可視化するのがテストマップの役割です。

テストマップの活用がもたらすメリット

テストマップを活用することで、主に次のようなメリットが得られます。

全体像と優先順位が同時に見える

テストマップを作成すれば、何をテストすべきかの全体像を俯瞰できるだけでなく、特にどのテストケースを優先すべきかも一目瞭然になります。

さらに、テストマップを常に最新の状態に保っておくことで、機能の追加や変更によってテスト計画が複雑化しても、優先順位の判断軸を一貫して保ったまま品質保証を進められます。

属人化を防ぎ、チーム全体で品質を担保できる

「テストの全体像が担当者の頭の中にしかない」「ドキュメント化していても視認性が低い」といった状況では、テストの精度が担当者の経験やセンスに依存してしまい、テスト設計の質にばらつきが生じます。

一方で、マトリクス形式のテストマップがあれば、メンバー全員が共通の認識を持ったうえで設計を行いやすくなるため、特定の人員のスキルに頼らず組織的に品質保証活動を進められます。

クライアントとの認識合わせに活用できる

テストマップは、受託開発におけるクライアントとの認識合わせにも活用できます。

テストの専門家ではない相手にもわかりやすく「どの機能を」「どのような観点で」検証するのかを共有できるため、優先順位やリソース配分に関する議論もスムーズに進めやすくなります。また、受注側・発注側の期待値をそろえることで、認識の食い違いを回避し、責任の所在も明確にすることができるため、トラブルの防止にも役立てられます。

テストマップの作成が特に推奨されるケース

テストマップは幅広い種類のプロジェクトで活用できますが、特に以下のような場合において、大きな効果を発揮します。

大規模・長期のプロジェクト

システムの規模が大きく、全体像を把握しづらい案件では、テストマップがプロジェクトの指針を可視化する要となります。数年単位の長期プロジェクトではテストすべき項目も膨大になりますが、正確なテストマップがあれば、関係者が多いなかでも「何を優先すべきか」の判断軸を保ったまま進行できます。

短期集中で焦点を絞ってテストする場合

1〜2ヶ月の短期間でリリースまで進める必要がある場合も、テストマップの活用は有効です。限られた時間で「ここだけは絶対にテストする」という優先順位を明確にすることで、致命的な不具合を回避しつつ期限通りのリリースを実現することができます。

テストマップ作成の手順

ここからは、テストマップを実際に作成する手順を4つのステップに分けて解説します。

テストマップ作成の手順

ステップ1 | 機能を整理する

まずは、基本設計段階で作成された機能リストをもとに、対象システムの機能を洗い出し、カテゴリーごとに分類していきます。例えば「決済処理」「会員管理」「商品管理」といったようにユーザーが操作する単位で大分類をまとめ、その下に具体的な機能を階層構造で記述していきます。

【機能の分類の例】

  • 「決済処理」カテゴリー
    • クレジットカード決済
    • 割引・クーポン適用
    • 決済確認メール送信
  • 「会員管理」カテゴリー
    • 新規会員登録
    • ログイン/ログアウト
    • パスワード再設定

分類が完了したら、カテゴリー内で優先度の高い機能順に並べます。基本的には、重要度が高い機能やトップページに近い位置にある機能、利用頻度の高い機能から上のほうに並べていくと良いでしょう。

ステップ2 | 観点を洗い出す

機能を整理できたら、次に観点の洗い出しを行います。

重視すべき観点は、プロダクトの性質によって大きく変わります。例えばtoC向けのWebアプリケーションであれば、表示系(レイアウト、文字や画像の視認性)、動作性(登録、検索、ソートといった日常的な操作がスムーズにできるか)といった観点が重要となります。一方で、IoTや組み込み系のシステムでは、接続性(Bluetooth/Wi-Fi接続範囲、接続安定性)、ハードウェア連携(センサー精度、電源管理、動作時間)といった観点での確認が重視されます。

観点を洗い出す段階では、実際にテストするかしないかにかかわらず、思いつく限り列挙します。全体像を可視化してから優先度に合わせて取捨選択することで、必要なテストを抜け漏れなく実施できます。

ステップ3 | マトリクスに当てはめ、優先順位を可視化する

機能と観点の洗い出しが完了したら、実際にマトリクスに落とし込み、優先順位を可視化します。

一般的には、縦軸に機能、横軸に観点を配置し、各交差点に優先度を記入していきます。

以下の図は、ECサイトの開発を想定したテストマップの例です。

【テストマップの例:ECサイトの場合】

機能表示正常系異常系
(入力エラー含む)
データ整合性セキュリティ性能
決済処理クレジットカード決済
割引・クーポン適用
決済確認メール送信
商品管理商品検索
商品詳細表示
在庫確認
カート機能カートへ追加
カート内容編集
カート内容保持
会員管理新規会員登録
ログイン/ログアウト
パスワード再設定
マイページ表示
注文管理注文履歴表示
注文詳細表示
注文キャンセル
その他お問い合わせフォーム
レビュー投稿

凡例

  • ◎(高優先度): 必ず実施。金銭・データの正確性に関わる、またはシステムの目的に直結する
  • ○(中優先度): リソース次第で実施。利用頻度が高い、またはユーザー体験に影響
  • △(低優先度): 時間があれば実施。影響範囲が限定的、または利用頻度が低い
  • -(対象外): この機能×観点の組み合わせでは確認不要

この例では、金銭に関わる「決済処理」系の項目や、商品検索・カート機能といったサービスの基本的な機能に関わる項目の多くが高優先度(◎)とされています。一方、不具合発生時のビジネスリスクが相対的に低い「レビュー投稿」機能は、全体的に優先度が低めに設定されています。

また、多くの機能で「性能」の優先度が△とされているなか、「商品検索」については◎としています。これは、検索速度がユーザー体験に直結し、離脱率に影響するためです。このように、同じ観点でも機能の使用頻度やユーザビリティへの影響等を考慮し、それぞれ優先度を考えていくことが重要です。

ステップ4 | レビューと更新を行う

テストマップの作成後は、別のテストエンジニアやマネージャー等によるレビューを行い、精度を高めていきます。

レビューの際は、下記のような視点から確認を行います。

  • すべての機能がマトリクスに含まれているか
  • 観点の粒度がそろっているか
  • 優先度が適切か(システムの目的やリスクに合った優先順位立てができているか)
  • クライアントやユーザーの期待と齟齬がないか

また、テストマップは一度作って終わりではなく、仕様変更があり次第、追記・修正を行います。例えば、プロダクトの成長に伴って外部システムとの連携が行われる場合、「連携テスト」という新しい観点を追加し、関連機能との交差点に優先度を設定していきます。

こうした情報の更新を怠ると、テストマップが形骸化して、テスト設計・実施の抜け漏れにつながります。「仕様変更会議の後は必ずテストマップを更新する」などのルールを設け、テストマップを最新の状態に保っておきましょう。

テストマップを基盤に、チーム全体で品質保証を進める

担当者のスキルに依存しない品質保証活動のためには、テストの全体像を可視化し、優先順位についてチーム全体で議論できる仕組み作りが必要です。機能×観点のマトリクスでテストすべき項目を一覧化するテストマップは、抜け漏れのないテスト設計のための確かな基盤となります。

テストマップ作成の段階で観点の網羅性や優先順位の妥当性に不安がある場合は、外部のテスト支援会社と協業するのも一つの選択肢です。専門的な知見を持つ第三者から客観的なフィードバックを受けることで、自社だけでは気づきにくい観点の抜け漏れを防ぎ、網羅性の高いテスト設計につながります。

AGESTでは、テストマップ作成を含む幅広いノウハウを活かした「ソフトウェアテストサービス」を提供しています。専門知識を持つテストエンジニアが適切なテストマップを作成し、効率的なテスト実施をサポート。チーム全体の円滑な連携を実現し、品質保証活動の長期的な安定に貢献いたします。

自社のテスト設計に不安のある方は、ぜひ一度ご相談ください。

ソフトウェアテスト・第三者検証 サービス詳細ページ

TFACT (AIテストツール)

関連コンテンツ

この記事をシェア