(57)【特許請求の範囲】
【請求項１】
クライアント端末とサーバとがネットワークを介して接続され、漢字文字を含む複数のレコードを有したデータを作成するテストデータ作成システムであって、
前記クライアント端末は、
入れ替え対象となる前記漢字文字の位置と入れ替え後の前記漢字文字を有する入れ替えレコードとを対応付けたランダムデータを生成する生成部、を備え、
前記サーバは、
前記漢字文字を含む複数のレコードから構成される入力データと、前記ランダムデータとを取得し、前記入れ替え対象となる漢字文字を、前記入れ替えレコードに含まれる前記位置の漢字文字に入れ替える入替処理部を有したサーバ制御部、
を備えることを特徴とするテストデータ作成システム。
【請求項２】
前記サーバは、漢字では通常使用されない文字である特異文字を記憶する特異文字データベースを記憶する記憶部をさらに備え、
前記入替処理部は、前記特異文字データベースに記憶されている特異文字が前記入力データに含まれているか否かを判定し、前記特異文字が前記入力データに含まれていると判定した場合には、前記特異文字を除いた漢字文字を入れ替える、
ことを特徴とする請求項１に記載のテストデータ作成システム。
【請求項３】
前記入替処理部は、前記特異文字が前記入力データに含まれていないと判定した場合には、前記特異文字以外の通常文字を、前記ランダムデータを参照して、前記入れ替えレコードに含まれる前記位置の漢字文字に入れ替えた入れ替え通常文字ファイルを生成し、前記特異文字が前記入力データに含まれていると判定した場合には、前記入れ替え通常文字ファイルに含まれる漢字文字のうち、除かれた前記特異文字の位置にある通常文字を前記特異文字に置き換えた入れ替え特異文字ファイルを生成する、
ことを特徴とする請求項２に記載のテストデータ作成システム。
【請求項４】
前記記憶部は、前記特異文字として旧字体、数字、記号、ヘキサコード文字を記憶し、
前記入替処理部は、前記入力データに旧字体、数字、記号、ヘキサコード文字が含まれていると判定した場合には、前記特異文字を除いた漢字文字を入れ替える、
ことを特徴とする請求項２または３に記載のテストデータ作成システム。
【請求項５】
前記サーバ制御部は、前記入れ替え通常文字ファイルまたは前記入れ替え特異文字ファイルに同姓同名の漢字文字があるか否かを判定し、同姓同名の漢字文字があると判定した場合には、その漢字文字を含むレコードを削除する同名削除部をさらに備える、
ことを特徴とする請求項３または４に記載のテストデータ作成システム。
【請求項６】
漢字文字を含む複数のレコードから構成される入力データと入れ替え対象となる前記漢字文字の位置と入れ替え後の前記漢字文字を有する入れ替えレコードとを対応付けたランダムデータとを取得し、前記入れ替え対象となる漢字文字を、前記入れ替えレコードに含まれる前記位置の漢字文字に入れ替える入替処理部を有した制御部、
を備えることを特徴とするテストデータ作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、漢字氏名と乱数を用いてテストデータを作成するテストデータ作成システム、およびテストデータ作成装置に関するものである。
【背景技術】
【０００２】
一般に、顧客向けのシステムを開発してそのテストを行う場合、顧客が実際に保有するデータ（本番データ）の貸出を受けることが多いが、その本番データには個人情報が含まれているため、個人情報保護の観点から、通常はデータの一部にマスキングが施される。この場合、マスキングをする位置によっては、本来は異なる漢字氏名であるが、マスキングをされた結果同じ漢字氏名となってしまい、本番データを用いて正しくテストができなくなってしまう場合がある。
【０００３】
例えば、本番データに「中田守一」という漢字氏名と「山田公一」という漢字氏名が含まれている場合、これらの２文字目と４文字目を一括してマスキングする場合、いずれも「○田○一」となり、異なる人物であるにもかかわらず、テストの際に同じ人物であるとして処理がされてしまう場合がある。
【０００４】
このような問題点を防ぐため、特許文献１では、マスキングする対象となる被マスキングデータ項目やマスキング方法をオペレータに指定させてマスキング処理をすることにより、柔軟にデータをマスキングすることを可能としている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−０３３４１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示された技術では、オペレータ操作によって被マスキングデータ項目を指定しているが、被マスキングデータの量が多い場合等には手間がかかり、その作業に多大な工数が発生してしまうという問題があった。すなわち、個人情報を保護しつつ適切なテストデータを作成するためには煩雑な作業が必要となっていた。
【０００７】
本発明は、上記に鑑みてなされたものであって、容易かつ適切に個人情報を保護したテストデータを作成することが可能なテストデータ作成システム、およびテストデータ作成装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明にかかるテストデータ作成システムは、クライアント端末とサーバとがネットワークを介して接続され、漢字文字を含む複数のレコードを有したデータを作成するテストデータ作成システムであって、前記クライアント端末は、入れ替え対象となる前記漢字文字の位置と入れ替え後の前記漢字文字を有する入れ替えレコードとを対応付けたランダムデータを生成する生成部、を備え、前記サーバは、前記漢字文字を含む複数のレコードから構成される入力データと、前記ランダムデータとを取得し、前記入れ替え対象となる漢字文字を、前記入れ替えレコードに含まれる前記位置の漢字文字に入れ替える入替処理部を有したサーバ制御部、を備えることを特徴とする。
【０００９】
また、本発明にかかるテストデータ作成装置は、漢字文字を含む複数のレコードから構成される入力データと、入れ替え対象となる前記漢字文字の位置と入れ替え後の前記漢字文字を有する入れ替えレコードとを対応付けたランダムデータとを記憶する記憶部と、前記入力データと前記ランダムデータとを取得し、前記入れ替え対象となる漢字文字を、前記入れ替えレコードに含まれる前記位置の漢字文字に入れ替える入替処理部を有した制御部と、を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、容易かつ適切に個人情報を保護したテストデータを作成することが可能なテストデータ作成システム、およびテストデータ作成装置を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態におけるテストデータ作成システムの構成を示す図である。
【図２Ａ】ランダムファイルのレイアウトの例を示す図である。
【図２Ｂ】ランダムファイルによって漢字データの各文字が変換される様子を示す図である。
【図３】外部ファイルのレイアウトの例を示す図である。
【図４】特異文字データベースのレイアウトの例を示す図である。
【図５】変換氏名ファイルのレイアウトの例を示す図である。
【図６】非変換氏名ファイルのレイアウトの例を示す図である。
【図７】通常文字ファイルのレイアウトの例を示す図である。
【図８】特異文字ファイルのレイアウトの例を示す図である。
【図９】マージファイルのレイアウトの例を示す図である。
【図１０】全マージファイルのレイアウトの例を示す図である。
【図１１】テストデータ作成システムの各部が行う処理の流れを示す図である。
【図１２】テストデータ作成処理のうち分離処理部が行う分離処理の処理手順を示すフローチャートである。
【図１３】特異文字別分割処理の処理手順を示すフローチャートである。
【図１４】通常文字入替処理の処理手順を示すフローチャートである。
【図１５】通常文字同名削除処理の処理手順を示すフローチャートである。
【図１６】通常文字入替処理の処理手順を示すフローチャートである。
【図１７】特異文字同名削除処理の処理手順を示すフローチャートである。
【図１８】マージ処理部が行うマージ処理の処理手順を示すフローチャートである。
【図１９】全マージ処理部が行う全マージ処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、本発明にかかるテストデータ作成システム、およびテストデータ作成装置の実施の形態を詳細に説明する。
【００１３】
図１は、本発明の実施の形態におけるテストデータ作成システム１０００の構成を示す図である。図１に示すように、テストデータ作成システム１０００は、クライアント端末１００とサーバ２００とを有し、これらが互いにＬＡＮ（Local  Area  Network）やＷＡＮ（Wide  Area  Network）等の一般的な通信網であるネットワーク３００を介して接続されている。なお、以下では特に図示していないが、クライアント端末１００とサーバ２００は、互いに通信するための通信部を有している。また、以下では、クライアント端末１００とサーバ２００とが異なる筺体である前提で説明しているが、１つの装置でこれらの各機能を実現することとしてもよい。
【００１４】
クライアント端末１００は、一般的なＰＣ（Personal  Computer）等の情報処理装置から構成され、テストデータ作成システム１０００の実行を指示し、または漢字データの各文字を入れ替えたランダムな漢字データを生成するためのランダムファイル２０１１を生成し、サーバ２００に送信する。以下では、クライアント端末１００は、表計算ソフトの乱数関数（漢字データが最大２５ケタの場合には、例えば、ＲＯＵＮＤ（ＲＡＮＤ（）＊２４＋１，０））を用いてランダムファイルを生成しているが、乱数が生成できるものであればどのような手法を用いても構わない。
【００１５】
図２Ａは、ランダムファイル２０１１のレイアウトの例を示す図である。図２Ａに示すように、ランダムファイル２０１１は、漢字データに含まれる文字の桁（文字項目）と、漢字データのレコードとが対応付けて記憶されている。図２Ａに示した例では、１レコード目の漢字データの１文字目は、１レコード目の漢字データの１文字目に置きかえる（すなわちそのままの状態となる）ことを意味し、１レコード目の漢字データの２文字目は、９レコード目の漢字データの２文字目に置きかえることを意味している。これ同様に、各レコード目の漢字データについて各文字が置きかえられる文字の位置が記憶されている。なお、ランダムファイル２０１１に用いられる乱数は、表計算ソフトにて都度作成されたものを使用し、個人情報である元の漢字氏名を逆算されないように保護する。
【００１６】
図２Ｂは、ランダムファイル２０１１によって漢字データの各文字が変換される様子を示す図である。図２Ｂに示した例では、変換される前の漢字データの１レコード目「佐藤△△△学△△△△」（姓：佐藤、名：学）の漢字氏名が、ランダムファイル２０１１の１レコード目を参照し、「佐下△△△善一△△△」に変換されていることが分かる。これは、１レコード目の１文字目の「佐」の文字が、ランダムファイルの１レコード目の１文字目「１」を参照して、そのまま置きかえられず、同レコードの２文字目の「藤」の文字が、ランダムファイルの１レコード目の２文字目「９」を参照して、漢字データの９レコード目の２文字目の「下」に置きかえられ、同様に１レコードの２文字目の「学」の文字が、ランダムファイルの１レコード目の６文字目「１０」を参照して、漢字データの１０レコード目の６文字目の「善」に置きかえられている状態を示している。このように、後述する処理では、漢字氏名の各文字がランダムファイル２０１１によってランダムに配置される。
【００１７】
外部ファイル２０１２は、顧客からテスト用に提供を受けるテストデータが記憶されているファイルである。この外部ファイル２０１２には、漢字データの各文字が入れ替えられる前の漢字データが記憶され、後述する各処理を行うことによって、漢字データの一部の文字が入れ替えられる。図３は、外部ファイル２０１２のレイアウトの例を示す図である。図３に示すように、外部ファイル２０１２には、漢字データとなる漢字氏名が他の様々な情報とともに記憶されている。図３に示す例では、漢字氏名として、１レコード目には「山田△突郎」、２レコード目には「佐藤△学」が記憶されている。以下これと同様に漢字氏名が記憶されている。
【００１８】
特異文字データベース２０１３は、漢字データでは通常使用されない文字（特異文字）を記憶するデータベースである。特異文字データベース２０１３に記憶されている特異文字は、あらかじめ管理者等によって設定される。例えば、特異文字として、「ゑ」や「碕」(通常は「崎」)等の旧字体、数字、記号、ヘキサコードの文字等の氏名として不適切な文字が特異文字として記憶されている。図４は、特異文字データベース２０１３のレイアウトの例を示す図である。図４に示すように、特異文字データベース２０１３には、旧字体をはじめとした各特異文字が記憶されている。なお、上述したランダムファイル２０１１、外部ファイル２０１２、特異文字データベース２０１３は、外部から提供される前提で説明しているが、あらかじめサーバ２００に記憶しておいてもよい。続いて、サーバ２００について説明する。
【００１９】
サーバ２００は、一般的なサーバ装置から構成され、クライアント端末１００からの指示に応じてテストデータに含まれる漢字データの各文字の配置をランダムにしたテストデータを生成するものである。図１に示すように、サーバ２００は、記憶部２０１と、制御部２０２とを有している。
【００２０】
記憶部２０１は、ＨＤＤ（Hard  Disk  Drive）等の記憶装置から構成され、変換氏名ファイル２０１３と、非変換氏名ファイル２０１４と、通常文字ファイル２０１５と、特異文字ファイル２０１６と、マージファイル２０１７と、全マージファイル２０１８とを記憶している。
【００２１】
変換氏名ファイル２０１３は、後述する分離処理部２０２１によって変換が可能な漢字データを含むレコードと、変換が不可能な漢字データを含むレコードとが分離された場合の前者のデータを有したファイルである。図５は、変換氏名ファイル２０１３のレイアウトの例を示す図である。図５に示すように、変換氏名ファイル２０１３は、図３に示した外部ファイル２０１２と同様のレイアウトであるが、変換不能なレコード（例えば、「オールスペース（△）」のレコード）は、文字位置の配置を変換することができないレコードとして除かれたものとなっている。
【００２２】
非変換氏名ファイル２０１４は、後述する分離処理部２０２１によって変換が可能な漢字データを含むレコードと、変換が不可能な漢字データを含むレコードとが分離された場合の後者のデータを有したファイルである。図６は、非変換氏名ファイル２０１４のレイアウトの例を示す図である。図６に示すように、非変換氏名ファイル２０１４は、図５に示した外部ファイル２０１２と同様のレイアウトであるが、変換不能なレコードとして除かれた、「オールスペース（△）」のレコード、スペース（△）がないレコード、スペース（△）が複数あるレコードが記憶されている。
【００２３】
通常文字ファイル２０１５は、後述する文字分割処理部２０２２によって変換氏名ファイル２０１３特異文字を含まないレコードと、特異文字を含むレコードとに分割された場合の前者のデータを有したファイルである。図７は、通常文字ファイル２０１５のレイアウトの例を示す図である。図７に示すように、通常文字ファイル２０１５は、図３に示した外部ファイル２０１２等と同様のレイアウトであるが、特異文字を含まないものとなっている。
【００２４】
特異文字ファイル２０１６は、後述する文字分割処理部２０２２によって変換氏名ファイル２０１３特異文字を含まないレコードと、特異文字を含むレコードとに分割された場合の後者のデータを有したファイルである。図８は、特異文字ファイル２０１６のレイアウトの例を示す図である。図８に示すように、特異文字ファイル２０１６は、図３に示した外部ファイル２０１２等と同様のレイアウトであるが、特異文字を含むものとなっている。
【００２５】
マージファイル２０１７は、通常文字ファイル２０１５と特異文字ファイル２０１６とをマージしたファイルである。後述するように、通常文字ファイル２０１５および特異文字ファイル２０１６に含まれる漢字データの文字が入れ替えられ、その結果同名となった漢字データが削除された後のデータである。図９は、マージファイル２０１７のレイアウトの例を示す図である。図９に示すように、マージファイル２０１７は、図３に示した外部ファイル２０１２等と同様のレイアウトであるが、通常文字だけでなく、特異文字を含む漢字データが記憶されている。
【００２６】
全マージファイル２０１８は、上述したマージファイル２０１７が記憶するレコードのほか、非変換氏名ファイル２０１４のレコードを含むファイルである。マージファイル２０１７の場合と同様、通常文字ファイル２０１５および特異文字ファイル２０１６に含まれる漢字データの文字が入れ替えられ、その結果同名となった漢字データが削除された後のデータが記憶されている。図１０は、全マージファイル２０１８のレイアウトの例を示す図である。図１０に示すように、全マージファイル２０１８は、図３に示した外部ファイル２０１２等と同様のレイアウトであるが、通常文字や特異文字、変換が不可能な文字を含む漢字データが記憶されている。続いて、図１に戻って制御部２０２について説明する。
【００２７】
制御部２０２は、ＣＰＵ（Central  Processing  Unit）等の演算装置から構成され、サーバ２００の各処理の実行を司るものである。図１に示すように、制御部２０２は、分離処理部２０２１と、特異文字別分割処理部２０２２と、通常文字入替処理部２０２３と、通常文字同名削除部２０２４と、特異文字入替処理部２０２５と、特異文字同名削除部２０２６と、マージ処理部２０２７と、全マージ処理部２０２８とを有している。
【００２８】
図１１は、テストデータ作成システム１０００の各部が行う処理の流れを示す図である。以下では、あらかじめ管理者等がクライアント端末１００を操作して図２に示したランダムファイル２０１１を生成しているものとする。
【００２９】
図１１に示すように、まず、サーバ２００は、外部ファイル２０１２の提供を受けて、記憶部２０１に記憶されると、分離処理部２０２１は、漢字氏名の変換が可能な漢字データを含むレコードを変換氏名ファイル２０１３に記憶させ、漢字氏名の変換が不可能な漢字データを含むレコードを非変換氏名ファイル２０１４に記憶させる。その後、特異文字別分割処理部２０２２は、特異文字データベース２０１３と変換氏名ファイル２０１３とを読み込み、変換氏名ファイル２０１３の中で特異文字を含まないレコードを抽出して通常文字ファイル２０１５に記憶させ、変換氏名ファイル２０１３の中で特異文字を含むレコードを抽出して特異文字ファイル２０１６に記憶させる。
【００３０】
そして、通常文字入替処理部２０２３は、ランダムファイル２０１１と通常文字ファイル２０１５とを読み込み、ランダムファイル２０１１に記憶されている乱数と漢字データの文字との関係に従って、漢字データの各文字を入れ替え、入れ替えた後の通常文字ファイル２０１５を出力する。その後、通常文字同名削除処理部２０２４は、漢字データの各文字を入れ替えた後の通常文字ファイル２０１５と、その入れ替え前の通常文字ファイル２０１５とを読み込み、同じ漢字データとなっているレコードを削除する。なお、以下ではこれら２つのファイルを比較してレコードの重複を判定し、重複しているレコードを削除しているが、例えば、漢字データの各文字を入れ替えた後の通常文字ファイル２０１５の中でレコードが重複しているか否かをさらに判定し、重複しているレコードを削除することとしてもよい。
【００３１】
一方、特異文字別分割処理部２０２２が特異文字ファイル２０１６を記憶すると、特異文字入替処理部２０２５は、ランダムファイル２０１１と通常文字ファイル２０１５と特異文字ファイル２０１６とを読み込み、ランダムファイル２０１１に記憶されている乱数と漢字データの文字との関係に従って、漢字データの各文字を入れ替え、入れ替えた後の特異文字ファイル２０１６を出力する。その後、特異文字同名削除処理部２０２６は、漢字データの各文字を入れ替えた後の特異文字ファイル２０１６と、その入れ替え前の特異文字ファイル２０１６とを読み込み、同じ漢字データとなっているレコードを削除する。なお、以下ではこれら２つのファイルを比較してレコードの重複を判定し、重複しているレコードを削除しているが、例えば、漢字データの各文字を入れ替えた後の特異文字ファイル２０１６の中でレコードが重複しているか否かをさらに判定し、重複しているレコードを削除することとしてもよい。
【００３２】
そして、マージ処理部２０２７は、漢字データの各文字が入れ替えられ、同じ漢字データを含むレコードが削除された後の通常文字ファイル２０１５と特異文字ファイル２０１６とを読み込み、マージファイル２０１７を生成する。また、全マージ処理部２０２８は、マージファイル２０１７と同様にこれらのファイルを読み込むほか、分離処理部２０２１によって分離された非変換氏名ファイル２０１４を読み込み、全マージファイル２０１８を生成する。このように生成されたマージファイル２０１７および全マージファイル２０１８に含まれるレコードのうち漢字データを有したレコードは漢字氏名についてユニークなファイルとなる。
【００３３】
以下では、これらのマージファイル２０１７および全マージファイル２０１８をテストデータとして使用する場合について説明しているが、同名削除後の通常文字ファイル２０１５、同名削除後の特異文字ファイル２０１６等の上述した各処理の途中で生成されるファイルをテストデータとして使用してもよい。続いて、テストデータ作成システム１０００で行われるテストデータ作成処理について説明する。
【００３４】
図１２は、テストデータ作成処理のうち分離処理部２０２１が行う分離処理の処理手順を示すフローチャートである。図１２に示すように、分離処理部２０２１は、外部ファイル２０１２を読み込み（ステップＳ１２０１）、その中の各レコードの漢字氏名が全てスペースであるか否かを判定する（ステップＳ１２０２）。そして、分離処理部２０２１は、各レコードの漢字氏名が全てスペースであると判定した場合（ステップＳ１２０２；Ｙｅｓ）、ステップＳ１２０６に進み、そのレコードを非変換氏名ファイル２０１４に出力する。
【００３５】
一方、分離処理部２０２１は、各レコードの漢字氏名が全てスペースでないと判定した場合（ステップＳ１２０２；Ｎｏ）、さらに、漢字氏名にスペースがあるか否かを判定する（ステップＳ１２０３）。分離処理部２０２１は、漢字氏名にスペースがないと判定した場合（ステップＳ１２０３；Ｎｏ）、ステップＳ１２０６に進み、ステップＳ１２０２の場合と同様、そのレコードを非変換氏名ファイル２０１４に出力する。
【００３６】
一方、分離処理部２０２１は、漢字氏名にスペースがあると判定した場合（ステップＳ１２０３；Ｙｅｓ）、さらに、漢字氏名にスペースが２つ以上含まれているか否かを判定する（ステップＳ１２０４）。分離処理部２０２１は、そして、分離処理部２０２１は、漢字氏名にスペースが２つ以上含まれていると判定した場合（ステップＳ１２０４；Ｙｅｓ）、ステップＳ１２０２等の場合と同様、そのレコードを非変換氏名ファイル２０１４に出力する。
【００３７】
一方、分離処理部２０２１は、漢字氏名にスペースが２つ以上含まれていないと判定した場合（ステップＳ１２０４；Ｎｏ）、そのレコードを変換氏名ファイル２０１３に出力する。このステップＳ１２０４の処理が終了すると、図１２に示した全ての処理が終了する。
【００３８】
図１３は、テストデータ作成処理のうち特異文字別分割処理部２０２２が行う特異文字別分割処理の処理手順を示すフローチャートである。図１３に示すように、特異文字別分割処理部２０２２は、図１２に示した分離処理で作成された変換氏名ファイル２０１３を読み込み（ステップＳ１３０１）、読み込んだ変換氏名ファイル２０１３のレコードに含まれる漢字氏名と特異文字データベース２０１３に記憶されている特異文字とを１文字ずつ比較し、該当する文字の桁に、特異文字であることを示す文字区分「１」を設定する（ステップＳ１３０２）。
【００３９】
例えば、以下に示すように、漢字氏名の各文字と文字区分の桁とが対応付けられ、特異文字に該当する２文字目の漢字「碕」、４文字目の漢字「ゑ」に対応する2文字目の文字区分および４文字目の文字区分に「１」が設定される。
【００４０】
(例)
0005936892.tif 000002
【００４１】
そして、特異文字別分割処理部２０２２は、漢字氏名に特異文字があるか否か（すなわち、そのレコードの漢字氏名の文字区分に「１」を設定したか否か）を判定し（ステップＳ１３０３）、漢字氏名に特異文字がないと判定した場合（ステップＳ１３０３；Ｎｏ）、そのレコードを通常文字ファイル２０１５に出力する（ステップＳ１３０４）。
【００４２】
一方、特異文字別分割処理部２０２２は、漢字氏名に特異文字があると判定した場合（ステップＳ１３０３；Ｙｅｓ）、そのレコードを特異文字ファイル２０１６に出力する（ステップＳ１３０５）。このステップＳ１３０４またはＳ１３０５の処理が終了すると、図１３に示した全ての処理が終了する。
【００４３】
図１４は、テストデータ作成処理のうち通常文字入替処理部２０２３が行う通常文字入替処理の処理手順を示すフローチャートである。図１４に示すように、通常文字入替処理部２０２３は、図１３に示した特異文字別分割処理で作成された通常文字ファイル２０１５を読み込み（ステップＳ１４０１）、その入力件数がこの処理で作成する溜め込みテーブルのレコード数を上回ったか（溜め込みテーブルのレコード数に達したか）、または通常文字ファイル２０１５の入力が完了したか否かを判定し（ステップＳ１４０２）、入力件数がテーブルのレコード件数に達した、または入力が完了したと判定した場合（ステップＳ１４０２；Ｙｅｓ）、全件分処理したと判定し、ステップＳ１４０５に進む。
【００４４】
一方、通常文字入替処理部２０２３は、入力件数がテーブル件数に達していない、または入力が完了していないと判定した場合（ステップＳ１４０２；Ｎｏ）、読み込んだレコードの漢字氏名を姓と名に分けて溜め込みテーブルに溜め込み（ステップＳ１４０３）、次のレコードを読み込み（ステップＳ１４０４）、ステップＳ１４０２に戻って、最終レコードが処理されるまでステップＳ１４０２〜Ｓ１４０４の処理を繰り返す。
【００４５】
通常文字入替処理部２０２３は、溜め込みテーブルに溜め込まれるデータとして、例えば、以下に示すように、溜め込みテーブルの各レコードを姓と名に分け、読み込んだレコードの漢字氏名のうちのスペース（△）より前を姓項目に設定し、漢字氏名のうちのスペース（△）より後を名項目に設定する。
【００４６】
(溜め込み例)
0005936892.tif 000003
【００４７】
そして、通常文字入替処理部２０２３は、ステップＳ１４０２において全件分処理したと判定すると、ランダムファイル２０１１を読み込む（ステップＳ１４０５）。ランダムファイル２０１１については図２Ａ、図２Ｂにおいて示したが、例えば、通常文字入替処理部２０２３は、以下に示すようなランダムファイル２０１１を読み込む。
【００４８】
(ランダムファイル例)
0005936892.tif 000004
【００４９】
通常文字入替処理部２０２３は、ランダムファイル２０１１を読み込むと、ランダムファイル２０１１の各レコードの文字項目（１文字目、２文字目等、文字の順番を示す項目）と、溜め込みテーブルに溜め込まれているレコードに含まれる漢字氏名の各文字とを取得し、その漢字氏名の各文字のうち、ランダムファイル２０１１の文字項目で指定されたレコードの文字項目に入れ替えた半完成漢字氏名を生成する（ステップＳ１４０６）。
【００５０】
例えば、通常文字入替処理部２０２３は、溜め込みテーブルに溜め込まれたレコードの漢字氏名（上述した例では、１レコード目「山田△△太郎△△」、２レコード目「伊集院△竹千代△」、３レコード目「長曽可部重盛彦丸」）を読み込むとともに、ランダムファイル２０１１の１レコード目のデータ「１２１３１２１３」を読み込む。そして、通常文字入替処理部２０２３は、ランダムファイル２０１１の１レコード目のデータのうちの１文字目の項目「１」を取得する。この項目の値が、何レコード目の漢字氏名の各文字の中の何番目の文字を取得するのかを表すものとなっている。すなわち、ランダムファイル２０１１のレコードの１文字目の数値「１」は、１レコード目の漢字氏名の１文字目を取得することを示している。この例では、１レコード目の漢字氏名「山田△△太郎△△」のうちの１文字目は「山」であるため、半完成漢字氏名の１文字目に「山」を設定する。
【００５１】
続いて、通常文字入替処理部２０２３は、ランダムファイル２０１１の１レコード目のデータのうちの２文字目の項目「２」を取得する。この例では、２レコード目の漢字氏名「伊集院△竹千代△」のうちの２文字目は「集」であるため、半完成漢字氏名の２文字目に「集」を設定する。さらに、通常文字入替処理部２０２３は、ランダムファイル２０１１の１レコード目のデータのうちの３文字目の項目「１」を取得する。この例では、１レコード目の漢字氏名「山田△△太郎△△」のうちの３文字目は「スペース（△）」であるため、半完成漢字氏名の３文字目に「スペース（△）」を設定する。
【００５２】
これと同様に、通常文字入替処理部２０２３は、ランダムファイル２０１１の１レコード目のデータのうちの４文字目の項目「３」を取得し、３レコード目の漢字氏名「長曽可部重盛彦丸」のうちの４文字目は「部」であるため、半完成漢字氏名の４文字目に「スペース（△）」を設定する。以降、名の１文字目〜４文字目も同様に設定され、姓「山集△部」、名「太千△丸」とする半完成漢字氏名が生成される。このようにステップＳ１４０６の処理を行うことによって、例えば、以下のように、各文字の位置が入れ替えられた漢字が設定された半完成漢字氏名が生成され、このような半完成漢字氏名が、通常文字ファイル２０１５の全レコード分について生成される。
【００５３】
(半完成漢字氏名)
0005936892.tif 000005
【００５４】
その後、通常文字入替処理部２０２３は、生成した半完成漢字氏名のうちの「氏」、「名」の中にスペースがある場合には、以下に示すように桁詰め（スペース詰め）を実行する（ステップＳ１４０７）。
【００５５】
(スペース詰め後漢字氏名)
0005936892.tif 000006
【００５６】
通常文字入替処理部２０２３は、さらに、スペース詰めした後の漢字氏名について、
「姓」および「名」の漢字を取り出し、以下に示すように、これらの間にスペース（△）を挿入する形式（「姓」+「△」+「名」）の形式で半完成漢字氏名を再構築し、最大文字数を超える文字がある場合（上の例では、姓名それぞれ５文字以上の場合）、その文字を削除して完成漢字氏名を生成する（ステップＳ１４０８）。
(完成漢字氏名)
0005936892.tif 000007
【００５７】
この例では漢字氏名が桁あふれすることはないが、例えば、文字数が最大１０文字を想定している場合、姓が「愛上尾下」、名が「記区家子差巣」のような場合、名が５文字以上となっているため、最後の文字「巣」を削除し、「愛上尾下△記区家子差」とする。
【００５８】
そして、通常文字入替処理部２０２３は、完成漢字氏名のうちの「姓」と「名」の間にスペース（△）が挿入されているか否かを確認し（ステップＳ１４０９）、「姓」と「名」の間にスペースが挿入されていることが確認できた場合（ステップＳ１４０９；Ｙｅｓ）、そのレコードを通常文字ファイル２０１５に出力する（ステップＳ１４１０）。
【００５９】
一方、通常文字入替処理部２０２３は、「姓」と「名」の間にスペースが挿入されていることが確認できない場合（ステップＳ１４０９；Ｎｏ）、エラーとして処理を終了させる。このとき、エラーとされたレコードを削除してもよい。
【００６０】
なお、ステップＳ１４０８において、通常文字入替処理部２０２３は、姓、名、または姓名共に文字数が長すぎるため、全ての文字が完成漢字氏名に設定できない場合、例えば、以下に示すように、完成漢字氏名に設定できる文字のみで完成漢字氏名とし、姓名の漢字部分を抽出し、「姓」+「△」+「名」の形式で半完成漢字氏名を再構築する。以下の例では、最後の２文字「衛門」が削除されて完成漢字氏名が生成されている。
【００６１】
(スペース詰め後漢字氏名：氏名共長すぎる場合)
0005936892.tif 000008
【００６２】
(完成漢字氏名：出力は行う)
0005936892.tif 000009
【００６３】
この処理の結果、「姓」と「名」との間に「スペース（△）」が設定されている場合（ステップＳ１４０９；Ｙｅｓ）、そのレコードが通常文字ファイル２０１５に出力されることとなる。
【００６４】
また、「姓」が長すぎるため、全ての文字が完成漢字氏名に設定できない場合、例えば、以下に示すように、設定できる文字のみで完成漢字氏名とし、姓名の漢字部分を抽出し、「姓」+「△」+「名」の形式で半完成漢字氏名を再構築する。このとき、「姓」が長すぎることによって「姓」+「△」+「名」の形式で半完成漢字氏名が再構築できない場合には、通常文字入替処理部２０２３は、そのレコードは通常文字ファイル２０１５に出力しない。
【００６５】
(スペース詰め後漢字氏名：姓が長すぎる場合)
0005936892.tif 000010
【００６６】
(完成漢字氏名：出力は行わない)
0005936892.tif 000011
【００６７】
このように、ステップＳ１４１０の処理が終了すると、図１４に示した全ての処理が終了する。続いて、図１１に戻ってテストデータ作成処理のうち通常文字同名削除処理部２０２４が行う通常文字同名削除処理について説明する。
【００６８】
図１５は、通常文字同名削除処理の処理手順を示すフローチャートである。図１５に示すように、通常文字同名削除処理部２０２４は、通常文字入替処理部２０２３が文字を入れ替える前の通常文字ファイル２０１５と、通常文字入替処理部２０２３が文字を入れ替えた後の通常文字ファイル２０１５とを読み込み（ステップＳ１５０１）、両者に漢字氏名が一致するレコードがあるか否かを判定する（ステップＳ１５０２）。
【００６９】
そして、通常文字同名削除処理部２０２４は、両者に漢字氏名が一致するレコードがあると判定した場合（ステップＳ１５０２；Ｙｅｓ）、重複レコードがあると判断し、処理を終了させる。一方、通常文字同名削除処理部２０２４は、両者に漢字氏名が一致するレコードがないと判定した場合（ステップＳ１５０２；Ｎｏ）、そのレコードを通常文字ファイル２０１５に出力する（ステップＳ１５０３）。
【００７０】
このように、図１４、１５に示した各処理が行われることによって、重複のない入れ替え後の漢字氏名を含む通常文字ファイル２０１５が生成されることとなる。続いて、特異文字を有した漢字氏名の文字を入れ替える処理について説明する。
【００７１】
図１６は、テストデータ作成処理のうち特異文字入替処理部２０２５が行う通常文字入替処理の処理手順を示すフローチャートである。図１６に示すように、特異文字入替処理部２０２５は、図１３に示した特異文字別分割処理で作成された特異文字ファイル２０１６を読み込む（ステップＳ１６０１）。例えば、特異文字入替処理部２０２５は、特異文字ファイル２０１６の以下のレコードを読み込む。
【００７２】
(入力特異文字ファイル)
0005936892.tif 000012
【００７３】
そして、特異文字入替処理部２０２５は、読み込んだレコード中の特異文字を、姓と名に分けて退避し、否時レイアウトを有する退避レコードを生成する（ステップＳ１６０２）。このとき、特異文字入替処理部２０２５は、以下に示すように、特異文字を、退避前のレコードと同じ位置に退避させる。以下では、特異文字である「碕」および「彌」の各文字が、元のレコードの氏名のそれぞれの位置に対応する位置に退避されている。
【００７４】
(特異文字退避)
0005936892.tif 000013
【００７５】
特異文字入替処理部２０２５は、通常文字ファイル２０１５を読み込み（ステップＳ１６０３）、その入力件数がこの処理で作成する溜め込みテーブルのレコード数を上回ったか（溜め込みテーブルのレコード数に達したか）、または特異文字ファイル２０１６の入力が完了したか否かを判定し（ステップＳ１６０４）、入力件数がテーブルのレコード件数に達した、または入力が完了したと判定した場合（ステップＳ１６０４；Ｙｅｓ）、全件分処理したと判定し、ステップＳ１６０７に進む。
【００７６】
一方、特異文字入替処理部２０２５は、入力件数がテーブル件数に達していない、または入力が完了していないと判定した場合（ステップＳ１６０４；Ｎｏ）、図１４に示した場合と同様に、読み込んだレコードの漢字氏名を姓と名に分けて溜め込みテーブルに溜め込み（ステップＳ１６０５）、次のレコードを読み込み（ステップＳ１６０６）、ステップＳ１６０４に戻って、最終レコードが処理されるまでステップＳ１６０４〜Ｓ１６０６の処理を繰り返す。
【００７７】
特異文字入替処理部２０２５は、図１４に示した場合と同様に、溜め込みテーブルに溜め込まれるデータとして、例えば、以下に示すように、溜め込みテーブルの各レコードを姓と名に分け、読み込んだレコードの漢字氏名のうちのスペース（△）より前を姓項目に設定し、漢字氏名のうちのスペース（△）より後を名項目に設定する。
【００７８】
(溜め込み例)
0005936892.tif 000014
【００７９】
そして、特異文字入替処理部２０２５は、ステップＳ１６０４において全件分処理したと判定すると、ランダムファイル２０１１を読み込む（ステップＳ１６０７）。ランダムファイル２０１１については図２Ａ、図２Ｂにおいて示したが、例えば、特異文字入替処理部２０２５は、以下に示すようなランダムファイル２０１１を読み込む。
【００８０】
(ランダムファイル例)
0005936892.tif 000015
【００８１】
特異文字入替処理部２０２５は、ランダムファイル２０１１を読み込むと、図１４に示した場合と同様に、ランダムファイル２０１１の各レコードの文字項目（１文字目、２文字目等、文字の順番を示す項目）と、溜め込みテーブルに溜め込まれているレコードに含まれる漢字氏名の各文字とを取得し、その漢字氏名の各文字のうち、ランダムファイル２０１１の文字項目で指定されたレコードの文字項目に入れ替えた半完成漢字氏名を生成する（ステップＳ１６０８）。具体的な例については既に図１４において説明しているため、ここではその説明を省略する。
【００８２】
その後、特異文字入替処理部２０２５は、ステップＳ１６０２において生成した退避レコードの文字を、ステップＳ１６０８において生成した半完成漢字氏名に設定する（ステップＳ１６０９）。例えば、特異文字入替処理部２０２５は、以下に示すように、半完成漢字氏名が「山集△部太千△丸」の場合、退避レコードと半完成漢字氏名とを比較し、半漢字氏名に退避レコード「△碕△△彌△△△」を重ね合わせて特異文字を設定し、特異文字を設定した後の半完成漢字氏名「山碕△部彌千△丸」を生成する。
【００８３】
(半完成漢字氏名)
0005936892.tif 000016
【００８４】
(半完成漢字氏名)＋(特異文字退避)
0005936892.tif 000017
【００８５】
その後、特異文字入替処理部２０２５は、生成した半完成漢字氏名のうちの「氏」、「名」の中にスペースがある場合には、以下に示すように桁詰め（スペース詰め）を実行する（ステップＳ１６１０）。
【００８６】
(スペース詰め後漢字氏名)
0005936892.tif 000018
【００８７】
特異文字入替処理部２０２５は、さらに、スペース詰めした後の漢字氏名について、
「姓」および「名」の漢字を取り出し、以下に示すように、これらの間にスペース（△）を挿入する形式（「姓」+「△」+「名」）の形式で半完成漢字氏名を再構築し、最大文字数を超える文字がある場合（上の例では、姓名それぞれ５文字以上の場合）、その文字を削除して完成漢字氏名を生成する（ステップＳ１６１１）。
【００８８】
(完成漢字氏名)
0005936892.tif 000019
【００８９】
この例では漢字氏名が桁あふれすることはないが、図１４に示した場合と同様に、例えば、文字数が最大１０文字を想定している場合、姓が「愛上尾下」、名が「記区家子差巣」のような場合、名が５文字以上となっているため、最後の文字「巣」を削除し、「愛上尾下△記区家子差」とする。
【００９０】
そして、特異文字入替処理部２０２５は、完成漢字氏名のうちの「姓」と「名」の間にスペース（△）が挿入されているか否かを確認し（ステップＳ１６１２）、「姓」と「名」の間にスペースが挿入されていることが確認できた場合（ステップＳ１６１２；Ｙｅｓ）、そのレコードを特異文字ファイル２０１６に出力する（ステップＳ１６１３）。
【００９１】
一方、特異入替処理部２０２５は、「姓」と「名」の間にスペースが挿入されていることが確認できない場合（ステップＳ１６１２；Ｎｏ）、エラーとして処理を終了させる。このとき、エラーとされたレコードを削除してもよい。
【００９２】
なお、ステップＳ１６１１において、特異文字入替処理部２０２５は、姓、名、または姓名共に文字数が長すぎるため、全ての文字が完成漢字氏名に設定できない場合、例えば、以下に示すように、完成漢字氏名に設定できる文字のみで完成漢字氏名とし、姓名の漢字部分を抽出し、「姓」+「△」+「名」の形式で半完成漢字氏名を再構築する。以下の例では、最後の２文字「衛門」が削除されて完成漢字氏名が生成されている。
【００９３】
(スペース詰め後漢字氏名：氏名共長すぎる場合)
0005936892.tif 000020
【００９４】
(完成漢字氏名：出力は行う)
0005936892.tif 000021
【００９５】
この処理の結果、「姓」と「名」との間に「スペース（△）」が設定されている場合（ステップＳ１６１１；Ｙｅｓ）、そのレコードが特異文字ファイル２０１６に出力されることとなる。
【００９６】
また、「姓」が長すぎるため、全ての文字が完成漢字氏名に設定できない場合、例えば、以下に示すように、設定できる文字のみで完成漢字氏名とし、姓名の漢字部分を抽出し、「姓」+「△」+「名」の形式で半完成漢字氏名を再構築する。このとき、「姓」が長すぎることによって「姓」+「△」+「名」の形式で半完成漢字氏名が再構築できない場合には、特異文字入替処理部２０２５は、そのレコードは特異文字ファイル２０１６に出力しない。
【００９７】
(スペース詰め後漢字氏名：姓が長すぎる場合)
0005936892.tif 000022
【００９８】
(完成漢字氏名：出力は行わない)
0005936892.tif 000023
【００９９】
このように、ステップＳ１６１３の処理が終了すると、図１６に示した全ての処理が終了する。続いて、図１１に戻ってテストデータ作成処理のうち特異文字同名削除処理部２０２６が行う特異文字同名削除処理について説明する。
【０１００】
図１７は、特異文字同名削除処理の処理手順を示すフローチャートである。図１７に示すように、特異文字同名削除処理部２０２６は、特異文字入替処理部２０２５が文字を入れ替える前の特異文字ファイル２０１６と、特異文字入替処理部２０２５が文字を入れ替えた後の特異文字ファイル２０１６とを読み込み（ステップＳ１７０１）、両者に漢字氏名が一致するレコードがあるか否かを判定する（ステップＳ１７０２）。
【０１０１】
そして、特異文字同名削除処理部２０２６は、両者に漢字氏名が一致するレコードがあると判定した場合（ステップＳ１７０２；Ｙｅｓ）、重複レコードがあると判断し、処理を終了させる。一方、特異文字同名削除処理部２０２６は、両者に漢字氏名が一致するレコードがないと判定した場合（ステップＳ１７０２；Ｎｏ）、そのレコードを特異文字ファイル２０１６に出力する（ステップＳ１７０３）。
【０１０２】
このように、図１６、１７に示した各処理が行われることによって、重複のない入れ替え後の漢字氏名を含む特異文字ファイル２０１６が生成されることとなる。続いて、このように作成された通常文字ファイル２０１５、特異文字ファイル２０１６をマージする処理について説明する。
【０１０３】
図１８は、マージ処理部２０２７が行うマージ処理の処理手順を示すフローチャートである。図１８に示すように、マージ処理部２０２７は、重複のない入れ替え後の漢字氏名を含む通常文字ファイル２０１５および特異文字ファイル２０１６を読み込み（ステップＳ１８０１）、入力した順序でマージファイルを生成する（ステップＳ１８０２）。このとき、単に入力順ではなく、漢字氏名のアイウエオ順、あるいはレコードに顧客を識別するための顧客コードを有している場合には、その顧客コードでソートしてもよい。このように、通常文字と特異文字とがマージされたマージファイルが生成され、システムのテストデータとして使用されることとなる。
【０１０４】
図１９は、全マージ処理部２０２８が行う全マージ処理の処理手順を示すフローチャートである。図１９に示すように、全マージ処理部２０２７は、重複のない入れ替え後の漢字氏名を含む通常文字ファイル２０１５および特異文字ファイル２０１６、さらに図１２において分離処理部２０２１が分離処理を行った結果作成される非変換氏名ファイル２０１４を読み込み（ステップＳ１９０１）、入力した順序で全マージファイルを生成する（ステップＳ１９０２）。このとい、単に入力順ではなく、漢字氏名のアイウエオ順、あるいはレコードに顧客を識別するための顧客コードを有している場合には、その顧客コードでソートしてもよい。このように、通常文字と特異文字、および非変換文字がマージされた全マージファイルが生成され、システムのテストデータとして使用されることとなる。
【０１０５】
なお、マージファイルまたは全マージファイルのいずれのファイルを用いてテストを行うかについては、システムの規模やテストの内容等によって任意に選択できる。例えば、システム全体の総合テストを行う場合には、システムの開発者は、非変換文字を含む全てのデータを網羅した全マージファイルを使用し、個々のシステムのテストを行う場合には非変換文字を含まないマージファイルを使用することができる。
【０１０６】
このように、クライアント端末１００とサーバ２００とがネットワーク３００を介して接続され、漢字文字を含む複数のレコードを有したデータを作成するテストデータ作成システム１０００において、クライアント端末１００は、入れ替え対象となる漢字文字の位置と入れ替え後の漢字文字を有する入れ替えレコードとを対応付けたランダムデータを生成する生成部（制御部）を備え、サーバ２００は、漢字文字を含む複数のレコードから構成される入力データと、ランダムデータとを取得し、入れ替え対象となる漢字文字を、入れ替えレコードに含まれる位置の漢字文字に入れ替える入替処理部（通常文字入替処理部２０２３、特異文字入替処理部２０２５）を有したサーバ制御部を備えているので、容易かつ適切に個人情報を保護したテストデータを作成することが可能となる。例えば、アプリケーションの稼動テストでは、個人情報を保護しつつ、漢字氏名をテストデータとして用いることができる。また、個人情報を保護しつつ、システムテストで使用するユニークな漢字氏名を含むテストデータを短時間で大量に作成することができる。
【符号の説明】
【０１０７】
１０００      テストデータ作成システム
１００        クライアント端末
２００        サーバ
２０１        記憶部
２０１１      ランダムファイル
２０１２      外部ファイル
２０１３      変換氏名ファイル
２０１４      非変換氏名ファイル
２０１５      通常文字ファイル
２０１６      特異文字ファイル
２０１７      マージファイル
２０１８      全マージファイル
２０２        制御部
２０２１      分離処理部
２０２２      特異文字別分割処理部
２０２３      通常文字入替処理部
２０２４      通常文字同名削除部
２０２５      特異文字入替処理部
２０２６      特異文字同名削除部
２０２７      マージ処理部
２０２８      全マージ処理部
３００        ネットワーク。
【図１】
0005936892.tif 000024
【図２Ａ】
0005936892.tif 000025
【図２Ｂ】
0005936892.tif 000026
【図３】
0005936892.tif 000027
【図４】
0005936892.tif 000028
【図５】
0005936892.tif 000029
【図６】
0005936892.tif 000030
【図７】
0005936892.tif 000031
【図８】
0005936892.tif 000032
【図９】
0005936892.tif 000033
【図１０】
0005936892.tif 000034
【図１１】
0005936892.tif 000035
【図１２】
0005936892.tif 000036
【図１３】
0005936892.tif 000037
【図１４】
0005936892.tif 000038
【図１５】
0005936892.tif 000039
【図１６】
0005936892.tif 000040
【図１７】
0005936892.tif 000041
【図１８】
0005936892.tif 000042
【図１９】
0005936892.tif 000043