(57)【要約】【課題】高い精度でバグの発見効率を予測する。【解決手段】ソフトウェア予測装置５０は、信頼度成長曲線補正部５４と、信頼度成長曲線表示部５８とを含む。信頼度成長曲線補正部５４は、特定テスト工数を特定する。信頼度成長曲線補正部５４は、特定テスト工数の数が２個以上の場合、矯正関数についての独立変数と従属変数との関係を表す情報を作成する。信頼度成長曲線補正部５４は、特定テスト工数の数が２個未満の場合、信頼度成長曲線を表すグラフを出力し、特定テスト工数の数が２個以上の場合、矯正関数についてのグラフを出力するように、信頼度成長曲線表示部５８を制御する。信頼度成長曲線表示部５８は、信頼度成長曲線を表すグラフおよび矯正関数についてのグラフを出力する。【選択図】図１
2008171307.tif 000002
【特許請求の範囲】
【請求項１】
バグ発見効率の値を入力するための入力手段と、
信頼度成長曲線を示す信頼度関数および前記信頼度関数の導関数についての独立変数と従属変数との関係を示す情報を予め記憶し、かつ導関数についての従属変数の値が前記入力手段に入力された値以下である矯正関数についての独立変数と従属変数との関係を示す情報および前記入力手段に入力された値を記憶するための記憶手段と、
前記信頼度関数についての前記独立変数と前記従属変数との関係を示す情報、および前記矯正関数についての前記独立変数と前記従属変数との関係を示す情報を出力するための出力手段と、
前記記憶手段および前記出力手段を制御するための制御手段とを含み、
前記制御手段は、
前記信頼度関数の導関数についての前記独立変数と前記従属変数との関係に基づいて、前記入力手段に入力された値を前記従属変数とした場合の前記信頼度関数の導関数の前記独立変数である特定テスト工数を特定するための特定手段と、
前記特定テスト工数の数が２個以上の場合、前記信頼度関数についての前記独立変数と前記従属変数との関係を示す情報に対し前記入力手段に入力された値に基づく変更を加えることにより、前記矯正関数についての前記独立変数と前記従属変数との関係を示す情報を作成するための作成手段と、
前記特定テスト工数の数が２個未満の場合、前記信頼度関数についての前記独立変数と前記従属変数との関係を示す情報を出力し、前記特定テスト工数の数が２個以上の場合、前記矯正関数についての前記独立変数と前記従属変数との関係を示す情報を出力するように、前記出力手段を制御するための出力制御手段とを含む、ソフトウェア信頼度予測装置。
【請求項２】
前記作成手段は、前記信頼度関数の導関数についての前記従属変数が前記入力手段に入力された値を超える区間について、導関数についての従属変数の値が前記入力手段に入力された値以下となる関数の独立変数と従属変数との関係に前記信頼度関数についての前記独立変数と前記従属変数との関係を一致させる変更を加えることにより、前記矯正関数についての独立変数と従属変数との関係を示す情報を作成するための手段を含む、請求項１に記載のソフトウェア信頼度予測装置。
【請求項３】
前記作成手段は、前記信頼度関数の導関数についての前記従属変数が前記入力手段に入力された値を超える区間について、導関数についての従属変数の値が前記入力手段に入力された値となる関数の独立変数と従属変数との関係に前記信頼度関数についての前記独立変数と前記従属変数との関係を一致させる変更を加えることにより、前記矯正関数についての独立変数と従属変数との関係を示す情報を作成するための手段を含む、請求項１に記載のソフトウェア信頼度予測装置。
【請求項４】
前記記憶手段は、前記信頼度関数の式を示す情報および前記信頼度関数の導関数の式を示す情報を予め記憶し、かつ前記矯正関数の式を示す情報および前記入力手段に入力された値を記憶するための手段を含み、
前記特定手段は、
前記信頼度関数の導関数の式を示す情報を用いて、前記独立変数ごとに前記従属変数を算出するための算出手段と、
前記算出手段が算出した前記従属変数と前記入力手段に入力された値とを比較することにより、前記特定テスト工数を特定するための比較手段とを含む、請求項１に記載のソフトウェア信頼度予測装置。
【請求項５】
前記記憶手段は、前記信頼度関数についての前記従属変数である累積バグ発見数の予測値および前記信頼度関数の導関数についての前記従属変数である前記バグ発見効率の予測値を前記信頼度関数および前記信頼度関数の導関数についての前記独立変数であるテスト工数に対応付けて予め記憶するための手段を含み、
前記特定手段は、前記バグ発見効率の予測値と前記入力手段に入力された値とを比較することにより、前記特定テスト工数を特定するための手段を含む、請求項１に記載のソフトウェア信頼度予測装置。
【請求項６】
信頼度成長曲線を示す信頼度関数および前記信頼度関数の導関数についての独立変数と従属変数との関係を示す情報を予め記憶する信頼度情報記憶ステップと、
バグ発見効率の値を入力する入力ステップと、
前記バグ発見効率の値を記憶する効率記憶ステップと、
前記信頼度関数の導関数についての前記独立変数と前記従属変数との関係に基づいて、前記バグ発見効率の値を前記従属変数とした場合の前記信頼度関数の導関数の前記独立変数である特定テスト工数を特定する特定ステップと、
前記特定テスト工数の数が２個以上の場合、前記信頼度関数についての前記独立変数と前記従属変数との関係を示す情報に対し前記バグ発見効率の値に基づく変更を加えることにより、導関数の従属変数の値が前記バグ発見効率の値以下である矯正関数についての前記独立変数と前記従属変数との関係を示す情報を作成する作成ステップと、
前記矯正関数についての前記独立変数と前記従属変数との関係を示す情報を記憶する矯正情報記憶ステップと、
前記特定テスト工数の数が２個未満の場合、前記信頼度関数についての前記独立変数と前記従属変数との関係を示す情報を出力し、前記特定テスト工数の数が２個以上の場合、前記矯正関数についての前記独立変数と前記従属変数との関係を示す情報を出力する出力ステップとを含む各ステップをコンピュータに実行させる、ソフトウェア信頼度予測プログラム。
【請求項７】
ソフトウェア信頼度予測プログラムを記録したコンピュータ読取り可能な記録媒体であって、
信頼度成長曲線を示す信頼度関数および前記信頼度関数の導関数についての独立変数と従属変数との関係を示す情報を予め記憶する信頼度情報記憶ステップと、
バグ発見効率の値を入力する入力ステップと、
前記バグ発見効率の値を記憶する効率記憶ステップと、
前記信頼度関数の導関数についての前記独立変数と前記従属変数との関係に基づいて、前記バグ発見効率の値を前記従属変数とした場合の前記信頼度関数の導関数の前記独立変数である特定テスト工数を特定する特定ステップと、
前記特定テスト工数の数が２個以上の場合、前記信頼度関数についての前記独立変数と前記従属変数との関係を示す情報に対し前記バグ発見効率の値に基づく変更を加えることにより、導関数の従属変数の値が前記バグ発見効率の値以下である矯正関数についての前記独立変数と前記従属変数との関係を示す情報を作成する作成ステップと、
前記矯正関数についての前記独立変数と前記従属変数との関係を示す情報を記憶する矯正情報記憶ステップと、
前記特定テスト工数の数が２個未満の場合、前記信頼度関数についての前記独立変数と前記従属変数との関係を示す情報を出力し、前記特定テスト工数の数が２個以上の場合、前記矯正関数についての前記独立変数と前記従属変数との関係を示す情報を出力する出力ステップとを含む各ステップをコンピュータに実行させる、ソフトウェア信頼度予測プログラムを記録したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア信頼度予測装置、ソフトウェア信頼度予測プログラム、およびソフトウェア信頼度予測プログラムを記録したコンピュータ読取り可能な記録媒体に関し、特に、プログラムのバグを統計的に評価するソフトウェア信頼度予測装置、ソフトウェア信頼度予測プログラム、およびソフトウェア信頼度予測プログラムを記録したコンピュータ読取り可能な記録媒体に関する。
【背景技術】
【０００２】
ソフトウェアの信頼度を予測する手法として信頼度成長曲線を用いる方法がある。信頼度成長曲線とは図１７のようにテスト工数と累積発見バグ数の推移とをグラフにしたものである。信頼度成長曲線は一般にＳ字カーブを描く。
【０００３】
信頼度成長曲線はゴンペルツ曲線などのモデルで表される。曲線を示す式の係数を適切に決めることで信頼度成長曲線の形状は具体的に定まる。
【０００４】
どのくらいテストを行えばどれくらいバグが発見できるかということは信頼度成長曲線により推定できるので、実際に実施したテスト工数と信頼度成長曲線とから、未発見のバグの数を求めることができる。
【０００５】
信頼度成長曲線を示す式の係数を求めるため、テスト工程の途中までの工数と発見バグ数を元に信頼度成長曲線全体を推定することが一般的に行われている。
【０００６】
たとえば、特許文献１は、ゴンペルツ曲線モデルおよびロジスティック曲線モデルを含むソフトウェア信頼性成長モデルを用いてソフトウェアの信頼性を予測するソフトウェア信頼性予測方法を開示する。ソフトウェア信頼性予測方法は、入力ステップと、推定ステップと、予測ステップとを含む。入力ステップにおいて、ソフトウェアにバグが発生したバグ発生日時およびバグ発生件数がコンピュータに入力される。推定ステップにおいて、コンピュータは、入力されたソフトウェアのテスト時のバグ発生日時および件数のデータからソフトウェア信頼性成長モデルのパラメータを回帰分析により推定する。予測ステップにおいて、コンピュータは、この推定された値のパラメータをもつソフトウェア信頼性成長モデルを用いて、バグ発生累積件数の予測曲線を推定し、この予測曲線からソフトウェアの信頼性を予測する。
【０００７】
特許文献１に開示された発明によると、バグ発見件数が少ない段階や試験開始間もない時点からソフトウェアの信頼性を適確に予測し得る。
【特許文献１】特開２０００−１２２８６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、特許文献１に開示された発明では、予測精度が良くないことがあるという問題点がある。この問題点について具体的に説明する。
【０００９】
次に述べる式が示す曲線を図１８に示す。その式とは、ソフトウェアのテスト工程に関する信頼度成長曲線を示す式をテスト工数で微分した式である。図１８に示す曲線は単位テスト工数当たりの発見バグ数、すなわちバグ発見効率を示すこととなる。
【００１０】
バグ発見効率はテスト開始段階から徐々に増加し、中期段階で最大に達し、その後、終盤に向けて減少するという特徴を持っている。そのバグ発見効率の最大値はテスト工程を実施する作業者の能力などに基づいて予め定められていると考えられる。
【００１１】
ところが特許文献１に開示された発明を用いた場合、テスト工程初期の発見バグ数の実績が通常より少し多目に出ると、予測曲線が示すバグ発見効率は、図１９に示すように上述した上限値を超えてしまう可能性がある。その場合、予測曲線が示す効率でバグを発見することは不可能である。そのような予測曲線は意味を持たない。これでは予測精度が良いとは言えない。
【００１２】
本発明は上述の問題点を解決するためになされたものであって、その目的は、高い精度でバグの発見効率を予測できるソフトウェア信頼度予測装置、ソフトウェア信頼度予測プログラム、およびソフトウェア信頼度予測プログラムを記録したコンピュータ読取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明のある局面にしたがうと、ソフトウェア信頼度予測装置は、バグ発見効率の値を入力するための入力手段と、記憶手段と、出力手段と、制御手段とを含む。記憶手段は、信頼度成長曲線を示す信頼度関数および信頼度関数の導関数についての独立変数と従属変数との関係を示す情報を予め記憶し、かつ導関数についての従属変数の値が入力手段に入力された値以下である矯正関数についての独立変数と従属変数との関係を示す情報および入力手段に入力された値を記憶する。出力手段は、信頼度関数についての独立変数と従属変数との関係を示す情報、および矯正関数についての独立変数と従属変数との関係を示す情報を出力する。制御手段は、記憶手段および出力手段を制御する。制御手段は、特定手段と、作成手段と、出力制御手段とを含む。特定手段は、信頼度関数の導関数についての独立変数と従属変数との関係に基づいて、入力手段に入力された値を従属変数とした場合の信頼度関数の導関数の独立変数である特定テスト工数を特定する。作成手段は、特定テスト工数の数が２個以上の場合、信頼度関数についての独立変数と従属変数との関係を示す情報に対し入力手段に入力された値に基づく変更を加えることにより、矯正関数についての独立変数と従属変数との関係を示す情報を作成する。出力制御手段は、特定テスト工数の数が２個未満の場合、信頼度関数についての独立変数と従属変数との関係を示す情報を出力し、特定テスト工数の数が２個以上の場合、矯正関数についての独立変数と従属変数との関係を示す情報を出力するように、出力手段を制御する。
【００１４】
また、上述した作成手段は、信頼度関数の導関数についての従属変数が入力手段に入力された値を超える区間について、導関数についての従属変数の値が入力手段に入力された値以下となる関数の独立変数と従属変数との関係に信頼度関数についての独立変数と従属変数との関係を一致させる変更を加えることにより、矯正関数についての独立変数と従属変数との関係を示す情報を作成するための手段を含むことが望ましい。
【００１５】
また、上述した作成手段は、信頼度関数の導関数についての従属変数が入力手段に入力された値を超える区間について、導関数についての従属変数の値が入力手段に入力された値となる関数の独立変数と従属変数との関係に信頼度関数についての独立変数と従属変数との関係を一致させる変更を加えることにより、矯正関数についての独立変数と従属変数との関係を示す情報を作成するための手段を含むことが望ましい。
【００１６】
また、上述した記憶手段は、信頼度関数の式を示す情報および信頼度関数の導関数の式を示す情報を予め記憶し、かつ矯正関数の式を示す情報および入力手段に入力された値を記憶するための手段を含むことが望ましい。併せて、特定手段は、算出手段と、比較手段とを含むことが望ましい。算出手段は、信頼度関数の導関数の式を示す情報を用いて、独立変数ごとに従属変数を算出する。比較手段は、算出手段が算出した従属変数と入力手段に入力された値とを比較することにより、特定テスト工数を特定する。
【００１７】
また、上述した記憶手段は、信頼度関数についての従属変数である累積バグ発見数の予測値および信頼度関数の導関数についての従属変数であるバグ発見効率の予測値を信頼度関数および信頼度関数の導関数についての独立変数であるテスト工数に対応付けて予め記憶するための手段を含むことが望ましい。併せて、特定手段は、バグ発見効率の予測値と入力手段に入力された値とを比較することにより、特定テスト工数を特定するための手段を含むことが望ましい。
【００１８】
本発明の他の局面に従うと、ソフトウェア信頼度予測プログラムは、信頼度情報記憶ステップと、入力ステップと、効率記憶ステップと、特定ステップと、作成ステップと、矯正情報記憶ステップと、出力ステップとを含む各ステップをコンピュータに実行させる。
信頼度情報記憶ステップは、信頼度成長曲線を示す信頼度関数および信頼度関数の導関数についての独立変数と従属変数との関係を示す情報を予め記憶するステップである。入力ステップは、バグ発見効率の値を入力するステップである。効率記憶ステップは、バグ発見効率の値を記憶するステップである。特定ステップは、信頼度関数の導関数についての独立変数と従属変数との関係に基づいて、特定テスト工数を特定するステップである。特定テスト工数は、バグ発見効率の値を従属変数とした場合の信頼度関数の導関数の独立変数である。作成ステップは、特定テスト工数の数が２個以上の場合、信頼度関数についての独立変数と従属変数との関係を示す情報に対しバグ発見効率の値に基づく変更を加えることにより、矯正関数についての独立変数と従属変数との関係を示す情報を作成するステップである。矯正関数は、導関数の従属変数の値がバグ発見効率の値以下である関数を意味する。矯正情報記憶ステップは、矯正関数についての独立変数と従属変数との関係を示す情報を記憶するステップである。出力ステップは、特定テスト工数の数が２個未満の場合、信頼度関数についての独立変数と従属変数との関係を示す情報を出力し、特定テスト工数の数が２個以上の場合、矯正関数についての独立変数と従属変数との関係を示す情報を出力するステップである。
【００１９】
本発明の他の局面にしたがうと、記録媒体は、ソフトウェア信頼度予測プログラムを記録したコンピュータ読取り可能な記録媒体である。ソフトウェア信頼度予測プログラムは、信頼度情報記憶ステップと、入力ステップと、効率記憶ステップと、特定ステップと、作成ステップと、矯正情報記憶ステップと、出力ステップとを含む各ステップをコンピュータに実行させる。
信頼度情報記憶ステップは、信頼度成長曲線を示す信頼度関数および信頼度関数の導関数についての独立変数と従属変数との関係を示す情報を予め記憶するステップである。入力ステップは、バグ発見効率の値を入力するステップである。効率記憶ステップは、バグ発見効率の値を記憶するステップである。特定ステップは、信頼度関数の導関数についての独立変数と従属変数との関係に基づいて、特定テスト工数を特定するステップである。特定テスト工数は、バグ発見効率の値を従属変数とした場合の信頼度関数の導関数の独立変数である。作成ステップは、特定テスト工数の数が２個以上の場合、信頼度関数についての独立変数と従属変数との関係を示す情報に対しバグ発見効率の値に基づく変更を加えることにより、矯正関数についての独立変数と従属変数との関係を示す情報を作成するステップである。矯正関数は、導関数の従属変数の値がバグ発見効率の値以下である関数を意味する。矯正情報記憶ステップは、矯正関数についての独立変数と従属変数との関係を示す情報を記憶するステップである。出力ステップは、特定テスト工数の数が２個未満の場合、信頼度関数についての独立変数と従属変数との関係を示す情報を出力し、特定テスト工数の数が２個以上の場合、矯正関数についての独立変数と従属変数との関係を示す情報を出力するステップである。
【発明の効果】
【００２０】
本発明に係るソフトウェア信頼度予測装置、ソフトウェア信頼度予測プログラム、およびソフトウェア信頼度予測プログラムを記録したコンピュータ読取り可能な記録媒体は、高い精度でバグの発見効率を予測できる。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同一である。したがって、それらについての詳細な説明は繰返さない。
【００２２】
<第１の実施の形態>
以下、本発明の第１の実施の形態に係るソフトウェア信頼度予測装置について説明する。
【００２３】
図１は、本実施の形態に係るソフトウェア予測装置５０の構成を概略的に示す図である。図１を参照して、本実施の形態に係るソフトウェア信頼度予測装置５０は、信頼度成長曲線生成部５２と、信頼度成長曲線補正部５４と、情報記憶部５６と、信頼度成長曲線表示部５８とを含む。信頼度成長曲線生成部５２は、テスト工数の実績を示す値とバグ発見数の実績を示す値とが入力されると、信頼度成長曲線を示す信頼度関数についての独立変数と従属変数との関係を示す情報を生成する。本実施の形態の場合、信頼度成長曲線生成部５２は、ゴンペルツ曲線を示す差分方程式を予め記憶している。信頼度成長曲線生成部５２は、テスト工数の実績を示す値とバグ発見数の実績を示す値とに基づいて回帰式の係数を算出し、その係数を前述した差分方程式に代入することで、信頼度関数を示す数式の情報を作成する。その情報が作成されると、信頼度成長曲線生成部５２は、その情報が示す信頼度関数を用いて独立変数に対応する従属変数を順次算出する。これにより、信頼度関数についての独立変数と従属変数との関係を示す情報が生成される。信頼度成長曲線補正部５４は、バグ発見効率の値が入力され、信頼度関数についての独立変数と従属変数との関係を示す情報が信頼度成長曲線生成部５２から入力されると、信頼度関数についての独立変数と従属変数との関係を示す情報に対しバグ発見数の実績を示す値に基づく変更を加えることにより、新たな信頼度関数についての独立変数と従属変数との関係を示す情報を作成する。本実施の形態においては、この新たな信頼度関数を「矯正関数」と称する。特に明示の記載がないまま「信頼度関数」と述べた場合、その「信頼度関数」は、矯正関数ではなく、そのもととなった関数を意味する。本実施の形態において、矯正関数の導関数についての従属変数は前述したバグ発見効率の値以下となる。情報記憶部５６は、信頼度関数およびその導関数についての独立変数と従属変数との関係を示す情報を予め記憶し、かつ矯正関数についての独立変数と従属変数との関係を示す情報およびバグ発見効率の値を記憶する。信頼度成長曲線表示部５８は、信頼度関数についての独立変数と従属変数との関係を示す情報および矯正関数についての独立変数と従属変数との関係を示す情報を表示する。信頼度成長曲線表示部５８がそれらの情報を表示することにより、それらの情報は出力されたこととなる。
【００２４】
信頼度成長曲線補正部５４は、入力部５４２と、記憶制御部５４４と、特定部５４６と、作成部５４８と、出力制御部５５０とを含む。
【００２５】
入力部５４２は、バグ発見効率の値その他の情報を人が入力するための装置である。記憶制御部５４４は、入力部５４２に入力された情報や信頼度成長曲線生成部５２が出力した情報を記憶するように情報記憶部５６を制御する。特定部５４６は、上述した信頼度関数の導関数についての独立変数と従属変数との関係に基づいて、入力部５４２に入力されたバグ発見効率の値を従属変数とした場合の信頼度関数の導関数の独立変数を特定する。本実施の形態に場合、入力部５４２に入力されたバグ発見効率の値を従属変数とした場合におけるこの独立変数を「特定テスト工数」と称する。また、本実施の形態の場合、信頼度関数およびその導関数の独立変数はテスト工数を示す。本実施の形態において、「テスト工数」とは、ソフトウェアのバグを発見するためのテストに費やされた工数を示す。作成部５４８は、特定テスト工数の数が２個以上の場合、信頼度関数についての独立変数と従属変数との関係を示す情報に対しバグ発見効率の値に基づく変更を加えることにより、矯正関数についての独立変数と従属変数との関係を示す情報を作成する。出力制御部５５０は、次に述べる２種類の情報を出力する。第１種類目の情報は、信頼度関数についての独立変数と従属変数との関係を示す情報である。第２種類目の情報は、矯正関数についての独立変数と従属変数との関係を示す情報である。前者の情報は、特定部５４６が特定したテスト工数の数が２個未満の場合に出力される。後者の情報は、特定部５４６が特定したテスト工数の数が２個以上の場合出力される。
【００２６】
特定部５４６は、読出部５５２と、比較部５５４とを含む。読出部５５２は、情報記憶部５６に記憶された、信頼度関数の導関数についての独立変数と従属変数との関係を示す情報を読み出す。本実施の形態の場合には、所定の独立変数に対応付けられた従属変数の値がその情報として読み出される。比較部５５４は、読出部５５２が読み出した従属変数の値と入力部５４２に入力されたバグ発見効率の値とを比較し、それらが一致した場合、その従属変数に対応付けられている独立変数の値を特定テスト工数とみなすユニットである。
【００２７】
図２は、本実施の形態におけるソフトウェア信頼度予測装置５０を実現するコンピュータハードウェアの構成を示す図である。このコンピュータハードウェアは、キーボード６２と、メモリ６４と、固定ディスク６６と、ディスプレイ６８と、通信インターフェイス７０と、メモリカード駆動装置７２と、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）駆動装置７４と、ＣＰＵ（Central Processing Unit）７６とを含む。
【００２８】
キーボード６２は、ユーザが情報を入力する装置である。メモリ６４は、情報を記憶する。固定ディスク６６は、本実施の形態におけるソフトウェア信頼度予測装置５０を実現するためのプログラムなどを記憶する。ディスプレイ６８は、表示により情報を出力する。通信インターフェイス７０は、図示しないコンピュータと通信する。メモリカード駆動装置７２は、メモリカード８０から情報を読取る。ＣＤ−ＲＯＭ駆動装置７４は、ＣＤ−ＲＯＭ８４から本実施の形態におけるソフトウェア信頼度予測装置５０を実現するためのプログラムなどを読取る。ＣＰＵ７６は、各種の演算を実施する。ＣＰＵ７６は、図２に示すコンピュータハードウェアの各部を制御する回路でもある。
【００２９】
このソフトウェア信頼度予測装置５０は、コンピュータハードウェアとＣＰＵ７６により実行されるソフトウェアとにより実現される。一般的にこうしたソフトウェアは、ＣＤ−ＲＯＭ８４などの記録媒体に格納されて流通し、ＣＤ−ＲＯＭ駆動装置７４などにより記録媒体から読取られて固定ディスク６６に一旦格納される。さらにメモリ６４に読出されて、上述したＣＰＵ７６により実行される。上述したコンピュータのハードウェア自体は一般的なものである。したがって、本発明の最も本質的な部分は、ＣＤ−ＲＯＭ８４などの記録媒体に記録されたソフトウェアである。なお、コンピュータ自体の動作は周知であるので、ここではその詳細な説明は繰返さない。
【００３０】
図３を参照して、ソフトウェア信頼度予測装置５０で実行されるプログラムは、信頼度成長曲線の出力に関し、以下のような制御を実行する。
【００３１】
ステップＳ１００にて、ソフトウェア信頼度予測装置５０のユーザは、バグ発見効率の値を入力部５４２に入力する。入力部５４２は、入力された値に対応する信号を生成する。生成された信号は、記憶制御部５４４に出力される。記憶制御部５４４は、その信号に対応する情報を情報記憶部５６に記憶させる。これにより、バグ発見効率の値を示す情報が情報記憶部５６に記憶されることとなる。
【００３２】
ステップＳ１０２にて、特定部５４６は、α＝ｆ’（ｔ）を満たす独立変数ｔの値を特定する。ただし、本実施の形態の場合、αはバグ発見効率の値を示す。ｆ’（ｔ）は信頼度成長曲線の導関数を示す。ｔは、テスト工数を示す。α＝ｆ’（ｔ）を満たすｔの値が上述した特定テスト工数である。この処理のフローチャートを図４に示す。
【００３３】
ステップＳ１０４にて、作成部５４８は、特定テスト工数の数が２個以上あるか否かを判断する。特定テスト工数の数が２個以上あると判断した場合には（ステップＳ１０４にてＹＥＳ）、処理はステップＳ１０６へと移される。もしそうでないと（ステップＳ１０４にてＮＯ）、処理はステップＳ１０８へと移される。
【００３４】
ステップＳ１０６にて、作成部５４８は、矯正関数についての独立変数と従属変数との関係を示す情報を作成する。
【００３５】
ステップＳ１０８にて、出力制御部５５０は、信頼度成長曲線表示部５８に信頼度成長曲線の図を出力させる。ただし、出力制御部５５０は、特定テスト工数の数が２個未満の場合、信頼度関数についての独立変数と従属変数との関係を示す図を信頼度成長曲線の図として出力し、特定テスト工数の数が２個以上の場合、矯正関数についての独立変数と従属変数との関係を示す図を信頼度成長曲線の図として出力する。
【００３６】
図４を参照して、ソフトウェア信頼度予測装置５０で実行されるプログラムは、特定テスト工数の特定に関し、以下のような制御を実行する。
【００３７】
ステップＳ１２０にて、読出部５５２は、パラメータｎに「１」を代入する。
ステップＳ１２２にて、読出部５５２は、予め定められた値Ｎから「１」を引いた値よりもパラメータｎの値が小さいか否かを判断する。予め定められた値Ｎから「１」を引いた値よりもパラメータｎの値が小さいと判断した場合には（ステップＳ１２２にてＹＥＳ）、処理はステップＳ１２４へと移される。もしそうでないと（ステップＳ１２２にてＮＯ）、処理は終了する。
【００３８】
ステップＳ１２４にて、読出部５５２は、信頼度成長曲線の導関数についての独立変数の値とこれに対応付けられている従属変数の値とを情報記憶部５６から読出す。ただし、読み出されるのは、パラメータｎの値に等しい独立変数、これに対応付けられている従属変数、パラメータｎの値に「１」を加えた値に等しい独立変数、およびこれに対応付けられている従属変数の値である。前者の従属変数をｆ’（ｎ）とする。後者の従属変数をｆ’（ｎ＋１）とする。読出された２種類の従属変数は比較部５５４に出力される。併せて、読出部５５２は、バグ発見効率αの値を情報記憶部５６から読出す。この値も比較部５５４に出力される。比較部５５４は、ｆ’（ｎ）≦αかつｆ’（ｎ＋１）＞αが成立するか否かを判断する。ｆ’（ｎ）≦αかつｆ’（ｎ＋１）＞αが成立すると判断した場合には（ステップＳ１２４にてＹＥＳ）、処理はステップＳ１２６へと移される。もしそうでないと（ステップＳ１２４にてＮＯ）、処理はステップＳ１３０へと移される。
【００３９】
ステップＳ１２６にて、比較部５５４は、パラメータｎの値を第１の特定テスト工数として作成部５４８に出力する。併せて、比較部５５４は、判断が終了したことを示す信号を読出部５５２に出力する。
【００４０】
ステップＳ１２８にて、読出部５５２は、パラメータｎの値を「１」増加させる。
ステップＳ１３０にて、比較部５５４は、ｆ’（ｎ）≧αかつｆ’（ｎ＋１）＜αが成立するか否かを判断する。ｆ’（ｎ）≧αかつｆ’（ｎ＋１）＜αが成立すると判断した場合には（ステップＳ１３０にてＹＥＳ）、処理はステップＳ１３２へと移される。もしそうでないと（ステップＳ１３０にてＮＯ）、処理はステップＳ１２８へと移される。
【００４１】
ステップＳ１３２にて、比較部５５４は、パラメータｎの値を第２の特定テスト工数として作成部５４８に出力する。併せて、比較部５５４は、判断が終了したことを示す信号を読出部５５２に出力する。
【００４２】
図５を参照して、ソフトウェア信頼度予測装置５０で実行されるプログラムは、信頼度成長曲線の導関数についての従属変数の算出に関し、以下のような制御を実行する。
【００４３】
ステップＳ１６０にて、信頼度成長曲線生成部５２は、パラメータｎに「１」を設定する。
【００４４】
ステップＳ１６２にて、信頼度成長曲線生成部５２は、パラメータｎの値が予め定めた値Ｎ未満か否かを判断する。パラメータｎの値がＮ未満と判断した場合には（ステップＳ１６２にてＹＥＳ）、処理はステップＳ１６４へと移される。もしそうでないと（ステップＳ１６２にてＮＯ）、処理は終了する。
【００４５】
ステップＳ１６４にて、信頼度成長曲線生成部５２は、以下の式に従って、パラメータｎの値を独立変数の値とした場合の、導関数ｆ’（ｎ）の従属変数の値を算出する。
【００４６】
ｆ’（ｎ）＝｛ｆ（ｎ＋１）−ｆ（ｎ）｝÷｛ｔ（ｎ＋１）−ｔ（ｎ）｝
ただし、ｆ（ｎ）は、信頼度関数において独立変数をｎとした場合の従属変数を示す値である。また、ｔ（ｎ）＝ｎ−１である。
【００４７】
算出された従属変数の値は、パラメータｎが示す独立変数に対応付けられて、情報記憶部５６に記憶される。
【００４８】
ステップＳ１６６にて、信頼度成長曲線生成部５２は、パラメータｎの値を「１」増加させる。
【００４９】
以上のような構造およびフローチャートに基づく、ソフトウェア信頼度予測装置５０の動作について説明する。
【００５０】
信頼度成長曲線生成部５２として動作するメモリカード駆動装置７２から、メモリカード８０に記録されたテスト工数の実績を示す値とバグ発見数の実績を示す値とが読込まれたとする。信頼度成長曲線生成部５２は、テスト工数の実績を示す値とバグ発見数の実績を示す値とが読み込まれると、上述した方法により、これらの値から、信頼度関数についての独立変数と従属変数との関係を示す情報を生成する。図６は、信頼度成長曲線生成部５２に入力されたテスト工数の実績の一例を示す図である。図７は、信頼度成長曲線生成部５２に入力されたバグ発見数の実績の一例を示す図である。図８は、このとき作成された、信頼度関数についての独立変数と従属変数との関係を示す図である。この情報は、情報記憶部５６に記憶される。図９は、この情報をグラフとして表わした図である。この図は、信頼度成長曲線そのものでもある。
【００５１】
この情報が情報記憶部５６に記憶されると、信頼度成長曲線生成部５２は、パラメータｎに「１」を設定する（ステップＳ１６０）。その値が設定されると、信頼度成長曲線生成部５２は、パラメータｎの値が予め定めた値Ｎ未満か否かを判断する（ステップＳ１６２）。この場合、パラメータｎの値がＮ未満と判断されるとすると（ステップＳ１６２にてＹＥＳ）、信頼度成長曲線生成部５２は、パラメータｎの値を独立変数の値とした場合の、導関数ｆ’（ｎ）の従属変数の値を算出する。算出された従属変数の値は、パラメータｎが示す独立変数に対応付けられて、情報記憶部５６に記憶される（ステップＳ１６４）。従属変数の値が算出されると、信頼度成長曲線生成部５２は、パラメータｎの値を「１」増加させる（ステップＳ１６６）。
【００５２】
その後、パラメータｎの値が予め定めた値Ｎに等しくなるまで、ステップＳ１６２からステップＳ１６６までの処理が繰り返される。
【００５３】
パラメータｎの値が予め定めた値Ｎに等しくなると（ステップＳ１６２にてＮＯ）、処理は終了する。図１０は、情報記憶部５６に記憶された独立変数と従属変数とを示す図である。図１１は、信頼度関数の導関数についての独立変数と従属変数との関係を示す情報をグラフとして示す図である。この図は、テスト工数に対するバグ発見効率を示す図でもある。
【００５４】
そのような処理が終了した後、ソフトウェア信頼度予測装置５０のユーザは、入力部５４２に、バグ発見効率の値を入力する。そのようなデータは、記憶制御部５４４の制御により、情報記憶部５６に記憶される。図１２は、このようにして情報記憶部５６に記憶されたバグ発見効率の値を示す図である（ステップＳ１００）。
【００５５】
データが記憶されると、読出部５５２は、パラメータｎに「１」を設定する（ステップＳ１２０）。パラメータｎに値が設定されると、読出部５５２は、パラメータｎの値がＮ−１未満か否かを判断する（ステップＳ１２２）。この場合、パラメータｎの値はＮ−１よりも小さいので（ステップＳ１２２にてＹＥＳ）、読出部５５２は、従属変数ｆ’（ｎ）とｆ’（ｎ＋１）とバグ発見効率の値αとを読出す。図１０に示すデータが情報記憶部５６に記憶されていた場合、読出されたｆ’（ｎ）の値は「０．１」である。ｆ’（ｎ＋１）の値は「０．２」である。αの値は「０．３」である。比較部５５４は、ｆ’（ｎ）≦αかつｆ’（ｎ＋１）＞αか否かを判断する（ステップＳ１２４）。この場合、そのような条件は成立しないので（ステップＳ１２４にてＮＯ）、比較部５５４は、ｆ’（ｎ）≧αかつｆ’（ｎ＋１）＜αが成立するか否かを判断する（ステップＳ１３０）。この場合、そのような条件も成立しないので（ステップＳ１３０にてＮＯ）、読出部５５２は、パラメータｎの値を「１」増加させる（ステップＳ１２８）。
【００５６】
その後、ステップＳ１２２の処理を経て、比較部５５４は、ｆ’（ｎ）≦αかつｆ’（ｎ＋１）＞αが成立するか否かを判断する（ステップＳ１２４）。この場合、ｆ’（ｎ）の値は「０．２」である。ｆ’（ｎ＋１）の値は「０．３」である。この場合、前述した条件は成立しないので（ステップＳ１２４にてＮＯ）、比較部５５４は、ｆ’（ｎ）≧αかつｆ’（ｎ＋１）＜αが成立するか否かを判断する（ステップＳ１３０）。この場合、そのような条件は成立しないので（ステップＳ１３０にてＮＯ）、読出部５５２は、再びパラメータｎの値を「１」増加させる（ステップＳ１２８）。
【００５７】
その後、ステップＳ１２２の処理を経て、比較部５５４は、ｆ’（ｎ）≦αかつｆ’（ｎ＋１）＞αが成立するか否かを判断する（ステップＳ１２４）。この場合、パラメータｎの値は「３」になっている。読出されたｆ’（ｎ）の値は「０．３」である。読出されたｆ’（ｎ＋１）の値は「０．４」である。この場合、前述した条件は成立するので（ステップＳ１２４にてＹＥＳ）、比較部５５４は、パラメータｎの値「３」を作成部５４８に出力する（ステップＳ１２６）。このパラメータｎの値は図１１における「ｔａ」である。
【００５８】
パラメータｎの値が出力されると、読出部５５２は、パラメータｎの値を「１」増加させる（ステップＳ１２８）。
【００５９】
その後、ステップＳ１２２，ステップＳ１２４，ステップＳ１３０，ステップＳ１２８の処理が繰返される。途中で、パラメータｎの値がｔｂの場合、ｆ’（ｎ）≧αかつｆ’（ｎ＋１）＜αという条件が満たされ（ステップＳ１３０にてＹＥＳ）、比較部５５４は、パラメータｎの値すなわちｔｂを作成部５４８に出力する（ステップＳ１３２）。
【００６０】
その後、ｎ＝Ｎ−１となると（ステップＳ１２２にてＮＯ）、作成部５４８は、特定テスト工数の数が２個以上あるか否かを判断する（ステップＳ１０４）。上述の説明から明らかなように、特定テスト工数の数が２個あるので（ステップＳ１０４にてＹＥＳ）、作成部５４８は、矯正関数についての独立変数と従属変数との関係を示す情報を作成する（ステップＳ１０６）。
【００６１】
本実施の形態の場合、作成部５４８は、上述した導関数ｆ’（ｎ）についての従属変数がバグ発見効率αを超える区間を含む独立変数の区間において、信頼度関数ｆ（ｎ）についての独立変数と従属変数との関係を示す情報に対し、独立変数の値の増加率に対応する従属変数の増加率の比がバグ発見効率α以下となる変更を加えることにより、矯正関数ｇ（ｎ）についての独立変数と従属変数との関係を示す情報を作成する。
【００６２】
作成部５４８は、特定テスト工数の数が２個で、信頼度関数をｙ＝ｆ（ｘ）とし、信頼度関数の導関数をｙ＝ｆ’（ｘ）とし、矯正関数をｙ＝ｇ（ｘ）とし、特定テスト工数をｔａおよびｔｂとし、入力部５４２に入力された値をαとし、かつｔｃ＝ｆ（ｔａ）＋｛ｆ（ｔｂ）−ｆ（ｔａ）｝÷αとする場合、矯正関数についての独立変数と従属変数との関係を示す情報を、次式に従って作成する。
０  ≦ｘ＜ｔａの範囲については  ｙ＝ｇ（ｘ）＝ｆ（ｘ）
ｔａ≦ｘ＜ｔｃの範囲については  ｙ＝ｇ（ｘ）＝ｆ（ｔａ）＋（ｘ−ｔａ）×α
ｔｂ≦ｘ      の範囲については  ｙ＝ｇ（ｘ）＝ｆ（ｘ−ｔｃ＋ｔｂ）
図１３は、信頼度関数ｆ（ｎ）と矯正関数ｇ（ｎ）との関係を示す図である。
【００６３】
本実施の形態の場合、上述した式に値を代入することにより算出された従属変数が、独立変数としてのパラメータｎに対応付けられて情報記憶部５６に記憶される。これにより、矯正関数についての独立変数と従属変数との関係を示す情報が作成されたこととなる。
【００６４】
そのような情報が作成されると、出力制御部５５０は、信頼度成長曲線の図を出力する（ステップＳ１０８）。ただし、出力制御部５５０は、矯正関数についての情報を用いて、図を出力させる。これにより、矯正関数についての独立変数と従属変数との関係を示すグラフが新たな信頼度成長曲線の図として出力されることとなる。
【００６５】
以上のようにして、本実施の形態に係るソフトウェア信頼度予測装置５０は、信頼度予測曲線から導き出されるバグの発見効率が入力部５４２に入力された値を上回る場合、その値を上回らないよう信頼度予測曲線を矯正した図を出力する。そのような矯正が加えられているので、出力された信頼度予測曲線は、現実にバグが発見される確率をよく示すと考えられる。その結果、高い予測精度でバグの発見効率を予測できるソフトウェア信頼度予測装置、ソフトウェア信頼度予測プログラム、およびソフトウェア信頼度予測プログラムを記録したコンピュータ読取り可能な記録媒体を提供することができる。
【００６６】
また、本実施の形態に係るソフトウェア信頼度予測装置５０は、信頼度予測曲線を示す関数についての独立変数と従属変数との関係を示す情報を、独立変数と従属変数とを対応付けたデータベースとして記憶する。これにより、特定テスト工数は、情報記憶部５６が記憶した従属変数の値に基づいて特定される。これにより、信頼度予測曲線を示す関数が非線形の関数であっても、特定テスト工数を特定することが容易になる。さらに、信頼度予測曲線を示す関数が非線形の関数であっても、矯正関数を作成することが容易になる。信頼度予測曲線を示す関数が非線形の関数であっても、特定テスト工数を特定することが容易で、矯正関数を作成することが容易なので、信頼度予測曲線を示す関数を線形の関数とみなさなくても、矯正関数に基づいて信頼度予測曲線を出力させることができる。
【００６７】
また、本実施の形態に係るソフトウェア信頼度予測装置５０は、信頼度予測曲線から導き出されるバグの発見効率が入力部５４２に入力された値を上回るテスト工数については、入力部５４２に入力された値にバグ発見効率が等しいとみなして矯正関数を作成する。これにより、必要以上にバグ発見効率を低く予測することがなくなる。
【００６８】
なお、第１の変形例にかかる発明においては、矯正関数についての独立変数と従属変数との関係を示す情報をステップＳ１０６にて作成部５４８が作成するための具体的な方法は、上述した方法以外の方法であってもよい。たとえば、情報記憶部５６が記憶した信頼度予測曲線を示す関数についての従属変数の値に、それらの従属変数の最大値に対するバグ発見効率αの比を乗算し、その結果得られた値に従属変数の値を書き換えてもよい。その他、作成部５４８は、信頼度関数の導関数についての従属変数が入力部５４２に入力された値を超える区間を含む、信頼度関数および信頼度関数の導関数についての独立変数の区間において、信頼度関数の導関数についての従属変数が入力部５４２に入力された値以下となる変更を加えてもよい。
【００６９】
また、第２の変形例にかかる発明においては、信頼度成長曲線生成部５２は、上述した方法とは異なる方法により信頼度関数についての独立変数と従属変数との関係を示す情報を生成してもよい。
【００７０】
<第２の実施の形態>
以下、本発明の第２の実施の形態に係るソフトウェア信頼度予測装置について説明する。
【００７１】
図１４は、本実施の形態に係るソフトウェア信頼度予測装置５１の構成を示す図である。図１４を参照して、本実施の形態に係るソフトウェア信頼度予測装置５１は、信頼度成長曲線生成部５２と、信頼度成長曲線補正部５５と、情報記憶部５６と、信頼度成長曲線表示部５８とを含む。信頼度成長曲線補正部５５は、信頼度成長曲線生成部５２が作成した情報に基づいて、矯正関数についての独立変数と従属変数との関係を示す情報を作成する。
【００７２】
本実施の形態の場合、情報記憶部５６は、信頼度関数の数式を示す情報およびその導関数の数式を示す情報を予め記憶している。本実施の形態の場合、信頼度関数の数式およびその導関数の数式は以下の通りである。
ｆ（ｘ）＝Ｃａ×Ｅｘｐ（−Ｃｂ×Ｅｘｐ（−Ｃｃ×ｘ））
ｆ’（ｘ）＝Ｃａ×Ｅｘｐ（−Ｃｂ×Ｅｘｐ（−Ｃｃ×ｘ））×Ｃｂ×Ｃｃ×Ｅｘｐ（−Ｃｃ×ｘ）
ただし、独立変数をｘとし、信頼度関数をｆ（ｘ）とし、信頼度関数の導関数をｆ’（ｘ）とする。Ｃａ、Ｃｂ、Ｃｃはいずれも所定の定数である。
【００７３】
信頼度成長曲線補正部５５は、入力部５４２と、記憶制御部５４４と、特定部５４７と、作成部５４８と、出力制御部５５０とを含む。特定部５４７は、上述した信頼度関数の導関数についての独立変数と従属変数との関係に基づいて、入力部５４２に入力されたバグ発見効率の値を従属変数とした場合の信頼度関数の導関数の独立変数を特定する。本実施の形態に場合、入力部５４２に入力されたバグ発見効率の値を従属変数とした場合におけるこの独立変数を「特定テスト工数」と称する。また、本実施の形態の場合、信頼度関数およびその導関数の独立変数はテスト工数を示す。本実施の形態において、「テスト工数」とは、ソフトウェアのバグを発見するためのテストに費やされた工数を示す。
【００７４】
特定部５４７は、予測値算出部５５３と、比較部５５４とを含む。予測値算出部５５３は、信頼度関数の導関数の数式に従って、独立変数に対応する従属変数を算出する。
【００７５】
なお、本実施の形態に係るソフトウェア信頼度予測装置５１は、図２に示したコンピュータハードウェアとＣＤ−ＲＯＭ８４に記録された、ＣＰＵ７６によって実行されるソフトウェアとによって実現される。
【００７６】
また、その他のハードウェア構成については第１の実施の形態と同じである。それらについての機能も同じである。したがって、それらについての詳細な説明はここでは繰返さない。
【００７７】
図１５を参照して、ソフトウェア信頼度予測装置５１で実行されるプログラムは、信頼度成長曲線の出力に関し、以下のような制御を実行する。なお、図１５に示すフローチャートの中で、前述の図３に示した処理は同じステップ番号を付している。それらの処理も同じである。したがって、それらについての詳細な説明はここでは繰返さない。
【００７８】
ステップＳ１１２にて、特定部５４７は、α＝ｆ’（ｔ）を満たす独立変数ｔの値を特定する。ただし、本実施の形態の場合、αはバグ発見効率の値を示す。ｆ’（ｔ）は信頼度成長曲線の導関数を示す。ｔは、テスト工数を示す。α＝ｆ’（ｔ）を満たすｔの値が上述した特定テスト工数である。この処理のフローチャートを図１６に示す。
【００７９】
図１６を参照して、ソフトウェア信頼度予測装置５０で実行されるプログラムは、特定テスト工数の特定に関し、以下のような制御を実行する。
【００８０】
ステップＳ１４０にて、予測値算出部５５３は、パラメータｎに「１」を代入する。
ステップＳ１４２にて、予測値算出部５５３は、予め定められた値Ｎから「１」を引いた値よりもパラメータｎの値が小さいか否かを判断する。予め定められた値Ｎから「１」を引いた値よりもパラメータｎの値が小さいと判断した場合には（ステップＳ１４２にてＹＥＳ）、処理はステップＳ１４４へと移される。もしそうでないと（ステップＳ１４２にてＮＯ）、処理は終了する。
【００８１】
ステップＳ１４４にて、予測値算出部５５３は、情報記憶部５６が記憶した情報が示す次の式に従って、信頼度関数の導関数についての、パラメータｎに対応する従属変数の値を算出する。
ｆ’（ｎ）＝Ｃａ×Ｅｘｐ（−Ｃｂ×Ｅｘｐ（−Ｃｃ×ｎ））×Ｃｂ×Ｃｃ×Ｅｘｐ（−Ｃｃ×ｎ）
ただし、独立変数をｘ、信頼度成長曲線の導関数をｆ’（ｘ）とする。Ｃａ、Ｃｂ、Ｃｃはいずれも所定の定数である。
【００８２】
従属変数の値が算出されると、予測値算出部５５３は、算出した従属変数の値を比較部５５４に出力する。併せて、予測値算出部５５３は、バグ発見効率αの値を情報記憶部５６から読出す。この値も比較部５５４に出力される。比較部５５４は、ｆ’（ｎ）≦αかつｆ’（ｎ＋１）＞αが成立するか否かを判断する。ｆ’（ｎ）≦αかつｆ’（ｎ＋１）＞αが成立すると判断した場合には（ステップＳ１４４にてＹＥＳ）、処理はステップＳ１４６へと移される。もしそうでないと（ステップＳ１４４にてＮＯ）、処理はステップＳ１５０へと移される。
【００８３】
ステップＳ１４６にて、比較部５５４は、パラメータｎの値を第１の特定テスト工数として作成部５４８に出力する。併せて、比較部５５４は、判断が終了したことを示す信号を予測値算出部５５３に出力する。
【００８４】
ステップＳ１４８にて、予測値算出部５５３は、パラメータｎの値を「１」増加させる。
【００８５】
ステップＳ１５０にて、比較部５５４は、ｆ’（ｎ）≧αかつｆ’（ｎ＋１）＜αが成立するか否かを判断する。ｆ’（ｎ）≧αかつｆ’（ｎ＋１）＜αが成立すると判断した場合には（ステップＳ１５０にてＹＥＳ）、処理はステップＳ１５２へと移される。もしそうでないと（ステップＳ１５０にてＮＯ）、処理はステップＳ１４８へと移される。
【００８６】
ステップＳ１５２にて、比較部５５４は、パラメータｎの値を第２の特定テスト工数として作成部５４８に出力する。併せて、比較部５５４は、判断が終了したことを示す信号を予測値算出部５５３に出力する。
【００８７】
以上のような構造およびフローチャートに基づく、ソフトウェア信頼度予測装置５１の動作について説明する。
【００８８】
ステップＳ１００の処理を経て、予測値算出部５５３は、パラメータｎに「１」を代入する（ステップＳ１４０）。パラメータｎに値が代入されると、予測値算出部５５３は、パラメータｎの値がＮ−１未満か否かを判断する（ステップＳ１４２）。この場合、パラメータｎの値はＮ−１よりも小さいので（ステップＳ１４２にてＹＥＳ）、予測値算出部５５３は、信頼度関数の導関数についての、パラメータｎに対応する従属変数の値を算出する。比較部５５４は、ｆ’（ｎ）≦αかつｆ’（ｎ＋１）＞αか否かを判断する（ステップＳ１４４）。当初、そのような条件は成立しないとすると（ステップＳ１４４にてＮＯ）、比較部５５４は、ｆ’（ｎ）≧αかつｆ’（ｎ＋１）＜αが成立するか否かを判断する（ステップＳ１５０）。この場合、そのような条件も成立しないとすると（ステップＳ１５０にてＮＯ）、予測値算出部５５３は、パラメータｎの値を「１」増加させる（ステップＳ１４８）。
【００８９】
その後、ステップＳ１４２の処理を経て、比較部５５４は、ｆ’（ｎ）≦αかつｆ’（ｎ＋１）＞αが成立するか否かを判断する（ステップＳ１４４）。この場合、前述した条件が成立するとすると（ステップＳ１４４にてＹＥＳ）、比較部５５４は、パラメータｎの値を作成部５４８に出力する（ステップＳ１４６）。
【００９０】
パラメータｎの値が出力されると、予測値算出部５５３は、パラメータｎの値を「１」増加させる（ステップＳ１４８）。
【００９１】
その後、ステップＳ１４２，ステップＳ１４４，ステップＳ１５０，ステップＳ１４８の処理が繰返される。途中で、パラメータｎの値がｔｂの場合、ｆ’（ｎ）≧αかつｆ’（ｎ＋１）＜αという条件が満たされ（ステップＳ１５０にてＹＥＳ）、比較部５５４は、パラメータｎの値すなわちｔｂを作成部５４８に出力する（ステップＳ１５２）。
【００９２】
その後、ｎ＝Ｎ−１となると（ステップＳ１４２にてＮＯ）、作成部５４８は、特定テスト工数の数が２個以上あるか否かを判断する（ステップＳ１０４）。
【００９３】
以上のようにして、本実施の形態に係るソフトウェア信頼度予測装置５１は、信頼度予測曲線から導き出されるバグの発見効率が入力部５４２に入力された値を上回る場合、信頼度予測曲線から導き出されるバグの発見効率が入力部５４２に入力された値を上回らないよう信頼度予測曲線を矯正した図を出力する。そのような矯正が加えられているので、出力された信頼度予測曲線は、現実にバグが発見される確率をよく示すと考えられる。その結果、高い予測精度でバグの発見効率を予測できるソフトウェア信頼度予測装置、ソフトウェア信頼度予測プログラム、およびソフトウェア信頼度予測プログラムを記録したコンピュータ読取り可能な記録媒体を提供することができる。
【００９４】
また、本実施の形態に係るソフトウェア信頼度予測装置５１は、信頼度成長曲線の導関数の式を用いて特定テスト工数を特定する。これにより、特定テスト工数の値の誤差を少なくすることが容易になる。その誤差を少なくすることが容易になるので、出力される信頼度予測曲線も誤差が小さいものになる。
【００９５】
なお、第１の変形例にかかる発明においては、矯正関数についての独立変数と従属変数との関係を示す情報をステップＳ１０６にて作成部５４８が作成するための具体的な方法は、上述した方法以外の方法であってもよい。たとえば、情報記憶部５６が記憶した信頼度予測曲線を示す関数についての従属変数の値に、それらの従属変数の最大値に対するバグ発見効率αの比を乗算し、その結果得られた値に従属変数の値を書き換えてもよい。その他、作成部５４８は、信頼度関数および信頼度関数の導関数についての独立変数の区間において、信頼度関数の導関数についての従属変数が入力部５４２に入力された値以下となる変更を加えてもよい。この場合、その区間には、信頼度関数の導関数についての従属変数が入力部５４２に入力された値を超える区間が含まれる。
【００９６】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００９７】
【図１】本発明の第１の実施の形態に係るソフトウェア信頼度予測装置の構成を示す図である。
【図２】本発明の第１の実施の形態に係るソフトウェア信頼度予測装置を実現するコンピュータハードウェアの構成を示す図である。
【図３】本発明の第１の実施の形態に係る信頼度成長曲線の出力処理の制御の手順を示すフローチャートである。
【図４】本発明の第１の実施の形態に係る特定テスト工数の特定処理の制御の手順を示すフローチャートである。
【図５】本発明の第１の実施の形態に係る従属変数の算出処理の制御の手順を示すフローチャートである。
【図６】本発明の第１の実施の形態に係る信頼度成長曲線生成部に入力されたテスト工数の実績の一例を示す図である。
【図７】本発明の第１の実施の形態に係る信頼度成長曲線生成部に入力されたバグ発見数の実績の一例を示す図である。
【図８】本発明の第１の実施の形態に係る信頼度関数についての独立変数と従属変数との関係を示す図である。
【図９】本発明の第１の実施の形態に係る信頼度成長曲線を示す図である。
【図１０】本発明の第１の実施の形態に係る情報記憶部に記憶された独立変数と従属変数とを示す図である。
【図１１】本発明の第１の実施の形態に係る導関数についての情報記憶部に記憶された独立変数と従属変数との関係を示す図である。
【図１２】本発明の第１の実施の形態に係る情報記憶部に記憶されたバグ発見効率の値を示す図である。
【図１３】本発明の第１の実施の形態に係る信頼度関数と矯正関数との関係を示す図である。
【図１４】本発明の第２の実施の形態に係るソフトウェア信頼度予測装置の構成を示す図である。
【図１５】本発明の第２の実施の形態に係る信頼度成長曲線の出力処理の制御の手順を示すフローチャートである。
【図１６】本発明の第２の実施の形態に係る特定テスト工数の特定処理の制御の手順を示すフローチャートである。
【図１７】一般的な信頼度成長曲線を示すグラフである。
【図１８】単位テスト工数当たりのバグ発見効率を示す図である。
【図１９】従来のソフトウェア信頼度予測装置の問題点を示す概念図である。
【符号の説明】
【００９８】
５０，５１  ソフトウェア信頼度予測装置、５２  信頼度成長曲線生成部、５４  信頼度成長曲線補正部、５６  情報記憶部、５８  信頼度成長曲線表示部、６２  キーボード、６４  メモリ、６６  固定ディスク、６８  ディスプレイ、７０  通信インターフェイス、７２  メモリカード駆動装置、７４  ＣＤ−ＲＯＭ駆動装置、７６  ＣＰＵ、８０  メモリカード、８４  ＣＤ−ＲＡＭ、５４２  入力部、５４４  記憶制御部、５４６，５４７  特定部、５４８  作成部、５５０  出力制御部、５５２  読出部、５５３  予測値算出部、５５４  比較部。
【図１】
2008171307.tif 000003
【図２】
2008171307.tif 000004
【図３】
2008171307.tif 000005
【図４】
2008171307.tif 000006
【図５】
2008171307.tif 000007
【図６】
2008171307.tif 000008
【図７】
2008171307.tif 000009
【図８】
2008171307.tif 000010
【図９】
2008171307.tif 000011
【図１０】
2008171307.tif 000012
【図１１】
2008171307.tif 000013
【図１２】
2008171307.tif 000014
【図１３】
2008171307.tif 000015
【図１４】
2008171307.tif 000016
【図１５】
2008171307.tif 000017
【図１６】
2008171307.tif 000018
【図１７】
2008171307.tif 000019
【図１８】
2008171307.tif 000020
【図１９】
2008171307.tif 000021