EXERCISE 90分

演習:テスト実行シミュレーション

ストーリー

「ここまで学んだことを使って、テストの一連の流れを体験してみよう」

「シミュレーションですか?」

「そう。架空のWebアプリのテストケースを実行して、結果を報告するところまでやってみて」

「わかりました!」


ミッション概要

架空の「ToDoアプリ」を題材に、テスト実行のシミュレーションを行います。

Part内容目安時間
Part 1テストケースを読んで前提条件を確認する15分
Part 2テストケースを実行して結果を記録する30分
Part 3バグ報告書を作成する30分
Part 4テスト結果サマリーを作成する15分

達成条件

  • テストケース5件の結果を正しく判定できた
  • バグ報告書を2件作成できた
  • テスト結果サマリーを作成できた

前提: ToDoアプリの仕様

以下の仕様のToDoアプリをテスト対象とします。

■ ToDoアプリ仕様書(抜粋)

機能一覧:
1. タスク追加: テキスト入力してボタンで追加
2. タスク完了: チェックボックスで完了マーク
3. タスク削除: 削除ボタンでタスクを削除
4. タスク一覧: 追加したタスクが一覧表示される

制約:
- タスク名は1文字以上、100文字以内
- 空のタスクは追加できない
- タスクは最大50件まで登録可能

Part 1: テストケースを読んで前提条件を確認する(15分)

以下の5件のテストケースを読み、前提条件を確認してください。

テストケース一覧

IDテスト名前提条件
TC-TODO-001タスクを追加できるToDoリストが空であること
TC-TODO-002空のタスクは追加できないToDoリストが空であること
TC-TODO-003タスクを完了にできるタスクが1件以上登録されていること
TC-TODO-004タスクを削除できるタスクが1件以上登録されていること
TC-TODO-005101文字のタスクは追加できないToDoリストが空であること

タスク 1-1: 前提条件チェックシートを作成

markdown
## 前提条件チェック

### TC-TODO-001
- [ ] ToDoリストが空であること → 確認方法:

### TC-TODO-002
- [ ] ToDoリストが空であること → 確認方法:

(続き...)
<details> <summary>解答例</summary>
markdown
## 前提条件チェック

### TC-TODO-001
- [x] ToDoリストが空であること → 確認方法: アプリを開き、タスクが0件であることを確認

### TC-TODO-002
- [x] ToDoリストが空であること → 確認方法: アプリを開き、タスクが0件であることを確認

### TC-TODO-003
- [x] タスクが1件以上登録されていること → 確認方法: TC-TODO-001実行後、タスクが存在することを確認

### TC-TODO-004
- [x] タスクが1件以上登録されていること → 確認方法: タスクが1件以上表示されていることを確認

### TC-TODO-005
- [x] ToDoリストが空であること → 確認方法: 登録済みタスクを削除し、0件であることを確認
</details>

Part 2: テストケースを実行して結果を記録する(30分)

以下のシナリオに基づいて、テスト実行結果を記録してください。

シナリオ(架空の実行結果)

各テストケースを実行したところ、以下の結果になりました。 この情報をもとに、テスト結果を記録してください。


TC-TODO-001: タスクを追加できる

手順:
1. テキスト欄に「牛乳を買う」と入力する
2. 「追加」ボタンをクリックする
3. ToDoリストを確認する

期待結果: 「牛乳を買う」がリストに表示される
実際の動作: 「牛乳を買う」がリストに表示された

TC-TODO-002: 空のタスクは追加できない

手順:
1. テキスト欄を空のままにする
2. 「追加」ボタンをクリックする
3. 画面の表示を確認する

期待結果: エラーメッセージ「タスク名を入力してください」が表示される
実際の動作: エラーメッセージは表示されず、空のタスクがリストに追加された

TC-TODO-003: タスクを完了にできる

手順:
1. 既存のタスク「牛乳を買う」のチェックボックスをクリックする
2. タスクの表示を確認する

期待結果: タスクに取り消し線が表示され、完了状態になる
実際の動作: タスクに取り消し線が表示され、完了状態になった

TC-TODO-004: タスクを削除できる

手順:
1. 既存のタスク「牛乳を買う」の「削除」ボタンをクリックする
2. ToDoリストを確認する

期待結果: 「牛乳を買う」がリストから消える
実際の動作: 「削除」ボタンをクリックしたが、タスクが消えずにエラーが発生した
            コンソールに「TypeError: Cannot read property 'id' of undefined」と表示

TC-TODO-005: 101文字のタスクは追加できない

手順:
1. テキスト欄に101文字のテキストを入力する
2. 「追加」ボタンをクリックする
3. 画面の表示を確認する

期待結果: エラーメッセージ「タスク名は100文字以内で入力してください」が表示される
実際の動作: エラーメッセージが表示され、タスクは追加されなかった

タスク 2-1: テスト結果を記録する

上記のシナリオを元に、以下の表を完成させてください。

markdown
| ID | テスト名 | 期待結果 | 実際結果 | 合否 |
|----|---------|---------|---------|------|
| TC-TODO-001 | | | | |
| TC-TODO-002 | | | | |
| TC-TODO-003 | | | | |
| TC-TODO-004 | | | | |
| TC-TODO-005 | | | | |
<details> <summary>解答例</summary>
IDテスト名期待結果実際結果合否
TC-TODO-001タスクを追加できる「牛乳を買う」がリストに表示される「牛乳を買う」がリストに表示されたPASS
TC-TODO-002空のタスクは追加できないエラーメッセージが表示されるエラーなしで空タスクが追加されたFAIL
TC-TODO-003タスクを完了にできる取り消し線が表示され完了状態になる取り消し線が表示され完了状態になったPASS
TC-TODO-004タスクを削除できるタスクがリストから消えるエラーが発生しタスクが消えないFAIL
TC-TODO-005101文字のタスクは追加できないエラーメッセージが表示されるエラーメッセージが表示されたPASS
</details>

Part 3: バグ報告書を作成する(30分)

Part 2でFAILとなった2件について、バグ報告書を作成してください。

タスク 3-1: TC-TODO-002のバグ報告書を作成

markdown
## バグ報告

### タイトル

### 環境情報

### 再現手順

### 期待結果

### 実際結果

### 重要度

### 備考

タスク 3-2: TC-TODO-004のバグ報告書を作成

同様のフォーマットで作成してください。

<details> <summary>解答例</summary>

TC-TODO-002 バグ報告書

markdown
## バグ報告

### タイトル
[タスク追加] 空のタスク名でもエラーなくタスクが追加されてしまう

### 環境情報
- OS: Windows 11
- ブラウザ: Chrome 120.0
- テスト環境: staging
- テスト日時: 2025-04-01 10:15

### 再現手順
1. ToDoアプリを開く(タスク0件の状態)
2. テキスト入力欄を空のままにする
3. 「追加」ボタンをクリックする

### 期待結果
「タスク名を入力してください」というエラーメッセージが表示され、タスクは追加されない

### 実際結果
エラーメッセージは表示されず、空のタスクがToDoリストに追加された

### 重要度
中(バリデーションの欠如。空タスクが蓄積するとデータの品質に影響)

### 備考
- 再現率: 100%(3回中3回発生)
- テキスト欄にスペースのみを入力した場合も同様に追加される

TC-TODO-004 バグ報告書

markdown
## バグ報告

### タイトル
[タスク削除] 削除ボタンクリック時にTypeErrorが発生しタスクが削除できない

### 環境情報
- OS: Windows 11
- ブラウザ: Chrome 120.0
- テスト環境: staging
- テスト日時: 2025-04-01 10:30

### 再現手順
1. ToDoアプリを開く(タスクが1件以上ある状態)
2. 任意のタスクの「削除」ボタンをクリックする

### 期待結果
該当のタスクがToDoリストから削除される

### 実際結果
タスクは削除されず、画面上に変化がない。
ブラウザのコンソールに以下のエラーが表示される:
「TypeError: Cannot read property 'id' of undefined」

### 重要度
高(タスク削除機能が完全に使用不可)

### 備考
- 再現率: 100%(3回中3回発生)
- どのタスクを削除しようとしても同じエラーが発生
- コンソールエラーから、タスクのidの取得に問題がある可能性
</details>

Part 4: テスト結果サマリーを作成する(15分)

テスト全体の結果をまとめたサマリーを作成してください。

<details> <summary>解答例</summary>
markdown
## テスト結果サマリー

### 実施概要
- テスト対象: ToDoアプリ(タスク追加・完了・削除機能)
- テスト期間: 2025-04-01
- テスト実行者: (あなたの名前)
- テスト環境: staging

### 結果概要
| 合否 | 件数 |
|------|------|
| PASS | 3 |
| FAIL | 2 |
| BLOCKED | 0 |
| 未実施 | 0 |
| 合計 | 5 |

### FAIL一覧
| ID | テスト名 | 重要度 | 概要 |
|----|---------|--------|------|
| TC-TODO-002 | 空タスク追加防止 | 中 | 入力バリデーションが未実装 |
| TC-TODO-004 | タスク削除 | 高 | 削除時にTypeErrorが発生 |

### 所見
- タスク追加(正常系)と完了機能は正常に動作
- タスク削除機能にバグがあり、主要機能の一つが使用不可
- 入力バリデーションが未実装で、空タスクが登録可能
- TC-TODO-004は重要度「高」のため、優先的な修正を推奨
</details>

達成度チェック

  • 5件のテストケースの合否を正しく判定できた
  • バグ報告書を2件作成し、再現手順が明確に書けた
  • テスト結果サマリーを作成できた

まとめ

この演習で実践したこと:

操作内容
前提条件確認テスト実行前の準備
テスト実行手順に従った結果の記録
バグ報告再現手順・期待結果・実際結果の記載
結果サマリーテスト全体の報告

重要なポイント

  1. 手順通りに実行する - 自己判断で手順を省略しない
  2. 事実を正確に記録する - 「たぶん」「だいたい」は使わない
  3. バグ報告は具体的に - 開発者が再現できるレベルで書く

次のステップへ

おめでとうございます!テスト実行のシミュレーションを完了しました。

次のセクションでは、テストに関する理解度を確認するクイズに挑戦します。


推定所要時間: 90分