JP5514143B2 - Test data generation apparatus and method - Google Patents

Test data generation apparatus and method Download PDF

Info

Publication number
JP5514143B2
JP5514143B2 JP2011087672A JP2011087672A JP5514143B2 JP 5514143 B2 JP5514143 B2 JP 5514143B2 JP 2011087672 A JP2011087672 A JP 2011087672A JP 2011087672 A JP2011087672 A JP 2011087672A JP 5514143 B2 JP5514143 B2 JP 5514143B2
Authority
JP
Japan
Prior art keywords
constraints
character string
test case
variables
constraint
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.)
Active
Application number
JP2011087672A
Other languages
Japanese (ja)
Other versions
JP2012221311A (en
Inventor
治門 丹野
暁晶 張
隆 星野
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2011087672A priority Critical patent/JP5514143B2/en
Publication of JP2012221311A publication Critical patent/JP2012221311A/en
Application granted granted Critical
Publication of JP5514143B2 publication Critical patent/JP5514143B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、テストデータ生成装置及び方法に係り、特に、ビジネスロジックとデータベース(DB)を結合されたときのプログラムの動作を確認するためのテストを行うためのテストデータを自動的に生成するためのテストデータ生成装置及び方法に関する。   The present invention relates to a test data generating apparatus and method, and more particularly to automatically generating test data for performing a test for confirming the operation of a program when business logic and a database (DB) are combined. The present invention relates to a test data generation apparatus and method.

一般に、ビジネスロジックとDBを結合させたときの動作を確認するためのテストである結合テストは、プログラムの一部を制御可能なダミー(スタブ、モック)に置き換えて行う単体テストと異なり、プログラム全体がテスト対象となるため、プログラムの内部を改変することができない。このため、テストで確認したいプログラムの振る舞いを引き起こすためには、適切に設定したパラメータをテスト対象プログラムに外部から与える必要がある。しかし、ビジネスロジックへの入力値と、DBレコード初期値を人手で用意するには手間が係り、効率的ではない。   In general, the integration test, which is a test for confirming the operation when the business logic and DB are combined, differs from the unit test performed by replacing a part of the program with a controllable dummy (stub, mock). Because it is a test target, the inside of the program cannot be modified. For this reason, in order to cause the behavior of the program to be confirmed by the test, it is necessary to provide an appropriately set parameter to the test target program from the outside. However, it takes time and labor to prepare the input value to the business logic and the initial value of the DB record manually, which is not efficient.

自動的にテストデータを生成する第1の技術として、入力値定義と処理フローを入力とし、特定のテストパスを通すための整数型、文字列型の入力値を生成することによりテストデータを生成する手法がある(例えば、非特許文献1参照)。   As the first technology to automatically generate test data, input data definition and processing flow are used as input, and test data is generated by generating integer type and string type input values for passing through a specific test path. (For example, refer nonpatent literature 1).

また、第2の技術として、DB定義を入力として、DB定義を満たし、かつ指定されたレコード数を持つDB初期状態(主に性能テスト向け)を生成する手法がある。   As a second technique, there is a method of generating a DB initial state (mainly for performance test) that satisfies a DB definition and has a specified number of records by using the DB definition as an input.

また、第3の技術として、入力値定義、DB定義、DB事前条件を入力として、入力値、DB初期状態を生成する手法がある(例えば、非特許文献2参照)。   As a third technique, there is a method of generating an input value and a DB initial state using an input value definition, a DB definition, and a DB precondition as inputs (see, for example, Non-Patent Document 2).

張暁晶、星野隆"設計モデルを用いたテスト項目抽出とテストデータ生成手法",信学技報,第109巻 of SS2009-7. pp.37-42. 2009.Akira Zhang, Takashi Hoshino "Test Item Extraction and Test Data Generation Method Using Design Model", IEICE Tech. Bulletin, Volume 109 of SS2009-7. Pp.37-42. 2009. 藤原翔一郎、宗像一樹、片山朝子、前田芳晴、大木憲二、上原忠弘、山本里枝子. Smt solverを利用したwebアプリケーション用テストデータの生成.情報処理学会創立50周年記念(第72回)全国大会講演論文集.2010.Shoichiro Fujiwara, Kazuki Munakata, Asako Katayama, Yoshiharu Maeda, Kenji Oki, Tadahiro Uehara, Rieko Yamamoto. Generation of test data for web applications using Smt solver. Proceedings of the IPSJ 50th Anniversary (72nd) National Convention. 2010.

しかしながら、上記従来の第1の技術は、DBの初期状態(DBテーブル型)のデータを生成することができない。また、DB検索条件を設計書から読み取っていないため特定のテストのパスを通すために入力値とDB初期状態が満たすべき制約に抜けがある。また、複雑なデータ構造(配列)や変数の複雑な相互依存関係があった場合に適切なテストデータが生成できない、という問題がある。   However, the first conventional technique cannot generate data in the initial DB state (DB table type). In addition, since the DB search condition is not read from the design document, there are omissions in the constraints that the input value and the DB initial state must satisfy in order to pass a specific test pass. In addition, there is a problem that appropriate test data cannot be generated when there is a complicated data structure (array) or complicated interdependency of variables.

また、仮に、従来の第1の技術と第2の技術を組み合わせて用いても、DB検索条件を設計情報として扱っていないため、DBのレコード検索結果の件数に依存する処理の分岐を制御するテストデータは生成することができない。また、第2の技術では、入力値とDB初期状態を個別に生成し、検索結果の件数が上限値、下限値で指定される範囲に収まるまで繰り返す方法もあるが、実用的な時間内で解くことができないという問題がある。   Even if the conventional first and second technologies are used in combination, the DB search condition is not handled as design information, and therefore, branching of processing depending on the number of DB record search results is controlled. Test data cannot be generated. In the second technique, there is a method of generating the input value and DB initial state separately and repeating until the number of search results falls within the range specified by the upper limit value and lower limit value. There is a problem that it cannot be solved.

また、第3の技術では、フロー図を扱うことができないため、特定のテストパスを通す入力値、DB初期状態を生成できない。さらに、DB初期状態に関する必要不可欠な制約(例えば、主キーに関する制約)で抜けがある。また、文字列変数同士の包含関係を扱うことができない、という問題がある。   In the third technique, since a flow diagram cannot be handled, it is not possible to generate an input value and a DB initial state that pass a specific test path. Furthermore, there are omissions due to indispensable restrictions on the DB initial state (for example, restrictions on the primary key). In addition, there is a problem that the inclusion relation between character string variables cannot be handled.

本発明は、上記の点に鑑みなされたもので、入力値定義、処理フロー図、DE定義などのソフトウェア設計情報を入力とし、処理の分岐を制御可能なテストデータを生成するテストデータ生成装置及び方法及びプログラムを提供することを目的とする。   The present invention has been made in view of the above points. A test data generation apparatus that generates input of software design information such as an input value definition, a process flow diagram, and a DE definition, and generates test data that can control the branch of the process, and An object is to provide a method and a program.

上記の課題を解決するために、本発明は、データベース(DB)に格納されているデータの読み出し操作を伴う機能性テストを実施するためのテストデータを生成するテストデータ生成装置であって、
テストケースを格納するテストケース記憶手段と、
設計情報として、ソフトウェアの入力値の定義域を表す入力値定義、ソフトウェアの処理の流れを表す処理フロー図、データベースの設計情報であるDB定義を取得し、入力変数、DBテーブル変数、及び該ソフトウェアの特定の振る舞いを引き起こすようにテストデータが満たすべき条件である制約を抽出し、前記テストケース記憶手段に格納するテストケース抽出手段と、
前記テストケース記憶手段から取得した、前記DBテーブル変数のレコード件数に関する制約を解き、該DBテーブル変数のレコード件数を決定し、前記テストケース記憶手段に格納するDBレコード件数決定手段と、
前記テストケース記憶手段から取得した、文字列型変数同士の包含関係に関する制約から、文字列長に関する制約を導出し、文字列型変数の文字列長と整数型変数に関する制約を解き、文字列長変数と整数型変数を前記テストケース記憶手段に格納する整数・文字列長決定手段と、
前記文字列型変数に関する制約を解き、該文字列型変数を構成する文字の値を決定し、前記テストケース記憶手段に格納する文字決定手段と、
前記テストケース記憶手段に格納されている前記入力変数、前記DBテーブル変数をテストデータとして出力する出力手段と、を有することを特徴とする。
In order to solve the above problems, the present invention is a test data generation device that generates test data for performing a functionality test that involves a read operation of data stored in a database (DB),
Test case storage means for storing test cases;
As design information, an input value definition that represents a domain of software input values, a process flow diagram that represents the flow of software processing, a DB definition that is database design information is acquired, input variables, DB table variables, and the software A test case extracting means for extracting a constraint that is a condition to be satisfied by the test data so as to cause a specific behavior of the test case, and storing it in the test case storage means;
Solving the restriction on the number of records of the DB table variable obtained from the test case storage means, determining the number of records of the DB table variable, and storing the number of DB records stored in the test case storage means;
Deriving constraints on the string length from the constraints on the inclusion relationship between the string type variables obtained from the test case storage means, solving the constraints on the string length of the string type variable and the integer type variable, and the string length Integer / character string length determining means for storing variables and integer variables in the test case storage means;
Character determination means for solving restrictions on the character string type variable, determining values of characters constituting the character string type variable, and storing them in the test case storage means;
Output means for outputting the input variables and the DB table variables stored in the test case storage means as test data.

また、前記テストケース抽出手段は、
前記入力値定義及び前記処理フロー図から「入力値に対する制約」を抽出し、該処理フロー図のDB検索条件から、「検索ヒット数、入力値、DB初期状態依存関係に関する制約」を抽出し、前記DB定義より「DB初期状態に対する制約」を抽出する手段を含む。
The test case extraction means includes
Extract “constraints on input values” from the input value definition and the processing flow diagram, and extract “constraints on the number of search hits, input values, DB initial state dependency” from the DB search conditions of the processing flow diagram, Means for extracting “constraints on the initial DB state” from the DB definition;

また、前記レコード件数決定手段は、
入れ子の配列に相当する複雑なDBテーブルのレコード群を検出した場合に、前記「検索ヒット数、入力値、DB初期状態依存関係に関する制約」に含まれる不等式で表された「DBテーブルのレコード群の件数に関する制約」を選択し、連立不等式として解くことでDBテーブル変数のDBレコード件数を決定する手段を含み、
前記整数・文字列長決定手段は、
入れ子の配列に相当する複雑なDBテーブルのレコード群を検出した場合に、前記テストケース抽出手段で抽出された前記「入力値に対する制約」、前記「検索ヒット数、入力値、DB初期状態依存関係に関する制約」、前記「DB初期状態に対する制約」のいずれかに含まれる、不等式で表された「文字列の長さに関する制約」を選択し、連立不等式として解くことで配列の長さを決定する手段を含む。
The record number determining means is
When a complex DB table record group corresponding to a nested array is detected, the “DB table record group represented by the inequalities included in the“ restrictions regarding the number of search hits, input values, and DB initial state dependency ” Including the means to determine the number of DB records in the DB table variable by selecting `` Restriction on number of cases '' and solving as simultaneous inequalities,
The integer / character string length determining means includes:
When a record group of a complicated DB table corresponding to a nested array is detected, the “constraints on input values” extracted by the test case extraction unit, the “number of search hits, input values, DB initial state dependency” ”Restriction on DB” and “Restriction on DB initial state”, select “Constraint on length of character string” expressed by inequalities, and determine the length of the array by solving as simultaneous inequalities Including means.

また、前記レコード件数決定手段は、
前記「DB初期状態に対する制約」のうち、DBレコードの主キー、外部キーに関する制約を選び、整数変数同士比較、または、文字列変数同士の比較とする制約に変形する手段を含む。
The record number determining means is
A means for selecting a constraint relating to the primary key and foreign key of the DB record from the “constraints on the DB initial state” and transforming the constraint into a comparison between integer variables or a comparison between character string variables;

また、前記整数・文字列長決定手段は、
前記「DB初期状態に対する制約」の中から、DBレコードの主キー、外部キーに関する制約を選び、整数変数同士比較に変換した制約、前記「入力値に対する制約」、前記「検索ヒット数、入力値、DB初期状態依存関係に関する制約」、前記「DB初期状態に対する制約」のいずれかに含まれる、不等式で表された「整数に関する制約」を選択し、選択された整数に関する制約を連立不等式として解き、制約群を満たす値を求める手段を含む。
The integer / character string length determining means includes:
Select constraints on the primary key and foreign key of the DB record from the “constraints on the DB initial state” and convert them into comparisons between integer variables, the “constraints on input values”, the “number of search hits, input values” , Constraints on DB initial state dependency ”and“ Constraints on DB initial state ”, select“ integer constraints ”expressed by inequalities, and solve constraints on selected integers as simultaneous inequalities And means for obtaining a value satisfying the constraint group.

また、前記文字決定手段は、
前記「入力値に対する制約」、前記「検索ヒット数、入力値、DB初期状態依存関係に関する制約」のいずれかに含まれる、文字列変数同士の包含関係に基づいて、該文字列変数同士の対応する位置に存在する文字がそれぞれ一致する文字を前記文字の値と決定する手段を含む。
The character determining means includes
Correspondence between the character string variables based on the inclusion relationship between the character string variables included in any one of the “restrictions on input values” and “restrictions on the number of search hits, input values, and DB initial state dependency” Means for determining a character that matches each of the characters existing at the position to be the value of the character.

上記のように、本発明によれば、処理の分岐を制御するためのテストデータが満たすべき条件を、制約充足問題における解くべき制約群として設計情報からもれなく抽出し、集約することで、処理の分岐を制御できるような入力値とDB初期状態の組合せを実用的な時間内で特定することができる。   As described above, according to the present invention, the conditions to be satisfied by the test data for controlling the branch of the process are extracted from the design information as a constraint group to be solved in the constraint satisfaction problem, and aggregated, so that A combination of an input value and a DB initial state that can control branching can be specified within a practical time.

また、本発明では、入れ子配列のような複雑なデータ構造を含むようなソフトウェアであっても、適切にテストデータを生成することができる。   In the present invention, even with software including a complicated data structure such as a nested array, test data can be appropriately generated.

また、整数変数同士の比較、文字列変数同士の包含関係(等価、前方一致、部分一致、後方一致)等の変数の複雑な相互関係を扱うテストデータを生成することができる。   Also, test data that handles complex interrelationships of variables such as comparison between integer variables and inclusion relations between character string variables (equivalent, forward match, partial match, backward match) can be generated.

本発明で用いられるフロー図の例である。It is an example of the flowchart used by this invention. 本発明で用いられるテストパスの例である。It is an example of the test path | pass used by this invention. 本発明で用いられる入力値定義の例である。It is an example of the input value definition used by this invention. 本発明で用いられるDB定義の例である。It is an example of DB definition used by this invention. 本発明で用いられる制約の例である。It is an example of the restrictions used by the present invention. 本発明で用いられる制約の定義を示す図である。It is a figure which shows the definition of the restrictions used by this invention. 本発明の一実施の形態におけるテストデータ生成装置の構成図である。It is a block diagram of the test data generation device in one embodiment of the present invention. 本発明の一実施の形態におけるテストケース記憶部に格納されるデータである。It is the data stored in the test case memory | storage part in one embodiment of this invention. 本発明の一実施の形態におけるテストデータ生成装置の全体の処理のフローチャートである。It is a flowchart of the whole process of the test data generation apparatus in one embodiment of this invention. 本発明の一実施の形態における図9のS110の詳細フローチャートである。10 is a detailed flowchart of S110 in FIG. 9 according to an embodiment of the present invention. 本発明の一実施の形態における経路リスト生成処理のフローチャートである。It is a flowchart of the route list production | generation process in one embodiment of this invention. 本発明の一実施の形態における図11のS206の詳細フローチャートである。It is a detailed flowchart of S206 of FIG. 11 in one embodiment of this invention. 本発明の一実施の形態における図11のS211の詳細フローチャートである。It is a detailed flowchart of S211 of FIG. 11 in one embodiment of this invention. 本発明の一実施の形態における図10のS240の詳細フローチャートである。FIG. 11 is a detailed flowchart of S240 in FIG. 10 according to an embodiment of the present invention. 本発明の一実施の形態におけるDB検索条件から制約への変換例である。It is an example of conversion from DB search conditions to constraints in one embodiment of the present invention. 本発明の一実施の形態における図9のS120の詳細フローチャートである。FIG. 10 is a detailed flowchart of S120 in FIG. 9 according to an embodiment of the present invention. 本発明の一実施の形態における図13のS370の詳細フローチャートである。It is a detailed flowchart of S370 of FIG. 13 in one embodiment of this invention. 本発明の一実施の形態における図13のS380の詳細フローチャートである。It is a detailed flowchart of S380 of FIG. 13 in one embodiment of this invention. 本発明の一実施の形態における図9のS130の詳細フローチャートである。10 is a detailed flowchart of S130 in FIG. 9 according to an embodiment of the present invention. 本発明の一実施の形態における文字列長を決定する処理の例である。It is an example of the process which determines the character string length in one embodiment of this invention. 本発明の一実施の形態における文字列比較演算子テーブルである。It is a character string comparison operator table in one embodiment of the present invention. 本発明の一実施の形態における図15のS450の詳細フローチャートである。It is a detailed flowchart of S450 of FIG. 15 in one embodiment of this invention. 本発明の一実施の形態における図9のS140の詳細フローチャートである。FIG. 10 is a detailed flowchart of S140 in FIG. 9 according to an embodiment of the present invention. 本発明の一実施の形態における文字決定部の処理を示す図である。It is a figure which shows the process of the character determination part in one embodiment of this invention. 本発明の一実施の形態における図20のS540の詳細フローチャートである。FIG. 21 is a detailed flowchart of S540 in FIG. 20 according to an embodiment of the present invention. 本発明の一実施の形態における図22のS1070の詳細フローチャートである。It is a detailed flowchart of S1070 of FIG. 22 in one embodiment of this invention.

以下図面と共に、本発明の実施の形態を説明する。   Embodiments of the present invention will be described below with reference to the drawings.

まず、本明細書で使用する用語について説明する。   First, terms used in this specification will be described.

処理フロー図:ソフトウェア設計情報の一種であり、振る舞い(ソフトウェアの処理の流れ)を表す。処理フロー図には、フローチャート、UML(Uniformed Modeling Language)アクティビティ図等の種類がある。処理フロー図の例を図1に示す。処理フロー図には、ノードとエッジからなる処理フロー図、ノード、ノードの内容、DB検索条件、検索結果レコード件数、Where句条件群、次ノード接続エッジ群、エッジ、ガード条件を含む。   Process flow diagram: A type of software design information, representing behavior (flow of software processing). There are various types of processing flow diagrams such as flowcharts and UML (Uniformed Modeling Language) activity diagrams. An example of a processing flow diagram is shown in FIG. The processing flow diagram includes a processing flow diagram composed of nodes and edges, nodes, node contents, DB search conditions, number of search result records, Where clause condition group, next node connection edge group, edge, and guard condition.

テストパス:処理フロー図の中の特定のパスである。経路網羅性を確保するためには、処理フロー図の中の全てのテストパスに対し、テストパスを通す適切なテストデータを作成する必要がある。テストパスの例を図2に示す。テストパスは、ノードとエッジの情報からなる。   Test path: A specific path in the processing flow diagram. In order to ensure route coverage, it is necessary to create appropriate test data that passes the test paths for all test paths in the process flow diagram. An example of the test path is shown in FIG. The test path consists of node and edge information.

入力値定義:ソフトウェア設計情報の一種であり、ソフトウェアの入力値の定義域を表す。入力値定義の例を図3に示す。   Input value definition: A type of software design information that represents the domain of software input values. An example of the input value definition is shown in FIG.

DB定義:データベース設計情報であり、テーブル名、各テーブルにおけるカラム名、カラムの型、カラムの値の定義域が記述されている。DB定義の例を図4に示す。DB定義は、定義対象のDBテーブル、DBテーブルのレコード、カラム、型と定義域、整数定義域、文字列定義息、カラムの種類、参照先カラムを含む。   DB definition: Database design information, which describes the table name, column name in each table, column type, and domain of the column value. An example of the DB definition is shown in FIG. The DB definition includes the definition target DB table, DB table record, column, type and domain, integer domain, character string definition, column type, and reference column.

制約:「ソフトウェアの特定の振る舞い」を引き起こせるテストデータが満たすべき複数の条件のうちの1つであり、制約の種類は、図5に示すように、
(1)入力値に対する制約:入力値定義、処理フロー図より取得;
(2)検索ヒット数、入力値、DB初期状態の対応に関する制約:処理フロー図に記述されたDB検索条件より取得;
(3)DB初期状態に対する制約:DB定義より取得;
があり、上記の(1)〜(3)に含まれる各制約は図6に示すようにBNFで定義されている。制約は、設計情報に含まれる後述するテストケース抽出部で抽出される制約(図6(A))と、テストデータ生成処理中に導出される制約(図6(B))がある。制約には、整数制約、文字列制約、一意制約がある。整数制約には、整数算術式、整数比較演算子、整数算術式に関する制約が含まれる。文字列制約には、文字列因子、文字列比較演算子、文字列因子に関する制約が含まれる。一意制約は、distinctカラム全称参照で表される。
Constraint: One of a plurality of conditions to be satisfied by test data that can cause “specific behavior of software”. As shown in FIG.
(1) Constraints on input values: Obtained from input value definition and processing flow diagram;
(2) Restrictions on correspondence between search hit count, input value, and DB initial state: Acquired from DB search conditions described in the processing flow diagram;
(3) Restrictions on DB initial state: Obtained from DB definition;
Each constraint included in the above (1) to (3) is defined by BNF as shown in FIG. The constraints include a constraint (FIG. 6A) extracted by a test case extraction unit (described later) included in the design information and a constraint derived during the test data generation process (FIG. 6B). The constraints include integer constraints, character string constraints, and unique constraints. Integer constraints include constraints on integer arithmetic expressions, integer comparison operators, and integer arithmetic expressions. The string constraints include constraints on string factors, string comparison operators, and string factors. Unique constraints are represented by distinct references to distinct columns.

図7は、本発明の一実施の形態におけるテストデータ生成装置の構成を示す。   FIG. 7 shows a configuration of a test data generation apparatus according to an embodiment of the present invention.

テストデータ生成装置100は、ユーザ端末10と接続されている。   The test data generation device 100 is connected to the user terminal 10.

テストデータ生成装置は、テストケース抽出部110、DBレコード件数決定部120、整数・文字列長決定部130、文字決定部140、テストデータ出力部150、テストケース記憶部160から構成される。   The test data generation apparatus includes a test case extraction unit 110, a DB record number determination unit 120, an integer / character string length determination unit 130, a character determination unit 140, a test data output unit 150, and a test case storage unit 160.

上記の構成のうち、テストケース抽出部110、DBレコード件数決定部120、整数・文字列長決定部130、文字決定部140、テストデータ出力部150は、CPU内で機能し、テストケース記憶部160は、メモリ、ハードディスク等の記憶媒体である。   Among the above configurations, the test case extraction unit 110, the DB record number determination unit 120, the integer / character string length determination unit 130, the character determination unit 140, and the test data output unit 150 function in the CPU, and the test case storage unit Reference numeral 160 denotes a storage medium such as a memory or a hard disk.

テストケース抽出部110は、ユーザ端末10からXML形式の設計情報を取得して、当該設計情報から入力変数、DBテーブル変数、制約を抽出し、テストケースaとしてテストケース記憶部160に格納する。テストケースaは、設計情報の図1の処理フロー図、図2のテストパス、図3の入力値定義、図4のDB定義、抽出された入力変数、DBテーブル変数、制約(図6(A))を含む。   The test case extraction unit 110 acquires design information in XML format from the user terminal 10, extracts input variables, DB table variables, and constraints from the design information, and stores them as test cases a in the test case storage unit 160. Test case a is a process flow diagram of design information in FIG. 1, test path in FIG. 2, input value definition in FIG. 3, DB definition in FIG. 4, extracted input variables, DB table variables, constraints (FIG. 6 (A ))including.

DBレコード件数決定部120は、テストケース記憶部160からテストケースaを読み出して、当該テストケースaに含まれるDBテーブル変数からDBレコードの件数の値を決定し、テストケースaをコピーし、そのメンバであるDBテーブル変数のレコード件数にその値を設定したものをテストケースbとし、当該テストケースbをテストケース記憶部160に格納する。また、DBテーブル変数のカラムに関する制約を各レコードのフィールドに対して展開する。   The DB record number determination unit 120 reads the test case a from the test case storage unit 160, determines the value of the number of DB records from the DB table variable included in the test case a, copies the test case a, A value obtained by setting the record number of the DB table variable as a member is set as a test case b, and the test case b is stored in the test case storage unit 160. In addition, constraints on DB table variable columns are expanded for each record field.

整数・文字列長決定部130は、テストケース記憶部160からテストケースb(変数、文字列同士の包含関係に関する制約(図6(A))を読み出して、文字列型変数同士の包含関係に関する制約から文字列長に関する制約(図6(B))を導出し、文字列型変数の文字列長に関する制約と整数型変数に関する制約(図6(A))を解き、それらの値(文字列型変数、文字列長変数、整数型変数)を決定し、それらの値とテストケースbをコピーした内容をテストケースcとし、当該テストケースcをテストケース記憶部160に格納する。   The integer / character string length determination unit 130 reads the test case b (constraint on the inclusion relationship between variables and character strings (FIG. 6A)) from the test case storage unit 160 and relates to the inclusion relationship between character string type variables. The constraint on the character string length (Fig. 6 (B)) is derived from the constraint, the constraint on the character string length of the character string type variable and the constraint on the integer type variable (Fig. 6 (A)) are solved, and their values (character string) (Type variable, character string length variable, integer type variable) are determined, and the contents obtained by copying these values and test case b are set as test case c, and the test case c is stored in the test case storage unit 160.

文字決定部140は、テストケース記憶部160からテストケースcを読み出して、文字列型変数に関する制約(図6(A))を解き、文字列型変数を構成する文字の値を決定し、その値とテストケースcをコピーした内容をテストケースdとし、当該テストケースdをテストケース記憶部160に格納する。   The character determination unit 140 reads the test case c from the test case storage unit 160, solves the restriction on the character string type variable (FIG. 6A), determines the value of the character constituting the character string type variable, The content copied from the value and the test case c is set as a test case d, and the test case d is stored in the test case storage unit 160.

テストデータ出力部150は、テストケース記憶部160から入力変数、DBテーブル変数の値をテキスト形式でユーザ端末10に出力する。   The test data output unit 150 outputs the values of input variables and DB table variables from the test case storage unit 160 to the user terminal 10 in text format.

テストケース記憶部160は、図8に示すような上記の各構成から出力される中間データとしてのテストケース、文字列包含関係木、文字列親子ノード及び図6に示す制約等を格納する。テストケース抽出部110からは、テストケースaとして、{制約、変数}が格納される。DBレコード件数決定部120からは、テストケースbとして、{テストケースa+DBテーブル変数、DBレコード件数変数、DBレコード変数、DBフィールド変数}が格納される。整数・文字列長決定部130からは、テストケースcとして、{テストケースb+文字列型変数、文字列長変数、整数型変数、文字列包含関係木、文字列親子ノード}が格納される。文字決定部140からはテストケースdとして、{テストケースc+文字型変数、値決定済み変数}が格納される。   The test case storage unit 160 stores test cases, character string inclusion relation trees, character string parent / child nodes, constraints shown in FIG. 6, and the like as intermediate data output from each of the above-described configurations as shown in FIG. From the test case extraction unit 110, {constraint, variable} is stored as the test case a. The DB record number determination unit 120 stores {test case a + DB table variable, DB record number variable, DB record variable, DB field variable} as the test case b. Integer / character string length determination unit 130 stores {test case b + character string type variable, character string length variable, integer type variable, character string inclusion relation tree, character string parent-child node} as test case c. Character test unit 140 stores {test case c + character variable, value determined variable} as test case d.

以下に、上記の構成における動作を詳細に説明する。   The operation in the above configuration will be described in detail below.

最初に、テストデータ生成装置100の全体の動作を説明する。   First, the overall operation of the test data generation apparatus 100 will be described.

図9は、本発明の一実施の形態におけるテストデータ生成装置の全体処理のフローチャートである。   FIG. 9 is a flowchart of the overall processing of the test data generation device according to one embodiment of the present invention.

ステップ110) テストケース抽出部110において、設計情報を取得する。設計情報は、
・DB定義(DBテーブル変数、DBテーブルの各カラムに対する制約、DBテーブルの主キー、外部キー);
・入力値定義;
・処理フロー図;
が含まれる。当該設計情報から変数(入力変数、DBテーブル変数)及び、制約を抽出し、これらをテストケースaとしてテストケース記憶部160に格納する。当該ステップの詳細については、図10にて後述する。
Step 110) The test case extraction unit 110 acquires design information. Design information
DB definition (DB table variables, constraints on each column of DB table, DB table primary key, foreign key);
・ Input value definition;
・ Processing flow diagram;
Is included. Variables (input variables, DB table variables) and constraints are extracted from the design information and stored in the test case storage unit 160 as test cases a. Details of this step will be described later with reference to FIG.

ステップ120) DBレコード件数決定部120において、テストケース記憶部160からテストケースaを読み込み、DBテーブル変数のレコード件数に関する制約を解き、DBテーブル変数のレコード件数を決定し、DB、テーブル変数のカラムに関する制約を各レコードのフィールドに対して展開し、テストケースaをコピーし、そのメンバであるDBテーブル変数のレコード件数にその値を設定したものをテストケースbとし、当該テストケースbをテストケース記憶部160に格納する。テストケースbとしてテストケース記憶部160に格納する。詳細については図13で後述する。   Step 120) In the DB record number determination unit 120, the test case a is read from the test case storage unit 160, the restriction on the number of records in the DB table variable is solved, the number of records in the DB table variable is determined, and the DB and table variable columns Is expanded to the field of each record, test case a is copied, the value set to the number of records of the DB table variable that is the member is set as test case b, and the test case b is set as the test case Store in the storage unit 160. The test case b is stored in the test case storage unit 160. Details will be described later with reference to FIG.

ステップ130) 整数・文字列長決定部130において、テストケース記憶部160からテストケースbを取得し、文字列型変数同士の包含関係に関する制約から文字列長に関する制約を導出し、テストケース記憶部160の制約集合に追加した後、ステップ120で導出された文字列型変数の文字列長とステップ110で抽出された整数型変数に関する制約を解き、それぞれの値を決定する。テストケースbをコピーし、文字列型の変数の文字列長変数の値と、整数型変数の値を設定したものをテストケースcとしてテストケース記憶部160に格納する。   Step 130) In the integer / character string length determination unit 130, the test case b is obtained from the test case storage unit 160, the constraint on the character string length is derived from the constraint on the inclusion relation between the character string type variables, and the test case storage unit After adding to the constraint set of 160, the constraints on the character string length of the character string type variable derived in step 120 and the integer type variable extracted in step 110 are solved, and the respective values are determined. The test case b is copied, and the value set for the character string length variable of the character string type variable and the value of the integer type variable is stored in the test case storage unit 160 as the test case c.

ステップ140) テストケース記憶部160からテストケースcを取得し、文字決定部140において、文字列型変数に関する制約を解き、文字列型変数を構成する文字の値を決定し、テストケースcをコピーしたものに設定し、テストケースdとしてテストケース記憶部160に格納する。
詳細は図20で後述する。
Step 140) Acquire test case c from the test case storage unit 160, and the character determination unit 140 resolves the restrictions on the character string type variable, determines the value of the character constituting the character string type variable, and copies the test case c And stored in the test case storage unit 160 as a test case d.
Details will be described later with reference to FIG.

ステップ150) テストデータ出力部150において、テストケース記憶部160のテストケースdから入力変数(図8,9行目)、DBテーブル変数(図8,5行目)の値を取得してユーザ端末10にダンプ出力する。   Step 150) The test data output unit 150 obtains the values of the input variables (FIG. 8, 9th line) and the DB table variables (FIG. 8, 5th line) from the test case d of the test case storage unit 160, and the user terminal Dump output to 10.

上記のステップ120,130では、入れ子の配列に相当する複雑なデータ構造(DBテーブルのレコード群、文字列)を検出した際に、入れ子でいう「外側」の配列の長さ(DBテーブルのレコード群の件数、文字列の長さ)に関する制約を、図5に示す条件(1)、(2)、(3)から選び出して、それらを優先して解くことで配列の要素より先に配列の長さを決定する。   In steps 120 and 130 described above, when a complicated data structure (DB table record group, character string) corresponding to the nested array is detected, the length of the “outside” array (DB table record) Select constraints from the conditions (1), (2), and (3) shown in FIG. 5 for the constraints on the number of groups and the length of the character string, and solve them by prioritizing them. Determine the length.

次に、上記のステップ110のテストケース抽出部110における設計情報から変数、制約を抽出する処理について説明する。   Next, processing for extracting variables and constraints from the design information in the test case extraction unit 110 in step 110 will be described.

図10は、本発明の一実施の形態における図7のS110の詳細フローチャートである。   FIG. 10 is a detailed flowchart of S110 in FIG. 7 according to the embodiment of the present invention.

ステップ210) テストケース抽出部110は、設計情報からDB定義(図4)を読み込み、変数、制約を抽出する。詳しくは、DB定義から、DBテーブル変数とDBテーブルの各カラムに対する制約(図5の(3))を抽出し、変数と制約を出力する。   Step 210) The test case extraction unit 110 reads the DB definition (FIG. 4) from the design information, and extracts variables and constraints. More specifically, a DB table variable and a constraint ((3) in FIG. 5) for each column of the DB table are extracted from the DB definition, and the variable and the constraint are output.

ステップ220) 次に、設計情報から、入力値定義(図3)を読み込み、変数、制約を抽出する。詳しくは、入力値定義から入力変数と入力値に対する制約(図5、(1))を抽出する。   Step 220) Next, the input value definition (FIG. 3) is read from the design information, and variables and constraints are extracted. Specifically, the input variable and the constraint on the input value (FIG. 5, (1)) are extracted from the input value definition.

ステップ230) 次に、処理フロー図(図1)を読み込み、C1カバレッジを満たすよう、全てのテストパス(図2)を抽出する。ここで、テストパスの抽出方法を説明する。テストパスの抽出は、テストケース抽出部110内に具備される経路抽出機能で実行する。   Step 230) Next, the processing flow diagram (FIG. 1) is read, and all test paths (FIG. 2) are extracted so as to satisfy the C1 coverage. Here, a test path extraction method will be described. The test path extraction is executed by a route extraction function provided in the test case extraction unit 110.

経路抽出機能は、読み込んだフロー図からテストすべき実行経路を抽出するために、ループ最大通過回数で指定された回数のループを通るような経路のリストを生成する。   The route extraction function generates a list of routes that pass through the number of loops specified by the maximum number of loop passes in order to extract the execution route to be tested from the read flow diagram.

経路抽出機能は、フロー図内の全ノード情報(ノードID,ノード内テキスト、次展開エッジ群)と、エッジ情報(エッジID,始点接続ノードID,終点接続ノードID,遷移条件)を読み込み、経路リストを生成する。当該経路リスト生成処理を以下に示す。   The route extraction function reads all node information (node ID, text in node, next developed edge group) and edge information (edge ID, start point connection node ID, end point connection node ID, transition condition) in the flow diagram, and routes Generate a list. The route list generation process is shown below.

図11は、本発明の一実施の形態における経路リスト生成処理のフローチャートである。   FIG. 11 is a flowchart of route list generation processing according to the embodiment of the present invention.

ステップ2010) 経路抽出部130は、読み込まれた開始エッジを次展開エッジ群用スタックに積む。なお、当該経路抽出機能に内部にバッファを備え、当該バッファにスタックの領域を設けるものとする。   Step 2010) The path extraction unit 130 loads the read start edge on the next developed edge group stack. It is assumed that the path extraction function includes an internal buffer and a stack area is provided in the buffer.

ステップ2020) 次展開エッジ群用スタックは空であるかを判定し、空である場合は当該処理を終了する。   Step 2020) It is determined whether or not the next developed edge group stack is empty. If it is empty, the process is terminated.

ステップ2030) 次展開エッジ群用スタックの最上位にある次展開エッジ群に要素があるかを判定し、ない場合はステップ2120に移行する。   Step 2030) It is determined whether or not there is an element in the next development edge group at the top of the next development edge group stack.

ステップ2040) 次展開エッジ群スタックの最上位にある要素(現在次展開エッジ群)から、ひとつエッジを得て現在エッジとする。   Step 2040) One edge is obtained from the element at the top of the next development edge group stack (currently next development edge group) to be the current edge.

ステップ2050) 現在次展開エッジ群から現在エッジを取り除く。   Step 2050) Remove the current edge from the current next developed edge group.

ステップ2060) 経路(エッジ用スタックに積まれているエッジの列)内のループ出現回数を計算する。当該処理は、探索途中経路に存在する現在ループ経路の数(ループ出現回数)を計算するものである。当該処理の詳細については図12で後述する。   Step 2060) Calculate the number of loop appearances in the path (a sequence of edges stacked in the edge stack). This process calculates the number of current loop routes (number of loop appearances) existing in the search route. Details of this processing will be described later with reference to FIG.

ステップ2070) ループの出現回数(ループ最大出現回数)がユーザ端末10より入力されたユーザ指定ループ最大通過数に1を加えた値より大きければ、ステップ2020に移行する。当該処理は、探索途中の経路のループ最大出現回数が異常値(ユーザ指定ループ最大通過数+1)を超えたらその経路の探索を打ち切ることである。なお、「ループ最大出現回数」とは、探索途中経路に含まれる複数のループ経路のうちループ出現回数が最大であるループ経路のループ出現回数である。   Step 2070) If the number of appearances of the loop (the maximum number of appearances of the loop) is larger than the value obtained by adding 1 to the user-specified maximum number of loops input from the user terminal 10, the process proceeds to Step 2020. The processing is to terminate the search of the route when the maximum number of occurrences of the loop in the route being searched exceeds the abnormal value (maximum number of user-specified loop passages + 1). The “maximum number of appearances of the loop” is the number of appearances of the loop path having the maximum number of appearances of the loop among the plurality of loop paths included in the search route.

ステップ2080) 現在エッジをエッジ用スタックに積み、ループ出現回数をループ出現回数用スタックに積む。   Step 2080) The current edge is stacked on the edge stack, and the loop appearance count is stacked on the loop appearance count stack.

ステップ2090) 現在のエッジのもつ終点ノードIDに基づいて、フロー図からノードを取得し、そのノードのエッジ(始点との接続)群を取得し、その取得したエッジ(始点との接続)群を、次展開エッジとして、次展開エッジ群スタックに積む。   Step 2090) Based on the end node ID of the current edge, a node is acquired from the flow diagram, an edge (connection to the start point) group of the node is acquired, and the acquired edge (connection to the start point) group is Then, the next development edge is stacked on the next development edge group stack.

ステップ2100) 現在のエッジが終了ノードに接続していない場合はステップ2020に移行する。   Step 2100) If the current edge is not connected to the end node, go to Step 2020.

ステップ2110) 経路のループ最大出現回数に応じて、上限値、異常値、近傍値とラベルを付与し、経路(エッジ用スタックに積まれているエッジの列)を出力する。また、上限値、異常値、近傍値のどれにも相当しない経路に関しては出力しない。当該処理の詳細については図13で後述する。   Step 2110) According to the maximum number of occurrences of the loop of the route, an upper limit value, an abnormal value, a neighborhood value, and a label are assigned, and a route (a sequence of edges stacked on the edge stack) is output. Further, a route that does not correspond to any of the upper limit value, the abnormal value, and the neighborhood value is not output. Details of this processing will be described later with reference to FIG.

ステップ2120) 次展開エッジ群用スタックをポップする。   Step 2120) Pop the stack for the next development edge group.

ステップ2130) ポップしたエッジ用スタックが空である場合は、当該処理を終了する。   Step 2130) If the popped edge stack is empty, the process ends.

ステップ2140) エッジ用スタックとループ出現回数スタックをポップして、処理を終了する。   Step 2140) The edge stack and the loop appearance number stack are popped, and the process is terminated.

次に、上記の図11のステップ206の経路(エッジ用スタックに積まれているエッジの列)内の現在ループ経路の出現回数を計算する処理について詳述する。   Next, the process of calculating the number of appearances of the current loop path in the path of step 206 in FIG. 11 (the row of edges stacked on the edge stack) will be described in detail.

図12は、本発明の一実施の形態における図11のS2060の詳細フローチャートである。   FIG. 12 is a detailed flowchart of S2060 in FIG. 11 according to the embodiment of the present invention.

ステップ3010) 経路抽出機能は、バッファから現在エッジを読み込む。   Step 3010) The path extraction function reads the current edge from the buffer.

ステップ3020) 経路(エッジ用スタックに積まれているエッジの列)を読み込む。   Step 3020) A route (a sequence of edges stacked on the edge stack) is read.

ステップ3030) 探索途中経路を生成する。具体的には、経路を複製し、複製した経路を探索途中経路とする。   Step 3030) A search route is generated. Specifically, the route is duplicated, and the duplicated route is set as a search-in-progress route.

ステップ3040) 探索途中経路の先頭から、先頭に一番近い現在エッジまでを現在ループ経路が何回出現するか計算する。   Step 3040) It is calculated how many times the current loop path appears from the head of the search path to the current edge closest to the head.

ステップ3050) 探索途中経路内で現在ループ経路が何回出現するか(ループ出現回数)を求める。当該ループ出現回数を求める手法として、文献1「R.S. boyer: J. S. Moore (1997). "A fast string searching algorithm". Comm. ACM 20: 762-772」等の技術を用いることができる。当該文献1の手法は、文字列照合のアルゴリズムであるが、ひとつのエッジをひとつの文字とみなし、経路(エッジの列)を文字列とみなせば適用可能である。   Step 3050) Find out how many times the current loop route appears in the mid-search route (the number of loop appearances). As a technique for obtaining the number of occurrences of the loop, techniques such as “R.S. boyer: J. S. Moore (1997).“ A fast string searching algorithm ”. Comm. ACM 20: 762-772” can be used. The technique of Document 1 is an algorithm for character string matching, but can be applied if one edge is regarded as one character and a path (edge string) is regarded as a character string.

次に、上記の図11のステップ2110のエッジ用スタックの中身を経路として出力する処理について詳述する。   Next, the processing for outputting the contents of the edge stack in step 2110 of FIG. 11 as a route will be described in detail.

図13は、本発明の一実施の形態における図11のステップ2110の詳細フローチャートである。   FIG. 13 is a detailed flowchart of step 2110 in FIG. 11 according to the embodiment of the present invention.

ステップ4010) 経路抽出機能は、経路のループ最大出現回数を計算する。具体的には、ループ出現回数用スタックに積まれているループ出現回数の最大値を取得し、ループ最大出現回数とする。   Step 4010) The route extraction function calculates the maximum number of loop occurrences of the route. Specifically, the maximum value of the number of loop appearances stacked in the loop appearance number stack is acquired and set as the maximum number of loop appearances.

ステップ4020) ループ最大出現回数(M)とユーザ指定ループ最大通過数(N)が等しいか(M=N)を判定し、等しい場合にはステップ4030に移行し、等しくない場合はステップ4040に移行する。   Step 4020) It is determined whether the maximum loop appearance count (M) and the user-specified maximum loop passage number (N) are equal (M = N). If they are equal, the process proceeds to Step 4030, and if they are not equal, the process proceeds to Step 4040. To do.

ステップ4030) M=Nの場合は「上限値」ラベルを付与して経路を出力し、当該処理を終了する。M=N以外の場合はステップ4040に移行する。   Step 4030) In the case of M = N, an “upper limit value” label is assigned to output the route, and the process is terminated. If M = N, the process proceeds to step 4040.

ステップ4040) ループ最大出現回数とユーザ指定ループ最大通過数に1を加算した値と等しければ(M=N+1)、ステップ4050に移行し、等しくない場合はステップ4060に移行する。   Step 4040) If the maximum number of occurrences of the loop is equal to the value obtained by adding 1 to the user-specified loop maximum number of passes (M = N + 1), the process proceeds to step 4050, and if not equal, the process proceeds to step 4060.

ステップ4050) M=N+1である場合は「異常値」ラベルを付与して経路を出力し、当該処理を終了する。   Step 4050) If M = N + 1, an “abnormal value” label is assigned to output the route, and the process is terminated.

ステップ4060) ループ最大出現回数とユーザ指定ループ最大通過数から1を引いた値とが等しければ(M=N−1)ステップ4070に移行し、等しくなければ当該処理を終了する。   Step 4060) If the maximum number of occurrences of the loop is equal to the value obtained by subtracting 1 from the maximum number of loops specified by the user (M = N-1), the process proceeds to Step 4070, and if not equal, the process ends.

ステップ4070) M=N−1である場合は「近傍値」ラベルを付与して経路を出力し、当該処理を終了する。   Step 4070) When M = N−1, a “neighbor value” label is assigned to output the route, and the process is terminated.

以下、図10の処理の説明に戻る。   Returning to the description of the processing in FIG.

ステップ240) 次に、処理フロー図から抽出されたテストパスから、入力値に対する制約(図5(3))、処理フロー図のDB検索条件に記述された制約(図5(2))を抽出する。入力値に対する制約の制約種類タグに「入力条件タグ」を設定する。DB検索条件に記述された制約の制約種類タグは「検索条件タグ」を設定する。テストパスから制約を抽出する処理については、図14にて後述する。   Step 240) Next, from the test path extracted from the process flow diagram, the constraint on the input value (FIG. 5 (3)) and the constraint described in the DB search condition of the process flow diagram (FIG. 5 (2)) are extracted. To do. Set “input condition tag” in the constraint type tag of the constraint for the input value. “Restriction condition tag” is set as the restriction type tag of the restriction described in the DB search condition. The process of extracting constraints from the test path will be described later with reference to FIG.

ステップ250) 上記のステップ210,220,240で抽出された変数及び制約を取得し、これらを纏めた制約集合をメンバとしてもつテストケース(オリジナルテストケース)aを作成し、テストケース記憶部160に格納する。   Step 250) The variables and constraints extracted in the above Steps 210, 220 and 240 are acquired, a test case (original test case) a having a set of constraints as a member is created and stored in the test case storage unit 160. Store.

次に、上記のステップ240のテストパスから制約を抽出する処理について説明する。   Next, processing for extracting constraints from the test path in step 240 will be described.

図14は、本発明の一実施の形態における図10のS240の詳細フローチャートであり、図15は、DB検索条件から制約への変換例を示す。   FIG. 14 is a detailed flowchart of S240 in FIG. 10 according to the embodiment of the present invention, and FIG. 15 shows an example of conversion from DB search conditions to constraints.

まず、テストパスの各ノードに対して以下の処理を行う。   First, the following processing is performed for each node in the test path.

ステップ600) テストケース抽出部110は、ステップ230で抽出されたテストパスの各ノードにDB検索条件があるかを、処理フロー図(図1)を参照して判定し、ある場合にはステップ610に移行し、ない場合は次のノードの処理に移行する。   Step 600) The test case extraction unit 110 determines whether each node of the test path extracted in Step 230 has a DB search condition with reference to the processing flow diagram (FIG. 1). If not, the process proceeds to the next node.

ステップ610) ノードにDB検索条件がある場合は、当該DB検索条件の"Where句条件群にある制約"を抽出する。図15の例では、設計情報
WHERE (ID>=検索ID)
AND(名前subString社員名)
が抽出される。
Step 610) If there is a DB search condition in the node, “restrictions in the Where clause condition group” of the DB search condition are extracted. In the example of FIG. 15, design information
WHERE (ID> = search ID)
AND (name subString employee name)
Is extracted.

ステップ620) DB検索条件の検索結果レコード件数(検索ヒット数)におけるMin count(図1)を、Min Count<=Count(From TableId)制約、Max Count(図1)を、MAX>=Count (From TableId)制約へと変換して出力する。   Step 620) Min count (Fig. 1), Min Count <= Count (From TableId) constraint, Max Count (Fig. 1), MAX> = Count (From Convert to TableId) constraint and output.

ここまでの処理をノード数分繰り返す。   The process so far is repeated for the number of nodes.

次に、テストパスの各エッジに対して以下の処理を行う。   Next, the following processing is performed on each edge of the test path.

ステップ630) 次に、各テストパスの各エッジに対する処理として、テストケースaの処理フロー図(図1)を参照してエッジガード条件があるかを判定し、ある場合には、エッジガード条件から制約(整数制約、文字列制約)を抽出する。当該処理をテストパスの各ノードに対して行う。   Step 630) Next, as processing for each edge of each test path, it is determined whether there is an edge guard condition with reference to the process flow diagram of the test case a (FIG. 1). Extract constraints (integer constraints, string constraints). This process is performed for each node in the test path.

上記の処理から検索ヒット数、入力値、DB初期状態の依存関係に関する制約、DB初期状態に対する制約が抽出される。これにより、処理の分岐を制御できるような条件(図5(1)(2)(3))を設計書から漏れなく抽出して集約しているため、これらの制約を後述する処理により連立不等式に変換し、既存技術で解くことができる。   From the above processing, the number of search hits, the input value, the constraint on the dependency on the DB initial state, and the constraint on the DB initial state are extracted. As a result, the conditions (FIGS. 5 (1), (2), and (3)) that can control the branching of the processing are extracted from the design document without omission and are aggregated. Can be solved with existing technology.

次に、DBレコード件数決定部120における、図9のステップ120のDBレコード件数の値を決定する処理について説明する。   Next, a process of determining the value of the number of DB records in step 120 in FIG. 9 in the DB record number determination unit 120 will be described.

図16は、本発明の一実施の形態における図9のS120の詳細フローチャートである。   FIG. 16 is a detailed flowchart of S120 in FIG. 9 according to the embodiment of the present invention.

ステップ310) DBレコード件数決定部120は、テストケース記憶部160からテストケースaを読み込む。   Step 310) The DB record number determination unit 120 reads the test case a from the test case storage unit 160.

ステップ320) ユーザから指定されたDBレコード件数デフォルト値を取得し、以下、ステップ370までの処理を、テストケースの各DBテーブル変数に対して行う。なお、当該デフォルト値はメモリ(図示せず)に予め記憶されているものとする。   Step 320) A default value for the number of DB records designated by the user is acquired, and the processing up to Step 370 is performed for each DB table variable of the test case. It is assumed that the default value is stored in advance in a memory (not shown).

ステップ330) ステップ310で読み込んだテストケースaに含まれるDBテーブル変数、制約集合を取得し、制約の中でレコード件数参照を含む制約を全て取得し、出力する。図6の例では、「レコード件数参照=Count(DBテーブル変数)」を出力する。   Step 330) The DB table variable and the constraint set included in the test case a read in Step 310 are acquired, and all the constraints including the record number reference are acquired and output. In the example of FIG. 6, “record number reference = Count (DB table variable)” is output.

ステップ340) 上記のレコード件数に関する制約が1つ以上存在する場合は、図8に示すテストケースの制約集合の中からDBレコード変数及びDBテーブル変数のレコード件数変数に関する制約を取得する。図8の例では、"DBレコード変数=Id DBフィールド変数+"、"DBレコード件数変数=Id 整数型変数"を取得する。DBレコード変数のDBレコード件数に関する制約を解き、レコード件数の値を決定する。このとき、DBレコード変数のレコード件数に関する制約は、整数の不等式となっているため、これらを連立させ連立不等式として既存技術(SMT Arithmetic Theory, シンプレックス法)を用いて解き、制約を満たすレコード件数の値を求める。ステップ360に移行する。   Step 340) If there are one or more constraints on the number of records, the constraints on the record number variable of the DB record variable and the DB table variable are acquired from the test case constraint set shown in FIG. In the example of FIG. 8, “DB record variable = Id DB field variable +” and “DB record number variable = Id integer variable” are acquired. Solve the restrictions on the number of DB records in the DB record variable, and determine the value of the record number. At this time, since the constraints on the number of records in the DB record variable are integer inequalities, these are simultaneous and solved as simultaneous inequalities using existing technology (SMT Arithmetic Theory, Simplex method). Find the value. Control goes to step 360.

ステップ350) 制約集合にレコード件数に関する制約がない場合は、ユーザ指定DBレコード件数デフォルト値をレコード件数の値として設定する。このとき、テストケースに含まれるテストパスから入力変数に対する制約(図5(3))と、DB検索条件に記述された制約(図5(2))を抽出する。   Step 350) If there is no restriction on the number of records in the restriction set, the user-specified DB record number default value is set as the value of the number of records. At this time, the constraint on the input variable (FIG. 5 (3)) and the constraint described in the DB search condition (FIG. 5 (2)) are extracted from the test path included in the test case.

ステップ360) テストケース記憶部160のテストケース領域からDBテーブル変数を取得し、当該DBテーブル変数の値の分だけDBレコード変数を生成し、テストケース領域のDBテーブル変数のメンバとして追加する。   Step 360) A DB table variable is acquired from the test case area of the test case storage unit 160, DB record variables are generated for the value of the DB table variable, and added as members of the DB table variable in the test case area.

ステップ370) テストケース記憶部160から制約集合を取得し、DBテーブルのカラムに対する制約(図6(A)「カラム参照」)を、DBフィールド変数への制約として展開する。このとき、カラム全称参照(∀)を含む制約(図6(A))を選び出し、DBフィールド変数(図8)への制約として展開する。詳細は図17にて後述する。   Step 370) The constraint set is acquired from the test case storage unit 160, and the constraint on the column of the DB table (FIG. 6A, “column reference”) is expanded as a constraint on the DB field variable. At this time, a constraint (FIG. 6A) including the column generic reference (∀) is selected and expanded as a constraint on the DB field variable (FIG. 8). Details will be described later with reference to FIG.

ステップ380) テストケース記憶部160から制約集合を取得し、外部キーに関する制約をテストケース記憶部160の制約集合に追加する。このとき、カラム存在参照を含む制約を選び出し、DBフィールド変数への制約として展開する。詳細は図18にて後述する。   Step 380) The constraint set is acquired from the test case storage unit 160, and the constraint on the foreign key is added to the constraint set of the test case storage unit 160. At this time, constraints including column presence references are selected and expanded as constraints on DB field variables. Details will be described later with reference to FIG.

上記の図16のステップ370のDBテーブルのカラムに対する制約をDBフィールド変数への制約として展開する処理について説明する。   The process of expanding the constraint on the DB table column in step 370 of FIG. 16 as a constraint on the DB field variable will be described.

図17は、本発明の一実施の形態における図16のS370の詳細フローチャートである。   FIG. 17 is a detailed flowchart of S370 in FIG. 16 according to the embodiment of the present invention.

ステップ710) DBレコード件数決定部120は、制約集合を取得し、カラム全称参照を含む制約を選び出す。   Step 710) The DB record number determination unit 120 acquires a constraint set and selects a constraint including a column generic reference.

ステップ720) ステップ710で選び出された制約が一意制約でない場合は、DBテーブルのカラムに対する制約を、DBフィールド変数への制約として展開する。このとき、カラム全称参照(図6(A))で参照しているDBテーブルに対応するDBテーブル変数のDBレコード件数変数の値(図6(A))「レコード件数参照」)の分だけ制約を複製する。そして、複製した制約のカラム全称参照部分をDBテーブル変数が保持する各DBレコード変数のカラムに対応するDBフィールド変数で置き換え、DBフィールド変数を含む制約を出力する。   Step 720) If the constraint selected in Step 710 is not a unique constraint, the constraint on the DB table column is expanded as a constraint on the DB field variable. At this time, it is limited by the value of the DB record number variable (see FIG. 6A) “Refer record number” of the DB table variable corresponding to the DB table referenced in the column generic reference (FIG. 6A). Duplicate. Then, the column generic reference portion of the copied constraint is replaced with the DB field variable corresponding to each DB record variable column held by the DB table variable, and the constraint including the DB field variable is output.

ステップ730) ステップ710で選び出されたカラム全称参照を含む制約が一意制約であり、カラム型がInt型(整数型)である場合は、整数型の一意制約をDBフィールド変数への制約として展開する。このとき、"distinct ∀ columX"という一意制約に対し、columX、DBフィールド変数をそれぞれfieldX1, fieldX2,…, fieldXnとする。fieldXi>fieldX(i+1)(ここで、i = 1〜n−1)という整数制約を生成し、x<yという形の整数制約を出力する。   Step 730) When the constraint including the column generic reference selected in Step 710 is a unique constraint, and the column type is an Int type (integer type), the integer type unique constraint is expanded as a constraint on the DB field variable. To do. At this time, for the unique constraint “distinctfieldcolumX”, columX and DB field variables are fieldX1, fieldX2,. An integer constraint of fieldXi> fieldX (i + 1) (where i = 1 to n−1) is generated, and an integer constraint of the form x <y is output.

ステップ740) ステップ710で選び出された制約が一意制約であり、カラム型がString型(文字列型)である場合は、文字列型の一意制約を、DBフィールド変数への制約として展開する。このとき、カラムに対応する各DBフィールド変数(文字列型)に対して、"id1 subString c1, id1 subString c2, …, idn substring cn"という文字列制約を追加し、「x substring c」という形の文字列制約を出力する。ここで、c1〜cnは定数文字列であり、これらは一意になるように文字列の値を決めておく。例えば、c1="01"、c2="02"などとすればよい。   Step 740) When the constraint selected in Step 710 is a unique constraint and the column type is a String type (character string type), the character string type unique constraint is expanded as a constraint on the DB field variable. At this time, a string constraint of "id1 subString c1, id1 subString c2, ..., idn substring cn" is added to each DB field variable (string type) corresponding to the column, and the form "x substring c" Outputs the string constraints for. Here, c1 to cn are constant character strings, and the values of the character strings are determined so as to be unique. For example, c1 = "01", c2 = "02", etc. may be set.

次に、図16のS380の外部キーに関する制約を追加する処理について説明する。   Next, the process for adding a constraint relating to the foreign key in S380 in FIG. 16 will be described.

図18は、本発明の一実施の形態におけるS380の詳細フローチャートである。   FIG. 18 is a detailed flowchart of S380 according to the embodiment of the present invention.

ステップ810) DBレコード件数決定部120は、テストケース記憶部160からテストケースaを読み込む。   Step 810) The DB record number determination unit 120 reads the test case a from the test case storage unit 160.

ステップ820) テストケースaに含まれる制約集合からカラム存在参照を含む制約を選び出す。   Step 820) Select a constraint including a column existence reference from the constraint set included in the test case a.

ステップ830) 各カラム存在参照(∃)を含む制約のカラム型がInt(整数型)(図6(A))である場合は、外部キーに関する制約をDBフィールド変数に対する制約として展開し、x==yという形の整数制約を出力する。ここで、制約を展開するとは、入力された整数型外部キーに関する∃columX == ∃columYという制約に対し、columX, columYに対応するDBフィールド変数をそれぞれ、
fieldX1, FieldX2, …,fieldXn, filedY1, fieldY2, …,fieldXm
とする。ここで、fieldXi == any FieldY (但し、i = 1〜m, any FieldYmのいずれか)という整数制約を生成し、整数変数同士の比較という制約に変形することを指す。
Step 830) When the column type of the constraint including each column existence reference (∃) is Int (integer type) (FIG. 6A), the constraint on the foreign key is expanded as the constraint on the DB field variable, and x = Output integer constraints of the form = y. Here, expanding the constraint means that DB field variables corresponding to columX and columY are respectively set to the constraint that ∃columX == ∃columY related to the input integer type foreign key.
fieldX1, FieldX2,…, fieldXn, filedY1, fieldY2,…, fieldXm
And Here, an integer constraint of fieldXi == any FieldY (where i = 1 to m or any FieldYm) is generated and transformed into a constraint of comparing integer variables.

ステップ840) 各カラム存在参照を含む制約のカラム型がString型(文字列型)(図6(A))である場合は、文字列型の外部キーに関する制約をDBフィールド変数に対する制約として展開する。この制約の展開とは、入力された文字列型外部キーに関する∃columX == ∃columYという制約に対し、columX, columYに対応するDBフィールド変数をそれぞれ、
fieldX1, fieldX2, …, filedXn, fieldY1, fieldY2, …, fieldXm
とする。ここで、fieldXi equalsString anyFieldY(但し、i = 1〜m, anyFieldYはfieldY1〜fieldYmのいずれ)という整数制約を生成し、文字列変数同士の比較という制約に変形することを指す。
Step 840) If the column type of the constraint including each column presence reference is String type (character string type) (FIG. 6A), the constraint on the foreign key of the string type is expanded as the constraint on the DB field variable. . The expansion of this constraint means that DB field variables corresponding to columX and columY for the constraint of ∃columX == ∃columY related to the input string type foreign key,
fieldX1, fieldX2,…, filedXn, fieldY1, fieldY2,…, fieldXm
And Here, an integer constraint of fieldXi equalsString anyFieldY (where i = 1 to m, anyFieldY is any of fieldY1 to fieldYm) is generated and transformed into a constraint of comparing character string variables.

上記のDBレコード件数決定部120の、図5の条件(3)(DB初期状態に対する制約)に含まれる制約のうち、DBレコードの主キー、外部キーに関する制約を選び出し、整数変数同士の比較、文字列変数同士の比較という種類の制約に変形させることにより、主キー、外部キー制約を、整数型変数同士の比較、文字列型同士の比較という制約に変換する。図5の条件(1)、条件(2)の制約と連立させて解いているため、DB定義を満たし、かつ、処理の分岐を制御できるDB初期状態値を生成できる。   Of the constraints included in the condition (3) in FIG. 5 (constraints on the DB initial state) of the above-mentioned DB record number determination unit 120, constraints on the primary key and foreign key of the DB record are selected, and comparison between integer variables is performed. By transforming into a constraint of a kind of comparison between character string variables, primary key and foreign key constraints are converted into constraints of comparison between integer variables and comparison between character string types. Since it is solved in combination with the constraints of the conditions (1) and (2) in FIG. 5, it is possible to generate a DB initial state value that satisfies the DB definition and can control the branch of processing.

次に、整数・文字列長決定部130の図9のS130の処理について説明する。   Next, the processing of S130 in FIG. 9 of the integer / character string length determination unit 130 will be described.

図19は、本発明の一実施の形態における図9のS130の詳細フローチャートである。   FIG. 19 is a detailed flowchart of S130 in FIG. 9 according to the embodiment of the present invention.

ステップ410) 整数・文字列長決定部130は、テストケース記憶部160からテストケースbを読み込む。   Step 410) The integer / character string length determination unit 130 reads the test case b from the test case storage unit 160.

ステップ420) 取得したテストケースbに含まれる制約集合から文字列型変数同士の包含関係に関係する文字列制約を選び出す。文字列制約の例を図20(a)に示す。   Step 420) From the constraint set included in the acquired test case b, a character string constraint related to the inclusion relationship between the character string type variables is selected. An example of character string restriction is shown in FIG.

ステップ430) ステップ420で選択された文字列制約における左側の文字列因子を文字列親ノードとし、右側の文字列因子を文字列子ノードとする文字列包含関係木を作成する。文字列演算子別子ノード群は、文字列演算子が図21に示す文字列比較演算子テーブルの前方一致、部分一致、後方一致、等価に登録されている順に並べ、文字列包含関係木リストを作成する。文字列包含関係木リストの例を図20(b)に示す。   Step 430) A character string inclusion relation tree is created in which the left character string factor in the character string constraint selected in Step 420 is a character string parent node and the right character string factor is a character child node. The child operator group of character string operators is arranged in the order in which the character string operators are registered as a forward match, partial match, backward match, and equivalent in the character string comparison operator table shown in FIG. Create An example of the character string inclusion relation tree list is shown in FIG.

ステップ440) 文字列包含関係木リストを取得すると、空のリストを生成し、各文字列包含関係木リストに対し、深さ優先順で探索を行い、各文字列親子ノードをリストに入れていき、文字列親子ノードリストを作成する。文字列親子ノードリストの例を図20(c)に示す。   Step 440) When the character string inclusion relation tree list is acquired, an empty list is generated, and each character string inclusion relation tree list is searched in depth-first order, and each character string parent and child node is put in the list. Create a string parent-child node list. An example of the character string parent-child node list is shown in FIG.

ステップ450) ステップ440において生成された文字列親子ノードリストから文字列変数の文字列長に関する制約を抽出する。抽出例を図20(d)に示す。図20の例において、同図(c)の文字列C、Dの文字列長の関係はC>=Dであり、文字列A,B,Cの文字列長の関係はA>=C+Bであり、文字列EとFの文字列長の関係はE=Fであることから、文字列長に関する制約として、
Length(A) >= Length(C)+Length(B)
Length(C) >= Length(D)
Length(E )== Length(F)
を得る(図6(B))。当該処理を文字列親子ノードのリストの各文字列親子ノードに対して行う。詳細については図22で後述する。
Step 450) The restriction on the character string length of the character string variable is extracted from the character string parent-child node list generated in Step 440. An example of extraction is shown in FIG. In the example of FIG. 20, the relationship between the character string lengths of the character strings C and D in FIG. 20C is C> = D, and the relationship between the character string lengths of the character strings A, B, and C is A> = C + B. Yes, because the relationship between the character string lengths of character strings E and F is E = F.
Length (A)> = Length (C) + Length (B)
Length (C)> = Length (D)
Length (E) == Length (F)
Is obtained (FIG. 6B). This process is performed for each character string parent-child node in the list of character string parent-child nodes. Details will be described later with reference to FIG.

ステップ460) 上記の制約集合の中から整数制約(文字列長に関する制約も整数制約であるのでこれに含まれる)を全て選び出す。   Step 460) From the above constraint set, select all the integer constraints (the constraints relating to the character string length are also included because they are integer constraints).

ステップ470) 選び出された整数制約の整数の不等式となっているため、これを連立不等式として既存技術(SMT Arithmetic Theory, シンプレックス法)を用いて解き、制約を満たすレコード件数の値を求める。当該シンプレックス法の他に、SMTやSolver等を用いてもよい。これらの解法は高速であるため、実用的な時間で制約を解き、入力値とDB初期状態の組み合わせを特定できる。   Step 470) Since the selected integer constraint is an integer inequality, it is solved as a simultaneous inequality using existing technology (SMT Arithmetic Theory, simplex method), and the value of the number of records satisfying the constraint is obtained. In addition to the simplex method, SMT, Solver, etc. may be used. Since these solutions are fast, you can solve the constraints in a practical time and specify the combination of the input value and DB initial state.

次に、上記のステップ450の動作を説明する。   Next, the operation of step 450 will be described.

図22は、本発明の一実施の形態における図19のS450の詳細フローチャートである。   FIG. 22 is a detailed flowchart of S450 of FIG. 19 in one embodiment of the present invention.

ステップ910) 整数・文字列長決定部130は、ステップ440で生成された文字列親子ノードリストを読み込む。   Step 910) The integer / character string length determination unit 130 reads the character string parent-child node list generated in step 440.

ステップ920) 読み込まれた文字列親子ノードリストの文字列親子ノードの文字列因子をs0、文字列比較演算子が文字列比較演算子テーブルの等価に属する文字列比較演算子別ノード群の文字列子ノードの文字列因子をs1とおく。Length(s0)==Length(s1)という整数制約を全ての文字列子ノードに対して生成する。   Step 920) The character string child of the node group by the character string comparison operator in which the character string factor of the character string parent / child node of the read character string parent / child node list is s0 and the character string comparison operator belongs to the equivalent of the character string comparison operator table. Let s1 be the string factor of the node. An integer constraint of Length (s0) == Length (s1) is generated for all string child nodes.

ステップ930) 次に、文字列同士の部分一致に関する文字列長制約(図6(A))を抽出する。具体的には、ステップ910で読み込まれた文字列親子ノードのうち、文字列親ノードの文字列因子をs0、文字列比較演算子が文字列比較演算子テーブル(図21)の前方一致に含まれる文字列比較演算子別ノード群の文字列子ノードの文字列因子をshとする。文字列比較演算子が文字列比較演算テーブルの部分一致に含まれる文字列比較演算子別ノード群の文字列子ノードの文字列因子をs1,s2,…,snとする。文字列比較演算子が文字列比較演算子テーブルの前方一致に含まれる文字列比較演算子別ノード群の文字列子ノードの文字列因子をstとおき、
Length(s0)>=Length(sh)+Length(s1)+…+Length(sn)+Length(st)
という整数制約を生成し、これを文字列長に関する整数制約(図6(B))として出力する。
Step 930) Next, a character string length constraint (FIG. 6A) regarding partial matching between character strings is extracted. Specifically, of the character string parent and child nodes read in step 910, the character string factor of the character string parent node is s0, and the character string comparison operator is included in the forward match of the character string comparison operator table (FIG. 21). The character string factor of the character child node of the node group classified by the character string comparison operator is sh. S1, s2,..., Sn are the character string factors of the character string child nodes of the node group by character string comparison operator included in the partial match of the character string comparison operation table. The string factor of the string child node of the node group by the string comparison operator included in the forward match of the string comparison operator table is set as st
Length (s0)> = Length (sh) + Length (s1) +… + Length (sn) + Length (st)
The integer constraint is generated and output as an integer constraint relating to the character string length (FIG. 6B).

上記の整数・文字列長決定部130の処理により、入れ子の外側の配列から順に、その配列の長さを決めていくことにより、最終的に整数に関する制約について連立不等式として解ける状態になり、配列の要素を求めることが可能となり、分割して管理されている複雑なデータ構造(入れ子の配列)に対して適切にテストデータを生成することが可能となる。   By determining the length of the array in order from the array outside the nesting by the processing of the integer / character string length determination unit 130, the constraint on the integer is finally solved as a simultaneous inequality, and the array Thus, it is possible to appropriately generate test data for a complicated data structure (nested array) that is divided and managed.

また、文字列の長さに関する制約を残さず抽出することで、文字列の長さを先に求めることができ、文字決定部140において解ける状態になるため、文字列同士の包含関係を満たしたテストデータを生成することが可能となる。   In addition, by extracting all the restrictions on the length of the character string, the length of the character string can be obtained first and can be solved by the character determination unit 140, so that the inclusion relationship between the character strings is satisfied. Test data can be generated.

次に、文字決定部140における図9のS140の処理を詳細に説明する。   Next, the process of S140 of FIG. 9 in the character determination unit 140 will be described in detail.

図23は、本発明の一実施の形態における図9のS140の詳細フローチャートであり、図24は、本発明の一実施の形態における文字決定部の処理を示す。   FIG. 23 is a detailed flowchart of S140 of FIG. 9 in one embodiment of the present invention, and FIG. 24 shows the processing of the character determination unit in one embodiment of the present invention.

ステップ510) 文字決定部140は、テストケース記憶部160から読み込んだテストケースcの変数集合から文字列型変数を選ぶ。   Step 510) The character determination unit 140 selects a character string type variable from the variable set of the test case c read from the test case storage unit 160.

ステップ520) ステップ520で選択された文字列型変数の文字列長変数の値の分だけ文字列型変数を生成し、文字列型変数のメンバとする。文字列型変数のSymbolには全ての文字列型変数で異なる一意性のある記号(図24では「σ1」、「σ2」を割り当てる(図24(a))。   Step 520) A character string type variable is generated for the value of the character string length variable of the character string type variable selected in step 520, and is made a member of the character string type variable. Symbols of character string type variables are assigned unique symbols (“σ1” and “σ2” in FIG. 24) that are different in all character string type variables (FIG. 24A).

ステップ530) 文字列親子ノードリスト(図24(c))を読み込む。なお、文字列親子ノードリストは、対応する文字型変数のSymbol(図24の例では「σ」)が揃えてある。   Step 530) The character string parent / child node list (FIG. 24C) is read. In the character string parent / child node list, the corresponding character variable Symbol (“σ” in the example of FIG. 24) is arranged.

ステップ540) 文字列親子ノード(図24(c))と文字列子ノードの対応する文字を同じ変数で揃える(図24(d))。当該処理は、文字列変数同士の対応する位置に存在する文字を一致させる処理であるため、文字列同士の包含関係を満たしたテストデータを生成することができる。当該処理を文字列親子ノードリストの各文字列親子ノードに対して行う。詳細については、図25で後述する。   Step 540) The character string parent / child node (FIG. 24C) and the character corresponding to the character string child node are aligned with the same variable (FIG. 24D). Since this process is a process of matching characters existing at corresponding positions between character string variables, it is possible to generate test data that satisfies the inclusion relationship between the character strings. This processing is performed for each character string parent-child node in the character string parent-child node list. Details will be described later with reference to FIG.

ステップ550) 文字変数に具体的な文字値を割り当てる。例えば、"a"〜"z"の範囲のアルファベットからランダムに選んだ文字を当てはめていくという方法がある。このようにして割り当てられた文字変数の値をテストケース記憶部160に出力する。   Step 550) Assign a specific character value to the character variable. For example, there is a method of applying characters randomly selected from alphabets in the range of “a” to “z”. The value of the character variable assigned in this way is output to the test case storage unit 160.

次に、上記の図23のS540の処理について説明する。   Next, the process of S540 in FIG. 23 will be described.

図25は、本発明の一実施の形態における図23のS540の詳細フローチャートである。   FIG. 25 is a detailed flowchart of S540 in FIG. 23 according to the embodiment of the present invention.

ステップ1010) 文字列決定部140は、文字列親子ノードを読み込む。   Step 1010) The character string determination unit 140 reads the character string parent-child node.

ステップ1020) 文字列現在位置を0に設定する。   Step 1020) The current position of the character string is set to 0.

以下の処理を文字列親子ノードの各文字列比較演算子別子ノード群の各文字列子ノードに対して行う。   The following processing is performed on each character string child node of each character string comparison operator-specific child node group of the character string parent / child node.

ステップ1030) 読み込まれた文字列親子ノードの各文字列比較演算子別子ノード群に対して、当該文字列比較演算子ノード群の各文字列子ノードの文字列比較演算子の種類が、前方一致または部分一致、等価、後方一致のいずれであるかを判定する。前方一致または部分一致の場合はステップ1040へ、等価の場合はステップ1050へ、後方一致の場合はステップ1060の処理に移行する。   Step 1030) For each child node group of each character string comparison operator of the read character string parent and child node, the type of the character string comparison operator of each character child node of the character string comparison operator node group is a forward match. Alternatively, it is determined whether it is partial match, equality, or backward match. If it is a forward match or partial match, the process proceeds to step 1040. If it is equivalent, the process proceeds to step 1050. If it is a backward match, the process proceeds to step 1060.

ステップ1040) 前方一致、部分一致要の文字列型変数ペアリストを生成する。詳しくは、文字列親ノードの文字列をps、文字列子ノードの文字列をcsとおき、
[(ps[文字列現在位置],cs[0]),…,(ps[文字列現在位置+1],cs[Length(cs)-1])
という文字列変数ペアリストを作成する。そして、文字列現在位置にLength(cs)を加え、ステップ1070に移行する。
Step 1040) A character string type variable pair list for forward matching and partial matching is generated. For details, set the character string of the string parent node to ps, the character string of the character child node to cs,
[(ps [character string current position], cs [0]), ..., (ps [character string current position + 1], cs [Length (cs) -1])
Create a string variable pair list. Then, Length (cs) is added to the current character string position, and the process proceeds to Step 1070.

ステップ1050) 等価用の文字型変数ペアリストを作成する。詳しくは、文字列親ノード及び文字列子ノードを取得し、文字列親ノードの文字列をps、文字列子ノードのm時列をcsとおき、
[ps[0], cs[0], …, (ps[Length(ps)−1], cs[Length(cs)−1])
という文字列変数ペアリストを作成する。そして文字列現在位置にLength(cs)を加え、ステップ1070の処理に移行する。
Step 1050) Create a character variable pair list for equivalence. Specifically, the string parent node and the string child node are acquired, the string of the string parent node is ps, the m time string of the string child node is cs,
[ps [0], cs [0],…, (ps [Length (ps) −1], cs [Length (cs) −1])
Create a string variable pair list. Then, Length (cs) is added to the current character string position, and the process proceeds to step 1070.

ステップ1060) 後方一致用の文字列型変数のペアリストを作成する。詳しくは、文字列親ノード及び文字列子ノードを取得し、文字列親ノードの文字列をps、文字列子ノードの文字列をcsとおき、
[(ps)[Length(ps)−Length(cs)], cs[0]], …, (ps[Length(ps)−1], cs[Length(cs)−1])
という文字列変数ペアリストを作成し、ステップ1070の処理に移行する。
Step 1060) A pair list of character string type variables for backward matching is created. Specifically, the character string parent node and the character child node are obtained, the character string of the character string parent node is set to ps, the character string of the character string child node is set to cs,
[(ps) [Length (ps) −Length (cs)], cs [0]],…, (ps [Length (ps) −1], cs [Length (cs) −1])
The character string variable pair list is created, and the process proceeds to step 1070.

ステップ1070) 上記のステップ1040,1050,1060で生成された文字型変数ペアリストの各文字型変形ペアの文字を揃える。詳しくは、文字列比較演算子、及び、ステップ1060で生成された文字型変数ペアリストを取得し、文字列比較演算子に基づき文字列型変形ペアの文字を揃える。当該処理を文字型変数ペアリストの各文字型変数ペアに対して行う。詳細について以下に示す。   Step 1070) Align the characters of each character type deformation pair in the character type variable pair list generated in Steps 1040, 1050 and 1060 described above. Specifically, the character string comparison operator and the character type variable pair list generated in step 1060 are acquired, and the characters of the character string type modified pair are aligned based on the character string comparison operator. This process is performed for each character variable pair in the character variable pair list. Details are shown below.

図26は、本発明の一実施の形態における図25のS1070の詳細フローチャートである。   FIG. 26 is a detailed flowchart of S1070 in FIG. 25 according to the embodiment of the present invention.

ステップ1110) ステップ1040,1050,1060で生成された文字型変形ペアを読み込む。   Step 1110) The character type deformation pair generated in Steps 1040, 1050 and 1060 is read.

ステップ1120) 読み込んだ文字型変数ペアの組は、文字型変数同士、文字型変数と定数文字(もしくは値の決まった文字型変数)、定数文字同士のいずれであるかを判断する。   Step 1120) It is determined whether the set of the read character type variable pairs is a character type variable, a character type variable and a constant character (or a character type variable with a fixed value), or a constant character.

文字型変数同士であればステップ1130の処理に移行し、文字型変数と定数文字であればステップ1140の処理に移行し、定数文字同士であればステップ1150の処理に移行する。   If it is a character type variable, the process proceeds to step 1130. If it is a character type variable and a constant character, the process proceeds to step 1140. If it is a constant character, the process proceeds to step 1150.

ステップ1130) 文字型変数ペアの組が文字型変数同士の場合は、字変数型ペアを構成する2つの文字型変数のSymbolに割り当てられている記号をそれぞれX, Yとおく。テストケースで用いられている全文字型変数のうちSymbolがX, Yであるもの全てに対し、SymbolをXに置換した文字型変数ペアを出力する。   Step 1130) When the set of character type variable pairs is character type variables, the symbols assigned to the symbols of the two character type variables constituting the character variable type pair are set as X and Y, respectively. Outputs character variable pairs in which Symbol is replaced with X for all character variables used in the test case whose Symbol is X, Y.

ステップ1140) 文字型変数ペアの組が文字型変数と定数文字であれば、文字変数の値を定数文字に置き換えた文字型変数ペアを出力する。   Step 1140) If the set of character variable pairs is a character variable and a constant character, a character variable pair in which the value of the character variable is replaced with a constant character is output.

ステップ1150) 文字型変数ペアの組が定数文字同士であれば定数同士が等価であることを確認し、定数同士が等価でない場合はテストデータ生成不可エラーを出力する。   Step 1150) If the set of character variable pairs is constant characters, it is confirmed that the constants are equivalent. If the constants are not equivalent, a test data generation impossible error is output.

上記の文字決定部140の、図5に示す条件(1)、条件(2)、条件(3)に含まれる制約のうち、文字列変数同士の包含関係に基づき、文字列変数同士の対応する位置に存在する文字がそれぞれ一致するように文字を決定することにより、文字列変数同士の対応する位置に存在する文字が一致するようになるため、文字列同士の包含関係を満たしたテストデータを生成することが可能となる。   Of the constraints included in the condition (1), condition (2), and condition (3) shown in FIG. 5 of the character determination unit 140, the character string variables correspond to each other based on the inclusion relationship between the character string variables. By determining the characters so that the characters existing at the positions match each other, the characters existing at the corresponding positions between the character string variables will match, so test data that satisfies the inclusion relationship between the character strings Can be generated.

なお、上記のテストデータ生成装置の各構成の動作をプログラムとして構築し、テストデータ生成装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。   In addition, it is possible to construct the operation of each component of the test data generation apparatus as a program, install it on a computer used as the test data generation apparatus, execute it, or distribute it via a network.

本発明は上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。   The present invention is not limited to the above-described embodiment, and various modifications and applications can be made within the scope of the claims.

10 ユーザ端末
100 テストデータ生成装置
110 テストケース抽出部
120 DBレコード件数決定部
130 整数・文字列長決定部
140 文字決定部
150 テストデータ出力部
DESCRIPTION OF SYMBOLS 10 User terminal 100 Test data generation apparatus 110 Test case extraction part 120 DB record number determination part 130 Integer / character string length determination part 140 Character determination part 150 Test data output part

Claims (10)

データベース(DB)に格納されているデータの読み出し操作を伴う機能性テストを実施するためのテストデータを生成するテストデータ生成装置であって、
テストケースを格納するテストケース記憶手段と、
設計情報として、ソフトウェアの入力値の定義域を表す入力値定義、ソフトウェアの処理の流れを表す処理フロー図、データベースの設計情報であるDB定義を取得し、入力変数、DBテーブル変数、及び該ソフトウェアの特定の振る舞いを引き起こすようにテストデータが満たすべき条件である制約を抽出し、前記テストケース記憶手段に格納するテストケース抽出手段と、
前記テストケース記憶手段から取得した、前記DBテーブル変数のレコード件数に関する制約を解き、該DBテーブル変数のレコード件数を決定し、該レコード件数分のDBレコード変数を生成し、前記テストケース記憶手段に格納するDBレコード件数決定手段と、
前記テストケース記憶手段から取得した、文字列型変数同士の包含関係に関する制約から、文字列長に関する制約を導出し、文字列型変数の文字列長と整数型変数に関する制約を解き、文字列長変数と整数型変数を前記テストケース記憶手段に格納する整数・文字列長決定手段と、
前記テストケース記憶手段から取得した文字列型変数に関する制約を解き、文字列型変数を構成する文字の値を決定し、前記テストケース記憶手段に格納する文字決定手段と、
前記テストケース記憶手段に格納されている前記入力変数、前記DBテーブル変数をテストデータとして出力する出力手段と、
を有することを特徴とするテストデータ生成装置。
A test data generation device that generates test data for performing a functionality test that involves a read operation of data stored in a database (DB),
Test case storage means for storing test cases;
As design information, an input value definition that represents a domain of software input values, a process flow diagram that represents the flow of software processing, a DB definition that is database design information is acquired, input variables, DB table variables, and the software A test case extracting means for extracting a constraint that is a condition to be satisfied by the test data so as to cause a specific behavior of the test case, and storing it in the test case storage means;
Solving the restriction on the number of records of the DB table variable acquired from the test case storage means, determining the number of records of the DB table variable, generating DB record variables for the number of records, and storing the test case storage means Means for determining the number of DB records to be stored;
Deriving constraints on the string length from the constraints on the inclusion relationship between the string type variables obtained from the test case storage means, solving the constraints on the string length of the string type variable and the integer type variable, and the string length Integer / character string length determining means for storing variables and integer variables in the test case storage means;
A character determination unit that solves the restriction on the character string type variable acquired from the test case storage unit, determines a value of a character constituting the character string type variable, and stores the character value in the test case storage unit;
The input variable stored in the test case storage means, the output means for outputting the DB table variable as test data;
A test data generation apparatus comprising:
前記テストケース抽出手段は、
前記入力値定義及び前記処理フロー図から「入力値に対する制約」を抽出し、該処理フロー図のDB検索条件から、「検索ヒット数、入力値、DB初期状態依存関係に関する制約」を抽出し、前記DB定義より「DB初期状態に対する制約」を抽出する手段を含む
請求項1記載のテストデータ生成装置。
The test case extraction means includes
Extract “constraints on input values” from the input value definition and the processing flow diagram, and extract “constraints on the number of search hits, input values, DB initial state dependency” from the DB search conditions of the processing flow diagram, The test data generation apparatus according to claim 1, further comprising means for extracting “a constraint on the DB initial state” from the DB definition.
前記レコード件数決定手段は、
入れ子の配列に相当する複雑なDBテーブルのレコード群を検出した場合に、前記「検索ヒット数、入力値、DB初期状態依存関係に関する制約」に含まれる不等式で表された「DBテーブルのレコード群の件数に関する制約」を選択し、連立不等式として解くことでDBテーブル変数のDBレコード件数を決定する手段を含み、
前記整数・文字列長決定手段は、
入れ子の配列に相当する複雑なDBテーブルのレコード群を検出した場合に、前記テストケース抽出手段で抽出された前記「入力値に対する制約」、前記「検索ヒット数、入力値、DB初期状態依存関係に関する制約」、前記「DB初期状態に対する制約」のいずれかに含まれる、不等式で表された「文字列の長さに関する制約」を選択し、連立不等式として解くことで配列の長さを決定する手段を含む
請求項2記載のテストデータ生成装置。
The record number determining means is:
When a complex DB table record group corresponding to a nested array is detected, the “DB table record group represented by the inequalities included in the“ restrictions regarding the number of search hits, input values, and DB initial state dependency ” Including the means to determine the number of DB records in the DB table variable by selecting `` Restriction on number of cases '' and solving as simultaneous inequalities,
The integer / character string length determining means includes:
When a record group of a complicated DB table corresponding to a nested array is detected, the “constraints on input values” extracted by the test case extraction unit, the “number of search hits, input values, DB initial state dependency” ”Restriction on DB” and “Restriction on DB initial state”, select “Constraint on length of character string” expressed by inequalities, and determine the length of the array by solving as simultaneous inequalities 3. The test data generation apparatus according to claim 2 , further comprising means.
前記レコード件数決定手段は、
前記「DB初期状態に対する制約」のうち、DBレコードの主キー、外部キーに関する制約を選び、整数変数同士比較、または、文字列変数同士の比較とする制約に変形する手段を含む
請求項3記載のテストデータ生成装置。
The record number determining means is:
4. A means for selecting a constraint relating to a primary key and a foreign key of a DB record from the “constraints for the DB initial state” and transforming the constraint into a constraint for comparing integer variables or comparing string variables. Test data generator.
前記整数・文字列長決定手段は、
前記「DB初期状態に対する制約」のうち、DBレコードの主キー、外部キーに関する制約を選び、整数変数同士比較に変換した制約、前記「入力値に対する制約」、前記「検索ヒット数、入力値、DB初期状態依存関係に関する制約」、前記「DB初期状態に対する制約」のいずれかに含まれる、不等式で表された「整数に関する制約」を選択し、選択された整数に関する制約を連立不等式として解き、制約群を満たす値を求める手段を含む
請求項3記載のテストデータ生成装置。
The integer / character string length determining means includes:
Of the “constraints for the DB initial state”, select a constraint on the primary key and foreign key of the DB record, and convert the constraints into comparisons between integer variables, the “constraints on input values”, the “number of search hits, input values, Select `` integer constraints '' represented by inequalities included in either `` Constraints on DB initial state dependency '' or `` Constraints on DB initial state '', solve constraints on selected integers as simultaneous inequalities, 4. The test data generation apparatus according to claim 3, further comprising means for obtaining a value satisfying the constraint group.
前記文字決定手段は、
前記「入力値に対する制約」、前記「検索ヒット数、入力値、DB初期状態依存関係に関する制約」のいずれかに含まれる、文字列変数同士の包含関係に基づいて、該文字列変数同士の対応する位置に存在する文字がそれぞれ一致する文字を前記文字の値と決定する手段を含む
請求項2記載のテストデータ生成装置。
The character determining means is
Correspondence between the character string variables based on the inclusion relationship between the character string variables included in any one of the “restrictions on input values” and “restrictions on the number of search hits, input values, and DB initial state dependency” test data generation apparatus according to claim 2 Symbol mounting includes means for determining the character and the value of the character to a character present at a position coincide respectively.
データベース(DB)に格納されているデータの読み出し操作を伴う機能性テストを実施するためのテストデータを生成するテストデータ生成方法であって、
テストケース抽出手段が、設計情報として、ソフトウェアの入力値の定義域を表す入力値定義、ソフトウェアの処理の流れを表す処理フロー図、データベースの設計情報であるDB定義を取得し、入力変数、DBテーブル変数、及び該ソフトウェアの特定の振る舞いを引き起こすようにテストデータが満たすべき条件である制約を抽出し、テストケース記憶手段に格納するテストケース抽出ステップと、
DBレコード件数決定手段が、前記テストケース記憶手段から取得した、前記DBテーブル変数のレコード件数に関する制約を解き、該DBテーブル変数のレコード件数を決定し、前記テストケース記憶手段に格納するDBレコード件数決定ステップと、
整数・文字列長決定手段が、前記テストケース記憶手段から取得した、文字列型変数同士の包含関係に関する制約から、文字列長に関する制約を導出し、文字列型変数の文字列長と整数型変数に関する制約を解き、文字列長変数と整数型変数を前記テストケース記憶手段に格納する整数・文字列長決定ステップと、
文字決定手段が、前記文字列型変数に関する制約を解き、該文字列型変数を構成する文字の値を決定し、前記テストケース記憶手段に格納する文字決定ステップと、
出力手段が、前記テストケース記憶手段に格納されている前記入力変数、前記DBテーブル変数をテストデータとして出力する出力ステップと、
を行うことを特徴とするテストデータ生成方法。
A test data generation method for generating test data for performing a functionality test accompanied by a read operation of data stored in a database (DB),
The test case extraction means obtains the input value definition that represents the domain of the software input value, the process flow diagram that represents the software process flow, and the DB definition that is the database design information as the design information, and the input variables and DB A test case extraction step of extracting a table variable and a constraint that is a condition that the test data should satisfy so as to cause a specific behavior of the software, and storing it in a test case storage unit;
DB record count determination unit has acquired from the test case storing means, solves the constraint on the number of records of the DB table variable, DB number of records to determine the number of records of the DB table variable, is stored in the test case storage unit A decision step;
The integer / character string length determining means derives the restriction on the character string length from the restriction on the inclusion relation between the character string type variables obtained from the test case storage means, and the character string length and the integer type of the character string type variable are derived. Integer / character string length determination step for solving constraints on variables and storing character string length variables and integer type variables in the test case storage means;
A character determining unit that resolves restrictions on the character string type variable, determines a value of a character that constitutes the character string type variable, and stores the character value in the test case storage unit;
An output means for outputting the input variables stored in the test case storage means and the DB table variables as test data; and
The test data generation method characterized by performing.
前記テストケース抽出ステップにおいて、
前記入力値定義及び前記処理フロー図から「入力値に対する制約」を抽出し、該処理フロー図のDB検索条件から、「検索ヒット数、入力値、DB初期状態依存関係に関する制約」を抽出し、前記DB定義より「DB初期状態に対する制約」を抽出し、
前記レコード件数決定ステップにおいて、
入れ子の配列に相当する複雑なDBテーブルのレコード群を検出した場合に、前記「検索ヒット数、入力値、DB初期状態依存関係に関する制約」に含まれる不等式で表された「DBテーブルのレコード群の件数に関する制約」を選択し、連立不等式として解くことでDBテーブル変数のDBレコード件数を決定し、
前記整数・文字列長決定ステップにおいて、
入れ子の配列に相当する複雑なDBテーブルのレコード群を検出した場合に、前記テストケース抽出手段で抽出された前記「入力値に対する制約」、前記「検索ヒット数、入力値、DB初期状態依存関係に関する制約」、前記「DB初期状態に対する制約」のいずれかに含まれる不等式で表された「文字列の長さに関する制約」を選択し、連立不等式として解くことで配列の長さを決定する
請求項7記載のテストデータ生成方法。
In the test case extraction step,
Extract “constraints on input values” from the input value definition and the processing flow diagram, and extract “constraints on the number of search hits, input values, DB initial state dependency” from the DB search conditions of the processing flow diagram, Extract “Restrictions on DB initial state” from the DB definition,
In the record number determination step,
When a complex DB table record group corresponding to a nested array is detected, the “DB table record group represented by the inequalities included in the“ restrictions regarding the number of search hits, input values, and DB initial state dependency ” Select `` Restriction on number of records '' and solve the simultaneous inequality to determine the number of DB records for the DB table variable.
In the integer / string length determination step,
When a record group of a complicated DB table corresponding to a nested array is detected, the “constraints on input values” extracted by the test case extraction unit, the “number of search hits, input values, DB initial state dependency” Select the "constraint length related to string length" represented by the inequalities included in either of the "constraints on" and "constraints on the DB initial state", and determine the length of the array by solving as simultaneous inequalities Item 8. The test data generation method according to Item 7.
前記レコード件数決定ステップにおいて、
前記「DB初期状態に対する制約」のうち、DBレコードの主キー、外部キーに関する制約を選び、整数変数同士比較、または、文字列変数同士の比較とする制約に変形し、
前記整数・文字列長決定ステップにおいて、
前記「DB初期状態に対する制約」のうち、DBレコードの主キー、外部キーに関する制約を選び、整数変数同士比較に変換した制約、前記「入力値に対する制約」、前記「検索ヒット数、入力値、DB初期状態依存関係に関する制約」、前記「DB初期状態に対する制約」のいずれかに含まれる、不等式で表された「整数に関する制約」を選択し、選択された整数に関する制約を連立不等式として解き、制約群を満たす値を求める
請求項8記載のテストデータ生成方法。
In the record number determination step,
Select the constraint on the primary key and foreign key of the DB record from the above `` Constraint on DB initial state '', and transform it into a constraint that makes comparison between integer variables or comparison between string variables,
In the integer / string length determination step,
Of the “constraints for the DB initial state”, select a constraint on the primary key and foreign key of the DB record, and convert the constraints into comparisons between integer variables, the “constraints on input values”, the “number of search hits, input values, Select `` integer constraints '' represented by inequalities included in either `` Constraints on DB initial state dependency '' or `` Constraints on DB initial state '', solve constraints on selected integers as simultaneous inequalities, The test data generation method according to claim 8, wherein a value satisfying the constraint group is obtained.
前記文字決定ステップにおいて、
前記「入力値に対する制約」、前記「検索ヒット数、入力値、DB初期状態依存関係に関する制約」のいずれかに含まれる、文字列変数同士の包含関係に基づいて、該文字列変数同士の対応する位置に存在する文字がそれぞれ一致する文字を前記文字の値と決定する手段を含む
請求項8記載のテストデータ生成方法。
In the character determination step,
Correspondence between the character string variables based on the inclusion relationship between the character string variables included in any one of the “restrictions on input values” and “restrictions on the number of search hits, input values, and DB initial state dependency” test data generation method according to claim 8 Symbol mounting includes means characters to determine the value of the character matching characters each present at a position.
JP2011087672A 2011-04-11 2011-04-11 Test data generation apparatus and method Active JP5514143B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011087672A JP5514143B2 (en) 2011-04-11 2011-04-11 Test data generation apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011087672A JP5514143B2 (en) 2011-04-11 2011-04-11 Test data generation apparatus and method

Publications (2)

Publication Number Publication Date
JP2012221311A JP2012221311A (en) 2012-11-12
JP5514143B2 true JP5514143B2 (en) 2014-06-04

Family

ID=47272717

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011087672A Active JP5514143B2 (en) 2011-04-11 2011-04-11 Test data generation apparatus and method

Country Status (1)

Country Link
JP (1) JP5514143B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6067644B2 (en) * 2014-10-15 2017-01-25 日本電信電話株式会社 Boundary value test data generation apparatus, method and program for detecting inequality error
JP6067642B2 (en) * 2014-10-15 2017-01-25 日本電信電話株式会社 Equivalence test data generation apparatus, method and program
JP6067643B2 (en) * 2014-10-15 2017-01-25 日本電信電話株式会社 Boundary value test data generation apparatus, method and program
JP5965455B2 (en) * 2014-10-15 2016-08-03 日本電信電話株式会社 Boundary value test data generation apparatus, method and program with priority
JP6684233B2 (en) * 2017-01-12 2020-04-22 株式会社日立製作所 Test input information retrieval device and method

Also Published As

Publication number Publication date
JP2012221311A (en) 2012-11-12

Similar Documents

Publication Publication Date Title
JP5514143B2 (en) Test data generation apparatus and method
Korman et al. Distributed verification of minimum spanning trees
CN106897352B (en) Method and system for generating block chain modified in expansion
JP5040925B2 (en) Information extraction rule creation support system, information extraction rule creation support method, and information extraction rule creation support program
US10445428B2 (en) Information object extraction using combination of classifiers
CN102388595A (en) Resource matching method and device in VPC migration
US20180039890A1 (en) Adaptive knowledge base construction method and system
CN107066495B (en) Generation method and system of block chain expanded along longitudinal direction
CN104077228A (en) EFSM performable test sequence generating method based on predicate dependency graph
CN114077534A (en) Test case generation method and device and computer readable storage medium
JP5514144B2 (en) Test data generation apparatus and method
Ďuračík et al. Searching source code fragments using incremental clustering
CN114501458A (en) WIA-PA protocol fuzz test data generation method based on extended finite-state machine
Álvarez-Miranda et al. The recoverable robust two-level network design problem
JP5514145B2 (en) Test data generation apparatus and method
JP5514146B2 (en) Test data generation apparatus and method
JP5718166B2 (en) Design verification method and program
Gudapati et al. In search of dense subgraphs: How good is greedy peeling?
CN109558521A (en) Large scale key word multi-mode matching method, device and equipment
JP5555238B2 (en) Information processing apparatus and program for Bayesian network structure learning
Gnecco et al. Sparse solutions to the average consensus problem via various regularizations of the fastest mixing Markov-chain problem
Stepien et al. Challenges of composing XACML policies
Gupta et al. Fast dynamic programming in trees in the mpc model
Blanché et al. Hereditary graph classes: When the complexities of coloring and clique cover coincide
CN114201199A (en) Protection upgrading method based on big data of information security and information security system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121022

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20131007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131112

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131227

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: 20140325

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140328

R150 Certificate of patent or registration of utility model

Ref document number: 5514143

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150