読者です 読者をやめる 読者になる 読者になる

確率的にバグの有無は評価できる?

計算機

アラン・チューリングの停止性問題にあるように、バグの有無を論理的に調べることはできない。

しかし、チャティンのΩ数のようなイメージで、バグの有無を確率的に評価することはできるのではないか?

もちろん、Ω数が絶対に知り得ない値であるように、バグのある確率というものがあったとして、それの値を完全に知るはできない。だが、それは数学定数という意味であって、統計的な値ではない。そもそも、統計的な確率も無限回試行を行わければ知り得ない値なので、知り得ないという意味ではΩ数と大差ない。

具体的には、ベイズ的にバグの有無の条件付き確率は求めることができるはずだ。*1

ウォーターフォール型プロセスで開発する際、バグの数を数えて、多いだとか少ないだとかするじゃないですか。私はこれ自体は否定しない。バグ出れば、まだほかにバグがあるであろうことは「経験的」に皆知っている。しかし、経験的にで止まらずに、科学的に評価できるんじゃないかな?開発経験が豊富な組織であれば、サンプル数が十分にあるので、十分統計的に処理できるはずだ。例えば、バグが1個出たという条件で、他にバグがある確率は求められる。他にもヒヤリハット的な形で、軽微な障害が何件あれば重大障害が1件あるという数字も出せる。条件を合わせていけば、このソフトウェアにバグがある可能性は現在○%だという数字も出せるはずだ。それで出てきた値が統計的に有意かどうかはサンプル数によるのだろう。バグ潜在率が20%未満ならリリースしてよいとかに、できないのかな?まじめにバグの数をかぞえるなら、これぐらいはしないと意味ないと思う。少なくともバグ数の平均値らしきものは統計的に有意なものでなければならない。

だが、これは予想だが、バグ数を本気で統計的に評価したら、規模にもよるのだろうけど、潜在バグが100個以上ある率が50%以下とか見かけ上相当ゆるい値でないと、リリースできなくなってしまう気がする。

世界でもっとも強力な9のアルゴリズム

世界でもっとも強力な9のアルゴリズム

*1:話変わるが、ベイジアン的にっていう人はベイジアンって言いたいだけだよね?Xianと的にが被っていて気持ち悪い