SQA Insider

ソフトウェア品質保証、ソフトウェアテストについてのメモ書き。

バグカーブを寝かせるには

タイトルだけ見ると品質偽装のようでアレですが、そういう話ではありません。

体感的にはもうバグは枯れたはずだけど、テスト工程終盤にたくさんバグが出てしまったりして、バグカーブの形が理想的でない場合というのがあります。
どうしても運用しないと気付かないバグがあったりするものですが、リリースに近い時期にバグが見つかったというだけで不必要に不安がる人が出てくることもあります。
このようなとき、単純に横軸に日付、縦軸に累積バグ数のようなシンプルなバグカーブを使い続ける必要はありません。ちょっと工夫をしてみましょう。

アプローチはいくつかありますが、ここでは「バグ検出数に対してテスト工数の考慮を追加する。」というアプローチをとった例を挙げます。

一般的には累積バグ数を導くために、まず1日ごとのバグ検出数 (bpd=bugs per day) をカウントしていると思います。
これを「ある1日のバグ検出数÷その日のテスト総工数(人時間)×8」 (bpp=bugs per person) をカウントするようにします。
テスト工数はテスト実行者に申告してもらってもいいのですが、勤怠システムから生データを抜いてくるとより便利でしょう。
こうすることで、テスト工数の増減によるバグ検出数のばらつきを減らすことができます。
ただし、このままだとバグカーブの縦軸は検出バグ累積数と一致しなくなってしまいます。
そこで現実の累積数と合致するように日々のbppに係数を乗じてあげるようにします。
係数の求め方は簡単ですね。bppの累計値をbpdの累計値で割ったものをかけてあげればよいです。

ここで挙げた方法以外にも、以下のようなアプローチもできると思います。

  • テスト工程を分割して複数のバグカーブを用意する。
  • バグの重要度や優先度といった属性を考慮して、係数として乗ずる。
  • バーンダウンチャートを併用する。