花陽「信頼性は、品質特性に出てきたよね。正確な定義は「指定された条件下で利用するとき、指定された達成水準を維持するソフトウェアの能力」になります」
穂乃果「わけがわからないよ」
花陽「だよね・・・」
花陽「信頼性を測るには、MTBFとか信頼度成長曲線っていうメトリクスがあります」
花陽「MTBFはMean Time Between Failureで、平均故障間隔。ユーザがどのくらいの時間、故障に遭わずに使い続けられるかというものです」
ことり「故障は、最初に出てきた厳密な意味での故障なんだよね?」
花陽「そうです。あくまで、ユーザが不都合を被ることだね」
穂乃果「これって、どうやって測るの?」
花陽「ロングランテストみたいに、実際に長時間連続稼働させてみて測るのが一般的かな。数時間から、システムによっては数ヶ月単位だったり」
穂乃果「おおっ、わりと力技だ」
花陽「それと、このあと見る信頼度成長曲線から導き出すこともできるよ」
花陽「信頼度成長曲線は、テストによって信頼性がどんな風に向上したかをグラフにするものです」
m(t) = a(1 – e-bt)
穂乃果「ことりちゃああああああああああんっ!!」
ことり「はいはい、あとで数学の復習しようね」
花陽「m(t)は時間軸に対する信頼性で、これを求めるのが目的です。aは期待するバグの総数、bはバグの発見率」
花陽「信頼度成長曲線を書くには、テストの経過に伴う検出バグ数をまとめます」
日数 | 検出バグ数 |
---|---|
1 | 90 |
2 | 63 |
3 | 44 |
4 | 31 |
5 | 22 |
6 | 15 |
7 | 11 |
8 | 7 |
9 | 0 |
花陽「で、これをグラフ化すると・・・」
花陽「これが、信頼度成長曲線と呼ばれるものです」
ことり「9日目のテストが終わった後の予測ができるの?」
花陽「そうです。残っているバグがどのくらいで、それを見つけきるにはどのくらいかかるか、がグラフから読み取れるの」
穂乃果「これだと14日目まで続ければバグは0になる?」
花陽「あくまで理論上の話だから過信は禁物だよ穂乃果ちゃん」
ことり「でも、9日目から先って曲線ほとんど平らだよね?そこにコストかけなくても、って思っちゃう」
花陽「まさにそれです。大抵のソフトウェアではバグを0にするほどの必要性はないし、費用対効果を見るためにこの曲線を使って、十分なバグが摘出されたと判断したらテストを終了する場合もあるんだ」
花陽「非機能テストについてはこのくらいかな。ここまでに挙げた3つはとても重要だから、どんなプロジェクトでもちゃんとやろうね」
穂乃果「じゃあ次回は不本意ながら・・・あ、いやいや、やる気たっぷりの穂乃果の番だねっ!ファイトだよっ!」