[[TEF/テスト技法]]

#contents(fromhere=true)
*技法名 信頼度成長曲線 [#u86b4be8]
*技法名(英語)Software Reliability Growth Curve[#fd480869]
*説明 [#ndf0d012]
縦軸にバグの累積発見数、横軸にテスト項目消化数、またはテスト時間をとると、S字型の成長曲線を描くことが知られています。
この曲線を信頼度成長曲線やバグ曲線と呼びます。

「ソフトウェア信頼度成長モデル(software reliability growth model (SRGM) )」や
ソフトウェア信頼度モデル(software reliability model (SRM) )」に基づいています。

[[宿口さんによる解説>http://blues.se.uec.ac.jp/mlarchives/swtest/msg09800.html]]

[[ソフトウェア信頼性評価における最近の話題土肥 正(広島大学)>http://sel.ist.osaka-u.ac.jp/~kusumoto/force/slides/dohi.pdf]]詳しい説明があります。([[信頼度成長曲線作成ツール SRATS>http://www.rel.hiroshima-u.ac.jp/okamu/SRATS/manual/example.html]]を開発された研究室)
        

 
-横軸が「日付」の場合
--利点:BTSのデータからすぐ作成できる(バグの登録日の日毎の累計をとればよい)
--欠点:試験していない日はバグもでないため、「試験をしてもバグがでない」のか「試
験をしないからバグがでない」のか判断ができない。
(実際テストをしなければ曲線が横になる)※プロジェクトの現在の状態を見るのに便利
-横軸が「延べテスト時間」の場合
--利点:「日付」の場合の欠点がなくなりより成長曲線に近づく
--欠点:テスト実施者の延べテスト時間を集計する必要がある
-横軸が「テスト項目数」の場合
--利点:「日付」の場合の欠点がなくなりより成長曲線に近づく
 BTSとテスト管理ツールを導入している場合、BTSからバグ数がテスト管理ツールからテスト項目数がわかるため、集計の手間が不要になる


**前提条件 [#yfa7f3e3]
+非同次ポアソン過程モデル(NHPPモデル)
--指数系モデル(Goel-Okumotoモデル)
---単位時間当たりの障害発見数は、その時刻の残存障害数に比例する
---障害一個あたりの発見率は一定である
--修正指数系モデル
---「発見が容易な障害」と「発見が困難な障害」の二種類が存在する
---テスト時間の経過とともに障害の発見が困難になるのは、上記の発見困難度の比率が原因
--遅延S字形モデル
---障害発見率は、残存障害数ではなく、その時点で故障として発見されていはいるが障害として認知されていないものに比例する
--習熟S字形モデル
---障害発見率は一定ではなく、時間の経過により向上する(テスト習熟ファクターの要素が入る)
+統計的データ解析モデル
---テスト工程における発見障害数はS字型やゴンペルツ曲線を示す傾向がある


**「オープンクローズチャート」(「バグ管理曲線」) [#lbc0a88a]
信頼度成長曲線の元になるものとして、~
バグの発生数、対策数、テストケース消化数などをグラフにした「オープンクローズチャート」(「バグ管理曲線」)があります。~
プロジェクトの進捗状況の見える化に役立ちます。

[[基礎から学ぶソフトウエア・テスト(6)>http://itpro.nikkeibp.co.jp/article/COLUMN/20060626/241754/]]に[[サンプル図>http://itpro.nikkeibp.co.jp/article/COLUMN/20060626/241754/?SS=imgview&FD=57833331&ST=develop]]があります。

「[[ソフトウェア品質保証の考え方と実際>http://www.amazon.co.jp/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E5%93%81%E8%B3%AA%E4%BF%9D%E8%A8%BC%E3%81%AE%E8%80%83%E3%81%88%E6%96%B9%E3%81%A8%E5%AE%9F%E9%9A%9B%E2%80%95%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E5%8C%96%E6%99%82%E4%BB%A3%E3%81%AB%E5%90%91%E3%81%91%E3%81%A6%E3%81%AE%E4%BD%93%E7%B3%BB%E7%9A%84%E3%82%A2%E3%83%97%E3%83%AD%E3%83%BC%E3%83%81-%E5%AE%9F%E8%B7%B5%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E9%96%8B%E7%99%BA%E5%B7%A5%E5%AD%A6%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E4%BF%9D%E7%94%B0-%E5%8B%9D%E9%80%9A/dp/4817161108]]」保田勝通著/日科技連出版社
で解説されているようです。

[[SESSAMEの初級テキストの8章でバグ管理図の見方の解説>http://www.sessame.jp/seminar/BeginnersTextbook/SESSAME_BegginersTextbookChapter8.pdf]]があります。

*使用例 [#na11f8bc]

[[信頼度成長曲線例>http://www.swtest.jp/wiki/index.php?plugin=attach&pcmd=open&file=Digest-GompertzCurve.pdf&refer=TEF%2FFAQ]] [[国広さんより>http://www.swtest.jp/wiki/index.php?plugin=attach&pcmd=open&file=Digest-GompertzCurve.pdf&refer=TEF%2FFAQ]]

[[試験時間(日)を横軸にした例>http://www.swtest.jp/wiki/index.php?plugin=attach&pcmd=open&file=bugc.JPG&refer=TEF%2F%A5%C6%A5%B9%A5%C8%B5%BB%CB%A1%2F%BF%AE%CD%EA%C5%D9%C0%AE%C4%B9%B6%CA%C0%FE]] [[信頼度成長曲線作成ツール SRATS>http://www.rel.hiroshima-u.ac.jp/okamu/SRATS/manual/example.html]]使用

*補足 [#kfabde61]
-[[信頼度成長曲線作成ツール SRATS>http://www.rel.hiroshima-u.ac.jp/okamu/SRATS/manual/example.html]]

 機能を、例えばゴンペルツ曲線にフィットする(形が似る)とか、
 テストの初期や中期でバグ件数が予測できると考えると、まず機能しませんね。
 後者は、ある意味では論外。

 バグ収束率が99%を超えないと出荷判定で合格にならないのでテストを止めようとか、
 「バグ見つけてたけど、今言うと大変だから出荷判定が終わるまで黙ってた」
 というのは本末転倒です。

 横軸を日付に採るのは、決して好ましくありません。
 普段なら、テスト日数を横軸に、テスト消化件数を縦軸に追加します。
横軸にはテスト件数またはのべテスト時間を使います。日数だけでグラフを書いた場合、「試験をしてもバグがでない」のか「試験をしていないからバグがでない」のかの区別がつかないからです。

[[TEF/テスト技法/信頼度成長曲線/アンケート]]

*参考文献 [#r74c42a9]

[[ソフトウェア品質知識体系ガイド (SQuBOK Guide)>http://www.amazon.co.jp/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E5%93%81%E8%B3%AA%E7%9F%A5%E8%AD%98%E4%BD%93%E7%B3%BB%E3%82%AC%E3%82%A4%E3%83%89%E2%80%95SQuBOK-Guide-SQuBOK%E7%AD%96%E5%AE%9A%E9%83%A8%E4%BC%9A/dp/4274501620/ref=sr_11_1?ie=UTF8&qid=1223693688&sr=11-1]] [[ベータ版(無償公開)>http://www.juse.or.jp/software/pdf/squbok-beta.pdf]]

「[[ソフトウェア信頼性モデル−基礎と応用>http://www.amazon.co.jp/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E4%BF%A1%E9%A0%BC%E6%80%A7%E3%83%A2%E3%83%87%E3%83%AB%E2%80%95%E5%9F%BA%E7%A4%8E%E3%81%A8%E5%BF%9C%E7%94%A8-%E5%AE%9F%E8%B7%B5%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E9%96%8B%E7%99%BA%E5%B7%A5%E5%AD%A6%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E5%B1%B1%E7%94%B0-%E8%8C%82/dp/4817161167]]」,山田茂著,日科技連出版

「[[品質指向ソフトウェアマネジメント>http://www.amazon.co.jp/%E5%93%81%E8%B3%AA%E6%8C%87%E5%90%91%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%83%9E%E3%83%8D%E3%82%B8%E3%83%A1%E3%83%B3%E3%83%88-%E9%AB%98%E5%93%81%E8%B3%AA%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E9%96%8B%E7%99%BA%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%83%9E%E3%83%8D%E3%82%B8%E3%83%A1%E3%83%B3%E3%83%88-%E5%B1%B1%E7%94%B0-%E8%8C%82/dp/4627871112/ref=sr_11_1?ie=UTF8&qid=1223693768&sr=11-1]]」山田茂著、福島利彦著、森北出版、

[[ソフトウェア信頼性研究会 第2回ワークショップ>http://sel.ist.osaka-u.ac.jp/~kusumoto/force/program2005.htm]]

[[マルコフモデルに基づくソフトウェアの運用信頼性評価法と最適リリース問題への応用 得能 貢一著、山田 茂著>http://www.ism.ac.jp/~tsuchiya/sympo/shukai04/shukai04-papers/016tokuno.pdf]]

[[情報処理 31(12) 特集 ソフトウェア信頼性モデルの現状と課題>http://ci.nii.ac.jp/vol_issue/nels/AN00116625/ISS0000151756_jp.html]]
 特集 ソフトウェア信頼性モデルの現状と課題
 ・ソフトウェア信頼性モデル入門  大場 充
 ・非定常ポアソン過程モデル  尾崎 俊治
 ・超幾何分布にもとづくソフトウェア残存フォールト数推定モデル  当麻 喜弘
 ・ソフトウェアの信頼性におけるベイズ統計モデル  三道 弘明
 ・ソフトウェア信頼度成長モデルの適用技術  松本 健一,菊野 亨,鳥居 宏次
 
 大場さんの論文では、地雷源のアナロジ、クジラの個体数推定のアナロジ、人口予測のアナロジ、などの解説があります(以前、TEFで話題になっていたと思います)。

[[辰巳さんより>http://blues.se.uec.ac.jp/mlarchives/swtest/msg09924.html]]

※下記URLの右上にあるCiNii(PDF)のボタンをクリックすると論文がダウンロードで
きます。

[[エラー発見率に基づくS字形ソフトウェア信頼度成長モデルの考察 山田 茂著、大場 充著>http://ci.nii.ac.jp/naid/110002724202/]]

[[ソフトウェア信頼度成長モデルにおける新しい統合モデルの厳密解と有効性の検証 古山 恒夫著>http://ci.nii.ac.jp/naid/110002945677/]]

[[パスベクトル法によるソフトウェア信頼度成長曲線の分析 若杉 忠男著>http://ci.nii.ac.jp/naid/110005998967/]]

[[残存エラー数の推定が可能なプログラムの試験法 (5) : 信頼度成長曲線 若杉 忠男著>http://ci.nii.ac.jp/naid/110002931832/]]

[[バグデータ分析によるソフトウェア品質向上手法 オムロン>http://ci.nii.ac.jp/naid/110002876596/]]

[[傾向曲線に基づいたソフトウェア信頼性モデルに対するパラメータ推定 岡村 寛之著  古村 仁志著  土肥 正著 >http://ci.nii.ac.jp/naid/110004708847/]]

[[国広さんより>http://blues.se.uec.ac.jp/mlarchives/swtest/msg09922.html]]


total &counter(total); today &counter(today); yesterday &counter(yesterday);
RIGHT:[[TEF/index]]に戻る

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS