試験仕様書の読み方
試験仕様書(テスト仕様書)は、テストの内容と手順を定義したドキュメントです。テスト実施や品質確認で使います。
試験仕様書とは
役割
- テスト観点(何を確認するか)を定義
- テストケース(具体的な確認項目)を定義
- テスト手順(操作方法)を定義
- 期待結果(正しい動作)を定義
いつ使うか
| テスト実施時 | テスト手順・期待結果の確認 |
| テスト設計時 | テストケースの作成 |
| 実装時 | 動作確認の指針として |
| 品質確認時 | 何をテストしたかの記録 |
試験仕様書の構成
テストレベル
| レベル | 別名 | 内容 | 担当 |
|---|---|---|---|
| 単体テスト | UT | 関数・メソッド単位 | 開発者 |
| 結合テスト | IT | 機能間の連携 | 開発者/テスター |
| システムテスト | ST | システム全体 | テスター |
| 受入テスト | UAT | お客様視点での確認 | お客様 |
よくある構成要素
| 項目 | 内容 | 確認ポイント |
|---|---|---|
| テスト対象 | 何をテストするか | 機能ID、画面ID |
| テスト観点 | どんな観点で確認するか | 正常系、異常系 |
| 前提条件 | テスト実施前の状態 | データ、環境 |
| テスト手順 | 操作の手順 | 入力値、操作順序 |
| 期待結果 | 正しい動作 | 表示内容、状態変化 |
| 結果 | 実施結果 | OK/NG、エビデンス |
テスト観点
正常系と異常系
| 種類 | 内容 | 例 |
|---|---|---|
| 正常系 | 正しい操作での動作 | 正しいパスワードでログインできる |
| 異常系 | エラー時の動作 | 間違ったパスワードでエラーになる |
| 境界値 | 境界条件での動作 | 8文字ちょうど、7文字、9文字 |
| 準正常系 | 正常だが特殊なケース | 空のカートで注文を押す |
よくあるテスト観点
| 観点 | 確認すること |
|---|---|
| 機能 | 機能が正しく動作するか |
| 表示 | 画面表示が正しいか |
| 入力チェック | バリデーションが正しいか |
| 状態遷移 | 画面遷移が正しいか |
| データ | データが正しく登録/更新されるか |
| 排他 | 同時操作で問題ないか |
【サンプル】試験仕様書の実例
ユーザー登録機能の試験仕様書サンプルです。
基本情報
| 項目 | 内容 |
|---|---|
| テスト対象 | ユーザー登録機能 |
| 関連設計書 | SCR-001(画面設計書)、API-001(処理設計書) |
| テストレベル | 結合テスト |
| 作成日 | 2024/02/01 |
| バージョン | 1.0 |
テスト環境
| 項目 | 内容 |
|---|---|
| 環境 | 開発環境(dev.example.com) |
| ブラウザ | Chrome 最新版 |
| テストデータ | 既存ユーザー「test@example.com」が登録済み |
テストケース一覧
| No | 大項目 | 観点 | テスト内容 |
|---|---|---|---|
| 1 | 正常系 | 登録成功 | 必須項目をすべて入力して登録 |
| 2 | 正常系 | 任意項目 | 電話番号を空欄で登録 |
| 3 | 異常系 | 必須チェック | メールアドレス未入力 |
| 4 | 異常系 | 形式チェック | メールアドレス形式不正 |
| 5 | 異常系 | 重複チェック | 登録済みメールアドレス |
| 6 | 異常系 | 桁数チェック | パスワード7文字 |
| 7 | 境界値 | 桁数境界 | パスワード8文字(ちょうど) |
| 8 | 異常系 | 形式チェック | パスワード英字のみ |
| 9 | 異常系 | 一致チェック | パスワード確認不一致 |
テストケース詳細
【TC-001】正常系:必須項目をすべて入力して登録
テスト観点:正しい入力で正常に登録できることを確認する。
前提条件
- ユーザー登録画面(SCR-001)を表示
- 入力するメールアドレスは未登録であること
テストデータ
| 項目 | 入力値 |
|---|---|
| メールアドレス | newuser@example.com |
| パスワード | Password123 |
| パスワード(確認) | Password123 |
| 氏名 | テスト太郎 |
| 電話番号 | 03-1234-5678 |
テスト手順
- メールアドレス欄に「newuser@example.com」を入力
- パスワード欄に「Password123」を入力
- パスワード(確認)欄に「Password123」を入力
- 氏名欄に「テスト太郎」を入力
- 電話番号欄に「03-1234-5678」を入力
- 「登録」ボタンをクリック
期待結果
- 登録完了画面(SCR-002)に遷移する
- 「登録が完了しました」メッセージが表示される
- DBにユーザー情報が登録される
確認ポイント
【TC-003】異常系:メールアドレス未入力
テスト観点:必須項目が未入力の場合、エラーになることを確認する。
前提条件
- ユーザー登録画面(SCR-001)を表示
テストデータ
| 項目 | 入力値 |
|---|---|
| メールアドレス | (空欄) |
| パスワード | Password123 |
| パスワード(確認) | Password123 |
| 氏名 | テスト太郎 |
テスト手順
- メールアドレス欄を空欄のまま
- パスワード欄に「Password123」を入力
- パスワード(確認)欄に「Password123」を入力
- 氏名欄に「テスト太郎」を入力
- 「登録」ボタンをクリック
期待結果
- 画面遷移しない
- メールアドレス欄に「メールアドレスを入力してください」が表示される
確認ポイント
【TC-007】境界値:パスワード8文字(ちょうど)
テスト観点:境界値(最小桁数ちょうど)で正常に登録できることを確認する。
テストデータ
| 項目 | 入力値 | 備考 |
|---|---|---|
| パスワード | Abcde123 | 8文字(最小) |
期待結果
- 正常に登録できる
- エラーにならない
読み方のポイント
1. テスト観点を理解する
- 正常系:まず動くことを確認
- 異常系:エラーハンドリングを確認
- 境界値:ギリギリの値を確認
2. 前提条件を確認する
テストを実施する前の状態を確認。前提条件が整っていないとテストできません。
3. 期待結果を正確に把握する
- 何が表示されるか
- どこに遷移するか
- データはどう変わるか
4. テストデータを準備する
事前に必要なデータを準備。テストケースに書かれた値を使用します。
テスト実施時の注意点
エビデンス(証跡)を残す
| エビデンス | 取得方法 |
|---|---|
| 画面キャプチャ | スクリーンショット |
| DBデータ | SELECT結果のスクリーンショット |
| ログ | ログファイルのコピー |
| リクエスト/レスポンス | 開発者ツールのNetwork |
NGの場合
- 詳細な状況を記録
- 再現手順を明確に
- 開発者に報告
報告例:
【不具合報告】
テストケース:TC-005
現象:重複チェックが動作しない
期待:「このメールアドレスは既に登録されています」が表示
実際:そのまま登録完了画面に遷移
再現手順:TC-005の手順通り
環境:開発環境(dev.example.com)
日時:2024/02/15 14:30
テスト設計に参加する場合
テストケース作成の観点
- 正常系:基本的な操作で動作するか
- 異常系:エラー時に適切な対応ができるか
- 境界値:境界条件で正しく動作するか
- 組み合わせ:条件の組み合わせで問題ないか
網羅性の確認
1年目エンジニアとしての関わり方
| 場面 | やること |
|---|---|
| テスト実施時 | 手順通りに実施、結果を正確に記録 |
| 不具合発見時 | 詳細な報告、再現手順の明確化 |
| テスト設計時 | 設計書から観点を抽出、ケース作成 |
ポイント:テストは「動くことの確認」ではなく「品質の証明」です。厳密に実施しましょう。
関連ドキュメント
- 設計書・仕様書の読み方 - 設計書全般の読み方
- 画面設計書の読み方 - テスト対象の画面仕様
- テストの進め方 - テスト工程全般