JP2012128572A - データ生成装置、データ生成方法及びプログラム - Google Patents

データ生成装置、データ生成方法及びプログラム Download PDF

Info

Publication number
JP2012128572A
JP2012128572A JP2010278262A JP2010278262A JP2012128572A JP 2012128572 A JP2012128572 A JP 2012128572A JP 2010278262 A JP2010278262 A JP 2010278262A JP 2010278262 A JP2010278262 A JP 2010278262A JP 2012128572 A JP2012128572 A JP 2012128572A
Authority
JP
Japan
Prior art keywords
data
test
generated
constraint condition
property
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010278262A
Other languages
English (en)
Other versions
JP5561142B2 (ja
Inventor
Asako Katayama
朝子 片山
Tadahiro Uehara
忠弘 上原
Kazuki Munakata
一樹 宗像
Yoshiharu Maeda
芳晴 前田
Kenji Oki
憲二 大木
Shoichiro Fujiwara
翔一朗 藤原
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 JP2010278262A priority Critical patent/JP5561142B2/ja
Publication of JP2012128572A publication Critical patent/JP2012128572A/ja
Application granted granted Critical
Publication of JP5561142B2 publication Critical patent/JP5561142B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】既存データから効率的にテストデータを生成し、テスト精度を向上させることが可能なデータ生成装置等を提供する。
【解決手段】既存データからソフトウェアの動作を検証するためのテストデータを生成するデータ生成装置において、既存データを受け付ける第1受付手段と、該第1受付手段が受け付けた既存データに基づいて第1制約条件を予め定められた規則に従った文字列処理により生成する第1生成手段と、テスト仕様を受け付ける第2受付手段と、該第2受付手段が受け付けたテスト仕様に基づいて第2制約条件を予め定められた規則に従った文字列処理により生成する第2生成手段と、生成した第1及び第2制約条件に夫々重みを付ける重み付け手段と、該重み付け手段が重みを付けた第1及び第2制約条件を充足するテストデータを前記受付手段が受け付けた既存データから生成する生成手段とを備える。
【選択図】図3

Description

本発明は、テストデータを生成するデータ生成装置、データ生成方法及びプログラムに関する。
開発したソフトウェアに係るプログラムの動作を確認するため、単体テスト、結合テスト、総合テスト等の各種テストが行われる。これらのテストを実行するために、既存データからテストデータが生成される(例えば、特許文献1参照)。
特開2008−226056号公報
業務ロジックと整合する既存データをソフトウェアのテストに利用する場合、DB(Data Base)に対してSQL(Structured Query Language)を逐一発行し、既存データの中身を確認しながらテストデータを生成する手法が一般的である。しかし、この手法は作業効率が悪い。また、テストデータがDB未登録の画面入力データを含む場合、SQLではテストデータの抽出ができず、手作業の工程が発生するとともに、テスト精度の信頼性が低減する。
本願は斯かる事情に鑑みてなされたものである。その目的は、既存データから効率的にテストデータを生成し、テスト精度を向上させることが可能なデータ生成装置等を提供することにある。
本願による開示の一観点は、既存データからソフトウェアの動作を検証するためのテストデータを生成するデータ生成装置において、既存データを受け付ける第1受付手段と、該第1受付手段が受け付けた既存データに基づいて第1制約条件を予め定められた規則に従った文字列処理により生成する第1生成手段と、テスト仕様を受け付ける第2受付手段と、該第2受付手段が受け付けたテスト仕様に基づいて第2制約条件を予め定められた規則に従った文字列処理により生成する第2生成手段と、生成した第1及び第2制約条件に夫々重みを付ける重み付け手段と、該重み付け手段が重みを付けた第1及び第2制約条件を充足するテストデータを前記第1受付手段が受け付けた既存データから生成する生成手段とを備える。
本願による開示の一観点によれば、既存データから効率的にテストデータを生成し、テスト精度を向上させることが可能となる。
データ生成装置のハードウェア群の一例を示すブロック図である。 データ生成装置のハードウェア群の一例を示すブロック図である。 データ処理の流れを示すデータフロー図である。 DBスキーマ情報の一例を示す説明図である。 DBスキーマ情報から変換されたプロパティの一例を示す説明図である。 画面項目情報及び画面遷移情報の一例を示す説明図である。 画面項目情報及び画面遷移情報から変換されたプロパティの一例を示す説明図である。 テスト仕様情報の一例を示す説明図である。 第1住所テーブルのレコードの一例を示す説明図である。 第2住所テーブルのレコードの一例を示す説明図である。 日付入力ファイルの入力データの一例を示す説明図である。 データ形式変換後の既存データの一例を示す説明図である。 追加プロパティの一例を示す説明図である。 拡張プロパティの一例を示す説明図である。 プロパティを充足するテストデータの一例を示す説明図である。 既存データからテストデータを生成する処理の手順を示すフローチャートである。 新規テストデータの生成に係るデータ処理の流れを示すデータフロー図である。 新規テストデータを生成するためのプロパティの一例を示す説明図である。 新規テストデータを生成するための追加プロパティの一例を示す説明図である。 プロパティを充足する新規テストデータのイメージの一例を示す説明図である。 生成済みテストデータから新規テストデータを生成する処理の手順を示すフローチャートである。 生成済みテストデータから新規テストデータを生成する処理の手順を示すフローチャートである。
以下、実施の形態をその図面に基づいて説明する。本実施の形態に係るデータ生成装置は、例えばPC(パーソナルコンピュータ)、ノート型PC、ワークステーション等である。以下では、データ生成装置の例として、PCを挙げて説明する。また、本実施の形態に係るデータ生成装置は、ソフトウェアのテストを支援するテストデータを扱うが、論理回路のテストデータを生成することに利用されてもよい。
なお、本発明は、以下の実施の形態に限定されるものではない。
実施の形態1
図1は、データ生成装置1のハードウェア群の一例を示すブロック図である。データ生成装置1は、CPU(Central Processing Unit)11、RAM(Random Access Memory)12、ハードディスク13、ディスクドライブ14、通信部15、タイマ16、表示部17及び操作部18を含む。データ生成装置1の各構成部は、バス1bを介して接続されている。
CPU11は、データ生成装置1の各構成部を制御する。CPU11は、ハードディスク13に記録されたプログラム1Pを読み込み、当該プログラム1Pを実行する。
RAM12はCPU11による処理の過程で必要な作業変数、データ等を一時的に記録する。なお、RAM12は主記憶装置の一例であり、RAM12の代わりにフラッシュメモリ、メモリカード等が用いられてもよい。
ハードディスク13は、CPU11が実行するプログラム1Pを記録している。ハードディスク13は、データ生成装置1内部に取り付けられるものであっても、データ生成装置1外部に置かれるものであってもよい。なお、ハードディスク13は補助記憶装置の一例であり、大容量の情報の記録が可能なフラッシュメモリ、CD(Compact Disc)、DVD(Digital Versatile Disk)、BD(Blu-ray Disc、登録商標)等の光ディスク1aにより代替されてもよい。
ディスクドライブ14は、外部の記録媒体である光ディスク1aから情報を読み込み、光ディスク1aに情報を記録する。
通信部15は、モデム又はLAN(Local Area Network)カード等であり、インターネットNに接続されている。
タイマ16は、計時を信号としてCPU11に送信する。
表示部17は、例えば液晶ディスプレイ、有機EL(Electro-Luminescence)ディスプレイ等の画面を有し、CPU11からの指示に従って、プログラム1Pに係る様々な画面を表示する。
操作部18は、ユーザが各種の入力を行うキーボード、マウス、タッチパネル等の入力デバイスを含む。操作部18は、ユーザによる操作に基づいて入力信号を生成する。生成された入力信号は、バス1bを介してCPU11に送信される。
データ生成装置1のハードディスク13には、SAT(Satisfiability problem)ソルバ又はSMT(Satisfiability Modulo Theories)ソルバ2Pがインストールされている。
SATは、命題論理式又はブール式の充足可能性判定問題であり、命題論理式又はブール式が充足可能であるか否かを判定する問題である。SATソルバはSATを解くプラグラムのことである。SATは命題論理を扱うのに対し、SMTは述語論理を扱う。SMTソルバ2Pは、一階述語論理の充足可能性判定問題を解くプログラムのことである。
SAT問題が充足不能である場合、論理式の節に重みを付け、SATを最適化問題に拡張したものがMaxSATである。MaxSATに対応したSATソルバは、命題論理式を充足する節の重み和が最大になる命題変数への真偽値の割当てを求める。あるいは、MaxSATに対応したSATソルバは、命題論理式に違反となる節の重み和が最小になる命題変数への真偽値の割当てを求める。SMTソルバ2Pの中には、MaxSATに対応したSMTソルバ2Pもある。
SATソルバ及びSMTソルバ2Pとして、例えばminiSAT、zChaff、DPLL、Walksat、Yices、UCLID、CVC3、Z3等がある。実施の形態1では、MaxSATに対応したSMTソルバ2Pを使用する。そのようなSMTソルバ2Pは、例えばYicesである。
次に、データ生成装置1の動作について説明する。
図2は、データ生成装置のハードウェア群の一例を示すブロック図である。ハードディスク13は、既存データの一部である第1住所テーブル1T及び第2住所テーブル2Tを記録している。第1住所テーブル1T及び第2住所テーブル2Tは、どちらも住所と日付とを対応付けて記録するテーブルである。
また、ハードディスク13は、画面からの入力データを格納した日付入力ファイル1F及び業務アプリケーションを記録している。日付入力ファイル1Fも既存データである。業務アプリケーションは、例えばテストのために大量のテストデータを必要とする大規模業務アプリケーションである。CPU11は、ハードディスク13からRAM12に業務アプリケーションを読み込み、生成されたテストデータを用いて業務アプリケーションのテストを実行する。
なお、第1住所テーブル1T、第2住所テーブル2T、日付入力ファイル1F及び業務アプリケーションは、光ディスク1aに記録されていてもよいし、通信部15を介して接続された外部の情報処理装置又は記録装置に記録されていてもよい。
まず、実施の形態1における処理全体の概要について説明する。
図3は、データ処理の流れを示すデータフロー図である。図3は、データ処理の概略を示している。
データ生成装置1は、DBスキーマ情報、画面項目情報、画面遷移情報及びテスト仕様情報を受け付ける。これらの情報は、広義のテスト仕様であり、テスト対象のソフトウェアに係るDB、画面、アプリケーションの設計仕様、業務ロジック及びテストケースに関する情報を含む。広義のテスト仕様に含まれるテスト仕様情報は、狭義のテスト仕様である。テスト仕様情報は、アプリケーションの仕様書及び設計書を参照して作成されるテストケース(テスト条件)を含む。テストケースは、正常ケース及び異常ケースを含む。
なお、広義のテスト仕様は、DBスキーマ情報、画面項目情報、画面遷移情報及びテスト仕様情報の一部あるいはこれらの情報の組み合わせであってもよい。
データ生成装置1は、広義のテスト仕様をSMTソルバ2Pが読むことのできる言語で記載されたファイルに変換する処理を後述する規則に従って実行する。以下では、SATソルバ又はSMTソルバ2Pが読むことのできる言語で記載されたファイル又はファイルの内容をプロパティと呼ぶ。プロパティは、SATを解くための制約条件、すなわち命題論理式である。
データ生成装置1は、既存データを受け付け、受け付けた既存データをSMTソルバ2Pが読むことのできる言語で記載されたプロパティに変換する処理を実行する。以下では、既存データに基づくプロパティを追加プロパティと区別して呼ぶ。実施の形態1では、既存データ自体がSATを解くための制約条件に変換される。
なお、変換前の既存データのデータ形式はいかなるデータ形式でもよい。既存データは、DB、画面入力データ、テキストファイル、所定のアプリケーション専用のファイル、データストリーム、デジタル信号等のいずれでもよい。以下では、既存データの一例として、DBのテーブルレコード及び画面からの入力データを扱う。
データ生成装置1は、変換したプロパティ及び追加プロパティに対して夫々重み付けをする処理を実行する。重み付け処理が施されたプロパティは、MaxSATの処理が可能な形式のプロパティであり、以下では拡張プロパティと区別して呼ぶ。
データ生成装置1は、拡張プロパティに基づいてMaxSATを解き、与えられたプロパティを最も従属する割り当て(モデル)を出力する。すなわち、データ生成装置1は、最適なテストデータを生成し、出力する。このテストデータには、例えばDBのテーブルレコード及び画面からの入力データが含まれる。
なお、DBのテーブルレコード及び画面からの入力データは、別々に出力されてもよいし、まとめて出力されてもよい。
次に、実施の形態1における処理の詳細について説明する。
DBスキーマ情報は、テーブル定義及びテーブル間のER(Entity Relationship)を含む。
図4は、DBスキーマ情報の一例を示す説明図である。図4には、第1住所テーブル1Tのテーブル定義がxmlにより記載されている。例えば、第1住所テーブル1Tは2つの列を有し、第1列は名称が住所、データ型がString、indexが1であること等が記載されている。
図5は、DBスキーマ情報から変換されたプロパティの一例を示す説明図である。図5には、例えば第1住所テーブル1Tのテーブル定義の一部がプロパティとして記載されている。
第1住所テーブル1T及び第2住所テーブル2Tの構造について説明する。第1住所テーブル1Tは、住所列及び日付列を含む。第1住所テーブル1Tの住所列及び日付列のデータ型は共にString型である。第1住所テーブル1Tの住所列及び日付列は、複合プライマリキーである。
第2住所テーブル2Tは、住所列及び日付列を含む。第2住所テーブル2Tの住所列及び日付列のデータ型は共にString型である。第2住所テーブル2Tの住所列及び日付列は、複合プライマリキーである。
第1住所テーブルと第2住所テーブルとは1対多の関係で結合されている。
図6は、画面項目情報及び画面遷移情報の一例を示す説明図である。画面項目情報及び画面遷移情報は、テスト対象であるアプリケーションの設計仕様に含まれる情報である。画面項目情報及び画面遷移情報は、アプリケーションが従う業務ロジックを含む。図6の例では、初期画面の項目情報がxmlにより記載されている。例えば、オンライン日時の項目について、値を初期化し、入力可能な文字に半角英数字を設定している。
図7は、画面項目情報及び画面遷移情報から変換されたプロパティの一例を示す説明図である。図7には、例えばある画面の初期化について、レコード識別番号はint型、null値を許すか否かはブール型、オンライン日時はString型といった各項目のデータ型がプロパティとして記載されている。
図8は、テスト仕様情報の一例を示す説明図である。テスト仕様情報は、開発したソフトウェアに関する各種のテストケース、すなわちテスト条件を含む。図8の例では、アプリケーションで使用される初期表示画面について、得意先コード、商品コード、商品名等の初期設定仕様が例示されている。データ生成装置1は、正常ケースのテストデータも異常ケースのテストデータも生成することができる。その切り分けは、正常ケース又は異常ケースの条件をテスト仕様情報に記載することによって行われる。
テスト仕様情報から変換されたプロパティについては、図による例示を省略する。
実施の形態1で扱うテスト仕様情報には、画面から入力される日付の情報が含まれる。この画面名称は日付画面であり、日付画面において日付を入力する欄の項目名は日付である。
説明の便宜上、ここでは簡略化したテスト仕様情報が与えられるものとする。そのテスト仕様情報は、第1住所テーブル1Tの住所列の値と第2住所テーブル2Tの住所列の値とが等しく、第1住所テーブル1Tの日付列の値と第2住所テーブル2Tの日付列の値と日付画面の日付項目の入力データとが等しいことである。このテスト仕様情報を式で表した場合、次のようになる。
第1住所テーブル.住所==第2住所テーブル.住所
AND
第1住所テーブル.日付==第2住所テーブル.日付==日付画面.日付
上記の例のテスト仕様情報は、SQL文のwhere句に似ているが、SQL文では扱うことができない、画面からの入力データがDBのデータと結合されている点がSQL文と異なる。
CPU11は、広義のテスト仕様を後述の規則に従ってSMTソルバ2Pが読むことのできる言語表現に変換し、変換したプロパティをファイルとしてハードディスク13に記録する。このプロパティファイルのファイル名は、例えばプロパティ.ysである。
プロパティファイルは、3種類のファイルを含む。それらは、DBに関するプロパティファイル、画面を含むアプリケーションに関するプロパティファイル及びテスト条件に関するプロパティファイルである。
なお、プロパティファイルは、DBに関するプロパティファイルと画面を含むアプリケーションに関するプロパティファイルとテスト条件に関するプロパティファイルとに分けられてもよいし、1つのファイルにまとめられてもよい。
上記のテスト仕様情報を後述の規則に従って変換した場合、テスト条件に関するプロパティファイルの内容の一部は例えば次のようになる。
(and(=第1住所テーブル.住所 第2住所テーブル.住所)(=第1住所テーブル.日付 第2住所テーブル.日付))
(and(=第1住所テーブル.日付 日付画面.日付)(=第2住所テーブル.日付 日付画面.日付))
「and」は論理積を示す。
次に、既存データについて説明する。
データ生成装置1が受け付ける既存データは、第1住所テーブル1Tのレコード、第2住所テーブル2Tのレコード及び日付画面からの入力データを含む。
図9は、第1住所テーブル1Tのレコードの一例を示す説明図である。第1住所テーブル1Tの住所列は、例えば「神奈川県川崎市」、「東京都立川市」等の住所を格納している。第1住所テーブル1Tの日付列は、例えば「9/1」、「9/2」等の日付を格納している。第1住所テーブル1Tのレコード総件数は、5件である。
図10は、第2住所テーブル2Tのレコードの一例を示す説明図である。第2住所テーブル2Tの住所列は、例えば「千葉県千葉市」、「東京都港区」等の住所を格納している。第2住所テーブル2Tの日付列は、例えば「9/8」、「9/5」等の日付を格納している。第2住所テーブル2Tのレコード総件数は、5件である。
図11は、日付入力ファイル1Fの入力データの一例を示す説明図である。日付画面からの入力データは、例えば「8/1」、「9/3」等の日付である。データ生成装置1は、日付画面から入力された日付を、配列番号と対応付けて受け付け、日付入力ファイル1Fとしてハードディスク13に記録する。配列番号は、データの入力順に一致していてもよいし、一致していなくてもよい。日付入力ファイル1Fの入力データの総件数は、5件である。
図11に示した日付入力ファイル1Fの詳細は、例えば次のCSV形式を有するデータである。
レベル,項目名,配列番号,値
レベルは、日付画面から入力されるデータの階層を示す数字である。例えば、受注業務の場合、受注業者は1回の受注処理により複数の商品を受注することがある。受注処理に関する受注画面では、1件の受注レコードに対して1つの受注番号が発番され、複数の商品コードが付与される。従って、その受注画面における受注番号の項目のレベルは1であり、商品番号の項目のレベルは2である。商品コードに紐付けられた受注日、単価、受注数量、受注金額等の項目がある場合、これらの項目のレベルは3である。
日付画面の場合、画面内に日付を入力する欄が明細表の形式で構成されているものとする。かかる場合、明細表の項目のレベルは1であり、明細表内部に設けられた日付の項目のレベルは2となる。
画面からの入力データを記録するファイル名は、「画面名.csv」とし、例えば日付画面.csvである。
以下に、日付画面.csvの内容を図11に合わせて例示する。
レベル,項目名,配列番号,値
1,明細表,,
2,日付,0,8/1
2,日付,1,9/3
2,日付,2,8/21
2,日付,3,9/5
2,日付,4,7/10
データ生成装置1による既存データの読み込み処理について説明する。
CPU11は、既存データをSMTソルバ2Pが読むことのできる言語に変換するため、この言語変換処理の前準備として既存データを所定のデータ形式に変換する。
CPU11は、第1住所テーブル1T及び第2住所テーブル2Tを1テーブルずつ読み込み、各テーブルのレコードを例えばCSV形式のファイルに変換してハードディスク13に記録する。ここで、ハードディスク13に記録するCSVファイルのファイル名は、「テーブル名.csv」とし、例えば第1住所テーブル.csv、第2住所テーブル.csvである。
CPU11は、テーブルに関するCSVファイルの出力とは別に、テーブル列のデータ型等の情報を、例えば次のように抽出し、ハードディスク13に出力する。ファイル名は、例えばテーブル列データ型.txtである。
第1住所テーブル
住所,String
日付,String
第2住所テーブル
住所,String
日付,String
CPU11は、画面に関するCSVファイルの出力とは別に、画面からの入力データのデータ型等の情報を、例えば次のように抽出し、ハードディスク13に出力する。ファイル名は、例えば画面項目データ型.txtである。
日付画面
日付,String
CPU11は、第1住所テーブル.csv、第2住所テーブル.csvをRAM12に読み込む。CPU11は、RAM12に読み込んだCSVファイルの1レコードを次のデータ形式に変換する。
テーブル名.列名[i]==値
iは配列番号又はレコードの行番号である。すなわち、テーブル名と列名とをテーブル名が左になる順にピリオドで結合する。結合したテーブル名及び列名の右に角括弧書きのiを結合する。そして、さらに角括弧書きのiに対して右から==と値とを結合する。
1レコードに複数の列が存在する場合、スペース、and、スペースで各列のデータを連結する。例えば、2つの列を有するテーブルの場合、変換後のデータ形式は次の通りである。
テーブル名.列名1[i]==値 and テーブル名.列名2[i]==値
CPU11は、テーブル名.csvに記録された1行のレコードを先頭から改行文字まで読み込み、上述のデータ形式の変換処理を実行する。CPU11は、iをインクリメントして、次の行のレコードについて同様にデータ形式を変換する。CPU11は、EOF(End Of File)に達した場合、処理を終了する。
CPU11は、データ形式変換後のテーブルレコードをハードディスク13に記録する。その際のファイル名は、「テーブル名.txt」とし、例えば第1住所テーブル.txt、第2住所テーブル.txtである。
CPU11は、日付画面.csvをRAM12に読み込む。CPU11は、RAM12に読み込んだ日付画面.csvのレコードを次のデータ形式に変換し、テキストファイルとしてハードディスク13に記録する。
画面名.明細表名.項目名[j]==値
jは配列番号又は入力データの行番号である。すなわち、画面名と明細表名と項目名とをこの順で左から右へピリオドで結合する。結合した画面名、明細表名及び項目名の右に角括弧書きのjを結合する。そして、さらに角括弧書きのjに対して右から==と値とを結合する。
明細表に複数の項目が存在する場合、スペース、and、スペースで各項目のデータを連結する。例えば、変換後のデータ形式は次の通りである。
画面名.明細表名.項目名1[j]==値 and 画面名.明細表名.項目名2[j]==値
CPU11は、日付画面.csvを先頭から改行文字まで読み込んだ場合、jをインクリメントして、次の行の入力データについて同様にデータ形式を変換する。CPU11は、EOF(End Of File)に達した場合、処理を終了する。
CPU11は、データ形式変換後の画面入力データをハードディスク13に記録する。その際のファイル名は、「画面名.txt」とし、例えば日付画面.txtである。
図12は、データ形式変換後の既存データの一例を示す説明図である。図12では、String型の値は、その値が文字列であることを明示するため、ダブルクォーテーションで囲まれている。図12では、第1住所テーブル.txt、第2住所テーブル.txt及び日付画面.txtの内容をまとめて示している。
なお、DB及び画面に係るデータ形式変換後の既存データについて、1つのファイルにまとめてCPU11がハードディスク13に記録してもよいことは勿論である。
CPU11は、テーブル列データ型.txt、画面項目データ型.txtを読み込み、既存データに関するdefine文を作成する。例えば、define文は以下のようである。
(define テーブル名 ::(−>列のデータ型 列のデータ型))
(define 列名 ::データ型)
上記を第1住所テーブルに当てはめた場合、define文は、
(define 第1住所テーブル ::(−>String String))
(define 住所 ::String)
(define 日付 ::String)
となる。CPU11は、第2住所テーブル及び日付画面のdefine文も同様にして作成する。
CPU11は、既存データである第1住所テーブル.txt、第2住所テーブル.txt及び日付画面.txtをRAM12に読み込み、読み込んだ既存データをSMTソルバ2Pが読むことのできる言語表現に変換する。
CPU11は、既存データのデータ形式が以下であるとした場合、
A==B and C==D and …
上記の既存データをSMTソルバ2Pが読むことのできる次の表現に変換する。
(and(=A B)(=C D)…)
すなわち、既存データは、スペース、and、スペースの順に並んだ文字列で結合されたデータ単位であるA==B、C==D等から構成されている。これらのデータ単位は、==で結合された2つの文字列を有している。例えば、データ単位がA==Bである場合、データ単位はAとBとの文字列を有している。そこで、CPU11は、1つのデータ単位であるA==Bから、AとBとを抜き出し、左から右へ向かって左丸括弧、イコール、A、スペース、B、右丸括弧の順に各文字列を結合した文字列を作成する。この文字列処理は1つのデータ単位の変換に該当する。CPU11は、他のデータ単位についても、同様の文字列を作成する。CPU11は、データ単位ごとに変換した文字列を変換前の既存データのデータ単位が並んでいた順序と対応する順序で右端に次々と結合する。CPU11は、結合したデータ単位群の左端にandを結合し、さらに左端と右端とに夫々左丸括弧と右丸括弧とを結合し、変換処理を終了する。このように、SMTソルバ2Pが読むことのできる表現は、既存データに含まれるA、B、C、D等の文字列と、左丸括弧、and、イコール、右丸括弧の文字列とを用いて文字列処理される上述の規則がある。
なお、当該規則は、SMTソルバ2P又はSATソルバの種類によって異なる。
上述の規則に則り、第1住所テーブル.txtの既存データを当該規則に当てはめた場合、
第1住所テーブル.住所[0]==“神奈川県川崎市” and 第1住所テーブル.日付[0]==“9/1”は、
(and(=第1住所テーブル.住所[0] “神奈川県川崎市”)(=第1住所テーブル.日付[0] “9/1”))
となる。
図13は、追加プロパティの一例を示す説明図である。最初の5行は、第1住所テーブル1Tに基づく制約条件に該当する。次の5行は、第2住所テーブル2Tに基づく制約条件に該当する。最後の5行は、日付画面から入力された入力データに基づく制約条件に該当する。
CPU11は、既存データから述語論理式に変換したプロパティを追加プロパティのファイルとしてハードディスク13に記録する。そのファイル名は、例えば追加プロパティ.ysである。
CPU11は、ここまでの段階で生成したプロパティ及び追加プロパティに夫々重みを付けた拡張プロパティのファイルを生成する。すなわち、CPU11は、プロパティ.ys及び追加プロパティ.ysをハードディスク13からRAM12に読み込み、次の形式に従って夫々のファイルのプロパティに重み付けをした拡張プロパティのファイルを生成する。
(assert+プロパティの内容 重みの値)
assertは、制約式を追加するコマンドであり、プロパティの内容及び重みの値は引数の述語である。ここで、プロパティ.ysのプロパティの重みを追加プロパティ.ysの追加プロパティの重みよりも重く設定する。例えば、プロパティ.ysのプロパティの重みを100に、追加プロパティ.ysの追加プロパティの重みを1に設定する。すなわち、DB制約、アプリケーション制約及びテスト条件は、必ず充足すべき制約条件としてMaxSATを解くSMTソルバ2Pに設定するため、既存データに基づく制約条件よりも重い重みが付けられる。
CPU11は、プロパティ及び追加プロパティに夫々重み付けをした制約条件を拡張プロパティとしてハードディスク13に記録する。この拡張プロパティのファイル名は、例えば拡張プロパティ.ysである。
図14は、拡張プロパティの一例を示す説明図である。各行の最後のidは、識別符号である。最初の2行は、プロパティ.ysに基づく制約条件に該当し、100の重みが付けられている。最初の2行以外の行は、追加プロパティ.ysに基づく制約条件に該当し、1の重みが付けられている。最後のmax−satは、MaxSATを実行するコマンドである。すなわち、max−satは充足可能性を最も充足する割り当てを抽出するコマンドである。
CPU11は、拡張プロパティ.ysをRAM12に読み込み、拡張プロパティに基づく制約条件の充足可能性を検査する。CPU11は、制約条件の充足可能性を最も従属する割り当て(モデル)を拡張プロパティから抽出し、表示部17に表示する。あるいは、CPU11は、制約条件を充足しない述語論理式を拡張プロパティから抽出し、表示部17に表示してもよい。
制約条件の充足可能性を最も従属する割り当て(モデル)は、拡張プロパティに基づいて生成されたテストデータであるが、このテストデータは1の重みが付けられた既存データから生成又は抽出されたデータである。
なお、CPU11は検査結果をファイルとしてハードディスク13に出力してもよい。
CPU11は、検査結果として例えば次の識別符号で表された内容を表示部17に表示する。
Unsatisfied assertion ids:3,4,7,8,10,11,13,15,17
従って、満たされる組み合わせは1,2,5,6,9,12,14,16の8つである。
図15は、プロパティを充足するテストデータの一例を示す説明図である。図15Aは、第1住所テーブル1Tから抽出されたテストデータを示す。図15Bは、第2住所テーブル2Tから抽出されたテストデータを示す。図15Cは、日付入力ファイル1Fから抽出されたテストデータを示す。図15A、図15B及び図15Cの各1行のデータセットが1件のテストデータを示す。すなわち、図15は、2件のテストデータを示している。
図16は、既存データからテストデータを生成する処理の手順を示すフローチャートである。
CPU11は、DBスキーマ情報、画面項目情報、画面遷移情報及びテスト仕様情報をRAM12に読み込む(ステップS101)。CPU11は、RAM12に読み込んだテスト仕様情報等をプロパティに変換し、変換したプロパティをハードディスク13に記録する(ステップS102)。CPU11は、既存データをRAM12に読み込む(ステップS103)。CPU11は、RAM12に読み込んだ既存データを追加プロパティに変換し、変換した追加プロパティをハードディスク13に記録する(ステップS104)。
CPU11は、ハードディスク13からプロパティをRAM12に読み込み、RAM12に読み込んだプロパティに100の重みを付ける(ステップS105)。CPU11はハードディスク13から追加プロパティをRAM12に読み込み、RAM12に読み込んだ追加プロパティに1の重みを付ける(ステップS106)。CPU11は、重み付けをしたプロパティ及び追加プロパティを拡張プロパティとしてハードディスク13に記録する(ステップS107)。
CPU11は、ハードディスク13から拡張プロパティをRAM12に読み込み、RAM12に読み込んだ拡張プロパティをSMTソルバ2Pに入力する(ステップS108)。CPU11は、SMTソルバ2Pからテストデータを受け付け、RAM12に記録する(ステップS109)。CPU11は、SMTソルバ2Pから受け付け、RAM12に記録したテストデータをハードディスク13に記録し(ステップS110)、処理を終了する。
図16における各ステップの順序は、上述に限らない。例えば、ステップS101及びステップS102は、ステップS103及びステップS104と入れ替えてもよい。また、ステップS105及びステップS106は順序が逆でもよい。
ステップS108及びステップS109では、SMTソルバ2Pを外部の情報処理装置のように記載しているが、実際にはCPU11はSMTソルバ2PをRAM12にロードし、自らがMaxSATを実行している。ただし、CPU11は通信部15を介して外部の情報処理装置にMaxSATを実行させ、その結果であるテストデータを外部の情報処理装置から受け付けてもよい。すなわち、テストデータはデータ生成装置1単体によって生成されてもよく、データ生成装置1及び外部の情報処理装置を含むシステムによって生成されてもよい。
データ生成装置1によれば、既存データからテストデータを生成することができる。ここでの既存データは、既存システムと連携し、かつ本番環境にあるDBデータ及び画面からの入力データを含む。データ生成装置1は、既存データをSMTソルバ2Pが解く制約条件に変換することにより、効率的にテストデータを生成し、テスト精度を向上させることができる。
データ生成装置1によれば、ER関連定義を含むDB制約、アプリケーションの仕様及びテスト条件の重みを、既存データに基づく追加プロパティの重みよりも重く設定した拡張プロパティを生成することができる。これにより、データ生成装置1は、重み付けMaxSATを実行することができ、必ず充足すべきDB制約、アプリケーション仕様及びテスト条件の制約を備えたテストデータを既存データから生成することができる。
上述では、CPU11は、第1住所テーブル.txt、第2住所テーブル.txt及び日付画面.txtを生成及び記録した。しかし、これらのテキストファイルは作業ファイルであり、必須ではない。CPU11は、第1住所テーブル.csv、第2住所テーブル.csv及び日付画面.csvをハードディスク13からRAM12に読み込み、メモリ空間のみを使用して追加プロパティを生成してもよい。
同様に上述では、プロパティ.ys、追加プロパティ.ys及び拡張プロパティ.ysを作業ファイルあるいは中間ファイルとして使用している。しかし、これらの作業ファイル等も必須ではない。CPU11は、第1住所テーブル.csv、第2住所テーブル.csv、テーブル列データ型.txt、日付画面.csv及び画面項目データ型.txtをハードディスク13からRAM12に読み込む。そして、CPU11は、RAM12に読み込んだこれらのデータからメモリ空間のみを使用してテストデータを生成してもよい。
上述では、データ生成装置1は、MaxSATを解くためにSMTソルバ2Pを使用した。しかし、MaxSATを解くためにSATソルバが使用されてもよいことは勿論である。なお、上述では、assert、max−sat等のコマンドを使用したが、これらのコマンドはSAT又はSMTのツールにより異なる。上述のコマンドは一例である。
上述のMaxSATでは、命題論理式を充足する節の重み和が最大になる命題変数への真偽値の割当て、又は命題論理式に違反となる節の重み和が最小になる命題変数への真偽値の割当てが求められる。しかし、命題論理式を充足する節の重み積が最大になる命題変数への真偽値の割当て、又は命題論理式に違反となる節の重み積が最小になる命題変数への真偽値の割当てが求められてもよい。データ生成装置1は、上記に従い、拡張プロパティに記載されたプロパティの重み積に基づいて、テストデータを生成してもよい。
上述では、データ生成装置1は、拡張プロパティに基づいてMaxSATを解き、テストデータを生成した。しかし、データ生成装置1は、プロパティ及び追加プロパティに基づいてSATを解き、テストデータを生成してもよい。すなわち、データ生成装置1は、プロパティ及び追加プロパティに重み付けをせずに、SATを解き、テストデータを生成してもよい。あるいは、データ生成装置1は、プロパティ及び追加プロパティにすべて1の重みを付けた拡張プロパティに基づいて、いわゆる重みなしMaxSAT(unweighted MaxSAT)を実行してもよい。
実施の形態2
実施の形態2は、新規テストデータの追加生成に関する。
図17は、新規テストデータの生成に係るデータ処理の流れを示すデータフロー図である。図17は、データ処理の概略を示している。
データ生成装置1は、新たな追加仕様情報を含むDBスキーマ情報、画面項目情報、画面遷移情報及びテスト仕様情報を受け付ける。追加仕様情報は、新規テストデータを追加生成するために、DBスキーマ情報、画面項目情報、画面遷移情報及びテスト仕様情報に付け加えられる広義のテスト仕様である。追加仕様情報には、DB制約、アプリケーション制約若しくはテスト条件のいずれか又は全てに関与する新たな情報が含まれていてもよい。また、追加仕様情報は、「生成済みテストデータが2件である場合、さらに生成される新規テストデータの件数は1件である」といった真偽を判定することができる命題であってもよい。
追加仕様情報のデータは、XML、CSV、TXT、DB、表計算ソフトのファイル等どのような形式で与えられてもよい。
あるいは、既にDBスキーマ情報、画面項目情報、画面遷移情報及びテスト仕様情報を受け付けて生成したプロパティ.ysがハードディスク13に記録されている場合、データ生成装置1は、追加仕様情報のみを受け付けてもよい。かかる場合、データ生成装置1は、追加仕様情報を前述の規則に従ってプロパティに変換し、変換したプロパティを生成済みのプロパティ.ysに追加し、プロパティ.ysを更新する。
データ生成装置1は、新規テストデータを追加生成する場合、生成済みのテストデータに対して既存データ変換処理を実行する。データ生成装置1は、新たな追加プロパティを例えば追加プロパティ.ysとしてハードディスク13に記録する。
データ生成装置1は、新たなプロパティ及び新たな追加プロパティに対して重み付け処理を実行し、新たな拡張プロパティを生成する。データ生成装置1は、新たに生成した拡張プロパティに基づいて、重み付き制約条件を最も充足する新規テストデータを生成し、表示部17、ハードディスク13等に出力する。
図18は、新規テストデータを生成するためのプロパティの一例を示す説明図である。図18の1行及び2行目は、実施の形態1におけるプロパティ.ysと同じである。破線で囲まれた図18の3行及び4行目は、追加仕様情報に基づくプロパティ部分である。図18の追加仕様情報は、例えばDBデータ構造を表すER関連情報である。
図19は、新規テストデータを生成するための追加プロパティの一例を示す説明図である。図19の例は、生成した図15のテストデータに基づいてSMTソルバ2Pのために変換された追加プロパティを示している。図19では、「東京都港区」と「埼玉県川口市」との2つの住所について、夫々第1住所テーブル1T及び第2住所テーブル2Tのデータ、並びに日付入力ファイル1Fの入力データである「9/5」と「9/3」とが示されている。
CPU11は、ここまでの段階で生成した図18のプロパティ及び図19の追加プロパティに重みを付けた拡張プロパティを生成する。図18のプロパティ及び図19の追加プロパティに付ける重みは、例えば夫々100、1である。CPU11は、新規テストデータのために生成した拡張プロパティ.ysをハードディスク13に記録する。
CPU11は、拡張プロパティ.ysをハードディスク13からRAM12に読み込み、拡張プロパティに基づく制約条件の充足可能性を検査する。CPU11は、制約条件の充足可能性を最も従属する割り当て(モデル)を抽出し、表示部17、ハードディスク13等に出力する。ここでの制約条件の充足可能性を最も従属する割り当て(モデル)は、新規テストデータである。
図20は、プロパティを充足する新規テストデータのイメージの一例を示す説明図である。図20Aは、第1住所テーブル1Tのレコードに対応する新規テストデータを示す。図20Bは、第2住所テーブル2Tのレコードに対応する新規テストデータを示す。図20Cは、日付入力ファイル1Fの入力データに対応する新規テストデータを示す。図20A、図20B及び図20Cの各1行のデータセットが1件のテストデータを示す。図20A、図20B及び図20Cの夫々について、最初の2行までは生成済みのテストデータを、太線で囲んだ3行目は追加された新規テストデータを示している。
SMTソルバ2Pが内部的に扱う情報は数字列であり、漢字等は扱われる情報の対象ではない。数字列からなるテストデータに基づいて追加プロパティを再生成した場合、当初のテスト仕様及び追加仕様情報に基づく制約条件を充足する新規テストデータが生成される。図20における「埼玉県大宮市」に係る新規テストデータは、分かりやすくするため、あくまで新規テストデータが追加されるイメージを表現している。
図21及び図22は、生成済みテストデータから新規テストデータを生成する処理の手順を示すフローチャートである。ステップS201からステップS209までの処理は、夫々図16で示したステップS101からステップS109までの処理と同一であるので、これらの処理に関する説明は省略する。
CPU11は、新規テストデータを追加生成するか否か判定する(ステップS210)。なお、CPU11が新規テストデータを追加生成するか否か判定する判定材料は、例えばユーザが操作部18から入力した指令に基づくものとする。
CPU11は、新規テストデータを追加生成すると判定した場合、(ステップS210:YES)、追加仕様情報をRAM12に読み込む(ステップS211)。CPU11は、RAM12に読み込んだ追加仕様情報をプロパティに変換し、変換したプロパティをプロパティファイルに追加し、プロパティファイルを更新する(ステップS212)。
CPU11は、生成済みテストデータをRAM12から読み込む(ステップS213)。CPU11は、RAM12から読み込んだ生成済みテストデータを追加プロパティに変換し、変換した追加プロパティをハードディスク13に記録する(ステップS214)。
CPU11は、ハードディスク13からプロパティをRAM12に読み込み、RAM12に読み込んだプロパティに100の重みを付ける(ステップS215)。CPU11はハードディスク13から追加プロパティをRAM12に読み込み、RAM12に読み込んだ追加プロパティに1の重みを付ける(ステップS216)。CPU11は、重み付けをしたプロパティ及び追加プロパティを拡張プロパティとしてハードディスク13に記録する(ステップS217)。
CPU11は、ハードディスク13から拡張プロパティをRAM12に読み込み、RAM12に読み込んだ拡張プロパティをSMTソルバ2Pに入力する(ステップS218)。CPU11は、SMTソルバ2Pからテストデータを受け付け、受け付けたテストデータをRAM12に記録して(ステップS219)、ステップS210に処理を戻す。
CPU11は、新規テストデータを追加生成しないと判定した場合、(ステップS210:NO)、SMTソルバ2Pから受け付け、RAM12に記録したテストデータをハードディスク13に記録し(ステップS220)、処理を終了する。
実施の形態2において、追加仕様情報がなく、実施の形態1と同様のプロパティ.ysに基づいてMaxSATが実行された場合、生成済みのテストデータが再生成されるだけで、新規テストデータは生成されない。しかし、追加仕様情報が追加された場合、新たなプロパティがプロパティ.ysに追加される。これにより、データ生成装置1は生成済みのテストデータから必ず満足しなければならない新規のプロパティを充足する新規テストデータを追加生成することができる。
データ生成装置1を動作させるためのプログラム1P、SATソルバ及びSMTソルバ2Pは、ディスクドライブ14を介して光ディスク1aから読み込まれてもよい。あるいは、プログラム1P、SATソルバ及びSMTソルバ2Pは、通信部15を介して外部の情報処理装置又は記録装置から読み込まれてもよい。さらに、プログラム1P、SATソルバ及びSMTソルバ2Pを記録したフラッシュメモリ等の半導体メモリ1cが、データ生成装置1内に実装されていてもよい。
本実施の形態2は以上の如きであり、その他は実施の形態1と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
以上の実施の形態1又は2を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
既存データからソフトウェアの動作を検証するためのテストデータを生成するデータ生成装置において、
既存データを受け付ける第1受付手段と、
該第1受付手段が受け付けた既存データに基づいて第1制約条件を予め定められた規則に従った文字列処理により生成する第1生成手段と、
テスト仕様を受け付ける第2受付手段と、
該第2受付手段が受け付けたテスト仕様に基づいて第2制約条件を予め定められた規則に従った文字列処理により生成する第2生成手段と、
生成した第1及び第2制約条件に夫々重みを付ける重み付け手段と、
該重み付け手段が重みを付けた第1及び第2制約条件を充足するテストデータを前記第1受付手段が受け付けた既存データから生成する生成手段と
を備えるデータ生成装置。
(付記2)
前記第1及び第2制約条件は論理式から構成され、
前記重み付け手段は、第2制約条件の論理式を第1制約条件の論理式より重く重み付けし、
前記生成手段は、前記第1及び第2制約条件の論理式を充足し、かつ前記重み付け手段が該第1及び第2制約条件の論理式に付けた重みの和又は積が最大になるテストデータを前第1記受付手段が受け付けた既存データから生成する
付記1に記載のデータ生成装置。
(付記3)
前記第1生成手段は、前記生成手段が生成したテストデータに基づいて第3制約条件を予め定められた規則に従った文字列処理により生成する手段を有し、
追加テスト仕様を受け付ける第3受付手段を備え、
前記第2生成手段は、前記第3受付手段が受け付けた追加テスト仕様に基づく制約条件が前記第2制約条件に追加された第4制約条件を予め定められた規則に従った文字列処理により生成する手段を有し、
前記重み付け手段は、生成した第3及び第4制約条件に夫々重み付けし、
前記生成手段は、前記重み付け手段が重み付けた第3及び第4制約条件を充足するテストデータを、生成したテストデータから再帰的に生成する
付記1又は付記2に記載のデータ生成装置。
(付記4)
前記第3及び第4制約条件は論理式から構成され、
前記重み付け手段は、第4制約条件の論理式を第3制約条件の論理式より重く重み付けし、
前記生成手段は、前記第3及び第4制約条件の論理式を充足し、かつ前記重み付け手段が該第3及び第4制約条件の論理式に付けた重みの和又は積が最大になるテストデータを、生成したテストデータから再帰的に生成する
付記3に記載のデータ生成装置。
(付記5)
前記テスト仕様又は追加テスト仕様は、前記ソフトウェア、該ソフトウェアが使用するデータベース又は該ソフトウェアの検証に係るテストケースに関する情報を含む
付記3又は付記4に記載のデータ生成装置。
(付記6)
制御部を有するデータ生成装置が既存データからソフトウェアの動作を検証するためのテストデータを生成するデータ生成方法において、
前記制御部が、
既存データを受け付け、
受け付けた既存データに基づいて第1制約条件を予め定められた規則に従った文字列処理により生成し、
テスト仕様を受け付け、
受け付けたテスト仕様に基づいて第2制約条件を予め定められた規則に従った文字列処理により生成し、
生成した第1及び第2制約条件に夫々重みを付け、
重みを付けた第1及び第2制約条件を充足するテストデータを前記既存データから生成する
データ生成方法。
(付記7)
前記第1及び第2制約条件は論理式から構成され、
前記第2制約条件の論理式を前記第1制約条件の論理式より重く重み付けし、
前記第1及び第2制約条件の論理式を充足し、かつ該第1及び第2制約条件の論理式に付けた重みの和又は積が最大になるテストデータを前記既存データから生成する
付記6に記載のデータ生成方法。
(付記8)
生成したテストデータに基づいて第3制約条件を予め定められた規則に従った文字列処理により生成し、
追加テスト仕様を受け付け、
受け付けた追加テスト仕様に基づく制約条件が前記第2制約条件に追加された第4制約条件を予め定められた規則に従った文字列処理により生成し、
生成した第3及び第4制約条件に夫々重みを付け、
重みを付けた第3及び第4制約条件を充足するテストデータを、生成したテストデータから再帰的に生成する
付記6又は付記7に記載のデータ生成方法。
(付記9)
前記第3及び第4制約条件は論理式から構成され、
前記第4制約条件の論理式を前記第3制約条件の論理式より重く重み付けし、
前記第3及び第4制約条件の論理式を充足し、かつ該第3及び第4制約条件の論理式に付けた重みの和又は積が最大になるテストデータを、生成したテストデータから再帰的に生成する
付記8に記載のデータ生成方法。
(付記10)
前記テスト仕様又は追加テスト仕様は、前記ソフトウェア、該ソフトウェアが使用するデータベース又は該ソフトウェアの検証に係るテストケースに関する情報を含む
付記8又は付記9に記載のデータ生成方法。
(付記11)
既存データからソフトウェアの動作を検証するためのテストデータを生成する処理をコンピュータに実行させるプログラムにおいて、
与えられた既存データに基づいて第1制約条件を予め定められた規則に従った文字列処理により生成し、
与えられたテスト仕様に基づいて第2制約条件を予め定められた規則に従った文字列処理により生成し、
生成した第1及び第2制約条件に夫々重みを付け、
重みを付けた第1及び第2制約条件を充足するテストデータを前記既存データから生成する
処理をコンピュータに実行させるプログラム。
(付記12)
前記第1及び第2制約条件は論理式から構成され、
前記重みを付ける処理は、前記第2制約条件の論理式を前記第1制約条件の論理式より重く重み付けし、
前記テストデータを生成する処理は、前記第1及び第2制約条件の論理式を充足し、かつ該第1及び第2制約条件の論理式に付けた重みの和又は積が最大になるテストデータを前記既存データから生成する
付記11に記載のプログラム。
(付記13)
前記第1制約条件を生成する処理は、前記テストデータを生成する処理が生成したテストデータに基づいて第3制約条件を予め定められた規則に従った文字列処理により生成し、
前記第2制約条件を生成する処理は、与えられた追加テスト仕様に基づく制約条件が第2制約条件に追加された第4制約条件を予め定められた規則に従った文字列処理により生成し、
前記重みを付ける処理は、生成した第3及び第4制約条件に夫々重みを付け、
前記テストデータを生成する処理は、前記重みを付ける処理が重みを付けた第3及び第4制約条件を充足するテストデータを、生成したテストデータから再帰的に生成する
付記11又は付記12に記載のプログラム。
(付記14)
前記第3及び第4制約条件は論理式から構成され、
前記重みを付ける処理は、前記第4制約条件の論理式を前記第3制約条件の論理式より重く重み付けし、
前記テストデータを生成する処理は、前記第3及び第4制約条件の論理式を充足し、かつ該第3及び第4制約条件に付けた重みの和又は積が最大になるテストデータを、生成したテストデータから再帰的に生成する
付記13に記載のプログラム。
(付記15)
前記テスト仕様又は追加テスト仕様は、前記ソフトウェア、該ソフトウェアが使用するデータベース又は該ソフトウェアの検証に係るテストケースに関する情報を含む
付記13又は付記14に記載のプログラム。
1 データ生成装置
11 CPU
12 RAM
13 ハードディスク
17 表示部
18 操作部
1P プログラム
2P SMTソルバ
1T 第1住所テーブル
2T 第2住所テーブル
1F 日付入力ファイル

Claims (7)

  1. 既存データからソフトウェアの動作を検証するためのテストデータを生成するデータ生成装置において、
    既存データを受け付ける第1受付手段と、
    該第1受付手段が受け付けた既存データに基づいて第1制約条件を予め定められた規則に従った文字列処理により生成する第1生成手段と、
    テスト仕様を受け付ける第2受付手段と、
    該第2受付手段が受け付けたテスト仕様に基づいて第2制約条件を予め定められた規則に従った文字列処理により生成する第2生成手段と、
    生成した第1及び第2制約条件に夫々重みを付ける重み付け手段と、
    該重み付け手段が重みを付けた第1及び第2制約条件を充足するテストデータを前記第1受付手段が受け付けた既存データから生成する生成手段と
    を備えるデータ生成装置。
  2. 前記第1及び第2制約条件は論理式から構成され、
    前記重み付け手段は、第2制約条件の論理式を第1制約条件の論理式より重く重み付けし、
    前記生成手段は、前記第1及び第2制約条件の論理式を充足し、かつ前記重み付け手段が該第1及び第2制約条件の論理式に付けた重みの和又は積が最大になるテストデータを前記第1受付手段が受け付けた既存データから生成する
    請求項1に記載のデータ生成装置。
  3. 前記第1生成手段は、前記生成手段が生成したテストデータに基づいて第3制約条件を予め定められた規則に従った文字列処理により生成する手段を有し、
    追加テスト仕様を受け付ける第3受付手段を備え、
    前記第2生成手段は、前記第3受付手段が受け付けた追加テスト仕様に基づく制約条件が前記第2制約条件に追加された第4制約条件を予め定められた規則に従った文字列処理により生成する手段を有し、
    前記重み付け手段は、生成した第3及び第4制約条件に夫々重み付けし、
    前記生成手段は、前記重み付け手段が重み付けた第3及び第4制約条件を充足するテストデータを、生成したテストデータから再帰的に生成する
    請求項1又は請求項2に記載のデータ生成装置。
  4. 前記第3及び第4制約条件は論理式から構成され、
    前記重み付け手段は、第4制約条件の論理式を第3制約条件の論理式より重く重み付けし、
    前記生成手段は、前記第3及び第4制約条件の論理式を充足し、かつ前記重み付け手段が該第3及び第4制約条件の論理式に付けた重みの和又は積が最大になるテストデータを、生成したテストデータから再帰的に生成する
    請求項3に記載のデータ生成装置。
  5. 前記テスト仕様又は追加テスト仕様は、前記ソフトウェア、該ソフトウェアが使用するデータベース又は該ソフトウェアの検証に係るテストケースに関する情報を含む
    請求項3又は請求項4に記載のデータ生成装置。
  6. 制御部を有するデータ生成装置が既存データからソフトウェアの動作を検証するためのテストデータを生成するデータ生成方法において、
    前記制御部が、
    既存データを受け付け、
    受け付けた既存データに基づいて第1制約条件を予め定められた規則に従った文字列処理により生成し、
    テスト仕様を受け付け、
    受け付けたテスト仕様に基づいて第2制約条件を予め定められた規則に従った文字列処理により生成し、
    生成した第1及び第2制約条件に夫々重みを付け、
    重みを付けた第1及び第2制約条件を充足するテストデータを前記既存データから生成する
    データ生成方法。
  7. 既存データからソフトウェアの動作を検証するためのテストデータを生成する処理をコンピュータに実行させるプログラムにおいて、
    与えられた既存データに基づいて第1制約条件を予め定められた規則に従った文字列処理により生成し、
    与えられたテスト仕様に基づいて第2制約条件を予め定められた規則に従った文字列処理により生成し、
    生成した第1及び第2制約条件に夫々重みを付け、
    重みを付けた第1及び第2制約条件を充足するテストデータを前記既存データから生成する
    処理をコンピュータに実行させるプログラム。
JP2010278262A 2010-12-14 2010-12-14 データ生成装置、データ生成方法及びプログラム Expired - Fee Related JP5561142B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010278262A JP5561142B2 (ja) 2010-12-14 2010-12-14 データ生成装置、データ生成方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010278262A JP5561142B2 (ja) 2010-12-14 2010-12-14 データ生成装置、データ生成方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2012128572A true JP2012128572A (ja) 2012-07-05
JP5561142B2 JP5561142B2 (ja) 2014-07-30

Family

ID=46645538

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010278262A Expired - Fee Related JP5561142B2 (ja) 2010-12-14 2010-12-14 データ生成装置、データ生成方法及びプログラム

Country Status (1)

Country Link
JP (1) JP5561142B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017037494A (ja) * 2015-08-10 2017-02-16 富士通株式会社 テストケース生成方法、テストケース生成プログラムおよびテストケース生成装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010218492A (ja) * 2009-03-19 2010-09-30 Toyota Central R&D Labs Inc 障害診断システム、障害診断装置および障害診断方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010218492A (ja) * 2009-03-19 2010-09-30 Toyota Central R&D Labs Inc 障害診断システム、障害診断装置および障害診断方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CSNJ201010047138; 藤原翔一朗 外6名: 'SMT Solverを利用したWebアプリケーション用テストデータの生成' 第72回(平成22年)全国大会講演論文集(1) , 20100308, p.1-281〜1-282, 社団法人情報処理学会 *
JPN6014018815; 藤原翔一朗 外6名: 'SMT Solverを利用したWebアプリケーション用テストデータの生成' 第72回(平成22年)全国大会講演論文集(1) , 20100308, p.1-281〜1-282, 社団法人情報処理学会 *
JPN6014018816; 蔡 東風 外1名: '線形計画法を利用した離散制約最適化問題の効率的近似解法' 1998年度人工知能学会全国大会(第12回)論文集 , 19980619, p.326-329, 社団法人人工知能学会 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017037494A (ja) * 2015-08-10 2017-02-16 富士通株式会社 テストケース生成方法、テストケース生成プログラムおよびテストケース生成装置

Also Published As

Publication number Publication date
JP5561142B2 (ja) 2014-07-30

Similar Documents

Publication Publication Date Title
US11755466B1 (en) Systems and methods for testing a software application
US20050066263A1 (en) System and method for generating data validation rules
US8799282B2 (en) Analysis of a system for matching data records
US9195952B2 (en) Systems and methods for contextual mapping utilized in business process controls
Hao et al. Taming log files from game/simulation‐based assessments: Data models and data analysis tools
US11080305B2 (en) Relational log entry instituting system
Nawari Automating codes conformance
US20060048107A1 (en) Enhanced compiled representation of transformation formats
US20100121883A1 (en) Reporting language filtering and mapping to dimensional concepts
CN103443787A (zh) 用于标识文本关系的系统
CN101297268A (zh) 用于设计自动业务过程应用程序的集成系统、工具和方法
WO2008147616A1 (en) System and method for rapid development of software applications
US20080120326A1 (en) Query generation
JP6692281B2 (ja) テストケース生成装置、及びテストケース生成方法
CN102141959A (zh) 一种受上下文无关文法约束的测试用例生成方法
JP5561142B2 (ja) データ生成装置、データ生成方法及びプログラム
US20180196738A1 (en) Test input information search device and method
Mahdavi et al. Exploring the utility of semantic web technology in building performance simulation
O’Connor et al. Unleashing the value of Common Data Elements through the CEDAR Workbench
Wehage et al. An open framework for automated chemical hazard assessment based on GreenScreen for Safer Chemicals: A proof of concept
Ye et al. Generating synthetic data to support entity resolution education and research
Mello et al. Using XML to improve the productivity and robustness in application development in geosciences
Klımek et al. eXolutio: Tool for XML Schema and Data Management
Sen et al. Modelling data interaction requirements: A position paper
JP7316060B2 (ja) アプリケーション画面表示プログラム実装方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140430

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140526

R150 Certificate of patent or registration of utility model

Ref document number: 5561142

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees