はじめに
通常のチーム開発ではあまり見られないかもしれませんが、
私が携わっているプロジェクトでは、人手不足により、テスト仕様書のレビューが行われないままテストが実施されるという状況が発生しました。
当然のことながら、リリース直前になって
「なぜ今さらこんなバグが見つかるのか?」という状況に陥ってしまいました。
レビューは、品質・効率・信頼の観点から欠かせない作業であると理解していましたが、
一方で、「レビューを依頼すれば安心だろう」という、作成者側の思い込みや油断があったのも事実です。
そこで、今後は「本当にレビュー者に任せきりでよいのか?」という観点を持ち、
依頼前に作成者自身が確認すべきポイントを明確にすることが重要だと感じました。
本記事ではその気づきをもとに、レビュー前に気をつけるべきチェックポイントを整理し、
再発防止や品質向上のヒントになればと思います。
現状の課題をおさらい
現場で実際に起こっている、テストフローとその問題点の振り返り。
テストフロー:
結合テスト仕様書作成
↓
結合テスト実施
↓
テストで発見したバグを改修
↓
同じテスト仕様書を用いて、本番環境でのテストを実施
問題点:
- この一連の工程を、すべて同一の担当者が実施しています。
- 結合テストで発見されたバグが本番環境で改善されているかの確認はできますが、
テスト仕様書が一度も第三者に確認されないため、
もともと網羅されていなかった観点や、新たなバグの見逃しが発生してしまいます。
作成側が気をつけるべきポイント
1. 仕様の理解不足・誤解による誤ったテスト設計
- 仕様を思い込みで解釈し、誤ったテスト設計や実施をしてしまうリスクがあります。
- 特に、共有フォルダ上で仕様変更が行われたのに設計書が更新されていない場合、古い情報のままテストを進めてしまう危険があります。
- 少しでも疑問点があれば、最新の仕様に基づいているか、関係者と認識が一致しているかを確認しましょう。
2. 慣れによる「見落とし」
- 自分が作成した仕様書を自分でレビューする場合、どうしても“慣れ”が生じます。
- 書いた内容を「わかっているつもり」で読み飛ばし、ミスや抜けを見落としやすくなるため注意が必要です。
3. テストケースの網羅漏れ
- 特定の観点に偏ったテスト設計をしてしまい、必要なパターンや境界値が抜けてしまうことがあります。
- 組み合わせパターンや例外系など、多角的な視点から網羅性を意識することが大切です。
対策
1. セルフレビューシートの導入
- 第三者のレビューが難しい場合でも、自分自身で客観的に確認できる仕組みを持つことが重要です。
- チェックリスト形式のセルフレビューシートを用意し、テスト設計時の見落としを防ぎましょう。
- 最初は個人用として作成し、後にチーム共有していくと組織的な強化にもつながります。
<例:チェック項目>
- 境界値は網羅できているか?
- 異常系のテストケースは含まれているか?
- 修正による影響範囲のテストは含まれているか?
2. 時間差レビュー
- 作成直後にレビューすると、頭の中の情報と一致してしまい、見落としや思い込みに気づきにくくなります。
- 設計から1日程度時間を置いて見直すことで、自分の思い込みを排除し、より客観的に確認できます。
- 「他人が書いた資料を読むつもり」で再確認するのがポイントです。
3. 組合せ表・マトリクスの活用
- 複数の条件を組み合わせるテストでは、設計者の主観だけではパターンの網羅に偏りが出やすくなります。
- 組合せ表やマトリクスを使って、条件を形式的に整理・可視化することで、テストケースの抜けや偏りを防止できます。
4. チェック観点のテンプレート化
- テスト観点に漏れが出やすい場面では、あらかじめ確認すべき項目をテンプレート化しておくと効果的です。
- たとえば、以下のような観点を毎回チェックリストに含めておくと、品質のブレを防げます。
<例:共通チェック観点>
- UI表示(レイアウト崩れ、誤字脱字など)
- エラーハンドリング(エラー時の処理やメッセージ表示)
- APIのリクエスト/レスポンス内容の確認
5. 過去のバグリストを参考にする
- 過去に発生したバグは、同様のミスが再発しやすいポイントでもあります。
- チームや自身が経験したバグを一覧にし、テスト設計時の参考資料として活用することで、同じ過ちを防げます。
最後に
今回の振り返りを通じて、テスト設計に限らず、日々の業務全体において「事前の確認」や「意識的なチェック」がいかに大切かを改めて実感しました。
また、自分自身がレビューする立場だったら、どのような成果物が望ましいかという視点を持ちながら作業を進めることの重要性にも気づかされました。
単に「レビューに出す」ではなく、「相手が確認しやすいようにまとめる」意識が、結果として品質の向上につながると感じています。
手動によるテストだけに頼ると、確認漏れや、他の不具合の修正によって意図せず動作が変わってしまうといったリスクもあります。
そうした状況に備えるためにも、自動テストやテストコードの導入も視野に入れつつ、チーム全体で最適なテスト手法を議論・選定する場を持つことが重要だと感じました。
参考資料