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 PDF

Info

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
Application number
JP2015053771A
Other languages
Japanese (ja)
Other versions
JP6547345B2 (en
Inventor
前田 芳晴
Yoshiharu Maeda
芳晴 前田
裕介 佐々木
Yusuke Sasaki
裕介 佐々木
忠弘 上原
Tadahiro Uehara
忠弘 上原
靖 郡司
Yasushi Gunji
靖 郡司
敬造 平
Keizo Taira
敬造 平
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015053771A priority Critical patent/JP6547345B2/en
Publication of JP2016173756A publication Critical patent/JP2016173756A/en
Application granted granted Critical
Publication of JP6547345B2 publication Critical patent/JP6547345B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To reduce the number of extractions of test cases.SOLUTION: A program conversion unit 16 of a test case generation device 10 converts an object program including check processing for determining whether input data satisfies prescribed conditions into an object program excluding the check processing. A check condition controller 17 controls an addition of prescribed check conditions into pass conditions following a prescribed instruction when a symbolic execution is conducted on the object program which has been converted to the program excluding the check processing. A symbolic execution controller 19 conducts the symbolic execution and outputs results of the execution to the symbolic execution output unit 20. A test case output unit 21 stores pass and pass conditions that were outputted from the symbolic execution output unit as a test case in a test case DB12.SELECTED DRAWING: Figure 2

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.

特開2000−339192号公報JP 2000-339192 A 特開2007−41804号公報JP 2007-41804 A 特開2013−143067号公報JP 2013-143067 A

しかしながら、上記技術では、入力チェック処理のテストケースが必要以上に多く生成される。   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.

図1は、実施例1に係るシステムの全体構成例を示す図である。FIG. 1 is a diagram illustrating an example of the overall configuration of a system according to the first embodiment. 図2は、実施例1に係るテストケース生成装置の機能構成を示す機能ブロック図である。FIG. 2 is a functional block diagram illustrating a functional configuration of the test case generation device according to the first embodiment. 図3は、入力情報DBに記憶される情報の例を示す図である。FIG. 3 is a diagram illustrating an example of information stored in the input information DB. 図4は、入力情報DBに記憶される情報の別例を示す図である。FIG. 4 is a diagram illustrating another example of information stored in the input information DB. 図5は、チェック仕様分析の例を説明する図である。FIG. 5 is a diagram illustrating an example of check specification analysis. 図6は、チェック条件生成の例を説明する図である。FIG. 6 is a diagram illustrating an example of check condition generation. 図7は、プログラム変換の例を説明する図である。FIG. 7 is a diagram for explaining an example of program conversion. 図8は、失敗時のパス出力を説明する図である。FIG. 8 is a diagram for explaining path output upon failure. 図9は、成功時のパス出力を説明する図である。FIG. 9 is a diagram for explaining path output upon success. 図10は、テストケース出力を説明する図である。FIG. 10 is a diagram for explaining the test case output. 図11は、全体的な処理の流れを説明するフローチャートである。FIG. 11 is a flowchart for explaining the overall processing flow. 図12は、チェック仕様分析およびチェック条件生成の処理の流れを説明するフローチャートである。FIG. 12 is a flowchart for explaining the flow of processing of check specification analysis and check condition generation. 図13は、プログラム変換処理の流れを説明するフローチャートである。FIG. 13 is a flowchart for explaining the flow of the program conversion process. 図14は、チェック条件追加処理の流れを説明するフローチャートである。FIG. 14 is a flowchart for explaining the flow of the check condition adding process. 図15は、テストケース出力処理の流れを説明するフローチャートである。FIG. 15 is a flowchart for explaining the flow of the test case output process. 図16は、チェック条件が複数ある場合の例を説明する図である。FIG. 16 is a diagram illustrating an example when there are a plurality of check conditions. 図17は、ハードウェア構成例を説明する図である。FIG. 17 is a diagram illustrating a hardware configuration example.

以下に、本願の開示するテストケース生成プログラム、テストケース生成方法およびテストケース生成装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。   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 case generation device 10 is an example of a server or a personal computer that generates a test case by executing symbolic execution.

このテストケース生成装置10は、テストケース生成対象のプログラム、プログラムにおいて入力データが所定条件を満たすことを判定するチェック処理の仕様であるチェック仕様、チェック処理の該当箇所を示すチェック部分情報を受け付ける。そして、テストケース生成装置10は、これらの入力情報を用いて、テストケースを生成する。なお、本実施例では、COBOLプログラムを例にして説明するが、これに限定されるものではなく、C言語など他のプログラムでも同様に実行できる。   The test case generation apparatus 10 receives a test case generation target program, a check specification that is a specification of a check process for determining whether input data satisfies a predetermined condition in the program, and check partial information indicating a corresponding part of the check process. And the test case production | generation apparatus 10 produces | generates a test case using such input information. In the present embodiment, the COBOL program will be described as an example. However, the present invention is not limited to this, and other programs such as C language can be similarly executed.

具体的には、テストケース生成装置10は、入力データが所定条件を満たすことを判定するチェック処理を含んだ対象プログラムを、当該チェック処理を除外した対象プログラムに変換する。そして、テストケース生成装置10は、変換された対象プログラムに対してシンボリック実行が行われる際に、所定の命令において所定のチェック条件をパス条件に追加するよう制御する。   Specifically, the test case generation device 10 converts a target program including a check process for determining that input data satisfies a predetermined condition into a target program excluding the check process. Then, the test case generation apparatus 10 controls to add a predetermined check condition to the path condition in a predetermined instruction when symbolic execution is performed on the converted target program.

つまり、テストケース生成装置10は、プログラムを入力チェックの条件分岐が除外された成功用と失敗用とに変換し、入力チェックの成功条件と失敗条件をパス条件に追加しながらシンボリック実行する。この結果、テストケース生成装置10は、実行結果として得るテストケース数を削減できる。   That is, the test case generation apparatus 10 converts the program into a success type and a failure type from which the conditional branch of the input check is excluded, and executes symbolically while adding the input check success condition and the failure condition to the path condition. As a result, the test case generation device 10 can reduce the number of test cases obtained as an execution result.

[機能構成]
図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 case generation apparatus 10 includes an input information DB 11, a test case DB 12, an input unit 13, a check specification analysis unit 14, a check condition generation unit 15, a program conversion unit 16, and a check condition control unit 17. . In addition, the test case generation apparatus 10 includes a symbolic execution input unit 18, a symbolic execution control unit 19, a symbolic execution output unit 20, and a test case output unit 21.

なお、入力情報DB11、テストケースDB12は、メモリやハードディスクなどの記憶装置に記憶されるデータベースである。入力部13、チェック仕様分析部14、チェック条件生成部15、プログラム変換部16、チェック条件制御部17、シンボリック実行入力部18、シンボリック実行制御部19、シンボリック実行出力部20、テストケース出力部21は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。また、入力部13、チェック仕様分析部14、チェック条件生成部15、プログラム変換部16、チェック条件制御部17は、シンボリック実行を行う前の前処理を実行する処理部である。   The input information DB 11 and the test case DB 12 are databases stored in a storage device such as a memory or a hard disk. Input unit 13, check specification analysis unit 14, check condition generation unit 15, program conversion unit 16, check condition control unit 17, symbolic execution input unit 18, symbolic execution control unit 19, symbolic execution output unit 20, test case output unit 21 Is an example of an electronic circuit included in the processor and an example of a process executed by the processor. In addition, the input unit 13, the check specification analysis unit 14, the check condition generation unit 15, the program conversion unit 16, and the check condition control unit 17 are processing units that perform preprocessing before performing symbolic execution.

入力情報DB11は、テストケース生成対象のプログラム、チェック仕様、チェック部分情報を記憶するデータベースである。ここで記憶される情報は、例えば管理者等が格納してもよく、CASE(Computer Aided Software Engineering)ツールなどで生成される情報を格納してもよい。CASEツールとは、設計情報からプログラム等のソフトウェア製品を自動生成する機能を備えるものである。また、入力情報DB11は、上記各情報をまとめた1つの情報で記憶することもでき、各情報を記憶することもできる。   The input information DB 11 is a database that stores a test case generation target program, check specifications, and check partial information. The information stored here may be stored, for example, by an administrator or the like, or information generated by a CASE (Computer Aided Software Engineering) tool or the like may be stored. The CASE tool has a function of automatically generating a software product such as a program from design information. Further, the input information DB 11 can store one piece of the above information and can also store each piece of information.

図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 input information DB 11 can also store each information separately. FIG. 4 is a diagram illustrating another example of information stored in the input information DB. The example of FIG. 4 is an example in which a test case generation target program, a check specification, and a check processing part are stored separately.

図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 case output part 21 mentioned later, the detail is mentioned later.

入力部13は、前処理において、テストケース生成対象のプログラムとチェック仕様とチェック処理部分の情報を取得する処理部である。具体的には、入力部13は、例えばキーボードによる入力等によりシンボリック実行の開始指示を受け付けると、入力情報DB11に記憶される情報を読み込んで、チェック仕様分析部14とプログラム変換部16に出力する。   The input unit 13 is a processing unit that acquires information on a test case generation target program, a check specification, and a check processing part in the preprocessing. Specifically, when the input unit 13 receives a symbolic execution start instruction by, for example, input from a keyboard, the input unit 13 reads information stored in the input information DB 11 and outputs the information to the check specification analysis unit 14 and the program conversion unit 16. .

チェック仕様分析部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 input unit 13.

図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 numerical value 1 is assigned to the variable “check result” when the check fails from the description of “$ ERROR check result = 1” on the 18th line. Further, the check specification analysis unit 14 specifies that the input is given from the outside and is a three-digit character string (X (3)) from the descriptions of the fifth and sixth lines.

そして、チェック仕様分析部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 numerical value 1 is assigned to the variable “check result”, the check specification analysis unit 14 sets “check result = 1” to “error”. Thereafter, the check specification analysis unit 14 outputs the generated analysis result to the check condition generation unit 15.

チェック条件生成部15は、プログラムとチェック処理の仕様とに基づいて、チェック処理が成功する成功条件とチェック処理が失敗する失敗条件とを生成する処理部である。具体的には、チェック条件生成部15は、チェック仕様分析部14から分析結果が入力されると、分析結果の「型」および「チェック種別」から、「型」が成功する条件と失敗する条件を生成する。   The check condition generation unit 15 is a processing unit that generates a success condition in which the check process is successful and a failure condition in which the check process fails based on the program and the specification of the check process. Specifically, when the analysis result is input from the check specification analysis unit 14, the check condition generation unit 15 determines whether the “type” succeeds or fails from the “type” and “check type” of the analysis result. Is generated.

図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 condition generation unit 15 includes the input three characters because the “type” of the analysis result is “X (3)” and the check type is the character type “English capital letter”. A condition in which the character string is all capital letters is a success condition, and a condition in which any of the inputted three character strings is not a capital letter is a failure condition. That is, the check condition generation unit 15 sets a condition that the input character string is all capital letters as a success condition and a condition that the input character string is not capital letters as a failure condition.

具体的には、図6に示すように、チェック条件生成部15は、「No、行番号、成否、チェック条件」を有する情報を生成して、プログラム変換部16とチェック条件制御部17に出力する。   Specifically, as shown in FIG. 6, the check condition generation unit 15 generates information having “No, line number, success / failure, check condition” and outputs the information to the program conversion unit 16 and the check condition control unit 17. To do.

ここで「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 condition generation unit 15 sets “('A' <= input (1: 1) AND input (1: 1) <= 'Z') AND (' A '<= input (2: 1) AND input (2: 1) <=' Z ') AND (' A '<= input (3: 1) AND input (3: 1) <=' Z ') " Is generated. Further, the check condition generation unit 15 generates a NOT success condition as a failure condition that satisfies the above conditions. That is, the check condition generation unit 15 generates “NOT (('A' <= input (1: 1) AND input (1: 1) <= 'Z') AND ('A' <= input (2: 1) AND input (2: 1) <= 'Z') AND ('A' <= input (3: 1) AND input (3: 1) <= 'Z')) "is generated.

プログラム変換部16は、入力データが所定条件を満たすことを判定するチェック処理を含んだプログラムを、当該チェック処理を除外したプログラムに変換する処理部である。具体的には、プログラム変換部16は、対象のプログラムから、チェック処理が成功する成功用のプログラムと、チェック処理が失敗する失敗用のプログラムとを複製して、チェック条件制御部17に出力する。   The program conversion unit 16 is a processing unit that converts a program including a check process for determining that input data satisfies a predetermined condition into a program excluding the check process. Specifically, the program conversion unit 16 duplicates a success program for which the check process is successful and a failure program for which the check process fails from the target program, and outputs the duplicated program to the check condition control unit 17. .

図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 program conversion unit 16 sets the program read by the input unit 13 to be excluded from the execution of the check process, and adds a command statement for executing the subsequent process after the check process is successful. Convert to a successful program. For example, the program conversion unit 16 rewrites the 15th line, which is the start of the check specification information of the program and is commented out, with the instruction “CONTINUE”. Furthermore, the program conversion unit 16 has a check process start mark on the 19th line and a check process end mark on the 21st line, so the 20th line between them is commented out and excluded from the processing target. In this way, the program conversion unit 16 generates a success program.

また、プログラム変換部16は、入力部13が読み込んだプログラムを、チェック処理を実行対象外に設定し、チェック処理が失敗した際に実行される命令文を追加した失敗用のプログラムに変換する。例えば、プログラム変換部16は、プログラムのチェック仕様情報の開始でありコメントアウトされている15行目を命令文「MOVE 1 TO チェック結果」に書き換える。さらに、プログラム変換部16は、19行目にチェック処理の開始の印、21行目にチェック処理の終了の印があるので、それらの間の20行目をコメントアウトして処理対象から除外する。このようにして、プログラム変換部16は、失敗用のプログラムを生成する。   In addition, the program conversion unit 16 converts the program read by the input unit 13 into a failure program in which a check process is set to be excluded from execution targets and an instruction sentence to be executed when the check process fails is added. For example, the program conversion unit 16 rewrites the comment line “15th line”, which is the start of the check specification information of the program, to the statement “MOVE 1 TO check result”. Furthermore, the program conversion unit 16 has a check process start mark on the 19th line and a check process end mark on the 21st line, so the 20th line between them is commented out and excluded from the processing target. In this way, the program conversion unit 16 generates a failure program.

チェック条件制御部17は、変換されたプログラムに対してシンボリック実行が行われる際に、所定の命令において所定のチェック条件をパス条件に追加するよう制御する処理部である。具体的には、チェック条件制御部17は、成功用のプログラムに対してシンボリック実行が行われる際に、成功条件をパス条件に追加するよう制御し、失敗用のプログラムに対してシンボリック実行が行われる際に、失敗条件をパス条件に追加するよう制御する。   The check condition control unit 17 is a processing unit that controls to add a predetermined check condition to a path condition in a predetermined instruction when symbolic execution is performed on the converted program. Specifically, the check condition control unit 17 controls to add the success condition to the path condition when the symbolic execution is performed on the success program, and the symbolic execution is performed on the failure program. Control to add a failure condition to the path condition.

つまり、チェック条件制御部17は、変換後プログラムと対応するチェック条件を管理してシンボリック実行で実行される命令文を監視して、規定の命令文で規定のチェック条件をパス条件に追加する。また、チェック条件制御部17は、プログラム変換部16から入力された成功用のプログラムおよび失敗用のプログラムをシンボリック実行入力部18に出力する。   That is, the check condition control unit 17 manages the check conditions corresponding to the converted program, monitors the command sentence executed by symbolic execution, and adds the specified check condition to the path condition using the specified command sentence. The check condition control unit 17 outputs the success program and the failure program input from the program conversion unit 16 to the symbolic execution input unit 18.

シンボリック実行入力部18は、チェック条件制御部17から、シンボリック実行の対象として成功用のプログラムおよび失敗用のプログラムを受け付けて、シンボリック実行制御部19に出力する処理部である。   The symbolic execution input unit 18 is a processing unit that receives a success program and a failure program as targets of symbolic execution from the check condition control unit 17 and outputs them to the symbolic execution control unit 19.

シンボリック実行制御部19は、プログラムの外部変数にシンボル値を設定し、シンボル値のままプログラム実行をエミュレートしてパスを模擬的に実行する処理部である。ここでは、シンボリック実行制御部19は、シンボリック実行入力部18から入力される成功用のプログラムおよび失敗用のプログラムそれぞれについて、シンボリック実行を実行して、その結果をシンボリック実行出力部20に出力する。   The symbolic execution control unit 19 is a processing unit that sets a symbol value in an external variable of a program, emulates program execution with the symbol value, and executes a path in a simulated manner. Here, the symbolic execution control unit 19 executes symbolic execution for each of the success program and the failure program input from the symbolic execution input unit 18, and outputs the result to the symbolic execution output unit 20.

シンボリック実行出力部20は、実行可能なパスとパス条件を、テストケース出力部21に出力する処理部である。テストケース出力部21は、シンボリック実行出力部20から出力されたパスとパス条件をテストケースとして、テストケースDB12に格納する処理部である。なお、1組のパスとパス条件が1個のテストケースに該当する。   The symbolic execution output unit 20 is a processing unit that outputs executable paths and path conditions to the test case output unit 21. The test case output unit 21 is a processing unit that stores the path and path condition output from the symbolic execution output unit 20 as a test case in the test case DB 12. One set of paths and path conditions correspond to one test case.

ここで、図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 condition control unit 17 monitors the symbolic execution control unit 19 to emulate the execution of the command statement according to the prescribed execution order, and the monitoring target line number “15” is executed. Then, a check condition for failure corresponding to the line number “15” is extracted.

具体的には、シンボリック実行出力部20が、チェック条件制御部17の監視の元で失敗用のプログラムをシンボリック実行すると、15行目において書き換えられた命令文「MOVE 1 TO チェック結果」によって、「チェック結果」項目に1が設定される。同時に、チェック条件制御部17は、15行目の命令文の実行時に、チェック条件生成部15によって生成されたチェック失敗条件をパス条件に追加する。   Specifically, when the symbolic execution output unit 20 executes symbolic execution of the program for failure under the monitoring of the check condition control unit 17, the instruction sentence “MOVE 1 TO check result” rewritten in the 15th line indicates “ 1 is set in the “check result” item. At the same time, the check condition control unit 17 adds the check failure condition generated by the check condition generation unit 15 to the path condition when executing the command statement on the 15th line.

引き続き、シンボリック実行出力部20によってシンボリック実行が行われると、次いで、23行目のIF文の分岐条件がFalseでELSEが実行され、「チェック失敗」セクションを実行して終了するパスが1個抽出される。この実行パスから、チェック失敗の1個のテストケースが生成される。   Subsequently, when the symbolic execution is performed by the symbolic execution output unit 20, the ELSE is executed with the branch condition of the IF statement on the 23rd line being False, and one path that ends by executing the “check failure” section is extracted. Is done. From this execution path, one test case with failed check is generated.

つまり、チェック条件制御部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 condition control unit 17 determines that “NOT (('A' <= input (1: 1) AND input (1: 1) <= 'Z') AND ('A' <= input (2: 1) AND input (2: 1) <= 'Z') AND ('A' <= input (3: 1) AND input (3: 1) <= 'Z')) "is extracted. Here, the symbolic execution output unit 20 is a program in the case where the check process fails, and since there are no more branches, the test case that satisfies the check failure condition is output.

また、図9に示すように、チェック条件制御部17は、シンボリック実行制御部19によって規定の実行順にしたがって命令文の実行がエミュレートされるのを監視し、監視対象の行番号「15」が実行されると、行番号「15」に対応する成功用のチェック条件を抽出する。   As shown in FIG. 9, the check condition control unit 17 monitors the symbolic execution control unit 19 to emulate the execution of the command statement in the prescribed execution order, and the line number “15” to be monitored is When executed, a check condition for success corresponding to the line number “15” is extracted.

具体的には、シンボリック実行出力部20が、チェック条件制御部17の監視の元で成功用プログラムをシンボリック実行すると、15行目のCONTINUE文でチェック成功の条件がパス条件に追加される。次いで、23行目のIF文の分岐条件がTrueでTHENが実行される。さらに、メイン処理内の30行目のIF文の条件分岐は、真偽とも充足可能であるため2つのパスが抽出され、2つのテストケースが生成される。   Specifically, when the symbolic execution output unit 20 performs symbolic execution of the success program under the monitoring of the check condition control unit 17, the check success condition is added to the path condition by the CONTINUE statement on the 15th line. Next, THEN is executed when the branch condition of the IF statement on the 23rd line is True. Furthermore, since the conditional branch of the IF statement on the 30th line in the main process can be satisfied both true and false, two paths are extracted and two test cases are generated.

つまり、チェック条件制御部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 condition control unit 17 reads “('A' <= input (1: 1) AND input (1: 1) <= 'Z') AND ('A' <= input (2: 1) AND input. (2: 1) <= 'Z') AND ('A' <= input (3: 1) AND input (3: 1) <= 'Z') "is extracted. Here, the symbolic execution output unit 20 includes a test case that satisfies “(check success condition) AND (30th line IF statement condition is True)” and “(check success condition) AND ( A test case that satisfies “Not (true) in IF statement condition on line 30” is output.

次に、図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 case output unit 21 receives one check condition described in the input 1 from the symbolic execution output unit 20 when performing symbolic execution on a program for failure. In addition, the test case output unit 21 receives two check conditions described in the input 2 from the symbolic execution output unit 20 when performing symbolic execution on a success program. Then, the test case output unit 21 merges these check conditions and stores them in the test case DB 12.

[処理の流れ]
次に、上述した各処理部が実行する処理について説明する。なお、シンボリック実行は、一般的なシンボリック実行と同様の処理なので、詳細な説明は省略する。
[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 case generation device 10 reads the correspondence between the input check specification and the program part from the input information DB 11 (S101).

続いて、テストケース生成装置10は、プログラムと関連付けられたチェック仕様情報から入力チェック(チェック処理)の成功と失敗のパス条件を生成する(S102)。そして、テストケース生成装置10は、プログラムと関連付けられたチェック処理部分の印(コメント)を用いて、プログラムを入力チェックの成功用と失敗用とに変換する(S103)。   Subsequently, the test case generation apparatus 10 generates pass conditions for success and failure of the input check (check process) from the check specification information associated with the program (S102). Then, the test case generation apparatus 10 converts the program into a success check for input check and a failure check using the check processing part mark (comment) associated with the program (S103).

続いて、テストケース生成装置10は、成功用と失敗用とのプログラムそれぞれについてシンボリック実行を行い、特定の命令文に到達したら、入力チェックのパス条件を付加する(S104)。その後、テストケース生成装置10は、成功用と失敗用のテストケースを集計して、テスト対象プログラムのテストケースとする(S105)。   Subsequently, the test case generation device 10 performs symbolic execution for each of the success program and the failure program, and adds a path condition for input check when a specific command statement is reached (S104). Thereafter, the test case generation apparatus 10 aggregates the test cases for success and failure and sets them as test cases for the test target program (S105).

(チェック仕様分析、チェック条件生成)
図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 condition generation unit 15 acquires check specification information from the check specification analysis unit 14 (S204). Subsequently, the check condition generation unit 15 generates a success and failure check condition according to the check type based on the check specification information (S205), and the program conversion unit displays the generated success check condition and failure check condition. 16 and the check condition control unit 17 (S206).

(プログラム変換)
図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 program conversion unit 16 acquires a program and check specification information from the input unit 13 or the like (S301), and determines whether or not there is an unprocessed check process in the program (S302).

そして、プログラム変換部16は、未処理のチェック処理がある場合(S302:Yes)、未処理のチェック処理を1つ選択してプログラムを複製する(S303)。続いて、プログラム変換部16は、当該チェック処理の行番号に、エラー(失敗)の情報に基づいて、当該チェックの失敗の命令文に書き換える(S304)。   When there is an unprocessed check process (S302: Yes), the program conversion unit 16 selects one unprocessed check process and duplicates the program (S303). Subsequently, the program conversion unit 16 rewrites the line number of the check process into a statement of the check failure based on the error (failure) information (S304).

そして、プログラム変換部16は、当該チェック処理以外のチェック処理の行番号に、チェック成功を示す命令文「CONTINUE」に書き換え(S305)、全てのチェック処理のプログラム部分をコメントアウト(除外)する(S306)。その後、プログラム変換部16は、変換されたプログラムを当該チェック処理の失敗を関連付けて、メモリ等に記録する(S307)。   Then, the program conversion unit 16 rewrites the line number of the check process other than the check process to the command statement “CONTINUE” indicating the success of the check (S305), and comments out (excludes) the program part of all the check processes (S306). ). Thereafter, the program conversion unit 16 records the converted program in a memory or the like in association with the failure of the check process (S307).

一方、プログラム変換部16は、未処理のチェック処理がない場合(S302:No)、プログラムを複製する(S308)。続いて、プログラム変換部16は、全てのチェック処理の行番号に、チェック成功を示す命令文「CONTINUE」に書き換える(S309)。   On the other hand, when there is no unprocessed check process (S302: No), the program conversion unit 16 duplicates the program (S308). Subsequently, the program conversion unit 16 rewrites all check processing line numbers to a command statement “CONTINUE” indicating a successful check (S309).

その後、プログラム変換部16は、変換されたプログラムを全チェック処理の成功を関連付けて、メモリ等に記録する(S310)。   Thereafter, the program conversion unit 16 records the converted program in a memory or the like in association with the success of all the check processes (S310).

(チェック条件追加)
図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 condition control unit 17 acquires the converted program and the check condition (S401), and determines whether there is an unprocessed check process in the program (S402).

続いて、チェック条件制御部17は、未処理のチェック処理がある場合(S402:Yes)、未処理のプログラムに対応するチェック条件を取得し、当該プログラムを対象としてシンボリック実行の分析を開始する(S403)。ここで、シンボリック実行制御部19は、該当プログラムのシンボリック実行を開始する。   Subsequently, when there is an unprocessed check process (S402: Yes), the check condition control unit 17 acquires a check condition corresponding to the unprocessed program, and starts an analysis of symbolic execution for the program (see FIG. S403). Here, the symbolic execution control unit 19 starts symbolic execution of the program.

そして、シンボリック実行制御部19は、プログラム終了の命令文ではない場合(S404:No)、命令文の処理をエミュレートする(S405)。続いて、チェック条件制御部17は、チェック条件の行番号の命令文である場合(S406:Yes)、チェック条件の行番号の命令文で、規定チェック条件をパス条件に追加する(S407)。   Then, if the symbolic execution control unit 19 is not an instruction sentence for ending the program (S404: No), it emulates the processing of the instruction sentence (S405). Subsequently, when the check condition control unit 17 is the command statement of the line number of the check condition (S406: Yes), the check condition control unit 17 adds the specified check condition to the path condition by the command statement of the line number of the check condition (S407).

その後、シンボリック実行制御部19は、次の命令文を取得し(S408)、S404以降を繰り返す。一方、チェック条件の行番号の命令文ではない場合(S406:No)、S407を実行することなく、S408が実行される。   Thereafter, the symbolic execution control unit 19 acquires the next command statement (S408), and repeats S404 and subsequent steps. On the other hand, when it is not the command statement of the line number of the check condition (S406: No), S408 is executed without executing S407.

また、S404において、シンボリック実行出力部20は、プログラム終了の命令文である場合(S404:Yes)、テストケースを記録する(S409)。また、S402において、未処理のチェック処理がない場合(S402:No)、シンボリック実行出力部20は、生成したテストケースをプログラムと関連付けて出力する(S410)。   In S404, the symbolic execution output unit 20 records a test case when the instruction is a program end command (S404: Yes) (S409). In S402, if there is no unprocessed check process (S402: No), the symbolic execution output unit 20 outputs the generated test case in association with the program (S410).

(テストケース出力)
図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 case output unit 21 acquires a test case list (pass condition) for each post-conversion program from the symbolic execution output unit 20 (S501).

続いて、テストケース出力部21は、未処理のテストケースリストがある場合(S502:Yes)、選択したテストケースリストから順にパス条件を取り出す(S503)。そして、テストケース出力部21は、未処理のパス条件がある場合(S504:Yes)、集計テストケースのパス条件と一致するか否かを判定する(S505)。   Subsequently, when there is an unprocessed test case list (S502: Yes), the test case output unit 21 sequentially extracts path conditions from the selected test case list (S503). Then, when there is an unprocessed path condition (S504: Yes), the test case output unit 21 determines whether or not the path condition of the total test case matches (S505).

その後、テストケース出力部21は、集計テストケースのパス条件と一致しない場合(S505:Yes)、当該パス条件のテストケースを集計テストケースに追加し(S506)、S504以降を繰り返す。また、テストケース出力部21は、集計テストケースのパス条件と一致する場合(S505:No)、S506を実行することなく、S504以降を繰り返す。   Thereafter, when the test condition output unit 21 does not match the pass condition of the total test case (S505: Yes), the test case output unit 21 adds the test case of the pass condition to the total test case (S506), and repeats S504 and subsequent steps. Further, when the test case output unit 21 matches the pass condition of the total test case (S505: No), S504 and the subsequent steps are repeated without executing S506.

一方、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 case output unit 21 repeats S502 and subsequent steps. In S502, when there is no unprocessed test case list (S502: No), the test case output unit 21 outputs the total test case to the test case DB 12 (S507).

このフローにおいて集計テストケースのパス条件と一致しないかを判定している部分は、パス条件が同一、つまり、同一のテストケースが重複しないように集計する処理である。テストケース生成装置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 case generation apparatus 10 extracts a test case by executing a plurality of converted programs symbolically under the control of the check condition control unit 17. Here, before a check process (input check process), when a program in which another process other than the input check exists is input and a conditional branch exists in another process, the program is input to the test case output unit 21. Since duplication occurs in the test condition path conditions, duplication is eliminated by this processing.

[効果]
実施例1によれば、テストケース生成装置10は、入力チェック処理とメイン処理を含むようなプログラムに対して、プログラム全体のロジック内容は変えずに入力チェック処理を除外し、シンボリック実行でのパス追跡時の適切な命令文で、入力チェックのパス条件を追加することができる。また、テストケース生成装置10は、入力チェックを過剰にテストするようなテストケースを除外して、テストケースを生成することができる。この結果、テストケース生成装置10は、テストケース個数を削減し、さらに、テストケースの生成時間を短縮することができる。
[effect]
According to the first embodiment, the test case generation apparatus 10 excludes the input check process without changing the logic content of the entire program for the program including the input check process and the main process, and passes the path in the symbolic execution. An input check pass condition can be added with an appropriate statement at the time of tracking. Further, the test case generation apparatus 10 can generate a test case by excluding test cases that excessively test the input check. As a result, the test case generation apparatus 10 can reduce the number of test cases and further reduce the test case generation time.

[チェック条件が複数]
テストケース生成装置10は、チェック条件が複数あった場合でも同様に処理することができる。図16は、チェック条件が複数ある場合の例を説明する図である。図16の上図には一般的なチェック条件に関する情報を例示する。
[Multiple check conditions]
The test case generation device 10 can perform the same processing even when there are a plurality of check conditions. FIG. 16 is a diagram illustrating an example when there are a plurality of check conditions. The upper diagram of FIG. 16 illustrates information on general check conditions.

図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 input unit 13 reads check specification information in a table format, for example. In the example of FIG. 16, No = 1 is the check specification information from the 100th line to the 110th line of the program, the check type is the value range, the check target is item 1, and the check condition is the minimum value “0 <=”. In this example, only (0 or more) is specified. For No = 2, the 200th to 220th lines of the program are the check specification information, the check type is the value range, the check target is item 2, and the check condition is the minimum value “0 <=” (0 or more) and the maximum In this example, both values “<100” (less than 100) are specified. In No = 3, the 300th to 330th lines of the program are check specification information, the check type is an enumerated value, the check target is item 3, and the check condition is an enumerated value {'A', 'B', 'C '} Is an example included. In both cases, the error processing is “check result = 1” in which 1 is assigned to the check result.

続いて、チェック仕様分析部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 = item 1, type = 9 (3), the minimum value is 0 or more as the check type, and “check result = 1” is extracted as error processing. For No = 2, line number = 200, item = item 2, type = 9 (3), the minimum value is 0 or more and the maximum value is less than 100 as the check type, and “check result = 1” is extracted as error processing. The For No = 3, line number = 300, item = item 3, type = X (2), check type (enumerated value) = “A, B, C”, “check result = 1” is extracted as error processing The Type = 9 (3) means a three-digit number.

そして、チェック条件生成部15は、成功条件と失敗条件を生成する。なお、失敗条件は、NOT成功条件である。上記例では、チェック条件生成部15は、対象プログラムについて、抽出された行番号ごとに成功条件と失敗条件を生成するので、合計6個の条件を生成する。   Then, the check condition generation unit 15 generates a success condition and a failure condition. The failure condition is a NOT success condition. In the above example, the check condition generation unit 15 generates a success condition and a failure condition for each extracted line number for the target program, and thus generates a total of six conditions.

一例を挙げると、行番号100については、成功条件として「0<=項目1」が生成され、失敗条件として「NOT(0<=項目1)」が生成される。また、行番号200については、成功条件として「(0<=項目2)AND(項目2<100)」が生成され、失敗条件として「NOT((0<=項目2)AND(項目2<100))」が生成される。   As an example, for row number 100, “0 <= item 1” is generated as a success condition, and “NOT (0 <= item 1)” is generated as a failure condition. For the line number 200, “(0 <= item 2) AND (item 2 <100)” is generated as a success condition, and “NOT ((0 <= item 2) AND (item 2 <100) is set as a failure condition. )) "Is generated.

その後、プログラム変換部16は、条件ごとに、条件を満たすプログラムを生成する。例えば、プログラム変換部16は、No.1−1の成功条件を満たすプログラム、No.1−2の失敗条件を満たすプログラム、No.2−1の成功条件を満たすプログラムなどを生成する。   Thereafter, the program conversion unit 16 generates a program that satisfies the conditions for each condition. For example, the program conversion unit 16 is No. 1-1, a program that satisfies the success condition 1-1. A program that satisfies the failure condition 1-2, No. A program or the like that satisfies the success condition of 2-1 is generated.

そして、チェック条件制御部17は、生成された各プログラムに対してシンボリック実行がされる際に、命令を監視し、該当行番号の命令が実行されたときに、該当するチェック条件をパス条件として抽出する。例えば、チェック条件制御部17は、項目1の成功用プログラムでは、100行目が実行されたときに「0<=項目1」を抽出する。このように、テストケース生成装置10は、チェック処理のチェック条件が複数あり、分岐が複雑な場合でも、各変換後プログラムと対応するチェック条件を管理してシンボリック実行で実行される命令文を監視して、規定の命令文で規定のチェック条件をパス条件に追加することができる。   Then, the check condition control unit 17 monitors the instruction when the generated program is symbolically executed, and when the instruction of the corresponding line number is executed, the corresponding check condition is set as a path condition. Extract. For example, in the success program of item 1, the check condition control unit 17 extracts “0 <= item 1” when the 100th line is executed. As described above, the test case generation apparatus 10 monitors check statements executed by symbolic execution by managing check conditions corresponding to each converted program even when there are multiple check processing check conditions and the branch is complicated. Thus, a specified check condition can be added to the path condition with a specified command statement.

さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。   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 case generation apparatus 10 has been described as having both the processing unit that generates the test case and the processing unit that executes symbolic execution. However, the present invention is not limited to this. For example, the input unit 13, the check specification analysis unit 14, the check condition generation unit 15, the program conversion unit 16, the check condition control unit 17, and the test case output unit 21 are generated, a symbolic execution input unit 18, and a symbolic execution control unit 19. It can also be divided into a symbolic execution device having a symbolic execution output unit 20.

[システム]
また、図示した装置の各構成は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、任意の単位で分散または統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、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 case generation apparatus 10 described in the present embodiment can execute the same function as the process described in FIG. 2 and the like by reading and executing the test case generation program. For example, the test case generation apparatus 10 includes an input unit 13, a check specification analysis unit 14, a check condition generation unit 15, a program conversion unit 16, a check condition control unit 17, a symbolic execution input unit 18, a symbolic execution control unit 19, and a symbolic execution. A program having functions similar to those of the output unit 20 and the test case output unit 21 is expanded in the memory. The test case generation apparatus 10 includes an input unit 13, a check specification analysis unit 14, a check condition generation unit 15, a program conversion unit 16, a check condition control unit 17, a symbolic execution input unit 18, a symbolic execution control unit 19, and a symbolic execution. By executing a process for executing processing similar to that performed by the output unit 20 and the test case output unit 21, processing similar to that in the above-described embodiment can be performed.

このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(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 case generation apparatus 10 can be realized by the following hardware configuration, for example. FIG. 17 is a diagram illustrating a hardware configuration example. As shown in FIG. 17, the test case generation apparatus 10 includes a communication interface 10a, an HDD (Hard Disk Drive) 10b, a memory 10c, and a processor 10d.

プロセッサ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 processor 10d include a central processing unit (CPU), a digital signal processor (DSP), a field programmable gate array (FPGA), and a programmable logic device (PLD). Examples of the memory 10c include a RAM (Random Access Memory) such as SDRAM (Synchronous Dynamic Random Access Memory), a ROM (Read Only Memory), a flash memory, and the like.

そして、テストケース生成装置10で行われる各種処理機能は、不揮発性記憶媒体などの各種メモリに格納されたプログラムを制御装置が備えるプロセッサで実行することによって実現してもよい。すなわち、入力部13、チェック仕様分析部14、チェック条件生成部15、プログラム変換部16、チェック条件制御部17、シンボリック実行入力部18、シンボリック実行制御部19、シンボリック実行出力部20、テストケース出力部21によって実行される各処理に対応するプログラムがメモリ10cに記録され、各プログラムがプロセッサ10dで実行されてもよい。   Various processing functions performed by the test case generation apparatus 10 may be realized by executing a program stored in various memories such as a nonvolatile storage medium by a processor included in the control device. That is, the input unit 13, check specification analysis unit 14, check condition generation unit 15, program conversion unit 16, check condition control unit 17, symbolic execution input unit 18, symbolic execution control unit 19, symbolic execution output unit 20, test case output A program corresponding to each process executed by the unit 21 may be recorded in the memory 10c, and each program may be executed by the processor 10d.

10 テストケース生成装置
11 入力情報DB
12 テストケースDB
13 入力部
14 チェック仕様分析部
15 チェック条件生成部
16 プログラム変換部
17 チェック条件制御部
18 シンボリック実行入力部
19 シンボリック実行制御部
20 シンボリック実行出力部
21 テストケース出力部
10 Test case generator 11 Input information DB
12 Test case DB
DESCRIPTION OF SYMBOLS 13 Input part 14 Check specification analysis part 15 Check condition production | generation part 16 Program conversion part 17 Check condition control part 18 Symbolic execution input part 19 Symbolic execution control part 20 Symbolic execution output part 21 Test case output part

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.
前記失敗条件を生成する処理は、前記成功条件の否定文を前記失敗条件として出力することを特徴とする請求項2に記載のテストケース生成プログラム。   The test case generation program according to claim 2, wherein the process of generating the failure condition outputs a negative sentence of the success condition as the failure condition. 前記変換する処理は、前記対象プログラムに対して前記チェック処理を実行対象外に設定し、前記チェック処理が成功して後続の処理が実行される命令文を追加した前記第1の対象プログラムを生成し、前記チェック処理が失敗した際に実行される命令文を追加した前記第2の対象プログラムを生成することを特徴とする請求項2に記載のテストケース生成プログラム。   The conversion process generates the first target program in which the check process is set to be excluded from the execution target for the target program, and a statement that adds the instruction that the check process succeeds and the subsequent process is executed is added. The test case generation program according to claim 2, wherein the second target program to which an instruction to be executed when the check process fails is added. コンピュータが、
入力データが所定条件を満たすことを判定するチェック処理を含んだ対象プログラムを、当該チェック処理を除外した対象プログラムに変換し、
変換された対象プログラムに対してシンボリック実行が行われる際に、所定の命令において所定のチェック条件をパス条件に追加するよう制御する
処理を含むことを特徴とするテストケース生成方法。
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.
JP2015053771A 2015-03-17 2015-03-17 Test case generation program, test case generation method and test case generation apparatus Active JP6547345B2 (en)

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 (1)

* Cited by examiner, † Cited by third party
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

Citations (2)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 (1)

* Cited by examiner, † Cited by third party
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

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
JP5440287B2 (en) Symbolic execution support program, method and apparatus
WO2018097022A1 (en) Automatic translation pattern learning device, automatic translation preprocessing device, and computer program
JP6547345B2 (en) Test case generation program, test case generation method and test case generation apparatus
JP6451417B2 (en) Debug support device, debug support system, debug support method, and debug support program
GB2513348A (en) Translation validation
JP7268759B2 (en) TEST DATA GENERATION DEVICE, TEST DATA GENERATION METHOD, AND PROGRAM
JP5578625B2 (en) Program analysis apparatus, program analysis 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
JP2011113298A (en) Shared source code analysis system, program, and recording medium
JP2012059202A (en) Test case generation device, test case generation method and test case generation program
JP6828812B2 (en) Information processing equipment, information processing methods and programs
WO2020065960A1 (en) Information processing device, control method, and program
JP2015094964A (en) Adverse effect detector
US20220405196A1 (en) Operation pattern generation apparatus, operation pattern generation method and program
JP6556091B2 (en) System specification verification support apparatus and system specification verification support method
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