ソフトウェアの品質を学びまくる

ソフトウェアの品質、ソフトウェアテストなどについて学んだことを記録するブログです。

Rayleighモデルとは何か ─ その1

 近年まれに見る羊頭狗肉さを誇るこのサイトだが、そろそろソフトウェア品質に関する記事も書かなくてはならない。ブックレビューの方が簡単に書けるもんだから、まったく趣旨と違う記事だらけになっている。今年こそっ・・・!
 今日は、「Rayleighモデル」について。
 さらりとWebを探しただけでは、Rayleighモデルについてびしっと説明した日本語のサイトはない。というより英語でもあまり見当たらない。少なくとも、無料のコンテンツは。探し方が悪いのかも知れないが、まともな適用例ともなると1件しか発見できなかった。
 SQuBOKの3.6.2.6によると、「Rayleighモデルとは、ソフトウェア全開発プロセスにおける障害率を表したモデル」であり、「m=2のWeibull分布」とある。
 さっぱりわからないし、何故これが障害率を近似できるのかはまだ勉強が必要なのだが、とにかくWeibullモデルならWikipediaにも式が載っているので、曲線を描くことはできる。
 EXCELでいうと、以下。
=K*(Tm^-2*T)*EXP(-((T/Tm)^2)/2)

 Tが横軸。KとTmは定数で、それぞれ総障害数と、そのときの時間である。逆に言うと、時間Tmのときの障害がK件である(もちろん、時刻Tmに一気に障害がK件発生する、ということではない)。2つの定数が決まると、曲線も決まる。

 グラフを示す。ここではSQuBOKと同様、横軸に工程を埋めている。

68de80af

 SQuBOKによると、「このモデルは、プロジェクトの障害数予測を与えることに加えて、優れた品質評価の枠組みを与える」とある。では、実際にはどのように適用すればいいかを次回、考えてみたい。
 
 蛇足になるが、Rayleighモデルのグラフを描くにあたって、EXCELの以外な動作を二つ知った。
 一つ目。次のような書き方ができるということ。
=3^-2
 今まで「3^(-2)」と書いていた。ちょっと得した。でも可読性は低い。
 二つ目。以下の数式をEXCELに入力してほしい。
=-3^2
 わたしの直感ではこれは「-9」なのだが、実際には「9」。つまり「(-3)^2」と判断されており、「^」より「-」が強いということがわかる。これを知らなかったせいで、EXP(-x)が減衰曲線にならず、無駄に苦労した。