JP5164919B2 - Test data generation method, apparatus and program - Google Patents
Test data generation method, apparatus and program Download PDFInfo
- Publication number
- JP5164919B2 JP5164919B2 JP2009116917A JP2009116917A JP5164919B2 JP 5164919 B2 JP5164919 B2 JP 5164919B2 JP 2009116917 A JP2009116917 A JP 2009116917A JP 2009116917 A JP2009116917 A JP 2009116917A JP 5164919 B2 JP5164919 B2 JP 5164919B2
- Authority
- JP
- Japan
- Prior art keywords
- test data
- level
- data specification
- factor
- execution path
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
本発明は、テストデータ生成方法及び装置及びプログラムに係り、特に、プログラム開発工程において、設計モデルに記述された設計意図の通りにシステムが構築されたか否かを確認するためのテストで用いるテストデータを人手により作成するのではなく、設計モデルにより自動的に作成するためのテストデータ生成方法及び装置及びプログラムに関する。 The present invention relates to a test data generation method, apparatus, and program, and in particular, test data used in a test for confirming whether or not a system has been constructed according to a design intent described in a design model in a program development process. The present invention relates to a test data generation method, apparatus, and program for automatically generating data based on a design model rather than manually.
プログラム開発工程におけるテストでは、システムが設計どおりに構築されたか否かという確認を行うため、テストデータを用いる。当該テストデータを構築するために、人手に依らず自動でテストデータを準備できれば開発コストの改善が期待できる。 In the test in the program development process, test data is used to confirm whether or not the system has been constructed as designed. In order to construct the test data, if test data can be prepared automatically without human intervention, improvement in development cost can be expected.
そのためのテストデータの自動生成技術として、プログラム中で扱う数値や論理値などの基本データ型に対応させてテストデータを生成する技術がある(例えば、非特許文献1参照)。しかし、当該技術では、階層構造を持つデータ型を多用する現実的なシステムへの適用には隔たりがある。そこで、階層構造を持つ複雑なデータ型を基本型にまで分解し、その各基本型に対して所定の値を与えることによりテストデータを生成する技術がある(例えば、特許文献1参照)。しかし、当該技術では、システム内部の実行経路を考慮していないため、効果的なテストデータが生成できないという問題がある。 As a test data automatic generation technique for this purpose, there is a technique for generating test data in correspondence with basic data types such as numerical values and logical values handled in a program (see, for example, Non-Patent Document 1). However, in this technology, there is a difference in application to a realistic system that frequently uses a data type having a hierarchical structure. Therefore, there is a technique for generating test data by decomposing a complex data type having a hierarchical structure into basic types and giving a predetermined value to each basic type (see, for example, Patent Document 1). However, this technique has a problem in that effective test data cannot be generated because the execution path inside the system is not taken into consideration.
また、設計モデルに基づいてテストデータを自動生成する技術がある(例えば、非特許文献2参照)。しかし、当該技術は、テストデータ自動生成の入力となる設計モデルを、利用者にとって難解な記法や独自の記法を用いて作成しなければならないため、利用障壁が高いという問題がある。 There is also a technology for automatically generating test data based on a design model (see, for example, Non-Patent Document 2). However, this technique has a problem that the use barrier is high because a design model that is an input for automatic test data generation must be created using a notation that is difficult for the user or a unique notation.
さらに、テストデータの自動生成の入力が、設計モデルであるか否かによらず、一般的に、特定実行経路をテストするためのテストデータ生成は、解くのが難しいとされる「制約充足問題」の一種である。動的な探索により適切な解を見つける手法がある(例えば、非特許文献3参照)。しかし、探索を用いた手法ではトライアンドエラーによる生成であるため、テストデータの網羅性を確保できないのが難点である。 In addition, test data generation for testing a specific execution path is generally considered difficult to solve regardless of whether the input for automatic test data generation is a design model or not. Is a kind of. There is a technique for finding an appropriate solution by dynamic search (see, for example, Non-Patent Document 3). However, since the method using search is generated by trial and error, it is difficult to ensure completeness of test data.
上記のように、従来の設計モデルを用いて特定実行経路のためのテストデータを生成する技術は、トライアンドエラーによる生成手法を用いるため、確実にテストデータの網羅性を保証できないという問題は解決できない。 As described above, the technology that generates test data for a specific execution path using a conventional design model uses a generation method based on trial and error, which solves the problem that test data coverage cannot be guaranteed reliably. Can not.
本発明は、上記の点に鑑みなされたもので、構造体やオブジェクト型データを含む設計モデルに基づくシステムへのテストデータを自動生成することが可能で、さらに、設計モデルの記述労力の削減を可能とするテストデータ生成方法及び装置及びプログラムを提供することを目的とする。 The present invention has been made in view of the above points, and it is possible to automatically generate test data for a system based on a design model including structure and object type data, and to reduce design model description labor. It is an object of the present invention to provide a test data generation method, apparatus, and program that can be used.
図1は、本発明の原理構成図である。 FIG. 1 is a principle configuration diagram of the present invention.
本発明(請求項1)は、システムの設計情報を形式的な言語で記述した設計モデルの設計意図に沿って、システムが構築されたか否かを確認するためのテストデータを生成するテストデータ生成装置であって、
ユーザ端末より、UMLクラス図とアクティビティ図のみで記述した設計モデルを読み込む設計モデル読込手段1と、
読み込まれた設計モデルからアクティビティ図をテスト対象として抽出する設計モデル分析手段2と、
テスト対象から実行経路を抽出する実行経路抽出手段3と、
実行経路抽出手段3から抽出された各実行経路を持つアクティビティの入力パラメータを変数(実験計画法でいう「因子」)とし、該変数が満たすべき制約条件を実行経路の始点ノードから終点ノードを走査することで抽出し、該制約条件及び変数の型に基づいて、テストデータ仕様記憶手段8に格納されているテストデータ仕様を更新するテストデータ仕様生成手段4と、
テストデータ仕様記憶手段8からテストデータ仕様を読み込み、該テストデータ仕様毎に、因子のとる値(実験計画法でいう「水準」)を生成し、該因子と該水準を記憶手段に格納する水準生成手段5と、
因子と水準を取得して、該因子と該水準の組み合わせである「入力」に対する実行経路を取得し、該「入力」が実行経路にとって許容する入力である正常入力、または、該実行経路にとって許容しない入力である異常入力のいずれであるか、及び、実行経路中に事後条件が含まれるか否かにより期待値を求め、該「入力」に該期待値を付与したテストデータを生成する組み合わせ手段6と、
テストデータをユーザ端末に出力する出力手段7と、を有する。
The present invention (Claim 1) provides test data generation for generating test data for confirming whether or not a system has been constructed in accordance with the design intent of a design model in which system design information is described in a formal language. A device,
A design model reading means 1 for reading a design model described only by a UML class diagram and an activity diagram from a user terminal;
Design model analysis means 2 for extracting an activity diagram as a test object from the read design model;
Execution path extraction means 3 for extracting an execution path from the test target;
The input parameter of the activity having each execution path extracted from the execution path extraction means 3 is set as a variable (“factor” in the experimental design method), and the constraint condition to be satisfied by the variable is scanned from the start point node to the end point node of the execution path. The test data specification generation means 4 for updating the test data specification stored in the test data specification storage means 8 based on the constraint condition and the variable type,
A level at which a test data specification is read from the test data
The factor and the level are acquired, the execution path for “input” that is a combination of the factor and the level is acquired, and the normal input that the “input” allows for the execution path or the allowable path for the execution path Combination means for obtaining an expected value based on whether the input is an abnormal input that is not input and whether or not a post-condition is included in the execution path, and generating test data in which the expected value is assigned to the “input” 6 and
Output means 7 for outputting test data to the user terminal.
また、本発明(請求項2)のテストデータ仕様生成手段3は、
テストデータ仕様が、オブジェクト型であるとき、
制約条件に含まれるオペレータが「null(ヌル)でない」の場合は、テストデータ仕様記憶手段のオブジェクト型テストデータ仕様に「Nullを許容しない」ことを記録する手段と、
制約条件に含まれるオペレータが「nullである」の場合は、テストデータ仕様記憶手段のオブジェクト型テストデータ仕様に「nullを許容する」ことを記録する手段と、
制約条件に含まれるオペレータが上記以外である場合は、テストデータ仕様記憶手段のテストデータ仕様に含まれる各属性の仕様の列を取得して、該テストデータ仕様の因子名と制約条件に含まれる因子名を比較して、一致する場合には、該制約条件を用いて該テストデータ仕様を更新する手段と、を含む。
The test data specification generating means 3 of the present invention (Claim 2)
When the test data specification is an object type,
When the operator included in the constraint condition is `` not null '', means for recording that `` Null is not allowed '' in the object type test data specification of the test data specification storage means,
When the operator included in the constraint condition is “null”, means for recording “allow null” in the object type test data specification of the test data specification storage means;
When the operator included in the constraint condition is other than the above, a column of the specification of each attribute included in the test data specification of the test data specification storage means is acquired and included in the factor name and the constraint condition of the test data specification Means for comparing the factor names and, if they match, updating the test data specification using the constraints.
また、本発明(請求項3)の水準生成手段5は、
テストデータ仕様が、オブジェクト型であるとき、水準を生成せず、
組み合わせ生成手段6は、
テストデータ仕様が、オブジェクト型であるとき、
オブジェクト型の階層構造を展開した際に、リーフのいずれかに異常を含む組み合わせをオブジェクト型の異常水準として生成し、全て正常である組み合わせを正常水準として生成する手段を含む。
The level generation means 5 of the present invention (Claim 3)
When the test data specification is an object type, no level is generated,
The combination generation means 6
When the test data specification is an object type,
Means for generating a combination including an abnormality in any of the leaves as an abnormal level of the object type when the hierarchical structure of the object type is expanded, and generating a combination that is all normal as a normal level.
また、本発明(請求項4)の組み合わせ生成手段6は、
水準生成手段5で求められた全因子の全ての正常水準を取得し、全因子の中で最も正常水準を多く持つ因子Aの正常水準数を特定し、該因子Aの正常水準を該正常水準数だけテストデータの正常入力に設定し、該因子A以外の各因子については、該因子の正常水準をテストデータに設定する手段と、
水準生成手段5で求められた全因子の全ての異常水準を取得し、該異常水準数を特定し、生成した正常入力を異常入力に上書きする手段と、を含む。
Moreover, the combination generation means 6 of the present invention (Claim 4)
All the normal levels of all factors obtained by the level generation means 5 are acquired, the number of normal levels of factor A having the most normal levels among all the factors is specified, and the normal level of the factor A is determined as the normal level A means for setting the normal input of the test data by the number, and for each factor other than the factor A, a means for setting the normal level of the factor to the test data
Means for acquiring all abnormal levels of all factors determined by the level generating means 5, specifying the number of abnormal levels, and overwriting the generated normal input over the abnormal input.
図2は、本発明の原理を説明するための図である。 FIG. 2 is a diagram for explaining the principle of the present invention.
本発明(請求項5)は、システムの設計情報を形式的な言語で記述した設計モデルの設計意図に沿って、システムが構築されたか否かを確認するためのテストデータを生成するテストデータ生成方法であって、
ユーザ端末より、UMLクラス図とアクティビティ図のみで記述した設計モデルを読み込む設計モデル読込ステップ(ステップ1)と、
読み込まれた設計モデルからアクティビティ図をテスト対象として抽出する設計モデル分析ステップ(ステップ2)と、
テスト対象から実行経路を抽出する実行経路抽出ステップ(ステップ3)と、
抽出された各実行経路を持つアクティビティの入力パラメータを変数(実験計画法でいう「因子」)とし、該変数が満たすべき制約条件を実行経路の始点ノードから終点ノードを走査することで抽出し、該制約条件及び変数の型に基づいて、テストデータ仕様記憶手段に格納されているテストデータ仕様を更新するテストデータ仕様生成ステップ(ステップ4)と、
テストデータ仕様記憶手段からテストデータ仕様を読み込み、該テストデータ仕様毎に、因子のとる値(実験計画法でいう「水準」)を生成し、該因子と該水準を記憶手段に格納する水準生成ステップ(ステップ5)と、
因子と水準を取得して、該因子と該水準の組み合わせである「入力」に対する実行経路を取得し、該「入力」が実行経路にとって許容する入力である正常入力、または、該実行経路にとって許容しない入力である異常入力のいずれであるか、及び、実行経路中に事後条件が含まれるか否かにより期待値を求め、該「入力」に該期待値を付与したテストデータを生成する組み合わせステップ(ステップ6)と、
テストデータをユーザ端末に出力する出力ステップ(ステップ7)と、を行う。
The present invention (Claim 5) provides test data generation for generating test data for confirming whether or not a system has been constructed in accordance with the design intent of a design model in which system design information is described in a formal language. A method,
A design model reading step (step 1) for reading a design model described only by a UML class diagram and an activity diagram from a user terminal;
A design model analysis step (step 2) for extracting an activity diagram as a test target from the read design model;
An execution path extraction step (step 3) for extracting an execution path from the test target;
The input parameter of the activity having each execution path extracted is a variable ("factor" in the experimental design method), and the constraint condition to be satisfied by the variable is extracted by scanning the end point node from the start point node of the execution path, A test data specification generation step (step 4) for updating the test data specification stored in the test data specification storage means based on the constraint condition and the variable type;
A test data specification is read from the test data specification storage means, a factor value (“level” in the experimental design method) is generated for each test data specification, and the factor and the level are stored in the storage means. Step (step 5);
The factor and the level are acquired, the execution path for “input” that is a combination of the factor and the level is acquired, and the normal input that the “input” allows for the execution path or the allowable path for the execution path A combination step of obtaining an expected value based on whether the input is an abnormal input that is not input and whether a post-condition is included in the execution path, and generating test data in which the expected value is assigned to the “input” (Step 6),
An output step (step 7) of outputting test data to the user terminal is performed.
また、本発明(請求項6)は、テストデータ仕様生成ステップにおいて、
テストデータ仕様が、オブジェクト型であるとき、
制約条件に含まれるオペレータが「null(ヌル)でない」の場合は、テストデータ仕様記憶手段のオブジェクト型テストデータ仕様に「Nullを許容しない」ことを記録し、
制約条件に含まれるオペレータが「nullである」の場合は、テストデータ仕様記憶手段のオブジェクト型テストデータ仕様に「nullを許容する」ことを記録し、
制約条件に含まれるオペレータが上記以外である場合は、テストデータ仕様記憶手段のテストデータ仕様に含まれる各属性の仕様の列を取得して、該テストデータ仕様の因子名と制約条件に含まれる因子名を比較して、一致する場合には、該制約条件を用いて該テストデータ仕様を更新する。
Further, the present invention (Claim 6), in the test data specification generation step,
When the test data specification is an object type,
If the operator included in the constraint is `` not null '', record that `` Null is not allowed '' in the object type test data specification of the test data specification storage means,
When the operator included in the constraint condition is "null", record that "allow null" in the object type test data specification of the test data specification storage means,
When the operator included in the constraint condition is other than the above, a column of the specification of each attribute included in the test data specification of the test data specification storage means is acquired and included in the factor name and the constraint condition of the test data specification If the factor names are compared and they match, the test data specification is updated using the constraint conditions.
また、本発明(請求項7)は、水準生成ステップにおいて、テストデータ仕様が、オブジェクト型であるとき、水準は生成せずに、
組み合わせ生成ステップにおいて、オブジェクト型の階層構造を展開した際に、リーフのいずれかに異常を含む組み合わせをオブジェクト型の異常水準として生成し、全て正常である組み合わせを正常水準として生成する。
Further, according to the present invention (Claim 7), in the level generation step, when the test data specification is an object type, the level is not generated,
In the combination generation step, when the hierarchical structure of the object type is expanded, a combination including an abnormality in any of the leaves is generated as an abnormality level of the object type, and a combination that is all normal is generated as a normal level.
また、本発明(請求項8)は、組み合わせステップにおいて、
水準生成ステップで求められた全因子の全ての正常水準を取得し、全因子の中で最も正常水準を多く持つ因子Aの正常水準数を特定し、該因子Aの正常水準を該正常水準数だけテストデータの正常入力に設定し、該因子A以外の各因子については、該因子の正常水準をテストデータに設定し、
全因子の全ての異常水準を取得し、該異常水準数を特定し、生成した正常入力を異常入力に上書きする。
Further, the present invention (Claim 8), in the combination step,
Obtain all normal levels of all factors obtained in the level generation step, specify the number of normal levels of factor A having the most normal levels among all factors, and set the normal level of factor A as the number of normal levels Only for normal input of test data, and for each factor other than the factor A, the normal level of the factor is set in the test data,
All abnormal levels of all factors are acquired, the number of abnormal levels is specified, and the generated normal input is overwritten on the abnormal input.
本発明(請求項9)は、請求項1乃至4記載のいずれか1項記載のテストデータ生成装置を構成する各手段としてコンピュータを機能させるためのテストデータ生成プログラムである。
The present invention (Claim 9) is a test data generation program for causing a computer to function as each means constituting the test data generation apparatus according to any one of
上記のように本発明によれば、基本データ型(Boolean型、Enum型、Integer型、String型)に対するテストデータ仕様を作成すると共に、それらを組み合わせたオブジェクト型テストデータ仕様を定義することで、複雑なデータ構造にも対応可能となる。これにより、階層構造を扱った現実的なシステムにおいてもテストデータ生成が利用可能である。 As described above, according to the present invention, by creating a test data specification for a basic data type (Boolean type, Enum type, Integer type, String type) and defining an object type test data specification that combines them, It is possible to deal with complicated data structures. Thus, test data generation can be used even in a realistic system that handles a hierarchical structure.
また、特殊な言語を使わずに、入力となる設計モデルを標準的なUMLのクラス図とアクティビティ図のみとし、アクティビティ図を走査し、実行経路途中の制約条件に従ってテストデータ仕様を更新することで、テストデータ生成の適用障壁を低減させることが可能となる。 In addition, by using only standard UML class diagrams and activity diagrams without using a special language, scan the activity diagram, and update the test data specifications according to the constraints in the middle of the execution path. Therefore, it is possible to reduce an application barrier for test data generation.
以下、図面と共に本発明の実施の形態を説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
最初に、以下の説明で用いられる用語について説明する。 First, terms used in the following description will be described.
「設計モデル」とは、図3に示すように、システムの設計情報を、曖昧性を持つ自然言語ではなく、何らかの形式的な記述言語により厳密的・形式的に記述したものである。図3は、UML設計モデルの例であり、クラス図とアクティビティ図を示しており、これがユーザ端末側からモデリングツールによりXMLファイルにエクスポートされる。 As shown in FIG. 3, the “design model” is a description of system design information strictly and formally in some formal description language, not a natural language with ambiguity. FIG. 3 shows an example of a UML design model, which shows a class diagram and an activity diagram, which are exported from the user terminal side to an XML file by a modeling tool.
「制約条件」とは、『a>3』のようなある因子(ここではa)の取り得る値に関する条件を指す。『a>3』の例では、制約条件は因子の名前(a)、オペレータ(>)、オペランド(3)から成り、当該制約条件が付けられている場所により、「不変条件」、「事前条件」、「分岐条件」の3種類に分かれる。制約条件のオペレータには、不等号や文字列比較等通常使われる記法を用いる。 The “constraint condition” refers to a condition regarding a possible value of a certain factor (here, a) such as “a> 3”. In the example of “a> 3”, the constraint condition is composed of a factor name (a), an operator (>), and an operand (3), and “invariant condition”, “precondition” depending on where the constraint condition is attached. ”And“ branching conditions ”. For the operator of the constraint condition, a commonly used notation such as an inequality sign or a character string comparison is used.
「テストデータ仕様」とは、設計モデル中の特定の実行経路を通るための因子(変数)が満たすべき性質を集めたもので、テストデータが満たすべき「仕様」を指す。 The “test data specification” is a collection of properties to be satisfied by factors (variables) for passing through a specific execution path in the design model, and indicates “specification” that the test data should satisfy.
「テストデータ仕様の更新」とは、テストデータ仕様を、生成直後の初期値から実行経路中の制約条件の処理に従って上書きしていくことである。 “Updating the test data specification” means overwriting the test data specification from the initial value immediately after generation according to the processing of the constraint condition in the execution path.
図4は、本発明の一実施の形態におけるテストデータ生成装置の構成を示す。 FIG. 4 shows a configuration of a test data generation apparatus according to an embodiment of the present invention.
同図に示すテストデータ装置は、設計モデル読込部1、設計モデル分析部2、実行経路抽出部3、テストデータ仕様生成部4、水準生成部5、テストデータ生成部6、出力部7、実行経路・水準記憶部11、テストデータ仕様記憶部12、テストデータ記憶部13から構成される。当該構成において、設計モデル読込部1、設計モデル分析部2、実行経路抽出部3、テストデータ仕様生成部4、水準生成部5、テストデータ生成部6、出力部7は、CPU上の機能であり、実行経路・水準記憶部11、テストデータ仕様記憶部12、テストデータ記憶部13は、ハードディスク装置等の記憶媒体である。また、図示しないが各構成要素内に一時的データを記憶するメモリを備えているものとする。
The test data device shown in FIG. 1 includes a design
設計モデル読込部1は、ユーザ端末20のモデリングツール21からエクスポートされた図3に示すようなXML形式のUMLモデル(クラス図、アクティビティ図)を読み込む。
The design
設計モデル分析部2は、読み込まれたUMLモデルを分析して、アクティビティをテスト対象として抽出する。
The design
実行経路抽出部3は、テスト対象から実行経路(Path)を抽出し、テストデータ仕様生成部4及び実行経路・水準記憶部11に出力する。
The execution
テストデータ仕様生成部4は、実行経路抽出部3で抽出された全実行経路のうちの、各実行経路に対して当該実行経路を通るための、変数(実験計画法でいう「因子」)が満たすべき性質を集め、テストデータ仕様記憶部12に格納する。オブジェクト型テストデータ仕様は、その内部に因子の属性(アトリビュート)のそれぞれのテストデータ仕様を再帰的に持つ。テストデータ仕様は、図5に示すように、データ型毎に異なり、因子を規定するドメインをもつ。ドメインは更新(上書き)されるに従い、範囲が狭められていくものとする。また、データ型は、Integer型、Enum型、Object型、Boolean型、String型、Collection型等がある。但し、Object型テストデータ仕様は、階層構造に対応するため、当該因子の属性のテストデータ仕様を含む。
The test data specification generation unit 4 has a variable (“factor” in the experimental design method) for passing the execution path for each execution path among all the execution paths extracted by the execution
水準生成部5は、テストデータ仕様記憶部12からテストデータ仕様を読み込み、因子のとる値(実験計画法でいう「水準」)を生成し、実行経路・水準記憶部11に格納する。なお、オブジェクト型テストデータ仕様からの水準の生成は、各属性(アトリビュート)がとる値の組み合わせを決める必要があるため、テストデータ生成部6で行う。
The
テストデータ生成部6は、実行経路・水準記憶部11から実行経路と水準を取得し、入力と期待値のペアを含むテストデータを生成し、図6(B)に示すようなフォーマットでテストデータ記憶部13に格納する。テストデータは、図6(B)に示すように、実行経路名、テストデータID、水準(値)、因子(変数)、期待値、正常入力または異常入力区別、テスト結果の項目からなる。なお、「入力」とは、因子と水準の組み合わせである。オブジェクト型テストデータ仕様からの水準の生成は、当該テストデータ生成部6の入力生成を利用する。オブジェクト型の階層構造を展開した際に、(リーフ)のどこかに異常を含むような組み合わせを、オブジェクト型の「異常水準」として生成し、全て正常であるような組み合わせを、オブジェクト型の「正常水準」として生成する。ここで「正常水準」とは、実行経路にとって許容する入力値であり、「異常水準」とは、実行経路にとって許容しない入力値をさす。 The test data generation unit 6 acquires the execution path and level from the execution path / level storage unit 11, generates test data including a pair of an input and an expected value, and generates the test data in a format as shown in FIG. Store in the storage unit 13. As shown in FIG. 6B, the test data includes items of an execution path name, test data ID, level (value), factor (variable), expected value, normal input or abnormal input distinction, and test result. The “input” is a combination of a factor and a level. The generation of the level from the object type test data specification uses the input generation of the test data generation unit 6. When the hierarchical structure of the object type is expanded, a combination that includes an abnormality somewhere in (leaf) is generated as the “abnormal level” of the object type, and all combinations that are normal are Generated as “normal level”. Here, the “normal level” is an input value that is allowed for the execution path, and the “abnormal level” is an input value that is not allowed for the execution path.
出力部7は、テストデータ生成部6で生成されたテストデータをテストデータ記憶部13から読み出してユーザ端末20に出力する。ここでは、CSV形式で出力するものとする。
The
上記の構成における動作を説明する。 The operation in the above configuration will be described.
図7は、本発明の一実施の形態におけるテストデータ生成処理概要のフローチャートである。 FIG. 7 is a flowchart of an outline of test data generation processing in one embodiment of the present invention.
ステップ100) 設計モデル読込部1は、ユーザ端末20から図6(A)に示すようなUML設計モデルを読み込む。
Step 100) The design
ステップ110) 設計モデル分析部2は、UML設計モデルを分解し、アクティビティをテスト対象として抽出する。
Step 110) The design
ステップ120) 実行経路抽出部3は、図8に示すように、アクティビティについて開始ノードから終了ノードまで走査し、実行経路を抽出し、テストデータ仕様生成部4と実行経路・水準記憶部11に出力する。
Step 120) As shown in FIG. 8, the execution
ステップ130) テストデータ仕様生成部4は、実行経路抽出部3から取得した実行経路を内部のメモリ(図示せず)に格納し、図9に示す処理を行い、生成されたテストデータ仕様をテストデータ仕様記憶部12に格納する。当該処理については後述する。
Step 130) The test data specification generation unit 4 stores the execution path acquired from the execution
ステップ140) 水準生成部5は、テストデータ仕様記憶部12からテストデータ仕様を読み込んで、各テストデータ仕様について図22に示す処理を行うことにより水準を生成する。詳細については後述する。なお、水準生成部5は、生成された水準と、テストデータ仕様記憶部12から取得したテストデータ仕様の「実行経路」の情報を関連付けて実行経路・水準記憶部11に格納しておくものとする。
Step 140) The
ステップ150) テストデータ生成部6は、水準生成部5で求められた実行経路に関連付けられた水準を実行経路・水準記憶部11から取得して、図32に示す処理を行い、テストデータをテストデータ記憶部13に格納する。
ステップ160) 出力部7は、テストデータ記憶部13からテストデータを取得してユーザ端末20のビューア22に出力する。
Step 150) The test data generation unit 6 obtains the level associated with the execution path obtained by the
Step 160) The
以下、テストデータ生成装置の各構成要素の動作を説明する。 Hereinafter, the operation of each component of the test data generation apparatus will be described.
<テストデータ仕様生成部4>
次に、上記のステップ130のテストデータ仕様生成部4の動作を説明する。
<Test data specification generation unit 4>
Next, the operation of the test data specification generation unit 4 in
図9は、本発明の一実施の形態におけるテストデータ仕様生成部のフローチャートである。 FIG. 9 is a flowchart of the test data specification generation unit in one embodiment of the present invention.
ステップ300) テストデータ仕様生成部4は、実行経路抽出部3から実行経路を取得しメモリ(図示せず)に格納する。
Step 300) The test data specification generation unit 4 acquires an execution path from the execution
ステップ310) ステップ300で取得した実行経路を持つアクティビティを取得する。 Step 310) The activity having the execution path acquired in Step 300 is acquired.
ステップ320) 取得したアクティビティの入力パラメータ(図10の例では、「p:People」と「flag:Boolean」)を因子として抽出する。 Step 320) The acquired activity input parameters (in the example of FIG. 10, “p: People” and “flag: Boolean”) are extracted as factors.
ステップ330) 抽出した各因子に対して、テストデータ仕様記憶部12に、テストデータ仕様のレコードを生成し、初期値を設定する。図11は、本発明の一実施の形態におけるテストデータ仕様の初期化の例を示す。同図の例は、String型テストデータとInteger型テストデータ仕様を有する因子名「p」のObject型テストデータ仕様の例である。初期化時は、同図(A)に示すように、デフォルト値を埋めておく。また、因子の型(同図の例ではPeople)に付与される。不変条件があれば、同図(B)に示すようにテストデータ仕様の該当する箇所を不変条件で初期化する。各テストデータ仕様の型毎のデフォルト値を図12に示す。なお、デフォルト値のMIN、MAXはInteger型がとり得る最大値、最小値を示す。また、nullは特に規定しないことを表す。 Step 330) For each extracted factor, a test data specification record is generated in the test data specification storage unit 12, and an initial value is set. FIG. 11 shows an example of test data specification initialization in an embodiment of the present invention. The example shown in the figure is an example of the Object type test data specification of the factor name “p” having the String type test data and the Integer type test data specification. At initialization, default values are filled in as shown in FIG. In addition, it is given to the type of factor (People in the example in the figure). If there is an invariant condition, the corresponding part of the test data specification is initialized with the invariant condition as shown in FIG. FIG. 12 shows default values for each test data specification type. Note that the default values MIN and MAX indicate the maximum and minimum values that the Integer type can take. Moreover, null represents that it is not specified.
ステップ340) テストデータ仕様の更新を行う。以下にその詳細を説明する。 Step 340) Update the test data specification. Details will be described below.
図13は、本発明の一実施の形態におけるテストデータ仕様生成部のテストデータ仕様の更新のフローチャートである。 FIG. 13 is a flowchart for updating the test data specification of the test data specification generation unit according to the embodiment of the present invention.
ステップ400) 実行経路を取得する。当該実行経路は、図10に示すように、ノードとエッジから構成される。 Step 400) Obtain an execution path. The execution path includes nodes and edges as shown in FIG.
ステップ410) 実行経路中の全制約条件を取得する。 Step 410) Acquire all constraint conditions in the execution path.
ステップ420) 制約条件に基づいてテストデータ仕様記憶部12のテストデータ仕様を更新する。詳細については、以下図14に沿って説明する。 Step 420) The test data specification in the test data specification storage unit 12 is updated based on the constraint condition. Details will be described below with reference to FIG.
図14は、本発明の一実施の形態における制約条件によるテストデータ仕様の更新のフローチャートである。 FIG. 14 is a flowchart for updating the test data specification according to the constraint condition according to the embodiment of the present invention.
ステップ500) 実行経路抽出部3から取得した実行経路から制約条件を取得する。
Step 500) A constraint condition is acquired from the execution path acquired from the execution
ステップ510) テストデータ仕様記憶部12より1件のテストデータ仕様を取得し、全て取得済みであれば、当該処理を終了する。 Step 510) One test data specification is acquired from the test data specification storage unit 12, and if all of the test data specifications have been acquired, the process ends.
ステップ520) 未取得のテストデータ仕様がある場合は、テストデータ仕様の因子名と、制約条件に含まれる因子名を比較する。因子名が一致すれば、ステップ530に移行し、一致しなければステップ510に戻る。 Step 520) When there is an unacquired test data specification, the factor name of the test data specification is compared with the factor name included in the constraint condition. If the factor names match, the process moves to step 530, and if they do not match, the process returns to step 510.
ステップ530) テストデータ仕様記憶部12のテストデータ仕様を、制約条件を用いて更新する。当該制約条件による更新処理については、図15に沿って説明する。 Step 530) The test data specification in the test data specification storage unit 12 is updated using the constraint condition. The update process based on the constraint condition will be described with reference to FIG.
図15は、本発明の一実施の形態におけるステップ520の詳細なフローチャートである。
FIG. 15 is a detailed flowchart of
ステップ600) テストデータ仕様記憶部12から制約条件とテストデータ仕様を取得し、テストデータ仕様の型がどれであるか判断し、各テストデータ仕様の型に基づいて、以下の処理を行う。 Step 600) The constraint condition and the test data specification are acquired from the test data specification storage unit 12, the type of the test data specification is determined, and the following processing is performed based on the type of each test data specification.
ステップ610) テストデータ仕様の型が、Boolean型である場合は、制約条件に基づくBoolean型テストデータ仕様の更新を行う。当該処理の詳細については、以下図16に沿って説明する。Boolean型のテストデータ仕様のフォーマットは図5に示す通りである。 Step 610) When the type of the test data specification is Boolean type, the Boolean type test data specification is updated based on the constraint condition. Details of this processing will be described below with reference to FIG. The format of the Boolean type test data specification is as shown in FIG.
ステップ611) 実行経路抽出部3から取得した実行経路から制約条件を取得し、制約条件に含まれるオペレータが、『≠』、『=』、『その他』のいずれであるか判定する。
Step 611) A constraint condition is acquired from the execution path acquired from the execution
ステップ612) オペレータが『≠』の場合は、後続するオペランドを取得する。 Step 612) If the operator is “≠”, the subsequent operand is acquired.
ステップ613) オペランドが「true」か「false」のいずれかであれば、Boolean型テストデータ仕様の『値v』をオペランドの値の「否定」にして更新し、処理を終了する。「true」か「false」のいずれでもない場合はステップ616に移行する。 Step 613) If the operand is either “true” or “false”, the “value v” of the Boolean test data specification is updated to “negation” of the value of the operand, and the process ends. If it is neither “true” nor “false”, the process proceeds to step 616.
ステップ614) 制約条件に含まれるオペレータが『=』の場合は、後続するオペランドを取得する。 Step 614) When the operator included in the constraint condition is “=”, the subsequent operand is acquired.
ステップ615) オペランドが「true」か「false」のいずれかであれば、Boolean型テストデータ仕様の『値v』をオペランドの値にして更新し、ステップ616にする。「true」か「false」のいずれでもない場合は処理を終了する。 Step 615) If the operand is either “true” or “false”, the “value v” of the Boolean test data specification is updated to the value of the operand, and step 616 is performed. If it is neither “true” nor “false”, the process is terminated.
ステップ616) ステップ611において、制約条件に含まれるオペレータが「≠」か「=」でない場合、及びオペランドが「true」か「false」のいずれでもない場合は、「異常状態」で停止する。 Step 616) In step 611, if the operator included in the constraint condition is not “≠” or “=”, and if the operand is neither “true” nor “false”, the operation stops in “abnormal state”.
ステップ620) テストデータ仕様の型が、Enum型である場合は、制約条件に基づくEnum型テストデータ仕様の更新を行う。当該処理の詳細については、以下図17に沿って説明する。図17は、本発明の一実施の形態におけるEnum型テストデータ仕様の更新のフローチャートである。Enum型のテストデータ仕様のフォーマットは図5に示す通りである。 Step 620) When the type of the test data specification is the Enum type, the Enum type test data specification is updated based on the constraint condition. Details of this processing will be described below with reference to FIG. FIG. 17 is a flowchart of updating the Enum type test data specification according to the embodiment of the present invention. The format of the Enum type test data specification is as shown in FIG.
ステップ621) 実行経路抽出部3から取得した実行経路から制約条件を取得して、制約条件に含まれるオペレータが『≠』である場合は、ステップ622に移行し、『=』である場合はステップ623に移行し、それ以外の場合はステップ626に移行する。
Step 621) When the constraint condition is acquired from the execution path acquired from the execution
ステップ622) 後続するオペランドを取得して、オペランドの値が、テストデータ仕様の「許容する要素S」に含まれるかを判定し、含まれる場合はステップ623に移行し、含まれない場合は、ステップ626に移行する。 Step 622) Obtain the following operand and determine whether the value of the operand is included in the “allowable element S” of the test data specification. If included, the process proceeds to Step 623; Control goes to step 626.
ステップ623) Enum型テストデータ仕様の「許容する要素S」を、Sから「オペランドの値」を除いたものに更新し、処理を終了する。 Step 623) The “allowable element S” of the Enum type test data specification is updated to S minus the “operand value”, and the process is terminated.
ステップ624) 後続するオペランドを取得して、オペランドの値がテストデータ仕様の「許容する要素S」に含まれるかを判定し、含まれる場合はステップ625に移行し、含まれない場合は、ステップ626に移行する。 Step 624) Obtains the following operand and determines whether the value of the operand is included in the “allowable element S” of the test data specification. If included, the process proceeds to Step 625; 626.
ステップ625) Enum型テストデータ仕様の「許容する要素sの集合S」を「オペランドの値」に更新し、処理を終了する。 Step 625) “Allowable element s set S” of the Enum type test data specification is updated to “operand value”, and the process is terminated.
ステップ626) ステップ621で制約条件に含まれるオペレータが「≠」、「=」のいずれでもない場合、または、ステップ622,624において、オペランドの値が、テストデータの「許容する要素S」に含まれない場合は、「異常状態」で停止する。
Step 626) When the operator included in the constraint condition in
ステップ630) テストデータ仕様の型が、Integer型である場合は、制約条件に基づくInteger型テストデータ仕様の更新を行う。当該処理の詳細については、以下図18に沿って説明する。図18は、本発明の一実施の形態におけるInteger型テストデータ仕様の更新のフローチャートである。Integer型のテストデータ仕様のフォーマットは図5に示す通りである。 Step 630) When the type of the test data specification is Integer type, the Integer type test data specification is updated based on the constraint condition. Details of this processing will be described below with reference to FIG. FIG. 18 is a flowchart for updating the Integer type test data specification according to the embodiment of the present invention. The format of the Integer type test data specification is as shown in FIG.
ステップ631) 制約条件を取得し、制約条件に含まれるオペレータを判定する。 Step 631) A constraint condition is acquired, and an operator included in the constraint condition is determined.
ステップ632) オペレータが「=」の場合は、後続するオペランドを取得して、Integer型テストデータ仕様の「下限L」と「上限U」をオペランドの値に更新し、処理を終了する。 Step 632) If the operator is “=”, the subsequent operand is acquired, “Lower limit L” and “Upper limit U” of the Integer type test data specification are updated to the values of the operands, and the process is terminated.
ステップ633) オペレータが「>」の場合は、後続するオペランドを取得して、Integer型テストデータ仕様の「下限L」をオペランドの値+1に更新し、処理を終了する。 Step 633) If the operator is “>”, the subsequent operand is acquired, the “lower limit L” of the Integer test data specification is updated to the value of the operand + 1, and the process is terminated.
ステップ634) オペレータが「≧」の場合は、後続するオペランドを取得して、Integer型テストデータ仕様の「下限L」をオペランドの値に更新し、処理を終了する。 Step 634) If the operator is “≧”, the subsequent operand is acquired, the “lower limit L” of the Integer type test data specification is updated to the value of the operand, and the process is terminated.
ステップ635) オペレータが「<」の場合は、後続するオペランドを取得して、Integer型テストデータ仕様の「上限U」をオペランドの値−1に更新し、処理を終了する。 Step 635) When the operator is “<”, the subsequent operand is acquired, the “upper limit U” of the Integer type test data specification is updated to the operand value −1, and the process is terminated.
ステップ636) オペレータが「≦」の場合は、後続するオペランドを取得して、Integer型テストデータ仕様の「上限U」をオペランドの値に更新し、処理を終了する。 Step 636) If the operator is “≦”, the subsequent operand is acquired, the “upper limit U” of the Integer type test data specification is updated to the value of the operand, and the process is terminated.
ステップ637) ステップ631で制約条件に含まれるオペレータが「=」「>」「≧」「<」「≦」のいずれでもない場合には、「異常状態」で停止する。 Step 637) If the operator included in the constraint condition in Step 631 is not any of “=”, “>”, “≧”, “<”, and “≦”, the operation stops in “abnormal state”.
ステップ640) テストデータ仕様の型が、String型である場合は、制約条件に基づくString型テストデータ仕様の更新を行う。当該処理の詳細については、以下、図19に沿って説明する。図19は、本発明の一実施の形態におけるString型テストデータ仕様の更新のフローチャートである。String型のテストデータ仕様のフォーマットは図5に示す通りである。 Step 640) When the type of the test data specification is the String type, the String type test data specification is updated based on the constraint condition. Details of this processing will be described below with reference to FIG. FIG. 19 is a flowchart for updating the String type test data specification according to the embodiment of the present invention. The format of the String type test data specification is as shown in FIG.
ステップ641) 制約条件を取得して、制約条件に含まれるオペレータが「contains」、「=」、「length」、または、それ以外かを判定する。 Step 641) The constraint condition is acquired, and it is determined whether the operator included in the constraint condition is “contains”, “=”, “length”, or otherwise.
ステップ642) オペレータが「contains」の場合は、後続するオペランドを取得して、String型テストデータ仕様の「部分文字列c」をオペランドの値に更新する。そして、オペランドの長さがテストデータ仕様の「長さ下限L」より大きい場合は、String型テストデータ仕様の「長さ下限L」をオペランドの長さに更新する。 Step 642) When the operator is “contains”, the subsequent operand is acquired, and “partial character string c” of the String type test data specification is updated to the value of the operand. When the length of the operand is larger than the “length lower limit L” of the test data specification, the “length lower limit L” of the String type test data specification is updated to the length of the operand.
ステップ643) オペレータが「=」の場合は、後続するオペランドを取得して、String型テストデータ仕様の「等しい文字列E」をオペランドの値に更新する。そして、String型テストデータ仕様の「長さ下限L」と「長さ上限U」をオペランドの長さに更新する。 Step 643) When the operator is “=”, the subsequent operand is acquired and “equal character string E” of the String type test data specification is updated to the value of the operand. Then, the “length lower limit L” and “length upper limit U” of the String type test data specification are updated to the length of the operand.
ステップ644) オペレータが「length」であり、制約条件に更に含まれるオペレータが「=」の場合は、後続するオペランドを取得して、String型テストデータ仕様の「長さ下限L」と「長さ上限U」をオペランドの値に更新する。 Step 644) When the operator is “length” and the operator further included in the constraint condition is “=”, the subsequent operand is acquired, and the “length lower limit L” and “length” of the String type test data specification are acquired. "Upper limit U" is updated to the value of the operand.
ステップ645) オペレータが「length」であり、制約条件に更に含まれるオペレータが『>』の場合は、後続するオペランドを取得して、String型テストデータ仕様の「長さ下限L」をオペランドの値+1に更新する。 Step 645) When the operator is “length” and the operator further included in the constraint condition is “>”, the subsequent operand is obtained, and the “length lower limit L” of the String type test data specification is set to the value of the operand. Update to +1.
ステップ646) オペレータが「length」であり、制約条件に更に含まれるオペレータが『≧』の場合は、後続するオペランドを取得して、String型テストデータ仕様の「長さ下限L」をオペランドの値に更新する。 Step 646) When the operator is “length” and the operator further included in the constraint condition is “≧”, the subsequent operand is obtained, and the “length lower limit L” of the String type test data specification is set to the value of the operand. Update to
ステップ647) オペレータが「length」であり、制約条件に更に含まれるオペレータが『<』の場合は、後続するオペランドを取得して、String型テストデータ仕様の「長さ上限U」をオペランドの値−1に更新する。 Step 647) When the operator is “length” and the operator further included in the constraint condition is “<”, the subsequent operand is obtained, and the “length upper limit U” of the String type test data specification is set to the value of the operand. Update to -1.
ステップ648) オペレータが「length」であり、制約条件に更に含まれるオペレータが『≦』の場合は、後続するオペランドを取得して、String型テストデータ仕様の「長さ上限U」をオペランドの値に更新する。 Step 648) If the operator is “length” and the operator further included in the constraint condition is “≦”, the subsequent operand is obtained and the “length upper limit U” of the String type test data specification is set to the value of the operand. Update to
ステップ649) 制約条件に含まれるオペレータが「contains」、「=」、「length」のいずれでもなく、または、オペレータが「length」であっても、制約条件に更に含まれるオペレータが『=』『>』『≧』『<』『≦』以外であれば、「異常状態」で停止する。 Step 649) Even if the operator included in the constraint condition is not “contains”, “=”, or “length”, or the operator is “length”, the operator further included in the constraint condition is “=” “ >> “≧” “<” “≦” If not, stop in “abnormal state”.
ステップ650) テストデータ仕様の型が、Object型である場合は、制約条件に基づくObject型テストデータ仕様の更新を行う。当該処理の詳細については、以下、図20に沿って説明する。図20は、本発明の一実施の形態におけるObject型テストデータ仕様の更新のフローチャートである。Object型のテストデータ仕様のフォーマットは図5に示す通りである。 Step 650) When the type of the test data specification is the Object type, the Object type test data specification is updated based on the constraint condition. Details of this processing will be described below with reference to FIG. FIG. 20 is a flowchart for updating the Object type test data specification according to the embodiment of the present invention. The format of the Object type test data specification is as shown in FIG.
ステップ651) 制約条件を取得し、当該制約条件に含まれるオペレータを判定する。 Step 651) A constraint condition is acquired, and an operator included in the constraint condition is determined.
ステップ652) オペレータが「≠null」(nullでない)」の場合は、Object型テストデータ仕様の「ヌルかn」を「false」に更新する。 Step 652) When the operator is “≠ null” (not null), “null or n” in the Object type test data specification is updated to “false”.
ステップ653) オペレータが「=null」(nullである)」の場合は、Object型テストデータ仕様の「ヌルかn」を「true」に更新する。 Step 653) When the operator is “= null” (null), “null or n” in the Object type test data specification is updated to “true”.
ステップ654) オペレータが上記の「≠null」「=null」のいずれでもない場合は、テストデータ仕様の「属性の仕様A」より1件のテストデータ仕様を取得する。 Step 654) When the operator is neither “≠ null” nor “= null”, one test data specification is acquired from “attribute specification A” of the test data specification.
ステップ655) 全ての取得済みである場合は、処理を終了し、全て取得済みでない場合は、テストデータ仕様の因子名と、制約条件に含まれる因子名を比較し、一致する場合はステップ656に移行し、一致しない場合は、ステップ654に移行する。 Step 655) If all have been acquired, the process is terminated. If all have not been acquired, the factor name of the test data specification is compared with the factor name included in the constraint condition. If it does not match, the process proceeds to step 654.
ステップ656) テストデータ仕様を制約条件を用いて更新する。 Step 656) Update the test data specification with the constraints.
以下にObject型テストデータ仕様の更新の例を示す。 An example of updating the Object type test data specification is shown below.
図21は、本発明の一実施の形態におけるObject型テストデータ仕様の更新の例を示す。 FIG. 21 shows an example of updating the Object type test data specification in one embodiment of the present invention.
同図(A)のような入力されたUMLモデル(クラス(因子の型)とアクティビティ)から開始ノードから終了ノードまでの実行経路を取得し、制約条件「p.age>=20」を取得し、オペレータが「≠null」でも「=null」でもないので、因子名p自身ではなく、pの属性に関する制約条件であると判断し、テストデータ仕様記憶部12からpのテストデータ仕様のうち、各属性の仕様Aの列要素の1つ1つを取得し、1件目の「name」のテストデータ仕様を見ると、因子名は不一致である。2件目の「age」のテストデータ仕様を見ると因子名が一致するので、当該テストデータ仕様を更新する。 Get the execution path from the start node to the end node from the input UML model (class (factor type) and activity) as shown in Fig. (A), and get the constraint condition "p.age> = 20" , Because the operator is neither “≠ null” nor “= null”, it is determined that it is a constraint on the attribute of p, not the factor name p itself, and from the test data specification storage unit 12, When each column element of the specification A of each attribute is acquired and the test data specification of the first “name” is viewed, the factor names do not match. When the test data specification of the second “age” is seen, the factor names match, so the test data specification is updated.
<水準生成部4>
次に、図7のステップ140の水準生成部4の処理について説明する。
<Level generator 4>
Next, the processing of the level generation unit 4 in
図22は、本発明の一実施の形態における水準生成処理のフローチャートである。 FIG. 22 is a flowchart of the level generation process according to the embodiment of the present invention.
ステップ1600) テストデータ仕様記憶部12からテストデータ仕様を取得して、テストデータの種類が、Boolean型、Enum型、Integer型、String型、Object型のいずれであるかを判定する。 Step 1600) The test data specification is acquired from the test data specification storage unit 12, and it is determined whether the type of the test data is Boolean type, Enum type, Integer type, String type, or Object type.
ステップ1610) テストデータ仕様がBoolean型である場合は、図23の処理により水準を生成し、実行経路に対応付けて実行経路・水準記憶部11に格納する。図23は、本発明の一実施の形態におけるBoolean型テストデータ仕様からの水準生成のフローチャートである。 Step 1610) When the test data specification is Boolean type, a level is generated by the processing of FIG. 23 and stored in the execution path / level storage unit 11 in association with the execution path. FIG. 23 is a flowchart of level generation from the Boolean type test data specification according to the embodiment of the present invention.
ステップ1611) Boolean型テストデータ仕様の「値v」を取得し、「値v」が初期値であるかを判定する。 Step 1611) The “value v” of the Boolean test data specification is acquired, and it is determined whether the “value v” is an initial value.
ステップ1612) 初期値である場合は、水準のtrue、falseを正常水準として生成し、実行経路と対応付けて実行経路・水準記憶部11に格納し、ステップ1615に移行する。 Step 1612) If the values are initial values, the levels true and false are generated as normal levels, stored in the execution path / level storage unit 11 in association with the execution paths, and the process proceeds to Step 1615.
ステップ1613) 初期値でない場合は、値vを正常水準として格納する。 Step 1613) If it is not the initial value, the value v is stored as a normal level.
ステップ1614) 値vの否定を異常水準として格納する。 Step 1614) The negation of the value v is stored as an abnormal level.
ステップ1615) null、Boolean型でない値を異常水準として格納する。 Step 1615) A value that is not null or Boolean type is stored as an abnormal level.
ステップ1620) テストデータ仕様がEnum型である場合は、図24の処理によりEnum型のテストデータ仕様からの水準を生成し、実行経路に対応付けて実行経路・水準記憶部11に格納する。図24は、本発明の一実施の形態におけるEnum型テストデータ仕様からの水準生成のフローチャートである。 Step 1620) When the test data specification is Enum type, a level from the Enum type test data specification is generated by the processing of FIG. 24, and stored in the execution path / level storage unit 11 in association with the execution path. FIG. 24 is a flowchart of level generation from the Enum type test data specification according to the embodiment of the present invention.
ステップ1621) Enum型テストデータ仕様の許容する要素sの集合Sを取得する。 Step 1621) A set S of elements s allowed in the Enum type test data specification is acquired.
ステップ1622) 許容する要素sの集合S内の各要素sを正常水準として格納する。 Step 1622) Each element s in the set S of allowed elements s is stored as a normal level.
ステップ1623) 因子の全選択肢のうち、許容する要素sの集合に属さない各要素s'を異常水準として格納する。 Step 1623) Among all the options of factors, each element s ′ that does not belong to the set of allowed elements s is stored as an abnormal level.
ステップ1624) null、Enum型でない値を異常水準として格納する。 Step 1624) A value that is not null or Enum type is stored as an abnormal level.
ステップ1630) テストデータ仕様がInteger型である場合は、図25の処理によりInteger型のテストデータ仕様からの水準を生成し、実行経路と対応付けて実行経路・水準記憶部11に格納する。図25は、本発明の一実施の形態におけるInteger型テストデータ仕様からの水準生成のフローチャートである。 Step 1630) When the test data specification is Integer type, a level from the Integer type test data specification is generated by the processing of FIG. 25 and stored in the execution path / level storage unit 11 in association with the execution path. FIG. 25 is a flowchart of level generation from Integer type test data specifications in one embodiment of the present invention.
ステップ1631) Integer型テストデータ仕様の「下限L」、「上限U」を取得する。 Step 1631) The “lower limit L” and “upper limit U” of the Integer type test data specification are acquired.
ステップ1632) L,L+1,U−1,Uを正常水準としてに格納する。 Step 1632) Store L, L + 1, U-1, U as normal levels.
ステップ1633) ランダム値x(L≦x≦U)を正常水準として格納する。 Step 1633) The random value x (L ≦ x ≦ U) is stored as a normal level.
ステップ1634) L−1,U+1を異常水準として格納する。 Step 1634) L-1, U + 1 are stored as abnormal levels.
ステップ1635) 正、負でオーバーフローとなる値を異常水準として格納する。 Step 1635) A value that is positive and negative and overflows is stored as an abnormal level.
ステップ1636) null、Integer型でない値を異常水準として格納する。 Step 1636) A value that is not null or Integer type is stored as an abnormal level.
ステップ1640) テストデータ仕様がString型である場合は、図26の処理によりString型テストデータ仕様からの水準を生成し、実行経路と対応付けて実行経路・水準記憶部11に格納する。図26は、本発明の一実施の形態におけるString型テストデータ仕様からの水準生成のフローチャートである。 Step 1640) When the test data specification is of the String type, a level from the String type test data specification is generated by the processing of FIG. 26, and stored in the execution path / level storage unit 11 in association with the execution path. FIG. 26 is a flowchart of level generation from the String type test data specification according to the embodiment of the present invention.
ステップ1641) String型テストデータ仕様の「長さ下限L」、「長さ上限U」、「部分文字列C」、「等しい文字列E」を取得する。 Step 1641) The “length lower limit L”, “length upper limit U”, “partial character string C”, and “equal character string E” of the String type test data specification are acquired.
ステップ1642) 上記の「長さ下限L」、「長さ上限U」、「部分文字列C」、「等しい文字列E」に基づいて正常水準を生成し、実行経路と対応付けて実行経路・水準記憶部11に格納する。以下、図27を用いて詳細な処理を説明する。本発明の一実施の形態におけるステップ1642の詳細な処理のフローチャートである。 Step 1642) A normal level is generated based on the above-mentioned “length lower limit L”, “length upper limit U”, “partial character string C”, and “equal character string E”, and is associated with the execution path. Store in the level storage unit 11. Hereinafter, detailed processing will be described with reference to FIG. It is a flowchart of the detailed process of step 1642 in one embodiment of this invention.
ステップ2200) 「等しい文字列E」が設定済みの場合は、Eを正常水準として格納し、当該水準生成部の5の処理を終了する。 Step 2200) When “equal character string E” has been set, E is stored as a normal level, and the process of 5 of the level generation unit is terminated.
ステップ2210) 「等しい文字列E」が未設定であり、「部分文字列C」が設定済みの場合は、長さLのCを含むランダム文字列を正常水準として格納する。 Step 2210) If “equal character string E” is not set and “partial character string C” is already set, a random character string including C of length L is stored as a normal level.
ステップ2220) 長さL+1の部分文字列Cを含むランダム文字列を正常水準として格納する。 Step 2220) A random character string including a partial character string C of length L + 1 is stored as a normal level.
ステップ2230) 長さU−1の部分文字列Cを含むランダム文字列を正常水準として格納する。 Step 2230) A random character string including a partial character string C of length U-1 is stored as a normal level.
ステップ2240) 長さUの部分文字列Cを含むランダム文字列を正常水準として格納し、当該水準生成部5の処理を終了する。
Step 2240) A random character string including the partial character string C of length U is stored as a normal level, and the processing of the
ステップ2250) 「等しい文字列E」が設定済みで、「部分文字列C」が設定済みである場合は、長さLのランダム文字列を正常水準として格納する。 Step 2250) If “equal character string E” has been set and “partial character string C” has already been set, a random character string of length L is stored as a normal level.
ステップ2260) 長さL+1のランダム文字列を正常水準として格納する。 Step 2260) A random character string of length L + 1 is stored as a normal level.
ステップ2270) 長さU−1のランダム文字列を正常水準として格納する。 Step 2270) A random character string of length U-1 is stored as a normal level.
ステップ2280) 長さUのランダム文字列を正常水準として格納し、当該水準生成部5の処理を終了する。
Step 2280) The random character string of length U is stored as a normal level, and the processing of the
ステップ1643) 上記の「長さ下限L」、「長さ上限U」、「部分文字列C」、「等しい文字列E」に基づいて異常水準を生成し、実行経路と対応付けて実行経路・水準記憶部11に格納する。以下に、図28を用いて当該処理を詳細な処理について説明する。図28は、本発明の一実施の形態におけるステップ1643の詳細な動作のフローチャートである。 Step 1643) An abnormal level is generated based on the above-mentioned “length lower limit L”, “length upper limit U”, “partial character string C”, and “equal character string E”, and is associated with the execution path. Store in the level storage unit 11. In the following, the process will be described in detail with reference to FIG. FIG. 28 is a flowchart of detailed operation of step 1643 according to the embodiment of the present invention.
ステップ2300) 「等しい文字列E」が設定済みであり、長さLの部分文字列Cでない文字列を異常水準として格納する。 Step 2300) The character string that is not equal to the partial character string C having the length L and that has been set is stored as an abnormal level.
ステップ2305) 長さU+1の等しい文字列Eでない文字列を異常水準としてメモリ(図示せず)に格納する。 Step 2305) Character strings that are not equal in length U + 1 are stored in a memory (not shown) as an abnormal level.
ステップ2310) 長さL−1の等しい文字列Eでない文字列を異常水準として格納し、ステップ2360に移行する。 Step 2310) A character string that is not equal in length L-1 is stored as an abnormal level, and the process proceeds to Step 2360.
ステップ2320) 「等しい文字列E」が未設定であり、「部分文字列C」が設定済みである場合は、長さLの部分文字列Cを含まない文字列を異常水準として格納する。 Step 2320) If “equal character string E” is not set and “partial character string C” is already set, a character string that does not include partial character string C of length L is stored as an abnormal level.
ステップ2325) 長さUの部分文字列Cを含まない文字列を異常水準として格納する。 Step 2325) A character string not including the partial character string C of length U is stored as an abnormal level.
ステップ2330) 長さL−1の部分文字列Cを含まない文字列を異常水準として格納する。 Step 2330) A character string not including the partial character string C of length L-1 is stored as an abnormal level.
ステップ2335) 長さU+1の部分文字列Cを含まない文字列を異常水準として格納する。 Step 2335) A character string not including the partial character string C of length U + 1 is stored as an abnormal level.
ステップ2350) 長さL−1の部分文字列Cを含む文字列を異常水準として格納する。 Step 2350) A character string including the partial character string C of length L-1 is stored as an abnormal level.
ステップ2345) 長さU+1の部分文字列Cを含む文字列を異常水準として格納し、ステップ2360に移行する。 Step 2345) The character string including the partial character string C of length U + 1 is stored as an abnormal level, and the process proceeds to Step 2360.
ステップ2350) 等しい文字列Eが未設定で、部分文字列Cが未設定である場合は、長さL−1のランダム文字列を異常水準として格納する。 Step 2350) If the equal character string E is not set and the partial character string C is not set, a random character string of length L-1 is stored as an abnormal level.
ステップ2355) 長さL+1のランダム文字列を異常水準として格納し、ステップ2360に移行する。
Step 2355) The random character string of length L + 1 is stored as an abnormal level, and the routine goes to
ステップ1650) テストデータ仕様がObject型である場合、図29の処理により、Object型テストデータ仕様から水準を生成し、実行経路と対応づけて実行経路・水準記憶部11に格納する。図29は、本発明の一実施の形態におけるObject型テストデータ仕様からの水準生成のフローチャートである。 Step 1650) When the test data specification is Object type, a level is generated from the Object type test data specification by the processing of FIG. 29, and stored in the execution path / level storage unit 11 in association with the execution path. FIG. 29 is a flowchart of level generation from Object type test data specifications in one embodiment of the present invention.
ステップ1651) Object型テストデータ仕様の「nullかn」、「属性の仕様A」を取得する。 Step 1651) “null or n” of Object type test data specification and “attribute specification A” are acquired.
ステップ1652) 「nullかn」が未設定であり、「属性の仕様A」が空である場合は、任意のObjectを正常水準としてメモリ(図示せず)に格納し、当該処理を終了する。 Step 1652) If "null or n" is not set and "attribute specification A" is empty, an arbitrary object is stored in a memory (not shown) as a normal level, and the process is terminated.
ステップ1653) 「nullかn」が"true"である場合は、「null」を正常水準として格納する。 Step 1653) When “null or n” is “true”, “null” is stored as a normal level.
ステップ1654) 任意のObject(non-null)を異常水準として格納し、当該処理を終了する。 Step 1654) Arbitrary Object (non-null) is stored as an abnormal level, and the process ends.
ステップ1655) 「nullかn」が"false"であり、「属性の仕様A」が空である場合は、任意のObject(non-null)を正常水準として格納する。 Step 1655) When “null or n” is “false” and “attribute specification A” is empty, an arbitrary Object (non-null) is stored as a normal level.
ステップ1656) 「null」を異常水準として格納して当該処理を終了する。 Step 1656) “null” is stored as an abnormal level and the process is terminated.
ステップ1657) 「nullかn」が"false"であり、「属性の仕様A」が空でない場合は、仕様Aに含まれるテストデータ仕様に基づく水準を実行経路と対応付けて実行経路・水準記憶部11に格納し、当該処理を終了する。当該処理の詳細については、図30に沿って説明する。図30は、本発明の一実施の形態におけるステップ1657の詳細なフローチャートである。 Step 1657) When “null or n” is “false” and “attribute specification A” is not empty, the level based on the test data specification included in the specification A is associated with the execution path and the execution path / level storage. The data is stored in the unit 11, and the process is terminated. Details of this processing will be described with reference to FIG. FIG. 30 is a detailed flowchart of step 1657 according to the embodiment of the present invention.
ステップ2400) Object型テストデータ仕様から「属性の仕様A」を取得する。 Step 2400) “Attribute specification A” is acquired from the Object type test data specification.
ステップ2410) 取得した属性の仕様Aに含まれる各テストデータ仕様に対して、前述の図19に示す方法により水準を生成し、格納する。 Step 2410) For each test data specification included in the acquired attribute specification A, a level is generated and stored by the method shown in FIG.
ステップ2420) テストデータ生成部6において、組み合わせを生成する。詳細な処理については、図32で詳述する。 Step 2420) The test data generation unit 6 generates a combination. Detailed processing will be described in detail with reference to FIG.
ステップ2430) テストデータ生成部6で生成された1つの組合せを1つの水準として実行経路・水準記憶部11に格納する。 Step 2430) One combination generated by the test data generation unit 6 is stored in the execution path / level storage unit 11 as one level.
上記のようにして、特定実行経路に関する各因子の水準が決定され、図31に示す内容が実行経路・水準記憶部11に格納される。 As described above, the level of each factor related to the specific execution path is determined, and the contents shown in FIG. 31 are stored in the execution path / level storage unit 11.
<組み合わせ生成部>
次に、図7のステップ150におけるテストデータ生成部6の動作について説明する。
<Combination generator>
Next, the operation of the test data generation unit 6 in step 150 of FIG. 7 will be described.
図32は、本発明の一実施の形態における組み合わせ生成部の処理のフローチャートである。 FIG. 32 is a flowchart of the process of the combination generation unit in one embodiment of the present invention.
ステップ1200) テストデータ生成部6は、水準生成部5で求められた全因子の全水準を実行経路・水準記憶部11から取得する。なお、ここで取得した水準には、実行経路が関連付けられている。
Step 1200) The test data generation unit 6 acquires all levels of all factors obtained by the
ステップ1210) 正常入力の生成を図33に示す手法により行う。 Step 1210) The normal input is generated by the method shown in FIG.
ステップ1211) 全因子より、最も正常水準を多く持つ因子Aの正常水準数Mを特定する。 Step 1211) The normal level number M of the factor A having the most normal level is specified from all the factors.
ステップ1212) テストデータ記憶部13上に、M件の空の正常入力を生成する。 Step 1212) M empty normal inputs are generated on the test data storage unit 13.
ステップ1213) 因子Aの正常水準を順番に正常入力に埋める。 Step 1213) The normal level of factor A is sequentially filled in the normal input.
ステップ1214) 因子A以外の因子については、因子の正常水準を繰り返し正常入力に埋める。 Step 1214) For factors other than factor A, the normal level of the factor is repeatedly filled in the normal input.
ステップ1220) 異常入力の生成を図34に示す手法により行う。 Step 1220) Abnormal input is generated by the method shown in FIG.
ステップ1221) 全因子より、各因子の異常水準数の合計Nを特定する。 Step 1221) The total number N of abnormal levels of each factor is specified from all factors.
ステップ1222) テストデータ記憶部13上に、N件の空の異常入力を生成する。 Step 1222) Generate N empty abnormal inputs on the test data storage unit 13.
ステップ1223) 生成した正常入力を繰り返し異常入力に上書きする。 Step 1223) The generated normal input is repeatedly overwritten with the abnormal input.
ステップ1224) 各異常水準について、どの因子のものかに基づいて、異常水準を異常入力の該当箇所に上書きする。 Step 1224) Based on the factor of each abnormal level, the abnormal level is overwritten on the corresponding part of the abnormal input.
ステップ1230) 上記のステップ1210で生成された正常入力及び、ステップ1220で生成された異常入力に対して、以下の図35に示す方法により、入力の期待値を付与する。 Step 1230) An expected value of input is given to the normal input generated in Step 1210 and the abnormal input generated in Step 1220 by the method shown in FIG.
ステップ1231) 入力に対応する実行経路を取得する。なお、当該実行経路は、水準生成部5で生成された水準と相互に関連付けられているため、当該入力に含まれる水準から実行経路を取得することができる。
Step 1231) The execution path corresponding to the input is acquired. Since the execution path is associated with the level generated by the
ステップ1232) 実行経路中の全事後条件を取得する。実行経路はノードとエッジが数珠繋ぎになっているため、当該実行経路の先頭から順にノードをチェックし、当該ノードに事後条件があれば取得する。 Step 1232) Acquire all postconditions in the execution path. Since the execution path has nodes and edges connected in a daisy chain, the nodes are checked in order from the top of the execution path, and if the node has a postcondition, it is acquired.
ステップ1233) 入力が「正常入力」であり、事後条件がある場合は、期待値を事後条件の集合として、テストデータ記憶部13に格納する。 Step 1233) When the input is “normal input” and there is a postcondition, the expected value is stored in the test data storage unit 13 as a set of postconditions.
ステップ1234) 入力が「正常入力」であり、事後条件がない場合は、期待値を「未定義」として、テストデータ記憶部13に格納する。 Step 1234) If the input is “normal input” and there is no post-condition, the expected value is stored as “undefined” in the test data storage unit 13.
ステップ1235) 入力が「異常入力」である場合は、期待値を「不定」として、テストデータ記憶部13に格納する。 Step 1235) If the input is "abnormal input", the expected value is set to "undefined" and stored in the test data storage unit 13.
なお、図4に示すテストデータ生成装置の構成要素の動作をプログラムとして構築し、テストデータ生成装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。 It is possible to construct the operation of the components of the test data generation device shown in FIG. 4 as a program, install it on a computer used as the test data generation device, execute it, or distribute it via a network. .
また、構築されたプログラムをハードディスクや、フレキシブルディスク・CD−ROM等の可搬記憶媒体に格納し、コンピュータにインストールする、または、配布することが可能である。 Further, the constructed program can be stored in a portable storage medium such as a hard disk, a flexible disk, or a CD-ROM, and can be installed or distributed in a computer.
なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。 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.
1 設計モデル読込手段、設計モデル読込部
2 設計モデル分析手段、設計モデル分析部
3 実行経路抽出手段、実行経路抽出部
4 テストデータ仕様生成手段、テストデータ仕様生成部
5 水準生成手段、水準生成部
6 組み合わせ手段、データ生成部
7 出力手段、出力部
8 テストデータ仕様記憶手段、テストデータ仕様記憶部
11 実行経路・水準記憶部
12 テストデータ仕様記憶部
13 テストデータ記憶部
1 design model reading means, design
Claims (9)
ユーザ端末より、UMLクラス図とアクティビティ図のみで記述した設計モデルを読み込む設計モデル読込手段と、
読み込まれた前記設計モデルからアクティビティ図をテスト対象として抽出する設計モデル分析手段と、
前記テスト対象から実行経路を抽出する実行経路抽出手段と、
前記実行経路抽出手段から抽出された各実行経路を持つアクティビティの入力パラメータを変数(実験計画法でいう「因子」)とし、変数が満たすべき制約条件を実行経路の始点ノードから終点ノードを走査することで抽出し、該制約条件及び変数の型に基づいて、テストデータ仕様記憶手段に格納されているテストデータ仕様を更新するテストデータ仕様生成手段と、
前記テストデータ仕様記憶手段から前記テストデータ仕様を読み込み、該テストデータ仕様毎に、前記因子のとる値(実験計画法でいう「水準」)を生成し、該因子と該水準を記憶手段に格納する水準生成手段と、
前記因子と前記水準を取得して、該因子と該水準の組み合わせである「入力」に対する実行経路を取得し、該「入力」が実行経路にとって許容する入力である正常入力、または、該実行経路にとって許容しない入力である異常入力のいずれであるか、及び、実行経路中に事後条件が含まれるか否かにより期待値を求め、該「入力」に該期待値を付与したテストデータを生成する組み合わせ手段と、
前記テストデータを前記ユーザ端末に出力する出力手段と、
を有することを特徴とするテストデータ生成装置。 A test data generation device that generates test data for confirming whether or not a system has been constructed in accordance with a design intent of a design model in which system design information is described in a formal language,
A design model reading means for reading a design model described only by a UML class diagram and an activity diagram from a user terminal;
Design model analysis means for extracting an activity diagram as a test target from the read design model;
Execution path extraction means for extracting an execution path from the test target;
The input parameter of the activity having each execution path extracted from the execution path extraction means is a variable (“factor” in the experimental design method), and the constraint condition to be satisfied by the variable is scanned from the start point node to the end point node of the execution path. A test data specification generation means for updating the test data specification stored in the test data specification storage means based on the constraint condition and the variable type,
Read the test data specification from the test data specification storage means, generate a value of the factor ("level" in the experimental design method) for each test data specification, and store the factor and the level in the storage means Level generation means to
The factor and the level are acquired, an execution path for “input” that is a combination of the factor and the level is acquired, and the normal input that is an input that the “input” allows for the execution path, or the execution path An expected value is determined based on whether the input is an abnormal input that is not permitted for the user and whether or not a post-condition is included in the execution path, and test data in which the expected value is assigned to the “input” is generated. Combination means;
Output means for outputting the test data to the user terminal;
A test data generation apparatus comprising:
前記テストデータ仕様が、オブジェクト型であるとき、
前記制約条件に含まれるオペレータが「null(ヌル)でない」の場合は、前記テストデータ仕様記憶手段のオブジェクト型テストデータ仕様に「Nullを許容しない」ことを記録する手段と、
前記制約条件に含まれるオペレータが「nullである」の場合は、前記テストデータ仕様記憶手段のオブジェクト型テストデータ仕様に「nullを許容する」ことを記録する手段と、
前記制約条件に含まれるオペレータが上記以外である場合は、前記テストデータ仕様記憶手段のテストデータ仕様に含まれる各属性の仕様の列を取得して、該テストデータ仕様の因子名と前記制約条件に含まれる因子名を比較して、一致する場合には、該制約条件を用いて該テストデータ仕様を更新する手段と、を含む
請求項1記載のテストデータ生成装置。 The test data specification generation means includes
When the test data specification is an object type,
If the operator included in the constraint condition is `` not null '', means for recording `` do not allow null '' in the object type test data specification of the test data specification storage means;
If the operator included in the constraint condition is "null", means for recording "allow null" in the object type test data specification of the test data specification storage means;
When the operator included in the constraint condition is other than the above, obtain a column of the specification of each attribute included in the test data specification of the test data specification storage means, the factor name of the test data specification and the constraint condition It included by comparing the factors names, if they match, the test data generating apparatus of claim 1 further comprising, means for updating the test data specifications using該制about conditions.
前記テストデータ仕様が、オブジェクト型であるとき、前記水準を生成せず、
前記組み合わせ生成手段は、
前記テストデータ仕様が、オブジェクト型であるとき、
オブジェクト型の階層構造を展開した際に、リーフのいずれかに異常を含む組み合わせをオブジェクト型の異常水準として生成し、全て正常である組み合わせを正常水準として生成する手段を含む
請求項1記載のテストデータ生成装置。 The level generation means includes
When the test data specification is an object type, the level is not generated,
The combination generation means includes
When the test data specification is an object type,
The test according to claim 1, further comprising means for generating a combination including an abnormality in any of the leaves as an abnormality level of the object type and generating a combination that is all normal as a normal level when the hierarchical structure of the object type is expanded. Data generator.
前記水準生成手段で求められた全因子の全ての正常水準を取得し、全因子の中で最も正常水準を多く持つ因子Aの正常水準数を特定し、該因子Aの正常水準を該正常水準数だけテストデータの正常入力に設定し、該因子A以外の各因子については、該因子の正常水準をテストデータに設定する手段と、
前記水準生成手段で求められた全因子の全ての異常水準を取得し、該異常水準数を特定し、生成した前記正常入力を異常入力に上書きする手段と、
を含む請求項1記載のテストデータ生成装置。 The combination generation means includes
Obtain all normal levels of all factors determined by the level generation means, specify the number of normal levels of factor A having the most normal levels among all factors, and set the normal level of factor A as the normal level A means for setting the normal input of the test data by the number, and for each factor other than the factor A, a means for setting the normal level of the factor to the test data;
Means for acquiring all abnormal levels of all factors determined by the level generating means, specifying the number of abnormal levels, and overwriting the generated normal input to the abnormal input;
The test data generation device according to claim 1, comprising:
ユーザ端末より、UMLクラス図とアクティビティ図のみで記述した設計モデルを読み込む設計モデル読込ステップと、
読み込まれた前記設計モデルからアクティビティ図をテスト対象として抽出する設計モデル分析ステップと、
前記テスト対象から実行経路を抽出する実行経路抽出ステップと、
抽出された各実行経路を持つアクティビティの入力パラメータを変数(実験計画法でいう「因子」)とし、該変数が満たすべき制約条件を実行経路の始点ノードから終点ノードを走査することで抽出し、該制約条件及び変数の型に基づいて、テストデータ仕様記憶手段に格納されているテストデータ仕様を更新するテストデータ仕様生成ステップと、
前記テストデータ仕様記憶手段から前記テストデータ仕様を読み込み、該テストデータ仕様毎に、前記因子のとる値(実験計画法でいう「水準」)を生成し、該因子と該水準を記憶手段に格納する水準生成ステップと、
前記因子と前記水準を取得して、該因子と該水準の組み合わせである「入力」に対する実行経路を取得し、該「入力」が実行経路にとって許容する入力である正常入力、または、該実行経路にとって許容しない入力である異常入力のいずれであるか、及び、実行経路中に事後条件が含まれるか否かにより期待値を求め、該「入力」に該期待値を付与したテストデータを生成する組み合わせステップと、
前記テストデータを前記ユーザ端末に出力する出力ステップと、
を行うことを特徴とするテストデータ生成方法。 A test data generation method for generating test data for confirming whether or not a system has been constructed in accordance with a design intent of a design model in which system design information is described in a formal language,
A design model reading step for reading a design model described only by a UML class diagram and an activity diagram from a user terminal;
A design model analysis step of extracting an activity diagram from the read design model as a test target;
An execution path extraction step for extracting an execution path from the test target;
The input parameter of the activity having each execution path extracted is a variable ("factor" in the experimental design method), and the constraint condition to be satisfied by the variable is extracted by scanning the end point node from the start point node of the execution path, A test data specification generation step for updating the test data specification stored in the test data specification storage means based on the constraint condition and the variable type;
Read the test data specification from the test data specification storage means, generate a value of the factor ("level" in the experimental design method) for each test data specification, and store the factor and the level in the storage means Level generation step to
The factor and the level are acquired, an execution path for “input” that is a combination of the factor and the level is acquired, and the normal input that is an input that the “input” allows for the execution path, or the execution path An expected value is determined based on whether the input is an abnormal input that is not permitted for the user and whether or not a post-condition is included in the execution path, and test data in which the expected value is assigned to the “input” is generated. Combination steps;
Outputting the test data to the user terminal;
The test data generation method characterized by performing.
前記テストデータ仕様が、オブジェクト型であるとき、
前記制約条件に含まれるオペレータが「null(ヌル)でない」の場合は、前記テストデータ仕様記憶手段のオブジェクト型テストデータ仕様に「Nullを許容しない」ことを記録し、
前記制約条件に含まれるオペレータが「nullである」の場合は、前記テストデータ仕様記憶手段に「nullを許容する」ことを記録する、
前記制約条件に含まれるオペレータが上記以外である場合は、前記テストデータ仕様記憶手段のテストデータ仕様に含まれる各属性の仕様の列を取得して、該テストデータ仕様の因子名と前記制約条件に含まれる因子名を比較して、一致する場合には、該制約条件を用いて該テストデータ仕様を更新する
請求項5記載のテストデータ生成方法。 In the test data specification generation step,
When the test data specification is an object type,
If the operator included in the constraint condition is `` not null '', record that `` Null is not allowed '' in the object type test data specification of the test data specification storage means,
If the operator included in the constraint condition is "null", record that "allow null" in the test data specification storage means,
When the operator included in the constraint condition is other than the above, obtain a column of the specification of each attribute included in the test data specification of the test data specification storage means, the factor name of the test data specification and the constraint condition The test data generation method according to claim 5, wherein the test data specifications are updated using the constraint conditions when the factor names included in are compared and matched.
前記組み合わせ生成ステップにおいて、オブジェクト型の階層構造を展開した際に、リーフのいずれかに異常を含む組み合わせをオブジェクト型の異常水準として生成し、全て正常である組み合わせを正常水準として生成する
請求項5記載のテストデータ生成方法。 In the level generation step, when the test data specification is an object type, the level is not generated,
6. In the combination generation step, when the hierarchical structure of the object type is expanded, a combination including an abnormality in any of the leaves is generated as an abnormality level of the object type, and a combination that is all normal is generated as a normal level. The test data generation method described.
前記水準生成ステップで求められた全因子の全ての正常水準を取得し、全因子の中で最も正常水準を多く持つ因子Aの正常水準数を特定し、該因子Aの正常水準を該正常水準数だけテストデータの正常入力に設定し、該因子A以外の各因子については、該因子の正常水準をテストデータに設定し、
全因子の全ての異常水準を取得し、該異常水準数を特定し、生成した前記正常入力を異常入力に上書きする
請求項5記載のテストデータ生成方法。 In the combination step,
Obtain all normal levels of all factors obtained in the level generation step, specify the number of normal levels of factor A having the most normal levels among all factors, and set the normal level of factor A as the normal level Set the test data as normal input, and for each factor other than the factor A, set the normal level of the factor as test data,
6. The test data generation method according to claim 5, wherein all abnormal levels of all factors are acquired, the number of abnormal levels is specified, and the generated normal input is overwritten on the abnormal input.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009116917A JP5164919B2 (en) | 2009-05-13 | 2009-05-13 | Test data generation method, apparatus and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009116917A JP5164919B2 (en) | 2009-05-13 | 2009-05-13 | Test data generation method, apparatus and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010267023A JP2010267023A (en) | 2010-11-25 |
JP5164919B2 true JP5164919B2 (en) | 2013-03-21 |
Family
ID=43363956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009116917A Active JP5164919B2 (en) | 2009-05-13 | 2009-05-13 | Test data generation method, apparatus and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5164919B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6268029B2 (en) * | 2014-04-16 | 2018-01-24 | 株式会社日立製作所 | Test case generation apparatus and test case generation method |
JP6364263B2 (en) * | 2014-07-08 | 2018-07-25 | 株式会社エヌ・ティ・ティ・データ | Verification support method, verification support apparatus, and program |
JP6959513B2 (en) * | 2017-09-29 | 2021-11-02 | 富士通株式会社 | Analytical device and analysis method |
WO2019242868A1 (en) | 2018-12-12 | 2019-12-26 | Mitsubishi Electric Corporation | Software testing device, software testing method, and software testing program |
CN112965909B (en) * | 2021-03-19 | 2024-04-09 | 湖南大学 | Test data, test case generation method and system and storage medium |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3105279B2 (en) * | 1991-03-04 | 2000-10-30 | 日本電信電話株式会社 | Program unit test data generation method |
JP2001282536A (en) * | 2000-03-29 | 2001-10-12 | Hitachi Software Eng Co Ltd | Test item extraction device |
JP2004151884A (en) * | 2002-10-29 | 2004-05-27 | Cats Kk | Program for extracting test item |
JP2005085182A (en) * | 2003-09-11 | 2005-03-31 | Fujitsu Ltd | Test support system |
JP4701025B2 (en) * | 2005-07-08 | 2011-06-15 | 株式会社アイ・エル・シー | Debug support system, debug support method, debug support target program |
JP2007249826A (en) * | 2006-03-17 | 2007-09-27 | Mitsubishi Electric Corp | Test item generation device |
JP4148527B2 (en) * | 2006-06-05 | 2008-09-10 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Functional test script generator |
-
2009
- 2009-05-13 JP JP2009116917A patent/JP5164919B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2010267023A (en) | 2010-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5197688B2 (en) | Integrated environment generator | |
US9424003B1 (en) | Schema-less system output object parser and code generator | |
WO2012032890A1 (en) | Source code conversion method and source code conversion program | |
WO2012057170A1 (en) | Method of converting source code and source code conversion program | |
Verbeek et al. | Verifying workflows with cancellation regions and or-joins: An approach based on relaxed soundness and invariants | |
JP5164919B2 (en) | Test data generation method, apparatus and program | |
JP2012221380A (en) | Automatic program generation device, method and computer program | |
JP2007265089A (en) | Software maintenance support program, processing method, and device | |
CN108595187A (en) | Method, device and the storage medium of Android installation kit integrated software development kit | |
JP5164920B2 (en) | Test data generation method, apparatus and program | |
Lu et al. | Model-based incremental conformance checking to enable interactive product configuration | |
JP4951416B2 (en) | Program verification method and program verification apparatus | |
CN114077534A (en) | Test case generation method and device and computer readable storage medium | |
JP5164918B2 (en) | Test data generation method, apparatus and program | |
US20080196009A1 (en) | Apparatus and method for componentizing legacy system | |
Corradini et al. | Resttestgen: An extensible framework for automated black-box testing of restful apis | |
JP2020060919A (en) | System migration support device, system migration support method and program | |
CN109189688A (en) | A kind of generation method, generating means and the electronic equipment of test case script | |
JP2008305079A (en) | Requirement specification automatic verification method | |
Boucher et al. | Transforming workflow models into automated end-to-end acceptance test cases | |
CN104737125B (en) | For the method and system for the integrality for safeguarding code generator output | |
Lai et al. | Defining and verifying behaviour of domain specific language with fUML | |
Burger et al. | Difference-based Conformance Checking for Ecore Metamodels | |
Muñoz | Measuring the fidelity of digital twin systems | |
JP5900212B2 (en) | Test data generation apparatus, program, and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110202 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120305 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120731 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120925 |
|
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: 20121211 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121218 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151228 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5164919 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |