本発明の実施形態を、以下に図面に従って説明する。以下の図を通して、特に断らない限り、同一の符号は同一の対象を指す。本発明の実施形態は、本発明の好適な態様を説明するためのものであり、本発明の範囲をここで示すものに限定する意図はないことを理解されたい。
本発明の実施態様において使用されうるコンピュータは、テストデータを自動的に生成するコンピュータ又はテストデータ中に埋め込まれたシグネチャーを識別するコンピュータであれば特に限定されない。当該コンピュータは例えば、例えば、デスクトップ・コンピュータ、ノート・コンピュータ若しくは一体型パソコン、又は、タブレット端末(例えば、アンドロイド端末、Windows(登録商標)タブレットでありうる。
本発明の実施態様において、「テストデータ」はテスト用の文字列データであり、例えばシステムが正常に稼動するかどうか又はシステムが負荷に耐性可能であるかどうかをテストするための、実データに代わるデータでありうる。また、当該「テストデータ」は、機密情報の漏洩を防ぐ為に使用されるマスクデータとして上記文字列データを含むテストデータでもありうる。
本発明の実施態様において、「シグネチャー」(署名ともいう)とは、テストデータの生成時に、当該テストデータに付加される特徴情報である。シグネチャーは、数字からなり、1又は複数の要素からなりうる。
シグネチャーは例えば、テストデータの生成ツールの情報(例えば、製品番号、バージョン番号、ライセンス番号)、テストデータを生成若しくは使用するユーザに固有の番号(例えば、ユーザID)、又は、例えばテストデータの生成日時でありうる。
シグネチャーが例えば日付を含むシグネチャーの場合、当該シグネチャーは例えば「20131231」でありうる。当該日付を含むシグネチャーは例えば、各要素が1桁の数字からなる場合には、各要素は「2」、「0」、「1」、「3」、「1」、「2」、「3」及び「1」からなり、又は、各要素が2桁の数字からなる場合には、各要素「20」、「13」、「12」及び「31」からなる。
図1は、本発明の実施態様において使用されうるコンピュータの一例を示した図である。
コンピュータ(101)は、CPU(102)とメイン・メモリ(103)とを備えており、これらはバス(104)に接続されている。CPU(102)は好ましくは、32ビット又は64ビットのアーキテクチャに基づくものである。当該CPU(102)は例えば、インテル社のCore(商標) iシリーズ、Core(商標) 2シリーズ、Atom(商標)シリーズ、Xeon(登録商標)シリーズ、Pentium(登録商標)シリーズ若しくはCeleron(登録商標)シリーズ、AMD(Advanced Micro Devices)社のAシリーズ、Phenom(商標)シリーズ、Athlon(商標)シリーズ、Turion(登録商標)シリーズ若しくはSempron(商標)、又は、インターナショナル・ビジネス・マシーンズ・コーポレーションのPower(商標)シリーズでありうる。
バス(104)には、ディスプレイ・コントローラ(105)を介して、ディスプレイ(106)、例えば液晶ディスプレイ(LCD)が接続されうる。また、液晶ディスプレイ(LCD)は例えば、タッチパネル・ディスプレイ又はフローティング・タッチ・ディスプレイであてもよい。ディスプレイ(106)は、コンピュータ(101)上で動作中のソフトウェア(例えば、本発明の実施態様に従うコンピュータ・プログラム又は当該コンピュータ(101)上で動作中の各種コンピュータ・プログラム)が稼働することによって表示されるオブジェクトを、適当なグラフィック・インタフェースで表示するために使用されうる。
バス(104)には任意的に、例えばSATA又はIDEコントローラ(107)を介して、ディスク(108)、例えばハードディスク又はソリッド・ステート・ドライブ(SSD)が接続されうる。
バス(104)には任意的に、例えばSATA又はIDEコントローラ(107)を介して、ドライブ(109)、例えばCD、DVD又はBDドライブが接続されうる。
バス(104)には、周辺装置コントローラ(110)を介して、例えばキーボード・マウス・コントローラ又はUSBバスを介して、任意的に、キーボード(111)及びマウス(112)が接続されうる。
ディスク(108)には、オペレーティング・システム、例えばWindows(登録商標)OS、UNIX(登録商標)、MacOS(登録商標)、及びJ2EEなどのJava(登録商標)処理環境、Java(登録商標)アプリケーション、Java(登録商標)仮想マシン(VM)、Java(登録商標)実行時(JIT)コンパイラを提供するプログラム、本発明の実施態様に従うコンピュータ・プログラム、及びその他のプログラム、並びにデータが、メイン・メモリ(103)にロード可能なように記憶されうる。
ディスク(108)は、コンピュータ(101)内に内蔵されていてもよく、当該コンピュータ(101)がアクセス可能なようにケーブルを介して接続されていてもよく、又は、当該コンピュータ(101)がアクセス可能なように有線又は無線ネットワークを介して接続されていてもよい。
ドライブ(109)は、必要に応じて、CD−ROM、DVD−ROM又はBDからプログラム、例えばオペレーティング・システム、アプリケーション又は本発明の実施態様に従うコンピュータ・プログラムをディスク(108)にインストールするために使用されうる。
通信インタフェース(114)は、例えばイーサネット(登録商標)・プロトコルに従う。通信インタフェース(114)は、通信コントローラ(113)を介してバス(104)に接続され、コンピュータ(101)を通信回線(115)に有線又は無線接続する役割を担い、コンピュータ(101)のオペレーティング・システムの通信機能のTCP/IP通信プロトコルに対して、ネットワーク・インタフェース層を提供する。なお、通信回線は例えば、無線LAN接続規格に基づく無線LAN環境、IEEE802.11a/b/g/nなどのWi-Fi無線LAN環境、又は携帯電話網環境(例えば、3G又は4G環境)でありうる。
以下では、母音と子音を区別して表記する言語及び所定の画数を有する文字を持つ言語のそれぞれについて、本発明の実施態様に従いテストデータを生成する技法、及び当該生成されたテストデータ中に埋め込まれたシグネチャーを識別する技法を説明する。
以下に示す図2A〜図2B、図3、図4、及び図5において、本発明の実施態様に従い、母音と子音を区別して表記する言語について、テストデータを生成する技法、及び当該生成されたテストデータ中に埋め込まれたシグネチャーを識別する技法を説明する。
図2A及び図2Bは、本発明の実施態様に従い、母音と子音を区別して表記する言語において、当該言語の母音であることを示す値を属性値としてテストデータを生成する技法を説明するための図である。
本発明の実施態様において、「母音と子音を区別して表記する言語」とは例えば、英語、ヨーロッパ言語(例えば、ドイツ語、フランス語、又はイタリア語、スペイン語)であるが、これらに制限されるものでない。以下では、母音と子音を区別して表記する言語が英語である場合を例として説明する。
「母音と子音を区別して表記する言語」において、各文字固有の属性値は、母音と子音を区別して表記する言語の母音であることを示す値である。当該値は例えば、母音がある場合に1である。
ステップ1において、ユーザは、テストデータに埋め込みたいシグネチャー「21」(201)を用意し、コンピュータ(101)に入力する。代替的には、コンピュータ(101)がシグネチャー「21」(201)をユーザからのシグネチャー生成要求に応じて自動的に、例えば乱数を発生させて又はハッシュ値を計算して生成しうる。
ステップ2において、コンピュータ(101)は、シグネチャー「21」(201)を受け取る。コンピュータ(101)は、生成するテストデータの雛形テーブル(211)を参照し、その項目数が2(カラムX及びカラムY)であることを知る。
コンピュータ(101)は、シグネチャー「21」(201)を上記項目数2で分割して、シグネチャーの要素を得る。従って、コンピュータ(101)は、シグネチャー「21」(201)を、要素「2」と要素「1」との1桁の各数字に分割する(202)。
コンピュータ(101)は、要素「2」及び要素「1」それぞれを、雛形テーブル(211)中のカラムX及びカラムYに関連付けて、マッピング表(212)を生成する。
ステップ3において、コンピュータ(101)は、母音と子音とを記述した表である母音子音表(213)を参照し、シグネチャー「21」(201)の要素「2」及び要素「1」毎に、当該要素の数に対応する母音文字の数になるように、母音文字と子音文字との組み合わせパターン(以下、「パターン」ともいう場合がある)を決定する。母音文字と子音文字との組み合わせパターンは、母音文字のみを含み、子音文字を含まないパターンも含む。当業者は、当該パターンにおいて、生成する文字列中の母音文字の数を決めうる。当該母音の数は例えば1〜4でありうるが、これに制限されるものではない。
母音子音表(213)は、テストデータを作成する為に用意された文字(母音と子音)を記述した表である。母音子音表(213)は、母音表(V)(214)、母音前の子音(pre V)表(C1)(215)、母音間の子音(between Vs)表(C2)(216)、及び、母音後の子音(post V)表(C3)(217)を含む。母音表(V)(214)は、母音文字のみをリストする。母音前の子音表(C1)(215)は、母音文字の前に置かれる子音文字をリストする。母音間の子音表(C2)(216)は、母音文字と母音文字との間に置かれる子音文字をリストする。母音後の子音表(C3)(217)は、母音文字の後に置かれる子音文字をリストする。当業者は、母音前の子音表(C1)(215)、母音間の子音表(C2)(216)及び母音後の子音表(C3)(217)中にリストされる少なくとも1つの子音文字を適宜設定又は選択しうる。当業者は例えば、母音文字と子音文字がこの順で結合された場合に又は子音文字と母音文字がこの順に結合された場合に発音可能な組み合わせパターンであるように、上記子音文字を選択して各表(215,216及び217)中にリストしうる。発音可能とは、人による発音だけでなく、機械的な(ソフトウェア的な)読み上げが可能であることも含みうる。
上記母音文字と子音文字との上記組み合わせパターンは例えば下記パターンのいずれか一つ又はそれらの組み合わせでありうる:
(1)母音文字が子音文字の直後にあること;
(2)母音文字が子音文字間にあること;
(3)母音文字が子音文字の直前にあること;
(4)母音文字が語頭にあること;
(5)母音文字が語尾にあること;又は、
(6)母音文字が他の母音文字の直後にあること(すなわち、母音文字が連続すること)。また、上記母音文字と子音文字との上記組み合わせパターンは、発音可能な組み合わせパターンでありうる。
コンピュータ(101)は、図2Aに示す例では、要素「2」について、パターンA(203)、パターンB(204)及びパターンC(205)それぞれに見られるように、生成する文字列を構成する文字中の母音の総数が上記「2」になるように、「V+C2+V」(母音文字が語頭及び語尾にあるパターンでもある),「V+V+C3」(母音文字が語頭にあり、且つ母音文字が他の母音文字の直後にあるパターンでもある),及び「C1+V+V」(母音文字が語尾にあり、且つ母音文字が他の母音文字の直後にあるパターンでもある)の3つの組み合わせパターンを決定している。当該決定されたパターン「V+C2+V」,「V+V+C3」,及び「C1+V+V」のいずれにおいても、上記母音の数が上記要素「2」と等しくなるように決定されている。言い換えれば、母音であることを示す値(例えば、1とする)が上記要素「2」と等しくなるように、上記母音の総数が2つとなっている。コンピュータ(101)は、上記母音の総数が2になるように、上記組み合わせパターンを例えば乱数を発生させて又はハッシュ値を計算して決定しうる。
同様に、コンピュータ(101)は、図2Aに示す例では、要素「1」について、パターンA(203)、パターンB(204)及びパターンC(205)それぞれに見られるように、生成する文字列を構成する文字中の母音の総数が上記「12」になるように、「C1+V」の組み合わせパターンを決定している。当該決定されたパターン「C1+V」は、上記母音の数が上記要素「1」になるように決定されている。言い換えれば、母音であることを示す値(例えば、1とする)が上記要素「1」になるように、上記母音の総数が1つとなっている。コンピュータ(101)は、上記組み合わせパターンを上記母音の総数が1になるように、例えば乱数を発生させて又はハッシュ値を計算して決定しうる。
ステップ4において、コンピュータ(101)は、パターンA(203)中の要素「2」についての「V+C2+V」になるように、母音子音表(213)から母音文字、子音文字及び母音文字の組み合わせパターンを選択する。同様に、コンピュータ(101)は、パターンB(204)中の要素「2」についての「V+V+C3」になるように、母音子音表(213)から母音文字、母音文字及び子音文字の組み合わせパターンを選択する。同様に、コンピュータ(101)は、パターンC(205)中の要素「2」についての「C1+V+V」になるように、母音子音表(213)から子音文字、母音文字及び母音文字の組み合わせパターンを選択する。コンピュータ(101)は、母音子音表(213)からの上記文字の組み合わせパターンを、例えば乱数を発生させて又はハッシュ値を計算して選択しうる。コンピュータ(101)は、パターンA〜C(203、204及び205)それぞれについて、少なくとも1つの文字列ができるように、母音子音表(213)から上記子音文字及び母音文字の組み合わせパターンを、例えば乱数を発生させて又はハッシュ値を計算して選択しうる。
同様に、コンピュータ(101)は、パターンA(203)中の要素「1」についての「C1+V」になるように、母音子音表(213)から子音文字及び母音文字の組み合わせパターンを少なくとも1つ選択する。同様に、コンピュータ(101)は、パターンB(204)中の要素「1」についての「C1+V」になるように、母音子音表(213)から子音文字及び母音文字の組み合わせパターンを少なくとも1つ選択する。同様に、コンピュータ(101)は、パターンC(205)中の要素「1」についての「C1+V」になるように、母音子音表(213)から子音文字及び母音文字の組み合わせパターンを少なくとも1つ選択する。コンピュータ(101)、パターンA〜C(203、204及び205)それぞれについて、少なくとも1つの文字列ができるように、母音子音表(213)から上記文字の組み合わせパターンを、例えば乱数を発生させて又はハッシュ値を計算して選択しうる。
出力テーブルA(206)、出力テーブルB(207)及び出力テーブルC(208)はそれぞれ、パターンA(203)、パターンB(204)及びパターンC(205)に基づいて生成された文字列を示す。
ステップ5において、コンピュータ(101)は、出力テーブルA(206)、出力テーブルB(207)及び出力テーブルC(208)の表を合体して、テストデータ(209)を生成しうる。当該合体の方法は、出力テーブルA(206)、出力テーブルB(207)及び出力テーブルC(208)から、任意の1行のカラムX及びカラムYの各文字列を取り出すことによって行われうる。コンピュータ(101)は例えば、出力テーブルA(206)、出力テーブルB(207)及び出力テーブルC(208)の順に又はランダムに、任意の1行のカラムX及びカラムYの各文字列を取り出しうる。
コンピュータ(101)は、テストデータ(209)及びマッピング情報(212)を出力しうる。当該出力は、例えば当該コンピュータ(101)がアクセス可能な記憶媒体中(例えば、図1の符号108)中に格納すること、表示装置の画面上に表示すること、又は、プリンタで出力することを含みうる。
図3は、図2A及び図2Bに示す実施態様と異なる実施態様を示す図である。
図3に示す雛形テーブル(311)は、図2Aに示す雛形テーブル(211)と異なり、非構造化テキストである。そして、当該非構造化テキストは、雛形テーブル(311)中のカラムXに入力される文字列に対応する1st wordを入力する箇所、及び雛形テーブル(311)中のカラムXに入力される文字列に対応する2nd wordを入力する箇所を有している。
ステップ1において、ユーザは、テストデータに埋め込みたいシグネチャー「21」(301)を用意し、コンピュータ(101)に入力する。代替的には、コンピュータ(101)がシグネチャー「21」(301)をユーザからの要求に応じて自動的に、例えば乱数を発生させて又はハッシュ値を計算して生成しうる。
ステップ2において、コンピュータ(101)は、シグネチャー「21」(301)を受け取る。コンピュータ(101)は、生成するテストデータの雛形テーブル(311)を参照し、その文字列を入力する項目数が2(1st word及び2nd word)であることを知る。
コンピュータ(101)は、シグネチャー「21」(301)を上記項目数2で分割する。従って、シグネチャー「21」(301)は、要素「2」及び要素「1」の1桁の数字に分割される(302)。
コンピュータ(101)は、要素「2」及び要素「1」それぞれを、1st word及び2nd wordに関連付けて、マッピング表(312)を生成する。
ステップ3及びステップ4は、図2Aに示すステップと同じであるので、ここではその説明を省略する。
出力テーブルA(306)、出力テーブルB(307)及び出力テーブルC(308)はそれぞれ、パターンA(203と同じ)、パターンB(204と同じ)及びパターンC(205と同じ)に基づいて生成された文字列を示す。
ステップ5において、コンピュータ(101)は、出力テーブルA(306)、出力テーブルB(307)及び出力テーブルC(308)の表を合体して、テストデータ(309)を生成しうる。当該合体の方法は、出力テーブルA(306)、出力テーブルB(307)及び出力テーブルC(308)から、任意の1行のカラムX及びカラムYの各文字列を取り出し、取り出した各文字を雛形テーブル(311)中に入力することによって行われうる。コンピュータ(101)は、当該入力において、カラムXからの文字列とカラムYの各文字列とを区別するために、カラムXからの文字列とカラムYの各文字列との間に、母音及び子音以外の文字(例えば、スペース)を入力しうる。コンピュータ(101)は例えば、出力テーブルA(306)、出力テーブルB(307)及び出力テーブルC(308)の順に、1行ずつ、1st word及び2nd wordの各文字列を取り出しうる。
コンピュータ(101)は、テストデータ(309)及びマッピング情報(312)を出力しうる。当該出力は、例えば当該コンピュータ(101)がアクセス可能な記憶媒体中(例えば、図1の符号108)中に格納すること、画面上に表示すること、又は、プリンタで出力することを含みうる。コンピュータ(101)は、テストデータ(309)にマッピング情報(312)を関連付けるための情報を挿入しうる。コンピュータ(101)は例えば、テストデータ(309)中にマッピング情報(312)を埋め込みうる。当該情報は、テストデータからシグネチャーを識別する処理において、当該テストデータに関連付けられたマッピング情報を特定するために使用されうる。
図4は、図2A及び図2Bに示す実施態様の処理の流れの詳細を示すフローチャートである。
ステップ401において、コンピュータ(101)は、本発明の実施態様に従い、母音と子音を区別して表記する言語において、当該言語の母音であることを示す値を属性値としてテストデータを生成する処理を開始する。
ステップ402において、コンピュータ(101)は、メタデータを受け取る。メタデータとは、複数のシグネチャーを持つものである。メタデータが1つのシグネチャーのみ持つ場合には、メタデータはシグネチャーと同じである。複数のシグネチャーとは例えば、テストデータの生成ツールの情報(例えば、製品番号、バージョン番号、ライセンス番号)、テストデータを生成若しくは使用するユーザに固有の番号(例えば、ユーザID)、及び、例えばテストデータの生成日時のうちのから選択される少なくとも2つのシグネチャーである。コンピュータ(101)は、テストデータに埋め込みたいシグネチャーをユーザが複数指定することに応じて、当該指定された複数のシグネチャーをメタデータとして例えば当該コンピュータ(101)がアクセス可能な記憶媒体(例えば、図1の符号108)中に格納する。
ステップ403において、コンピュータ(101)は、ステップ402で受け取ったメタデータ中に含まれているシグネチャーから1つのシグネチャーを取り出す。
ステップ404において、コンピュータ(101)は、生成するテストデータの雛形テーブルを参照し、その項目数を得る。コンピュータ(101)は、ステップ403で取り出したシグネチャーを上記項目数で分割して、シグネチャーの要素を得る。典型的には、母音と子音を区別して表記する言語についてのテストデータを生成する場合には、分割されて生じた要素は1桁の数字である。
ステップ405において、コンピュータ(101)は、各要素を雛形テーブル中の項目に関連付けて、マッピング表を生成する。マッピング表は例えば、要素と項目とを関連付けるマッピング情報を格納したマッピング・データであってもよい。
ステップ406において、コンピュータ(101)は、上記マッピング表に従って、雛形テーブル中の各項目に入力される文字列中の母音であることを示す値の総和を決定する。すなわち、コンピュータ(101)は、マッピング表中の上記要素(1桁の数字)を上記値の総和として決定する。
ステップ407において、コンピュータ(101)は、ステップ406で決定した総和になるように、母音子音表を参照し、要素毎に、当該要素の数に対応する母音文字の数になるように、母音文字と子音文字との組み合わせパターンを決定する。コンピュータ(101)は、1つの要素について、母音文字と子音文字との1つ又は複数の組み合わせパターンを決定しうる。
ステップ408において、コンピュータ(101)は、ステップ407で決定した組み合わせパターンのうち、1つの組み合わせパターンを取り出す。
ステップ409において、コンピュータ(101)は、ステップ408で取り出した組み合わせパターンになるように、上記文字列を構成する母音文字及び子音文字の組み合わせを母音子音表から選択する。コンピュータ(101)は、ステップ408で取り出した上記組み合わせパターンについて、少なくとも1つの文字列ができるように、上記子音文字及び母音文字の組み合わせを、例えば乱数を発生させて又はハッシュ値を計算して、上記母音子音表から選択しうる。コンピュータ(101)は、当該生成した文字列を例えばコンピュータ(101)の一時記憶装置(例えば、図1の符号103)又は当該コンピュータ(101)がアクセス可能な記憶媒体(例えば、図1の符号108)中に格納しうる。
ステップ410において、コンピュータ(101)は、ステップ407で決定した組み合わせパターンのうち、ステップ409の処理が未処理の組み合わせパターンがあるかを判断する。コンピュータ(101)は、上記未処理の組み合わせパターンがあることに応じて、処理をステップ408に戻す。一方、コンピュータ(101)は、上記未処理の組み合わせパターンがないことに応じて、処理をステップ411に進める。
ステップ411において、コンピュータ(101)は、ステップ409で格納した上記文字列を雛形テーブル中に挿入して、テストデータを生成しうる。すなわち、コンピュータ(101)は、上記生成した文字列をテストデータの形式に整える。
ステップ412において、コンピュータ(101)は、ステップ402で受け取ったメタデータ中に含まれているシグネチャーのうち、ステップ403〜ステップ411の処理が未処理のシグネチャーがあるかを判断する。コンピュータ(101)は、上記未処理のシグネチャーがあることに応じて、処理をステップ403に戻す。一方、コンピュータ(101)は、上記未処理のシグネチャーがないことに応じて、処理をステップ413に進める。
ステップ413において、コンピュータ(101)は、ステップ411で生成したテストデータ及びステップ405で生成したマッピング情報を当該コンピュータ(101)がアクセス可能な記憶媒体(例えば、図1の符号108)中に格納しうる。上記テストデータの出力は、当該コンピュータ(101)がアクセス可能な記憶媒体中(例えば、図1の符号108)中に格納すること以外に、例えば、表示装置の画面上に表示すること、又は、プリンタで出力することを含みうる。マッピング情報は、図5に記載のフローチャートに示すように、テストデータからシグネチャーを識別するために使用される。
ステップ414において、コンピュータ(101)は、本発明の実施態様に従い、母音と子音を区別して表記する言語において、当該言語の母音であることを示す値を属性値としてテストデータを生成する処理を終了する。
図5は、図2A及び図2Bに示す実施態様に従い生成されたテストデータからシグネチャーを識別するフローチャートを示す。以下において、各ステップの主体であるコンピュータ(101)は、図4に記載の各ステップのコンピュータ(101)と物理的に同一のコンピュータであっても、異なるコンピュータであってもよい。
ステップ501において、コンピュータ(101)は、本発明の実施態様に従い、テストデータからシグネチャーを識別する処理を開始する。
ステップ502において、コンピュータ(101)は、テストデータを受けとる。コンピュータ(101)は、上記テストデータを、例えば、コンピュータ(101)がアクセス可能な記憶媒体を介して、若しくはネットワークを経由して、又は、他のコンピュータ上の表示画面をキャプチャすることによって、若しくは印刷物をスキャナーで取り込むことによって受け取りうる。
ステップ503において、コンピュータ(101)は、ステップ502で受け取ったテストデータ中に埋め込まれている情報を参照して、当該受信したテストデータに関連付けられたマッピング情報を取り出す。コンピュータ(101)は、上記マッピング情報を、例えば、コンピュータ(101)がアクセス可能な記憶媒体を介して、又はネットワークを経由して取り出しうる。
ステップ504において、コンピュータ(101)は、ステップ502で受け取ったテストデータ中の文字列のうち、所定の一つの文字列を取り出す。
ステップ505において、コンピュータ(101)は、ステップ504で取り出した文字列中の母音文字の総和を算出する。所定の1つの文字列中の母音文字の総和が、シグネチャーの一つの要素(数字である)に対応する。
ステップ506において、コンピュータ(101)は、ステップ502で受け取ったテストデータ中の文字列のうち、ステップ504〜505の処理が未処理の文字列があるか判断する。コンピュータ(101)は、上記未処理の文字列があることに応じて、処理をステップ504に戻す。一方、コンピュータ(101)は、上記未処理の文字列がないことに応じて、処理をステップ507に進める。
ステップ507において、コンピュータ(101)は、ステップ505で算出した母音文字の総和を組み合わせて、ステップ502で受け取ったテストデータのシグネチャーを識別する。例えば、ステップ505で算出した母音文字の総和が「2」及び「1」である場合には、シグネチャーは「2」と「1」を組み合わせた「21」である。
ステップ508において、コンピュータ(101)は、ステップ507で識別したシグネチャーを組み合わせて、複数のシグネチャーを持つメタデータを再生(再構築)しうる。
ステップ509において、コンピュータ(101)は、ステップ508で再生したメタデータを当該コンピュータ(101)がアクセス可能な記憶媒体(例えば、図1の符号108)中に格納しうる。
ステップ510において、コンピュータ(101)は、本発明の実施態様に従い、テストデータからシグネチャーを識別する処理を終了する。
コンピュータ(101)は、任意的に、ステップ507で識別したシグネチャーと、ステップ502で受け取ったテストデータ中に埋め込まれていると期待されるシグネチャーとを比較しうる。コンピュータ(101)は、当該比較の結果、ステップ507で識別したシグネチャーが、ステップ502で受け取ったテストデータ中に埋め込まれていると期待されるシグネチャーと一致することに応じて、当該テストデータが改ざん等されていないことを知る。一方、コンピュータ(101)は、当該比較の結果、ステップ507で識別したシグネチャーが、ステップ502で受け取ったテストデータ中に埋め込まれていると期待されるシグネチャーと一致しないことに応じて、当該テストデータが改ざん等されていることを知る。
また、コンピュータ(101)は、ステップ508で再生したメタデータから、テストデータの作成日時や生成ツールの情報を得ることが可能である。
図2A〜図2B、図3、図4、及び図5において、本発明の実施態様に従い、母音と子音を区別して表記する言語において、当該言語の母音であることを示す値を属性値としてテストデータを生成する技法及び当該技法を使用して生成されたテストデータからシグネチャーを識別する技法を説明した。母音であることを示す値を使用する本発明の実施態様は、下記に示す特徴を有する。
(1)本発明の実施態様に従い生成したテストデータ中の文字列は、母音子音表から選択された文字(母音文字及び子音文字)を含む。当業者は、当該母音子音表において、生成されたデータに含まれる子音を、所定の子音の組み合わせ(例えば、sp,fl及びz(以上、母音前の子音表(C1)),ks及びvr(以上、母音間の子音表(C2))、並びに、l,rr及びkt(以上、母音後の子音表(C3)))に特定することが可能である。また、テストデータ中の文字列を構成する各母音及び各子音は、コンピュータが乱数を発生させて又はハッシュ値を計算して選択されたものである。従って、図2Bのテストデータ(609)に示しているとおり、ユーザは、生成される文字列を、明らかにテストデータとして生成されたものであると認識することが可能である。
(2)本発明の実施態様に従い生成したテストデータ中に埋め込まれたシグネチャーは、当該テストデータの文字列中の母音の総和から復元される。従って、生成されたテストデータ自体がメタ情報を持っている。例えば、テストデータ中の「項目A」、「項目B」、「項目C」及び「項目D」中に含まれる母音の総和がそれぞれ、「1」、「2」、「3」及び「4」であるとする。この場合に、シグネチャーは、「1234」である。また、当該シグネチャー「1234」は、項目A〜Dからなるデータ・セットのすべてに共通する。従って、所定の項目に同じシグネチャーを埋め込むことが可能であるので、テストデータの一部(すなわち、データ・セットの一つ)だけを取り出しても識別されるシグネチャーは同じである。また、上記項目A〜Dからなるデータ・セットのうち、当該シグネチャー「1234」と一致しないデータ・セットは、不正のデータ(例えば、改ざん等されたデータ)であると判別されることが可能である。
(3)文字列中の母音の総和は文字コードに関係ないので、母音文字の文字コード変換が行われた場合であっても、当該母音の総和は同じである。すなわち、母音の総和は、文字コード変換が行われた場合であっても変化しない。また、文字列中の文字が大文字であっても小文字であっても、文字列中の母音の総和は変化しない。従って、特定の数の母音文字と任意の数の子音文字とを使用して生成されたデータの文字コードが変更された場合であっても、本発明の実施態様に従い生成したテストデータに関連付けられたシグネチャーは失われない。
(4)文字列中の母音の総和は、テストデータが印刷された場合であっても、当該印刷物から上記母音の総和を数えることは可能である。同様に、文字列中の母音の総和は、テストデータが表示画面上に表示されている場合であっても、当該画面から上記母音の総和を数えることは可能である。また、文字列中の文字が大文字であっても小文字であっても、文字列中の母音の総和は変化しない。従って、ユーザは、本発明の実施態様に従い生成したテストデータの文字列がどのような表示形態であっても、シグネチャーを取り出せる。シグネチャーは、どのような場合であっても同じである。従って、テストデータ中の所定の文字列中の母音の総和を調べるだけで、当該テストデータが正しく生成されたデータであるかどうかや改ざん等されてないかどうかを容易に判断することが可能である。
(5)本発明の実施態様に従い生成したテストデータが複数の項目を有している場合において、例えば、テストデータ中の「項目A」、「項目B」、「項目C」及び「項目D」のデータ・セットを複数有している場合には、項目A〜Dそれぞれに同じシグネチャーが埋め込まれる。従って、テストデータが複数の項目からなるデータである場合に、どの項目にも同じシグネチャーを持たせることが可能である。
(6)本発明の実施態様に従い、文字列中の母音の総和を一定にしながら(すなわち、同じシグネチャーを有しながら)、組み合わせパターンを変更することが可能である。すなわち、母音文字の数を一定にしながら、子音文字の数を変更することによって、生成する文字列の長さを変えることが可能である。従って、生成するテストデータのバリエーションを増やせ、さらには、重複するデータを最小にすることが可能である。また、生成したテストデータを、より現実的な長さを有するデータとすることが可能である。
(7)本発明の実施態様に従い生成したテストデータは、それ自体が、認識可能な固有の特徴であるシグネチャー(例えば、上記「1234」)を有している。
以下に示す図6A〜図6B、図7、図8及び図9において、本発明の実施態様に従い、母音と子音を区別して表記する言語について、テストデータを生成する技法、及び当該生成されたテストデータ中に埋め込まれたシグネチャーを識別する技法を説明する。
図6A及び図6Bは、本発明の実施態様に従い、所定の画数を有する文字を持つ言語において、当該言語の文字の画数を属性値としてテストデータを生成する技法を説明するための図である。
本発明の実施態様において、「所定の画数を有する文字を持つ言語」及び「所定の画数を有する文字」(すなわち、画数が定められている文字)とは例えば、日本語と漢字、中国語と簡体字若しくは繁体字、又は韓国語とハングル文字であるが、これらに制限されるものでない。以下では、所定の画数を有する文字を持つ言語が日本語であり、且つ、所定の画数を有する文字が漢字である場合を例として説明する。
「所定の画数を有する文字を持つ言語」において、各文字固有の属性値は、当該言語の文字の画数である。当該画数は例えば、漢字辞典に収載されている画数に基づく。
ステップ1において、ユーザは、テストデータに埋め込みたいシグネチャー「2013」(601)を用意し、コンピュータ(101)に入力する。代替的には、コンピュータ(101)がシグネチャー「2013」(601)をユーザからのシグネチャー生成要求に応じて自動的に、例えば乱数を発生させて又はハッシュ値を計算して生成しうる。
ステップ2において、コンピュータ(101)は、シグネチャー「2013」(601)を受け取る。コンピュータ(101)は、生成するテストデータの雛形テーブル(611)を参照し、その項目数が2(カラムX及びカラムY)であることを知る。
コンピュータ(101)は、シグネチャー「2013」(601)を上記項目数2で分割して、シグネチャーの要素を得る。従って、コンピュータ(101)は、シグネチャー「2013」(601)を、要素「20」と要素「13」との2つに分割する(602)。
コンピュータ(101)は、要素「20」及び要素「13」それぞれを、雛形テーブル(611)中のカラムX及びカラムYに関連付けて、マッピング表(612)を生成する。
ステップ3において、コンピュータ(101)は、漢字(文字)の画数と当該画数に関連付けられた漢字(文字)を記述した、画数による漢字表(613)を参照し、シグネチャー「2013」(601)の要素「20」及び要素「13」毎に、当該要素の数に対応する画数の総和になるように、当該要素毎に関連付けられる文字列中の各漢字の画数の組み合わせパターン(以下、「パターン」ともいう場合がある)を決定する。当業者は、当該パターンにおいて、生成する文字列を構成する漢字の文字数を決めうる。当該文字数は例えば1〜5でありうるが、これに制限されるものではない。
漢字表(613)は、テストデータを作成する為に用意された文字(漢字)を記述した表である。漢字表(613)は、漢字の画数と当該画数に関連付けられた漢字を記述した表である。漢字表(613)の具体的な態様の一つは例えば、漢字の画数と、当該画数に属する少なくとも1つの漢字を記述した表でありうる。当業者は、漢字表(613)中にリストされる漢字を適宜設定又は選択しうる。
コンピュータ(101)は、図6Aに示す例では、要素「20」について、パターンA(603)、パターンB(604)及びパターンC(605)それぞれに見られるように、生成する文字列中の漢字の画数の総和が上記「20」になるように、「5+7+8」,「11+9」,及び「20」の3つの組み合わせパターンを決定する。当該決定されたパターン「5+7+8」,「11+9」,及び「20」のいずれにおいても、文字列を構成する漢字の画数の総和が上記要素「20」になるように決定されている。コンピュータ(101)は、上記文字列を構成する漢字の画数の総和が上記要素「20」と等しくなるように、上記組み合わせパターンを例えば乱数を発生させて又はハッシュ値を計算して決定しうる。
同様に、コンピュータ(101)は、図6Aに示す例では、要素「13」について、パターンA(603)、パターンB(604)及びパターンC(605)それぞれに見られるように、生成する文字列中の漢字の画数の総和が上記「13」になるように、「6+7」,「5+8」,及び「7+6」の3つの組み合わせパターンを決定する。当該決定されたパターン「6+7」,「5+8」,及び「7+6」のいずれにおいても、文字列を構成する漢字の画数の総和が上記要素「13」になるように決定されている。コンピュータ(101)は、上記文字列を構成する漢字の画数の総和が上記要素「13」と等しくなるように、上記組み合わせパターンを例えば乱数を発生させて又はハッシュ値を計算して決定しうる。
ステップ4において、コンピュータ(101)は、パターンA(603)中の要素「20」についての「5+7+8」になるように、漢字表(613)から画数5の漢字、画数7の漢字及び画数8の漢字の組み合わせを選択する。同様に、コンピュータ(101)は、パターンB(604)中の要素「20」についての「11+9」になるように、漢字表(613)から画数11の漢字及び画数9の漢字の組み合わせを選択する。同様に、コンピュータ(101)は、パターンC(605)中の要素「20」についての「20」になるように、漢字表(613)から画数20の漢字を選択する。コンピュータ(101)は、漢字表(613)からの上記漢字の組み合わせを、例えば乱数を発生させて又はハッシュ値を計算して選択しうる。コンピュータ(101)は、パターンA〜C(603、604及び605)それぞれについて、各パターンに従って文字列を生成するように、漢字表(613)から漢字の組み合わせを、例えば乱数を発生させて又はハッシュ値を計算して選択しうる。
同様に、コンピュータ(101)は、パターンA(603)中の要素「13」についての「6+7」になるように、漢字表(613)から画数6の漢字及び画数7の漢字の組み合わせを選択する。同様に、コンピュータ(101)は、パターンB(604)中の要素「13」についての「5+8」になるように、漢字表(613)から画数5の漢字及び画数8の漢字の組み合わせを選択する。同様に、コンピュータ(101)は、パターンC(605)中の要素「13」についての「7+6」になるように、漢字表(613)から画数7の漢字及び画数6の漢字を選択する。コンピュータ(101)は、漢字表(613)からの上記漢字の組み合わせを、例えば乱数を発生させて又はハッシュ値を計算して選択しうる。コンピュータ(101)は、パターンA〜C(603、604及び605)それぞれについて、少なくとも1つの文字列ができるように、漢字表(613)から漢字の組み合わせを、例えば乱数を発生させて又はハッシュ値を計算して選択しうる。
出力テーブルA(606)、出力テーブルB(607)及び出力テーブルC(608)はそれぞれ、パターンA(603)、パターンB(604)及びパターンC(605)に基づいて生成された文字列を示す。
ステップ5において、コンピュータ(101)は、出力テーブルA(606)、出力テーブルB(607)及び出力テーブルC(608)の表を合体して、テストデータ(609)を生成しうる。当該合体の方法は、出力テーブルA(606)、出力テーブルB(607)及び出力テーブルC(608)から、任意の1行のカラムX及びカラムYの各文字列を取り出すことによって行われうる。コンピュータ(101)は例えば、出力テーブルA(606)、出力テーブルB(607)及び出力テーブルC(608)の順に又はランダムに、任意の1行のカラムX及びカラムYの各文字列を取り出しうる。
コンピュータ(101)は、テストデータ(609)及びマッピング情報(612)を出力しうる。当該出力は、例えば当該コンピュータ(101)がアクセス可能な記憶媒体中(例えば、図1の符号108)中に格納すること、表示装置の画面上に表示すること、又は、プリンタで出力することを含みうる。
図7は、図6A及び図6Bに示す実施態様と異なる実施態様を示す図である。
図7に示す雛形テーブル(711)は、図6Aに示す雛形テーブル(611)と異なり、非構造化テキストである。そして、当該非構造化テキストは、雛形テーブル(611)中のカラムXに入力される文字列に対応する1st wordを入力する箇所、及び雛形テーブル(611)中のカラムXに入力される文字列に対応する2nd wordを入力する箇所を有している。
ステップ1において、ユーザは、テストデータに埋め込みたいシグネチャー「2013」(701)を用意し、コンピュータ(101)に入力する。代替的には、コンピュータ(101)がシグネチャー「2013」(101)をユーザからの要求に応じて自動的に、例えば乱数を発生させて又はハッシュ値を計算して生成しうる。
ステップ2において、コンピュータ(101)は、シグネチャー「2013」(701)を受け取る。コンピュータ(101)は、生成するテストデータの雛形テーブル(711)を参照し、その文字列を入力する項目数が2(1st word及び2nd word)であることを知る。
コンピュータ(101)は、シグネチャー「2013」(701)を上記項目数2で分割する。従って、シグネチャー「2013」(701)は、要素「20」及び要素「13」に分割される(702)。
コンピュータ(101)は、要素「20」及び要素「13」それぞれを、1st word及び2nd wordに関連付けて、マッピング表(712)を生成する。
ステップ3及びステップ4は、図6Aに示すステップと同じであるので、ここではその説明を省略する。
出力テーブルA(706)、出力テーブルB(707)及び出力テーブルC(708)はそれぞれ、パターンA(603と同じ)、パターンB(604と同じ)及びパターンC(605と同じ)に基づいて生成された文字列を示す。
ステップ5において、コンピュータ(101)は、出力テーブルA(706)、出力テーブルB(707)及び出力テーブルC(708)の表を合体して、テストデータ(709)を生成しうる。当該合体の方法は、出力テーブルA(706)、出力テーブルB(707)及び出力テーブルC(708)から、任意の1行のカラムX及びカラムYの各文字列を取り出し、取り出した各文字を雛形テーブル(711)中に入力することによって行われうる。コンピュータ(101)は、当該入力において、カラムXからの文字列とカラムYの各文字列とを区別するために、カラムXからの文字列とカラムYの各文字列との間に、非漢字文字(例えば、スペース)を入力しうる。コンピュータ(101)は例えば、出力テーブルA(706)、出力テーブルB(707)及び出力テーブルC(708)の順に、1行ずつ、1st word及び2nd wordの各文字列を取り出しうる。
代替的には、コンピュータ(101)は、出力テーブルA(706)、出力テーブルB(707)及び出力テーブルC(708)の表を合体して、テストデータ(710)を生成しうる。当該合体の方法は、出力テーブルA(706)、出力テーブルB(707)及び出力テーブルC(708)から、任意の1行のカラムX及びカラムYの各文字列を取り出し、取り出した各文字を雛形テーブル(711)中に入力することによって行われうる。当該入力において、カラムXからの文字列とカラムYの各文字列とを区別するために、コンピュータ(101)は、カラムXからの文字列とカラムYの各文字列との間に、非漢字文字(例えば、平仮名、片仮名、数字、アルファベット、又は記号)を入力しうる。コンピュータ(101)は例えば、出力テーブルA(706)、出力テーブルB(707)及び出力テーブルC(708)の順に、1行ずつ、1st word及び2nd wordの各文字列を取り出しうる。
コンピュータ(101)は、テストデータ(709)及びマッピング情報(712)を出力しうる。当該出力は、例えば当該コンピュータ(101)がアクセス可能な記憶媒体中(例えば、図1の符号108)中に格納すること、画面上に表示すること、又は、プリンタで出力することを含みうる。コンピュータ(101)は、テストデータ(709)にマッピング情報(712)を関連付けるための情報を挿入しうる。コンピュータ(101)は例えば、テストデータ(709)中にマッピング情報(712)を埋め込みうる。当該情報は、テストデータからシグネチャーを識別する処理において、当該テストデータに関連付けられたマッピング情報を特定するために使用されうる。
図8は、図6A及び図6Bに示す実施態様の処理の流れの詳細を示すフローチャートである。
ステップ801において、コンピュータ(101)は、本発明の実施態様に従い、所定の画数を有する文字を持つ言語において、当該言語の文字の画数を属性値としてテストデータを生成する処理を開始する。
ステップ802において、コンピュータ(101)は、メタデータを受け取る。メタデータとは、複数のシグネチャーを持つものである。メタデータが1つのシグネチャーのみ持つ場合には、メタデータはシグネチャーと同じである。複数のシグネチャーとは例えば、テストデータの生成ツールの情報(例えば、製品番号、バージョン番号、ライセンス番号)、テストデータを生成若しくは使用するユーザに固有の番号(例えば、ユーザID)、及び、例えばテストデータの生成日時のうちのから選択される少なくとも2つのシグネチャーである。コンピュータ(101)は、テストデータに埋め込みたいシグネチャーをユーザが複数指定することに応じて、当該指定された複数のシグネチャーをメタデータとして例えば当該コンピュータ(101)がアクセス可能な記憶媒体(例えば、図1の符号108)中に格納する。
ステップ803において、コンピュータ(101)は、ステップ802で受け取ったメタデータ中に含まれているシグネチャーから1つのシグネチャーを取り出す。
ステップ804において、コンピュータ(101)は、生成するテストデータの雛形テーブルを参照し、その項目数を得る。コンピュータ(101)は、ステップ803で取り出したシグネチャーを上記項目数で分割して、シグネチャーの要素を得る。典型的には、所定の画数を有する文字を持つ言語についてのテストデータを生成する場合には、分割されて生じた要素は少なくとも1桁の数字でありうる。
ステップ805において、コンピュータ(101)は、各要素を雛形テーブル中の項目に関連付けて、マッピング表を生成する。マッピング表は例えば、要素と項目とを関連付けるマッピング情報を格納したマッピング・データであってもよい。
ステップ806において、コンピュータ(101)は、上記マッピング表に従って、雛形テーブル中の各項目に入力される文字列中の文字(漢字)の画数の総和を決定する。すなわち、コンピュータ(101)は、マッピング表中の上記要素を上記値の総和として決定する。
ステップ807において、コンピュータ(101)は、ステップ806で決定した総和になるように、漢字表を参照し、要素毎に、当該要素毎に関連付けられる文字列中の各漢字の画数の組み合わせパターンを決定する。コンピュータ(101)は、1つの要素について、各漢字の画数の1つ又は複数の組み合わせパターンを決定しうる。
ステップ808において、コンピュータ(101)は、ステップ807で決定した組み合わせパターンのうち、1つの組み合わせパターンを取り出す。
ステップ809において、コンピュータ(101)は、ステップ808で取り出した組み合わせパターンになるように、上記文字列を構成する漢字の組み合わせを漢字表から選択する。コンピュータ(101)は、ステップ808で取り出した上記組み合わせパターンについて、少なくとも1つの文字列ができるように、上記漢字の組み合わせを、例えば乱数を発生させて又はハッシュ値を計算して、上記漢字表から選択しうる。コンピュータ(101)は、当該生成した文字列を例えばコンピュータ(101)の一時記憶装置(例えば、図1の符号103)又は当該コンピュータ(101)がアクセス可能な記憶媒体(例えば、図1の符号108)中に格納しうる。
ステップ810において、コンピュータ(101)は、ステップ807で決定した組み合わせパターンのうち、ステップ809の処理が未処理の組み合わせパターンがあるかを判断する。コンピュータ(101)は、上記未処理の組み合わせパターンがあることに応じて、処理をステップ808に戻す。一方、コンピュータ(101)は、上記未処理の組み合わせパターンがないことに応じて、処理をステップ811に進める。
ステップ811において、コンピュータ(101)は、ステップ809で格納した上記文字列を雛形テーブル中に挿入して、テストデータを生成しうる。すなわち、コンピュータ(101)は、上記生成した文字列をテストデータの形式に整える。
ステップ812において、コンピュータ(101)は、ステップ802で受け取ったメタデータ中に含まれているシグネチャーのうち、ステップ803〜ステップ811の処理が未処理のシグネチャーがあるかを判断する。コンピュータ(101)は、上記未処理のシグネチャーがあることに応じて、処理をステップ803に戻す。一方、コンピュータ(101)は、上記未処理のシグネチャーがないことに応じて、処理をステップ813に進める。
ステップ813において、コンピュータ(101)は、ステップ811で生成したテストデータ及びステップ805で生成したマッピング情報を当該コンピュータ(101)がアクセス可能な記憶媒体(例えば、図1の符号108)中に格納しうる。上記テストデータの出力は、当該コンピュータ(101)がアクセス可能な記憶媒体中(例えば、図1の符号108)中に格納すること以外に、例えば、表示装置の画面上に表示すること、又は、プリンタで出力することを含みうる。マッピング情報は、図9に記載のフローチャートに示すように、テストデータからシグネチャーを識別するために使用される。
ステップ814において、コンピュータ(101)は、本発明の実施態様に従い、所定の画数を有する文字を持つ言語において、当該言語の文字の画数を属性値としてテストデータを生成する処理を終了する。
図9は、図6A及び図6Bに示す実施態様に従い生成されたテストデータからシグネチャーを識別するフローチャートを示す。以下において、各ステップの主体であるコンピュータ(101)は、図8に記載の各ステップのコンピュータ(101)と物理的に同一のコンピュータであっても、異なるコンピュータであってもよい。
ステップ901において、コンピュータ(101)は、本発明の実施態様に従い、テストデータからシグネチャーを識別する処理を開始する。
ステップ902において、コンピュータ(101)は、テストデータを受けとる。コンピュータ(101)は、上記テストデータを、例えば、コンピュータ(101)がアクセス可能な記憶媒体を介して、若しくはネットワークを経由して、又は、他のコンピュータ上の表示画面をキャプチャすることによって、若しくは印刷物をスキャナーで取り込むことによって受け取りうる。
ステップ903において、コンピュータ(101)は、ステップ902で受け取ったテストデータ中に埋め込まれている情報を参照して、当該受信したテストデータに関連付けられたマッピング情報を取り出す。コンピュータ(101)は、上記マッピング情報を、例えば、コンピュータ(101)がアクセス可能な記憶媒体を介して、又はネットワークを経由して取り出しうる。
ステップ904において、コンピュータ(101)は、ステップ902で受け取ったテストデータ中の文字列のうち、所定の一つの文字列を取り出す。
ステップ905において、コンピュータ(101)は、ステップ904で取り出した文字列中の各文字(漢字)の画数の総和を算出する。所定の1つの文字列中の文字の画数の総和が、シグネチャーの一つの要素(数字である)に対応する。
ステップ906において、コンピュータ(101)は、ステップ502で受け取ったテストデータ中の文字列のうち、ステップ904〜905の処理が未処理の文字列があるか判断する。コンピュータ(101)は、上記未処理の文字列があることに応じて、処理をステップ904に戻す。一方、コンピュータ(101)は、上記未処理の文字列がないことに応じて、処理をステップ907に進める。
ステップ907において、コンピュータ(101)は、ステップ905で算出した画数の総和を組み合わせて、ステップ902で受け取ったテストデータのシグネチャーを識別する。例えば、ステップ905で算出した画数の総和が「20」及び「13」である場合には、シグネチャーは「20」と「13」を組み合わせた「2013」である。
ステップ908において、コンピュータ(101)は、ステップ907で識別したシグネチャーを組み合わせて、複数のシグネチャーを持つメタデータを再生(再構築)しうる。
ステップ909において、コンピュータ(101)は、ステップ908で再生したメタデータを当該コンピュータ(101)がアクセス可能な記憶媒体(例えば、図1の符号108)中に格納しうる。
ステップ910において、コンピュータ(101)は、本発明の実施態様に従い、テストデータからシグネチャーを識別する処理を終了する。
コンピュータ(101)は、任意的に、ステップ907で識別したシグネチャーと、ステップ902で受け取ったテストデータ中に埋め込まれていると期待されるシグネチャーとを比較しうる。コンピュータ(101)は、当該比較の結果、ステップ907で識別したシグネチャーが、ステップ902で受け取ったテストデータ中に埋め込まれていると期待されるシグネチャーと一致することに応じて、当該テストデータが正しく生成されたデータであることや改ざん等されていないことを知る。一方、コンピュータ(101)は、当該比較の結果、ステップ907で識別したシグネチャーが、ステップ902で受け取ったテストデータ中に埋め込まれていると期待されるシグネチャーと一致しないことに応じて、当該テストデータが正しく生成されていないデータであることや改ざん等されていることを知る。
また、コンピュータ(101)は、ステップ908で再生したメタデータから、テストデータの作成日時や生成ツールの情報を得ることが可能である。
図6A〜図6B、図7、図8及び図9において、本発明の実施態様に従い、所定の画数を有する文字を持つ言語において、当該言語の文字の画数を属性値としてテストデータを生成する技法及び当該技法を使用して生成されたテストデータからシグネチャーを識別する技法を説明した。所定の画数(例えば、漢字の画数)を使用する本発明の実施態様は、下記に示す特徴を有する。
(1)本発明の実施態様に従い生成したテストデータ中の文字列は、漢字表から選択された文字(漢字)を含む。当業者は、当該漢字表において、生成されたデータに含まれる漢字を、所定の漢字に特定することが可能である。また、テストデータ中の文字列を構成する各漢字は、コンピュータが乱数を発生させて又はハッシュ値を計算して選択されたものである。従って、図6Bのテストデータ(609)に示しているとおり、ユーザは、生成される文字列を、明らかにテストデータとして生成されたものであると認識することが可能である。
(2)本発明の実施態様に従い生成したテストデータ中に埋め込まれたシグネチャーは、当該テストデータの文字列中の各漢字の画数の総数から復元される。従って、生成されたテストデータ自体がメタ情報を持っている。例えば、テストデータ中の「項目A」、「項目B」、「項目C」及び「項目D」中に含まれる漢字の画数の総和がそれぞれ、「20」、「13」、「12」及び「31」であるとする。この場合に、シグネチャーは、「20131231」である。また、当該シグネチャー「20131231」は、項目A〜Dからなるデータ・セットのすべてに共通する。従って、所定の項目に同じシグネチャーを埋め込むことが可能であるので、テストデータの一部(すなわち、データ・セットの一つ)だけを取り出しても識別されるシグネチャーは同じである。また、上記項目A〜Dからなるデータ・セットのうち、当該シグネチャー「20131231」と一致しないデータ・セットは、不正のデータ(例えば、改ざん等されたデータ)であると判別されることが可能である。
(3)文字列中の漢字の画数及びその総和は文字コードに関係ないので、漢字の文字コード変換が行われた場合であっても、当該漢字の画数及びその総和は同じである。すなわち、当該漢字の画数及びその総和は、文字コード変換が行われた場合であっても変化しない。従って、漢字を使用して生成されたデータの文字コードが変更された場合であっても、本発明の実施態様に従い生成したテストデータに関連付けられたシグネチャーは失われない。
(4)文字列中の漢字の画数及びその総和は、テストデータが印刷された場合であっても、当該印刷物から漢字の画数及びその総和を数えることは可能である。同様に、文字列中の漢字の画数及びその総和は、テストデータが表示画面上に表示されている場合であっても、当該画面から漢字の画数及びその総和を数えることは可能である。従って、ユーザは、本発明の実施態様に従い生成したテストデータの文字列がどのような表示形態であっても、シグネチャーを取り出せる。シグネチャーは、どのような場合であっても同じである。従って、テストデータ中の所定の文字列中の漢字の画数の総和を調べるだけで、当該テストデータが正しく生成されたデータであるかどうかや改ざん等されてないかどうかを容易に判断することが可能である。
(5)本発明の実施態様に従い生成したテストデータが複数の項目を有している場合において、例えば、テストデータ中の「項目A」、「項目B」、「項目C」及び「項目D」のデータ・セットを複数有している場合には、項目A〜Dそれぞれに同じシグネチャーが埋め込まれる。従って、テストデータが複数の項目からなるデータである場合に、どの項目にも同じシグネチャーを持たせることが可能である。
(6)本発明の実施態様に従い、文字列中の漢字の画数の総和を一定にしながら(すなわち、同じシグネチャーを有しながら)、組み合わせパターンを変更することが可能である。よって、生成する文字列の長さ(漢字の数)を変えることが可能である。従って、生成するテストデータのバリエーションを増やせ、さらには、重複するデータを最小にすることが可能である。また、生成したテストデータを、より現実的な長さを有するデータとすることが可能である。
(7)本発明の実施態様に従い生成したテストデータは、それ自体が、認識可能な固有の特徴であるシグネチャー(例えば、上記「20131231」)を有している。
図10は、図1に従うハードウェア構成を好ましくは備えており、本発明の実施態様に従いテストデータを自動的に生成するコンピュータの機能ブロック図の一例を示した図である。
コンピュータ(1001)は、本発明の実施態様に従いテストデータを自動的に生成するコンピュータであり、例えば図1に示すコンピュータである。
コンピュータ(1001)は、メタデータ受け取り手段(1011)、シグネチャー受け取り手段(1012)、シグネチャー分割手段(1013)、マッピング情報生成手段(1014)、総和決定手段(1015)、パターン生成手段(1016)、文字選択手段(1017)、並びに、テストデータ出力手段(1018)及びマッピング情報出力手段(1019)を備えている。
メタデータ受け取り手段(1011)は、例えば当該コンピュータ(101)がアクセス可能な記憶媒体(例えば、図1の符号108)からメタデータを受け取る。
メタデータ受け取り手段(1011)は、図4に記載のステップ402及び図8に記載のステップ802を実行しうる。
シグネチャー受け取り手段(1012)は、メタデータ受け取り手段(1011)が受け取ったメタデータから、生成する少なくとも1つの文字列に埋め込むシグネチャーを取り出す。または、シグネチャー受け取り手段(1012)は、メタデータ受け取り手段(1011)が受け取ったメタデータ中の、生成する少なくとも1つの文字列に埋め込むシグネチャーを受け取る。
シグネチャー受け取り手段(1012)は、図4に記載のステップ403及び図8に記載のステップ803を実行しうる。
シグネチャー分割手段(1013)は、シグネチャー受け取り手段(1012)が受け取ったシグネチャーを複数の要素に分割する。また、シグネチャー分割手段(1013)は、シグネチャーを1桁の数字に分割しうる。
シグネチャー分割手段(1013)は、図4に記載のステップ404及び412並びに図8に記載のステップ804及び812を実行しうる。
マッピング情報生成手段(1014)は、テストデータが複数の項目を持つデータである場合に、上記複数の要素それぞれを上記複数の項目それぞれに関連付けうる。また、マッピング情報生成手段(1014)は、テストデータが複数の項目を持つデータである場合に、上記複数の要素それぞれを項目中の語それぞれに関連付けうる。
マッピング情報生成手段(1014)は、図4に記載のステップ405及び図8に記載のステップ805を実行しうる。
総和決定手段(1015)は、シグネチャーの要素毎に関連付けられる文字列中の各文字固有の属性値の総和を決定する。
総和決定手段(1015)は、図4に記載のステップ406及び図8に記載のステップ806を実行しうる。
パターン生成手段(1016)は、総和決定手段(1015)が決定した総和になるように、文字列中の各文字の組み合わせパターンを少なくとも1つ決定しうる。
パターン生成手段(1016)は、図4に記載のステップ407及び図8に記載のステップ807を実行しうる。
文字選択手段(1017)は、シグネチャーの要素毎に、上記決定した総和になるように、上記文字列を構成する少なくとも1つの文字を、上記テストデータを作成する為に用意された文字を記述した文字表中から選択して、当該選択された文字を含む文字列からなるテストデータを生成する。
文字選択手段(1017)は、上記決定した総和になるように、上記文字列中の各文字固有の上記属性値の組み合わせパターンを少なくとも1つ決定しうる。また、文字選択手段(1017)は、上記各文字固有の上記属性値の組み合わせパターン毎に、上記文字列を構成する少なくとも1つの文字を上記文字表中から選択しうる。
文字選択手段(1017)は、図4に記載のステップ408〜409及び410並びに図8に記載のステップ808〜809及び810を実行しうる。
テストデータ出力手段(1018)は、文字選択手段(1017)が生成した文字列を雛形テーブル中に挿入して、テストデータを生成する。また、テストデータ出力手段(1018)は、上記生成した文字列をテストデータの形式に整える。
テストデータ出力手段(1018)は、上記生成されたテストデータを出力する。
テストデータ出力手段(1018)は、図4に記載のステップ411及び413(テストデータの出力)及び図8に記載のステップ811及び813(テストデータの出力)を実行しうる。
マッピング情報出力手段(1019)は、マッピング情報生成手段(1014)が生成したマッピング情報を例えば当該コンピュータ(101)がアクセス可能な記憶媒体(例えば、図1の符号108)に出力する。
マッピング情報出力手段(1019)は、図4に記載のステップ413(マッピング情報の出力)及び図8に記載のステップ813(マッピング情報の出力)を実行しうる。
図11は、図1に従うハードウェア構成を好ましくは備えており、本発明の実施態様に従いテストデータ中に埋め込まれたシグネチャーを識別するコンピュータの機能ブロック図の一例を示した図である。
コンピュータ(1101)は、本発明の実施態様に従いテストデータ中に埋め込まれたシグネチャーを識別するコンピュータであり、例えば図1に示すコンピュータである。
コンピュータ(1101)は、テストデータ受信手段(1111)、マッピング情報取り出し手段(1112)、解析手段(1113)、シグネチャー識別手段(1114)及びメタデータ出力手段(1115)を備えている。
テストデータ受信手段(1111)は、テストデータを受けとる。当該テストデータは、複数の項目を持つ。
テストデータ受信手段(1111)は、図5に記載のステップ502及び図9に記載のステップ902を実行しうる。
マッピング情報取り出し手段(1112)は、マッピング情報を受け取る。当該マッピング情報は、項目と当該項目に関連付けられた上記属性値の総和とのマッピング情報を含む。
マッピング情報取り出し手段(1112)は、図5に記載のステップ503及び図9に記載のステップ903を実行しうる。
解析手段(1113)は、マッピング情報取り出し手段(1112)が受け取ったマッピング情報に基づいて、上記テストデータ中の文字列の各文字固有の属性値を解析して、当該属性値の総和を求める。
解析手段(1113)は、図5に記載のステップ504〜506及び図9に記載のステップ904〜906を実行しうる。
シグネチャー識別手段(1114)は、解析手段(1113)が求めた総和に基づいて、上記テストデータのシグネチャーを識別する。
また、シグネチャー識別手段(1114)は、上記識別したシグネチャーを組み合わせて、複数のシグネチャーを持つメタデータを再生する。
シグネチャー識別手段(1114)は、図5に記載のステップ507〜508及び図9に記載のステップ907〜908を実行しうる。
メタデータ出力手段(1115)は、シグネチャー識別手段(1114)が再生したメタデータを記憶媒体中に格納する。
メタデータ出力手段(1115)は、図5に記載のステップ509及び図9に記載のステップ909を実行する。
図12は、本発明の実施態様に従い、文字列中の母音であることを示す値の総和になるように選択された文字列(文字列中の母音文字と子音文字との組み合わせ)の例を示す。
当該文字列の例では、当該文字列中の母音文字の総和が1(1母音)、2(2母音)、3(3母音)、4(4母音)及び5(5母音)の場合である。当該文字列の例からも明らかなように、生成された文字列は明らかにテストデータとして生成されたものであることが分かる。また、当該生成された文字列は、当該文字列自体が上記シグネチャー(文字列中の母音であることを示す値の総和)を有している。
図13は、本発明の実施態様に従い、文字列中の各文字の画数の総和になるように選択された文字列の例を示す。
当該下記文字列の例では、当該文字列中の漢字の画数の総和が12画〜24画の場合である。当該文字列の例からも明らかなように、生成された文字列は明らかにテストデータとして生成されたものであることが分かる。また、当該生成された文字列は、当該文字列自体が上記シグネチャ(文字列中の各文字の画数の総和)を有している。