Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ちょっと使えるようになる信頼度成長曲線

tomit3
September 24, 2021

 ちょっと使えるようになる信頼度成長曲線

ソフトウェア信頼度成長モデルを用いて、信頼度成長曲線(Software Reliability Growth Curve)の書き方、ツールの使い方、モデルについて解説した時の資料。
信頼度成長曲線を書くツール(SRGMTool)は下記で公開。
https://github.com/tomitomi3/SRGMHandson

tomit3

September 24, 2021
Tweet

More Decks by tomit3

Other Decks in Technology

Transcript

  1. 使いこなしたいテスト技法といえば何? • テスト担当者100人に聞いた結果[1] [1]ソフトウェアテスト編集部, ソフトウェアテスト入門 押さえておきたい<<要点・重点>>, 技術評論社, 平成20年 第1版 直交表

    18人 1位 回帰テスト 15人 2位 シナリオベーステスト 12人 3位 状態遷移(図、表) 11人 4位 境界値テスト 11人 5位 負荷テスト 9人 6位 カバレッジテスト 7人 7位 ユーザビリティテスト 4人 8位 CFD(Cause Flow Diagram) 4人 9位 不具合追跡、信頼度成長曲線など その他
  2. 信頼度成長曲線とは? • 信頼度成長曲線(Software Reliability Growth Curve) – テスト経過時間/消化項目数と累積発見障害数をソフトウェア信頼度成 長モデル(以下:SRGM)にフィッティングさせた曲線のこと。 •

    信頼度成長曲線の使い方 – テスト期間中の残存障害数見積もりなど定量的にソフトウェア信頼性の 評価に用いる(信頼度成長評価ともいう)。 ピンクの曲線が信頼度成長曲線 縦軸が累積障害数、横軸がテスト経過時間or消化項目数
  3. 1. 「データ入力」シートにデータを入力 – 必須の入力項目は「時間or消化数」と「(バグ)件数」 • 時間or消化数は検証時間またはテスト消化数を入力 • (バグ)件数は上記入力した検証時間/テスト消化数毎に 発見した障害数を入力する。 2.

    「Calc」ボタンを押下して計算開始 – Clearボタンはデータを削除するボタン。注意。 検証時間orテスト消化数毎の 発見障害数を入力 検証時間orテスト消化数を入力
  4. SRGM • 信頼度成長モデル – “実際のソフトウェア開発の立場から見ると、あるモ デルはデータ収集のコストが高すぎ、あるモデルは 理解できず、あるモデルは試してみると役に立たな い。”[1] – SRGMToolが扱うモデル

    • ゴンペルツ、ロジスティック、指数、指数一般化、 修正指数、習熟S字、習熟S字(3変数)、遅延S字 [1]Kan, Stephen H. ソフトウェア品質工学の尺度とモデル. 構造計画研究所, 2004.
  5. 代表的なソフトウェア信頼度成長モデル 考え SRGM 1障害あたりの障害発見率が一定と仮定。 βは障害発見率 ˞一般化したモデルではβ、γはテスト品質 指数型モデル 𝑓 𝑥 𝛼

    1 𝑒 ˞一般化 𝑓 𝑥 𝛼 1 𝑒 発見が容易な障害と困難な障害が混在する と仮定。β1,γ1とβ2,γ2の係数がそれぞれ障害 の発見困難さの違いを表す。 修正指数型モデル 𝑓 𝑥 𝛼 𝛽 1 𝑒 発見障害が障害と認識する時間がある(報 告の遅れ)と仮定。βは障害発見率 遅延S字型 𝑓 𝑥 𝛼 1 1 𝛽𝑥 𝑒 障害発見率は時間ともに向上すると仮定(テ ストの習熟度)。 βは障害発見率、γは習熟度 習熟S字型 𝑓 𝑥 𝛼 1 𝑒 1 𝛾𝑒 需要傾向、人口増加のモデル ˞式は参考資料参照 ロジスティックモデル ゴンペルツモデル
  6. 代表的なソフトウェア信頼度成長モデル 考え SRGM 1障害あたりの障害発見率が一定と仮定。 βは障害発見率 ˞一般化したモデルではβ、γはテスト品質 指数型モデル 𝑓 𝑥 𝛼

    1 𝑒 ˞一般化 𝑓 𝑥 𝛼 1 𝑒 発見が容易な障害と困難な障害が混在する と仮定。β1,γ1とβ2,γ2の係数がそれぞれ障害 の発見困難さの違いを表す。 修正指数型モデル 𝑓 𝑥 𝛼 𝛽 1 𝑒 発見障害が障害と認識する時間がある(報 告の遅れ)と仮定。βは障害発見率 遅延S字型 𝑓 𝑥 𝛼 1 1 𝛽𝑥 𝑒 障害発見率は時間ともに向上すると仮定(テ ストの習熟度)。 βは障害発見率、γは習熟度 習熟S字型 𝑓 𝑥 𝛼 1 𝑒 1 𝛾𝑒 需要傾向、人口増加のモデル ˞式は参考資料参照 ロジスティックモデル ゴンペルツモデル すべての式にαがある
  7. 実使用する上での注意事項 • 信頼度成長曲線を作るときの注意事項 1. 横軸はテスト検証時間またはテスト消化数 2. 横軸は一定間隔で記載する(したほうが良い)。 • テスト消化時間/検証時間を長くとると収束傾向にみえる 3.

    どのモデルを使うか恣意性がある • SRGMToolはAICを使った自動モデル選択 • 統合モデル(複数モデルを表現できるSRGM)[1]の使用 [1]古山恒夫, and 中川豊. "ソフトウェア信頼度成長曲線に関する統合モデルと有効性の検証." 情報処理学会研究報告ソフトウェア工学 (SE) 1994.18 (1993-SE-097) (1994): 73-80.
  8. 実使用する上での注意事項 • 信頼度成長評価を行うときの注意事項 1. 信頼度成長曲線だけを評価に用いない • 評価はテスト品質の上に成立 2. テスト検証時間or消化数が5割以降で評価 •

    序盤では障害発生が少ないため予測が極端な結果 – (主観)工数の序盤データに重みづけを行えば対応が可能かも しれないと考えている
  9. 参考文献 1. SQuBOK策定部会, “ソフトウェア品質知識体系ガイド”, オーム社, 平 成24年 第1版 2. ソフトウェアテスト編集部,

    ソフトウェアテスト入門 押さえておきたい <<要点・重点>>, 技術評論社, 平成20年 第1版 3. 山田茂. ソフトウェア信頼性モデル-基礎と応用.“日科技連出版社, 1994. 4. Kan, Stephen H. ソフトウェア品質工学の尺度とモデル. 構造計画研 究所, 2004. 5. 古山恒夫, and 中川豊. "ソフトウェア信頼度成長曲線に関する統合 モデルと有効性の検証." 情報処理学会研究報告ソフトウェア工学 (SE) 1994.18 (1993-SE-097) (1994): 73-80. 6. 古山恒夫(1996), ソフトウェア信頼度成長モデルに関する統合モデ ルの解析的パラメータ推定法, 情報処理学会論文誌 Vol.37 No.12, pp2326-2333
  10. 𝑸 𝒚 𝒚 𝟐 𝒚 𝒇 𝜷 • 目的変数𝑦とモデル式𝑦の残差の平方和(残差平方和) を求める。

    • 残差平方和𝑸が最少となるようにパラメータ𝜷を求める。 • データから目的変数𝒚を予測するモデル式𝒚を作る。パラメータを𝜷とする 最小二乗法 min 𝜷 𝑄 参考資料 • 最少二乗法ではパラメータで偏微分し0とした連立方程式を解く。 が、SRGMは非線形のため上記方法では解けない。 ガウスニュートン法などの反復法によってパラメータ𝜷を求める。
  11. • 最小二乗法の考え – モデル式のパラメータ(例: )を変化させ、 データとモデルの残差(誤差)を最小化 15 16 17 18

    19 20 2 2.5 3 3.5 4 y x 15 16 17 18 19 20 2 2.5 3 3.5 4 y x ・a,bとしたモデル(例:回帰式) 𝑦 𝑎𝑥 𝑏 ・ある1点𝑥 3に注目 𝑦 3 𝑎𝑥 𝑏・・・予測値 𝑦 ・・・目的変数(誤差を含む真の値) 残差 𝑦 3 𝑦 ↓正負の影響をなくすため二乗 残差平方 𝑦 3 𝑦 ・全点(全データ)で残差平方を求める 残差平方和=Σ(y- 𝑦 )^2 →小さくなるようにa,bを求める ・パラメータの変更(例:パラメータa, b) 𝒂を変更して、データを通るように変更 𝒃を変更して、データを通るように変更 →誤差を最小化するというアイディアの元行う 𝑦 → ←𝑦 3 参考資料
  12. 信頼度成長曲線とは?-用語 • ソフトウェア信頼性モデル – ソフトウェアの信頼性評価のための数理モデル • ソフトウェア信頼度成長モデル – SRGM: Software

    Reliability Growth Models – ソフトウェア信頼性モデルの1つ。 – ソフトウェアのテスト工程/運用工程の障害から信 頼度の変化を数理モデルとしたもの [1] SQuBOK策定部会, “ソフトウェア品質知識体系ガイド”, オーム社, 平成24年 第1版. pp307-311 [2]山田茂. ソフトウェア信頼性モデル-基礎と応用.“日科技連出版社, 1994. ソフトウェア信頼性モデル ᵚソフトウェア信頼性モデル ・・・ 参考資料
  13. 参考資料 • 指数型モデル( モデル) s.t α>0, β>0 上記モデルの一般化 s.t α>0,

    β>0, c>0 • 修正指数型モデル s.t α>0, 0<γ2<γ1<1, β1+β2=1, 0<βi<1 • 遅延S字型モデル s.t α>0, β>0 代表的なソフトウェア信頼度成長モデル
  14. 参考資料 • 習熟S字型モデル ˞Toolはγ=1として計算 s.t α>0, β>0, γ>0 • ロジスティックモデル

    s.t α>0, β>0, γ>0 • ゴンペルツモデル s.t α>0, β>0, γ>0 他に超指数型、指数-S字型、広範なモデルを含む統合モデルなど がある。 代表的なソフトウェア信頼度成長モデル