連載コンテンツ

  1. Qbook+
  2. 連載コンテンツ
  3. テストマップとは?テストを俯瞰し、抜け漏れ防止やテストケース数のバランス調整を行おう

テストマップとは?テストを俯瞰し、抜け漏れ防止やテストケース数のバランス調整を行おう

2019.03.06 永井 努
テストマップとは?テストを俯瞰し、抜け漏れ防止やテストケース数のバランス調整を行おう

テストエンジニアが適切なテスト設計を行う際の気を付けるべきポイントとして、「実施すべきテストの抜け漏れがないか」と「適切な箇所に必要数のテストケースを作成しているか」の2つが挙げられます。

テストエンジニアがどんなに多くのテストケースを作成することができても、必要なテストが抜けており、不要箇所にテストが集中していれば、肝心なバグを検出できず、ソフトウェアは低品質となってしまいます。

今回の記事では、この2つのポイント「実施すべきテストの抜け漏れがないか」と「適切な箇所に必要数のテストケースを作成しているか」に対し、それらをチェックすることのできる手法である「テストマップ」についてご紹介いたします。

テストマップとは

テストマップとは、テスト対象システムにおける設計単位(機能、画面、状態など)と、実施するテスト観点の対応表になります。

テストの観点とは、ソフトウェアが正しく動作するかを確認するための項目、着眼点、発想の仕方といった、いわばテストを行う上での「切り口」のようなものです。

このテスト観点を使い、テストマップを作成することで、どのようなテストを行うのかを個別に考えるのではなく、同じテスト観点を複数の設計単位に割り当てて考えることができます。

例えば、機能を個別で考えてテスト設計をすることにより、「機能Aでは排他制御のテストを作成したのに、機能Bでは考えられていない」といったことが起こりえます。

テストマップに「排他制御」のテスト観点を記載することで、各機能と排他制御の組合せを俯瞰してみることができ、この抜け漏れを防ぐことができるわけです。

<テストマップ作成例>

testmap_sample

ただし、すべてのテスト観点がすべての設計単位に適用できるわけではありません。

「画面レイアウト」や「画面遷移」は、「画面」に適用するテスト観点ですし、「排他制御」や「日またぎ」は、機能を使用するプロセスの途中で行うため、「機能」に適用するテスト観点といえます。

作成例のように、適用できない箇所には「-」などを記載し、テスト実施を行わないことが分かるようにします。

テストの重要度

ブラックボックステストにおいて、機能動作などの確認を行う際、様々な条件や入力をしてテストする必要があります。

例えば、会員サイトのログイン画面には、通常、会員IDとパスワードを入力するテキストボックスが存在し、それぞれにデータを入力し、ログインボタンを押下すると、ログインできるよう仕様になっています。

このログイン機能に対して、「不正なパスワードでログインができないこと」の確認をするとします。

ここでの不正なパスワードとは、

・会員IDと登録されているものとは異なるが、有効な文字種・文字数のパスワード

・無効な文字種

・無効な文字数

・未入力

・HTMLタグやJavaのスクリプト

などが考えられます。

こういったパスワードとして考えらえる文字の組合せは無数にありますが、それらの中からどれくらいの件数をテストするかは、「テストの重要度」と「使用できるリソース」によって変わってきます。

「テストの重要度」は、「以前の工程のテストですでに確認しているか」、「テストしていても、問題が多く検出されていないか」、「その箇所に欠陥が存在した場合のリスクの大きさ」などによって変わります。

この「テストの重要度」と「使用できるリソース」を元に判断した、どれくらいの入力や条件でのテスト実施が必要か?というのが「テストケースの件数」に繋がります。

テストマップの設計単位とテスト観点が交差する位置に、そのテストの重要度を記載することによって、テスト全体のどの部分を重点的に実施するか、つまり、どのテストのテストケース数を多めに実施するのか、最低限実施するのかが一目瞭然になります。

<重要度を記載したテストマップ作成例>

testmap2_sampleそのため、テストマップは、テスト設計者とステークホルダーでのテストケース数のバランス調整の合意を取る用途にも使えます。

このようなことを行わないと、お互いの認識のズレが発生し、本来そこまで件数の必要のない箇所に対して、多くのテストを実施し、無駄にリソースを使いかねません。

テストマップは、そういったことを未然に防ぐことができます。

また、ソフトウェア開発において、計画通りに進まないことは日常茶飯事です。

テスト開始後のトラブル発生により、テストが押してしまい、計画よりも少ないリソースでテストを実施しなくてはならない状態になることもあります。

重要なテストを減らさないために、テストマップは、テスト全体を俯瞰しながら、絞り込むテストを決定するのに役立ちます。

おわりに

テストマップは、設計単位とテスト観点の組合せを網羅し、テストの抜け漏れ防止に役立てることができます。しかしながら、そもそも、設計単位の分割が不適切であったり、必要なテスト観点自体が漏れてしまったりする場合は、効果が無くなります。

また、詳細なテストマップを作成しようとすると、テストマップ自体が非常に大きくなり、設計単位とテスト観点の組合せの記載ミスや、テスト全体が俯瞰しにくくなるといったテストマップ作成のメリットが失われてしまうことにもなりかねません。

テストマップは、実施するテストを俯瞰でき、抜け漏れをしっかりとチェックできるような粒度になるよう考慮して作成することが重要です。

資料ダウンロード

  • 大手50サイトの診断結果から見る最新Webセキュリティの傾向 2018年版

    バルテスがセキュリティ診断を行った50サイトにおける脆弱性傾向をまとめた資料です。どういったレベルの脆弱性が見つかっているのか、その割合はどういったものなのかなどを具体的な数値としてまとめています。

  • 事例資料:ドキュメントインスペクション

    オフショア開発の課題と解決策、発注品質を改善したドキュメントインスペクションの事例とコツをご紹介します。

  • ソフトウェア開発データ白書記載データとの比較資料

    一般的なテストプロジェクトとバルテスのテストプロジェクトを比較した冊子です。1000Hあたりの不具合検出数、実施テストケース数などを算出し、どの程度の差があるのかを比較しております。

永井 努
ライター:
永井 努

バルテス株式会社 R&C部 研究員

ITインストラクター・業務システムサポートを経験後、バルテスに入社。 業務系、Web系、組込系などの様々なテスト設計・実施を経験し、現在は主にテスト業務に関する研究開発(標準テスト設計プロセス構築など)および人材育成に従事。 1~2か月に渡る長期テスト設計研修を、ソフトウェア開発未経験者・経験者合わせて100名以上に対して実施する。 取得資格として、JSTQB Advanced Level(テストマネージャ、テストアナリスト)、初級品質技術者など。 現在取り組んでいるのは、テストエンジニアに対する早期スキル習熟の為のコンテンツ作成。

関連記事