テスト設計について
テスト設計とは
テスト設計とは、ソフトウェアやシステムが仕様どおりに動作するかを確認するための「テストケース」を計画・作成するプロセスです。
実施するテストの種類や目的、テスト対象機能、使用するテスト技法、テストの入力・出力に何を使用するかなどを定めます。
また、テスト実施に必要な機材や合否判定基準などもより具体的に定めていきます。
まとめると、「どうやってちゃんと動いているかを確かめるかを決める作業」とも言えます。
テスト設計の成果物であるテストケースとは、テストオペレーターがテストを行うための手順書です。
テスト前にどのような状態にし、どのような条件で、どのような操作をするか、そして、その期待値はどんなものかについて書かれています。
このテストケースは機能仕様書から直接作成されるものではありません。
テスト基本設計→テスト詳細設計→テストケース設計という順に作成されていきます。
これを段階的詳細化と言います。
段階的詳細化では、最初にテスト対象を大きく捉え、テストすべき観点を考え、順を追ってテストの粒度を少しずつ小さくしながら具体化していきます。
テスト工程におけるテスト設計の立ち位置
前項で一度に専門用語がでてきたので、図にまとめて整理します。
下に表されているようにテスト設計はテスト計画をもとに作成されます。
そして、テスト設計には、テスト基本設計、テスト詳細設計、テストケース設計の工程が存在しています。

テスト設計のプロセス
前項で説明したように、テスト設計の工程はテスト基本設計、テスト詳細設計、テストケース設計にわけることができます。
ここでは、一つづつ紹介していきます。
テスト基本設計
まずテスト対象にどのようなテストを行えばよいかを分析します。
具体的には要件定義書・仕様書・画面設計書を読み込み、そして、テストする機能やシステムについて理解していきます。
その上で、必要なテストについて検討していきます。
このステップではテスト全体の方針を決めることが目標です。
その際にポイントになってくるのが以下の②の視点です。
- ①テスト範囲(どの部分をテストするか)
- ②テスト観点(どんな視点でチェックするか)
- ③テスト条件(具体的なテストのシチュエーション)
①テスト範囲
仕様書や要件定義書からテストする対象となる機能を選定します。
この際、テスト範囲となるのは、要件や仕様に直接関係する範囲だけではなく、影響範囲も含めます。
影響範囲を決定する際にポイントとなるのはユーザーの使い方、改修箇所です。
ユーザーの使用方法を想定し、データの流れに関連がありそうな範囲をテスト範囲に含めることができます。
また、改修箇所からテスト範囲を決めるときには、プログラムやデータ定義などの改修箇所を参照している機能を中心に決定していきます。
このように、テスト範囲を明確にすることができればテストに用いるリソースを効率的に使っていくことができます。
なお、テスト基本設計書では、テスト範囲とテスト範囲外を明確にわけて記載します。
②テスト観点
テスト計画書に記載されたテスト目的をもとにして、テストで確認するべき事柄を整理して記載します。
設計漏れや見落としを防ぐためにきちんと整理できれば網羅性の高いテストケースを作成することができます。
品質を高めるためにどんな視点でチェックをするべきか考えるようにしましょう。
テスト観点について考えるときには、仕様書だけでなく、一般的なユーザーがどのように使用するかや、過去に起こった障害を参考にすることができます。
③テスト条件
テストの具体的な前提や状況について記載する項目です。
テスト条件は、テスト観点ごとに作成され、網羅の基準とその理由も記載されます。
この段階では、データの組合せまでは考慮されませんが、どのようなテスト設計技法を使用するか、網羅する基準はどうするかといったことは決める必要があります。
抜け漏れを防ぐために、正常系/異常系/境界値などの視点を意識して、具体的にどのようなデータを使うか、どのような操作をするかを記載していきます。
テスト詳細設計
テスト基本設計の内容をもとにして、どうやってテストするのか具体的に設計していきます。
実際のテストケースをつくる直前のステップになるのでとても重要です。
「どんなデータ・操作・環境で、何をどう確認するのか」を明確にしていきます。
これをもとにして、テストケースを具体的に書いていけるように準備します。
テストケース設計
テストケース設計の段階では、実際にテストを実行するための1つ1つの具体的な手順と期待結果をまとめていきます。
テスターが実際に手を動かしてテストすることもあるのでわかりやすく明解に書くことを心がけましょう。
記載される項目としては以下のようなものがあります。
- テスト対象
- テスト観点 (確認したい内容)
- 前提条件
- 具体的な入力値
- テスト実施手順
- 期待結果(ソフトウェアの動作後に予想される結果)
- テスト実施結果(期待結果に記載された通りの動作結果が得られたかどうかの判定結果)
意識したいポイントとして、誰が見ても同じ操作ができるように、操作手順は細かく丁寧に書くようにしましょう。
また、特に欠陥や不具合が多い可能性のある、異常系、境界値、空入力などが含まれているかも確認しておきましょう。
まとめ
テスト設計は、ソフトウェアが仕様通りに動くか確認するためのテストケースを作成するためのプロセスです。
テストケースには、抜け漏れ重複がないこと、バグを検出する可能性が高いものであること、項目数が少なく効率的であることが求められます。
このような様々な役割がテストケースには求められますが、それを満たすテストケースを仕様書から直接、作成することはできません。
テスト設計で、大まかなテスト方針を決め、より細かく、どんなテストが必要か、品質を高めるためにどのような条件でテストするべきかなどを決定していきます。
この記事を書いた人