JP5444939B2 - Software testing method and program - Google Patents
Software testing method and program Download PDFInfo
- Publication number
- JP5444939B2 JP5444939B2 JP2009193500A JP2009193500A JP5444939B2 JP 5444939 B2 JP5444939 B2 JP 5444939B2 JP 2009193500 A JP2009193500 A JP 2009193500A JP 2009193500 A JP2009193500 A JP 2009193500A JP 5444939 B2 JP5444939 B2 JP 5444939B2
- Authority
- JP
- Japan
- Prior art keywords
- category
- weighting
- test
- weighting ratio
- verification
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
ソフトウェアのテスト方法及びプログラムに関するものである。 The present invention relates to a software test method and program.
電子機器に搭載される集積回路は、一般的に、Verilog−HDLやVHDL(VHSIC Hardware Description Language)に代表されるハードウェア記述言語を用いて設計されている。 An integrated circuit mounted on an electronic device is generally designed using a hardware description language represented by Verilog-HDL or VHDL (VHSIC Hardware Description Language).
ハードウェア記述言語を用いて設計される集積回路は、ハードウェア記述言語で記述されたソースコードの状態で、仕様書通りの動作を行うかどうか論理検証される。詳しくは、検証作業者は、仕様書から入力データと、入力データに対する出力期待値を含むテストケースを作成する。検証装置は、テストケースについてソースコードの論理検証を行って、「良」又は「不良」の判定をする。 An integrated circuit designed using a hardware description language is logically verified to perform an operation according to the specification in the state of a source code described in the hardware description language. Specifically, the verification worker creates a test case including input data and an expected output value for the input data from the specification. The verification device performs logic verification of the source code for the test case, and determines “good” or “bad”.
つまり、検証装置は、ソフトウェアによりテストケースの入力データを処理して出力された出力データがテストケースの出力期待値と等しいか否かを判定する。検証装置は、出力データと出力期待値が等しい場合、「良」と判定し、反対に、検証装置は、出力データと出力期待値が等しくない場合、「不良」と判定する。 That is, the verification apparatus determines whether or not the output data output by processing the test case input data by software is equal to the expected output value of the test case. The verification device determines “good” when the output data and the output expected value are equal, and conversely, the verification device determines “bad” when the output data and the output expected value are not equal.
そして、検証作業者は、「不良」判定となったテストケースに基づいてソースコードの修正(デバッグ)を行う。検証装置は、テストケースについて、修正を行ったソースコードの論理検証を行って、「良」又は「不良」の判定をする。以後、全てのテストケースについて「良」判定となるまで、ソースコードの論理検証を行っていく。そして、全てのテストケースについて「良」判定になると、仕様書通りに正しくソースコードが記述されているとしてソースコードの論理検証を完了する。 Then, the verification operator corrects (debugs) the source code based on the test case that is determined to be “defective”. The verification device performs logic verification on the corrected source code for the test case, and determines “good” or “bad”. Thereafter, the logic verification of the source code is performed until all the test cases are judged as “good”. When all the test cases are judged as “good”, the logic verification of the source code is completed assuming that the source code is correctly described according to the specification.
近年、電子機器に求められる機能は複雑化および多機能化しており、それに伴い集積回路の機能も複雑化および多機能化している。これにより、集積回路のソースコードの論理検証では、テストケースの数が飛躍的に増大し、全てのテストケースについて論理検証を行う時間とコスト、及び、デバッグに要する時間とコストは膨大なものとなっている。 In recent years, functions required for electronic devices have become complicated and multifunctional, and accordingly, functions of integrated circuits have also become complicated and multifunctional. As a result, in the logic verification of the source code of the integrated circuit, the number of test cases increases dramatically, and the time and cost for performing logic verification for all test cases and the time and cost required for debugging are enormous. It has become.
そこで、従来、検証作業者は、実験計画法に沿って要因分析表及び直交表により、これまでソースコードの論理検証を行っていたテストケースを絞り込み、少ないテストケースについてソースコードの論理検証を行っていた。この結果、少ないテストケースについてソースコードの論理検証を行うだけで、これまでのソースコードの論理検証を行った効果と同等な効果を得ていた(例えば、特許文献1参照)。 Therefore, conventionally, the verification operator narrows down the test cases where the logic verification of the source code has been performed by the factor analysis table and the orthogonal table according to the experiment design method, and performs the logic verification of the source code for a small number of test cases. It was. As a result, only by performing logic verification of the source code for a small number of test cases, an effect equivalent to the effect of performing logic verification of the source code so far was obtained (for example, see Patent Document 1).
しかしながら、上記のソースコードの論理検証では、テストケースについてソースコードの論理検証を行って「不良」と判定された場合、修正されたソースコードの論理検証を全てのテストケースについて同じ順番で行っていた。 However, in the logic verification of the above source code, if the logic verification of the source code is performed for the test case and it is determined as “bad”, the logic verification of the corrected source code is performed in the same order for all the test cases. It was.
従って、ソースコードの論理検証を行って1度「良」と判定されたテストケースについて、最初の段階でソースコードの論理検証を行うことになる。しかし、ソースコードの論理検証を行っていないテストケースについてソースコードの論理検証を行って「不良」と判定される比率より、1度「良」と判定されたテストケースについて修正されたソースコードの論理検証を行って「不良」と判定される比率は低い。このため、ソースコードの論理検証を行うテストケースの順番について考慮することで、ソースコードの論理検証を行う時間をさらに短縮する余地が残されている。 Therefore, the logic verification of the source code is performed at the first stage for the test case that is determined to be “good” once by performing the logic verification of the source code. However, the test code that has been determined to be “good” once for the test cases that have been determined to be “good” from the ratio that is determined to be “bad” by performing logic verification of the source code for test cases that have not been subjected to logic verification of the source code. The rate at which logic verification is carried out to determine “bad” is low. For this reason, there is room for further shortening the time for performing the logic verification of the source code by considering the order of the test cases for performing the logic verification of the source code.
このソフトウェアのテスト方法及びプログラムは、テスト時間を短縮することを目的とする。 The purpose of this software testing method and program is to shorten the test time.
本発明の一側面によれば、ソフトウェアのテスト方法は、入力データと、前記入力データに対する出力期待値とを有するテストケースを複数作成するテストケース作成工程と、定量情報及び定性情報に基づいて前記テストケースを分類したカテゴリに対して、分類された前記テストケースのテスト結果が不良と判定される可能性を示す重み付け比率がそれぞれ設定された重み付けテーブルの各カテゴリに対する前記重み付け比率に基づいて、ソフトウェアのテストを行う前記カテゴリを選択するカテゴリ選択工程と、前記カテゴリ選択工程において選択された前記カテゴリに分類された前記テストケースについて前記ソフトウェアのテストを行うソフトウェアテスト工程と、前記ソフトウェアのテスト結果に基づいて、前記ソフトウェアのテストを行った前記カテゴリに対する前記重み付けテーブルの重み付け比率を算出し、前記重み付け比率の算出結果に基づいて前記重み付けテーブルを変更するテーブル変更工程と、複数の前記テストケースの中から選択した1つの前記テストケースの出力期待値と、前記ソフトウェアにより選択した前記テストケースの前記入力データを処理して出力された出力データとが等しいか否かを判定する判定工程と、を有し、前記重み付けテーブルは、予め設定された基準重み付け比率と、前記基準重み付け比率の上限値及び下限値と、前記ソフトウェアのテスト結果に基づいて算出される統計重み付け比率とを有し、前記カテゴリ選択工程は、前記統計重み付け比率が前記基準重み付け比率の下限値以上且つ上限値以下の場合、前記基準重み付け比率を前記重み付け比率として選択し、前記統計重み付け比率が前記基準重み付け比率の下限値より低い又は上限値より高い場合、前記統計重み付け比率を前記重み付け比率として選択する。 According to one aspect of the present invention, testing the software, and input data, and the test case creation step of creating multiple test cases with an expected output value for the input data, based on the quantitative information and qualitative information for a category of classification of the test case, weighting ratio indicating the possibility that test results classified the test case is determined to be defective is based on the weighting ratio for each category of the set weighted tables respectively a category selection step of selecting the category to test the software, and software test step for selected the software test for classified the test case to the categories in the category selection process, the software test based on the bets result, the software te Calculating the weighting ratio of the weighting table for the category subjected to preparative, wherein the table change step of changing the weighting table based on the calculation result of the weighting ratio, one of the selected from a plurality of the test cases an output expected value of the test case, have a, a determination step of determining whether or not the output data outputted by processing is equal to the input data of the test cases selected by the software, the weighting table A predetermined reference weighting ratio, an upper limit value and a lower limit value of the reference weighting ratio, and a statistical weighting ratio calculated based on a test result of the software, and the category selection step includes the statistical weighting ratio When the ratio is not less than the lower limit and not more than the upper limit of the reference weight ratio, the reference weight Select the rate as the weighting ratio, the case statistical weighting ratio is higher than the lower or upper limit value than the lower limit of the reference weighting ratio, it selects the statistical weighting ratio as the weighting ratio.
本発明の一側面によれば、ソフトウェアのテスト方法及びプログラムは、テスト時間を短縮することができる。 According to one aspect of the present invention, a test method and program for software can reduce test time.
以下、実施形態を図1〜図8に従って説明する。
図1は、ハードウェア記述言語で記述された集積回路のソースコードの論理検証を実施するためのコンピュータシステムの概略構成図である。
Hereinafter, embodiments will be described with reference to FIGS.
FIG. 1 is a schematic configuration diagram of a computer system for performing logic verification of a source code of an integrated circuit described in a hardware description language.
図1に示すように、このコンピュータ(検証装置)11は、中央処理装置(以下、CPUという)12、メモリ13、記憶装置14、表示装置15、入力装置16、及び、ドライブ装置17を備え、それらはバス18を介して相互にデータの授受を行っている。
As shown in FIG. 1, the computer (verification device) 11 includes a central processing unit (hereinafter referred to as CPU) 12, a
CPU12は、メモリ13を利用してプログラムを実行し、ソースコードの論理検証等に必要な処理を実現する。メモリ13は、各種処理を提供するために必要なプログラムとデータを格納する。メモリ13は、通常、キャッシュ・メモリ、システム・メモリおよびディスプレイ・メモリを含む。
The
表示装置15は、各種ウインドウやデータ等の表示に用いられ、これにはCRT、LCD、PDP等が用いられる。入力装置16は、ユーザからの要求や指示、パラメータの入力に用いられ、これにはキーボードおよびマウス装置(図示せず)等が用いられる。
The
記憶装置14は、通常、磁気ディスク装置、光ディスク装置、光磁気ディスク装置を含む。この記憶装置14には、ソースコードの論理検証を行うためのプログラムデータとファイルが格納されている。ファイルとしては、仕様書20、ソースコード21、要因分析表22、直交表23、テストケースファイル24、カテゴリ重み付けテーブル25、その他ソースコードの論理検証に必要なファイルが格納されている。
The
仕様書20は、検証する集積回路の動作について規定されたデータである。ソースコード21は、仕様書20に基づいてハードウェア記述言語で記述されたデータである。
要因分析表22は、ソースコード21の論理検証を行う際のパラメータとなる因子と、その因子の値である水準の2次元の表のデータである。本実施形態では、図3に示すように、要因分析表22は、仕様書20から抽出された因子F1〜Fnと、水準L1〜Lnから構成されている。
The
The factor analysis table 22 is data of a two-dimensional table of factors that are parameters when performing logical verification of the
さらに、要因分析表22は、水準L1〜Lnが最大値、最小値、同値クラス、境界値などの定量情報でカテゴリC1〜カテゴリCnに分類されている。ここで、最大値とは、検証する集積回路が正常動作可能な最大の入力値をいう。また、最小値とは、検証する集積回路が正常動作可能な最小の入力値をいう。さらに、同値クラスとは、検証する集積回路から同様な出力結果が得られる入力値の集合をいう。さらにまた、境界値とは、上記の各同値クラスの境界付近の代表値をいう。 Further, in the factor analysis table 22, the levels L1 to Ln are classified into categories C1 to Cn based on quantitative information such as maximum values, minimum values, equivalence classes, boundary values, and the like. Here, the maximum value means the maximum input value at which the integrated circuit to be verified can operate normally. The minimum value is the minimum input value at which the integrated circuit to be verified can operate normally. Further, the equivalence class refers to a set of input values from which a similar output result can be obtained from the integrated circuit to be verified. Furthermore, the boundary value refers to a representative value near the boundary of each equivalence class.
直交表23は、任意の2因子について、その水準の全ての組合せが同数回ずつ現れるという性質をもつ割り付け表のデータである。検証作業者は、直交表23に基づいて、因子と水準の全ての組合せから、特定の因子と水準の組合せに絞り込む。そして、検証作業者は、直交表23に基づいて絞り込んだ特定の因子と水準の組合せについて検証することで、因子及び水準の全ての組合せについて検証を行った場合と同様な効果を得ることができる。 The orthogonal table 23 is data of an allocation table having a property that, for any two factors, all combinations of the levels appear the same number of times. Based on the orthogonal table 23, the verification operator narrows down all combinations of factors and levels to specific factor and level combinations. Then, the verification operator can obtain the same effect as when verification is performed for all combinations of factors and levels by verifying the combinations of specific factors and levels narrowed down based on the orthogonal table 23. .
例えば、図4の表30に示すように、仕様書20から2水準(0,1)の因子A,B,Cを抽出した場合、全ての因子及び水準の組合せは「A1」〜「A8」の組合せの8通りになる。従って、検証作業者は、「A1」〜「A8」の8通りの組合せから作成された8つの入力データについてソースコード21の論理検証を行うことになる。しかし、図5に示すような「L4」と呼ばれる直交表31を用いることで、因子及び水準の組合せは「B1」〜「B4」の組合せの4通りに絞り込むことができる。
For example, as shown in Table 30 of FIG. 4, when two levels (0, 1) of factors A, B, and C are extracted from the
この場合、直交表31では、因子A,B,Cのうち任意の2因子間の水準(0,1)の組合せを全て示している。従って、検証作業者は、「B1」〜「B4」の組み合わせから作成された4つの入力データについてソースコード21の論理検証を行うだけで、因子及び水準の全ての組合せから作成された8つの入力データについてソースコード21の論理検証を行う場合と同様な効果を得ることができる。
In this case, the orthogonal table 31 shows all combinations of levels (0, 1) between any two factors among the factors A, B, and C. Therefore, the verification operator simply performs logic verification of the
テストケースファイル24は、図6に示すように、直交表23に基づいて作成された入力データと、入力データに対する出力期待値を含んだテストケースTa1〜Taj,……,Tn1〜Tnjが記憶されている。
As shown in FIG. 6, the
テストケースTa1〜Taj,……,Tn1〜Tnjは、カテゴリC1〜Cnにそれぞれ分類されている。CPU12は、カテゴリC1、カテゴリC2、……、カテゴリCnの順番で、分類されたテストケースTa1〜Taj,……,Tn1〜Tnjをテストケースファイル24から読み出すようになっている。
Test cases Ta1 to Taj,..., Tn1 to Tnj are classified into categories C1 to Cn, respectively. The
さらに、テストケースTa1〜Taj,……,Tn1〜Tnjは、カテゴリC1〜Cn毎に、「1番」から「j番」の検証実行順位Pが設定されている。CPU12は、各カテゴリC1〜Cnにおいて、検証実行順位Pの「1番」から「j番」の順番でテストケースファイル24から対応するテストケースTa1〜Taj,……,Tn1〜Tnjを読み出すようになっている。
Further, in the test cases Ta1 to Taj,..., Tn1 to Tnj, the verification execution order P from “No. 1” to “No. j” is set for each category C1 to Cn. The
つまり、CPU12は、カテゴリC1に分類されているテストケースTa1〜Tajを検証実行順位Pが「1番」のテストケースTa1、検証実行順位Pが「2番」のテストケースTa2、……、検証実行順位Pが「n番」のテストケースTajの順番で読み出す。次に、CPU12は、カテゴリC2に分類されているテストケースTb1〜Tbjを検証実行順位Pが「1番」のテストケースTb1、検証実行順位Pが「2番」のテストケースTb2、……、検証実行順位Pが「n番」のテストケースTbjの順番で読み出す。
That is, the
そして、カテゴリC3〜Cnに分類されているテストケースTc1〜Tcj、……、テストケースTn1〜Tnjについて、CPU12が、カテゴリC1,C2に続いて、テストケースTc1、……、Tcj、……、テストケースTn1、……、Tnjの順番に読み出すようになっている。
Then, for the test cases Tc1 to Tcj,..., And the test cases Tn1 to Tnj classified into the categories C3 to Cn, the
カテゴリ重み付けテーブル25は、テストケースファイル24に記憶されているどのカテゴリC1〜CnのテストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行うかを判定するためのテーブルである。
The category weighting table 25 is a table for determining which category C1 to Cn of the test cases Ta1 to Taj,..., Tn1 to Tnj stored in the
カテゴリ重み付けテーブル25は、図7に示すように、各カテゴリC1〜Cnに対して、統計重み付け比率RS1〜RSn、基準重み付け比率RK1〜RKn、上限値U1〜Un、及び、下限値LO1〜LOnが設定されている。なお、重み付け比率は、その値が高いほどソースコード21の論理検証を行って「不良」と判定される可能性が高く、その値が低いほどソースコード21の論理検証を行って「不良」と判定される可能性が低くなっている。
As shown in FIG. 7, the category weighting table 25 has statistical weighting ratios RS1 to RSn, reference weighting ratios RK1 to RKn, upper limit values U1 to Un, and lower limit values LO1 to LOn for each category C1 to Cn. Is set. The higher the weighting ratio, the higher the possibility that the logical verification of the
統計重み付け比率RS1〜RSnは、各カテゴリC1〜Cnにおいて、CPU12がソースコード21の論理検証を行って「不良」と判定されたテストケースTa1〜Taj,……,Tn1〜Tnjの数と、CPU12がソースコード21の論理検証を行ったテストケースTa1〜Taj,……,Tn1〜Tnjの数との比率をいう。
The statistical weighting ratios RS1 to RSn are the numbers of test cases Ta1 to Taj,..., Tn1 to Tnj, in which the
つまり、統計重み付け比率RS1〜RSnは、CPU12が対応するカテゴリC1〜Cnに分類されたテストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行って「不良」と判定する可能性を示している。なお、分類されたテストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行っていないカテゴリは、対応する統計重み付け比率RS1〜RSnを算出することができないため、統計重み付け比率RS1〜RSnを設定されていない。
That is, the statistical weight ratios RS1 to RSn are determined as “bad” by performing logic verification of the
また、基準重み付け比率RK1〜RKnは、CPU12が対応するカテゴリC1〜Cnに分類されたテストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行って「不良」と判定する比率を検証作業者が予め予測したものをいう。
The reference weighting ratios RK1 to RKn are determined as “bad” by performing logic verification of the
因みに、基準重み付け比率RK1〜RKnは、基準重み付け比率RK1、基準重み付け比率RK2、・・・・・・、基準重み付け比率RKnの順でその比率が高くなっている。言い換えると、検証作業者は、テストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行うと、基準重み付け比率RK1に対応するカテゴリC1、基準重み付け比率RK2に対応するカテゴリC2、……、基準重み付け比率RKnに対応するカテゴリCnの順で、分類されたテストケースTa1〜Taj,……,Tn1〜Tnjについて「不良」と判定される可能性が高いと予測している。
Incidentally, the reference weight ratios RK1 to RKn are higher in the order of the reference weight ratio RK1, the reference weight ratio RK2,..., And the reference weight ratio RKn. In other words, when the verification operator performs logic verification of the
CPU12は、各カテゴリC1〜Cnにおいて、統計重み付け比率RS1〜RSn又は基準重み付け比率RK1〜RKnのいずれかをカテゴリ重み付け比率として選択する。
詳述すると、各カテゴリC1〜Cnにおいて、統計重み付け比率RS1〜RSnが下限値LO1〜LOn(<基準重み付け比率RS1〜RSn)より低い場合、CPU12は、統計重み付け比率RS1〜RSnをカテゴリ重み付け比率として選択する。また、各カテゴリC1〜Cnにおいて、統計重み付け比率RS1〜RSnが下限値LO1〜LOn(<基準重み付け比率RS1〜RSn)以上、且つ、上限値U1〜Un(>基準重み付け比率RS1〜RSn)以下の場合、CPU12は、基準重み付け比率RS1〜RSnをカテゴリ重み付け比率として選択する。さらに、各カテゴリC1〜Cnにおいて、統計重み付け比率RS1〜RSnが上限値U1〜Un(>基準重み付け比率RS1〜RSn)より高い場合、CPU12は、統計重み付け比率RS1〜RSnをカテゴリ重み付け比率として選択する。
CPU12 selects either statistical weight ratio RS1-RSn or reference | standard weight ratio RK1-RKn as a category weight ratio in each category C1-Cn.
More specifically, in each category C1 to Cn, when the statistical weight ratios RS1 to RSn are lower than the lower limit values LO1 to LOn (<reference weight ratios RS1 to RSn), the
すなわち、CPU12は、テストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行った結果、予測した基準重み付け比率RS1〜RSn付近(上限値U1〜Unから下限値LO1〜LOn)に統計重み付け比率RS1〜RSnが入っていれば、基準重み付け比率RS1〜RSnをカテゴリ重み付け比率として選択する。一方、CPU12は、テストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行った結果、予測した基準重み付け比率RS1〜RSn付近(上限値U1〜Unから下限値LO1〜LOn)に統計重み付け比率RS1〜RSnが入っていないと、統計重み付け比率RS1〜RSnをカテゴリ重み付け比率としてそれぞれ選択する。
That is, as a result of logical verification of the
従って、CPU12は、テストケースファイル24からソースコード21の論理検証を行って「不良」と判定される可能性が高いカテゴリC1〜Cnの順番で、分類されたテストケースTa1〜Taj,……,Tn1〜Tnjを読み出すようになっている。
Therefore, the
そして、CPU12は、入力装置16による指示に応答して、記憶装置14に格納されている。CPU12は、プログラムデータ、ファイルのデータをメモリ13へ転送し、それを実行する。
The
ドライブ装置17は、記録媒体19を駆動し、その記憶内容にアクセスする。CPU12は、ドライブ装置17を介して記録媒体19からプログラムデータを読み出し、それを記憶装置14に格納する。
The
記録媒体19としては、磁気テープ(MT)、メモリカード、フレキシブルディスク、光ディスク(CD−ROM、DVD−ROM、…)、光磁気ディスク(MO、MD、…)等、任意のコンピュータ読み取り可能な記録媒体を使用することができる。この記録媒体19に、上述のプログラムデータを格納しておき、必要に応じて、メモリ13にロードして使用することもできる。
As the
尚、記録媒体19には、通信媒体を介してアップロード又はダウンロードされたプログラムデータを記録した媒体、ディスク装置を含む。更に、コンピュータによって直接実行可能なプログラムを記録した記録媒体だけでなく、一旦他の記録媒体(ハードディスク等)にインストールすることによって実行可能となるようなプログラムを記録した記録媒体や、暗号化されたり、圧縮されたりしたプログラムを記録した記録媒体も含む。
The
次に、上記の検証装置11を用いて、仕様書20に基づいてVerilog−HDLやVHDLなどのハードウェア記述言語で記述されたソースコード21の論理検証を行う処理について図2に従って説明する。
Next, processing for performing logic verification of the
まず、検証作業者は、入力装置16を操作し、仕様書20から図3に示す要因分析表22を作成する(ステップS1)。すなわち、検証作業者は、仕様書20から、ソースコード21の論理検証を行いたい集積回路の動作において影響を及ぼすパラメータと、そのパラメータにどのような値があるかを抽出している。また、検証作業者は、抽出した水準L1〜Lnを最大値、最小値、同値クラス、境界値などの定量情報でカテゴリC1〜Cnに分類する。次に、検証作業者は、抽出した水準L1〜LnがどのカテゴリC1〜Cnに分類されるかを要因分析表22に記述する。そして、検証作業者は、作成した要因分析表22を記憶装置14に格納する。
First, the verification operator operates the
そして、検証作業者は、入力装置16を操作し、ステップS1において作成して記憶装置14に格納した要因分析表22に基づいて直交表23を作成する(ステップS2)。
つまり、要因分析表22の因子F1〜Fn及び水準L1〜Lnの全ての組合せについて入力データを作成すると莫大な数になってしまう。このため、作成した莫大な数の入力データについてソースコード21の論理検証を行うと、ソースコード21の論理検証の検証時間は増大してしまう。そこで、直交表23を用いて因子F1〜Fn及び水準L1〜Lnの組合せを絞り込み、ソースコード21の論理検証を行う入力データの数を削減している。そして、検証作業者は、作成した直交表23を記憶装置14に格納する。
Then, the verification operator operates the
That is, if input data is created for all combinations of the factors F1 to Fn and the levels L1 to Ln in the factor analysis table 22, the number becomes enormous. For this reason, if the logic verification of the
次に、検証作業者は、入力装置16を操作し、ステップS2において生成した直交表23に基づいて、テストケースを生成する(ステップS3)。すなわち、まず、検証作業者は、入力装置16を操作し、記憶装置14から直交表23を読み出す。次に、検証作業者は、直交表23の因子及び水準の組合せから入力データを作成するとともに、入力データに対する出力期待値を算出する。続いて、検証作業者は、入力データと、入力データに対する出力期待値を含んだテストケースを作成する。
Next, the verification operator operates the
さらに、検証作業者は、作成したテストケースを、対応する入力データに含まれる水準が分類されているカテゴリC1〜Cnに分類する。具体的には、検証作業者は、カテゴリC1にテストケースTa1〜Tajを分類し、カテゴリC2にテストケースTb1〜Tbjを分類し、・・・・・・、カテゴリCnにテストケースTn1〜Tnjを分類する。 Further, the verification operator classifies the created test cases into categories C1 to Cn in which the levels included in the corresponding input data are classified. Specifically, the verification worker classifies the test cases Ta1 to Taj into the category C1, classifies the test cases Tb1 to Tbj into the category C2, and..., Categorizes the test cases Tn1 to Tnj into the category Cn. Classify.
次に、検証作業者は、カテゴリC1〜Cn毎に分類されたテストケースTa1〜Taj,Tb1〜Tbj,……,Tn1〜Tnjを、図6に示すような順番でテストケースファイル24に格納する。
Next, the verification worker stores the test cases Ta1 to Taj, Tb1 to Tbj,..., Tn1 to Tnj classified into the categories C1 to Cn in the
そして、CPU12は、図7に示すカテゴリ重み付けテーブル25に基づいて、ステップS3においてテストケースファイル24に格納されたテストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行うカテゴリ(検証実行カテゴリ)を設定する(ステップS4、カテゴリ選択工程)。
Then, the
この時点では、テストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行っていないため、統計重み付け比率RS1〜RSnが設定されていない。これにより、CPU12は、各カテゴリC1〜Cnにおいて、基準重み付け比率RS1〜RSnをカテゴリ重み付け比率としてそれぞれ選択する。
At this time, since the logical verification of the
因みに、テストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行っている場合、CPU12は、検証実行カテゴリとなったカテゴリC1〜Cnでは、基準重み付け比率RS1〜RSn又は統計重み付け比率RS1〜RSnのいずれかをカテゴリ重み付け比率として選択している。
Incidentally, when the logic verification of the
続いて、CPU12は、カテゴリ重み付けテーブル25においてカテゴリ重み付け比率の最も高いカテゴリC1〜Cnを検証実行カテゴリとして設定する。すなわち、CPU12は、分類されているテストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行って「不良」と判定する可能性が最も高いカテゴリC1〜Cnを検証実行カテゴリとして設定している。
Subsequently, the
次に、CPU12は、検証実行カテゴリとなったカテゴリC1〜Cnに分類されたテストケースファイル24のテストケースTa1〜Taj,……,Tn1〜Tnjを検証実行順位Pの高い順番で読み出す。
Next, the
この時点では、CPU12は、カテゴリ重み付けテーブル25においてカテゴリ重み付け比率の最も高いカテゴリC1を検証実行カテゴリとして設定する。次に、CPU12は、検証実行カテゴリとなったカテゴリC1に分類されたテストケースファイル24のテストケースTa1〜Tajを検証実行順位Pの高い順番で読み出す。
At this time, the
そして、CPU12は、読み出した検証実行カテゴリのカテゴリC1〜Cnに分類されたテストケースTa1〜Taj,……,Tn1〜Tnj(この場合、カテゴリC1に分類されたテストケースTa1〜Taj)についてソースコード21の論理検証を行う(ステップS5、ソフトウェアテスト工程)。
The
従って、CPU12は、ソースコード21の論理検証を行って「不良」と判定される可能性が最も高いテストケースTa1〜Taj,……,Tn1〜Tnjから先にソースコード21の論理検証を行うことで、少ない検証回数で「不良」と判定されるテストケースTa1〜Taj,……,Tn1〜Tnjを検出している。
Accordingly, the
この結果、CPU12は、「良」と判定される可能性が高いテストケースTa1〜Taj,……,Tn1〜Tnjについてのソースコード21の論理検証が後回しになり、そのテストケースTa1〜Taj,……,Tn1〜Tnjについて仕様書20の通りに正しく記述されていないソースコード21の論理検証を行う必要がなくなる。これに伴い、CPU12は、仕様書20の通りに正しく記述されていないソースコード21の論理検証の検証回数を削減することができる。
As a result, the
そして、CPU12は、検証実行カテゴリのカテゴリC1〜Cnに分類されたテストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行うと、その検証結果をカテゴリ重み付けテーブル25に反映する(ステップS6、テーブル変更工程)。
Then, when the
すなわち、CPU12は、検証実行カテゴリのカテゴリC1〜Cnに分類されるテストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行った結果を、その検証実行カテゴリのカテゴリC1〜Cnに対する統計重み付け比率RS1〜RSnに反映する。
That is, the
具体的には、CPU12は、検証実行カテゴリのカテゴリC1〜Cnに分類されるテストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行った結果、「不良」と判定されるテストケースTa1〜Taj,……,Tn1〜Tnjがないとき、検証実行カテゴリのカテゴリC1〜Cnに対する統計重み付け比率RS1〜RSnを「0%」にする。
Specifically, the
一方、CPU12は、検証実行カテゴリのカテゴリC1〜Cnに分類されるテストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行った結果、「不良」と判定されるテストケースTa1〜Taj,……,Tn1〜Tnjがあるとき、「不良」と判定されたテストケースTa1〜Taj,……,Tn1〜Tnjの数に応じて、検証実行カテゴリのカテゴリC1〜Cnに対する統計重み付け比率RS1〜RSnを増減する。
On the other hand, the
詳しくは、上記のように、統計重み付け比率RS1〜RSnは、各カテゴリC1〜Cnにおいて、CPU12がソースコード21の論理検証を行って「不良」と判定されたテストケースTa1〜Taj,……,Tn1〜Tnjの数と、CPU12がソースコード21の論理検証を行ったテストケースTa1〜Taj,……,Tn1〜Tnjの数との比率である。
Specifically, as described above, the statistical weighting ratios RS1 to RSn are the test cases Ta1 to Taj,..., In which the
このため、CPU12は、「不良」と判定されるテストケースTa1〜Taj,……,Tn1〜Tnjが多いほど、検証実行カテゴリのカテゴリC1〜Cnに対する統計重み付け比率RS1〜RSnを高くする。反対に、CPU12は、「不良」と判定されるテストケースTa1〜Taj,……,Tn1〜Tnjが少ないほど、検証実行カテゴリのカテゴリC1〜Cnに対する統計重み付け比率RS1〜RSnを低くする。
Therefore, the
この時点では、CPU12は、検証実行カテゴリであるカテゴリC1に分類されるテストケースTa1〜Tajについてソースコード21の論理検証を行った結果を、カテゴリC1に対する統計重み付け比率RS1に反映している。
At this time, the
そして、CPU12は、ステップS5において検証実行カテゴリのカテゴリC1〜Cnに分類されるテストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行った結果、「不良」と判定されたテストケースTa1〜Taj,……,Tn1〜Tnjがあるかどうかを検出する(ステップS7)。
Then, as a result of logical verification of the
そして、CPU12が「不良」と判定されたテストケースTa1〜Taj,……,Tn1〜Tnjを検出する場合(ステップS7でYES)、検証作業者は、「不良」と判定されたテストケースTa1〜Taj,……,Tn1〜Tnjから不良原因を判断する。次に、検証作業者は、その不良原因がソースコード21に記述された論理が仕様書20の通りに記述されていなかったこと(論理障害)によるものか否かを判断する(ステップS8)。なお、論理障害以外の不良原因としては、テストケースTa1〜Taj,……,Tn1〜Tnjの入力データ及び出力期待値の内容に間違いがある場合、又は、仕様書20の内容に間違いがある場合がある。
When the
すなわち、検証作業者は、「不良」と判定されたテストケースTa1〜Taj,……,Tn1〜Tnjに基づいて、不良原因がソースコード21の記述間違いによるものか、又は、テストケースTa1〜Taj,……,Tn1〜Tnjの内容及び仕様書20の内容の間違いによるものかを判断している。言い換えると、検証作業者は、「不良」と判定されたテストケースTa1〜Taj,……,Tn1〜Tnjに基づいて、仕様書20、ソースコード21、又は、テストケースTa1〜Taj,……,Tn1〜Tnjのうち、どの記述又は内容を修正するかを判断している。
That is, the verification operator determines whether the cause of the failure is due to a description error in the
そして、不良原因が論理障害によるものと判断すると(ステップS8でYES)、検証作業者は、入力装置16を操作し、記憶装置14からソースコード21を読み出してソースコード21の記述に間違いがある箇所を修正する(ステップS9)。
If it is determined that the cause of failure is due to a logical failure (YES in step S8), the verification operator operates the
続いて、修正したソースコード21を記憶装置14に格納すると、CPU12は、ステップS4に戻り、再度、カテゴリ重み付けテーブル25に基づいてカテゴリ重み付け比率が最も高い検証実行カテゴリとしてのカテゴリC1〜Cnを設定する。
Subsequently, when the modified
この時点では、CPU12は、カテゴリ重み付けテーブル25のカテゴリC1に対する統計重み付け比率RS1に、カテゴリC1に分類されたテストケースTa1〜Tajについてソースコード21の論理検証が行われた結果を反映している。CPU12は、カテゴリC1において、統計重み付け比率RS1と基準重み付け比率RK1を比較し、その比較結果に応じて統計重み付け比率RS1又は基準重み付け比率RK1のいずれかをカテゴリ重み付け比率として選択する。
At this time, the
CPU12は、統計重み付け比率RS1が基準重み付け比率RK1の上限値U1以上、又は、統計重み付け比率RS1が基準重み付け比率RK1の下限値LO1〜LOn以下のとき、基準重み付け比率RK1をカテゴリ重み付け比率として選択する。この場合、CPU12は、カテゴリC1において基準重み付け比率RK1を選択したため、カテゴリC1〜Cnのカテゴリ重み付け比率に変更ない。
The
つまり、CPU12は、カテゴリC1に分類されたテストケースTa1〜Tajについてソースコード21の論理検証を行った結果、統計重み付け比率RS1が基準重み付け比率RK1の上限値U1から下限値LO1の範囲に入って検証作業者の予測通りになったため、基準重み付け比率RK1としてのカテゴリC1のカテゴリ重み付け比率を変更しない。この場合、CPU12は、検証実行カテゴリに変更がないため、カテゴリC1に分類されたテストケースTa1〜Tajについてソースコード21の論理検証を再度行う(ステップS5)。
That is, as a result of logical verification of the
一方、統計重み付け比率RS1が基準重み付け比率RK1の上限値U1より低い、又は、統計重み付け比率RS1が基準重み付け比率RK1の下限値LO1より高い場合、CPU12は、統計重み付け比率RS1をカテゴリ重み付け比率として選択する。
On the other hand, when the statistical weighting ratio RS1 is lower than the upper limit value U1 of the reference weighting ratio RK1 or the statistical weighting ratio RS1 is higher than the lower limit value LO1 of the reference weighting ratio RK1, the
すなわち、CPU12は、カテゴリC1に分類されたテストケースTa1〜Tajについてソースコード21の論理検証を行った結果、統計重み付け比率RS1が予測した基準重み付け比率RK1の上限値U1から下限値LO1以内に入らなかったため、統計重み付け比率RS1をカテゴリ重み付け比率として選択する。
That is, as a result of logical verification of the
これにより、カテゴリC1のカテゴリ重み付け比率がカテゴリC2のカテゴリ重み付け比率より高い場合、カテゴリC1のカテゴリ重み付け比率が最も高いため、カテゴリC1を検証実行カテゴリとして再度設定する。この場合、CPU12は、検証実行カテゴリに変更がないため、カテゴリC1に分類されたテストケースTa1〜Tajについてソースコード21の論理検証を再度行う(ステップS5)。
Thereby, when the category weighting ratio of the category C1 is higher than the category weighting ratio of the category C2, since the category weighting ratio of the category C1 is the highest, the category C1 is set again as the verification execution category. In this case, since there is no change in the verification execution category, the
換言すると、CPU12は、検証実行カテゴリのカテゴリC1に分類されたテストケースTa1〜Tajについてソースコード21の論理検証を行った結果、カテゴリC1のカテゴリ重み付け比率が高くなっても、カテゴリC1のカテゴリ重み付け比率が最も高いため、カテゴリC1としての検証実行カテゴリを維持している。
In other words, the
反対に、カテゴリC1のカテゴリ重み付け比率がカテゴリC2のカテゴリ重み付け比率より低い場合、カテゴリC2のカテゴリ重み付け比率が最も高くなるため、CPU12は、カテゴリC2を検証実行カテゴリとして設定する。この場合、CPU12は、検証実行カテゴリのカテゴリC2に分類されたテストケースTb1〜Tbjについてソースコード21の論理検証を行う(ステップS5)。
On the contrary, when the category weighting ratio of category C1 is lower than the category weighting ratio of category C2, the category weighting ratio of category C2 is the highest, so
すなわち、検証実行カテゴリのカテゴリC1に分類されたテストケースTa1〜Tajについてソースコード21の論理検証を行った結果、カテゴリC1のカテゴリ重み付け比率が2番目に高かったカテゴリC2のカテゴリ重み付け比率より低くなって、CPU12は、検証実行カテゴリをカテゴリC1からカテゴリC2に変更している。
That is, as a result of logical verification of the
「不良」と判定されたテストケースTa1〜Taj,……,Tn1〜Tnjに基づいて不良原因が論理障害によるものではないと判断すると(ステップS8でNO)、検証作業者は、ステップS1に戻って、入力装置16を操作し、不良原因を踏まえて仕様書20又は要因分析表22を再度作成する。
If it is determined that the cause of failure is not due to a logical failure based on the test cases Ta1 to Taj,..., Tn1 to Tnj determined as “defective” (NO in step S8), the verification operator returns to step S1. Then, the
つまり、検証作業者は、仕様書20又は要因分析表22の内容に間違いがあったため、仕様書20又は要因分析表22を修正する。検証作業者は、仕様書20及び要因分析表22に基づいて、直交表23及びテストケースTa1〜Taj,……,Tn1〜Tnjを再度作成し、新たに作成したテストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行うようになっている。
That is, the verification operator corrects the
「不良」と判定されたテストケースTa1〜Taj,……,Tn1〜Tnjを検出しない場合(ステップS7でNO)、CPU12は、テストケースファイル24に記憶されているテストケースTa1〜Taj,……,Tn1〜Tnjが全て「良」と判定されたかどうかを判断する(ステップS10)。そして、CPU12は、「良」と判定されていないテストケースがある場合(ステップS10でYES)、再度、カテゴリ重み付けテーブル25に基づいてカテゴリ重み付け比率が最も高い検証実行カテゴリのカテゴリC1〜Cnを設定する(ステップS4)。
When the test cases Ta1 to Taj,..., Tn1 to Tnj determined as “bad” are not detected (NO in step S7), the
この時点で、CPU12は、カテゴリ重み付けテーブル25のカテゴリC1に対する統計重み付け比率RS1に、カテゴリC1に分類されたテストケースTa1〜Tajについてソースコード21の論理検証を行った結果を反映している。
At this time, the
この場合、カテゴリC1に分類されたテストケースTa1〜Tajについてソースコード21の論理検証を行った結果、全てのテストケースTa1〜Tajについて「良」と判定されたため、CPU12は、カテゴリC1の統計重み付け比率RS1を「0%」にしている。これにより、CPU12は、カテゴリC1において、「0%」の統計重み付け比率RS1をカテゴリ重み付け比率として選択する。
In this case, as a result of performing logic verification of the
従って、カテゴリC1のカテゴリ重み付け比率が、カテゴリC2のカテゴリ重み付け比率より低くなる。この結果、CPU12は、検証実行カテゴリをカテゴリC2に設定し(ステップS4)、カテゴリC2に分類されるテストケースTb1〜Tbjについてソースコード21の論理検証を行う(ステップS5)。
Therefore, the category weight ratio of category C1 is lower than the category weight ratio of category C2. As a result, the
換言すると、CPU12は、カテゴリC1に分類されたテストケースTa1〜Tajについてソースコード21の論理検証を行って問題がなかったため、2番目にカテゴリ重み付け比率が高かったカテゴリC2に分類されるテストケースTb1〜Tbjについてソースコード21の論理検証を行うようにしている。
In other words, the
すなわち、CPU12は、ステップS4→ステップS5→ステップS6→ステップS7→ステップS10の順番で処理を繰り返し、テストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行っていく。その後、CPU12は、「不良」と判定されるテストケースTa1〜Taj,……,Tn1〜Tnjを検出するまで(ステップS7でYES)、最初の段階のカテゴリ重み付け比率が高いカテゴリC1〜Cnの順番で、そのカテゴリC1〜Cnに対応するテストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行うようになっている。
That is, the
この場合、CPU12は、それまでにソースコード21の論理検証を行った検証結果を、ソースコード21の論理検証を行ったテストケースTa1〜Taj,……,Tn1〜Tnjが分類されたカテゴリC1〜Cnに対する統計重み付け比率RS1〜RSnに反映している(ステップS6)。
In this case, the
続いて、CPU12は、カテゴリ重み付けテーブル25のカテゴリC1〜Cnのカテゴリ重み付け比率が最も高いカテゴリC1〜Cnを検証実行カテゴリとして再度設定する(ステップS4)。つまり、CPU12は、「不良」と判定されたテストケースTa1〜Taj,……,Tn1〜Tnjが分類されているカテゴリC1〜Cn、又は、そのカテゴリC1〜Cnの次にカテゴリ重み付け比率が高かったカテゴリC1〜Cnのいずれかを検証実行カテゴリとして設定する。
Subsequently, the
その後、CPU12は、ステップS4→ステップS5→ステップS6→ステップS7→ステップS10の順番で処理を繰り返し、テストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行っていく。その後、CPU12は、「不良」と判定されるテストケースTa1〜Taj,……,Tn1〜Tnjを検出するまで、最初の段階のカテゴリ重み付け比率が高いカテゴリC1〜Cnの順番で、そのカテゴリC1〜Cnに対応するテストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行うようになっている。
Thereafter, the
そして、テストケースファイル24に記憶されているテストケースTa1〜Taj,……,Tn1〜Tnjが全て「良」と判定されると(ステップS10でNO)、CPU12は、仕様書20の通りにソースコード21が正しく記述されていると判断してソースコード21の論理検証を完了する。
When the test cases Ta1 to Taj,..., Tn1 to Tnj stored in the
図8に示す波形50,51は、一般的に「バグ曲線」と呼ばれ、ソースコード21の論理検証期間において、検出する仕様書20、ソースコード21、及び、要因分析表22の間違いを検出した累積検出件数を図示したものである。
ソースコード21の論理検証等のソフトウェアの検証では、バグ(本実施形態では、仕様書20、ソースコード21、及び、要因分析表22の間違い)は、検証の初期段階で多く検出され、その後、累積検出数が徐々に収束していく傾向がある。このようなバグ曲線では、ソフトウェアのテストを行ってバグの累積検出数がなだらかになる付近の目標累積検出数Dに到達すると、ソフトウェアの品質が安定していると判定することができる。
In software verification such as logic verification of the
そこで、本実施形態では、ソースコード21の論理検証を行ってテストケースTa1〜Taj,……,Tn1〜Tnjについて全て「良」と判定されると、仕様書20、ソースコード21、及び、要因分析表22の間違いを検出した累積検出数が、目標累積検出数Dに到達するようになっている。
Therefore, in the present embodiment, when logic verification of the
従来、テストケースTa1〜Taj,……,Tn1〜Tnjの順番を変更せずにソースコード21の論理検証を行うと、バグ曲線は図8に示す波形50のようになっていた。
本実施形態では、CPU12が検証カテゴリとなったカテゴリC1〜Cnに分類されるテストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行う毎に、カテゴリ重み付けテーブル25のカテゴリC1〜Cnに対するカテゴリ重み付け比率に基づいて、カテゴリC1〜Cnの中から検証カテゴリを設定している。
Conventionally, when the logic verification of the
In this embodiment, every time the
これにより、CPU12は、その時々で、最も「不良」と判定される可能性が高いテストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行うことができるため、少ない検証回数で仕様書20、ソースコード21、及び、要因分析表22の間違いを検証することができる。
As a result, the
従って、従来よりも少ない検証回数でソースコード21の論理検証を完了することができるとともに、図8に示す波形51のように、従来に比べて早く目標累積検出数Dに到達し、ソースコード21の論理検証の検証時間を短縮することができる。
Accordingly, the logic verification of the
以上記述したように、本実施の形態によれば、以下の効果を奏する。
(1)テストケースTa1〜Taj,……,Tn1〜Tnjを分類したカテゴリC1〜Cnに対して、統計重み付け比率RS1〜RSn、基準重み付け比率RK1〜RKn、上限値U1〜Un、下限値LO1〜LOnが設定されたカテゴリ重み付けテーブル25を設けた。CPU12は、各カテゴリC1〜Cnにおいて、基準重み付け比率RK1〜RKnの上限値U1〜Unから下限値LO1〜LOnの範囲に統計重み付け比率RS1〜RSnが入っている否かに応じて、基準重み付け比率RK1〜RKn又は統計重み付け比率RS1〜RSnのいずれかをカテゴリ重み付け比率として設定するようにした。次に、CPU12は、カテゴリ重み付け比率の最も高いカテゴリ重み付け比率のカテゴリC1〜Cnを検証実行カテゴリとして設定した。続いて、CPU12は、検証実行カテゴリとなったカテゴリC1〜Cnに分類されたテストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行うようにした。
As described above, according to the present embodiment, the following effects can be obtained.
(1) For categories C1 to Cn into which test cases Ta1 to Taj,..., Tn1 to Tnj are classified, statistical weighting ratios RS1 to RSn, reference weighting ratios RK1 to RKn, upper limit values U1 to Un, lower limit values LO1 to LO1 A category weighting table 25 in which LOn is set is provided. In each category C1 to Cn, the
従って、CPU12は、不良と判定される可能性が高いテストケースTa1〜Tnjについてソースコード21の論理検証を行うことができるため、少ない検証回数で不良と判定されるテストケースTa1〜Taj,……,Tn1〜Tnjを検出することができる。これに伴い、ソースコード21の論理検証の検証時間を短縮することができる。
Therefore, since the
(2)さらに、CPU12は、ソースコード21の論理検証を行った結果を、カテゴリ重み付けテーブル25の統計重み付け比率に反映するようにした。
従って、CPU12は、検証実行カテゴリとなったカテゴリC1〜Cnに分類されたテストケースTa1〜Taj,……,Tn1〜Tnjについてソースコード21の論理検証を行う毎に、その検証結果が反映されたカテゴリ重み付けテーブル25に基づいて検証実行カテゴリを設定することができる。この結果、CPU12は、さらに少ない検証回数で不良と判定されるテストケースTa1〜Taj,……,Tn1〜Tnjを検出することができる。これに伴い、ソースコード21の論理検証の検証時間をさらに短縮することができる。
(2) Further, the
Therefore, each time the
尚、上記実施の形態は、以下の態様で実施してもよい。
・本実施形態では、ハードウェア記述言語で記述された集積回路のソースコードの論理検証に具体化していたが、ソフトウェアであればそのテスト方法に違いはないため、具体化するソフトウェアは特に制限されない。
In addition, you may implement the said embodiment in the following aspects.
In the present embodiment, the logic verification of the source code of the integrated circuit described in the hardware description language has been embodied, but since there is no difference in the test method as long as it is software, the software to be embodied is not particularly limited. .
・本実施形態では、検証作業者は、水準L1〜Lnを最大値、最小値、同値クラス、境界値などの定量情報に基づいてカテゴリC1〜Cnに分類した。これに限らず、因子F1〜Fnを定性情報に基づいてカテゴリC1〜Cnに分類してもよい。 In the present embodiment, the verification operator classifies the levels L1 to Ln into the categories C1 to Cn based on quantitative information such as the maximum value, the minimum value, the equivalence class, and the boundary value. Not limited to this, the factors F1 to Fn may be classified into categories C1 to Cn based on qualitative information.
・本実施形態では、CPU12は、検証実行カテゴリを、カテゴリ重み付けテーブル25の統計重み付け比率RS1〜RSnが最も高いカテゴリC1〜Cnに設定していた。これに限らず、検証カテゴリを、カテゴリ重み付けテーブル25の統計重み付け比率RS1〜RSnが高い複数のカテゴリC1〜Cnに設定してもよい。
In the present embodiment, the
11 コンピュータ
20 設計仕様(仕様書)
21 ソフトウェア(ソースコード)
25 重み付けテーブル(カテゴリ重み付けテーブル)
C1〜Cn カテゴリ
LO1〜LOn 下限値
RK1〜RKn 基準重み付け比率
RS1〜RSn 統計重み付け比率
Ta1〜Taj,……,Tn1〜Tnj テストケース
U1〜Un 上限値
11
21 Software (source code)
25 Weighting table (category weighting table)
C1 to Cn Category LO1 to LOn Lower limit value RK1 to RKn Standard weighting ratio RS1 to RSn Statistical weighting ratio Ta1 to Taj, ..., Tn1 to Tnj Test cases U1 to Un Upper limit value
Claims (4)
定量情報及び定性情報に基づいて前記テストケースを分類したカテゴリに対して、分類された前記テストケースのテスト結果が不良と判定される可能性を示す重み付け比率がそれぞれ設定された重み付けテーブルの各カテゴリに対する前記重み付け比率に基づいて、ソフトウェアのテストを行う前記カテゴリを選択するカテゴリ選択工程と、
前記カテゴリ選択工程において選択された前記カテゴリに分類された前記テストケースについて前記ソフトウェアのテストを行うソフトウェアテスト工程と、
前記ソフトウェアのテスト結果に基づいて、前記ソフトウェアのテストを行った前記カテゴリに対する前記重み付けテーブルの重み付け比率を算出し、前記重み付け比率の算出結果に基づいて前記重み付けテーブルを変更するテーブル変更工程と、
複数の前記テストケースの中から選択した1つの前記テストケースの出力期待値と、前記ソフトウェアにより選択した前記テストケースの前記入力データを処理して出力された出力データとが等しいか否かを判定する判定工程と、
を有し、
前記重み付けテーブルは、
予め設定された基準重み付け比率と、前記基準重み付け比率の上限値及び下限値と、前記ソフトウェアのテスト結果に基づいて算出される統計重み付け比率とを有し、
前記カテゴリ選択工程は、
前記統計重み付け比率が前記基準重み付け比率の下限値以上且つ上限値以下の場合、前記基準重み付け比率を前記重み付け比率として選択し、
前記統計重み付け比率が前記基準重み付け比率の下限値より低い又は上限値より高い場合、前記統計重み付け比率を前記重み付け比率として選択する
ことを特徴とするソフトウェアのテスト方法。 And input data, and the test case creation step of creating multiple test cases with an expected output value for the input data,
For a category of classification of the test case based on the quantitative information and the qualitative information, each of the classified the test weighting table which case the test results weighting ratio indicating the likelihood that is determined to be defective is set respectively based on the weighting ratio for a category, the category selection step of selecting the category to test the software,
A software test step of testing the software for the test cases classified in the category selected in the category selection step;
Based on the test results of the software to calculate the weighting ratio of the weighting table for the categories tested of the software, the table change step of changing the weighting table based on the calculation result of the weighting ratio ,
Determine whether output expected value of one test case selected from a plurality of test cases is equal to output data output by processing the input data of the test case selected by the software A determination step to
I have a,
The weighting table is
A preset reference weighting ratio, an upper limit value and a lower limit value of the reference weighting ratio, and a statistical weighting ratio calculated based on a test result of the software,
The category selection step includes:
When the statistical weighting ratio is not less than the lower limit value and not more than the upper limit value of the reference weighting ratio, the reference weighting ratio is selected as the weighting ratio,
The software testing method , wherein the statistical weighting ratio is selected as the weighting ratio when the statistical weighting ratio is lower than a lower limit value or higher than an upper limit value of the reference weighting ratio .
前記重み付けテーブルの各カテゴリに対する前記重み付け比率のうち、最も高い前記重み付け比率のカテゴリを選択することを特徴とする請求項1に記載のソフトウェアのテスト方法。 Before Symbol category selection process,
2. The software testing method according to claim 1, wherein a category having the highest weighting ratio among the weighting ratios for each category of the weighting table is selected.
プログラミング言語又はハードウェア記述言語で記述されたソースコードであることを特徴とする請求項1又は2に記載のソフトウェアのテスト方法。 Before Symbol software,
3. The software test method according to claim 1 , wherein the source code is a source code described in a programming language or a hardware description language.
定量情報及び定性情報に基づいて前記テストケースを分類したカテゴリに対して、分類された前記テストケースのテスト結果が不良と判定される可能性を示す予め設定された基準重み付け比率と、前記基準重み付け比率の上限値及び下限値と、ソフトウェアのテスト結果に基づいて算出される統計重み付け比率とを有する重み付けテーブルの前記統計重み付け比率が前記基準重み付け比率の下限値以上且つ上限値以下の場合、前記基準重み付け比率を前記重み付け比率として選択し、
前記重み付けテーブルの前記統計重み付け比率が前記基準重み付け比率の下限値より低い又は上限値より高い場合、前記統計重み付け比率を前記重み付け比率として選択し、
選択された前記カテゴリに分類された前記テストケースについて前記ソフトウェアのテストを行い、
前記ソフトウェアのテスト結果に基づいて、前記ソフトウェアのテストを行った前記カテゴリに対する前記重み付けテーブルの前記統計重み付け比率を算出し、
前記統計重み付け比率の算出結果に基づいて前記重み付けテーブルを変更し、
複数の前記テストケースの中から選択した1つの前記テストケースの出力期待値と、前記ソフトウェアにより選択した前記テストケースの前記入力データを処理して出力された出力データとが等しいか否かを判定する
処理をコンピュータに実行させることを特徴とするプログラム。 Create multiple test cases with the input data and the expected output value for the input data,
A reference weight ratio set in advance indicating the possibility that the test result of the classified test case is determined to be defective for the category in which the test case is classified based on quantitative information and qualitative information; and the reference weight When the statistical weighting ratio of the weighting table having the upper limit value and the lower limit value of the ratio and the statistical weighting ratio calculated based on the test result of the software is not less than the lower limit value and not more than the upper limit value of the reference weighting ratio, the reference Select a weighting ratio as the weighting ratio,
When the statistical weighting ratio of the weighting table is lower than the lower limit value or higher than the upper limit value of the reference weighting ratio, the statistical weighting ratio is selected as the weighting ratio,
There line testing of the software for the test case that has been classified as selected has been the category,
Based on the test results of the previous SL software, it calculates the statistical weighting ratio of the weighting table for the categories tested of the software,
Changing the weighting table based on the calculation result of the statistical weighting ratio ;
Determine whether output expected value of one test case selected from a plurality of test cases is equal to output data output by processing the input data of the test case selected by the software Do
A program that causes a computer to execute processing .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009193500A JP5444939B2 (en) | 2009-08-24 | 2009-08-24 | Software testing method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009193500A JP5444939B2 (en) | 2009-08-24 | 2009-08-24 | Software testing method and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011044111A JP2011044111A (en) | 2011-03-03 |
JP5444939B2 true JP5444939B2 (en) | 2014-03-19 |
Family
ID=43831480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009193500A Expired - Fee Related JP5444939B2 (en) | 2009-08-24 | 2009-08-24 | Software testing method and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5444939B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5940968B2 (en) * | 2012-12-04 | 2016-06-29 | 株式会社日立製作所 | Test case generation system and method |
CN113127331B (en) * | 2019-12-31 | 2024-01-05 | 航天信息股份有限公司 | Test method and device based on fault injection and computer equipment |
CN114265767A (en) * | 2021-12-09 | 2022-04-01 | 瀚云科技有限公司 | Test case multiplexing method and device, electronic equipment and storage medium |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6365542A (en) * | 1986-09-05 | 1988-03-24 | Nec Corp | Debugging system |
JPH1139363A (en) * | 1997-07-18 | 1999-02-12 | Fujitsu Ltd | Data verification system |
JP2000112784A (en) * | 1998-09-30 | 2000-04-21 | Hitachi Software Eng Co Ltd | Program test support device and storage medium recording program test support program |
JP2003099283A (en) * | 2001-09-25 | 2003-04-04 | Toshiba Corp | Test priority derivation support method for software system, test case designing support method, and its support program |
JP2005032098A (en) * | 2003-07-09 | 2005-02-03 | Canon Inc | Method, program, and device for preparing slip |
JP2005250937A (en) * | 2004-03-05 | 2005-09-15 | Matsushita Electric Ind Co Ltd | Program verification device for microcomputer software |
JP2009181536A (en) * | 2008-02-01 | 2009-08-13 | Dainippon Screen Mfg Co Ltd | Software fault management device, test management device and program therefor |
-
2009
- 2009-08-24 JP JP2009193500A patent/JP5444939B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011044111A (en) | 2011-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8943423B2 (en) | User interface indicators for changed user interface elements | |
US7093238B2 (en) | Automated software testing and validation system | |
US20050204241A1 (en) | Method and device for analyzing software error | |
US20090204924A1 (en) | Method, system and computer program product for failure analysis implementing automated comparison of multiple reference models | |
US20110131551A1 (en) | Graphical user interface input element identification | |
US20090249299A1 (en) | Evaluation of Software based on Review History | |
US8719745B2 (en) | Method and system for automatically establishing hierarchical parameterized cell (PCELL) debugging environment | |
US7487477B2 (en) | Parametric-based semiconductor design | |
US20050229045A1 (en) | Method and device for managing software error | |
US8560991B1 (en) | Automatic debugging using automatic input data mutation | |
JP3822044B2 (en) | Design verification system, design verification method, and computer-readable recording medium storing design verification program | |
CN111814354B (en) | Simulation test method, system, medium and electronic device for instrument performance | |
JP5444939B2 (en) | Software testing method and program | |
CN105183641B (en) | The data consistency verification method and system of a kind of kernel module | |
US8850407B2 (en) | Test script generation | |
US8413102B2 (en) | Vectorless IVD analysis prior to tapeout to prevent scan test failure due to voltage drop | |
US8739091B1 (en) | Techniques for segmenting of hardware trace and verification of individual trace segments | |
US8281277B2 (en) | Signal selecting apparatus, circuit amending apparatus, circuit simulator, circuit emulator, method of signal selection and program | |
KR101510752B1 (en) | Method and apparatus for automated validation of semiconductor process recipes | |
CN117094269A (en) | Verification method, verification device, electronic equipment and readable storage medium | |
CN112731117A (en) | Automatic verification method and system for chip, and storage medium | |
US20030025490A1 (en) | Method for verifying hardware circuits through simulation | |
TWI750849B (en) | Automatic test system and method for testing application of device under test | |
US7962796B2 (en) | State testing device and methods thereof | |
CN111241766B (en) | Test method and test system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120510 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130828 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130903 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131101 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20131126 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131209 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5444939 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |