JPH0619699A - Software release time estimating device and method - Google Patents

Software release time estimating device and method

Info

Publication number
JPH0619699A
JPH0619699A JP4175522A JP17552292A JPH0619699A JP H0619699 A JPH0619699 A JP H0619699A JP 4175522 A JP4175522 A JP 4175522A JP 17552292 A JP17552292 A JP 17552292A JP H0619699 A JPH0619699 A JP H0619699A
Authority
JP
Japan
Prior art keywords
software
time
test
release
release time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP4175522A
Other languages
Japanese (ja)
Inventor
Jiyakobi Reimondo
レイモンド・ジャコビ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP4175522A priority Critical patent/JPH0619699A/en
Publication of JPH0619699A publication Critical patent/JPH0619699A/en
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

PURPOSE:To attain a release time estimation with a constant reliability. CONSTITUTION:This device is equipped with an executing means 3 which executes a software to be tested according to a test case, collecting means 4-9, 11, 12a, 12b, and 12c which data-collect test time information being the cumulative time of the execution, number of bug detected at that time, number of bug correction, and time number required for the bug correction, estimating means 13A-1 to 13A-n,-13C-1 to 13C-n which estimate the release time of the software from each kind of statistical model from a relation between the test time and the transition of time correcting time based on the test time information, based on the information of the number of the bug non-correction obtained from the relation between the number of the bug detection and the number of the bug correction, and means 14, 15, and 16 which correct the estimates according to a prescribed rule based on an experience, integrately operate an estimation processing, and obtain the estimated result of the release time.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は開発中のソフトウェアの
状況からそのソフトウェアのリリース可能な時期を推定
するためのソフトウェア製品リリース時点推定装置およ
び推定方法に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a software product release time estimating device and an estimating method for estimating the releaseable time of software under development.

【0002】[0002]

【従来の技術】開発中のソフトウェアはテストをすると
故障(フェイリア)や欠陥(フォルト)が発見され、従
って、その後にその故障や欠陥(以下、これらをバグと
称する)について修正を行う。そして、再びテストと修
正を繰り返し、その結果、バグが全て解消された時点が
そのソフトウェアの完成時点となる。
2. Description of the Related Art When software under development is tested, a failure (feria) or a defect (fault) is found. Therefore, after that, the failure or defect (hereinafter referred to as a bug) is corrected. Then, testing and correction are repeated again, and as a result, the time when all the bugs are resolved is the time when the software is completed.

【0003】ところで、開発中のソフトウェアがいつ頃
リリース可能になるかを判断することは非常に難しい。
しかしながら、リリース可能時期を見極めることは、開
発スケジュールの見直しや、開発費用の算定、ユーザに
対するサービス向上や信用獲得等の点で重要である。
By the way, it is very difficult to determine when the software under development can be released.
However, it is important to determine the releaseable time from the viewpoint of reviewing the development schedule, calculating the development cost, improving the service to users, and gaining credit.

【0004】一般に、バグ修正は、開発したデバッグ済
みソフトウェア(被テストプログラム)に対して、実際
に様々な場面を想定しての種々のテストケース(テスト
用の模擬情報)を用意してこれに従い、実行させてみる
ことにより、故障(フェイリア)や欠陥(フォルト)な
どのバグの存在を調べ、そのバグの一つ々々を修正し、
再びテストケースに従い、実行させてバグの存在を調
べ、それを修正するといった作業を繰り返す。
In general, bug correction is performed by preparing various test cases (simulated information for testing) that actually assume various situations for developed debugged software (program under test). By checking the existence of bugs such as failures (feria) and defects (faults) by trying to execute them, and fixing each of the bugs,
Follow the test case again, run it to check for the existence of a bug, and then repeat the process of fixing it.

【0005】そして、これまでの技術では発見したバグ
数とそのテスト時間数を見て、ソフトウェア信頼性モデ
ルにより残りのバグ数を推定し、この残りのバグの発見
に要する時間を推定することにより、リリース時点を推
定する。このように発見したバグ数の累積曲線だけに基
づいて、ソフトウェアリリース時点の判断を行ってい
た。
In the conventional technology, the number of found bugs and the number of test times are found, the remaining number of bugs is estimated by the software reliability model, and the time required for finding the remaining bugs is estimated. Estimate the release time. Judgment at the time of software release was made based only on the cumulative curve of the number of bugs found in this way.

【0006】[0006]

【発明が解決しようとする課題】上述の如く、従来の方
式では、開発中のソフトウェアを、用意したテストケー
スに従って実行させて見ることにより発見した故障や欠
陥等のバグの累積数を用い、信頼性推定モデルにより潜
在バグ総数を推定してその差から、残存バグ総数を知
り、それを発見するに要する時間を、既に発見したバグ
に対して要した修正時間を参考に推定して、その開発中
のソフトウェアのリリース時点を推定すると云った手法
が用いられている。
As described above, according to the conventional method, the cumulative number of bugs such as failures and defects found by executing the software under development according to the prepared test case and viewing the software is used, and the reliability is improved. The total number of latent bugs is estimated by the sex estimation model, the total number of remaining bugs is known from the difference, and the time required to find it is estimated with reference to the correction time required for the already found bug, and its development The method of estimating the release time of the software is used.

【0007】この場合、潜在バグ総数の推定値は使用す
る信頼性推定モデルにより種々異なり、従って、リリー
ス時点の推定値が我々の感覚や経験と大きく食い違って
いたりして推定したリリース時点が全く信じることがで
きない等の問題があり、信頼性のあるリリース時点推定
を行うことが困難であった。
In this case, the estimated value of the total number of latent bugs varies depending on the reliability estimation model to be used, and therefore the estimated release point differs greatly from our sense and experience. However, it was difficult to make a reliable estimation of the release time.

【0008】これは数ある信頼性推定モデルのうち、信
頼性推定する対象のソフトウェアの特質上、どのモデル
を使用するのが最適であるかが分からないこと、そし
て、バグが発見されても、修正作業は発見された全てを
発見の都度、修正してゆくとは限らず、状況次第で後回
しにしたりすることがしばしばあると云った現状を無視
していること等にも起因する。
This is because, out of the numerous reliability estimation models, it is not known which one is the best to use due to the characteristics of the software whose reliability is to be estimated, and even if a bug is found, The correction work does not always correct all the discoveries each time it is discovered, and it is also due to neglecting the current situation that it is often postponed depending on the situation.

【0009】このように、故障が出た時点と修正時点が
分かっているにもかかわらず、故障数−修正数=遅延修
正数(未修正数)に余り気を止めておらず、また、未修
正のための遅延時間の監視をしなかったので、ソフトウ
ェア開発のプロジェクト進行の遅れの原因等も掴めず、
ましてや、これらの要因を無視したリリース時点推定は
もともと信頼性そのものを論じること自体が無駄であっ
たと言える。
As described above, despite knowing the time at which a failure has occurred and the time at which correction has been made, the number of failures minus the number of modifications = the number of delayed modifications (the number of uncorrected) is not so much underestimated, and is still unresolved. Since I did not monitor the delay time for correction, I could not grasp the cause of the delay in the progress of the software development project,
Furthermore, it can be said that it was useless to discuss the reliability itself in the estimation of the release time point that ignored these factors.

【0010】そこで、この発明の目的とするところは、
一定の信頼性を以てリリース時点推定を行うことができ
るようにしたソフトウェアリリース時点推定装置および
方法を提供することにある。
Therefore, the object of the present invention is to
It is an object of the present invention to provide an apparatus and method for estimating a software release time point, which makes it possible to estimate a release time point with a certain reliability.

【0011】[0011]

【課題を解決するための手段】前記目的を達成するた
め、本発明は次のように構成する。すなわち、第1に
は、テストのために用意した各種の条件群であるテスト
ケースに従って評価対象のソフトウェアを実行させる実
行手段と、この実行手段による実行の累積時間である累
積テスト時間情報と前記評価対象のソフトウェアを実行
させた際における検出された故障・欠陥の数と故障・欠
陥の修正数と故障・欠陥の修正に要した時間数とをデー
タ収集するテストデータ収集手段と、この収集したデー
タのうち、前記検出した故障・欠陥の数に対する修正数
の関係から得られた未修正数の情報をもとに、累積テス
ト時間情報に基づくテスト時間および修正時間の推移と
の関係から、各種統計的モデルにより前記評価対象のソ
フトウェアのリリース時点をモデル別に推定する推定手
段と、これら各推定された推定値に対して、蓄積された
経験に基づく所定の規則(条件と重みから構成されるル
ール)に従って補正した後、総合して評価処理すること
により、リリース時点の推定結果を得る判断手段とを設
ける。
In order to achieve the above object, the present invention is constructed as follows. That is, first, execution means for executing software to be evaluated according to a test case, which is a group of various conditions prepared for testing, cumulative test time information as cumulative time of execution by this execution means, and the evaluation. Test data collection means for collecting data on the number of detected failures / defects when the target software is executed, the number of failures / fixed defects, and the number of hours required to correct the failures / defects, and the collected data. Of the above, based on the information of the uncorrected number obtained from the relationship of the number of corrections to the number of detected failures / defects, based on the relationship between the test time based on the accumulated test time information and the change in the correction time, various statistics Means for estimating the release time of the software to be evaluated for each model by a statistical model, and accumulated for each of these estimated values After correcting in accordance with a predetermined rule based on experience (the rule consists of conditions and weights), by evaluating process comprehensively, provided a determining means for obtaining an estimation result of the time of release.

【0012】さらにまた、第2には、テストのために用
意した各種の条件群であるテストケースに従って評価対
象のソフトウェアを実行させる実行手段と、この実行手
段による実行の累積テスト時間情報とテスト回数の情報
と前記評価対象のソフトウェアを実行させた際における
検出された故障・欠陥の数と故障・欠陥の修正数と故障
・欠陥の修正に要した時間数とをデータ収集するテスト
データ収集手段と、この収集したデータのうち、累積テ
スト時間と故障・欠陥の数とをもとに、各種ソフトウェ
ア信頼度成長モデルにより前記評価対象のソフトウェア
のリリース時点をそれぞれのモデル別に推定してこれら
を推定値群として得る第1の推定手段と、前記収集した
データのうち、修正時間と修正数とをもとに、ソフトウ
ェア信各種頼度成長モデルにより前記評価対象のソフト
ウェアのリリース時点をそれぞれのモデル別に推定して
これらを推定値群として得る第2の推定手段と、前記収
集したデータのうち、テスト時間数と修正時間数と未修
正数とをもとに、各種統計的モデルにより前記評価対象
のソフトウェアのリリース時点をそれぞれのモデル別に
推定してこれらを推定値群として得る第3の推定手段
と、これらの各推定手段によりそれぞれ推定された前記
各推定値群別のリリース時点推定値に対して、蓄積され
た経験に基づく所定の規則(条件と重みから構成される
ルール)に従って処理することにより、リリース時点の
最終推定結果を得る判断手段とより構成する。
Further, secondly, execution means for executing the software to be evaluated according to a test case, which is a group of various conditions prepared for the test, cumulative test time information of the execution by this execution means, and the number of tests. And a test data collecting means for collecting data of the number of failures / defects detected when the software to be evaluated is executed, the number of failures / defects fixed, and the number of hours required to correct the failures / defects. Of these collected data, based on the cumulative test time and the number of failures / defects, various software reliability growth models are used to estimate the release time of the software to be evaluated for each model, and these are estimated values. First estimation means obtained as a group, and based on the correction time and the number of corrections among the collected data, various software reliability Second estimating means for estimating the release time of the software to be evaluated for each model by the model and obtaining these as an estimated value group; and the number of test hours, the number of modified hours, and the number of unmodified among the collected data. On the basis of the above, a third estimating means for estimating the release time of the software to be evaluated for each model by various statistical models and obtaining them as an estimated value group, and each of these estimating means are used for estimation. Judgment for obtaining the final estimation result at the release point by processing the release point estimated value for each of the estimated value groups according to a predetermined rule (a rule composed of conditions and weights) based on accumulated experience And means.

【0013】第3には、テストのために用意した各種の
条件群であるテストケースに従って評価対象のソフトウ
ェアを実行させる実行手段と、この実行手段による実行
の累積テスト時間情報とテスト回数の情報と前記評価対
象のソフトウェアを実行させた際における検出された故
障・欠陥の数と故障・欠陥の修正数と故障・欠陥の修正
に要した時間数とをデータ収集するテストデータ収集手
段と、この収集したデータのうち、累積テスト時間と故
障・欠陥の数とをもとに、各種ソフトウェア信頼度成長
モデルにより前記評価対象のソフトウェアのリリース時
点をそれぞれのモデル別に推定してこれらを推定値群と
して得る第1の推定手段と、前記収集したデータのう
ち、修正時間と修正数とをもとに、各種ソフトウェア信
頼度成長モデルにより前記評価対象のソフトウェアのリ
リース時点をそれぞれのモデル別に推定してこれらを推
定値群として得る第2の推定手段と、前記データ収集手
段の収集したデータのうち、前記検出した故障・欠陥の
数に対する修正数の関係から得られた未修正数の情報を
もとに、累積テスト時間情報に基づくテスト時間および
修正時間の推移との関係から、各種統計的モデルにより
前記評価対象のソフトウェアのリリース時点をモデル別
に推定してこれらを推定値群として得る第3の推定手段
と、第1の推定手段ないし第3の推定手段毎の各推定値
群に対して、蓄積された経験に基づく所定の規則に従っ
て補正した後、各推定値群毎に総合して評価処理するこ
とにより、各推定値群別リリース時点の推定結果を得る
第1の判断手段と、これらの各推定値群別リリース時点
の推定結果を、蓄積された経験に基づく所定の規則(条
件と重みから構成されるルール)に従って処理すること
により、リリース時点の最終推定結果を得る第2の判断
手段とより構成する。
Thirdly, execution means for executing the software to be evaluated according to a test case, which is a group of various conditions prepared for the test, and cumulative test time information of execution by this execution means and information on the number of tests. Test data collecting means for collecting data on the number of detected faults / defects, the number of faults / defects fixed, and the number of hours required for faults / fixed defects when the software to be evaluated is executed, and the collection. Based on the accumulated test time and the number of failures / defects among the data collected, various software reliability growth models are used to estimate the release time of the software to be evaluated for each model, and these are obtained as an estimated value group. Based on the first estimating means and various modification times and the number of modifications of the collected data, various software reliability growth models are used. The second estimating means for estimating the release time of the software to be evaluated for each model as an estimated value group and the number of the detected failures / defects in the data collected by the data collecting means Based on the information of the uncorrected number obtained from the relationship of the number of modifications, from the relationship with the transition of the test time and the modification time based on the cumulative test time information, various statistical models are used to determine the release time of the software to be evaluated. According to a predetermined rule based on accumulated experience, a third estimating means for estimating each model and obtaining them as an estimated value group and each estimated value group for each of the first estimating means to the third estimating means After the correction, the first judgment means for obtaining the estimation result at the time of release for each estimated value group by performing the comprehensive evaluation processing for each estimated value group, and each of these estimated values The second judgment means obtains the final estimation result at the release point by processing the estimation result at another release point according to a predetermined rule (a rule composed of a condition and weight) based on accumulated experience. .

【0014】また、第4には、テストのために用意した
各種の条件群であるテストケースに従って評価対象のソ
フトウェアを実行させる実行ステップと、この実行ステ
ップによる実行の累積テスト時間情報とテスト回数の情
報と前記評価対象のソフトウェアを実行させた際におけ
る検出された故障・欠陥の数と故障・欠陥の修正数と故
障・欠陥の修正に要した時間数とをデータ収集するテス
トデータ収集ステップと、このテストデータ収集ステッ
プにおいて収集したデータのうち、累積テスト時間と故
障・欠陥の数とをもとに、各種ソフトウェア信頼度成長
モデルにより前記評価対象のソフトウェアのリリース時
点をそれぞれのモデル別に推定してこれらを推定値群と
して得る第1の推定ステップと、前記収集したデータの
うち、修正時間と修正数とをもとに、各種ソフトウェア
信頼度成長モデルにより前記評価対象のソフトウェアの
リリース時点をそれぞれのモデル別に推定してこれらを
推定値群として得る第2の推定ステップと、前記データ
収集ステップにおいて収集したデータのうち、前記検出
した故障・欠陥の数に対する修正数の関係から得られた
未修正数の情報をもとに、累積テスト時間情報に基づく
テスト時間および修正時間の推移との関係から、各種統
計的モデルにより前記評価対象のソフトウェアのリリー
ス時点をモデル別に推定してこれらを推定値群として得
る第3の推定ステップと、第1の推定ステップないし第
3の推定ステップそれぞれでの各推定値群に対して、蓄
積された経験に基づく所定の規則に従って補正した後、
各推定値群毎に総合して評価処理することにより、各推
定値群別リリース時点の推定結果を得る第1の判断ステ
ップと、これらの各推定値群別リリース時点の推定結果
を、蓄積された経験に基づく所定の規則に従って処理す
ることにより、リリース時点の最終推定結果を得る第2
の判断ステップを設ける。
Fourth, an execution step for executing the software to be evaluated according to a test case which is a group of various conditions prepared for the test, cumulative test time information of the execution by this execution step, and the number of tests A test data collecting step of collecting information and the number of faults / defects detected when the software to be evaluated is executed, the number of faults / defects fixed, and the number of hours required for faults / defects fixed, Of the data collected in this test data collection step, based on the cumulative test time and the number of failures / defects, various software reliability growth models are used to estimate the release time of the software to be evaluated for each model. A first estimation step of obtaining these as an estimated value group, and a correction time of the collected data A second estimating step of estimating the release time of the software to be evaluated for each model by various software reliability growth models based on a positive number to obtain these as an estimated value group; and the data collecting step. Of the collected data, based on the information of the uncorrected number obtained from the relationship of the number of corrections to the number of detected failures / defects, from the relationship with the transition of the test time and the correction time based on the cumulative test time information A third estimation step of estimating the release time of the software to be evaluated for each model by various statistical models to obtain these as an estimated value group, and each estimation in each of the first estimation step to the third estimation step After correcting the value group according to a predetermined rule based on accumulated experience,
The first judgment step for obtaining the estimation result at the release time point for each estimated value group by performing the comprehensive evaluation process for each estimated value group, and the estimation result at the release time point for each estimated value group are accumulated. The final estimation result at the time of release is obtained by processing according to a predetermined rule based on the experience.
The decision step of.

【0015】[0015]

【作用】前記において、第1の構成の場合、テストのた
めに用意した各種の条件群であるテストケースに従って
実行手段が評価対象のソフトウェアを実行することによ
り、テストデータ収集手段はこの実行手段による実行の
累積時間である累積テスト時間情報と前記評価対象のソ
フトウェアを実行させた際における検出された故障・欠
陥の数と故障・欠陥の修正数と故障・欠陥の修正に要し
た時間数とをデータ収集する。そして、推定手段はこの
テストデータ収集手段が収集したデータのうち、前記検
出した故障・欠陥の数に対する修正数の関係から得られ
た未修正数の情報をもとに、累積テスト時間情報に基づ
くテスト時間および修正時間の推移との関係から、各種
統計的モデルにより前記評価対象のソフトウェアのリリ
ース時点をモデル別に推定する。そして、総合判断手段
は推定手段によるこれら各推定された推定値に対して、
蓄積された経験に基づく所定の規則(条件と重みから構
成されるルール)に従って補正した後、総合して評価処
理することにより、リリース時点の推定結果を得る。
In the above, in the case of the first configuration, the execution means executes the software to be evaluated according to the test cases which are various condition groups prepared for the test, and the test data collection means is executed by this execution means. Cumulative test time information, which is the cumulative time of execution, and the number of faults / defects detected when the software to be evaluated was executed, the number of faults / defects fixed, and the number of hours required to correct the faults / defects. Collect data. Then, the estimating means is based on the cumulative test time information based on the information of the uncorrected number obtained from the relationship of the corrected number to the detected number of failures / defects in the data collected by the test data collecting means. From the relationship between the transition of the test time and the modification time, the release time of the software to be evaluated is estimated for each model by various statistical models. Then, the comprehensive judgment means, for each of these estimated values estimated by the estimation means,
After the correction is performed according to a predetermined rule (a rule composed of conditions and weights) based on the accumulated experience, an overall evaluation process is performed to obtain an estimated result at the time of release.

【0016】ここでは、テストケースを用いての被テス
トプログラムの実行の結果、見付けられた故障,欠陥数
を用い、その推移である故障,欠陥数の時系列データを
用いて、各種統計的モデルによりソフトウェアリリース
時点を推定するが、これはテストが進むと発見される故
障,欠陥数も被テストプログラムにもともと潜在する総
故障,欠陥数に近付き、発見される故障,欠陥数に対し
て全て修正されれば被テストプログラムにもともと潜在
する総故障,欠陥が全て修正されたと看做すことがで
き、この時点がリリース可能な時点であると云えるの
で、テスト時間数の推移により発見される故障,欠陥が
出尽くしたと見做される時点に対して、この発見故障,
欠陥全てが修正されるに要する時点を修正時間の推移を
統計的に判断してリリース時点を推定しようというもの
であり、時系列データによる推移をもとに極限を見極め
る手法でリリース時点を推定し、さらに経験者の知識を
加味したかたちで最終的なリリース時点を推定しようと
云うものであるから、より現実的な値を提供できる。
Here, the number of failures and defects found as a result of the execution of the program under test using the test case is used, and various statistical models are obtained by using the time series data of the failures and the number of defects which are transitions thereof. The software release point is estimated by the method. This is because the number of failures and defects found as the test progresses approaches the total number of failures and defects inherent in the program under test. If this is done, it can be considered that all latent faults and defects originally due to the program under test have been fixed, and it can be said that this time point is a time point at which release is possible. , This discovery failure against the time when the defect is considered exhausted ,
It is to estimate the release time by statistically judging the transition of the correction time to estimate the release time, which is the time required to correct all the defects, and to estimate the release time by a method that determines the limit based on the transition of time series data. Moreover, since the final release time is estimated in consideration of the knowledge of the experienced person, a more realistic value can be provided.

【0017】また、第2の構成においては、テストのた
めに用意した各種の条件群であるテストケースに従って
評価対象のソフトウェアを実行させる実行手段にて、テ
スト・ランを行い、テストデータ収集手段はそれによっ
て累積テスト時間情報とテスト回数の情報と前記評価対
象のソフトウェアを実行させた際における検出された故
障・欠陥の数と故障・欠陥の修正数と故障・欠陥の修正
に要した時間数とをデータ収集する。そして、テストデ
ータ収集手段により収集されたデータのうち、累積テス
ト時間と故障・欠陥の数とをもとに、第1の推定手段は
各種ソフトウェア信頼度成長モデルにより前記評価対象
のソフトウェアのリリース時点をそれぞれのモデル別に
推定してこれらを推定値群として得る。また、第2の推
定手段は前記収集したデータのうち、修正時間と修正数
とをもとに、各種ソフトウェア信頼度成長モデルにより
前記評価対象のソフトウェアのリリース時点をそれぞれ
のモデル別に推定してこれらを推定値群として得、ま
た、第3の推定手段は前記収集したデータのうち、テス
ト時間数と修正時間数と未修正数とをもとに、各種統計
的モデルにより前記評価対象のソフトウェアのリリース
時点をそれぞれのモデル別に推定してこれらを推定値群
として得る。そして、判断手段はこれらの各推定手段に
よりそれぞれ推定された前記各推定値群別のリリース時
点推定値に対して、蓄積された経験に基づく所定の規則
(条件と重みから構成されるルール)に従って処理する
ことにより、リリース時点の最終推定結果を得る。
In the second configuration, the execution means for executing the software to be evaluated according to the test case, which is a group of various conditions prepared for the test, performs the test run and the test data collection means As a result, cumulative test time information, information on the number of tests, the number of failures / defects detected when the software to be evaluated is executed, the number of failures / defects fixed, and the number of hours required to correct the failures / defects. To collect data. Then, based on the cumulative test time and the number of failures / defects among the data collected by the test data collecting means, the first estimating means uses the various software reliability growth models to release the software to be evaluated. Is estimated for each model to obtain these as an estimated value group. The second estimating means estimates the release time of the software to be evaluated for each model by various software reliability growth models based on the modification time and the number of modifications of the collected data. As an estimated value group, and the third estimating means uses various statistical models of the software to be evaluated by various statistical models based on the number of test hours, the number of modified hours, and the number of unmodified among the collected data. The release time points are estimated for each model to obtain these as an estimated value group. Then, the judging means follows a predetermined rule (a rule composed of conditions and weights) based on accumulated experience with respect to the release time point estimated value for each estimated value group estimated by each of these estimating means. By processing, the final estimation result at the time of release is obtained.

【0018】第3の構成においては、テストのために用
意した各種の条件群であるテストケースに従って実行手
段が評価対象のソフトウェアを実行し、テストデータ収
集手段はこの実行手段による実行の累積テスト時間情報
とテスト回数の情報と前記評価対象のソフトウェアを実
行させた際における検出された故障・欠陥の数と故障・
欠陥の修正数と故障・欠陥の修正に要した時間数とをデ
ータ収集する。そして、第1の推定手段はテストデータ
収集手段が収集したデータのうち、累積テスト時間と故
障・欠陥の数とをもとに、各種ソフトウェア信頼度成長
モデルにより前記評価対象のソフトウェアのリリース時
点をそれぞれのモデル別に推定してこれらを推定値群と
して得、第2の推定手段は、前記収集したデータのう
ち、修正時間と修正数とをもとに、各種ソフトウェア信
頼度成長モデルにより前記評価対象のソフトウェアのリ
リース時点をそれぞれのモデル別に推定してこれらを推
定値群として得、第3の推定手段は、前記データ収集手
段の収集したデータのうち、前記検出した故障・欠陥の
数に対する修正数の関係から得られた未修正数の情報を
もとに、累積テスト時間情報に基づくテスト時間および
修正時間の推移との関係から、各種統計的モデルにより
前記評価対象のソフトウェアのリリース時点をモデル別
に推定してこれらを推定値群として得る。
In the third configuration, the executing means executes the software to be evaluated according to the test cases which are various condition groups prepared for the test, and the test data collecting means executes the accumulated test time of the execution by the executing means. Information and information on the number of tests and the number of detected failures / defects and failures when the software to be evaluated is executed.
Data is collected on the number of defect corrections and the number of hours required for failure / defect correction. Then, the first estimating means determines the release time of the software to be evaluated by various software reliability growth models based on the cumulative test time and the number of failures / defects in the data collected by the test data collecting means. Each model is estimated and obtained as an estimated value group, and the second estimating means uses the various software reliability growth models to evaluate the evaluation target based on the modification time and the modification number in the collected data. The software release time is estimated for each model to obtain these as an estimated value group, and the third estimating means is a correction number for the number of the detected failures / defects in the data collected by the data collecting means. Based on the information on the number of uncorrected data obtained from the relationship between The total model to estimate the time of release of the evaluation target software by the model obtaining them as estimate value group.

【0019】そして、第1の判断手段は、第1の推定手
段ないし第3の推定手段毎の各推定値群に対して、蓄積
された経験に基づく所定の規則に従って補正した後、各
推定値群毎に総合して評価処理することにより、各推定
値群別リリース時点の推定結果を得、さらにこの第1の
判断手段による各推定値群別リリース時点の推定結果に
対して、蓄積された経験に基づく所定の規則(条件と重
みから構成されるルール)に従って処理することによ
り、リリース時点の最終推定結果を得る。
Then, the first judging means corrects each estimated value group for each of the first estimating means to the third estimating means in accordance with a predetermined rule based on accumulated experience, and then, each estimated value is corrected. An estimation result at each release time point for each estimated value group was obtained by comprehensively performing evaluation processing for each group, and the estimated result at the release time point for each estimated value group by the first determination means was accumulated. The final estimation result at the time of release is obtained by processing according to a predetermined rule (a rule composed of conditions and weights) based on experience.

【0020】本発明ではソフトウェアのリリース時点を
推定するために、テストケースを用いて被テストプログ
ラムを実行し、この結果、見付けられたバグ数を用い、
その推移であるバグ数の時系列データを用いて、各種ソ
フトウェア信頼性成長モデルによりソフトウェアリリー
ス時点を推定すると共にまた、バグ発見により修正の要
が発生したことでバグに対する修正を施すがその修正に
要した時間を修正時間として登録して、この修正時間の
推移を示す時系列データでソフトウェアリリース時点を
推定し、また、テスト時に見付けられたバグ数、そのバ
グに対する修正数の時系列デ−タに基づいて、未修正件
数は計算することができるから、この未修正件数の推移
を示す時系列データでソフトウェアリリース時点を推定
する。
In the present invention, in order to estimate the release time of the software, the program under test is executed using the test case, and as a result, the number of bugs found is used,
Using the time-series data of the number of bugs, which is the transition, the software release time is estimated by various software reliability growth models, and the need for correction due to the discovery of a bug causes the bug to be fixed. The required time is registered as a modification time, the software release time is estimated from the time series data showing the transition of the modification time, and the number of bugs found at the time of testing and the time series data of the number of modifications to that bug are also recorded. Since the number of uncorrected cases can be calculated based on, the time of software release is estimated by the time series data showing the transition of the number of uncorrected cases.

【0021】そして、このような各種着目点を変えた、
すなわち、異なる推定方法によるそれぞれのリリース時
点推定結果に対して、過去の経験に基づくルールを適用
することにより、最終的なリリース時点推定結果を得る
ものであり、実際の開発現場にいる人間の感覚や経験を
取り入れた形で、ソフトウェアのリリース時点が推定さ
れるため、より現実的な値を提供することができるよう
になるなど、一定の信頼性を以てリリース時点推定を行
うことができるようになるソフトウェアリリース時点推
定装置および方法を提供できる。
Then, changing various points of interest,
That is, by applying rules based on past experience to each release time estimation result by different estimation methods, the final release time estimation result is obtained. Since the release time of the software is estimated in a form that incorporates information and experience, it becomes possible to provide a more realistic value and to estimate the release time with a certain degree of reliability. A software release time point estimation device and method can be provided.

【0022】[0022]

【実施例】以下、本発明の一実施例について、図面を参
照して説明する。本発明は開発中のソフトウェアのリリ
ース時点を信頼性をもって推定できるようにするもので
あり、ソフトウェアのテスト情報(テスト時間、バグ
数、累積のバグ修正時間、修正数)の時系列データをも
とに、テスト時間とバグ数の関係、累積のバグ修正時間
と修正数の関係、テスト時間と累積のバグ修正時間並び
に未修正バグ数の関係からそれぞれ複数の信頼性推定モ
デルや複数の統計的モデルそれぞれによるリリース時点
推定値を求め、これらの算出結果に対し、経験あるソフ
トウェア開発技術者の蓄積された経験と勘に基づくルー
ルに従って重み付け補正を施して後、加算して種々のモ
デルおよびパラメータを利用した総合的な観点から見て
の客観的な推定値としてのリリース時点を得るものであ
る。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be described below with reference to the drawings. The present invention makes it possible to reliably estimate the release time of software under development, and based on time-series data of software test information (test time, number of bugs, cumulative bug fix time, number of fixes). Based on the relationship between the test time and the number of bugs, the relationship between the cumulative bug fix time and the number of fixes, and the relationship between the test time and the cumulative bug fix time and the number of unfixed bugs, there are multiple reliability estimation models and multiple statistical models. Estimated release time points by each are calculated, weighted correction is applied to these calculation results according to rules based on accumulated experience and intuition of experienced software development engineers, and then added to use various models and parameters. The objective is to obtain the release point as an objective estimate from a comprehensive viewpoint.

【0023】被テストプログラムに潜む総バグ数に関し
て、テストによる発見バグ数とその修正数および未修正
数の関係は図4に示す如き関係にある。すなわち、図4
において、縦軸は個数で、E(m)は潜在していた総バ
グ数を示しており、横軸は時間軸tである。テストが進
むと発見されるバグ数の累積値は被テストプログラムに
潜在していた総バグ数に次第に近付き、やがて一致する
はずである。
Regarding the total number of bugs hidden in the program under test, the relationship between the number of bugs found by the test and the number of fixed and uncorrected numbers is as shown in FIG. That is, FIG.
In, the vertical axis represents the number, E (m) represents the total number of latent bugs, and the horizontal axis represents the time axis t. As the test progresses, the cumulative number of bugs found will gradually approach the total number of bugs latent in the program under test, and should eventually match.

【0024】一方、発見されたバグに対しては修正して
ゆくであろうから、これも修正が全て終われば被テスト
プログラムに潜在していた総バグ数の線に到達すること
になり、また、バグに対する未修正数は発見されるバグ
の推移に対してその時々での修正数との差を表わすこと
になる。従って、この関係から極限到達時点を推定する
ことで、現時点からこの極限到達時点までの所要時間を
推定すればこれがリリース時点の推定値となる。ここで
用いる上記各種推移をモデルに当て嵌めてみることで極
限到達時点を見極めるようにする。
On the other hand, since the found bugs will be fixed, the total number of bugs latent in the program under test will be reached if all the corrections are completed. The number of unfixed bugs indicates the difference between the number of fixed bugs and the transition of the found bugs. Therefore, if the ultimate arrival time is estimated from this relationship and the required time from the present time to this ultimate arrival time is estimated, this becomes the estimated value at the release time. By applying the above-mentioned various transitions used here to the model, the time when the limit is reached can be determined.

【0025】本発明による装置の特徴的な考え方を述べ
ると、本装置ではソフトウェアのリリース時点を推定す
るための処理の流れとして、テストケースを用いて被テ
ストプログラムを実行し、この結果、見付けられたバグ
数を用い、その推移であるバグ数時系列データを用い
て、ソフトウェアリリース時点を推定する。さらにま
た、バグ発見により修正の要が発生したことで故障に対
する修正を施すがその修正に要した時間を修正時間とし
て登録して、この修正時間の推移を示す時系列データで
ソフトウェアリリース時点を推定する。また、テスト時
に見付けられたバグ数、そのバグに対する修正数の時系
列デ−タに基づいて、未修正件数は計算することができ
るから、この未修正件数の推移を示す時系列データでソ
フトウェアリリース時点を推定する。総合判断手段によ
り前記三つの推定方法のリリース時間推定結果を比較
し、過去の経験に基づくルールを適用することにより、
最終的な結果を出力する。
The characteristic concept of the device according to the present invention will be described. In this device, a program under test is executed by using a test case as a processing flow for estimating the release time of software, and as a result, it is found. The software release time is estimated using the number of bugs and the time series data of the number of bugs. Furthermore, when a bug is found and it is necessary to correct it, the failure is corrected, but the time required for the correction is registered as the correction time, and the software release time is estimated from the time series data showing the change in the correction time. To do. In addition, the number of unfixed cases can be calculated based on the number of bugs found at the time of testing and the time series data of the number of fixes for that bug, so software release with time series data showing the transition of this number of unfixed cases. Estimate the time point. By comparing the release time estimation results of the above three estimation methods by the comprehensive judgment means and applying the rule based on past experience,
Output the final result.

【0026】その詳細を以下述べる。図1は本発明の一
実施例を示すブロック図であり、図2および図3はその
部分拡大図である。図1〜図3において、1はテストケ
ース入力手段、2は被テストプログラムを格納した記憶
装置、3はテストケース処理部、4はバグ修正検出部、
5はバグ結果蓄積部、6はテスト結果期待値保持部、7
はバグ検出部、8は修正バグ数検出部、9は第1のタイ
マ、10はプログラム修正部、11は第2のタイマであ
る。
The details will be described below. FIG. 1 is a block diagram showing an embodiment of the present invention, and FIGS. 2 and 3 are partially enlarged views thereof. 1 to 3, 1 is a test case input unit, 2 is a storage device storing a program under test, 3 is a test case processing unit, 4 is a bug correction detection unit,
5 is a bug result accumulation unit, 6 is a test result expected value holding unit, 7
Is a bug detection unit, 8 is a corrected bug number detection unit, 9 is a first timer, 10 is a program correction unit, and 11 is a second timer.

【0027】また、12a〜12cはそれぞれデータ記
憶部、13A‐1〜13A‐n,13B‐1〜13B‐
n,13C‐1〜13C‐nはそれぞれ推定部、14は
知識部、15は第1の判断部、16は第2の判断部、1
7は判断結果抽出部である。前記テストケース入力手段
1は、テストケース(テスト用の模擬情報)を入力する
ためのものである。テストケースには目的に合わせた様
々なパラメータや具体的データ、コマンド、フラグなど
があり、目的に合わせて用意される。また、テストケー
ス入力手段1からは上述のテストケースの情報の他に、
そのテストケースに従っての実行の結果、本来得られる
べき結果である期待値も入力させるものとする。
Further, 12a to 12c are data storage units, 13A-1 to 13A-n, 13B-1 to 13B-, respectively.
n and 13C-1 to 13C-n are an estimation unit, 14 is a knowledge unit, 15 is a first determination unit, 16 is a second determination unit, and 1 is a determination unit.
Reference numeral 7 is a determination result extraction unit. The test case input means 1 is for inputting a test case (simulated information for testing). The test case has various parameters, specific data, commands, flags, etc., according to the purpose, and is prepared according to the purpose. In addition to the above-mentioned test case information from the test case input means 1,
As a result of execution according to the test case, the expected value, which is the result that should be originally obtained, should be input.

【0028】前記記憶装置2は被テストプログラム(テ
スト対象である開発中のプログラム)を記憶するもので
ある。テストケース処理部3はテストケース入力手段1
から入力されたテストケースの情報を保持し、また、期
待値をテスト結果期待値保持部6に与える共に、記憶装
置2から被テストプログラムを読み込み、テストケース
の情報を用いてこの被テストプログラムを実行させ、そ
の結果をテスト結果期待値保持部6に与えると云った処
理を行うものである。
The storage device 2 stores a program under test (a program under development which is a test target). The test case processing unit 3 is the test case input means 1
Holds the information of the test case input from the device, provides the expected value to the test result expected value holding unit 6, reads the program under test from the storage device 2, and uses the information of the test case to load the program under test. The processing is executed such that it is executed and the result is given to the test result expected value holding unit 6.

【0029】プログラム修正部10は被テストプログラ
ムにおけるバグの修正を行うためのものである。プログ
ラム修正部10は自動修正可能なバグに対しては自動修
正処理できるような処理システムとしてあっても良い
し、人手に頼るものであれば、キーボード等の入力装置
とエディタ等の編集装置とによる構成等が考えられる。
プログラム修正部10での処理を実施している間、タイ
マ11は計時を行い、プログラム修正のために要した処
理時間を累積保持する。
The program correction section 10 is for correcting a bug in the program under test. The program correction unit 10 may be a processing system capable of automatically correcting a bug that can be automatically corrected. If it depends on human hands, an input device such as a keyboard and an editing device such as an editor may be used. The configuration etc. can be considered.
While the program correction unit 10 is performing the processing, the timer 11 measures the time and cumulatively holds the processing time required for the program correction.

【0030】バグ結果蓄積部5はバグ検出部7の検出し
たバグ情報を蓄積するものであり、バグ修正検出部4は
テスト結果期待値保持部6の保持したテスト結果と期待
値並びにバグ結果蓄積部5の蓄積したバグ結果情報とを
参照してバグ修正の有無を検出するものであり、テスト
結果期待値保持部6はテストケース処理部3から出力さ
れたテスト結果と期待値とを保持するためのものであ
る。
The bug result storage unit 5 stores the bug information detected by the bug detection unit 7, and the bug correction detection unit 4 stores the test results and expected values held by the test result expected value holding unit 6 and the bug result storage. The presence / absence of bug correction is detected by referring to the bug result information accumulated by the unit 5, and the test result expected value holding unit 6 holds the test result and the expected value output from the test case processing unit 3. It is for.

【0031】また、バグ検出部7はテスト結果期待値保
持部6の保持したテスト結果と期待値とを参照してバグ
の有無を検出するものであり、この検出によって得たバ
グ数Nの情報を出力するものである。また、第1のタイ
マ9は被テストプログラムに対するテストケース処理部
3での処理時間(テスト時間T)を累算するタイマであ
る。
The bug detection unit 7 detects the presence or absence of a bug by referring to the test result and the expected value held by the test result expected value holding unit 6, and the information on the number N of bugs obtained by this detection. Is output. The first timer 9 is a timer for accumulating the processing time (test time T) in the test case processing unit 3 for the program under test.

【0032】修正バグ数検出部8はバグ修正検出部4の
出力する修正バグ数Mの情報と、バグ検出部7の出力す
るバグ数Nの情報とを得て、未修正バグ数Eの情報を得
るものである。
The fixed bug number detection unit 8 obtains information on the fixed bug number M output by the bug correction detection unit 4 and information on the bug number N output by the bug detection unit 7, and then outputs information on the unfixed bug number E. Is what you get.

【0033】また、データ記憶部12aは第1のタイマ
9の積算した累積テスト時間Tの情報とバグ検出部7の
検出したバグ数の情報Nとを保持するためのものであ
り、データ記憶部12bは第2のタイマ11から出力さ
れる積算された修正時間MTの情報とバグ修正検出部4
の出力する修正バグ数Mの情報とを保持するためのもの
であり、データ記憶部12cは第2のタイマ11から出
力される修正時間MTと第1のタイマ9の出力するテス
ト時間Tと修正バグ数検出部8の出力する未修正バグ数
Eとを保持するためのものである。
The data storage unit 12a holds information on the cumulative test time T accumulated by the first timer 9 and information N on the number of bugs detected by the bug detection unit 7, and the data storage unit 12a. 12b is information on the integrated correction time MT output from the second timer 11 and the bug correction detection unit 4
The data storage unit 12c holds the correction time MT output from the second timer 11, the test time T output from the first timer 9, and the correction. This is for holding the uncorrected bug number E output from the bug number detection unit 8.

【0034】推定部13A‐1〜13A‐nはそれぞれ
データ記憶部12aの記憶している累積テスト時間Tの
情報とバグ数Nの情報とをもとに、後述する所定の演算
式に基づき、演算してリリース時点を推定する推定部で
ある。推定部13A‐1〜13A‐nはそれぞれ種別の
異なる推定モデルの演算式を用いるようにしてある。
The estimation units 13A-1 to 13A-n respectively use the information of the cumulative test time T and the information of the number of bugs N stored in the data storage unit 12a, based on a predetermined arithmetic expression to be described later, This is an estimation unit that calculates and estimates the release time. The estimation units 13A-1 to 13A-n use the arithmetic expressions of the estimation models of different types.

【0035】推定部13B‐1〜13B‐nはそれぞれ
データ記憶部12bの記憶している修正時間MTの情報
と修正バグ数Mの情報とをもとに、後述する所定の演算
式に基づき、演算してリリース時点を推定する推定部で
ある。推定部13B‐1〜13B‐nはそれぞれ種別の
異なる推定モデルの演算式を用いるようにしてある。
The estimating units 13B-1 to 13B-n respectively use the information of the correction time MT and the information of the number of correction bugs M stored in the data storage unit 12b, based on a predetermined arithmetic expression described later, This is an estimation unit that calculates and estimates the release time. The estimation units 13B-1 to 13B-n use the arithmetic expressions of the estimation models of different types.

【0036】推定部13C‐1〜13C‐nはそれぞれ
データ記憶部12cの記憶している修正時間MTとテス
ト時間T並びに未修正バグ数Eとをもとに、後述する所
定の演算式に基づき、演算してリリース時点を推定する
推定部である。推定部13C‐1〜13C‐nもそれぞ
れ種別の異なる推定モデルの演算式を用いるようにして
ある。
The estimating units 13C-1 to 13C-n are based on a predetermined arithmetic expression described later based on the correction time MT, the test time T, and the uncorrected bug number E stored in the data storage unit 12c. Is an estimation unit that calculates and estimates the release time. The estimation units 13C-1 to 13C-n also use the calculation formulas of different estimation models.

【0037】知識部14はソフトウェア開発技術者の経
験的な情報を集めた部分である。判断部15は各推定部
13A‐1〜13A‐n,13B‐1〜13B‐n,1
3C‐1〜13C‐nの推定結果を、知識部14に格納
された知識を用いて総合的に判定して被テストプログラ
ムのリリース時点推定値を決定するものである。
The knowledge section 14 is a section that collects empirical information of software development engineers. The determination unit 15 includes the estimation units 13A-1 to 13A-n, 13B-1 to 13B-n, 1
The estimation results of 3C-1 to 13C-n are comprehensively determined by using the knowledge stored in the knowledge unit 14 to determine the release point estimated value of the program under test.

【0038】そして、判断部15は推定部13A‐1〜
13A‐nからそれぞれ出力されるリリース時点推定値
を知識部14の知識を用いて重み付け補正し、この重み
付け補正された各リリース時点推定値を加算して、累積
テスト時間Tとバグ数Nの情報とに基づくリリース時点
推定値を決定し、また、推定部13B‐1〜13B‐n
からそれぞれ出力されるリリース時点推定値を知識部1
4の知識を用いて重み付け補正し、この重み付け補正さ
れた各リリース時点推定値を加算して、修正時間MTと
修正バグ数Mの情報とに基づくリリース時点推定値を決
定し、また、推定部13C‐1〜13C‐nからそれぞ
れ出力されるリリース時点推定値を知識部14の知識を
用いて重み付け補正し、この重み付け補正された各リリ
ース時点推定値を加算して、修正時間MTとテスト時間
T並びに未修正バグ数Eとに基づくリリース時点推定値
を決定し、それぞれの推定値を出力すると云った機能を
有する。
Then, the judging section 15 is arranged to estimate sections 13A-1 to 13A-1.
Information about the cumulative test time T and the number of bugs N is obtained by weighting the release point estimated values respectively output from 13A-n using the knowledge of the knowledge unit 14 and adding the weighted corrected release point estimated values. And a release time estimation value based on and, and the estimation units 13B-1 to 13B-n
Estimated release time output from each
Weighted correction is made using the knowledge of No. 4, and each weighted and corrected release time point estimated value is added to determine the release time point estimated value based on the information of the correction time MT and the number of corrected bugs M. 13C-1 to 13C-n, the release time point estimated values are weighted and corrected by using the knowledge of the knowledge unit 14, and the weighted and corrected release time point estimated values are added to each other to obtain the correction time MT and the test time. It has a function of determining an estimated release time point value based on T and the number E of uncorrected bugs, and outputting each estimated value.

【0039】第2の判断部16はこの判定部15の推定
した各リリース時点の情報を総合判断して、最終的なリ
リース時点の推定値を得るものであり、判断結果抽出部
17は第2の判断部16により得たリリース時点の情報
を出力するものである。
The second judging section 16 comprehensively judges the information at each release time point estimated by the judging section 15 to obtain an estimated value at the final release time point, and the judgment result extracting section 17 is the second. The information at the time of release obtained by the determination unit 16 is output.

【0040】本発明においては、推定部13A‐1〜1
3A‐nにおいて累積テスト時間Tの情報とバグ数Nの
情報とをもとに信頼性モデル成長曲線の式を使用して演
算し、リリース時点を推定するが、ここでは信頼性モデ
ル成長曲線の式として例えば、次のようなモデルを用い
る。
In the present invention, the estimation units 13A-1 to 13-1
In 3A-n, the release time is estimated by calculating using the formula of the reliability model growth curve based on the information of the cumulative test time T and the information of the number of bugs N. For example, the following model is used as the expression.

【0041】[0041]

【表1】 [Table 1]

【0042】ここでは表1に示すような各種信頼性モデ
ルを使用してリリース時点を時系列故障(バグ)データ
で推定するものであるが、これは信頼性推定モデル成長
曲線が、テスト時間(ti)とその時点までに発見され
たバグの総数(m(ti))および潜在故障数(潜在バ
グ数)の関係を当て嵌めた曲線としてあり、発見された
バグ総数が潜在バグ数に到達し、バグ修正された段階
で、バグが出尽くしたと考えることができ、このことか
らそのモデルでの当該到達時点を推定することができる
と云う論拠に基づいている。
Here, various reliability models as shown in Table 1 are used to estimate the release point in time series failure (bug) data. This is because the reliability estimation model growth curve shows the test time ( ti) and the total number of bugs found up to that point (m (ti)) and the number of latent failures (latent bug number) are applied as a curve. The total number of found bugs reaches the latent bug number. , It is based on the rationale that when the bug is fixed, it can be considered that the bug is exhausted, and from this, the arrival time in the model can be estimated.

【0043】すなわち、信頼性推定モデル成長曲線の飽
和点に修正総数が達する時点を修正総数の曲線の動向か
ら推定することで、リリース時点を推定することが可能
であり、信頼性モデル成長曲線の式(信頼性モデル)か
らこれを求める。
That is, the release time can be estimated by estimating the time when the total number of modifications reaches the saturation point of the reliability estimation model growth curve from the trend of the curve of the total number of modifications. This is obtained from the formula (reliability model).

【0044】前記表1での各種信頼性モデルにおいて、
テスト時間(ti)が第1のタイマ9のTに対応し、発
見された故障の総数(m(ti))がバグ検出部7での
Nに対応する。
In the various reliability models shown in Table 1 above,
The test time (ti) corresponds to T of the first timer 9, and the total number of found failures (m (ti)) corresponds to N in the bug detection unit 7.

【0045】信頼度成長モデルは指数型信頼度成長モデ
ルやロジスティック曲線モデルなど様々なものがあり、
いずれが最適かはわからないので、それぞれのモデルに
よる推定結果を用いて総合的に判断するようにし、より
現実に近い推定結果を得られるようにする。そのため
に、推定部は13A‐1から13A‐nまでの複数を用
意し、例えば、推定部13A‐1には指数型信頼度成長
モデルに基づくリリース時点推定を行わせ、推定部13
A‐3にはロジスティック曲線モデルに基づくリリース
時点推定を行わせ、と云った具合に、推定部毎に適用す
る信頼度成長モデルを異ならせてある。
There are various reliability growth models such as an exponential reliability growth model and a logistic curve model.
Since it is not known which is the most suitable, the estimation result by each model is used to make a comprehensive judgment so that an estimation result closer to reality can be obtained. For that purpose, the estimation unit prepares a plurality of 13A-1 to 13A-n. For example, the estimation unit 13A-1 is caused to perform release point time estimation based on the exponential reliability growth model, and the estimation unit 13A-1
In A-3, the release time point is estimated based on the logistic curve model, and the reliability growth model to be applied differs for each estimation unit.

【0046】また、本発明においては、推定部13B‐
1〜13B‐nにおいて修正時間MTの情報と修正バグ
数Mの情報とをもとに信頼性モデル成長曲線の式を使用
して演算し、リリース時点を推定するが、ここでは信頼
性モデル成長曲線の式として例えば、次のようなモデル
を用いる。
In the present invention, the estimating unit 13B-
In 1 to 13B-n, the release time is estimated by calculating using the formula of the reliability model growth curve based on the information of the correction time MT and the information of the number of fixed bugs M. Here, the reliability model growth is performed. For example, the following model is used as the curve formula.

【0047】[0047]

【表2】 [Table 2]

【0048】ここでは表2に示すような各種信頼性モデ
ルを使用してリリース時点をバグ修正時間データで推定
するものであるが、これは信頼性モデル成長曲線が、バ
グ修正時間(Si)に達した時点までに修正された故障
(バグ)の総数(n(Si))および潜在故障数(潜在
バグ数)の関係を当て嵌めた曲線としてあり、発見され
たバグに対する修正時間総数が潜在修正数(潜在するバ
グの修正時間数)推定値に到達した時点で、被テストプ
ログラムに潜む全てのバグの修正がされたと考えること
ができ、このことからそのモデルでの当該到達時点を推
定することができると云う論拠に基づいている。
Here, various reliability models as shown in Table 2 are used to estimate the release time point from the bug correction time data. In this case, the reliability model growth curve corresponds to the bug correction time (Si). It is a curve that fits the relationship between the total number of faults (bug) fixed (n (Si)) and the number of latent faults (the number of latent bugs) up to the time when it is reached. When the number (potential bug fix time) estimated value is reached, it can be considered that all the bugs hidden in the program under test have been fixed, and from this, it is possible to estimate the arrival time in the model. It is based on the rationale that can be done.

【0049】すなわち、信頼性モデル成長曲線の飽和点
に修正時間総数が達する時点を修正総数の曲線の動向か
ら推定することで、リリース時点を推定することが可能
であり、信頼性モデル成長曲線の式(信頼性モデル)か
らこれを求める。
That is, the release time can be estimated by estimating the time when the total correction time reaches the saturation point of the reliability model growth curve from the trend of the curve of the total modification time. This is obtained from the formula (reliability model).

【0050】前記表2での各種信頼性モデルにおいて、
修正時間(Si)が第2のタイマ11のMTに対応し、
修正時間(Si)に到達した段階までに修正された故障
の総数(n(Si))がバグ修正検出部4での修正バグ
数Mに対応する。
In the various reliability models shown in Table 2 above,
The correction time (Si) corresponds to MT of the second timer 11,
The total number (n (Si)) of faults corrected up to the stage of reaching the correction time (Si) corresponds to the number M of fixed bugs in the bug correction detection unit 4.

【0051】信頼度成長モデルは指数型信頼度成長モデ
ルやロジスティック曲線モデルなど様々なものがあり、
いずれが最適かはわからないので、それぞれのモデルに
よる推定結果を用いて総合的に判断するようにし、より
現実に近い推定結果を得られるようにする。そのため
に、推定部は13B‐1から13B‐nまでの複数を用
意し、例えば、推定部13B‐1には指数型信頼度成長
モデルに基づくリリース時点推定を行わせ、推定部13
B‐3にはロジスティック曲線モデルに基づくリリース
時点推定を行わせ、と云った具合に、推定部毎に適用す
る信頼度成長モデルを異ならせてある。
There are various reliability growth models such as an exponential reliability growth model and a logistic curve model.
Since it is not known which is the most suitable, the estimation result by each model is used to make a comprehensive judgment so that an estimation result closer to reality can be obtained. Therefore, the estimation unit prepares a plurality of 13B-1 to 13B-n. For example, the estimation unit 13B-1 is caused to perform release point time estimation based on the exponential reliability growth model, and the estimation unit 13B-1
In B-3, the release time point is estimated based on the logistic curve model, and the reliability growth model to be applied is different for each estimation unit.

【0052】また、本発明においては、推定部13C‐
1〜13C‐nにおいて修正時間MTの情報とテスト時
間T並びに未修正バグ数Eの情報とをもとに統計的な分
布モデルを使用して演算し、リリース時点を推定する
が、ここでは統計的な分布モデルとして例えば、次のよ
うなモデルを用いる。
In the present invention, the estimating unit 13C-
In 1 to 13C-n, calculation is performed using a statistical distribution model based on the information of the fixed time MT, the information of the test time T and the number of unfixed bugs E, and the release time is estimated. For example, the following model is used as a typical distribution model.

【0053】[0053]

【表3】 [Table 3]

【0054】ここでは表3に示すような各種統計的分布
モデルを使用してリリース時点を時系列故障数(バグ
数)およびバグの未修正件数および現時点までにバグの
修正に要した累計の時間である修正時間MTで推定する
ものであるが、これはテスト時間が増えれば、故障数
(バグ数)が増えるかも知れないが、統計的にその傾向
が特定でき、累積テスト時間からバグ数の上限をある程
度、見極めることができ、また、テストを重ねる間に故
障(バグ)の修正も随時行ってゆくので、修正数が増え
ればやがて未修正数が零になるはずであり、この時点で
リリースできるはずであるから、これらを統計的に解析
してリリース時点を推定することが可能であると云う論
拠に基づいている。
Here, various statistical distribution models as shown in Table 3 are used, and the release time point is determined by the number of time series failures (number of bugs), the number of unfixed bugs, and the total time required for fixing the bugs up to the present time. The number of failures (bugs) may increase as the test time increases, but this tendency can be statistically identified and the number of bugs can be calculated from the cumulative test time. The upper limit can be determined to some extent, and failures (bugs) will be fixed at any time during repeated testing, so if the number of corrections increases, the number of uncorrected items should eventually become zero. Release at this point Since it should be possible, it is based on the rationale that it is possible to statistically analyze these and estimate the release time.

【0055】すなわち、各種のテストデータに従っての
テストが、ある程度の時間数に達すると、発見されたバ
グ総数と潜在バグ総数が統計的に見てほぼ同程度になる
と考えて良いことから、テスト時間の推移により、発見
バグ総数と潜在バグ総数が等しくなる極限が推測可能に
なり、その時点以降では未修正数が零になればリリース
可能になると考えることができから、これにおける未修
正数曲線が零に達する時点を推定して、その時点を推定
のリリース時点とする。
That is, it can be considered that the total number of discovered bugs and the total number of latent bugs become approximately the same in terms of statistics when the test according to various test data reaches a certain number of hours. By the transition of, it becomes possible to infer the limit at which the total number of discovered bugs and the total number of latent bugs are equal, and after that point, it can be considered that release is possible if the uncorrected number becomes zero. The time when zero is reached is estimated, and that time is taken as the estimated release time.

【0056】この時系列修正曲線でソフトウェアリリー
ス時点とするが、前記Eを未修正の総数の時系列データ
として表3の各統計的な分布の式におけるαとして当て
嵌め、リリース時点(ri)の近似解を求める。
Although the software release time point is represented by this time series correction curve, E is applied as α in each statistical distribution formula in Table 3 as time series data of the uncorrected total number, and the release time point (ri) of Find an approximate solution.

【0057】前記第1のタイマ9の出力でテスト時間数
を監視し、前記第2のタイマ11の出力である修正時間
MTをもとに未修正バグを修正するに必要な時間を推定
してこれより未修正曲線を推定し、この未修正曲線が零
に達する時点をリリース時点として推定する。この推定
に利用する統計的な分布は図3に示すようにレイリー分
布、ガンマ分布や指数分布などを使用する。
The number of test times is monitored by the output of the first timer 9, and the time required to correct the uncorrected bug is estimated based on the correction time MT which is the output of the second timer 11. From this, the uncorrected curve is estimated, and the time when this uncorrected curve reaches zero is estimated as the release time. As the statistical distribution used for this estimation, a Rayleigh distribution, a gamma distribution, an exponential distribution, or the like is used as shown in FIG.

【0058】このように統計的モデルは様々なものがあ
り、いずれが最適かはわからないので、それぞれのモデ
ルによる推定結果を用いて総合的に判断するようにし、
より現実に近い推定結果を得られるようにする。そのた
めに、推定部は13C‐1から13C‐nまでの複数を
用意し、例えば、推定部13C‐1にはレイリー分布モ
デルに基づくリリース時点推定を行わせ、推定部13C
‐3にはガンマ分布モデルに基づくリリース時点推定を
行わせ、と云った具合に、推定部毎に適用する信頼度成
長モデルを異ならせてある。
As described above, since there are various statistical models and it is not known which one is the best, it is necessary to make a comprehensive judgment using the estimation results of each model.
Make it possible to obtain more realistic estimation results. Therefore, the estimation unit prepares a plurality of 13C-1 to 13C-n. For example, the estimation unit 13C-1 is caused to perform release point time estimation based on the Rayleigh distribution model, and the estimation unit 13C
In -3, the release time point is estimated based on the gamma distribution model, and the reliability growth model to be applied is different for each estimation unit.

【0059】第1の判断部15は推定部13A‐1〜1
3A‐n,13B‐1〜13B‐n,13C‐1〜13
C‐nにおいてそれぞれ求められた各種モデルでのリリ
ース時点推定値を経験的ルールに基づいた総合判断ルー
ルに従って処理して最終的なリリース時点を求めるが、
その総合判断ルールは、次の数1の式の如きとなる。
The first judgment unit 15 is the estimation units 13A-1 to 13-1.
3A-n, 13B-1 to 13B-n, 13C-1 to 13
The final release time is calculated by processing the release time estimated value in each model obtained in Cn according to the comprehensive judgment rule based on the empirical rule.
The comprehensive judgment rule is as in the following formula (1).

【0060】[0060]

【数1】 [Equation 1]

【0061】数1の式では経験的ルールとして経験ある
ソフトウェア開発技術者の感覚に基づいた各モデル別注
目パラメータ別リリース時点推定値に対する重みe11〜
e35を用意して付与する形態を採用しており、注目パラ
メータとしてバグ数、修正数、未修正数を用い、
In the equation (1), the weight e11 to the release point estimated value for each model-specific attention parameter based on the feeling of an experienced software development engineer as an empirical rule
Adopting the form of preparing and assigning e35, using the number of bugs, the number of corrections, and the number of uncorrected as attention parameters,

【0062】[0062]

【数2】 [Equation 2]

【0063】なお、数1の式において、モデル名として
「レイリ」,「ワイブ」,「ロジス」,「ゴンペ」など
の略称を用いているが、それぞれ「レイリー」,「ワイ
ブル」,「ロジスティック」,「ゴンペルツ」を意味す
る。他も同様である。
In formula (1), abbreviated names such as "Reili", "Wive", "Logis", "Gompe" are used as model names, but "Rayleigh", "Weibull", and "Logistic" are used respectively. , Means "Gompertz". Others are the same.

【0064】[0064]

【数3】 ここで、tr(1),tr(2),tr(3)は、それぞれ過去の経
験に基づいて決められた重みであり、
[Equation 3] Here, tr (1), tr (2), tr (3) are weights determined based on past experience, respectively,

【0065】[0065]

【数4】 0.0 tr(1),tr(2),tr(3)1.0 の値を持つ。つま
り、全てを加算して1となるような関係にしてある。
[Equation 4] It has the values of 0.0 < tr (1), tr (2), tr (3) < 1.0. In other words, the relationship is such that all are added to become 1.

【0066】次に前記構成の本装置の作用について図5
のフローチャートを用いて説明する。まず初めに、テス
トケース入力手段1よりテストケース(テスト用の模擬
情報)を入力し(S1)、記憶装置2にテスト対象とな
る開発中のプログラムである被テストプログラムを格納
する(S2)。
Next, the operation of the present apparatus having the above-described structure will be described with reference to FIG.
This will be described with reference to the flowchart of. First, a test case (simulated information for testing) is input from the test case input means 1 (S1), and a program under test, which is a program under development, which is a test target is stored in the storage device 2 (S2).

【0067】そして、システムを起動させると、システ
ムでは図示しない制御手段の制御のもとに、まずテスト
ケース処理部3における処理が実施される。ここでの処
理はまず記憶装置2から被テストプログラムの読み込み
が行われ、ついでテスト終了か否かが判定され(S
3)、テストが未終了であればテストケース処理部3は
テストケース入力手段1より入力された未終了のテスト
ケースの一つを用いて被テストプログラムを実行させて
みる(S4)。
Then, when the system is activated, the system first executes the process in the test case processing unit 3 under the control of the control means (not shown). In the processing here, first, the test program is read from the storage device 2, and then it is determined whether or not the test is completed (S
3) If the test is not completed, the test case processing unit 3 executes the test program using one of the unfinished test cases input from the test case input means 1 (S4).

【0068】これにより、第1のタイマ9はこの実行時
間を計数して積算し、テスト時間Tを測定する(S
5)。この測定結果はデータ記憶部12a〜12cのう
ち、それぞれ対応するものに与えられ、保存される。
As a result, the first timer 9 counts and integrates this execution time, and measures the test time T (S
5). The measurement result is given and stored in the corresponding one of the data storage units 12a to 12c.

【0069】テストケース処理部3は使用したテストケ
ースに基づく処理の実行に伴い、テスト結果をテスト結
果期待値保持部6に与えるので、テスト結果期待値保持
部6はこれを保持する。テスト結果期待値保持部6では
テストケースを与えた際に、そのテストケースでの予定
された結果である期待値が与えられて保持されている。
この期待値はテストケースと共に予め用意されたもので
あり、テストが終了するとバグ検出部7はテスト結果期
待値保持部6に保存されたテスト結果と期待値との比較
を行って、両者が一致しないものの数をもって、この処
理で発生したバグ数Nとし、計数する。
Since the test case processing unit 3 gives the test result to the test result expected value holding unit 6 as the process based on the used test case is executed, the test result expected value holding unit 6 holds this. When a test case is given, the test result expected value holding unit 6 gives and holds an expected value that is a scheduled result of the test case.
This expected value is prepared in advance with the test case, and when the test ends, the bug detection unit 7 compares the test result stored in the test result expected value holding unit 6 with the expected value, and the two match. The number of non-executable objects is set as the number N of bugs generated in this process, and counting is performed.

【0070】このようにして、バグ検出部7が、当該実
施に供したテストケースでのバグ数Nを求める。そし
て、このバグ数Nは修正バグ数検出部8に与えられ、修
正バグ数検出部8はこれを積算保持する。
In this way, the bug detection unit 7 obtains the number N of bugs in the test case used for the implementation. Then, this bug number N is given to the fixed bug number detection unit 8, and the fixed bug number detection unit 8 accumulates and holds this.

【0071】バグが発見されたならば、図示しない制御
部はこのバグについての情報をディスプレイなどに表示
して知らせる。従って、ソフトウェア開発担当者はこの
バグについて修正処置をとるか、テストをさらに続ける
ことになる。また、バグがなかった場合も次のテストケ
ースでのテストを行うか否かを決める必要がある。その
ため、この段階では図示しないキーボードなどにより次
の処置の指示をシステムに与える。
If a bug is found, a control unit (not shown) displays information about this bug on a display or the like to inform it. Therefore, the software developer will either take corrective action or continue testing for this bug. Also, if there is no bug, it is necessary to decide whether to perform the test in the next test case. Therefore, at this stage, an instruction for the next treatment is given to the system by a keyboard (not shown) or the like.

【0072】この結果、テスト終了はせず、しかも、
「バグ修正せず」に、次のテストに移ると云う指示なら
ば(S6,S3)、制御部はステップS4に移り、上述
の如き処理を再び実行する。
As a result, the test is not completed, and
If there is an instruction to move to the next test without "fixing the bug" (S6, S3), the control unit moves to step S4 and executes the above-mentioned processing again.

【0073】一方、「バグ修正する」であったならば、
プログラム修正部10によりバグの修正を行う(S
7)。プログラム修正部10は自動修正可能なバグに対
してはオペレータの指示内容に従って自動修正すること
ができ、プログラマの個別見直しと検討が必要なバグに
対してはエディタを起動させてプログラマやオペレータ
によるエディットができるような機能を有する。従っ
て、プログラマやオペレータはこれにより修正を加え
る。すると、その期間中、第2のタイマ11は時間を計
数し、累積して被テストプログラムに対する修正時間M
Tとして出力する(S8)。この修正時間MTはデータ
記憶部12b,12cにそれぞれ記憶される。
On the other hand, if it is "fix a bug",
The program correction unit 10 corrects the bug (S
7). The program correction unit 10 can automatically correct bugs that can be automatically corrected according to the operator's instructions. For bugs that require individual review and consideration by the programmer, an editor is activated to edit by the programmer or operator. It has a function that enables Thus, the programmer or operator will make the correction accordingly. Then, during that period, the second timer 11 counts the time and accumulates the accumulated time to modify the program under test M.
It is output as T (S8). The correction time MT is stored in each of the data storage units 12b and 12c.

【0074】また、このバグの修正にあたり、修正され
た数は次のようにしてカウントされる。すなわち、修正
が終わるとバグが発見された際に使用していたテストケ
ースが選択されてテストケース処理部3はテストを行
い、テスト結果期待値保持部6にその結果を入力して保
持させるので、このデータと期待値によってバグ修正検
出部4は解消されたバグを知り、修正バグ数Mとして蓄
積する。この修正バグ数Mはデータ記憶部12bに入力
されると共に、修正バグ数検出部8に与えられ、修正バ
グ数検出部8はこの修正バグ数Mとバグ検出部7の出力
する累積のバグ数Nとの差を求めて未修正バグ数Eを算
出する。
In correcting this bug, the number of corrections is counted as follows. That is, when the correction is completed, the test case used when the bug is found is selected, the test case processing unit 3 performs the test, and the test result expected value holding unit 6 inputs and holds the result. The bug correction detection unit 4 knows the resolved bug based on this data and the expected value, and accumulates it as the corrected bug number M. This corrected bug number M is input to the data storage unit 12b and is also given to the fixed bug number detection unit 8, and the fixed bug number detection unit 8 outputs the fixed bug number M and the cumulative number of bugs output by the bug detection unit 7. The difference from N is calculated to calculate the number of uncorrected bugs E.

【0075】この求められた未修正バグ数Eはデータ記
憶部12cに入力されて記憶される。このような処理が
繰り返され、最後にテスト終了の指示を与えると、デー
タ記憶部12a〜12cに記憶されている現時点でのバ
グ数N、テスト時間T、修正バグ数Mおよび未修正バグ
数Eのデータに基づいてこれらのうちの、特定のパラメ
ータに基づくリリース時点推定処理が各推定部13A‐
1〜13A‐n〜13C‐1〜13C‐nによって開始
される。
The obtained uncorrected bug number E is input and stored in the data storage unit 12c. When such a process is repeated and an instruction to end the test is given at the end, the current bug number N, test time T, fixed bug number M, and unfixed bug number E stored in the data storage units 12a to 12c. Of these, the release time point estimation processing based on specific parameters is performed by each estimation unit 13A-
1 to 13A-n to 13C-1 to 13C-n.

【0076】すなわち、テストが終了すると(S3)、
推定部13A‐1〜13A‐nはテスト時間Tとバグ数
Nの関係から異なるk個(k=1,2,3,〜k)のソ
フトウェア信頼度成長モデルそれぞれでリリース時点を
推定する(S10)。そして、この結果得られたk個の
各リリース時点推定値について、前記知識部14に格納
された知識を用いて判定部15により、テスト時間Tと
バグ数Nの関係に基づくリリース時点が推定される(S
11)。
That is, when the test is completed (S3),
The estimation units 13A-1 to 13A-n estimate the release time point for each of the k (k = 1, 2, 3, to k) different software reliability growth models from the relationship between the test time T and the number of bugs N (S10). ). Then, with respect to the respective k estimated release time points obtained as a result, the determination time point is estimated by the determination section 15 using the knowledge stored in the knowledge section 14 based on the relationship between the test time T and the number of bugs N. (S
11).

【0077】また、これと並行して、推定部13B‐1
〜13B‐nは修正時間MTとバグ修正数Mの関係から
異なるl個(l=1,2,3,〜l)のソフトウェア信
頼度成長モデルそれぞれでリリース時点を推定する(S
12)。そして、この結果得られたl個の各リリース時
点推定値について、前記知識部14に格納された知識を
用いて判定部15により、修正時間MTとバグ修正数M
に基づくリリース時点が推定される(S13)。
In parallel with this, the estimation unit 13B-1
.About.13B-n estimates the release time point for each of 1 (l = 1,2,3, ... L) different software reliability growth models from the relationship between the modification time MT and the number of bug modifications M (S = 1.
12). Then, for each of the l estimated release time points obtained as a result, the determination unit 15 uses the knowledge stored in the knowledge unit 14 to determine the correction time MT and the bug correction number M.
The release time is estimated based on (S13).

【0078】また、推定部13C‐1〜13C‐nはテ
スト時間Tと修正時間MTと未修正バグ数Eの関係から
異なるm個(m=1,2,3,〜m)の統計的モデルそ
れぞれでリリース時点を推定する(S14)。そして、
この結果得られたm個の各リリース時点推定値につい
て、前記知識部14に格納された知識を用いて判定部1
5により、テスト時間Tと修正時間MTと未修正バグ数
Eとに基づくリリース時点が推定される(S15)。
Further, the estimating units 13C-1 to 13C-n use m (m = 1, 2, 3, ... M) statistical models which differ from the relationship between the test time T, the correction time MT, and the number E of uncorrected bugs. The release time is estimated for each (S14). And
The determination unit 1 uses the knowledge stored in the knowledge unit 14 with respect to the m estimated release time points obtained as a result.
5, the release time point is estimated based on the test time T, the correction time MT, and the uncorrected bug number E (S15).

【0079】このようにして推定した各リリース時点推
定値は、判定部16により前記知識部14に格納された
知識を用いて総合的に見たかたちでの最終的なリリース
時点推定が行われ(S16)、その結果は判断抽出手段
17によって出力されて知らされる。
The respective release time point estimated values thus estimated are used to make a final release time point estimation in a comprehensive manner by using the knowledge stored in the knowledge section 14 by the judging section 16 ( S16), the result is output and notified by the judgment extraction means 17.

【0080】なお、本発明は前記し、且つ、図面に示す
実施例に限定することなく、その要旨を変更しない範囲
内で適宜変形して実施し得るものであり、例えば、上述
の例ではテスト時間とバグ数の関係から、そして、修正
時間と修正数の関係から、そして、テスト時間と未修正
バグ数の関係から見たリリース時点の推定を種々のモデ
ルを利用してそれぞれ推定し、これらを経験者のノウハ
ウに従って重み付け演算して総合することにより、より
現実的な線に近いかたちで、リリース時点の推定を行う
ことができるようにしたが、テスト時間とバグ数の関係
のみにより、あるいは、修正時間と修正数の関係のみに
より、また、テスト時間と修正時間と未修正バグ数の関
係のみにより推定するようにすることもでき、また、前
記関係のうち、いずれか2つを採用してリリース時点を
それぞれ推定し、これらを蓄積された経験的な知識情報
に基づき定めたルールに従って重み付けし、総合的に判
断して最終的なリリース時点を推定するようにしても良
い。
The present invention is not limited to the embodiments described above and shown in the drawings, but can be carried out by appropriately modifying it within a range not changing the gist of the invention. Estimate the release time from the relationship between the time and the number of bugs, from the relationship between the fix time and the number of fixes, and from the relationship between the test time and the number of unfixed bugs using various models. It is possible to estimate the release time in a form closer to a more realistic line by performing weighted calculation according to the know-how of experienced persons and integrating it, but only by the relationship between the test time and the number of bugs, or It is also possible to estimate only by the relationship between the modification time and the number of modifications, or only the relationship between the test time, the modification time and the number of unfixed bugs. Use either of these two to estimate the release time, weight them according to the rules established based on accumulated empirical knowledge information, and make a comprehensive judgment to estimate the final release time. May be.

【0081】このように、本発明は開発中のソフトウェ
アのリリース時点を信頼性をもって推定できるようにす
るものであり、ソフトウェアのテスト情報(テスト時
間、バグ数、累積のバグ修正時間、修正数)の時系列デ
ータをもとに、テスト時間とバグ数の関係、累積のバグ
修正時間と修正数の関係、テスト時間と累積のバグ修正
時間並びに未修正バグ数の関係からそれぞれ複数の信頼
性推定モデルや複数の統計的モデルそれぞれによるリリ
ース時点推定値を求め、これらの算出結果に対し、経験
あるソフトウェア開発技術者の蓄積された経験と勘に基
づくルールに従って重み付け補正を施して後、加算して
種々のモデルおよびパラメータを利用した総合的な観点
から見ての客観的な推定値としてのリリース時点を得る
ものである。
As described above, the present invention enables reliable estimation of the release point of software under development, and software test information (test time, number of bugs, cumulative bug fix time, number of fixes). Multiple reliability estimates based on the relationship between the test time and the number of bugs, the relationship between the cumulative bug fix time and the number of fixes, the relationship between the test time and the cumulative bug fix time, and the number of unfixed bugs based on the time series data of Obtain release point estimates for each model and multiple statistical models, add weighted corrections to these calculation results according to rules based on the experience and intuition accumulated by experienced software development engineers. The objective is to obtain the release point as an objective estimate from a comprehensive viewpoint using various models and parameters.

【0082】被テストプログラムに潜む総バグ数に関し
て、テストによる発見バグ数とその修正数および未修正
数の関係は、テストが進むと発見されるバグ数の累積値
は被テストプログラムに潜在していた総バグ数に次第に
近付き、やがて一致するはずであろうし、一方、発見さ
れたバグに対しては修正してゆくであろうから、これも
修正が全て終われば被テストプログラムに潜在していた
総バグ数の線に到達することになり、また、バグに対す
る未修正数は発見されるバグの推移に対してその時々で
の修正数との差を表わすことになる。
Regarding the total number of bugs hidden in the program under test, the relationship between the number of bugs found by the test and the number of fixed and unfixed bugs is that the cumulative value of the number of bugs found as the test progresses is latent in the program under test. The number of total bugs will gradually approach, and they will match soon, while the bugs found will be fixed, so if this is all fixed, it was latent in the program under test. The line for the total number of bugs will be reached, and the number of unfixed bugs will represent the difference between the number of fixed bugs and the transition of found bugs.

【0083】従って、この関係から極限到達時点を推定
することで、現時点からこの極限到達時点までの所要時
間を推定すればこれがリリース時点であり、ここで用い
る上記各種推移をモデルに当て嵌めてみることで極限到
達時点を見極めると共に、モデルとしては各種信頼性成
長モデルや各種統計的モデルを使用して、各々での推定
値を求め、これらを経験者の知識を用いて総合的に判断
することで現実的な線に近いかたちで、リリース時点の
推定を行うことができる。なお、本発明は上記し、か
つ、図面に示す実施例に限定することなく、その要旨を
変更しない範囲内で適宜変形して実施し得るものであ
る。
Therefore, if the time limit is reached from this relationship to estimate the time required from the present time to this time limit, this is the release time, and the various transitions used here are applied to the model. By using the various reliability growth models and various statistical models as models, the estimated values for each are obtained, and these are comprehensively judged using the knowledge of experienced persons. The release point can be estimated in a shape close to a realistic line. It should be noted that the present invention is not limited to the embodiments described above and shown in the drawings, but can be appropriately modified and implemented within the scope of the invention.

【0084】[0084]

【発明の効果】以上、詳述したように、本発明によれば
より現実的な線に近いかたちで、リリース時点の推定を
行うことができるようになり、従って、ソフトウェア開
発の進捗状況判断や管理なども適確に行うことができる
ようになるソフトウェアリリース時点推定装置および推
定方法を提供することができる。
As described above in detail, according to the present invention, it becomes possible to estimate the release point in a manner closer to a realistic line, and therefore, to judge the progress of software development and It is possible to provide a software release time point estimation device and an estimation method that enable appropriate management and the like.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の一実施例を示す全体構成のブロック
図。
FIG. 1 is a block diagram of an overall configuration showing an embodiment of the present invention.

【図2】図1の部分拡大図。FIG. 2 is a partially enlarged view of FIG.

【図3】図1の部分拡大図。FIG. 3 is a partially enlarged view of FIG.

【図4】本発明の原理を説明するための図。FIG. 4 is a diagram for explaining the principle of the present invention.

【図5】本発明装置の作用を説明するフローチャート。FIG. 5 is a flowchart explaining the operation of the device of the present invention.

【符号の説明】[Explanation of symbols]

1…テストケース入力手段、2…被テストプログラムを
格納した記憶装置、3…テストケース処理部、4…バグ
修正部、5…バグ結果蓄積部、6…テスト結果期待値保
持部、7…バグ検出部、8…修正バグ数検出部、9…第
1のタイマ、10…プログラム修正部、11…第2のタ
イマ、12a〜12c…データ記憶部、13A‐1〜1
3A‐n,13B‐1〜13B‐n,13C‐1〜13
C‐n…推定部、14…知識部、15…第1の判断部、
16…第2の判断部、17…判断結果抽出部。
DESCRIPTION OF SYMBOLS 1 ... Test case input means, 2 ... Storage device storing the program under test, 3 ... Test case processing unit, 4 ... Bug correction unit, 5 ... Bug result storage unit, 6 ... Test result expected value holding unit, 7 ... Bug Detection unit, 8 ... Fixed bug number detection unit, 9 ... First timer, 10 ... Program correction unit, 11 ... Second timer, 12a to 12c ... Data storage unit, 13A-1 to 13A-1
3A-n, 13B-1 to 13B-n, 13C-1 to 13
Cn ... estimation unit, 14 ... knowledge unit, 15 ... first judgment unit,
16 ... 2nd judgment part, 17 ... Judgment result extraction part.

Claims (8)

【特許請求の範囲】[Claims] 【請求項1】 テストのために用意した各種の条件群で
あるテストケースに従って評価対象のソフトウェアを実
行させる実行手段と、 この実行手段による実行の累積時間である累積テスト時
間情報と前記評価対象のソフトウェアを実行させた際に
おける検出された故障・欠陥の数と故障・欠陥の修正数
と故障・欠陥の修正に要した時間数とをデータ収集する
テストデータ収集手段と、 この収集したデータのうち、前記検出した故障・欠陥の
数に対する修正数の関係から得られた未修正数の情報を
もとに、累積テスト時間情報に基づくテスト時間および
修正時間の推移との関係から、各種統計的モデルにより
前記評価対象のソフトウェアのリリース時点をモデル別
に推定する推定手段と、 これら各推定された推定値に対して、蓄積された経験に
基づく所定の規則に従って補正した後、総合して評価処
理することにより、リリース時点の推定結果を得る判断
手段とより構成したことを特徴とするソフトウェアリリ
ース時点推定装置。
1. An execution unit that executes software to be evaluated according to a test case, which is a group of various conditions prepared for testing, cumulative test time information that is the cumulative time of execution by this execution unit, and the evaluation target. A test data collecting means for collecting data on the number of detected failures / defects when the software is executed, the number of failures / defects fixed, and the number of hours required to correct the failures / defects. , Based on the information of the uncorrected number obtained from the relationship of the number of modifications to the number of detected failures / defects, based on the relationship between the test time based on the cumulative test time information and the transition of the modification time, various statistical models Estimating means for estimating the release time of the software to be evaluated by model according to the above, and the accumulated experience for each of these estimated values. A software release time point estimation device comprising: a determination unit that obtains an estimation result at a release time point by performing a comprehensive evaluation process after correction according to a predetermined rule based on the software release time point.
【請求項2】 テストのために用意した各種の条件群で
あるテストケースに従って評価対象のソフトウェアを実
行させる実行手段と、 この実行手段による実行の累積テスト時間情報とテスト
回数の情報と前記評価対象のソフトウェアを実行させた
際における検出された故障・欠陥の数と故障・欠陥の修
正数と故障・欠陥の修正に要した時間数とをデータ収集
するテストデータ収集手段と、 この収集したデータのうち、累積テスト時間と故障・欠
陥の数とをもとに、各種ソフトウェア信頼度成長モデル
により前記評価対象のソフトウェアのリリース時点をそ
れぞれのモデル別に推定してこれらを推定値群として得
る第1の推定手段と、 前記収集したデータのうち、修正時間と修正数とをもと
に、各種ソフトウェア信頼度成長モデルにより前記評価
対象のソフトウェアのリリース時点をそれぞれのモデル
別に推定してこれらを推定値群として得る第2の推定手
段と、 前記収集したデータのうち、テスト時間数と修正時間数
と未修正数とをもとに、各種統計的モデルにより前記評
価対象のソフトウェアのリリース時点をそれぞれのモデ
ル別に推定してこれらを推定値群として得る第3の推定
手段と、 これらの各推定手段によりそれぞれ推定された前記各推
定値群別のリリース時点推定値に対して、蓄積された経
験に基づく所定の規則に従って処理することにより、リ
リース時点の最終推定結果を得る判断手段とより構成し
たことを特徴とするソフトウェアリリース時点推定装
置。
2. Execution means for executing software to be evaluated in accordance with a test case, which is a group of various conditions prepared for testing, cumulative test time information of execution by this execution means, information on the number of tests, and the evaluation object. Test data collection means for collecting the number of detected failures / defects, the number of failures / fixed defects, and the number of hours required to correct failures / defects when the software of Of these, based on the cumulative test time and the number of failures / defects, various software reliability growth models are used to estimate the release time of the software to be evaluated for each model and obtain these as an estimated value group. Based on the estimation means and the correction time and the number of corrections of the collected data, the evaluation is performed by various software reliability growth models. The second estimation means for estimating the release time of the software to be evaluated for each model and obtaining these as an estimated value group; and the number of test hours, the number of modified hours, and the number of unmodified among the collected data. And a third estimating means for estimating the release time of the software to be evaluated for each model by various statistical models to obtain these as an estimated value group, and the respective estimating means respectively estimated by these estimating means. Release time by estimated value group Software release time point characterized by being composed of a judgment means for obtaining the final estimation result at the release time point by processing the estimated value according to a predetermined rule based on accumulated experience Estimator.
【請求項3】 前記判断手段は前記規則を条件と重みか
ら構成してなり、各リリース時点推定結果に対して、条
件に応じて重み付けして加算することにより、リリース
時点の推定値を求めることを特徴とする請求項1および
2記載のソフトウェアリリース時点推定装置。
3. The determination means comprises the rule consisting of a condition and a weight, and obtains an estimated value at the release time point by weighting and adding to each release time point estimation result according to the condition. The software release time point estimation device according to claim 1 or 2, characterized in that:
【請求項4】 テストのために用意した各種の条件群で
あるテストケースに従って評価対象のソフトウェアを実
行させる実行手段と、 この実行手段による実行の累積テスト時間情報とテスト
回数の情報と前記評価対象のソフトウェアを実行させた
際における検出された故障・欠陥の数と故障・欠陥の修
正数と故障・欠陥の修正に要した時間数とをデータ収集
するテストデータ収集手段と、 この収集したデータのうち、累積テスト時間と故障・欠
陥の数とをもとに、各種ソフトウェア信頼度成長モデル
により前記評価対象のソフトウェアのリリース時点をそ
れぞれのモデル別に推定してこれらを推定値群として得
る第1の推定手段と、 前記収集したデータのうち、修正時間と修正数とをもと
に、各種ソフトウェア信頼度成長モデルにより前記評価
対象のソフトウェアのリリース時点をそれぞれのモデル
別に推定してこれらを推定値群として得る第2の推定手
段と、 前記データ収集手段の収集したデータのうち、前記検出
した故障・欠陥の数に対する修正数の関係から得られた
未修正数の情報をもとに、累積テスト時間情報に基づく
テスト時間および修正時間の推移との関係から、各種統
計的モデルにより前記評価対象のソフトウェアのリリー
ス時点をモデル別に推定してこれらを推定値群として得
る第3の推定手段と、 第1の推定手段ないし第3の推定手段毎の各推定値群に
対して、蓄積された経験に基づく所定の規則に従って補
正した後、各推定値群毎に総合して評価処理することに
より、各推定値群別リリース時点の推定結果を得る第1
の判断手段と、 これらの各推定値群別リリース時点の推定結果を、蓄積
された経験に基づく所定の規則に従って処理することに
より、リリース時点の最終推定結果を得る第2の判断手
段とより構成したことを特徴とするソフトウェアリリー
ス時点推定装置。
4. Execution means for executing software to be evaluated according to a test case, which is a group of various conditions prepared for testing, cumulative test time information of execution by this execution means, information on the number of tests, and the evaluation object. The test data collection means for collecting the number of detected failures / defects, the number of failures / defects corrected, and the number of hours required to correct the failures / defects when the software of Of these, based on the cumulative test time and the number of failures / defects, various software reliability growth models are used to estimate the release time of the software to be evaluated for each model and obtain these as an estimated value group. Based on the estimation means and the correction time and the number of corrections of the collected data, the evaluation is performed by various software reliability growth models. Second estimating means for estimating the release time of the software targeted for valuation for each model to obtain these as an estimated value group; and correction to the number of detected failures / defects of the data collected by the data collecting means. Based on the information of the uncorrected number obtained from the relationship of the number, from the relationship with the transition of the test time and the modification time based on the cumulative test time information, various statistical models are used to model the release time of the software to be evaluated. Third estimation means for separately estimating and obtaining these as an estimated value group and each estimated value group for each of the first to third estimating means are corrected in accordance with a predetermined rule based on accumulated experience. After that, the estimated result at the time of release for each estimated value group is obtained by comprehensively performing an evaluation process for each estimated value group.
And a second determining means for obtaining the final estimation result at the release point by processing the estimation result at each release point for each estimated value group according to a predetermined rule based on accumulated experience. A software release point in time estimation device characterized by the above.
【請求項5】 前記第1および第2の判断手段は前記規
則を条件と重みから構成してなり、各リリース時点推定
結果に対して、条件に応じて重み付けして加算すること
により、リリース時点の推定値を求めることを特徴とす
る請求項4記載のソフトウェアリリース時点推定装置。
5. The release time point is determined by the first and second determination means, each rule being composed of a condition and a weight, and weighted and added to each release time point estimation result according to the condition. 5. The software release time point estimation device according to claim 4, wherein the estimated value is calculated.
【請求項6】 テストのために用意した各種の条件群で
あるテストケースに従って評価対象のソフトウェアを実
行させる実行ステップと、 この実行ステップによる実行の累積テスト時間情報とテ
スト回数の情報と前記評価対象のソフトウェアを実行さ
せた際における検出された故障・欠陥の数と故障・欠陥
の修正数と故障・欠陥の修正に要した時間数とをデータ
収集するテストデータ収集ステップと、 このテストデータ収集ステップにおいて収集したデータ
のうち、累積テスト時間と故障・欠陥の数とをもとに、
各種ソフトウェア信頼度成長モデルにより前記評価対象
のソフトウェアのリリース時点をそれぞれのモデル別に
推定してこれらを推定値群として得る第1の推定ステッ
プと、 前記収集したデータのうち、修正時間と修正数とをもと
に、各種ソフトウェア信頼度成長モデルにより前記評価
対象のソフトウェアのリリース時点をそれぞれのモデル
別に推定してこれらを推定値群として得る第2の推定ス
テップと、 前記収集したデータのうち、テスト時間数と修正時間数
と未修正数とをもとに、各種統計的モデルにより前記評
価対象のソフトウェアのリリース時点をそれぞれのモデ
ル別に推定してこれらを推定値群として得る第3の推定
ステップと、 これらの各推定ステップにおいてそれぞれ推定された前
記各推定値群別のリリース時点推定値に対して、蓄積さ
れた経験に基づく所定の規則に従って処理することによ
り、リリース時点の最終推定結果を得る第2の判断ステ
ップとよりなることを特徴とするソフトウェアリリース
時点推定方法。
6. An execution step for executing software to be evaluated according to a test case, which is a group of various conditions prepared for testing, cumulative test time information of execution by this execution step, information on the number of tests, and the evaluation object. And a test data collecting step for collecting data on the number of detected failures / defects and the number of failures / defects repaired and the number of hours required to repair the failures / defects when executing the software of Based on the cumulative test time and the number of failures / defects among the data collected in
A first estimation step of estimating the release time of the software to be evaluated for each model by various software reliability growth models and obtaining these as an estimated value group; and a correction time and a correction number of the collected data. A second estimation step of estimating the release time of the software to be evaluated for each model by various software reliability growth models to obtain these as an estimated value group, and a test of the collected data. A third estimating step of estimating the release time of the software to be evaluated for each model by various statistical models based on the number of hours, the number of modified hours, and the number of uncorrected, and obtaining these as an estimated value group; , The release point estimated value for each estimated value group estimated in each of these estimation steps To, by processing in accordance with a predetermined rule based on accumulated experience, software release time estimation method characterized by comprising further a second determination step of obtaining a final estimation result at the time of the release.
【請求項7】 テストのために用意した各種の条件群で
あるテストケースに従って評価対象のソフトウェアを実
行させる実行ステップと、 この実行ステップによる実行の累積テスト時間情報とテ
スト回数の情報と前記評価対象のソフトウェアを実行さ
せた際における検出された故障・欠陥の数と故障・欠陥
の修正数と故障・欠陥の修正に要した時間数とをデータ
収集するテストデータ収集ステップと、 このテストデータ収集ステップにおいて収集したデータ
のうち、累積テスト時間と故障・欠陥の数とをもとに、
各種ソフトウェア信頼度成長モデルにより前記評価対象
のソフトウェアのリリース時点をそれぞれのモデル別に
推定してこれらを推定値群として得る第1の推定ステッ
プと、 前記収集したデータのうち、修正時間と修正数とをもと
に、各種ソフトウェア信頼度成長モデルにより前記評価
対象のソフトウェアのリリース時点をそれぞれのモデル
別に推定してこれらを推定値群として得る第2の推定ス
テップと、 前記データ収集ステップにおいて収集したデータのう
ち、前記検出した故障・欠陥の数に対する修正数の関係
から得られた未修正数の情報をもとに、累積テスト時間
情報に基づくテスト時間および修正時間の推移との関係
から、各種統計的モデルにより前記評価対象のソフトウ
ェアのリリース時点をモデル別に推定してこれらを推定
値群として得る第3の推定ステップと、 第1の推定ステップないし第3の推定ステップそれぞれ
での各推定値群に対して、蓄積された経験に基づく所定
の規則に従って補正した後、各推定値群毎に総合して評
価処理することにより、各推定値群別リリース時点の推
定結果を得る第1の判断ステップと、 これらの各推定値群別リリース時点の推定結果を、蓄積
された経験に基づく所定の規則に従って処理することに
より、リリース時点の最終推定結果を得る第2の判断ス
テップとよりなることを特徴とするソフトウェアリリー
ス時点推定方法。
7. An execution step for executing software to be evaluated according to a test case, which is a group of various conditions prepared for testing, cumulative test time information of execution by this execution step, information on the number of tests, and the evaluation object. And a test data collecting step for collecting data on the number of detected failures / defects and the number of failures / defects repaired and the number of hours required to repair the failures / defects when executing the software of Based on the cumulative test time and the number of failures / defects among the data collected in
A first estimation step of estimating the release time of the software to be evaluated for each model by various software reliability growth models and obtaining these as an estimated value group; and a correction time and a correction number of the collected data. A second estimation step of estimating the release time of the software to be evaluated for each model by various software reliability growth models as an estimated value group, and the data collected in the data collection step. Of the above, based on the information of the uncorrected number obtained from the relationship of the number of corrections to the number of detected failures / defects, based on the relationship between the test time based on the accumulated test time information and the change in the correction time, various statistics Of the release time of the software to be evaluated by model based on a statistical model After the third estimation step obtained as a group and each estimated value group in each of the first to third estimated steps are corrected according to a predetermined rule based on accumulated experience, each estimated value group Based on the accumulated experience, the first judgment step for obtaining the estimation result at each release point for each estimated value group by performing the comprehensive evaluation processing for each A software release time point estimation method comprising a second determination step of obtaining a final estimation result at a release time point by processing according to a predetermined rule.
【請求項8】 前記第1および第2の判断ステップは前
記規則を条件と重みから構成してなり、各リリース時点
推定結果に対して、条件に応じて重み付けして加算する
ことにより、リリース時点の推定値を求めることを特徴
とする請求項6および7記載のソフトウェアリリース時
点推定方法。
8. The first and second judgment steps are configured by the rule consisting of a condition and a weight, and by weighting and adding to each release time point estimation result according to the condition, a release time point is obtained. The software release time point estimation method according to claim 6 or 7, wherein the estimated value is calculated.
JP4175522A 1992-07-02 1992-07-02 Software release time estimating device and method Pending JPH0619699A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4175522A JPH0619699A (en) 1992-07-02 1992-07-02 Software release time estimating device and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4175522A JPH0619699A (en) 1992-07-02 1992-07-02 Software release time estimating device and method

Publications (1)

Publication Number Publication Date
JPH0619699A true JPH0619699A (en) 1994-01-28

Family

ID=15997536

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4175522A Pending JPH0619699A (en) 1992-07-02 1992-07-02 Software release time estimating device and method

Country Status (1)

Country Link
JP (1) JPH0619699A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014203332A (en) * 2013-04-08 2014-10-27 日本電信電話株式会社 Prediction error evaluation device and method
JP2022551560A (en) * 2019-10-09 2022-12-12 トヨタ モーター ノース アメリカ,インコーポレイティド Manage vehicle software updates

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014203332A (en) * 2013-04-08 2014-10-27 日本電信電話株式会社 Prediction error evaluation device and method
JP2022551560A (en) * 2019-10-09 2022-12-12 トヨタ モーター ノース アメリカ,インコーポレイティド Manage vehicle software updates

Similar Documents

Publication Publication Date Title
US8087001B2 (en) Computer-implemented systems and methods for software application testing
CN108375715B (en) Power distribution network line fault risk day prediction method and system
US6088678A (en) Process simulation technique using benefit-trade matrices to estimate schedule, cost, and risk
Ntotsios et al. Bridge health monitoring system based on vibration measurements
JPH10510385A (en) Method and system for software quality architecture based analysis
US10430268B2 (en) Operations management system, operations management method and program thereof
JP2007207029A (en) Project progress management device and method
JP2009086896A (en) Failure prediction system and failure prediction method for computer
Sehestedt et al. Towards quantitative metrics for architecture models
JPH06289179A (en) Self learning diagnosis for plant, estimation and device therefor
TW201814599A (en) Facility status estimation device, facility status estimation method, and facility status management system
JP3883449B2 (en) Software system test plan creation support method and test plan creation support program
Andersin TPI–a model for Test Process Improvement
CN116383048A (en) Software quality information processing method and device
JPH0619699A (en) Software release time estimating device and method
JPH05324309A (en) Device and method for evaluating software quality
CN111967774B (en) Software quality risk prediction method and device
JP2003029970A (en) Program quality management supporting device, program quality management supporting method, computer readable recording medium having program for making computer perform program quality management supporting method recorded thereon and program for making computer perform program quality management supporting method
JP2003044114A (en) Inspection system
JPH05313881A (en) Method and device for evaluation of software quality
JPH07200981A (en) Reliability evaluating method for plant and update evaluating method therefor
Mukherjee et al. Introducing a fuzzy model for cost cognizant software test case prioritization
JPH04169849A (en) Threshold setting method for discriminating data
CN106855841B (en) System memory analysis method and device
Talib et al. Designing a measurement method for the portability non-functional requirement