(57)【要約】【課題】信頼度成長モデルのパラメタ変数を簡便な方式によって推定し、そのパラメタ変数を用いた場合の予測曲線を算出し、予測値を得る。【解決手段】パラメタ推定処理部は、実績値記憶部に記憶された、テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数を元に、信頼度成長モデルとして用いるゴンペルツモデルにおける（ａ，ｂ，ｃ）のパラメタ変数を算出し、予測値算出部は、実績値記憶部に記憶された、テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数と、前記パラメタ推定処理部で算出されたゴンペルツモデルにおける（ａ，ｂ，ｃ）のパラメタ変数を初期値として、テスト工程期間の途中のある時点でのバグの日毎の累積件数の推移に最もよく近似できるようなゴンペルツモデルにおける（ａ＊，ｂ＊，ｃ＊）のパラメタ変数を求め、テスト工程期間の最終時点でのバグ件数の予測値と、残存バグ件数と、バグの収束までの日数を算出する。【選択図】図１
2010113527.tif 000002
【特許請求の範囲】
【請求項１】
テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数を入力する実績入力部と、
前記実績入力部から入力された、テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数を記憶する実績値記憶部と、
信頼度成長モデルのパラメタ変数を算出するパラメタ推定処理部と、
テスト工程期間の最終時点でのバグ件数の予測値と、残存バグ件数とバグの収束までの日数を算出する予測値算出部と、
前記予測値算出部で算出された、テスト工程期間の最終時点でのバグ件数の予測値と、残存バグ件数と、バグの収束までの日数を表示する予測表示部とを有するバグ摘出予測システムであって、
前記パラメタ推定処理部は、前記実績値記憶部に記憶された、テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数に基づき、信頼度成長モデルとして用いるゴンペルツモデルにおける（ａ，ｂ，ｃ）のパラメタ変数を算出し、
前記予測値算出部は、前記実績値記憶部に記憶された、テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数と、前記パラメタ推定処理部で算出された（ａ，ｂ，ｃ）のパラメタ変数を初期値として用いて、ゴンペルツモデルにより算出される値との差分の２乗の総和が最小となる（ａ＊，ｂ＊，ｃ＊）のパラメタ変数を求める手段と、
前記求めた（ａ＊，ｂ＊，ｃ＊）のパラメタ変数に基づき、テスト工程期間の最終時点でのバグ件数の予測値、および、残存バグ件数を算出するとともに、前記求めた（ａ＊，ｂ＊，ｃ＊）のパラメタ変数を用いるゴンペルツモデルにより、バグの収束までの日数を算出する手段とを有することを特徴するバグ摘出予測システム。
【請求項２】
テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数を入力する実績入力部と、
前記実績入力部から入力された、テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数を記憶する実績値記憶部と、
信頼度成長モデルのパラメタ変数を算出するパラメタ推定処理部と、
テスト工程期間の最終時点でのバグ件数の予測値と、残存バグ件数とバグの収束までの日数を算出する予測値算出部と、
前記予測値算出部で算出された、テスト工程期間の最終時点でのバグ件数の予測値と、残存バグ件数と、バグの収束までの日数を表示する予測表示部とを有するバグ摘出予測システムであって、
前記パラメタ推定処理部は、前記実績値記憶部に記憶された、テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数に基づき、信頼度成長モデルとして用いるＮＨＰＰモデルにおける（ａ，ｂ）のパラメタ変数を算出し、
前記予測値算出部は、前記実績値記憶部に記憶された、テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数と、前記パラメタ推定処理部で算出された（ａ，ｂ）のパラメタ変数を初期値として用いて、ＮＨＰＰモデルにより算出される値との差分の２乗の総和が最小となる（ａ＊，ｂ＊）のパラメタ変数を求める手段と、
前記求めた（ａ＊，ｂ＊）のパラメタ変数に基づき、テスト工程期間の最終時点でのバグ件数の予測値、および、残存バグ件数を算出するとともに、前記求めた（ａ＊，ｂ＊）のパラメタ変数を用いるＮＨＰＰモデルにより、バグの収束までの日数を算出する手段とを有することを特徴するバグ摘出予測システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バグ摘出予測システムに係り、特に、ソフトウェアなどの開発製造におけるテスト工程期間において、残存バグ件数やテスト工程期間終了見通しなどを予測管理するシステムに関する。
【背景技術】
【０００２】
従来のソフトウェアなどの開発製造におけるテスト工程期間において、残存バグ件数やテスト工程期間終了見通しなどを予測管理するとき、一般に、ゴンペルツモデルなど既知の信頼度成長モデルに基づいた予測が用いられる。
この予測の精度を高めるためには、これら信頼度成長モデルのパラメタ変数値を適切に与えることが重要である。しかし、適切な値を予めユーザが与えることは困難であるため、テスト工程の進捗に従って得る実績値を手がかりとして、信頼度成長曲線を補正しながら用いる方法が考案されている。（下記、特許文献１参照）
この特許文献１に示す従来技術による方法では、テスト工数の実績とバグ摘出件数の実績を元に生成した信頼度成長関数の、テスト工数についての導関数の値が、ユーザが「バグ発見効率」として与える一定の値を超える場合に、信頼度成長関数を一定の方法によって補正して、より精度の高い信頼度成長関数を得る。
【０００３】
なお、本願発明に関連する先行技術文献としては以下のものがある。
【特許文献１】特開２００８−１７１３０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前述した特許文献１に示す従来技術では、以下のような問題点があった。
従来の技術では、信頼度成長モデルのパラメタ変数値を、ユーザが直接与える必要がないという利点があるが、信頼度成長曲線の補正に用いる「バグ発見効率」の値は新たにユーザが決めて与える必要がある。そのため、ユーザが恣意的に与える値によって予測の精度が影響されるという課題が依然として残るという問題がある。
また、複雑な計算手順を踏むため、対象とするテスト工程期間が長期間となる場合、予測値の計算コストが高くなるという問題がある。たとえば、一度求めた信頼度成長関数の導関数を求め、そのテスト工程期間内での値を逐一計算して、導関数の値が一定の値を超えるかどうかによって信頼度成長曲線の補正が必要な区間を求め、補正が必要な区間について信頼度成長関数の値を再計算している。
したがって、メモリ容量が少ないコンピュータや、ＣＰＵのクロック数が低いコンピュータでの実行が難しくなる。このため、メモリ容量が少ないコンピュータや、ＣＰＵのクロック数が少ないコンピュータで予測値を得ようと思う場合は、予測計算を実行する、よりメモリ容量が多くＣＰＵのクロック数が高いコンピュータにネットワーク経由などの手段で計算させる必要がある。
このため、よりメモリ容量が多くＣＰＵのクロック数が高いコンピュータにネットワーク接続できないコンピュータでは予測値を得ることが難しくなる。
本発明は、前記従来技術の問題点を解決するためになされたものであり、本発明の目的は、テスト工程期間の途中の任意の時点で、ユーザに信頼度成長曲線の補正のための何らかの値を指定させないことで予測値の精度への影響をなくし、信頼度成長モデルのパラメタ変数を簡便な方式によって推定し、そのパラメタ変数を用いた場合の予測曲線を算出し、予測値を得ることが可能となる技術を提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述及び添付図面によって明らかにする。
【課題を解決するための手段】
【０００５】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、下記の通りである。
（１）テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数を入力する実績入力部と、前記実績入力部から入力された、テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数を記憶する実績値記憶部と、信頼度成長モデルのパラメタ変数を算出するパラメタ推定処理部と、テスト工程期間の最終時点でのバグ件数の予測値と、残存バグ件数とバグの収束までの日数を算出する予測値算出部と、前記予測値算出部で算出された、テスト工程期間の最終時点でのバグ件数の予測値と、残存バグ件数と、バグの収束までの日数を表示する予測表示部とを有するバグ摘出予測システムであって、前記パラメタ推定処理部は、前記実績値記憶部に記憶された、テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数に基づき、信頼度成長モデルとして用いるゴンペルツモデルにおける（ａ，ｂ，ｃ）のパラメタ変数を算出し、前記予測値算出部は、前記実績値記憶部に記憶された、テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数と、前記パラメタ推定処理部で算出された（ａ，ｂ，ｃ）のパラメタ変数を初期値として用いて、ゴンペルツモデルにより算出される値との差分の２乗の総和が最小となる（ａ＊，ｂ＊，ｃ＊）のパラメタ変数を求める手段と、前記求めた（ａ＊，ｂ＊，ｃ＊）のパラメタ変数に基づき、テスト工程期間の最終時点でのバグ件数の予測値、および、残存バグ件数を算出するとともに、前記求めた（ａ＊，ｂ＊，ｃ＊）のパラメタ変数を用いるゴンペルツモデルにより、バグの収束までの日数を算出する手段とを有することを特徴する。
【０００６】
（２）テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数を入力する実績入力部と、前記実績入力部から入力された、テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数を記憶する実績値記憶部と、信頼度成長モデルのパラメタ変数を算出するパラメタ推定処理部と、テスト工程期間の最終時点でのバグ件数の予測値と、残存バグ件数とバグの収束までの日数を算出する予測値算出部と、前記予測値算出部で算出された、テスト工程期間の最終時点でのバグ件数の予測値と、残存バグ件数と、バグの収束までの日数を表示する予測表示部とを有するバグ摘出予測システムであって、前記パラメタ推定処理部は、前記実績値記憶部に記憶された、テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数に基づき、信頼度成長モデルとして用いるＮＨＰＰモデルにおける（ａ，ｂ）のパラメタ変数を算出し、前記予測値算出部は、前記実績値記憶部に記憶された、テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数と、前記パラメタ推定処理部で算出された（ａ，ｂ）のパラメタ変数を初期値として用いて、ＮＨＰＰモデルにより算出される値との差分の２乗の総和が最小となる（ａ＊，ｂ＊）のパラメタ変数を求める手段と、前記求めた（ａ＊，ｂ＊）のパラメタ変数に基づき、テスト工程期間の最終時点でのバグ件数の予測値、および、残存バグ件数を算出するとともに、前記求めた（ａ＊，ｂ＊）のパラメタ変数を用いるＮＨＰＰモデルにより、バグの収束までの日数を算出する手段とを有することを特徴する。
【発明の効果】
【０００７】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記の通りである。
本発明によれば、ユーザが恣意的に与える値による予測値の精度への影響をなくし、かつ、軽便な計算コストで予測値を得ることができるバグ摘出予測システムを構成することが可能となる。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照して本発明の実施例を詳細に説明する。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する。
図１は、本発明の実施例のバグ摘出予測システムの全体構成を示すブロック図である。
図１に示すように、本実施例のバグ摘出予測システムは、実績入力部１０とバグ摘出予測実行部２０と予測表示部３０とから構成される。
実績入力部１０は、テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数を入力する。
バグ摘出予測実行部２０は、実績値記憶部２１とパラメタ推定処理部２２と予測値算出部２３から構成される。実績値記憶部２１は、実績入力部１０で入力した、テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数を記憶する。
パラメタ推定処理部２２は、実績値記憶部２１で記憶した、テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数に基づき、ゴンペルツモデルを用いる場合、もしくは、ＮＨＰＰモデルを用いる場合のそれぞれについて、信頼度成長モデルのパラメタ変数を算出する。
パラメタ変数の推定方法については、ゴンペルツモデルの場合、ＮＨＰＰモデルの場合のそれぞれについて後述する。
予測値算出部２３は、実績値記憶部２１で記憶した、テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数と、パラメタ推定処理部２２で算出した、信頼度成長モデルのパラメタ変数に基づき、最小二乗法によって、テスト工程期間の途中のある時点でのバグの日毎の累積件数の推移に最もよく近似できるような信頼度成長モデルのパラメタ変数を求め、残存バグ件数とバグの収束までの日数を算出する。この残存バグ件数とバグの収束までの日数の算出方法については、後述する。
予測表示部３０は、バグ摘出予測実行部２０で算出された、テスト工程期間の最終時点でのバグ件数の予測値、残存バグ件数とバグの収束までの日数を表示する。
【０００９】
［ゴンペルツモデルを用いる場合のパラメタ変数の算出方法］
ここでは、ゴンペルツモデルを用いる場合について、パラメタ推定処理部２２においてパラメタ変数を推定する方法について説明する。
テストの全日程がＴ日で、そのうちのｔ日が完了しているとする。それまでに発見されたバグの件数がｍであるとする。
ゴンペルツ予測の計算式は、ｘを日数、Ｍを日数ｘ時点でのバグ件数として、下記（１）式で求められる。
［数１］
Ｍ＝ａ×ｅｘｐ（−ｂ×ｃｘ）      ・・・・・・・・・・・・・・  （１）
ここで、ａ＞０、ｂ＞０、０＜ｃ＜１である。
推定すべきパラメタ変数は、このａ，ｂ，ｃの３つである。
ｘが十分大きいとＭはａに近づくことから、ａは最終的なバグの件数と考えられる。
仮に、これまでと同じペースでバグが摘出されるとすると、テスト終了日（Ｔ日目）時点でのバグの件数は、（ｍ×Ｔ）／ｔとなる。
したがって、ａは下記（２）で求めることができる。
【００１０】
［数２］
ａ＝（ｍ×Ｔ）／ｔ    ・・・・・・・・・・・・・・・・・・・  （２）
残りの２つの未知数（ｂ，ｃ）を求めるため、２点を取って当てはめてみる。
取る点は、下記の２点とする。
［数３］
ｘが真ん中のもの（ｓ，ｎ）  ｎ＝ａ×ｅｘｐ（−ｂ×ｃｓ）
・・・・・・・・・・・・・・・・・  （３）
ｘが最大のもの（ｔ，ｍ）    ｍ＝ａ×ｅｘｐ（−ｂ×ｃｔ）
・・・・・・・・・・・・・・・・・  （４）
ここで、ｓはｔ／２を超えない最大の整数で、ｎはｓ日目の時点でのバグの件数である。
（２）式、３式を、ｂ、ｃについて解くと、下記（５）式と、（６）式が得られる。
【００１１】
【数４】
2010113527.tif 000003
・・・・・・・・・・・・・・・・  （５）
ｂ＝（ｃ−ｓ×（ｌｎ（ａ）−ｌｎ（ｎ）））
・・・・・・・・・・・・・・・・  （６）
【００１２】
［ＮＨＰＰモデルを用いる場合のパラメタ変数の算出方法］
ここでは、ＮＨＰＰモデルを用いる場合について、パラメタ推定処理部２２においてパラメタ変数を推定する方法について述べる。
テストの全日程がＴ日で、そのうちのｔ日が完了しているとする。それまでに発見されたバグの件数がｍであるとする。
ＮＨＰＰ予測の計算式は、ｘを日数、Ｍを日数ｘ時点でのバグ件数として、下記（７）式で求められる。
［数５］
Ｍ＝ａ×（１−（１＋ｂ×ｘ）×ｅｘｐ（−ｂ×ｘ））
・・・・・・・・・・・・・・・・・  （７）
ここで、ａ＞０、ｂ＞０、０＜ｃ＜１である。
推定すべきパラメタ変数は、このａ，ｂの２つである。
ｘが十分大きいとＭはａに近づくことから、ａは最終的なバグの件数と考えられる。
仮に、これまでと同じペースでバグが摘出されるとすると、テスト終了日（Ｔ日目）時点でのバグの件数は、（ｍ×Ｔ）／ｔとなる。
したがって、ａは下記（８）で求めることができる。
［数６］
ａ＝（ｍ×Ｔ）／ｔ        ・・・・・・・・・・・・・・・・・  （８）
残りの１つの未知数を求めるため、１点を取って当てはめてみる。
取る点は、下記の点とする。
【００１３】
［数７］
取る点はｘが最大のもの（ｔ，ｍ）
ｍ＝ａ×（１−（１＋ｂ×ｔ）×ｅｘｐ（−ｂ×ｔ））
・・・・・・・・・・・・・・・・・  （９）
ここで、ｅｘｐ（−ｂ×ｔ）はｔが十分大きいと０に近づくので、下記（１０）式で近似する。
［数８］
ｅｘｐ（−ｂ×ｔ）≒１／（１＋ｂ×ｔ＋（ｂ×ｔ）２／２）
・・・・・・・・・・・・・・・・・  （１０）
（１０）式を、（９）式に代入し、分母を払って整理すると、下記（１１）式に示す
ｂの２次方程式が得られる。
［数９］
（ａ−ｍ）（ｔ２）ｂ２−（２×ｔ×ｍ）ｂ−２×ｍ＝０
・・・・・・・・・・・・・・・・・  （１１）
（１１）式を、これをｂについて解くと、ｂ＞０なので、下記（１２）式が得られる。
［数１０］
ｂ＝（ｍ＋√（２×ａ×ｍ−ｍ２）／（ｔ×（ａ−ｍ））
・・・・・・・・・・・・・・・・・  （１２）
【００１４】
［ゴンペルツモデルを用いる場合の残存バグ件数とバグの収束までの日数の算出方法］
予測値算出部２３は、パラメタ推定処理部２２で算出した、信頼度成長モデルのパラメタ変数（ａ、ｂ、ｃ）を初期値として、ｘが、１以上ｔ以下の間を動くときの、テスト工程期間のｘ日目に対する（１）式の値と、実績値記憶部２１で記憶した、テスト工程期間のｘ日目に対するバグの累積摘出件数の差分の２乗の値の総和を最小とするような信頼度成長モデルのパラメタ変数（ａ＊、ｂ＊、ｃ＊）の値を、準ニュートン法と呼ばれる方法によって探索する。
テスト工程期間の最終時点でのバグ件数の予測値はａ＊、残存バグ件数は、この探索によって求められたａ＊の値から、テスト工程期間のｔ日目に対するバグの累積摘出件数を引いたものになる。
バグの収束までの日数は、パラメタ変数の値を（ａ＊、ｂ＊、ｃ＊）として、（１）式を計算して求められるＭの値が、ａ＊の値の０．９９倍を超えるような値となる、最小の整数をＸとするとき、（Ｘ−ｔ）の値になる。
【００１５】
［ＮＨＰＰモデルを用いる場合の残存バグ件数とバグの収束までの日数の算出方法］
予測値算出部２３は、パラメタ推定処理部２２で算出した、信頼度成長モデルのパラメタ変数（ａ、ｂ）を初期値として、ｘが１以上ｔ以下の間を動くときの、テスト工程期間のｘ日目に対する７（式）の値と、実績値記憶部２１で記憶した、テスト工程期間のｘ日目に対するバグの累積摘出件数の差分の２乗の値の総和を最小とするような信頼度成長モデルのパラメタ変数（ａ＊、ｂ＊）の値を、準ニュートン法と呼ばれる方法によって探索する。
テスト工程期間の最終時点でのバグ件数の予測値はａ＊、残存バグ件数は、この探索によって求められたａ＊の値から、テスト工程期間のｔ日目に対するバグの累積摘出件数を引いたものになる。
バグの収束までの日数は、パラメタ変数の値を（ａ＊、ｂ＊）として、７（式）の値が、この探索によって求められたａ＊の値の０．９９倍を超えるような値となる、最小の整数をＸとするとき、（Ｘ−ｔ）の値になる。
【００１６】
以上説明したように、本実施例に係るバグ摘出予測システムは、テスト工程期間の途中のある時点でのバグの日ごとの累積摘出件数を元にして、信頼度成長曲線の補正のためにユーザが何らかの値を指定する必要をなくすことでユーザが恣意的に与える値による精度への影響をなくし、簡便に信頼度成長モデルのパラメタ変数を推定することができる。
これにより、本実施例では、ユーザに信頼度成長曲線の補正のための何らかの値を指定させることなく、メモリ容量が少ないコンピュータや、ＣＰＵのクロック数が低いコンピュータで直接にバグ摘出予測値を軽便な計算コストで計算することができる。
したがって、本実施例によれば、ソフトウェアなどの開発製造におけるテスト工程期間において、残存バグ件数やテスト工程期間終了見通しなどを、簡単に予測することが可能となる。
以上、本発明者によってなされた発明を、前記実施例に基づき具体的に説明したが、本発明は、前記実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施例のバグ摘出予測システムの全体構成を示すブロック図である。
【符号の説明】
【００１８】
１０  実績入力部
２０  バグ摘出予測実行部
２１  実績値記憶部
２２  パラメタ推定処理部
２３  予測値算出部
３０  予測表示部
【図１】
2010113527.tif 000004