つれづれなる技術屋日記

しがない技術屋。専門は情報工学で、「つれづれ技術屋」って呼んで。

バグカーブ近似 その2

昨日書いた「バグカーブ 対数曲線や二次曲線での近似のお勧め」で、少し補足。

対数曲線や二次曲線は増加関数なので、バグカーブの近似として不適切と感じる人がいるかもしれない。しかし個人的には、テストの終盤になってもバグが発見されるので、増加関数が適切と感じている。

その理由だが、ソフトウェアテストの場合には、操作やパラメータをテスターに一任する場合がある。これは「殺虫剤のパラドックス」の防止策の一つである。「殺虫剤のパラドックス」は、JSTQB(ISTQB)のFoundation Levelシラバス日本語版にも書かれているが、全く同じテストを繰り返すことで欠陥が見つかりにくくなることを指す。「殺虫剤のパラドックス」の防止策のためにパラメータや操作タイミングを変化させることで、新しいバグが見つかるケースがあるというわけだ。

シンプルで小さなソフトウェアなら、あるところからバグの発見がゼロになることもあろうが、大規模なソフトの場合や外部モジュールを利用する場合に、どうしても終盤でもバグの発見がゼロにならないことは実務的に少なくない。

★ただし、重大バグとなると若干話が違ってくる。つまり、バグ件数全体は増加関数でも仕方ないとしても、重大バグが終盤でも発生したら対策が必要である。具体的には、重大バグの解決まで市場リリースを延ばすなどである。そのためには、単なるバグ全体件数のカーブ以外に、重要度でレベル分けしたバグのカーブも情報としては必要となる。

なお、重要度のレベルは3つとか4つなどが普通と考える。また、最重要レベルのバグ曲線近似を少し考えてみたが、うまい曲線は見つからなかった。累積では成長曲線の類が良さそうだが、初期では昨日と同じような立ち上がりの不一致が発生すると思われる。累積ではなく発生件数をY軸とするカーブも考えられるが、うまく減衰する曲線が見つからない。(確率分布でのカイ自乗(χ2)分布みたいな曲線を思い浮かべたが、、、、、。)

ただし、最重要レベルのバグは、リリース直前では何日か発生ゼロでなくてはならないので、余り回帰分析などに拘る必要もないだろう。

©2005-2020 ほんだ事務所(honda-jimusyo) All rights reserved.