演習:テスト実行シミュレーション
ストーリー
「ここまで学んだことを使って、テストの一連の流れを体験してみよう」
「シミュレーションですか?」
「そう。架空の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-005 | 101文字のタスクは追加できない | ToDoリストが空であること |
タスク 1-1: 前提条件チェックシートを作成
markdown
## 前提条件チェック
### TC-TODO-001
- [ ] ToDoリストが空であること → 確認方法:
### TC-TODO-002
- [ ] ToDoリストが空であること → 確認方法:
(続き...)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件であることを確認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 | | | | || ID | テスト名 | 期待結果 | 実際結果 | 合否 |
|---|---|---|---|---|
| TC-TODO-001 | タスクを追加できる | 「牛乳を買う」がリストに表示される | 「牛乳を買う」がリストに表示された | PASS |
| TC-TODO-002 | 空のタスクは追加できない | エラーメッセージが表示される | エラーなしで空タスクが追加された | FAIL |
| TC-TODO-003 | タスクを完了にできる | 取り消し線が表示され完了状態になる | 取り消し線が表示され完了状態になった | PASS |
| TC-TODO-004 | タスクを削除できる | タスクがリストから消える | エラーが発生しタスクが消えない | FAIL |
| TC-TODO-005 | 101文字のタスクは追加できない | エラーメッセージが表示される | エラーメッセージが表示された | PASS |
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の取得に問題がある可能性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は重要度「高」のため、優先的な修正を推奨達成度チェック
- 5件のテストケースの合否を正しく判定できた
- バグ報告書を2件作成し、再現手順が明確に書けた
- テスト結果サマリーを作成できた
まとめ
この演習で実践したこと:
| 操作 | 内容 |
|---|---|
| 前提条件確認 | テスト実行前の準備 |
| テスト実行 | 手順に従った結果の記録 |
| バグ報告 | 再現手順・期待結果・実際結果の記載 |
| 結果サマリー | テスト全体の報告 |
重要なポイント
- 手順通りに実行する - 自己判断で手順を省略しない
- 事実を正確に記録する - 「たぶん」「だいたい」は使わない
- バグ報告は具体的に - 開発者が再現できるレベルで書く
次のステップへ
おめでとうございます!テスト実行のシミュレーションを完了しました。
次のセクションでは、テストに関する理解度を確認するクイズに挑戦します。
推定所要時間: 90分