数理解析研究所講究録
第 1636 巻 2009 年 237-242

237

テスト環境の変化を考慮したソフトウェア信頼性モデルに関する一考察
鳥取大学・大学院工学研究科

井上真二 (Shinji Inoue)\dagger

鳥取大学・大学院工学研究科

桑田裕文 (Hirofumi Kuwada)\dagger

鳥取大学・大学院工学研究科

山田茂 (Shigeru Yamada)\dagger\dagger Graduate School of Engineering, Tottori University

1

はじめに

ソフトウェア信頼度成長モデル (SRGM) [1-5] は, 定量的なソフトウェア信頼性評価のための基盤技術の 1 つとして知られている. SRGM は, 通常, テスト実行時間上におけるソフトウェア故障発生時間 (もしくはソフトウェア故障発生時間間隔) を基本的な確率量として取り扱い, ソフトウェア故障発生時間の確率的性質がテスト期間中を通じて同一であるという仮定に基づいて構築される. しかしながら, 開発管理面からの要因 (納期遅れまたは納期までに目標とする信頼度が達成不可能と予測されるときなど) や固有技術面からの要因 (フォールト発見難易度, フォールトの独立性, モジュール毎のフォールト密度の違いなど によって, 実際のソフトウェア開発のテスト工程では, ソフトウェア故障発生現象もしくはフォールト発見事象の統計的性質が著しく変化する現象がしばしば観測される. このような現象が発生するテスト時
刻はチェンジポイント (change-point, 以下 CP と略す) [6] と呼ばれ, これまでに提案されている SRGM$)$に基づいた信頼性評価の精度に影響を与える要因の 1 つとして考えられている.

このような背景の下, 近年では, 上述した要因による CP 発生シナリオに基づいた SRGM[7-12] に関する議論がなされている. 具体的には, CP 前後のソフトウェア故障発生率の違いのみを考慮した SRGM 構築枠組みに関する議論が多くなされている. しかしながら, 実際のテスト工程では, テスト期間中においてテスト環境が変化しようともテストされているソフトウェア自体は同じであるため, CP 前後におけるソフトウェア故障発生時間には何らかの関係性があるものとしてモデリング枠組みを考える方がより現実的と言えよう.

このような考え方は, 基本的に, 運用段階におけるソフトウェア信頼性評価手法 [13] の考え方とよく似ているものと考えられる, 本研究では, 文献 [13] のアプローチに基づきながら, CP 前後において異なるソフトウェア故障発生時間の関係性をある関数で与え, CP 前後におけるソフトウェア故障発生時間の関係性を陽にモデルへと反映できるような SRGM の構築枠組みについて議論する. 最後に, 実測データを用いながら提案モデルの適用例を示し p 当該モデリング枠組みの有効性を簡単に議論する.

2

基本的な SRGM 構築枠組み

本研究で議論する CP を考慮した SRGM 構築枠組みは, 基本的に以下の仮定 [14-17] に基づいて議論される.
(Al)

(A2)

(A3)

ソフトウェア故障が発生した場合, その原因となるフオールトは, 直ちにかつ完全に修正・除去される.
各ソフトウェア故障は, それぞれ, 独立かつ時間に関してランダムに発生して, 各ソフトウエア故障発生時刻は, それぞれ, 同一の確率分布 $F(t) \equiv Pr\{T\leq t\}=\int_{0}^{t}f(x)dx$ に従う非負の確 上率変数によって与えられる. ここで, $f(t)$ は確率密度関数を表す.

テスト開始前にソフトウェア内に潜在する総フォールト数 (初期潜在フォールト数) $N_{0}(>0)$
は, ある確率分布に従う確率変数とする.

記の 3 つの仮定は, テスト工程において検出可能なフォールトが有限の場合における SRGM 構築のための基本的仮定として知られている.
いま, $\{N(t), t\geq 0\}$ を任意のテスト時刻 までに発見された総フォールト数を表す確率過程とする. こ(A3) から, テスト時刻 までに $m$ 個のフォールトが発見される確率は, 次のように定式のとき, (Al)$t$$\sim$$t$

238$(X_{0}=0.

S_{0}=0)$(X : Sofhvare fnult-detection or $nnWm\hslash ihL$ -oecurrence)

図 1:

ソフトウェァ故障発生現象およびフォールト発見事象に関する確率量.

化される.
$Pr\{N(t)=m\}=\sum_{n}(\begin{array}{l}nm\end{array})\{F(t)\}^{m}\{1-F(t)\}^{n-m}Pr\{N_{0}=n\}$

よく知られた結果として, (A3) において初期潜在フォールト数$N_{0}$(1)(一既.. ).

が平均 $\omega(>0)$ のボアソン分布に従うと仮定した場合, 式 (1) は,$Pr\{N(t)=m\}=\sum_{n}(nm)\{F(t)\}^{m}\{1- F(t)\}^{n- m}$

寄$\exp[-\omega]$$= \exp[-\omega]\frac{\{\omega F(t)\}^{m}}{m!}\sum_{n}\frac{\{w(1-F(t))\}^{n-m}}{(n-m)!}$$= \frac{\{\omega F(t)\}^{m}}{m!}\exp[-\omega F(t)]$(2)$(m=0,1,2, \cdots)$となり, 平均値関数 $E[N(t)]=\omega F(t)$ をもつ非同次ボアソン過程 (nonhomogeneous Poisson process, 以下 NHPP と略す) と本質的に等価となる. ここで,は期待値を表す. したがって, 当該モデリング枠組みに基づいて, ソフトウェア故障発生現象が NHPP に従う SRGM を構築したい場合は, 式 (2) において, ある適切なソフトウェア故障発生時間分布 $F(t)$ を与えることによって NHPP モデルを構築することができる.
$E[\cdot]$

チェンジポイントを考慮した SRGM の構築枠組み

32 において議論した SRGM 構築のための基本的仮定 (A2) を拡張することで, CP を考慮した SRGM の構築枠組みを与える. まず, CP を考慮した場合のソフトウェア故障発生時間に関する確率量を次のように定義する.
$X_{i}$$S_{i}$:CP 前における 番目のソフトウェア故障発生時刻 $(X_{0}=0, i=0,1,2, \cdots)$ ,:CP 前における 番目のソフトウェア故障発生時間間隔 $(Si=X_{i}-X_{i-1}$ , So $=0$ ,$i$$i$

1, 2,$\cdots$$i=$),:CP 後における 番目のソフトウェア故障発生時刻 $(Y_{0}=0, i=0,1,2, \cdots)$ ,:CP 後における 番目のソフトウェア故障発生時間間隔 $(T_{j}=Y_{1}-Y_{j-1}, T_{0}=0, i=1,2, \cdots)$ .
は CP を表
図 1 に, テスト時間軸上において定義されたこれらの確率量をそれぞれ示している. ここで,す. 本研究では, 上述した CP 前後の確率量が, それぞれ,$i$$Y_{1}$$i$$T_{1}$$\tau$$Y_{i}=\alpha(X_{i})$,$T_{i}=\alpha(S_{i})$,$J_{i}(t)=K_{i}(\alpha(t))$(3)

239のような関係にあるものと仮定する. ここで,は CP 前後におけるソフトウェア故障発生時刻もしくはソフトウェア故障発生時間間隔の関係性を表すテスト環境関数,およびはそれぞれ確率変数およびに対する確率分布関数を表す.
本研究では, テスト環境関数が $\alpha(t)=\alpha t(\alpha>0)$ の場合 [13] を考える. ここで,は比例定数であり,CP におけるテスト環境要因の変化が CP 前後のソフトウェア故障発生時間間隔の変化に与える影響の相対的大きさを表すパラメータである. いま, CP までに 個のフォールトが発見され, それぞれのソフトウエ
ア故障発生時刻が $0<x_{1}<x_{2}<\cdots<x_{n}\leq\tau$ であるとする. このとき, CP から $n+1$ 番目のフォールトが発見される時間間隔の確率分布関数は,$\alpha(t)$$J_{i}(t)$$S_{i}$$K_{i}(t)$$T_{i}$$\alpha$$n$$T_{1}$$\overline{G}_{1}(t)\equiv Pr\{T_{1}>t\}=\frac{Pr\{S_{n+1}>\tau-x_{n}+t/\alpha\}}{Pr\{S_{n+1}>\tau-x_{n}\}}$$= \frac{\exp[-\{M_{B}(\tau+t/\alpha)-M_{B}(x_{n})\}]}{\exp[-M_{B}(\tau)-M_{B}(x_{n})]}$と求められる. ここで,また,る.

$\overline{G}_{1}(t)$$M_{B}(t)(\equiv\omega F(t))$(4)

は確率分布関数 $G(t)\equiv Pr\{T_{1}\leq t\}$ の余関数であり $\overline{G}_{1}(t)\equiv 1-G_{1}(t)$ であ

は NHPP の平均値関数であり,CP 前において発見された総期待フォールト数を表す. 式 (4) より, CP 後における任意のテスト時刻 $t\in(\tau, \infty]$ において発見される総期待フォールト数を表す NHPP の平均値関数は,$M_{A}(t)=-$ log Pr $\{T_{1}>t-\tau\}$$=-\log\overline{G}_{1}(t-\tau)$(5)$=M_{B}( \tau+\frac{t-\tau}{\alpha})-M_{B}(\tau)$と導出される. 以上より, CP を考慮した NHPP の平均値関数は,$\Lambda(t)=\{\begin{array}{ll}\Lambda_{1}(t)=M_{B}(t) (0\leq t\leq\tau)\Lambda_{2}(t)=M_{B}(\tau)+M_{A}(t)=M_{B}(\tau+\frac{t-\tau}{\alpha}) (t>\tau)\end{array}$(6)のようになる. また, 指示関数を用いた場合, 式 (6) は次のように表現される :$A(t)=A_{1}(t)U_{1}(x_{1})+A_{2}(t)U_{2}(x_{2})$ただし,$U_{1}(x_{1})$.

および $U_{2}(x_{2})$ は指示関数を表し,$U_{1}(x)=\{\begin{array}{l}0 (x<0)1 (x\geq 0),\end{array}$(7)
それぞれ,$U_{2}(x)=\{\begin{array}{l}0 (x\leq 0)1 (x>0)\end{array}$(8)である. 式 (7) より, CP 前において観測されたデータに適したソフトウェア故障発生時間分布を与えることによって, CP を考慮した SRGM を構築することができる.

4信頼性評価尺度
ソフトウェア信頼性評価尺度は, 定量的な信頼性評価を行う上で有用な評価尺度として知られている.

$$ こ

代表的な以下の 3 つの信頼性評価尺度について簡単に議論する. まず, 期待残存フォールト数は, 任意のテスト時刻 におけるソフトウェア内の期待残存フォールト数を表す尺度であり, 確率過程 $\{N(t), t\leq 0\}$が式 (2) の NHPP に従う場合, 一般的に次のように導出される.

では,

$t$

$M(t)\equiv E[\overline{N}(t)]=E[N(\infty)-N(t)]$$=\omega-\Lambda(t)$

.

(9)

240

Testing TIme (number Ot weekS)

図 2: 推定された平均値関数とその 90% 信頼限界$(\alpha=2.0, \tau=14)$.

ソフトウェア信頼度関数は, 任意のテスト時刻 までテストが進行しているという条件の下で, その後の時間区間 $(t, t+x](t\geq 0, x\geq 0)$ においてソフトウェア故障が発生しない条件付き確率と定義される. したがって, ソフトウェア信頼度関数 $R(x|t)$ は,
ここで,$H(t)$ は NHPP の平均値関数を表す.

また,

$t$

$R(x|t) \equiv\sum_{k}Pr\{N(t+x)=k|N(t)=k\}Pr\{N(t)=k\}$(10)$=\exp[-\{\Lambda(t+x)-\Lambda(t)\}]$のように導出できる. 最後に, 累積 MTBF(mean time between software failures) は, ソフトウェア故障発生時間間隔分布が通常の確率分布関数の性質を満たさない場合における平均ソフトウェア故障発生時間間隔の代替的尺度の 1 つであり,(11)$MTBF_{C}(t)= \frac{t}{\Lambda(t)}$として求められる.

5

適用例
実際のテスト工程において観測されたフォールト発見数データを用いて, 今回提案したモデルに対する適用例を示す. 本研究にて用いる実測データは 19 組のフォールト発見数データ $(t_{k}, y_{k})(k=0,1,2,$ $\cdots,$ $19;t_{19}=$$19$ (週), $y_{19}=328)[18]$ である.
また, CP 前までにおけるソフトウェア故障発生時間分布がパラメータの指数分布に従う, すなわち, 指数形 SRGM[19] に従う場合を考える. このとき, モデル内部に含まれる$b$$\hat$および は所与としての推定値 および b は最尤法を用いて推定する. ただし,それらのパラメータを推定することにする.
本研究では, 一例として, $\alpha=2.0$ と仮定した場合の適用例を与える. 図 2 に, 上記の方法に基づいて推定された平均値関数とその 90% 信頼限界を示す. なお, CP は, 実測データに対する平均偏差平方和 (MSE)が最も小さいときの値を適用している. 図 2 から, 発見フォールト数の実測データに沿って, CP 前後における発見フォールト数の平均的挙動は変化していることがわかる, また, 図 3 に推定されたソフトウェア信頼度関数 $\hat{R}(x|19)$ を示す. 図 3 より, 当該ソフトウェアがテスト開始後 19 週目にリリースされ運用段階においてもテスト工程と同様の環境で使用した場合, リリース後 0.5 週目におけるソフトウェア信頼度は
約 14815 $x10^{-2}$ と推定される. さらに, 図 4 に推定された累積 MTBF を示す. 図 4 より, テスト終了時
刻における累積 MTBF は $M\hat{TB}F_{C}(19)\approx 5.7927\cross 10^{-2}$ (weeks) と推定される. また, 図 4 では, CP 以
降, CP 以前よりも比較的急速にソフトウェア信頼度が向上していることが特に伺える.
パラメータ$\omega$および$b$$\hat{\omega}$$\alpha$$\tau$

241

図 3: 推定されたソフトウェア信頼度関数

6$(\alpha=2.0, \tau=14)$

.

おわりに

本研究では, テスト環境の変化に起因して観測されるソフトウェア故障発生現象およびフォールト発見
事象の確率的現象の著しい変化を考慮したソフトウェア信頼性モデルの構築を行った. 具体的には, 当該
現象はソフトウェアのテスト環境と運用段階における使用環境との違いによく似ているため, 文献 [13] において提案されたアプローチを適用した. 当該アプローチを適用した利点としては, CP を考慮した従来のモデル [20] と比較して, CP 前後において異なるソフトウェア故障発生時間の関係性を陽にモデルへと反映できる点である. したがって, CP 前におけるソフトウェア故障発生現象を具体的に特徴付けると共に,CP 前後におけるソフトウェア故障発生時間の関係性を解析的に与えることによって, 比較的容易にモデルを構築することができる.
今後は, 実測データに基づきながら, CP 前後において異なるソフトウェア故障発生時間の関係性を表現するのに適切かつ具体的なテスト環境関数の構築を行う必要がある. また, 今回議論したアプローチについて, CP を考慮したソフトウェア信頼性モデルとしての適合性および有用性についての検証を行う必要がある.

謝辞
本研究の一部は, 日本学術振興会科学研究費補助金若手研究 (B) (課題番号 19710129) および基盤研究(C) (課題番号 18510124) の援助を受けたことを付記する.

参考文献[1] J.D. Musa, D. Iannio, and K. Okumoto, Software Reliability: Measurement, Prediction, Application. McGrawHill, New York.
[2] S. Yamada and S. Osaki, “Software reliability growth modeling; Models and applications,” IEEE Tbans. Soft.
Eng., vol. SE-I I, no. 12, pp. 1431-1437, 1985.
[3] 山田茂, ソフトウェア信頼性モデルー基礎と応用, 日科技連出版社, 東京, 1994.
[4] H. Pham, Software Reliability. Springer-Verlag, Singapore, 2000.
[5] 山田茂, 藤原隆次, ソフトウェアの信頼性 : モデル, ツール, マネジメント, プロジェクトマネジメント学会 (PM学会教育出版シリーズ (1) , 千葉, 2004.
[6] M. Zhao, “Change-point problems in software and hardware reliability,” Commun. Statist.
Theory Meth.,vol. 22, no. 3, pp. 757-768, 1993.
大寺浩志, 山田茂, 成久洋之, ‘ツフトウェア信頼度成長モデルによるテスト工程管理,” 電子情報通信学会論文誌,vol. J70-D, no. 5, pp. 889-895, 1987.
$)$–$[7|$

242$*\subseteq ogg\Phi\in 33$

図 4 : 推定された累積 MTBF$(\alpha=2.0, \tau=14)$.

[8] H. Ohtera and S. Yamada, “Optimal allocation &control problems for software-testing resources,” IEEE$\pi ans$ . Reliab., vol. 39, no. 2, pp. 171-176, 1990.
[9] C.Y. Huang, ”Performance analysis of software reliability growth models with testing-effort and changepoint,” J. Sys. Soft., vol. 76, no. 2, pp. 181-194, 2005.
[10] C.Y. Huang, ”Cost-reliability-optimal release policy for software reliability models incorporating improvements in testing efficiency,” J. Sys. Soft., vol. 77, no. 2, pp. 139-155, 2005.
[11] J. Zhao, H.W. Liu, G. Cui, and X.Z. Yang, ”Software reliability growth model with change-point andenvironmental function,“ J. Sys. Soft., vol. 79, no. 11, pp. 1578-1587, 2006.
[12] F.Z. Zou, “A change-point perspective on the software failure process,” Softw. Test., Verif. Reliab., vol. 13,
no. 2, pp. 85-93, 2003.
[13] 岡村寛之, 土肥正, 尾崎俊治, 「運用段階におけるソフトウェア製品の信頼性評価手法一加速寿命試験モデルの提案一」, 電子情報通信学会論文誌, vol. J83-A, no. 3, pp. 294-301, 2000.
[14] N. Langberg and N.D. Singpurwalla, ‘A unification of some software reliability models,” SIAM J. Scien.
Comput., vol. 6, no. 3, pp. 781-790, 1985.
[15] D.S. Miller, ”Exponential order statistic models of software reliability growth,” IEEE ITbu $ns$ . Soft. Eng., vol.
SE-12, no. 1, pp. 12-24, 1986.
[16] A.E. Raftery, ”Inference and prediction for a general order statistic model with unknown population size,”
J. $ASA$ , vol. 82, no. 400, pp. 1163-1168, 1987.
[17] H. Joe, “Statistical inference for general-order-statistics and nonhomogeneous-Poisson-process software reliability models,” IEEE ?Vans. Soft. Eng., vol. 15, no. 11, pp. 1485-1490, 1989.
[18] M. Ohba, “Software reliability analysis models,” $IBM$ J. Res. Dev., vol. 28, no. 4, pp. 428-443, 1984.
[19] A.L. Goel and K. Okumoto, ”Time-dependent error-detection rate model for software reliability and otherperformance measures,” IEEE $n_{nns}$ Reliab., vol. R-28, no. 3, pp. 206-211, 1979.
[20] S. Inoue and S. Yamada, “Software reliability measurement with changepoint,” Proc. Fifth Intem. Conf.
Qual. and Reliab. (ICQR 2007), Chiang Mai, Thailand, November 5-7, 2007, pp. $17(\succ 175$ .
[21] S. Yamada, M. Ohba, and S. Osaki, ”S-shaped reliability growth modeling for software error detection,”
IEEE TVuns. Reliab., vol. R-32, no. 5, pp. $475\triangleleft 78,486$ , 1983.
$t$