JP2016173756A - Test case generation program, test case generation method, and test case generation device - Google Patents
Test case generation program, test case generation method, and test case generation device Download PDFInfo
- Publication number
- JP2016173756A JP2016173756A JP2015053771A JP2015053771A JP2016173756A JP 2016173756 A JP2016173756 A JP 2016173756A JP 2015053771 A JP2015053771 A JP 2015053771A JP 2015053771 A JP2015053771 A JP 2015053771A JP 2016173756 A JP2016173756 A JP 2016173756A
- Authority
- JP
- Japan
- Prior art keywords
- check
- condition
- test case
- program
- symbolic execution
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
本発明は、テストケース生成プログラム、テストケース生成方法およびテストケース生成装置に関する。 The present invention relates to a test case generation program, a test case generation method, and a test case generation apparatus.
従来、ソフトウェア開発において、開発対象のプログラムに対してテストケースを生成する技術としてシンボリック実行が知られている。シンボリック実行は、入力変数に記号値などのシンボル値を設定して、プログラムの実行をエミュレートすることにより、プログラムを分析する技術である。 Conventionally, in software development, symbolic execution is known as a technique for generating a test case for a program to be developed. Symbolic execution is a technique for analyzing a program by setting a symbol value such as a symbol value in an input variable and emulating the execution of the program.
例えば、IF文を含むCOBOLプログラムをシンボリック実行した場合、実行可能なパス、および、パス毎のパス条件が抽出される。ここで、パスは、実行された命令文の系列であり、パス条件は、パスが終了するまでに経由する条件のうち不定な変数値に関する条件式である。つまり、テスト対象を通過するパスがテストケースに該当し、パス条件を満たすプログラム変数の値が、テストケースのテストデータとなる。 For example, when a COBOL program including an IF statement is symbolically executed, executable paths and path conditions for each path are extracted. Here, the path is a sequence of executed statements, and the path condition is a conditional expression related to an indefinite variable value among the conditions that are passed until the path ends. That is, a path that passes the test target corresponds to the test case, and the value of the program variable that satisfies the path condition becomes the test data of the test case.
一般に、プログラムは、入力である外部変数や局所変数に対して種々の処理が記述され、該処理が実行されることによって、所望の機能が実行される。このようなプログラムには、前処理(以降、チェック処理と記載する場合がある)と主処理(以降、メイン処理と記載する場合がある)が含まれる。前処理は、入力が所望条件を満たすことを判定する入力チェック処理であり、主処理は、所望の機能を実現する処理を記述したメイン処理である。 In general, in a program, various processes are described for external variables and local variables as inputs, and a desired function is executed by executing the processes. Such a program includes pre-processing (hereinafter may be described as check processing) and main processing (hereinafter may be described as main processing). The preprocess is an input check process for determining that an input satisfies a desired condition, and the main process is a main process describing a process for realizing a desired function.
そして、前処理と主処理を含むプログラムに対してシンボリック実行を行った場合、それぞれの処理内の条件分岐においてパス分岐が発生するので、前処理をテストするためのテストケースおよび主処理をテストするためのテストケースが生成される。 When symbolic execution is performed on a program including preprocessing and main processing, a path branch occurs at a conditional branch in each processing, so test the test case and main processing for testing the preprocessing. Test cases for are generated.
しかしながら、上記技術では、入力チェック処理のテストケースが必要以上に多く生成される。 However, the above technique generates more test cases for input check processing than necessary.
一般に、チェック処理は、多くのプログラムで共通して使用される定型的な処理であるので、チェック処理自体に対するテストの重要度は、メイン処理に対するテストに比較して低い。このため、チェック処理のテストケースは、メイン処理のテストケースと比較して、少数で済むと考えられる。しかしながら、シンボリック実行は、プログラム内のチェック処理とメイン処理を区別することができないので、チェック処理とメイン処理のテストケースを区別して生成することができない。 In general, the check process is a standard process commonly used in many programs, so the importance of the test for the check process itself is lower than the test for the main process. For this reason, it is considered that the number of test cases for the check process is smaller than that for the main process. However, the symbolic execution cannot distinguish between the check process in the program and the main process, and therefore cannot generate the test case for the check process and the main process separately.
なお、シンボリック実行で生成されたテストケース全体から、重複するテストケースを除外することで、テストケース数を削減することも考えられる。しかし、シンボリック実行によって生成されるテストケース自体の数は変わらないので、テストケースの抽出時間が長時間化する。また、チェック処理をコメントアウトして、メイン処理だけをシンボリック実行の分析対象とすることも考えられるが、メイン処理の前提としてのチェック処理を無視することになる。このため、メイン処理が実行されないテストケースが除外されることになり、生成されるテストデータが不十分である。 It is also possible to reduce the number of test cases by excluding duplicate test cases from the entire test cases generated by symbolic execution. However, since the number of test cases generated by symbolic execution does not change, the test case extraction time increases. It is also possible to comment out the check process and make only the main process an analysis target for symbolic execution, but the check process as a premise of the main process is ignored. For this reason, test cases in which the main process is not executed are excluded, and the generated test data is insufficient.
また、チェック処理をコメントアウトし、入力チェックのパス条件をシンボリック実行の事前条件と指定することも考えられる。しかし、入力チェックの前にメイン処理があるようなプログラムでは、入力チェックのパス条件をプログラムの事前条件とすると、プログラムのロジックが変わってしまい、適切にテストケースとテストデータを生成することができない。 It is also conceivable to comment out the check process and specify the input check path condition as a symbolic execution precondition. However, in a program that has a main process before the input check, if the pass condition of the input check is a precondition of the program, the logic of the program will change and it will not be possible to generate test cases and test data properly. .
1つの側面では、テストケースの抽出数を削減することができるテストケース生成プログラム、テストケース生成方法およびテストケース生成装置を提供することを目的とする。 An object of one aspect is to provide a test case generation program, a test case generation method, and a test case generation apparatus that can reduce the number of extracted test cases.
テストケース生成プログラムは、入力データが所定条件を満たすことを判定するチェック処理を含んだ対象プログラムを、当該チェック処理を除外した対象プログラムに変換する処理をコンピュータに実行させる。テストケース生成プログラムは、変換された対象プログラムに対してシンボリック実行が行われる際に、所定の命令において所定のチェック条件をパス条件に追加するよう制御する処理をコンピュータに実行させる。 The test case generation program causes a computer to execute a process of converting a target program including a check process for determining that input data satisfies a predetermined condition into a target program excluding the check process. When the symbolic execution is performed on the converted target program, the test case generation program causes the computer to execute a process of controlling to add a predetermined check condition to the path condition in a predetermined instruction.
一実施形態によれば、テストケースの抽出数を削減することができる。 According to one embodiment, the number of test case extractions can be reduced.
以下に、本願の開示するテストケース生成プログラム、テストケース生成方法およびテストケース生成装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。 Hereinafter, embodiments of a test case generation program, a test case generation method, and a test case generation device disclosed in the present application will be described in detail with reference to the drawings. Note that the present invention is not limited to the embodiments.
[全体構成]
図1は、実施例1に係るシステムの全体構成例を示す図である。図1に示すように、テストケース生成装置10は、シンボリック実行を実行してテストケースを生成するサーバやパーソナルコンピュータの一例である。
[overall structure]
FIG. 1 is a diagram illustrating an example of the overall configuration of a system according to the first embodiment. As illustrated in FIG. 1, the test
このテストケース生成装置10は、テストケース生成対象のプログラム、プログラムにおいて入力データが所定条件を満たすことを判定するチェック処理の仕様であるチェック仕様、チェック処理の該当箇所を示すチェック部分情報を受け付ける。そして、テストケース生成装置10は、これらの入力情報を用いて、テストケースを生成する。なお、本実施例では、COBOLプログラムを例にして説明するが、これに限定されるものではなく、C言語など他のプログラムでも同様に実行できる。
The test
具体的には、テストケース生成装置10は、入力データが所定条件を満たすことを判定するチェック処理を含んだ対象プログラムを、当該チェック処理を除外した対象プログラムに変換する。そして、テストケース生成装置10は、変換された対象プログラムに対してシンボリック実行が行われる際に、所定の命令において所定のチェック条件をパス条件に追加するよう制御する。
Specifically, the test
つまり、テストケース生成装置10は、プログラムを入力チェックの条件分岐が除外された成功用と失敗用とに変換し、入力チェックの成功条件と失敗条件をパス条件に追加しながらシンボリック実行する。この結果、テストケース生成装置10は、実行結果として得るテストケース数を削減できる。
That is, the test
[機能構成]
図2は、実施例1に係るテストケース生成装置の機能構成を示す機能ブロック図である。図2に示すように、テストケース生成装置10は、入力情報DB11、テストケースDB12、入力部13、チェック仕様分析部14、チェック条件生成部15、プログラム変換部16、チェック条件制御部17を有する。また、テストケース生成装置10は、シンボリック実行入力部18、シンボリック実行制御部19、シンボリック実行出力部20、テストケース出力部21を有する。
[Function configuration]
FIG. 2 is a functional block diagram illustrating a functional configuration of the test case generation device according to the first embodiment. As illustrated in FIG. 2, the test
なお、入力情報DB11、テストケースDB12は、メモリやハードディスクなどの記憶装置に記憶されるデータベースである。入力部13、チェック仕様分析部14、チェック条件生成部15、プログラム変換部16、チェック条件制御部17、シンボリック実行入力部18、シンボリック実行制御部19、シンボリック実行出力部20、テストケース出力部21は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。また、入力部13、チェック仕様分析部14、チェック条件生成部15、プログラム変換部16、チェック条件制御部17は、シンボリック実行を行う前の前処理を実行する処理部である。
The
入力情報DB11は、テストケース生成対象のプログラム、チェック仕様、チェック部分情報を記憶するデータベースである。ここで記憶される情報は、例えば管理者等が格納してもよく、CASE(Computer Aided Software Engineering)ツールなどで生成される情報を格納してもよい。CASEツールとは、設計情報からプログラム等のソフトウェア製品を自動生成する機能を備えるものである。また、入力情報DB11は、上記各情報をまとめた1つの情報で記憶することもでき、各情報を記憶することもできる。
The
図3は、入力情報DBに記憶される情報の例を示す図である。図3の例は、テストケース生成対象のプログラムに各情報をまとめて記載した例である。図3に示すプログラムは、2個のIF文が記述され、チェック処理とメイン処理があるプログラムである。 FIG. 3 is a diagram illustrating an example of information stored in the input information DB. The example of FIG. 3 is an example in which each piece of information is described together in a test case generation target program. The program shown in FIG. 3 is a program in which two IF statements are described and includes a check process and a main process.
チェック処理は、39行目から45行目の入力チェックSECTIONであり、入力の3文字がアルファベットの大文字であること、すなわち、‘A’から‘Z’の間であることをチェックする。一方、メイン処理は、23行目から28行目のメイン処理SECTIONであり、チェック処理を通過したアルファベット大文字3文字の入力が、‘ABC’’と等しいかを判定し、その結果を出力する。実行パスでは、まず、15行目でチェック処理が呼び出され、次いで、16行目のIF文でチェックの成否が判定され、成功の場合に17行目でメイン処理が呼び出される。 The check process is an input check section from the 39th line to the 45th line, and it is checked that the three input characters are uppercase letters, that is, between ‘A’ and ‘Z’. On the other hand, the main process is a main process SECTION from the 23rd line to the 28th line, and it is determined whether or not the input of the three uppercase letters that have passed the check process is equal to ‘ABC’, and the result is output. In the execution path, first, the check process is called at the 15th line, and then the success or failure of the check is determined by the IF statement at the 16th line. When the check is successful, the main process is called at the 17th line.
また、図3に示すプログラムには、コメントを利用して、チェック仕様とチェック処理部分を示す印が記述されている。具体的には、15行目から18行目がチェック仕様情報であり、19行目から21行目がチェック処理部分である。チェック仕様情報には、どのようなチェックなのかを記述する「チェック種別」、チェック種別の具体的なチェック条件を記述する「チェック条件」、チェック対象の変数を特定できるようにする「チェック対象」、チェック失敗の場合に実行される処理内容を記述する「チェック失敗の動作」が記述される。また、19行目の“$CHECKSTART”がチェック処理の開始を意味し、21行目の“$CHECKEND”がチェック処理の終了を意味する。 Further, in the program shown in FIG. 3, a check specification and a mark indicating a check processing part are described using comments. Specifically, the 15th to 18th lines are check specification information, and the 19th to 21st lines are check processing portions. In the check specification information, “check type” that describes what type of check is to be performed, “check condition” that describes the specific check condition of the check type, and “check target” that allows the variable to be checked to be identified In addition, a “check failure operation” describing the processing contents to be executed in the case of a check failure is described. Further, “$ CHECKSTART” on the 19th line means the start of the check process, and “$ CHECKEND” on the 21st line means the end of the check process.
また、入力情報DB11は、各情報を別々に記憶することもできる。図4は、入力情報DBに記憶される情報の別例を示す図である。図4の例は、テストケース生成対象のプログラムと、チェック仕様およびチェック処理部分が別々に記憶される例である。
The
図4の(a)は、テストケース生成対象のプログラムであり、図4の(b)がチェック仕様およびチェック処理部分を記述したテーブルの例である。図3と図4は同じ内容を示している。具体的には、図4の(b)に示す「開始行」−「終了行」が図3における入力チェック処理を実行する20行目に該当する。また、図4の(b)に示す「CHECK」が図3の15行目に該当し、「ITEM」が図3の16行目に該当し、「COND」が図3の17行目に該当し、「ERROR」が図3の18行目に該当する。 4A is a test case generation target program, and FIG. 4B is an example of a table describing check specifications and check processing portions. 3 and 4 show the same contents. Specifically, “start line” − “end line” shown in FIG. 4B corresponds to the 20th line in the input check process in FIG. Also, “CHECK” shown in FIG. 4B corresponds to the 15th line in FIG. 3, “ITEM” corresponds to the 16th line in FIG. 3, and “COND” corresponds to the 17th line in FIG. “ERROR” corresponds to the 18th line in FIG.
テストケースDB12は、シンボリック実行によって生成されたテストケースを記憶するデータベースである。ここで記憶される情報は、入力チェックの分岐を通過する各パス条件が記憶される。また、ここで記憶される情報は、後述するテストケース出力部21に記憶されるので、詳細は、後述する。
The test case DB 12 is a database that stores test cases generated by symbolic execution. The information stored here stores each path condition that passes through the branch of the input check. Moreover, since the information memorize | stored here is memorize | stored in the test
入力部13は、前処理において、テストケース生成対象のプログラムとチェック仕様とチェック処理部分の情報を取得する処理部である。具体的には、入力部13は、例えばキーボードによる入力等によりシンボリック実行の開始指示を受け付けると、入力情報DB11に記憶される情報を読み込んで、チェック仕様分析部14とプログラム変換部16に出力する。
The
チェック仕様分析部14は、チェック仕様情報を分析して、チェック仕様の内容を取得する処理部である。具体的には、チェック仕様分析部14は、入力部13から入力されたチェック仕様情報やプログラムなどから、チェック種別、チェック条件、チェック対象、チェック失敗の動作を抽出する。
The check specification analysis unit 14 is a processing unit that analyzes the check specification information and acquires the contents of the check specification. Specifically, the check specification analysis unit 14 extracts the check type, the check condition, the check target, and the check failure operation from the check specification information and the program input from the
図5は、チェック仕様分析の例を説明する図である。図5に示すように、チェック仕様分析部14は、15行目の「$CHECKTYPE文字種」の記述からチェック種別が文字種チェックであることを特定する。チェック仕様分析部14は、対象プログラムの16行目の「$ITEM入力OF引数」の記述からチェック対象変数が「入力OF引数」であることを特定する。チェック仕様分析部14は、17行目の「$COND英字大文字」の記述から、チェック条件が「英字大文字」であることを特定する。チェック仕様分析部14は、18行目の「$ERRORチェック結果=1」の記述からチェック失敗の場合に、変数「チェック結果」に数値1が代入されることを特定する。さらに、チェック仕様分析部14は、5行目および6行目の記述から、入力が外部から与えられるものであり、3ケタの文字列(X(3))であることを特定する。
FIG. 5 is a diagram illustrating an example of check specification analysis. As illustrated in FIG. 5, the check specification analysis unit 14 specifies that the check type is the character type check from the description of “$ CHECKTYPE character type” on the 15th line. The check specification analysis unit 14 specifies that the variable to be checked is the “input OF argument” from the description of “$ ITEM input OF argument” on the 16th line of the target program. From the description of “$ COND uppercase letters” on the 17th line, the check specification analysis unit 14 specifies that the check condition is “uppercase letters”. The check specification analysis unit 14 specifies that the
そして、チェック仕様分析部14は、図5に示すように、「行番号、項目、型、チェック種別(文字種、最小値、最大値、列挙値)、エラー」を有する情報を生成する。具体的には、チェック仕様分析部14は、チェック仕様情報の開始が15行目であることから、「行番号」に「15」を設定する。また、チェック仕様分析部14は、ITEMに引数の入力が記述されていることから、「項目」に「入力」を設定し、6行目において入力として「X(3)」が記述されていることから、「型」に「X(3)」を設定する。 Then, as shown in FIG. 5, the check specification analysis unit 14 generates information having “line number, item, type, check type (character type, minimum value, maximum value, enumerated value), error”. Specifically, the check specification analysis unit 14 sets “15” to “line number” since the start of the check specification information is the 15th line. In addition, since the input of the argument is described in the ITEM, the check specification analysis unit 14 sets “input” in the “item”, and “X (3)” is described as the input in the sixth line. Therefore, “X (3)” is set in “Type”.
さらに、チェック仕様分析部14は、CONDに英字大文字が記述されていることから、「チェック種別(文字種)」に「英字大文字」を設定する。なお、他のチェック種別については、プログラムのチェック処理に記述されていないので、空白のままとする。また、チェック仕様分析部14は、変数「チェック結果」に数値1を代入することが記述されているので、「エラー」に「チェック結果=1」を設定する。その後、チェック仕様分析部14は、生成した分析結果をチェック条件生成部15に出力する。
Furthermore, since the uppercase alphabetic characters are described in COND, the check specification analysis unit 14 sets “uppercase alphabetic characters” to “check type (character type)”. Other check types are left blank because they are not described in the program check process. Further, since it is described that the
チェック条件生成部15は、プログラムとチェック処理の仕様とに基づいて、チェック処理が成功する成功条件とチェック処理が失敗する失敗条件とを生成する処理部である。具体的には、チェック条件生成部15は、チェック仕様分析部14から分析結果が入力されると、分析結果の「型」および「チェック種別」から、「型」が成功する条件と失敗する条件を生成する。
The check
図6は、チェック条件生成の例を説明する図である。図6の例では、チェック条件生成部15は、分析結果の「型」が「X(3)」であり、チェック種別が文字種「英字大文字」であることから、入力された3つの文字からなる文字列がすべて大文字である条件を成功条件、入力された3つの文字からなる文字列のいずれかが大文字ではない条件を失敗条件とする。つまり、チェック条件生成部15は、入力文字列がすべて大文字である条件を成功条件、入力文字列が大文字ではない条件を失敗条件とする。
FIG. 6 is a diagram illustrating an example of check condition generation. In the example of FIG. 6, the check
具体的には、図6に示すように、チェック条件生成部15は、「No、行番号、成否、チェック条件」を有する情報を生成して、プログラム変換部16とチェック条件制御部17に出力する。
Specifically, as shown in FIG. 6, the check
ここで「No.」は、入力されたチェック仕様のNo.と関連付けられるNo.が設定される。「行番号」は、入力されたチェック仕様の行番号が設定される。「成否」は、成功条件であれば「成功」、失敗条件であれば「失敗」が設定される。「チェック条件」は、成功条件または失敗条件が設定される。 Here, “No.” indicates the No. of the input check specification. No. associated with Is set. In the “line number”, the line number of the input check specification is set. “Success / failure” is set to “success” if it is a success condition, and “failure” if it is a failure condition. In the “check condition”, a success condition or a failure condition is set.
図6の例では、チェック条件生成部15は、上記条件を満たす成功条件として、「('A‘<=入力(1:1)AND入力(1:1)<=’Z‘)AND(’A‘<=入力(2:1)AND入力(2:1)<=’Z‘)AND(’A‘<=入力(3:1)AND入力(3:1)<=’Z‘)」を生成する。また、チェック条件生成部15は、上記条件を満たす失敗条件として、NOT成功条件を生成する。つまり、チェック条件生成部15は、「NOT(('A‘<=入力(1:1)AND入力(1:1)<=’Z‘)AND(’A‘<=入力(2:1)AND入力(2:1)<=’Z‘)AND(’A‘<=入力(3:1)AND入力(3:1)<=’Z‘))」を生成する。
In the example of FIG. 6, the check
プログラム変換部16は、入力データが所定条件を満たすことを判定するチェック処理を含んだプログラムを、当該チェック処理を除外したプログラムに変換する処理部である。具体的には、プログラム変換部16は、対象のプログラムから、チェック処理が成功する成功用のプログラムと、チェック処理が失敗する失敗用のプログラムとを複製して、チェック条件制御部17に出力する。
The
図7は、プログラム変換の例を説明する図である。図7に示すように、プログラム変換部16は、入力部13が読み込んだプログラムを、チェック処理を実行対象外に設定し、チェック処理が成功して後続の処理が実行される命令文を追加した成功用のプログラムに変換する。例えば、プログラム変換部16は、プログラムのチェック仕様情報の開始でありコメントアウトされている15行目を命令「CONTINUE」に書き換える。さらに、プログラム変換部16は、19行目にチェック処理の開始の印、21行目にチェック処理の終了の印があるので、それらの間の20行目をコメントアウトして処理対象から除外する。このようにして、プログラム変換部16は、成功用のプログラムを生成する。
FIG. 7 is a diagram for explaining an example of program conversion. As illustrated in FIG. 7, the
また、プログラム変換部16は、入力部13が読み込んだプログラムを、チェック処理を実行対象外に設定し、チェック処理が失敗した際に実行される命令文を追加した失敗用のプログラムに変換する。例えば、プログラム変換部16は、プログラムのチェック仕様情報の開始でありコメントアウトされている15行目を命令文「MOVE 1 TO チェック結果」に書き換える。さらに、プログラム変換部16は、19行目にチェック処理の開始の印、21行目にチェック処理の終了の印があるので、それらの間の20行目をコメントアウトして処理対象から除外する。このようにして、プログラム変換部16は、失敗用のプログラムを生成する。
In addition, the
チェック条件制御部17は、変換されたプログラムに対してシンボリック実行が行われる際に、所定の命令において所定のチェック条件をパス条件に追加するよう制御する処理部である。具体的には、チェック条件制御部17は、成功用のプログラムに対してシンボリック実行が行われる際に、成功条件をパス条件に追加するよう制御し、失敗用のプログラムに対してシンボリック実行が行われる際に、失敗条件をパス条件に追加するよう制御する。
The check
つまり、チェック条件制御部17は、変換後プログラムと対応するチェック条件を管理してシンボリック実行で実行される命令文を監視して、規定の命令文で規定のチェック条件をパス条件に追加する。また、チェック条件制御部17は、プログラム変換部16から入力された成功用のプログラムおよび失敗用のプログラムをシンボリック実行入力部18に出力する。
That is, the check
シンボリック実行入力部18は、チェック条件制御部17から、シンボリック実行の対象として成功用のプログラムおよび失敗用のプログラムを受け付けて、シンボリック実行制御部19に出力する処理部である。
The symbolic
シンボリック実行制御部19は、プログラムの外部変数にシンボル値を設定し、シンボル値のままプログラム実行をエミュレートしてパスを模擬的に実行する処理部である。ここでは、シンボリック実行制御部19は、シンボリック実行入力部18から入力される成功用のプログラムおよび失敗用のプログラムそれぞれについて、シンボリック実行を実行して、その結果をシンボリック実行出力部20に出力する。
The symbolic
シンボリック実行出力部20は、実行可能なパスとパス条件を、テストケース出力部21に出力する処理部である。テストケース出力部21は、シンボリック実行出力部20から出力されたパスとパス条件をテストケースとして、テストケースDB12に格納する処理部である。なお、1組のパスとパス条件が1個のテストケースに該当する。
The symbolic
ここで、図8と図9を用いて、シンボリック実行時のパス条件の出力例を説明する。図8は、失敗時のパス出力を説明する図であり、図9は、成功時のパス出力を説明する図である。 Here, an output example of the path condition during symbolic execution will be described with reference to FIGS. 8 and 9. FIG. 8 is a diagram for explaining path output upon failure, and FIG. 9 is a diagram for explaining path output upon success.
図8に示すように、チェック条件制御部17は、シンボリック実行制御部19によって規定の実行順にしたがって命令文の実行がエミュレートされるのを監視し、監視対象の行番号「15」が実行されると、行番号「15」に対応する失敗用のチェック条件を抽出する。
As shown in FIG. 8, the check
具体的には、シンボリック実行出力部20が、チェック条件制御部17の監視の元で失敗用のプログラムをシンボリック実行すると、15行目において書き換えられた命令文「MOVE 1 TO チェック結果」によって、「チェック結果」項目に1が設定される。同時に、チェック条件制御部17は、15行目の命令文の実行時に、チェック条件生成部15によって生成されたチェック失敗条件をパス条件に追加する。
Specifically, when the symbolic
引き続き、シンボリック実行出力部20によってシンボリック実行が行われると、次いで、23行目のIF文の分岐条件がFalseでELSEが実行され、「チェック失敗」セクションを実行して終了するパスが1個抽出される。この実行パスから、チェック失敗の1個のテストケースが生成される。
Subsequently, when the symbolic execution is performed by the symbolic
つまり、チェック条件制御部17は、「NOT(('A‘<=入力(1:1)AND入力(1:1)<=’Z‘)AND(’A‘<=入力(2:1)AND入力(2:1)<=’Z‘)AND(’A‘<=入力(3:1)AND入力(3:1)<=’Z‘))」を抽出する。ここで、シンボリック実行出力部20は、チェック処理が失敗する場合のプログラムであり、これ以上の分岐がないことから、上記チェック失敗条件を満たすテストケースを出力する。
In other words, the check
また、図9に示すように、チェック条件制御部17は、シンボリック実行制御部19によって規定の実行順にしたがって命令文の実行がエミュレートされるのを監視し、監視対象の行番号「15」が実行されると、行番号「15」に対応する成功用のチェック条件を抽出する。
As shown in FIG. 9, the check
具体的には、シンボリック実行出力部20が、チェック条件制御部17の監視の元で成功用プログラムをシンボリック実行すると、15行目のCONTINUE文でチェック成功の条件がパス条件に追加される。次いで、23行目のIF文の分岐条件がTrueでTHENが実行される。さらに、メイン処理内の30行目のIF文の条件分岐は、真偽とも充足可能であるため2つのパスが抽出され、2つのテストケースが生成される。
Specifically, when the symbolic
つまり、チェック条件制御部17は、「('A‘<=入力(1:1)AND入力(1:1)<=’Z‘)AND(’A‘<=入力(2:1)AND入力(2:1)<=’Z‘)AND(’A‘<=入力(3:1)AND入力(3:1)<=’Z‘)」を抽出する。ここで、シンボリック実行出力部20は、メイン処理の分岐があることから「(チェック成功条件)AND(30行目IF文条件がTrue)」を満たすテストケースと、「(チェック成功条件)AND(30行目IF文条件のNotがTrue)」を満たすテストケースとを出力する。
In other words, the check
次に、図10を用いてテストケースの出力を説明する。図10は、テストケース出力を説明する図である。図10に示すように、テストケース出力部21は、失敗用のプログラムに対するシンボリック実行に際して、入力1に記載される1つのチェック条件をシンボリック実行出力部20から受け付ける。また、テストケース出力部21は、成功用のプログラムに対するシンボリック実行に際して、入力2に記載される2つのチェック条件をシンボリック実行出力部20から受け付ける。そして、テストケース出力部21は、これらのチェック条件をマージして、テストケースDB12に格納する。
Next, the output of the test case will be described with reference to FIG. FIG. 10 is a diagram for explaining the test case output. As illustrated in FIG. 10, the test
[処理の流れ]
次に、上述した各処理部が実行する処理について説明する。なお、シンボリック実行は、一般的なシンボリック実行と同様の処理なので、詳細な説明は省略する。
[Process flow]
Next, processing executed by each processing unit described above will be described. Since symbolic execution is the same processing as general symbolic execution, detailed description is omitted.
(全体的な処理の流れ)
図11は、全体的な処理の流れを説明するフローチャートである。図11に示すように、テストケース生成装置10は、入力チェック仕様とプログラム部分の対応関係を入力情報DB11から読み込む(S101)。
(Overall processing flow)
FIG. 11 is a flowchart for explaining the overall processing flow. As shown in FIG. 11, the test
続いて、テストケース生成装置10は、プログラムと関連付けられたチェック仕様情報から入力チェック(チェック処理)の成功と失敗のパス条件を生成する(S102)。そして、テストケース生成装置10は、プログラムと関連付けられたチェック処理部分の印(コメント)を用いて、プログラムを入力チェックの成功用と失敗用とに変換する(S103)。
Subsequently, the test
続いて、テストケース生成装置10は、成功用と失敗用とのプログラムそれぞれについてシンボリック実行を行い、特定の命令文に到達したら、入力チェックのパス条件を付加する(S104)。その後、テストケース生成装置10は、成功用と失敗用のテストケースを集計して、テスト対象プログラムのテストケースとする(S105)。
Subsequently, the test
(チェック仕様分析、チェック条件生成)
図12は、チェック仕様分析およびチェック条件生成の処理の流れを説明するフローチャートである。図12に示すように、チェック仕様分析部14は、チェック仕様が記述されたプログラム等を取得する(S201)。なお、入力は、コメントにチェック仕様が記述されたプログラムや表形式にチェック仕様が記述されたファイルなどである。
(Check specification analysis, check condition generation)
FIG. 12 is a flowchart for explaining the flow of processing of check specification analysis and check condition generation. As illustrated in FIG. 12, the check specification analysis unit 14 acquires a program or the like in which the check specification is described (S201). The input is a program in which the check specification is described in a comment, a file in which the check specification is described in a table format, or the like.
続いて、チェック仕様分析部14は、チェック仕様からチェック仕様情報を抽出して(S202)、抽出したチェック仕様情報をチェック条件生成部15に出力する(S203)。例えば、チェック仕様分析部14は、チェック処理の行番号、対象となる項目、項目の型、チェック種別、チェック条件、エラー時の動作の情報を抽出する。 Subsequently, the check specification analysis unit 14 extracts check specification information from the check specification (S202), and outputs the extracted check specification information to the check condition generation unit 15 (S203). For example, the check specification analysis unit 14 extracts the line number of the check process, the target item, the item type, the check type, the check condition, and the operation information at the time of error.
その後、チェック条件生成部15は、チェック仕様分析部14からチェック仕様情報を取得する(S204)。続いて、チェック条件生成部15は、チェック仕様情報に基づき、チェック種別に応じて成功と失敗のチェック条件を生成し(S205)、生成した成功のチェック条件と失敗のチェック条件を、プログラム変換部16とチェック条件制御部17に出力する(S206)。
Thereafter, the check
(プログラム変換)
図13は、プログラム変換処理の流れを説明するフローチャートである。図13に示すように、プログラム変換部16は、プログラムとチェック仕様情報を入力部13等から取得し(S301)、プログラム内に未処理のチェック処理があるか否かを判定する(S302)。
(Program conversion)
FIG. 13 is a flowchart for explaining the flow of the program conversion process. As shown in FIG. 13, the
そして、プログラム変換部16は、未処理のチェック処理がある場合(S302:Yes)、未処理のチェック処理を1つ選択してプログラムを複製する(S303)。続いて、プログラム変換部16は、当該チェック処理の行番号に、エラー(失敗)の情報に基づいて、当該チェックの失敗の命令文に書き換える(S304)。
When there is an unprocessed check process (S302: Yes), the
そして、プログラム変換部16は、当該チェック処理以外のチェック処理の行番号に、チェック成功を示す命令文「CONTINUE」に書き換え(S305)、全てのチェック処理のプログラム部分をコメントアウト(除外)する(S306)。その後、プログラム変換部16は、変換されたプログラムを当該チェック処理の失敗を関連付けて、メモリ等に記録する(S307)。
Then, the
一方、プログラム変換部16は、未処理のチェック処理がない場合(S302:No)、プログラムを複製する(S308)。続いて、プログラム変換部16は、全てのチェック処理の行番号に、チェック成功を示す命令文「CONTINUE」に書き換える(S309)。
On the other hand, when there is no unprocessed check process (S302: No), the
その後、プログラム変換部16は、変換されたプログラムを全チェック処理の成功を関連付けて、メモリ等に記録する(S310)。
Thereafter, the
(チェック条件追加)
図14は、チェック条件追加処理の流れを説明するフローチャートである。図14に示すように、チェック条件制御部17は、変換済プログラムとチェック条件を取得し(S401)、プログラム内に未処理のチェック処理があるか否かを判定する(S402)。
(Check condition added)
FIG. 14 is a flowchart for explaining the flow of the check condition adding process. As shown in FIG. 14, the check
続いて、チェック条件制御部17は、未処理のチェック処理がある場合(S402:Yes)、未処理のプログラムに対応するチェック条件を取得し、当該プログラムを対象としてシンボリック実行の分析を開始する(S403)。ここで、シンボリック実行制御部19は、該当プログラムのシンボリック実行を開始する。
Subsequently, when there is an unprocessed check process (S402: Yes), the check
そして、シンボリック実行制御部19は、プログラム終了の命令文ではない場合(S404:No)、命令文の処理をエミュレートする(S405)。続いて、チェック条件制御部17は、チェック条件の行番号の命令文である場合(S406:Yes)、チェック条件の行番号の命令文で、規定チェック条件をパス条件に追加する(S407)。
Then, if the symbolic
その後、シンボリック実行制御部19は、次の命令文を取得し(S408)、S404以降を繰り返す。一方、チェック条件の行番号の命令文ではない場合(S406:No)、S407を実行することなく、S408が実行される。
Thereafter, the symbolic
また、S404において、シンボリック実行出力部20は、プログラム終了の命令文である場合(S404:Yes)、テストケースを記録する(S409)。また、S402において、未処理のチェック処理がない場合(S402:No)、シンボリック実行出力部20は、生成したテストケースをプログラムと関連付けて出力する(S410)。
In S404, the symbolic
(テストケース出力)
図15は、テストケース出力処理の流れを説明するフローチャートである。図15に示すように、テストケース出力部21は、変換後プログラム毎のテストケースリスト(パス条件)を、シンボリック実行出力部20から取得する(S501)。
(Test case output)
FIG. 15 is a flowchart for explaining the flow of the test case output process. As illustrated in FIG. 15, the test
続いて、テストケース出力部21は、未処理のテストケースリストがある場合(S502:Yes)、選択したテストケースリストから順にパス条件を取り出す(S503)。そして、テストケース出力部21は、未処理のパス条件がある場合(S504:Yes)、集計テストケースのパス条件と一致するか否かを判定する(S505)。
Subsequently, when there is an unprocessed test case list (S502: Yes), the test
その後、テストケース出力部21は、集計テストケースのパス条件と一致しない場合(S505:Yes)、当該パス条件のテストケースを集計テストケースに追加し(S506)、S504以降を繰り返す。また、テストケース出力部21は、集計テストケースのパス条件と一致する場合(S505:No)、S506を実行することなく、S504以降を繰り返す。
Thereafter, when the test
一方、S504において、テストケース出力部21は、未処理のパス条件がない場合(S504:No)、S502以降を繰り返す。また、S502において、テストケース出力部21は、未処理のテストケースリストがない場合(S502:No)、集計テストケースをテストケースDB12に出力する(S507)。
On the other hand, in S504, when there is no unprocessed path condition (S504: No), the test
このフローにおいて集計テストケースのパス条件と一致しないかを判定している部分は、パス条件が同一、つまり、同一のテストケースが重複しないように集計する処理である。テストケース生成装置10は、複数の変換後プログラムをチェック条件制御部17の制御のもとでシンボリック実行してテストケースを抽出する。ここで、チェック処理(入力チェック処理)の前に入力チェック以外の別の処理が存在するプログラムが入力され、かつ、別の処理に条件分岐が存在する場合、テストケース出力部21に入力されるテストケースのパス条件には重複が生じるので、本処理によって重複を除去している。
The part of the flow that determines whether or not the path conditions of the total test cases do not match is a process of totaling so that the path conditions are the same, that is, the same test cases are not duplicated. The test
[効果]
実施例1によれば、テストケース生成装置10は、入力チェック処理とメイン処理を含むようなプログラムに対して、プログラム全体のロジック内容は変えずに入力チェック処理を除外し、シンボリック実行でのパス追跡時の適切な命令文で、入力チェックのパス条件を追加することができる。また、テストケース生成装置10は、入力チェックを過剰にテストするようなテストケースを除外して、テストケースを生成することができる。この結果、テストケース生成装置10は、テストケース個数を削減し、さらに、テストケースの生成時間を短縮することができる。
[effect]
According to the first embodiment, the test
[チェック条件が複数]
テストケース生成装置10は、チェック条件が複数あった場合でも同様に処理することができる。図16は、チェック条件が複数ある場合の例を説明する図である。図16の上図には一般的なチェック条件に関する情報を例示する。
[Multiple check conditions]
The test
図16に示すように、チェック種別が「文字種」の場合、チェック条件としては、英字、英数字、数字などである。チェック種別が「値範囲」の場合、チェック条件としては、数値の最小値や最大値、指定文字集合の範囲などがある。チェック種別が「列挙値」の場合、チェック条件としては、例えば、「1、10、20」などのように、複数の数値を具体的に列挙する列挙値の指定などがある。チェック種別が「桁範囲」の場合、チェック条件としては、文字列の最小桁数や最大桁数などがある。 As shown in FIG. 16, when the check type is “character type”, the check condition includes alphabetic characters, alphanumeric characters, numbers, and the like. When the check type is “value range”, the check conditions include a minimum value and a maximum value of a numerical value, a range of a specified character set, and the like. When the check type is “enumerated value”, the check condition includes, for example, designation of an enumerated value that specifically enumerates a plurality of numerical values such as “1, 10, 20”. When the check type is “digit range”, the check condition includes the minimum number of digits and the maximum number of digits of the character string.
そして、入力部13は、例えば表形式のチェック仕様情報を読み込む。図16の例では、No=1は、プログラムの100行目から110行目がチェック仕様情報であり、チェック種別が値範囲で、チェック対象が項目1、チェック条件が最小値“0<=”(0以上)だけが指定されている例である。No=2は、プログラムの200行目から220行目がチェック仕様情報であり、チェック種別が値範囲で、チェック対象が項目2、チェック条件が最小値“0<=”(0以上)と最大値“<100”(100未満)の両方が指定されている例である。No=3は、プログラムの300行目から330行目がチェック仕様情報であり、チェック種別が列挙値で、チェック対象が項目3、チェック条件が列挙値{‘A’,‘B’,‘C’}に含まれる例である。なお、いずれもエラー処理は、チェック結果に1を代入する「チェック結果=1」である。
Then, the
続いて、チェック仕様分析部14は、上記チェック仕様情報を分析して、チェック種別、チェック条件、チェック対象、チェック失敗の動作を抽出する。No=1については、行番号=100、項目=項目1、型=9(3)、チェック種別として最小値が0以上、エラー処理として「チェック結果=1」が抽出される。No=2については、行番号=200、項目=項目2、型=9(3)、チェック種別として最小値が0以上かつ最大値が100未満、エラー処理として「チェック結果=1」が抽出される。No=3については、行番号=300、項目=項目3、型=X(2)、チェック種別(列挙値)=「A、B、C」、エラー処理として「チェック結果=1」が抽出される。なお、型=9(3)は、3ケタ位の数字を意味する。
Subsequently, the check specification analysis unit 14 analyzes the check specification information and extracts a check type, a check condition, a check target, and a check failure operation. For No = 1, line number = 100, item =
そして、チェック条件生成部15は、成功条件と失敗条件を生成する。なお、失敗条件は、NOT成功条件である。上記例では、チェック条件生成部15は、対象プログラムについて、抽出された行番号ごとに成功条件と失敗条件を生成するので、合計6個の条件を生成する。
Then, the check
一例を挙げると、行番号100については、成功条件として「0<=項目1」が生成され、失敗条件として「NOT(0<=項目1)」が生成される。また、行番号200については、成功条件として「(0<=項目2)AND(項目2<100)」が生成され、失敗条件として「NOT((0<=項目2)AND(項目2<100))」が生成される。
As an example, for
その後、プログラム変換部16は、条件ごとに、条件を満たすプログラムを生成する。例えば、プログラム変換部16は、No.1−1の成功条件を満たすプログラム、No.1−2の失敗条件を満たすプログラム、No.2−1の成功条件を満たすプログラムなどを生成する。
Thereafter, the
そして、チェック条件制御部17は、生成された各プログラムに対してシンボリック実行がされる際に、命令を監視し、該当行番号の命令が実行されたときに、該当するチェック条件をパス条件として抽出する。例えば、チェック条件制御部17は、項目1の成功用プログラムでは、100行目が実行されたときに「0<=項目1」を抽出する。このように、テストケース生成装置10は、チェック処理のチェック条件が複数あり、分岐が複雑な場合でも、各変換後プログラムと対応するチェック条件を管理してシンボリック実行で実行される命令文を監視して、規定の命令文で規定のチェック条件をパス条件に追加することができる。
Then, the check
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。 Although the embodiments of the present invention have been described so far, the present invention may be implemented in various different forms other than the embodiments described above.
[生成装置と実行装置]
上記実施例では、テストケース生成装置10は、テストケースを生成する処理部とシンボリック実行を実行する処理部の両方を有する例を説明したが、これに限定されるものではない。例えば、入力部13、チェック仕様分析部14、チェック条件生成部15、プログラム変換部16、チェック条件制御部17、テストケース出力部21を生成装置と、シンボリック実行入力部18、シンボリック実行制御部19、シンボリック実行出力部20を有するシンボリック実行装置とに分割することもできる。
[Generator and Executor]
In the above embodiment, the test
[システム]
また、図示した装置の各構成は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、任意の単位で分散または統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[system]
Further, each configuration of the illustrated apparatus does not necessarily need to be physically configured as illustrated. That is, it can be configured to be distributed or integrated in arbitrary units. Further, all or any part of each processing function performed in each device may be realized by a CPU and a program analyzed and executed by the CPU, or may be realized as hardware by wired logic.
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。 In addition, among the processes described in this embodiment, all or part of the processes described as being performed automatically can be performed manually, or the processes described as being performed manually can be performed. All or a part can be automatically performed by a known method. In addition, the processing procedure, control procedure, specific name, and information including various data and parameters shown in the above-described document and drawings can be arbitrarily changed unless otherwise specified.
なお、本実施例で説明したテストケース生成装置10は、テストケース生成プログラムを読み込んで実行することで、図2等で説明した処理と同様の機能を実行することができる。例えば、テストケース生成装置10は、入力部13、チェック仕様分析部14、チェック条件生成部15、プログラム変換部16、チェック条件制御部17、シンボリック実行入力部18、シンボリック実行制御部19、シンボリック実行出力部20、テストケース出力部21と同様の機能を有するプログラムをメモリに展開する。そして、テストケース生成装置10は、入力部13、チェック仕様分析部14、チェック条件生成部15、プログラム変換部16、チェック条件制御部17、シンボリック実行入力部18、シンボリック実行制御部19、シンボリック実行出力部20、テストケース出力部21と同様の処理を実行するプロセスを実行することで、上記実施例と同様の処理を実行することができる。
Note that the test
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。 This program can be distributed via a network such as the Internet. The program can be executed by being recorded on a computer-readable recording medium such as a hard disk, a flexible disk (FD), a CD-ROM, an MO, and a DVD, and being read from the recording medium by the computer.
[ハードウェア構成]
上記テストケース生成装置10は、例えば、次のようなハードウェア構成により実現することができる。図17は、ハードウェア構成例を説明する図である。図17に示すように、テストケース生成装置10は、通信インタフェース10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。
[Hardware configuration]
The test
プロセッサ10dの一例としては、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)、PLD(Programmable Logic Device)等が挙げられる。また、メモリ10cの一例としては、SDRAM(Synchronous Dynamic Random Access Memory)等のRAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ等が挙げられる。
Examples of the
そして、テストケース生成装置10で行われる各種処理機能は、不揮発性記憶媒体などの各種メモリに格納されたプログラムを制御装置が備えるプロセッサで実行することによって実現してもよい。すなわち、入力部13、チェック仕様分析部14、チェック条件生成部15、プログラム変換部16、チェック条件制御部17、シンボリック実行入力部18、シンボリック実行制御部19、シンボリック実行出力部20、テストケース出力部21によって実行される各処理に対応するプログラムがメモリ10cに記録され、各プログラムがプロセッサ10dで実行されてもよい。
Various processing functions performed by the test
10 テストケース生成装置
11 入力情報DB
12 テストケースDB
13 入力部
14 チェック仕様分析部
15 チェック条件生成部
16 プログラム変換部
17 チェック条件制御部
18 シンボリック実行入力部
19 シンボリック実行制御部
20 シンボリック実行出力部
21 テストケース出力部
10
12 Test case DB
DESCRIPTION OF
Claims (6)
入力データが所定条件を満たすことを判定するチェック処理を含んだ対象プログラムを、当該チェック処理を除外した対象プログラムに変換し、
変換された対象プログラムに対してシンボリック実行が行われる際に、所定の命令において所定のチェック条件をパス条件に追加するよう制御する
処理を実行させることを特徴とするテストケース生成プログラム。 On the computer,
Converting a target program including a check process for determining that input data satisfies a predetermined condition into a target program excluding the check process;
A test case generation program that executes a process of controlling a predetermined instruction to add a predetermined check condition to a path condition when symbolic execution is performed on the converted target program.
前記変換する処理は、前記対象プログラムを、前記チェック処理が成功する第1の対象プログラムと、前記チェック処理が失敗する第2の対象プログラムとに変換し、
前記制御する処理は、前記第1の対象プログラムに対してシンボリック実行が行われる際に、前記成功条件をパス条件に追加するよう制御し、前記第2の対象プログラムに対してシンボリック実行が行われる際に、前記失敗条件をパス条件に追加するよう制御する
ことを特徴とする請求項1に記載のテストケース生成プログラム。 Based on the target program and the specification of the check process, the computer further executes a process for generating a success condition for the check process to succeed and a failure condition for the check process to fail,
The converting process converts the target program into a first target program in which the check process succeeds and a second target program in which the check process fails,
The control process controls to add the success condition to the pass condition when the symbolic execution is performed on the first target program, and the symbolic execution is performed on the second target program. The test case generation program according to claim 1, wherein the failure condition is controlled to be added to the path condition.
入力データが所定条件を満たすことを判定するチェック処理を含んだ対象プログラムを、当該チェック処理を除外した対象プログラムに変換し、
変換された対象プログラムに対してシンボリック実行が行われる際に、所定の命令において所定のチェック条件をパス条件に追加するよう制御する
処理を含むことを特徴とするテストケース生成方法。 Computer
Converting a target program including a check process for determining that input data satisfies a predetermined condition into a target program excluding the check process;
A test case generation method, comprising: a process of controlling a predetermined instruction to add a predetermined check condition to a path condition when symbolic execution is performed on the converted target program.
前記変換部によって変換された対象プログラムに対してシンボリック実行が行われる際に、所定の命令において所定のチェック条件をパス条件に追加するよう制御する追加制御部と
を有することを特徴とするテストケース生成装置。 A conversion unit that converts a target program including a check process for determining that the input data satisfies a predetermined condition into a target program excluding the check process;
A test case comprising: an additional control unit that controls to add a predetermined check condition to a path condition in a predetermined instruction when symbolic execution is performed on the target program converted by the conversion unit Generator.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015053771A JP6547345B2 (en) | 2015-03-17 | 2015-03-17 | Test case generation program, test case generation method and test case generation apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015053771A JP6547345B2 (en) | 2015-03-17 | 2015-03-17 | Test case generation program, test case generation method and test case generation apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016173756A true JP2016173756A (en) | 2016-09-29 |
JP6547345B2 JP6547345B2 (en) | 2019-07-24 |
Family
ID=57009156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015053771A Active JP6547345B2 (en) | 2015-03-17 | 2015-03-17 | Test case generation program, test case generation method and test case generation apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6547345B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109062812A (en) * | 2018-09-30 | 2018-12-21 | 中电科(德阳广汉)特种飞机系统工程有限公司 | Test method, equipment and the readable storage medium storing program for executing of software based on many condition operation |
WO2024178567A1 (en) * | 2023-02-27 | 2024-09-06 | 华为技术有限公司 | Software test case generation method and related apparatus |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011191985A (en) * | 2010-03-15 | 2011-09-29 | Fujitsu Ltd | Symbolic execution support program, method and device |
US20140143762A1 (en) * | 2012-11-21 | 2014-05-22 | Fujitsu Limited | Symbolic execution of dynamic programming languages |
-
2015
- 2015-03-17 JP JP2015053771A patent/JP6547345B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011191985A (en) * | 2010-03-15 | 2011-09-29 | Fujitsu Ltd | Symbolic execution support program, method and device |
US20140143762A1 (en) * | 2012-11-21 | 2014-05-22 | Fujitsu Limited | Symbolic execution of dynamic programming languages |
Non-Patent Citations (2)
Title |
---|
吉原 慧 他: "「記号的実行による統合テスト用テストデータ自動生成」", 第72回(平成22年)全国大会講演論文集(1), JPN6018039905, 8 March 2010 (2010-03-08), JP, pages 第1-467頁 - 第1-468頁 * |
片山 朝子 他: "「業務システムを対象としたシンボリック実行による検証試行」", 情報処理学会 ソフトウェアエンジニアリングシンポジウム2013論文集, vol. 第2013巻, JPN6018039904, 2 September 2013 (2013-09-02), JP, pages 第1頁-第6頁 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109062812A (en) * | 2018-09-30 | 2018-12-21 | 中电科(德阳广汉)特种飞机系统工程有限公司 | Test method, equipment and the readable storage medium storing program for executing of software based on many condition operation |
WO2024178567A1 (en) * | 2023-02-27 | 2024-09-06 | 华为技术有限公司 | Software test case generation method and related apparatus |
Also Published As
Publication number | Publication date |
---|---|
JP6547345B2 (en) | 2019-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10684943B2 (en) | Generating executable test automation code automatically according to a test case | |
JP2016115175A (en) | Software test apparatus and software test program | |
JP6547345B2 (en) | Test case generation program, test case generation method and test case generation apparatus | |
JP5440287B2 (en) | Symbolic execution support program, method and apparatus | |
GB2513348A (en) | Translation validation | |
JP7268759B2 (en) | TEST DATA GENERATION DEVICE, TEST DATA GENERATION METHOD, AND PROGRAM | |
WO2018097022A1 (en) | Automatic translation pattern learning device, automatic translation preprocessing device, and computer program | |
JP6451417B2 (en) | Debug support device, debug support system, debug support method, and debug support program | |
JP5578625B2 (en) | Program analysis apparatus, program analysis method, and program | |
US12001324B2 (en) | Operation pattern generation apparatus, operation pattern generation method and program | |
JP7211139B2 (en) | Review method, information processing device and review program | |
WO2016189721A1 (en) | Source code evaluation device, source code evaluation method, and source code evaluation program | |
JP2021103354A (en) | Program testing method | |
JP6390217B2 (en) | Software change program, software change device, and software change method | |
JP5516277B2 (en) | Test case relation extraction method, test case relation extraction device, and test case relation extraction program | |
JP2013206310A (en) | Model inspection device, model inspection method, and program | |
JP6062735B2 (en) | Software development support device, software development support method, software development support program | |
JP7456843B2 (en) | Program modification device, program modification method, and program modification program | |
JP2018121245A (en) | Communication apparatus, communication specification difference extraction method, and communication specification difference extraction program | |
JP2011113298A (en) | Shared source code analysis system, program, and recording medium | |
JP6828812B2 (en) | Information processing equipment, information processing methods and programs | |
JP2015094964A (en) | Adverse effect detector | |
WO2020065960A1 (en) | Information processing device, control method, and program | |
JP6497271B2 (en) | Test data generation apparatus, method, and program | |
JP2019185215A (en) | Vector generation device and vector generation program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180115 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180912 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181016 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181217 |
|
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: 20190528 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190610 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6547345 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |