シーディング(べバッグ)とは何か?テストの品質のテスト

2021年7月13日

シーディング(べバッグ)の概要

シーディング(べバッグ)とは、テスト担当者に知らせずに既知のバグを潜り込ませ、その何パーセントがテストで見つかったかによって、残っている未知のバグの数を推定する手法です。
これはG.M.ワインバーグの著書で紹介されている手法で、『パーフェクトソフトウェア』や『プログラミングの心理学』に登場します。

シーディング(べバッグ)はなぜ必要か?

ソフトウェアのテストでは、全てのバグが発見されることが望ましいものの、なかなか全てのバグを見つけるということは難しいものです。念入りにテストをしたとしても、いくつかのバグは残ってしまうものです。
では、テストをした後にどのくらいのバグが残っているのかを定量的に把握することはできないのでしょうか?
こうした疑問を持った時にシーディングが必要になります。

上述の通り、シーディングはテスト担当者に知らせずに既知のバグをチェックさせます。
たとえば、すでに発見された5つのバグをそのままの状態にしておき、テスト担当者にテストさせます。5つのバグのうち、4つだけがテストで検出されたとします。
そうなると、そのテスト担当者のテストの発見率は80%ということになります。
つまり、別のソフトウェアのテストでそのテスト担当者が80個のバグを見つけたとしても、残り20個のバグが残っている可能性があります。

シーディング(べバッグ)の限界

シーディングの限界は、残っているバグの数の推計ができたとしても、そのバグが発見できるかどうかわからないことです。
あくまでシーディングはテストの品質をチェックする手法であるため、その数値を見てテスト方法の改善をしていく必要があります。