JP5447054B2 - データ生成方法,データ生成装置,およびデータ生成プログラム - Google Patents

データ生成方法,データ生成装置,およびデータ生成プログラム Download PDF

Info

Publication number
JP5447054B2
JP5447054B2 JP2010064117A JP2010064117A JP5447054B2 JP 5447054 B2 JP5447054 B2 JP 5447054B2 JP 2010064117 A JP2010064117 A JP 2010064117A JP 2010064117 A JP2010064117 A JP 2010064117A JP 5447054 B2 JP5447054 B2 JP 5447054B2
Authority
JP
Japan
Prior art keywords
variable
constraint
equivalence
character string
relationship
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
JP2010064117A
Other languages
English (en)
Other versions
JP2011198034A (ja
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010064117A priority Critical patent/JP5447054B2/ja
Publication of JP2011198034A publication Critical patent/JP2011198034A/ja
Application granted granted Critical
Publication of JP5447054B2 publication Critical patent/JP5447054B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は,ソフトウェアのテストデータを生成する技術に関する。特に,本発明は,大量の文字列データを要するソフトウェアのテストデータを生成する技術に関する。
業務アプリケーションプログラムの処理動作のテストを実施するため,テストデータの生成が行われる。
このようなテストデータ生成においては,テスト項目に関する前提条件,データベースのデータテーブルの相関関係等の様々な制約を同時に満たすような,画面入力データ,データベースデータ等を生成する必要がある。特に,これらのデータの大部分は文字列である。すなわち,業務アプリケーション用テストデータ生成において,文字列データを生成することが必須となっている。
図27は,業務アプリケーション用テストデータにおける文字列データの例を示す図である。
担当者テーブル,在庫テーブルを備えて発注業務を支援する業務アプリケーション用のテストデータ生成を例にとる。発注業務アプリケーションのテスト項目の一例として,発注入力画面90で確認ボタンが押下された場合に,“入力した「担当者」と「商品」に対応するレコードが担当者テーブル91に存在し,かつ,入力した発注数が在庫テーブル92内の対応する商品の在庫数以上である”という制約条件に該当するときに,“発注確認画面にエラー表示する”という動作を確認するテストがある場合に,上記の制約条件を満たすような画面入力データ,データベースデータを生成する必要がある。
そして,発注入力画面90で入力される担当者(発注者),商品(発注商品),担当者テーブル91のデータ項目の担当,商品,在庫テーブル92の商品等,多くの文字列が生成対象となる。
近年,この技術分野に関しては,コンピュータの性能向上,SAT(SATisfiability problem)やSMT(Satisfiability Modulo Theories)といった論理式の充足可能性問題に関する研究の進歩を背景として,論理式の充足可能性問題を解く装置,すなわちSATソルバ,SMTソルバ等を用いて,データが満たすべき条件の充足解を求め,これらの充足解にもとづいてテストデータを生成する技術が登場している。
SMTとは,述語論理式の充足可能性問題をいう。
SMTソルバは,DPLL(T)アルゴリズム等を用いて,述語論理式の充足可能性問題を解くツールである。SMTソルバの多くは,DPLL(T)アルゴリズム(非特許文献1の11章参照)等を用いて,入力された制約の充足可能性を判定する。
なお,上記のDPLL(T)(Davis-Putnam-Logemann-Loveland Theory)は,命題論理用の充足可能性判定アルゴリズムであるDPLLアルゴリズムを述語論理に拡張したものである。ここで,理論(T)とは,述語論理のサブセットを指すものである。例えば,“x=yかつy=1かつx!=2”といった自然数の等価関係(=)のみから構成される論理式のクラスは,理論の1つとされる。
SMTソルバを利用した文字列データ生成の技術において,文字列をASCIIコード等の各文字に相当する数値あるいはビットベクタの配列として表現し,対応した制約の充足解をSMTソルバによって求めることによってテストデータを生成するアプローチが知られている。
ダニエル クローニング(Daniel Kroening)他,「決定手続き:アルゴリズム的観点(Decision Procedures: An Algorithmic Point of View)」,ISBN:978-3540741046,2008年 ニコライ ブルネル(Nikolaj Bjorner)他,「文字列のパス実行可能性解析−文字列処理プログラム(Path Feasibility Analysis for String-Manipulating Programs)」,http://research.microsoft.com/pubs/81181/fulltext.pdf,2008年10月 アダム ケズン(Adam Kiezun)他,「HAMPI:文字列制約のためのソルバ(HAMPI: A Solver for String Constraints)」,ISSTA '09: Proceedings of the eighteenth international symposium on Software testing and analysis (2009),pp. 105-116,http://dspace.mit.edu/handle/1721.1/44584,2009年
上述のテストデータ生成において,制約からの文字列生成に関する処理では,制約中の文字列全てを配列として表現した制約を入力としていた。そのため,プログラムにおける関数の引数や,HTMLにおけるフォーム入力等の小さいデータは,従来技術を用いて生成することが可能であるが,従来技術を業務アプリケーションのデータベース,画面のような大規模な文字列データの生成処理に適用した場合には,性能的な課題が発生する。
具体的には,従来のあるアプローチは,文字列を数値(ASCIIコード)の配列として表現する手法であって,各文字列に対し文字列に相当する配列の長さをSMTソルバで決定し,さらに,決定した長さの固定長配列の各要素に入る数値をSMTソルバで決定している。この従来アプローチでは,制約に表現する文字列について全文字列変数を配列で表現するため,制約に出現する全ての文字列変数の総文字数分の変数が必要となる。
しかし,業務アプリケーションでは膨大な量の文字列データを処理するのが一般的であり,数千もの文字列データの生成が必要である。したがって,全文字列を数値型(ASCIIコード)の配列として扱うと,文字列変数の総文字数分の変数に対応する数万〜数十万の数値変数の値を決定しなければならず,実用的な時間で計算ができないうえ,莫大な数の変数を扱うメモリが不足するという問題がある。
また,制約に表現する文字列のうち,本来配列として扱う必要のない文字列まで配列として扱った制約を解いてしまうため,SMTソルバによる充足可能性判定の処理効率が上がらないという問題がある。
よって,業務アプリケーションのようにテストデータとして大量の文字列データが必要となるケースでは,文字列変数を配列として扱うと,膨大な時間・空間計算量が必要となってしまい,従来手法を適用することは実際には非常に困難であった。
本発明は,このような従来技術の問題点に鑑みてなされたものであり,その目的は,業務アプリケーションのようにテストデータとして大量の文字列データを要するプログラムに対しても,実用的な時間および空間計算量でテストデータを生成することができる技術を実現するデータ生成方法,データ生成装置,およびデータ生成プログラムを提供することである。
本願において開示されるデータ生成方法の代表的なものの概要を簡単に説明すれば,以下のとおりである。すなわち,データ生成方法は,ソフトウェアのテストデータを生成するテストデータ生成方法であって,制約中に含まれる関係式中の文字列変数が等価であることを示す等価関係および制約中の前記等価関係に該当する関係式の変換パターンを示す等価関係パターン,ならびに,関係式中の文字列変数が等価関係以外の関係を持つことを示す非等価関係および制約中の前記非等価関係に該当する関係式の変換パターンを示す非等価関係パターンを定義する関係情報を記憶する記憶部を備えるコンピュータが実行するものである。
上記のテストデータ生成方法は,1)ソフトウェアのテスト項目および制約条件を含む元制約情報を取得して,前記元制約情報の制約条件に出現する文字列変数を抽出して,前記元制約情報および前記関係情報にもとづいて前記抽出した各文字列変数を含む関係式を前記等価関係または前記非等価関係に分類する処理ステップと,2)前記元制約情報を解析して前記非等価関係に分類された関係式の文字列変数を抽出し,前記抽出した文字列変数の各々を起点展開変数に設定する処理ステップと,3)前記元制約情報を解析して前記等価関係に分類された関係式の文字列変数を抽出し,前記抽出した等価関係の文字列変数のうち,前記起点展開変数から等価関係により辿ることができる全ての変数を取り出して,前記取り出した変数および前記起点展開変数を前記展開変数に分類する処理ステップと,4)前記等価関係パターンおよび前記非等価関係パターンをもとに前記元制約情報を変換して生成した変換後制約情報において,前記元制約情報に出現する文字列変数のうち前記展開変数に分類された文字列変数のみを配列で表現し,前記展開変数に分類されなかった文字列変数を1次元変数で表現する処理ステップとを有する。
上記の処理ステップを有するデータ生成方法によれば,制約に表現する文字列について配列で表現すべき文字列変数を必要最小限に限定することができる。
よって,テストデータ生成において,上記のデータ生成方法によって変換された制約条件がSMTソルバへ入力されて,SMTソルバが解く制約の単位規模を抑えることができ,効率的に文字列を含むテストデータを得ることができる。
すなわち,SMTソルバの計算時間および消費メモリを大幅に削減することができ,従来困難であった大量の文字列データを含んだデータ生成にSMTを適用することが可能となり,さまざまな制約を満たした業務アプリケーション向けデータ生成を実用時間で自動化することができる。
開示されるデータ生成方法を業務アプリケーションのテストデータ生成に適用した場合に,実際の業務アプリケーションのテストデータ生成用の制約において表現する文字列変数の殆どの変数は配列として扱う必要がないため,計算時間およびメモリの効率化に,顕著な効果を奏することができる。
本発明の一実施の形態として開示するデータ生成装置の構成例を示す図である。 一実施の形態において記憶部に記憶される関係情報の例を示す図である。 一実施の形態におけるテスト項目を説明するための図である。 一実施の形態におけるデータ生成装置の処理の流れを示す図である。 一実施の形態において,元制約情報に含まれるテスト項目および画面定義の例を示す図である。 一実施の形態において,元制約情報に含まれるテーブル定義およびテーブル間の相関関係の例を示す図である。 一実施の形態における等価関係および非等価関係の分類例を示す図である。 一実施の形態における起点展開変数の例を示す図である。 一実施の形態における等価関係解析処理を説明する図である。 一実施の形態における制約中の画面項目およびデータ項目に関するデータ構造定義の例を示す図である。 一実施の形態における制約中の画面項目およびデータ項目に関するデータ構造定義の例を示す図である。 一実施の形態におけるインスタンス定義の例を示す図である。 一実施の形態において,制約変換部によって変換された変換情報(変換後制約)の例を示す図である。 一実施の形態における元制約充足データの例を示す図である。 一実施の形態における,文字等を割り当てた元制約充足データの例を示す図である。 図4に示す処理フローの「等価関係および非等価関係抽出処理(ステップS101)」の詳細フロー図である。 図4に示す処理フローの「非等価関係解析処理(ステップS102)」の詳細フロー図である。 図4に示す処理フローの「等価関係解析処理(ステップS103)」の詳細フロー図である。 図18に示す処理フローのステップS405の処理の詳細フロー図である。 図4に示す処理フローの「制約変換処理(ステップS104)」の詳細処理フロー図である。 図20に示す処理フローの「データ構造定義処理(ステップS601)」の詳細処理フロー図である。 図20に示す処理フローの「データ構造定義処理(ステップS601)」の詳細処理フロー図である。 図20に示す処理フローの「元制約情報の変換処理(ステップS602)」の詳細処理フロー図である。 図21に示す処理フローの「テーブル型定義処理(ステップS705)」の詳細処理フロー図である。 図4に示す処理フローの「制約充足値からのテストデータ生成処理(ステップS107)」の詳細処理フロー図である。 一実施の形態におけるデータ生成装置のハードウェア構成例を示す図である。 アプリケーションのソフトウェアのテスト項目の例を示す図である。
以下,本発明の一実施形態として開示するデータ生成装置について説明する。
図1は,開示するデータ生成装置1の構成例を示す図である。
データ生成装置1は,アプリケーションソフトウェアのテスト項目,種々の制約等を示す元制約情報2から,元制約情報2に定義された制約を充足するテスト用データ(元制約充足データ)3を出力する装置である。
データ生成装置1は,記憶部10,文字列制約抽出部11,非等価関係解析部13,等価関係解析部15,制約変換部17,および制約充足データ生成部19を有する。
記憶部10は,元制約情報2の制約条件や各定義に含まれる文字列同士の関係について,制約変換処理時に,必要がある場合のみ配列として扱う文字列の関係を示す等価関係と,配列として扱う文字列の関係を示す非等価関係を定義する関係情報を記憶する記憶部である。
図2は,記憶部10に記憶される関係情報の例を示す図である。
図2(A)は,関係情報に含まれる等価関係パターン10aの例を示す。等価関係パターン10aは,制約変換処理において,必要がある場合のみ配列として扱う文字列の関係を示す定義(内容)と,文字列を配列として扱う場合に各関係の制約変換において変換されるパターン(変換パターン)とを定義する情報である。
図2(A)に示す等価関係パターン10aにおいて,パターン名=EQ1のパターンは,「文字列項目A=文字列B(具体値)」の関係を「等価関係」として扱い,制約変換処理において,該当する関係の文字列を,
「forall i from 0 to 文字列Bの文字数-1 {文字列項目A[i] = 文字列Bのi文字目} かつforall j s.t. j >= 文字列Bの文字数 {文字列項目A[j] = ""(空文字)}」と変換することを示す。
図2(B)は,関係情報に含まれる非等価関係パターン10bの例を示す。非等価関係パターン10bは,制約変換処理において,配列として扱う文字列の関係を示す定義(内容)と,各関係の制約変換において変換されるパターン(変換パターン)とを定義する情報である。
図2(B)に示す非等価関係パターン10bにおいて,パターン名=NEQ1のパターンは,「charAt(文字列項目A, indexA) = 文字B(具体値)」の関係を「非等価関係」として扱い,制約変換処理において,該当する関係の文字列を,
「文字列項目A[indexA] = 文字B」と変換することを示す。
文字列制約抽出部11は,ソフトウェアのテスト項目と,画面定義,テーブル定義,テーブル相関等の制約情報とを含む元制約情報2を取得して,取得した元制約情報2から文字列変数を抽出する。文字列変数とは,元制約情報2に出現する制約式の文字列型の項目である。
文字列制約抽出部11は,元制約情報2および関係情報(等価関係パターン10a,非等価関係パターン10b)を参照して,抽出した各文字列変数を含む関係式を等価関係または非等価関係に分類する。
非等価関係解析部13は,文字列制約抽出部11で非等価関係に分類された関係式を解析して,配列として扱う文字列変数(展開変数)の探索の起点とする起点展開変数を取得する。起点展開変数とは,展開項目として扱う文字列変数のリストの起点でもある。
等価関係解析部15は,文字列制約抽出部11によって等価関係に分類された関係式を解析し,非等価関係解析部13によって抽出された起点展開変数各々について,起点展開変数から等価関係を辿ることができる全ての変数を抽出して,抽出した全変数を展開変数とし,その展開変数を起点展開変数のリストに追加する。このリストを変数分類50とする。
なお,文字列制約抽出部11によって抽出された全文字列変数のうち,展開変数とされなかった文字列変数,すなわち変数分類50に含まれていない変数は,配列として扱わない文字列変数であり,非展開変数に分類される。
制約変換部17は,元制約情報2から,制約充足データ生成部19の入力となる制約情報(変換後制約)を生成する。制約変換部17は,生成する制約において,元制約情報2に出現する文字列変数のうち,展開変数に分類された文字列変数のみを配列で表現し,非展開変数に分類された文字列変数を1次元変数で表現する。
制約充足データ生成部19は,制約変換部17によって生成された制約情報(変換後制約)の充足可能性問題を解き,その解(充足値)にもとづいて,元制約情報2の制約を充足するテストデータである元制約充足データ3を生成する。
以下に,データ生成装置1の動作を説明する。
本実施形態において,データ生成装置1が生成するテストデータによるテスト対象は図書館システムに含まれるソフトウェアであるとする。
図3は,テスト項目を説明するための図である。
ソフトウェアのテスト項目は,「メニュー画面41で『貸出・予約』ボタンが押下された場合に,このボタン押下のイベントを契機にデータベース40を参照して,ユーザが学生であり(ユーザIDが‘S’で始まるID),既に3冊貸し出している状態である場合に,貸出・予約画面42に,結果コードE12345に対応するメッセージ(これ以上の貸出はできません)を表示する」という内容とする。
図4は,データ生成装置1の処理の流れを示す図である。
ステップS101:等価関係および非等価関係抽出処理
文字列制約抽出部11は,元制約情報2を入力して,元制約情報2に出現する文字列変数を含む関係式を等価関係と非等価関係とに分類する。
元制約情報2には,図5および図6に示すような,テスト項目21,関連する画面定義22,データベースのテーブル定義23,テーブルの相関関係(ER関係)24が含まれる。
図5(A)は,テスト項目21の例である。テスト項目21は,テスト内容を示す情報である。ここで,テスト項目21は,メニュー画面41の表示中に「貸出・予約」のイベントを検出した場合のメッセージ表示動作確認テストであり,「メニュー画面41のIDが‘S’で始まり,かつ,図6(A)のデータベース40のユーザテーブルに存在するものであること,メニュー画面41のID,ユーザに対応するレコードが貸出情報テーブルに3つある」という制約を示している。
図5(B)は,画面定義22の例である。画面定義22は,画面の各入力項目に入力されるデータのデータ型,入力桁数等を示すデータテーブルである。例えば,図5(B)の画面定義22では,メニュー画面41の項目「ID」は,文字列型かつ10桁のデータであるという定義が示されている。
図6(A)はテーブル定義23の例である。テーブル定義23は,データベースの各データテーブルの項目,格納されるデータ型,桁数等を示すテーブルである。図6(A)のテーブル定義23では,例えば,貸出情報テーブルの「貸出ID」は,文字列型,11桁であるという定義が示されている。
図6(B)は,テーブルの相関関係24の例である。テーブルの相関関係24は,データベース40の各データテーブルに格納されている変数等の相関関係を示す情報である。
ステップS101の処理において,文字列制約抽出部11は,元制約情報2のテスト項目21および制約情報(テーブルの相関関係24等)の制約式を逐次解析し,制約式中の項目の関係式を抽出して,抽出した関係式中の各項目が属する画面やテーブルを特定する。また,文字列制約抽出部11は,関係式の抽出時に,各項目を含むテーブルと画面を一意に特定する。
さらに,文字列制約抽出部11は,関係式中の項目が文字列型(文字列変数)であれば,関係情報を参照して,等価関係または非等価関係に分類する。
なお,関係式中の数値型,日付型等の文字列型以外の項目は除外され,論理的に等価な式が重複して存在する場合には,1つを代表して他は除去される。
図7は,等価関係および非等価関係の分類例を示す図である。
図7に示すように,「charAt(メニュー画面.ID, 0)= "S"」は,画面定義22から,メニュー画面のデータ項目であり,データ型=文字列,桁数=10であることが特定され,さらに,非等価パターンに該当するので,非等価関係に分類される。
また,「ユーザT(テーブル).ユーザID)」と「メニュー画面.ID」のテーブル定義23の定義(文字列,10桁)が特定される。そして,「ユーザT(テーブル).ユーザID=メニュー画面.ID」は,等価関係パターン10aのEQ2に該当するので,等価関係に分類される。
ステップS102:非等価関係解析処理
非等価関係解析部13は,文字列制約抽出部11によって非等価関係に分類された関係式を解析して,文字列変数を起点展開変数に設定する。
図8に示すように,起点展開変数は,配列として扱うと判断した項目(展開項目)を示すリストである変数分類50の元となる項目である。
ステップS103:等価関係解析処理
等価関係解析部15は,関係式中の文字列変数のうち等価関係に分類されたものを解析して,各起点展開変数から等価関係による繋がりを有する項目(文字列変数)を取得して,変数分類50に追加する。
図9は,等価関係解析処理を説明するための図である。
等価関係解析部15は,まず,起点展開変数「メニュー画面.ID」を注目変数(推移関係を辿る対象の項目)として,元制約情報2の画面定義22,テーブル定義23,テーブルの相関関係24から,注目変数を含む等価関係を得る。
そして,等価関係解析部15は,その等価関係において参照される項目(文字列変数)を特定して参照項目とし,その参照項目を,変数分類50に展開項目として追加する。ここでは,「ユーザT.ユーザID」が参照項目として特定され,変数分類50に追加される。
さらに,等価関係解析部15は,参照項目(展開項目「ユーザT.ユーザID」)を注目変数として,この注目変数を含む等価関係を得て,得た等価関係において参照される項目(「貸出情報T.ユーザID」)を得て展開項目とし,変数分類50に追加する。
このように,等価関係解析部15は,起点展開変数,およびその起点展開変数から等価関係を推移的に辿ることが可能な項目全てを展開項目として変数分類50に追加する。
なお,等価関係に分類された項目(文字列変数)のうち,変数分類50に追加されなかった項目(文字列変数)は,制約中で配列として表現する必要がなく,1次元変数(例えば,整数型)として表現される。
ステップS104:制約変換処理
制約変換部17は,まず,元制約情報2を,制約充足データ生成部19が処理可能な形式の制約情報(変換後制約)に変換する。変換において,制約変換部17は,変数分類50に分類された文字列変数を配列で表現し,それ以外の文字列変数を整数型で表現して変換する。
具体的には,制約変換部17は,元制約情報2と分類変数50を入力して,概ね,文字列変数のデータ構造定義の設定処理と,制約情報,テスト項目情報の変換処理の2フェーズの処理を行う。
制約変換部17は,データ構造定義処理として,文字列変数について,画面定義22,テーブル定義23の該当する項目定義にもとづいて,各項目に対応する桁数の文字列型を定義する。例えば,画面定義22,テーブル定義23から,型定義するべき桁数の文字列は,8桁,10桁,11桁,16桁,32桁,64桁の文字列であるのでこれらを定義する。さらに,制約変換部17は,例えば,各文字は0以上256未満の整数と定義する。
なお,制約変換部17は,文字列の桁数は,画面定義22,テーブル定義23から設定するだけでなく,他の方法で設定してもよい。例えば,予め所定の統一的な桁数を採用したり,非特許文献2の手法によって設定してもよい。
次に,制約変換部17は,画面のデータ型定義処理として,元制約情報2中に出現する各画面について,テスト項目21,画面定義23等を参照し,画面項目のデータ型を定義する。その際に,制約変換部17は,各画面項目に関して,変数分類50の展開項目(配列として扱う変数)であるかを判定する。画面項目が展開項目であれば,制約変換部17は,その画面項目を,対応する桁数をもつ文字列型として定義し,展開項目でなければ,その画面項目を1次元変数(ここでは,整数)として定義する。
例えば,元制約情報2において,出現する画面は,メニュー画面41のみであるので,メニュー画面41の全画面項目の定義が用意される。制約変換部17は,メニュー画面41の画面項目「ID」が変数分類50の展開項目であるので,画面項目「ID」を10桁の文字列(String10 ID)として定義する。メニュー画面41の画面項目「ユーザ」が変数分類50の展開項目ではないので,「ユーザ」は,整数(intユーザ)として定義する。その結果,メニュー画面の定義として,「(define-type メニュー画面 (int ユーザ, String10 ID))」が生成される。
次に,制約変換部17は,テーブルのデータ型定義処理として,各テーブルについて,テーブル定義23を参照し,テーブルのデータ型を定義する。その際に,制約変換部17は,各テーブル項目に関して,変数分類50の展開項目であるかを判定する。テーブル項目が展開項目であれば,そのテーブル項目を,対応する桁数をもつ文字列型として定義し,展開項目でなければ,そのテーブル項目を整数として定義する。
図10および図11は,生成される画面項目およびデータ項目に関するデータ構造定義の例を示す図である。
図10は,変換後制約の一部となるデータ構造定義の例を示す図である。図11は,図10のデータ構造定義をテーブルで模式的に示す図である。
図10のデータ構造定義では,変数分類50の展開項目である項目が配列(StringN(Nは桁数))として,それ以外の項目が1次元変数(int)として定義されている。
図11に示すように,充足解の算出処理において,配列として表現される展開項目は桁数分の数値変数が処理対象となるが,展開項目以外の項目は1次元変数で処理すればよく,処理対象となる数値変数の量が大幅に減少されることがわかる。
さらに,制約変換部17は,テーブル・画面のインスタンス定義処理として,制約充足データ生成部19が,解(充足値)を求める対象である,各画面型,テーブル型の変数(インスタンス)を定義する。
図12は,インスタンス定義の例を示す図である。図12に示すように,メニュー画面のインスタンス「メニュー画面_I」,ユーザテーブルのインスタンス「ユーザT_I」,図書テーブルのインスタンス「図書T_I」,貸出テーブルのインスタンス「貸出T_I」の各定義が生成される。
次に,制約変換部17は,元制約情報2の変換を行う。
より詳しくは,制約変換部17は,元制約情報2中の各関係式において出現する項目が,変数分類50の展開項目であるかどうかをチェックする。関係式に出現する項目が展開項目であれば,制約変換部17は,関係情報の等価関係パターン10a,非等価関係パターン10bを参照して,その関係式を該当する変換パターンを用いて書き換える。関係式に出現する項目が展開項目でなければ,その関係式を維持して,必要に応じてインスタンス名の変更のみを行う。
一例として,制約変換部17は,テーブルの相関関係24の「rec1.ユーザID = rec2.ユーザID」について,「rec1」は貸出情報テーブル,「rec2」はユーザテーブルのレコードであって,「貸出情報T.ユーザID」と「ユーザT.ユーザID」が変数分類50の展開項目であり,かつ,この関係式が関係情報10の等価関係パターン10aのEQ2に該当するので,その変換パターンにもとづいて「forall i from 0 to 9 rec1.ユーザID[i] = rec2.ユーザID[i]」と変換する。
また,制約変換部17は,テスト項目21の「(charAt(メニュー画面.ID, 0) = "S")」について,「メニュー画面.ID」が変数分類50の展開項目であり,この関係式が非等価関係パターン10bのNEQ1に該当するので,その変換パターンにもとづいて,「(メニュー画面_I.ID[0] = "S")」と変換する。
さらに,制約変換部17は,テスト項目21の「rec1.ユーザID=メニュー画面.ID
」について,「メニュー画面.ID」が変数分類50の展開項目であり,「rec1」はユーザテーブルのレコードであり,さらに「ユーザT.ユーザID」が展開項目であり,この関係式が関係情報10の等価関係パターン10aのEQ2に該当するので,その変換パターンにもとづいて,「(forall i from 0 to 9 rec1.ユーザID[i]=メニュー画面_I.ID[i]) 」と変換する。
なお,"S","test"等の具体的な文字や文字列が変換対象に出現する場合には,制約変換部17は,それらの具体的な文字(列)に対応する定数値を,事前に与えておく。例えば,"S"は,整数83(SのASCIIコード)と等価な定数とする。なお,このような定数値については,対応表を用いて別の値にマッピングするようにしてもよい。
図13は,制約変換部17によって変換された変換情報(変換後制約)の例を示す図である。図13に示す変換情報が,制約充足データ生成部19の入力となる。
ステップS105:制約情報(変換後制約)の解算出処理
制約充足データ生成部19は,制約変換部17によって変換された制約情報(変換後制約)について,充足可能性問題を解き,解を算出する。充足可能性問題の解算出の処理は,既知のSMTソルバの機能によって実現される。
制約充足データ生成部19は,まず,入力された制約情報から,論理的な最小単位である原子論理式に対応する命題論理式を得る。そして,制約充足データ生成部19は,入力された制約情報の各原子論理式を対応する命題論理式で変換した論理式が充足可能であるように,各命題論理式に対して真偽値を与えていく。制約充足データ生成部19は,原子論理式の真偽値が対応する各命題論理式の真偽値と一致するように,その原子論理式に出現するインスタンス(変数)の具体的な充足値が得られるかを試行する。
ステップS106:充足可能性の判定処理
制約充足データ生成部19は,ステップS105の処理における上記の試行の結果,実際に各インスタンスの具体的な充足値を得た場合に,入力された制約情報を充足可能と判定して(S106のY),ステップS107の処理へ進み,各インスタンスの具体的な充足値を得られなかった場合に(S106のN),ステップS108の処理へ進む。
ステップS107:制約充足値からのテストデータ生成処理
制約充足データ生成部19は,入力された制約情報を充足可能と判定した場合に,試行で得た各インスタンスの充足値をもとに具体的な値を割り当てたデータを生成し,元制約充足データ3(テストデータ)として出力する。
図14および図15は,テストデータとなる元制約充足データ3の例を示す図である。
図14に示す元制約充足データ3は,入力された制約情報が充足可能と判定された場合における各インスタンスの充足値によって示す状態である。
図15は,図14の元制約充足データ3の各インスタンスの値を,ASCIIコード,所定の対応表をもとに変換した値で示す状態である。
制約充足データ生成部19は,図14に示す元制約充足データ3の,配列として表現されたユーザID(char)について,各桁のインスタンスに与えられた充足値をASCIIコードとみなして文字に変換し,各桁(文字)を連結してユーザIDを生成する。さらに,制約充足データ生成部19は,1次元変数として表現されたユーザ名,メールアドレス,電話番号,書籍ID,書籍名等について,変数値(int)をもとに,所定の対応表に従って対応する値に変換して,各データを生成する。
ステップS108:データ生成失敗の通知処理
制約充足データ生成部19は,入力された制約情報を充足不能と判定した場合に,元制約充足データ3の生成失敗の旨のメッセージを通知する。
図16〜図25を用いて,図4に示す処理フローの各処理ステップの処理内容を,より詳細に説明する。
図16は,図4に示す処理フローの「等価関係および非等価関係抽出処理(ステップS101)」の詳細フロー図である。
文字列制約抽出部11は,元制約情報2のテスト項目21および画面定義22,テーブル定義23,テーブルの相関関係24等の制約情報中の全関係式を解析したかを判定する(ステップS201)。
全関係式を解析していれば(ステップS201のY),文字列制約抽出部11は,処理を終了するが,全関係式を抽出していなければ(ステップS201のN),未解析の関係式を得る(ステップS202)。文字列制約抽出部11は,関係式に出現する項目が属するテーブル,画面を特定し(ステップS203),関係式に出現する項目のデータ型を特定する(ステップS204)。
さらに,文字列制約抽出部11は,関係式が関係情報の等価関係パターン10aにマッチするかを判定する(ステップS205)。関係式が関係情報の等価関係パターン10aにマッチすれば(ステップS205のY),文字列制約抽出部11は,重複する等価関係が既に登録されているかを調べる(ステップS206)。重複する等価関係が既に登録されていれば(ステップS206のY),文字列制約抽出部11は,ステップS201の処理へ戻り,重複する等価関係が登録されていなければ(ステップS206のN),その関係式を等価関係に分類する(ステップS207)。
関係式が関係情報の等価関係パターン10aにマッチしなければ(ステップS205のN),文字列制約抽出部11は,その関係式が非等価関係パターン10bにマッチするかを判定する(ステップS208)。関係式が非等価関係パターン10bにマッチしていれば(ステップS208のY),文字列制約抽出部11は,重複する非等価関係が既に登録されているかを調べる(ステップS209)。重複する等価関係が登録されていなければ(ステップS209のN),文字列制約抽出部11は,その関係式を非等価関係に分類する(ステップS210)。
関係式が非等価関係パターン10bにマッチしていない(ステップS208のN),もしくは,重複する等価関係が既に登録されていれば(ステップS209のY),文字列制約抽出部11は,ステップS201の処理へ戻る。
図17は,図4に示す処理フローの「非等価関係解析処理(ステップS102)」の詳細フロー図である。
非等価関係解析部13は,全ての非等価関係を解析したかを判定する(ステップS301)。全非等価関係を解析していれば(ステップS301のY),非等価関係解析部13は,処理を終了するが,全非等価関係を解析していなければ(ステップS301のN),未解析の非等価関係を得る(ステップS302)。
非等価関係解析部13は,非等価関係中の全ての項目を解析したかを判定する(ステップS303)。非等価関係中の全ての項目を解析していなければ(ステップS303のN),非等価関係解析部13は,未解析の項目を得て(ステップS304),その項目が起点展開変数に登録されているか調べる(ステップS305)。その項目が起点展開変数に登録されてなければ(ステップS305のN),非等価関係解析部13は,その項目を起点展開変数に登録し(ステップS306),その項目が起点展開変数に登録されていれば(ステップS305のY),ステップS303の処理へ戻る。
非等価関係中の全ての項目を解析していれば(ステップS303のY),非等価関係解析部13は,ステップS301の処理へ戻る。
図18は,図4に示す処理フローの「等価関係解析処理(ステップS103)」の詳細フロー図である。
等価関係解析部15は,起点展開変数中の全ての展開項目を解析したかを判定する(ステップS401)。起点展開変数中の全ての展開項目を解析していれば(ステップS401のY),処理を終了するが,起点展開変数中の全ての展開項目を解析していなければ(ステップS401のN),等価関係解析部15は,未解析の展開項目を得て(ステップS402),その展開項目が変数分類50に登録されているか調べる(ステップS403)。その展開項目が変数分類50に登録されてなければ(ステップS403のN),等価関係解析部15は,その展開項目を変数分類50に追加し(ステップS404),さらに,等価関係を辿ることが可能な展開項目の解析を行う(ステップS405)。
その展開項目が変数分類50に既に登録されているときは(ステップS403のN),等価関係解析部15は,ステップS401の処理へ戻る。
図19は,図18に示す処理フローのステップS405の処理の詳細なフロー図である。
等価関係解析部15は,起点展開変数を注目変数とし(ステップS501),さらに,注目変数を含む等価関係を得る(ステップS502)。等価関係解析部15は,等価関係を全て解析したかを判定して(ステップS503),等価関係を全て解析していれば(ステップS503のY),変数分類50中の展開項目のうち,未注目の項目が存在するかを判定する(ステップS504)。
未注目の項目が存在すれば(ステップS504のY),等価関係解析部15は,未注目の項目を選んで,注目変数として(ステップS505),ステップS502の処理へ戻る。未注目の項目が存在しなければ(ステップS504のN),等価関係解析部15は,処理を終了する。
ステップS503で,等価関係を全て解析していなければ(ステップS503のN),等価関係解析部15は,未解析の等価関係を得て(ステップS506),等価関係において,注目変数から参照される項目(推移関係を1ホップ辿ることで到達可能な項目)を全て得て,参照項目とする(ステップS507)。
そして,等価関係解析部15は,参照項目が変数分類50中の展開項目に登録されているかを調べて(ステップS508),展開項目に登録されていなければ(ステップS508のN),その参照項目を,変数分類50中に展開項目として登録する(ステップS509)。展開項目に登録されていれば(ステップS508のY),等価関係解析部15は,ステップS503の処理へ戻る。
図20は,図4に示す処理フローの「制約変換処理(ステップS104)」の詳細フロー図である。
制約変換部17は,元制約情報2を入力して,データ構造定義処理を行い(ステップS601),さらに,元制約情報2の(テスト項目21,画面定義22,データ定義23,データの相関関係24等)の変換処理を行い,元制約充足データ3を出力する(ステップS602)。
図21および図22は,図20に示す処理フローの「データ構造定義処理(ステップS601)」の詳細処理フロー図である。
制約変換部17は,画面定義22,テーブル定義23に出現する文字列項目の桁数を収集し(ステップS701),収集した各桁数に応じた文字列型を定義する(ステップS702)。さらに,制約変換部17は,テスト項目21,制約情報(画面定義22,テーブル定義23,データの相関関係24)に出現する画面を特定する(ステップS703)。
制約変換部17は,全画面の型を定義したかを判定し(ステップS704),全画面の型を定義したら(ステップS704のY),テーブル型定義処理を行い(ステップS705),定義した各型に対応するインスタンスを定義して(ステップS706),処理を終了する。
制約変換部17は,全画面の型を定義していなければ(ステップS704のN),型が未定義の画面を選択して(ステップS707),選択した画面における全画面項目の型付けを行ったかを判定する(ステップS708)。選択した画面における全画面項目の型付けを行っていれば(ステップS708のY),制約変換部17は,画面項目の型付けをもとに画面型を定義する(ステップS709)。
選択した画面における全画面項目の型付けを行っていなければ(ステップS708のN),制約変換部17は,型付けを行っていない画面項目を選択して(ステップS710),その画面項目が変数分類50の展開項目であるかを調べる(ステップS711)。その画面項目が展開項目であれば(ステップS711のY),制約変換部17は,その画面項目を文字列型とし(ステップS712),展開項目でなければ(ステップS711のN),その画面項目を整数型とする(ステップS713)。
図23は,図20に示す処理フローの「元制約情報の変換処理(ステップS602)」の詳細処理フロー図である。
制約変換部17は,元制約情報2を構成する全関係式をチェックしたかを判定する(ステップS901)。元制約情報2を構成する全関係式をチェックしていれば(ステップS901のY),制約変換部17は,変換対象の関係式に紐付いた変換後の表現をもとに,変換後の制約式を出力して(ステップS902),処理を終了する。
元制約情報2を構成する全関係式をチェックしていなければ(ステップS901のN),制約変換部17は,未チェックの関係式を選択し(ステップS903),その関係式中の展開項目を特定する(ステップS904)。
さらに,制約変換部17は,その関係式が関係情報10の等価関係パターン10aにマッチするかを判定する(ステップS905)。関係式が等価関係パターン10aにマッチすれば(ステップS905のY),制約変換部17は,マッチしたパターン(等価関係パターン10a)に従って,変換後の表現を関係式に紐付ける(ステップS906)。
関係式が等価関係パターン10aにマッチしなければ(ステップS905のN),制約変換部17は,その関係式が非等価関係パターン10bにマッチするかを判定する(ステップS907)。関係式が非等価関係パターン10bにマッチすれば(ステップS907のY),制約変換部17は,マッチしたパターン(非等価関係パターン10b)に従って,変換後の表現を関係式に紐付けて(ステップS906),処理を終了する。
関係式が非等価関係パターン10bにマッチしなければ(ステップS907のN),制約変換部17は,ステップS901の処理へ戻る。
図24は,図21に示す処理フローの「テーブル型定義処理(ステップS705)」の詳細処理フロー図である。
制約変換部17は,全テーブル型を定義したかを判定し(ステップS801),全テーブル型を定義していれば(ステップS801のY),処理を終了するが,全テーブル型を定義していなければ(ステップS801のN),型が未定義のテーブルを選択する(ステップS802)。
そして,制約変換部17は,選択したテーブルにおける全テーブル項目の型付けを行ったかを調べる(ステップS803)。全テーブル項目の型付けを行っていれば(ステップS803のY),制約変換部17は,テーブル項目の型付けを元にレコード型,テーブル型を定義して(ステップS804),ステップS801の処理へ戻る。
全テーブル項目の型付けを行っていなければ(ステップS803のN),制約変換部17は,型付けを行っていないテーブル項目を選択して(ステップS805),そのテーブル項目が変数分類50の展開項目であるかを調べる(ステップS806)。制約変換部17は,そのテーブル項目が展開項目であれば(ステップS806のY),そのテーブル項目を文字列型とし(ステップS807),そのテーブル項目が展開項目でなければ(ステップS806のN),そのテーブル項目を整数型とする(ステップS808)。
図25は,図4に示す処理フローの「制約充足値からのテストデータ生成処理(ステップS107)」の詳細処理フロー図である。
制約充足データ生成部19は,変数分類50の展開項目に対応する文字列インスタンスを構成する配列要素に与えられた充足値に対して,充足値に対応する文字を割り当て,結合する(ステップS1001)。
さらに,制約充足データ生成部19は,展開項目以外の文字列に相当する整数型インスタンスに与えられた充足値に対して,充足値に対応する文字列を割り当て(ステップS1002),処理を終了する。
次に,図26に,データ生成装置1のハードウェア構成例を示す。
データ生成装置1は,演算装置(CPU)101,一時記憶装置(DRAM,フラッシュメモリ等)102,永続性記憶装置(HDD,フラッシュメモリ等)103,および,ネットワークNとのネットワークインターフェース104を有するコンピュータ100と,入力装置(キーボード,マウス等)120と出力装置(ディスプレイ,プリンタ等)130とによって実施することができる。
また,データ生成装置1は,コンピュータ100が実行可能なプログラムによって実施することができる。この場合に,データ生成装置1が有すべき機能の処理内容を記述したプログラムが提供される。提供されたプログラムをコンピュータ100が実行することによって,上記説明したデータ生成装置1の処理機能がコンピュータ100上で実現される。
すなわち,データ生成装置1の文字列制約抽出部11,非等価関係解析部13,等価関係解析部15,制約変数部17,制約充足データ生成部19等は,プログラムで構成することができ,これらのプログラムが一時記憶装置102にロードされて実行されることにより,各処理部の機能が実現される。また,必要な情報,元制約情報2,関係情報10等は永続性記憶装置103に格納される。
なお,コンピュータ100は,可搬型記録媒体から直接プログラムを読み取り,そのプログラムに従った処理を実行することもできる。また,コンピュータ100は,サーバコンピュータからプログラムが転送されるごとに,逐次,受け取ったプログラムに従った処理を実行することもできる。
さらに,このプログラムは,コンピュータ100で読み取り可能な記録媒体に記録しておくことができる。
以上説明したように,開示したデータ生成装置1によれば,次のような効果がある。
データ生成装置1においては,非等価関係解析部13および等価関係解析部15によって,元制約情報2に出現する文字列変数のうち,配列で表現すべき文字列変数を必要最小限に限定することができる。すなわち,データ生成処理で必要な変数が,展開変数の総文字数と非展開変数の総数の和に削減される。
また,制約情報の表現において,配列として扱うことが必須の文字列以外は1次元の変数として扱われるので,制約に出現する変数の数が少なくなる。
これによって,既知のSMTソルバを用いた制約充足データ生成部19が解く充足可能性問題の規模が小さくなる。
よって,制約充足データ生成部19が充足解を求めるために必要な処理時間・空間計算量を大幅に削減することができ,実用的な時間・空間計算量で制約を解くことができる。すなわち,これまで困難であった大量の文字列データを含むようなデータ生成処理に,SMTソルバ機能を適用することが可能となる。
特に,業務アプリケーションのテストデータ生成用の制約において,制約に出現する変数のほとんどは,配列として扱う必要がないため,充足可能性問題の規模を小さくするという上記作用の効果が顕著である。
1 データ生成装置
10 記憶部
11 文字列制約抽出部
13 非等価関係解析部
15 等価関係解析部
17 制約変換部
19 制約充足データ生成部
2 元制約情報
3 元制約充足データ

Claims (4)

  1. ソフトウェアのテストデータを生成するテストデータ生成方法であって,
    制約中に含まれる関係式中の文字列変数が等価であることを示す等価関係および制約中の前記等価関係に該当する関係式の変換パターンを示す等価関係パターン,ならびに,関係式中の文字列変数が等価関係以外の関係を持つことを示す非等価関係および制約中の前記非等価関係に該当する関係式の変換パターンを示す非等価関係パターンを定義する関係情報を記憶する記憶部を備えるコンピュータが,
    ソフトウェアのテスト項目および制約条件を含む元制約情報を取得して,前記元制約情報の制約条件に出現する文字列変数を抽出して,前記元制約情報および前記関係情報にもとづいて前記抽出した各文字列変数を含む関係式を前記等価関係または前記非等価関係に分類する処理ステップと,
    前記元制約情報を解析して前記非等価関係に分類された関係式の文字列変数を抽出し,前記抽出した文字列変数の各々を起点展開変数に設定する処理ステップと,
    前記元制約情報を解析して前記等価関係に分類された関係式の文字列変数を抽出し,前記抽出した等価関係の文字列変数のうち,前記起点展開変数から等価関係により辿ることができる全ての変数を取り出して,前記取り出した変数および前記起点展開変数を前記展開変数に分類する処理ステップと,
    前記等価関係パターンおよび前記非等価関係パターンをもとに前記元制約情報を変換して生成した変換後制約情報において,前記元制約情報に出現する文字列変数のうち前記展開変数に分類された文字列変数のみを配列で表現し,前記展開変数に分類されなかった文字列変数を1次元変数で表現する処理ステップとを,実行する
    ことを特徴とするデータ生成方法。
  2. 前記コンピュータが,
    前記変換後制約情報の充足可能性を判定して,前記変換後制約情報が充足可能である場合に与える前記変換後制約情報の各変数の値にもとづいて,前記元制約情報を充足するテストデータを生成する制約充足データ生成ステップを,実行する
    ことを特徴とする請求項1に記載のデータ生成方法。
  3. ソフトウェアのテストデータ生成装置であって,
    制約中に含まれる関係式中の文字列変数が等価であることを示す等価関係および制約中の前記等価関係に該当する関係式の変換パターンを示す等価関係パターン,ならびに,関係式中の文字列変数が等価関係以外の関係を持つことを示す非等価関係および制約中の前記非等価関係に該当する関係式の変換パターンを示す非等価関係パターンを定義する関係情報を記憶する記憶部と,
    ソフトウェアのテスト項目および制約条件を含む元制約情報を取得して,前記元制約情報の制約条件に出現する文字列変数を抽出して,前記元制約情報および前記関係情報にもとづいて前記抽出した各文字列変数を含む関係式を前記等価関係または前記非等価関係に分類する文字列制約抽出部と,
    前記元制約情報を解析して前記非等価関係に分類された関係式の文字列変数を抽出し,前記抽出した文字列変数の各々を起点展開変数に設定する非等価関係解析部と,
    前記元制約情報を解析して前記等価関係に分類された関係式の文字列変数を抽出し,前記抽出した等価関係の文字列変数のうち,前記起点展開変数から等価関係により辿ることができる全ての変数を取り出して,前記取り出した変数および前記起点展開変数を前記展開変数に分類する等価関係解析部と,
    前記等価関係パターンおよび前記非等価関係パターンをもとに前記元制約情報を変換して生成した変換後制約情報において,前記元制約情報に出現する文字列変数のうち前記展開変数に分類された文字列変数のみを配列で表現し,前記展開変数に分類されなかった文字列変数を1次元変数で表現する制約変換部とを備える
    ことを特徴とするデータ生成装置。
  4. コンピュータに,ソフトウェアのテストデータ生成処理を実行させるためのプログラムであって,
    制約中に含まれる関係式中の文字列変数が等価であることを示す等価関係および制約中の前記等価関係に該当する関係式の変換パターンを示す等価関係パターン,ならびに,関係式中の文字列変数が等価関係以外の関係を持つことを示す非等価関係および制約中の前記非等価関係に該当する関係式の変換パターンを示す非等価関係パターンを定義する関係情報を記憶する記憶部を備える前記コンピュータに,
    ソフトウェアのテスト項目および制約条件を含む元制約情報を取得して,前記元制約情報の制約条件に出現する文字列変数を抽出して,前記元制約情報および前記関係情報にもとづいて前記抽出した各文字列変数を含む関係式を前記等価関係または前記非等価関係に分類する処理と,
    前記元制約情報を解析して前記非等価関係に分類された関係式の文字列変数を抽出し,前記抽出した文字列変数の各々を起点展開変数に設定する処理と,
    前記元制約情報を解析して前記等価関係に分類された関係式の文字列変数を抽出し,前記抽出した等価関係の文字列変数のうち,前記起点展開変数から等価関係により辿ることができる全ての変数を取り出して,前記取り出した変数および前記起点展開変数を前記展開変数に分類する処理と,
    前記等価関係パターンおよび前記非等価関係パターンをもとに前記元制約情報を変換して生成した変換後制約情報において,前記元制約情報に出現する文字列変数のうち前記展開変数に分類された文字列変数のみを配列で表現し,前記展開変数に分類されなかった文字列変数を1次元変数で表現する処理とを,実行させる
    ことを特徴とするデータ生成プログラム。
JP2010064117A 2010-03-19 2010-03-19 データ生成方法,データ生成装置,およびデータ生成プログラム Active JP5447054B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010064117A JP5447054B2 (ja) 2010-03-19 2010-03-19 データ生成方法,データ生成装置,およびデータ生成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010064117A JP5447054B2 (ja) 2010-03-19 2010-03-19 データ生成方法,データ生成装置,およびデータ生成プログラム

Publications (2)

Publication Number Publication Date
JP2011198034A JP2011198034A (ja) 2011-10-06
JP5447054B2 true JP5447054B2 (ja) 2014-03-19

Family

ID=44876150

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010064117A Active JP5447054B2 (ja) 2010-03-19 2010-03-19 データ生成方法,データ生成装置,およびデータ生成プログラム

Country Status (1)

Country Link
JP (1) JP5447054B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5673395B2 (ja) * 2011-06-30 2015-02-18 富士通株式会社 テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置
JP5884652B2 (ja) * 2012-06-08 2016-03-15 富士通株式会社 テストデータ生成プログラム,テストデータ生成装置およびテストデータ生成方法
JP5936135B2 (ja) 2013-03-22 2016-06-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理装置、情報処理方法、及び、プログラム

Also Published As

Publication number Publication date
JP2011198034A (ja) 2011-10-06

Similar Documents

Publication Publication Date Title
Li et al. Disambiguation and co-authorship networks of the US patent inventor database (1975–2010)
Babur et al. Hierarchical clustering of metamodels for comparative analysis and visualization
Cao et al. Querying similar process models based on the Hungarian algorithm
De Renzis et al. Case-based reasoning for web service discovery and selection
Ujwal et al. Classification-based adaptive web scraper
Sun et al. Multi-view network embedding via graph factorization clustering and co-regularized multi-view agreement
Liu et al. Cleaning framework for big data-object identification and linkage
JP2004030221A (ja) 変更対象テーブル自動検出方法
Yan et al. Generating process model collections
Tavares et al. Process mining encoding via meta-learning for an enhanced anomaly detection
Babur Statistical analysis of large sets of models
JP5447054B2 (ja) データ生成方法,データ生成装置,およびデータ生成プログラム
Yang et al. User story clustering in agile development: a framework and an empirical study
Edmunds et al. Using constraint-satisfaction to optimise disassembly sequences generated from AND/OR information
JP5407727B2 (ja) テストデータ生成プログラム、方法及び装置
WO2022018899A1 (ja) Kpiツリーから部分ツリーを抽出するシステム
Yeh et al. An efficient content-based time series retrieval system
JP5609681B2 (ja) テストデータ生成プログラム、方法及び装置
CA3139601C (en) Method for consolidating dynamic knowledge organization systems
Soni et al. An fp-growth approach to mining association rules
Tan et al. A new method for business process retrieval using breadth-first traversal
JP2018190219A (ja) ソフトウェア仕様分析装置、及びソフトウェア仕様分析方法
Noughi et al. Conceptual interpretation of SQL execution traces for program comprehension
Esgin et al. Extracting process hierarchies by multi-sequence alignment adaptations
Anam et al. A Process Model Collection with Structural Variants and Evaluations

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131128

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131216

R150 Certificate of patent or registration of utility model

Ref document number: 5447054

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150