信頼度成長モデルとは何か?ソフトウェアの信頼性と時間経過の関係

2021年7月14日

信頼度成長モデルとは

信頼度成長モデルとは、主にソフトウェア開発のテストで使用される言葉です。
ソフトウェア開発では、テストの工程が進むほどバグが発見・修正されるため、故障の発生する可能性が減少していきます。
このように「テスト時間が経過するとともにバグの可能性が減少していく」事象を、統計学・確率論などの視点から描いたものが信頼度成長モデルです。

ソフトウェア信頼性モデル

ソフトウェアの信頼度のモデルとして「ソフトウェア信頼性モデル」というものがあります。
このソフトウェア信頼性モデルは、大きく「解析モデル」「経験モデル」に分類されます。そして解析モデルを更に分類したものが「静的モデル」と「動的モデル」です。

解析モデルとは

解析モデルでは、テスト工程や運用段階における信頼性要因を仮定し、モデルを構築します。
構築されたモデルから、潜在バグ数やソフトウェア故障率、ソフトウェア信頼度、平均ソフトウェア故障時間間隔などを導き出すことが可能です。

静的モデル

解析モデルの分類の一つ「静的モデル」は、ソフトウェアの実際の実行過程を考慮せずモデルを構築します。
データの入出力の関係のみによって計測・評価を行うタイプのモデルです。

動的モデル

「動的モデル」は静的モデルとは対照的に、ソフトウェアをまず実行します。実行結果の履歴を参照し、計測・評価を行うタイプのモデルです。
動的モデルでは、テスト工程やソフトウェアの実行過程におけるバグ発見・故障発生の減少などを、信頼度の成長過程を示すものとして記述します。
これらの特徴から、ソフトウェア信頼性モデルのうち、動的な解析モデルを「ソフトウェア信頼度成長モデル」と呼ぶようになりました。

ソフトウェア信頼度成長モデルの留意点

ソフトウェア信頼度成長モデルは滑らかな曲線グラフで描かれます。
開発者は開発中のソフトウェアのバグ検出推移グラフなどを作成し、そのグラフを既存の信頼度成長モデルなどと比較して、テストにより信頼度がどのように変化しているか判断するのが一般的です。
しかし以下のような場合、想定通りに信頼度成長モデルを参照できないことがあります。

プロジェクト規模が小さい

プロジェクトの規模が小さい場合、バグの推移を示すグラフなどが、曲線ではなく階段状で描かれることがあります。
階段状が極端な場合、曲線である信頼度成長モデルと比較するのは難しくなります。

テストの進行が一定でない

テストの工程になんらかの課題があり、安定してテストを進められない場合、テスト結果から作成されるグラフは一定ではなくなります。
この場合も信頼度成長モデルを参照するのが困難になります。