関連テンプレ構成
テンプレート
# テスト方針・計画
## テスト方針
### テスト戦略
本システムのテストは、以下の戦略に基づいて実施する。
- **早期からのテスト実施**: 設計段階からテスト観点を明確にし、早期に品質を作り込む
- **リスクベーステスト**: 業務影響度の高い機能を優先的にテストする
- **自動化の推進**: 回帰テストやデータ検証など、反復作業は自動化を検討する
- **インターフェースの重視**: モジュール間、システム間の連携部分を重点的にテストする
### テストレベル
```mermaid
graph TD
A["単体テスト(UT)"] --> B["結合テスト(IT)"]
A1["開発者"] -.担当.-> A
B1["開発チーム"] -.担当.-> B
```
| テストレベル | 目的 | 実施者 | 実施時期 |
|------------|------|--------|---------|
| 単体テスト(UT) | 個別モジュール・関数の動作確認 | 開発者 | 実装完了後 |
| 結合テスト(IT) | モジュール間のインターフェース確認 | 開発チーム | UT完了後 |
### カバレッジ基準
- **単体テスト(UT)**
- コードカバレッジ: C0(命令網羅) 80%以上、C1(分岐網羅) 70%以上を目標
- 重要なビジネスロジックについてはC1 100%を目指す
- **結合テスト(IT)**
- モジュール間のインターフェース: 100%
- 主要な業務フロー: 100%
- 異常系パターン: 重要度に応じて70%以上
---
## テスト種別と観点
### 単体テスト(UT)
#### テスト観点
- 正常系: 仕様通りの動作をするか
- 異常系: エラー処理が適切に実装されているか
- 境界値: 入力値の境界で正しく動作するか
- 例外処理: 想定外の入力に対して適切に処理されるか
#### テスト技法
- 同値分割法
- 境界値分析
- デシジョンテーブル
- ホワイトボックステスト(カバレッジ測定)
#### テストケース例
**関数**: validateEmail(email: string): boolean
| テストID | テスト項目 | 入力値 | 期待結果 | 優先度 |
|---------|----------|--------|---------|--------|
| UT-001 | 正常系_標準形式 | test@example.com | true | High |
| UT-002 | 正常系_サブドメイン | user@mail.example.co.jp | true | High |
| UT-003 | 異常系_@なし | testexample.com | false | High |
| UT-004 | 異常系_ドメインなし | test@ | false | High |
| UT-005 | 異常系_null | null | false | Middle |
| UT-006 | 境界値_最小長 | a@b.c | true | Middle |
| UT-007 | 境界値_最大長 | [254文字のメール] | true | Low |
### 結合テスト(IT)
#### テスト観点
- インターフェース: モジュール間のデータ受け渡しが正しいか
- データフロー: データが正しく処理・変換されるか
- トランザクション: DB操作が正しくコミット/ロールバックされるか
- エラー伝播: エラーが適切に上位モジュールに伝わるか
#### テスト技法
- トップダウンテスト
- ボトムアップテスト
- サンドイッチテスト
- ビッグバンテスト(小規模システムの場合)
#### テストケース例
**機能**: 会員登録処理(画面 → サービス → リポジトリ → DB)
| テストID | テスト項目 | テストシナリオ | 期待結果 | 優先度 |
|---------|----------|--------------|---------|--------|
| IT-001 | 正常系_新規登録 | 未登録メールで会員登録 | DBに登録、確認メール送信 | High |
| IT-002 | 異常系_重複登録 | 登録済みメールで登録試行 | エラーメッセージ、DB未更新 | High |
| IT-003 | 異常系_DB接続エラー | DB接続不可の状態で
--- プレビュー
テスト方針・計画
テスト方針
テスト戦略
本システムのテストは、以下の戦略に基づいて実施する。
- 早期からのテスト実施: 設計段階からテスト観点を明確にし、早期に品質を作り込む
- リスクベーステスト: 業務影響度の高い機能を優先的にテストする
- 自動化の推進: 回帰テストやデータ検証など、反復作業は自動化を検討する
- インターフェースの重視: モジュール間、システム間の連携部分を重点的にテストする
テストレベル
graph TD
A["単体テスト(UT)"] --> B["結合テスト(IT)"]
A1["開発者"] -.担当.-> A
B1["開発チーム"] -.担当.-> B
| テストレベル | 目的 | 実施者 | 実施時期 |
|---|---|---|---|
| 単体テスト(UT) | 個別モジュール・関数の動作確認 | 開発者 | 実装完了後 |
| 結合テスト(IT) | モジュール間のインターフェース確認 | 開発チーム | UT完了後 |
カバレッジ基準
- 単体テスト(UT)
- コードカバレッジ: C0(命令網羅) 80%以上、C1(分岐網羅) 70%以上を目標
- 重要なビジネスロジックについてはC1 100%を目指す
- 結合テスト(IT)
- モジュール間のインターフェース: 100%
- 主要な業務フロー: 100%
- 異常系パターン: 重要度に応じて70%以上
テスト種別と観点
単体テスト(UT)
テスト観点
- 正常系: 仕様通りの動作をするか
- 異常系: エラー処理が適切に実装されているか
- 境界値: 入力値の境界で正しく動作するか
- 例外処理: 想定外の入力に対して適切に処理されるか
テスト技法
- 同値分割法
- 境界値分析
- デシジョンテーブル
- ホワイトボックステスト(カバレッジ測定)
テストケース例
関数: validateEmail(email: string): boolean
| テストID | テスト項目 | 入力値 | 期待結果 | 優先度 |
|---|---|---|---|---|
| UT-001 | 正常系_標準形式 | test@example.com | true | High |
| UT-002 | 正常系_サブドメイン | user@mail.example.co.jp | true | High |
| UT-003 | 異常系_@なし | testexample.com | false | High |
| UT-004 | 異常系_ドメインなし | test@ | false | High |
| UT-005 | 異常系_null | null | false | Middle |
| UT-006 | 境界値_最小長 | a@b.c | true | Middle |
| UT-007 | 境界値_最大長 | [254文字のメール] | true | Low |
結合テスト(IT)
テスト観点
- インターフェース: モジュール間のデータ受け渡しが正しいか
- データフロー: データが正しく処理・変換されるか
- トランザクション: DB操作が正しくコミット/ロールバックされるか
- エラー伝播: エラーが適切に上位モジュールに伝わるか
テスト技法
- トップダウンテスト
- ボトムアップテスト
- サンドイッチテスト
- ビッグバンテスト(小規模システムの場合)
テストケース例
機能: 会員登録処理(画面 → サービス → リポジトリ → DB)
| テストID | テスト項目 | テストシナリオ | 期待結果 | 優先度 |
|---|---|---|---|---|
| IT-001 | 正常系_新規登録 | 未登録メールで会員登録 | DBに登録、確認メール送信 | High |
| IT-002 | 異常系_重複登録 | 登録済みメールで登録試行 | エラーメッセージ、DB未更新 | High |
| IT-003 | 異常系_DB接続エラー | DB接続不可の状態で |