(57)【要約】      （修正有）【課題】複数の言語環境で実行される国際化ソフトウェアに対し効率的なテスト方法を提供する。【解決手段】変換テーブル３２０に基づき第１の言語の文字を第２の言語の文字に１対１に変換して、国際化ソフトウェアの第１の言語で記載された外部化されたリソース・ファイル３１０を擬似翻訳する。擬似翻訳されたテスト用リソース・ファイル３４０を参照して処理３５５を行う国際化ソフトウェアからの出力情報を、テスト項目ごとに用意した複数のフォント３７０〜３９５のいずれか１つを使用して表示する３６０。出力情報に含まれる複数のフォントの各々は、テスト対象となる複数の文字コードのグループと、その他の複数の文字コードのグループとに対し異なる対応付規則を使用して字形を対応づけることにより、当該フォントを用いた出力情報の表示において、テスト対象となる文字コードとその他の文字コードとを識別可能にする。【選択図】  図３
2008065794.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによって実行される、外部化されたリソース・ファイルを参照して処理を行う国際化ソフトウェアをテストする方法であって、
第１の言語で記載された前記外部化されたリソース・ファイルからデータを読み出すステップと、
前記第１の言語の文字を第２の言語の文字に１対１に対応させる変換テーブルを参照して、前記データに含まれる前記第１の言語の文字を前記第２の言語の文字に変換することにより、前記第１の言語で記載された前記外部化されたリソース・ファイルから前記第２の言語で記載されたテスト用リソース・ファイルを生成するステップと、
前記国際化ソフトウェアを実行するステップと、
前記テスト用リソース・ファイルを前記外部化されたリソース・ファイルとして参照して処理を行う前記国際化ソフトウェアから出力される出力情報を、前記国際化ソフトウェアのテスト項目ごとに用意された複数のフォントのうちの１つを参照して画面に表示するステップとを含み、
前記出力情報に含まれる文字コードは、前記出力情報に含まれるべき、前記変換テーブルに含まれる前記第２の言語の文字に対応する複数の文字コードの第２のグループ、前記出力情報に本来含まれるべきでない、前記第１の言語の文字に対応する複数の文字コードの第１のグループ、及び前記出力情報に本来含まれるべきでない、前記第１の言語の文字又は前記変換テーブルに含まれる前記第２の言語の文字のいずれにも対応しない複数の文字コードの第３のグループのいずれかに分類することが可能であり、
前記複数のフォントの各々は、前記国際化ソフトウェアのテストにおいてテスト対象となる複数の文字コードのグループと、所定の文字コード体系のその他の複数の文字コードのグループとに対し異なる対応付け規則を使用して字形を対応づけることにより、当該フォントを用いた前記出力情報の表示において、テスト対象となる文字コードとその他の文字コードとを識別可能にする、方法。
【請求項２】
前記複数のフォントのうちの１つを使用して表示するステップは、前記出力情報を、前記複数のフォントからユーザが選択した１つのフォントを使用して表示するステップを含む、請求項１に記載の方法。
【請求項３】
前記複数のフォントのうちの１つを使用して表示するステップは、使用するフォントを前記複数のフォントからユーザが選択した１つのフォントに切り替えて、前記出力情報を表示するステップを含む、請求項１に記載の方法。
【請求項４】
前記変換テーブルは、前記第１の言語の文字の一部を、前記第２の言語の文字のうち表示に関し問題を引き起こす可能性がある文字に１対１に対応させる、請求項１に記載の方法。
【請求項５】
前記テスト項目は、ハードコード文字列の検出を含み、当該ハードコード文字列の検出に使用されるフォントは、前記第１のグループを前記テスト対象の複数の文字コードのグループとし、前記第１のグループの複数の文字コードの各々に、当該文字コードに対応する前記第１の言語の文字の字形をそのまま対応させる、請求項１に記載の方法。
【請求項６】
前記テスト項目は、前記第２の言語において定義される文字の順番に従う文字列のソート結果の妥当性判断を含み、当該ソート結果の妥当性の判断に使用されるフォントは、前記第２のグループを前記テスト対象の複数の文字コードのグループとし、前記第２のグループの複数の文字コードの各々に、当該文字コードに対応する前記第２の言語の文字に定義された順番を示す字形を対応させる、請求項１に記載の方法。  
【請求項７】
更に、前記所定の文字コード体系のその他の複数の文字コードの各々に、同一の字形を対応させる、請求項５又は６に記載の方法。
【請求項８】
前記同一の字形は使用頻度の低い記号である、請求項７に記載の方法。
【請求項９】
前記テスト項目は、前記第２の言語に固有な文字の表示可能性判断を含み、当該表示可能性の判断に使用されるフォントは、前記第３のグループを前記テスト対象の複数の文字コードのグループとし、前記第３のグループの複数の文字コードの各々に、同一の字形を対応させる、請求項１に記載の方法。
【請求項１０】
前記テスト項目は、第１の言語で記載された前記外部化されたリソース・ファイルに含まれる文字列を確認する文字列確認を含み、当該文字列確認に使用されるフォントは、前記第２のグループを前記テスト対象の複数の文字コードのグループとし、前記第２のグループの複数の文字コードの各々に、当該文字コードに対応する前記第２の言語の文字を前記テスト用リソース・ファイルの生成の際に変換先の文字とした前記第１の言語の文字の字形を対応させる、請求項１に記載の方法。
【請求項１１】
外部化されたリソース・ファイルを参照して処理を行う国際化ソフトウェアをテストするための装置であって、
第１の言語で記載された前記外部化されたリソース・ファイル及び前記第１の言語の文字を第２の言語の文字に１対１に対応させる変換テーブルを格納する第１の格納部と、
前記変換テーブルを参照して前記第１の言語の文字を前記第２の言語の文字に変換することにより、前記外部化されたリソース・ファイルから前記第２の言語で記載されたテスト用リソース・ファイルを生成する生成手段と、
生成された前記テスト用リソース・ファイルを格納する第２の格納部と、
前記国際化ソフトウェアを実行する手段と、
前記テスト用リソースを前記外部化されたリソース・ファイルとして参照して処理を行う前記国際化ソフトウェアから出力される出力情報を、前記国際化ソフトウェアのテスト項目ごとに用意された複数のフォントのうちの１つを参照して表示画面を作成する表示画面作成部とを含み、
前記出力情報に含まれる文字コードは、前記出力情報に含まれるべき、前記変換テーブルに含まれる前記第２の言語の文字に対応する複数の文字コードの第２のグループ、前記出力情報に本来含まれるべきでない、前記第１の言語の文字に対応する複数の文字コードの第１のグループ、及び前記出力情報に本来含まれるべきでない、前記第１の言語の文字又は前記変換テーブルに含まれる前記第２の言語の文字のいずれにも対応しない複数の文字コードの第３のグループのいずれかに分類することが可能であり、
前記複数のフォントの各々は、前記国際化ソフトウェアのテストにおいてテスト対象となる複数の文字コードのグループと、所定の文字コード体系のその他の複数の文字コードのグループとに対し異なる対応付け規則を使用して字形を対応づけることにより、当該フォントを用いた前記出力情報の表示において、テスト対象となる文字コードとその他の文字コードとを識別可能にする、装置。
【請求項１２】
外部化されたリソース・ファイルを参照して処理を行う国際化ソフトウェアをテストするためのプログラムであって、コンピュータに、
第１の言語で記載された前記外部化されたリソース・ファイルからデータを読み出すステップと、
第１の言語の文字を第２の言語の文字に１対１に対応させる変換テーブルを参照して、前記データに含まれる前記第１の言語の文字を前記第２の言語の文字に変換することにより、前記第１の言語で記載された前記外部化されたリソース・ファイルから前記第２の言語で記載されたテスト用リソース・ファイルを生成するステップと、
前記テスト用リソースを前記外部化されたリソース・ファイルとして参照して処理を行う前記国際化ソフトウェアから出力される出力情報を、前記国際化ソフトウェアのテスト項目ごとに用意された複数のフォントのうちの１つを参照して画面に表示するステップとを実行させ、
前記出力情報に含まれる文字コードは、前記出力情報に含まれるべき、前記変換テーブルに含まれる前記第２の言語の文字に対応する複数の文字コードの第２のグループ、前記出力情報に本来含まれるべきでない、前記第１の言語の文字に対応する複数の文字コードの第１のグループ、及び前記出力情報に本来含まれるべきでない、前記第１の言語の文字又は前記変換テーブルに含まれる前記第２の言語の文字のいずれにも対応しない複数の文字コードの第３のグループのいずれかに分類することが可能であり、
前記複数のフォントの各々は、前記国際化ソフトウェアのテストにおいてテスト対象となる複数の文字コードのグループと、所定の文字コード体系のその他の複数の文字コードのグループとに対し異なる対応付け規則を使用して字形を対応づけることにより、当該フォントを用いた前記出力情報の表示において、テスト対象となる文字コードとその他の文字コードとを識別可能にする、プログラム。
【請求項１３】
第１の言語で記載された外部化されたリソース・ファイルに含まれる前記第１の言語のすべての文字を変換テーブルに基づいて第２の言語の文字に１対１に変換することにより生成されたテスト用リソース・ファイルを参照する国際化ソフトウェアのテストにおいて使用される、所定の文字コード体系を採用するフォントのデータ構造であって、
前記テストにおいてテスト対象となる複数の第１の文字コードと、
第１の規則に従って前記複数の第１の文字コードに１対１に対応付けられた複数の第１の字形情報と、
前記所定の文字コード体系のその他の複数の第２の文字コードと、
第２の規則に従って前記複数の第２の文字コードに１対１に対応付けられた複数の第２の字形情報とを含み、
前記複数の第１の文字コードは、前記第１の言語の文字に対応する複数の文字コード、前記変換テーブルに含まれる前記第２の言語の文字に対応する複数の文字コード、及び前記第１の言語の文字又は前記変換テーブルに含まれる前記第２の言語の文字のいずれにも対応しない複数の文字コードのうちのいずれかであり、
前記テスト用リソース・ファイルを参照して処理を行う前記国際化ソフトウェアの出力から前記第１の文字コードが検出される場合、当該第１の文字コードに対応する前記第１の字形情報が画面表示に使用され、前記国際化ソフトウェアの出力から前記第２文字コードが検出される場合、当該第２の文字コードに対応する前記第２の字形情報が画面表示に使用される、
データ構造。
【請求項１４】
前記フォントのデータ構造は、ハードコード文字列の検出に使用され、前記複数の第１の文字コードは、前記第１の言語の文字に対応する複数の文字コードであり、前記第１の規則は、前記複数の第１の文字コードの各々に、当該文字コードに対応する前記第１の言語の文字の字形をそのまま対応させる、請求項１３に記載のデータ構造。
【請求項１５】
前記フォントのデータ構造は、前記第２の言語において定義される文字の順番に従う文字列のソート結果の妥当性を判断するために使用され、前記複数の第１の文字コードは、前記変換テーブルに含まれる前記第２の言語の文字に対応する複数の文字コードであり、前記第１の規則は、前記複数の第１の文字コードの各々に、当該文字コードに対応する前記第２の言語の文字に定義された順番を示す字形を対応させる、請求項１３に記載のデータ構造。
【請求項１６】
前記第２の規則は、前記複数の第２の文字コードの各々に、同一の字形を対応させる、請求項１４又は１５に記載のデータ構造。
【請求項１７】
前記フォントのデータ構造は、前記第２の言語に固有な文字の表示可能性を判断するために使用され、前記複数の第１の文字コードは、前記第１の言語の文字又は前記変換テーブルに含まれる前記第２の言語の文字のいずれにも対応しない複数の文字コードであり、前記第１の規則は、前記複数の第１の文字コードの各々に、同一の字形を対応させる、請求項１３に記載のデータ構造。
【請求項１８】
前記フォントのデータ構造は、第１言語で記載された前記外部化されたリソース・ファイルに含まれる文字列を確認するために使用され、前記複数の第１の文字コードは、前記変換テーブルに含まれる前記第２の言語の文字に対応する複数の文字コードであり、前記第１の規則は、前記複数の第１の文字コードの各々に、当該文字コードに対応する前記第２の言語の文字を前記テスト用リソース・ファイルの生成の際に変換先の文字とした前記第１の言語の文字の字形を対応させる、請求項１３に記載のデータ構造。
【請求項１９】
前記テスト用リソース・ファイルは、前記第１の言語の文字の一部を、前記第２の言語の文字のうち表示に関し問題を引き起こす可能性がある文字に１対１に対応させて生成される、請求項１３に記載のデータ構造。
【請求項２０】
請求項１３乃至１９のいずれかに記載のデータ構造を記録する記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の言語環境で実行される国際化ソフトウェアをテストするための技術に関し、特に、オリジナル言語と異なる言語環境で実行される国際化ソフトウェアのユーザに対する出力に関するテストにおいて、テスト対象の視認性を向上させ、効率的なテストを可能とする技術に関する。  
【背景技術】
【０００２】
複数の言語に対応したソフトウェアを国際化ソフトウェアという。国際化ソフトウェアでは、ソースコードから画面に表示されるテキスト・ストリングの部分が切り離され、切り離されたテキスト・ストリングの部分は外部化されたリソース・ファイルとして保持される。外部化されたリソース・ファイルは国際化ソフトウェアの実行時に参照され、国際化ソフトウェアが画面表示を行うのに使用される。このような構成の採用により、国際化ソフトウェアの開発者は、外部化されたリソース・ファイルを他の言語に翻訳するだけで国際化ソフトウェアを他の言語に対応させることができる。しかも、外部化されたリソース・ファイルを一旦翻訳してしまえば、たとえ実行コードを変更してもその翻訳をやり直す必要はない。
【０００３】
ところで、このような国際化ソフトウェアの開発プロセスでは、各国の言語環境で国際化ソフトウェアが正しく動作するかをみるために様々な項目についてテストが行われる。その中でユーザに対する出力に関するテストをいくつかを紹介すると、まずユーザに表示されるメッセージやその他の文字列がソースコードから切り離され、リソース・ファイルとして正しく外部化されているかどうかを検証するテストがある。言い換えると、ユーザに表示されるメッセージやその他の文字列がソースコード内に直接記述（ハードコード）されていないかを確認するハードコード文字列検出テストである。また、アルファベット順など各言語に定義された順番で文字列のリストが正しくソートされるかを検証するソート結果の妥当性テストも行われる。更に、各言語に特有の文字が例えば文字化けなどすることなく正しく表示されるかを検証する言語固有文字の表示可能性テストも行われる。
【０００４】
ところが、外部化されたリソース・ファイルの翻訳は時間がかかるため、開発プロセスにおいて上記各項目をテストするために翻訳された外部化されたリソース・ファイルを使用することはできない。そこで従来開発されたのが、外部化されたリソース・ファイルを擬似翻訳し、これを目的の言語に翻訳された外部化されたリソース・ファイルとして利用する方法である。この従来技術では、オリジナルのリソース・ファイルの各項目に対し、オリジナル言語の文字列の前あるいは後ろに、問題を引き起こしやすい同一の翻訳先の言語の文字を追加することにより、外部化されたリソース・ファイルの擬似翻訳を作成する（特許文献１、２参照。）。また、オリジナル言語の文字である半角英字をすべて全角英字に置換することにより、擬似翻訳を作成する技術もある（特許文献３参照。）。そして擬似翻訳されたリソース・ファイルを参照して処理を行う国際化ソフトウェアの出力の画面表示において、オリジナル言語の文字列の各々に対し、追加した文字または全角英字が正しく表示されることを確認する。オリジナル言語の文字列のみが表示される場合は、その文字列はハードコードされた文字列である。また、追加した文字または全角英字が異なる文字に置き換わっていれば、これはいわゆる文字化けである。
【特許文献１】米国特許第６５０７８１２号明細書
【特許文献２】米国特許第６４５３４６２号明細書
【特許文献３】米国特許第６４２５１２３号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来技術によるテスト方法にはいくつかの問題がある。１つは、外部化されたリソース・ファイルに代入部をもつ文字列が含まれると、当該代入部に対してハードコード文字列の検出ができないという問題である。これは、擬似翻訳されたリソース・ファイルを参照して処理を行う国際化ソフトウェアの出力の表示画面では代入部を識別できないからである。また、上記従来技術ではオリジナル言語の文字列の前後に翻訳先の言語の同一の文字列を追加するため、複数の文字列をソートしてもオリジナル言語の文字列部分での評価となり、翻訳先の言語についてソート結果の妥当性を判断できない。また、翻訳先の言語に特有な複数の文字のすべてについて言語固有文字の表示可能性テストを行うためには、少なくとも１０種類以上の文字を検証する必要がある。しかし、上記従来技術ではすべてのオリジナル言語の文字列の先頭に同一パターンの文字群を追加するため、追加できる文字種は視認性を考慮すると２〜３種類に限られる。そのためより多くの文字種をカバーするためには複数の外部化されたリソース・ファイルを用意する必要がある。    
【０００６】
そこで、本出願の発明者は従来技術の擬似翻訳にいくつかの改良を加えた。１つめの改良は、オリジナル言語のリソース・ファイルの各項目に対し、オリジナル言語の文字列の先頭文字の前後に、あるいは前のみに、問題を引き起こしやすい翻訳先の言語の異なる文字を追加することである。２つめの改良は、リソース・ファイルに含まれる代入部の前後に代入部の開始と終了を明示するマークを追加することである。これらの改良により、擬似翻訳されたリソース・ファイルを参照して処理を行う国際化ソフトウェアの出力の画面表示では、オリジナル言語の文字列の先頭に翻訳先の言語の異なる文字列が表示されることになった。そのため、上記従来技術ではできなかったソート結果の妥当性テストを、改良された擬似翻訳を用いた国際化ソフトウェアの表示画面では行うことが可能となった。また、改良された擬似翻訳では、オリジナル言語の文字列の異なる先頭文字に任意の長さの翻訳先の言語の異なる文字を追加することができるようになった。そのため、改良された擬似翻訳では１つのリソース・ファイルでより多くの言語固有文字の表示可能性テストが行えるようになった。更に、改良された擬似翻訳を用いた国際化ソフトウェアの画面表示では代入部の前後に代入部の開始と終了を明示するマークが表示されるようになった。その結果代入部が識別可能となり、改良された擬似翻訳では代入部に対してハードコード文字列の検出を適切に行うことが可能となった。  
【０００７】
ところが、改良された従来技術によるテスト方法にもまだいくつかの問題が残る。まず、改良された従来技術によるテスト方法では、代入部を識別できてもハードコード文字列を見落とす可能性がある。また、改良された従来技術のテスト方法では、ソートの結果文字列のリストが並び替えられることを確認できるが、その並び替えが正しいかどうかは翻訳先の言語に関する知識のないテスターには判断がつかない。たとえ翻訳先の言語に関する知識のあるテスターであっても、日本語など文字種が多い言語については並び替えが正しいかどうかを直ちには判断できない。また、改良された従来技術の方法では画面に表示される翻訳先の言語の文字種が多くなるため、テスターは画面に表示された文字が文字化けした文字かどうかをすぐには判断できない。
【０００８】
更に、改良された従来技術によるテスト方法では、すべてのテスト項目を、擬似翻訳されたリソース・ファイルを参照して処理を行う国際化ソフトウェアの１つの表示画面を用いて１度に確認しようと試みるため、テスト対象の視認性が低い。しかしながら、テスト項目ごとテスト内容に適した外部化されたリソース・ファイルを用意するとなると、テスト項目の数だけ国際化ソフトウェアを再起動する必要が生じ、効率的にテストを行うことができない。
【０００９】
よってこの発明の目的は、テスト対象の視認性の向上をはかりつつ、国際化ソフトウェアを再起動する必要のない効率的な国際化ソフトウェアのテスト方法、装置、プログラム、及び当該テストに使用するフォントのデータ構造を提供することである。また、この発明の別の目的は、国際化ソフトウェアのテストにおいて、ハードコード文字列を漏れなく検出できるようにすることである。また、この発明の別の目的は、国際化ソフトウェアのテストにおいて、翻訳先の言語に関する知識あるなしにかかわらず、複数の文字列をソートする際にその文字列の並び替えが正しいかを判断できるようにすることである。
更に、この発明の別の目的は、国際化ソフトウェアのテストにおいて、文字化けした文字であるかどうかの判断を容易にすることである。
【課題を解決するための手段】
【００１０】
上記目的を達成する本発明は、次のような、コンピュータによって実行される国際化ソフトウェアのテスト方法によって実現される。ここで国際化ソフトウェアとは、外部化されたリソース・ファイルを参照して処理を行うソフトウェアであり、複数の言語環境で実行されるソフトウェアである。この国際化ソフトウェアのテスト方法は、第１の言語で記載された外部化されたリソース・ファイルからデータを読み出すステップと、第１の言語の文字を第２の言語の文字に１対１に対応させる変換テーブルを参照して、上記データに含まれる第１の言語の文字を第２の言語の文字に変換することにより、第１の言語で記載された外部化されたリソース・ファイルから第２の言語で記載されたテスト用リソース・ファイルを生成するステップと、国際化ソフトウェアを実行するステップと、テスト用リソース・ファイルを外部化されたリソース・ファイルとして参照して処理を行う国際化ソフトウェアから出力される出力情報を、国際化ソフトウェアのテスト項目ごとに用意された複数のフォントのうちの１つを参照して画面に表示するステップとを備える。
【００１１】
ここで、出力情報に含まれる文字コードは、出力情報に含まれるべき、変換テーブルに含まれる第２の言語の文字に対応する複数の文字コードの第２のグループ、出力情報に本来含まれるべきでない、第１の言語の文字に対応する複数の文字コードの第１のグループ、及び出力情報に本来含まれるべきでない、第１の言語の文字又は変換テーブルに含まれる第２の言語の文字のいずれにも対応しない複数の文字コードの第３のグループのいずれかに分類することが可能である。また、所定のコード体系を採用する複数のフォントの各々は、国際化ソフトウェアのテストにおいてテスト対象となる複数の文字コードのグループと、所定の文字コード体系のその他の複数の文字コードのグループとに対し異なる対応付け規則を使用して字形を対応づけることにより、当該フォントを用いた出力情報の表示において、テスト対象となる文字コードとその他の文字コードとを識別可能にする。
【００１２】
従って、本発明によればテスト対象となる複数の文字コードが他の文字コードと区別可能に表示されるため、テスト対象の視認性が向上する。しかも、テスト項目ごとテスト対象は異なるが、本発明によればテスト項目ごとに複数のフォントが用意されるため、対応するフォントを使用するだけで国際化ソフトウェアを再起動することなくテスト項目ごとテストに適した表示画面を提供できる。
【００１３】
好適には、複数のフォントのうちの１つを使用して表示するステップは、出力情報を、複数のフォントからユーザが選択した１つのフォントを使用して表示するステップを含む。あるいは、上記ステップは、使用するフォントを複数のフォントからユーザが選択した１つのフォントに切り替えて、出力情報を表示するステップを含む。また好適には、変換テーブルは、第１の言語の文字の一部を、第２の言語の文字のうち表示に関し問題を引き起こす可能性がある文字に１対１に対応させる。
【００１４】
また好適には、テスト項目は、ハードコード文字列の検出を含む。そしてハードコード文字列の検出に使用されるフォントは、第１のグループをテスト対象の複数の文字コードのグループとし、第１のグループの複数の文字コードの各々に、当該文字コードに対応する第１の言語の文字の字形をそのまま対応させる。好ましくは、上記フォントは、所定の文字コード体系のその他の複数の文字コードの各々に、同一の字形を対応させる。この同一の字形は、好ましくは中白の四角記号などの使用頻度の低い記号又は目立たない記号である。
【００１５】
また好適には、テスト項目は、第２の言語において定義される文字の順番に従う文字列のソート結果の妥当性を含む。そしてソート結果の妥当性の判断に使用されるフォントは、第２のグループをテスト対象の複数の文字コードのグループとし、第２のグループの複数の文字コードの各々に、当該文字コードに対応する第２の言語の文字に定義された順番を示す字形を対応させる。好ましくは、上記フォントは、所定の文字コード体系のその他の複数の文字コードの各々に、同一の字形を対応させる。この同一の字形は、好ましくは中白の四角記号などの使用頻度の低い記号又は目立たない記号である。
【００１６】
また好適には、テスト項目は、第２の言語に固有な文字の表示可能性を含む。表示可能性の判断に使用されるフォントは、第３のグループをテスト対象の複数の文字コードのグループとし、第３のグループの複数の文字コードの各々に、同一の字形を対応させる。この同一の文字は、好ましくは使用頻度の低い記号又は目立つ記号である。
【００１７】
また好適には、テスト項目は、第１言語で記載された外部化されたリソース・ファイルに含まれる文字列を確認する文字列確認を含む。当該文字列確認に使用されるフォントは、第２のグループをテスト対象の複数の文字コードのグループとし、第２のグループの複数の文字コードの各々に、当該文字コードに対応する第２の言語の文字をテスト用リソース・ファイルの生成の際に変換先の文字とした第１の言語の文字の字形を対応させる。上記テスト項目は、テスト対象の複数の文字コードのグループとして更に第１のグループを含み、第１のグループの複数の文字コードの各々に、当該文字コードに対応する第１の言語の文字の字形をそのまま対応させる。
【００１８】
本発明のもう１つの実施形態では、第１の言語で記載された外部化されたリソース・ファイルに含まれる第１の言語のすべての文字を変換テーブルに基づいて第２の言語の文字に１対１に変換することにより生成されたテスト用リソース・ファイルを参照する国際化ソフトウェアのテストにおいて使用される、所定の文字コード体系を採用するフォントのデータ構造が提供される。このデータ構造は、上記テストにおいてテスト対象となる複数の第１の文字コードと、第１の規則に従って複数の第１の文字コードに１対１に対応付けられた複数の第１の字形情報と、所定の文字コード体系のその他の複数の第２の文字コードと、第２の規則に従って複数の第２の文字コードに１対１に対応付けられた複数の第２の字形情報とを含む。
【００１９】
ここで、複数の第１の文字コードは、第１の言語の文字に対応する複数の文字コード、変換テーブルに含まれる第２の言語の文字に対応する複数の文字コード、及び第１の言語の文字又は変換テーブルに含まれる第２の言語の文字のいずれにも対応しない複数の文字コードのうちのいずれかである。そして、テスト用リソース・ファイルを参照して処理を行う国際化ソフトウェアの出力から第１の文字コードが検出される場合、当該第１の文字コードに対応する第１の字形情報がフォント・データから検索され画面表示に使用される。一方、上記出力から第２文字コードが検出される場合は、当該第２の文字コードに対応する第２の字形情報がフォント・データから検索され、検索された第２字形情報が画面表示に使用される。  
【００２０】
以上、国際化ソフトウェアのテスト方法として本発明を説明したが、本発明は、装置、プログラムまたはプログラムを格納した記憶媒体として把握することもできる。また、国際化ソフトウェアのテスト方法について説明した複数の特徴は、本発明のもう１つの実施形態として説明した国際化ソフトウェアのテストに使用されるフォントのデータ構造においても取り込むことができる。また、フォントのデータ構造として説明した本発明は、当該フォントのデータ構造を格納した記録媒体として把握することもできる。
【発明の効果】
【００２１】
本発明によれば、オリジナル言語と異なる言語環境で実行される国際化ソフトウェアのユーザに対する出力に関するテストにおいて、テスト対象の視認性が向上すると共に、テスト項目ごとに国際化ソフトウェアを再起動することを要求しない効率的な国際化ソフトウェアのテストが可能となる。その他の効果については、以下に説明する実施の形態の説明において述べる。  
【発明を実施するための最良の形態】
【００２２】
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、実施の形態の説明の全体を通じて同じ要素には同じ番号を付している。
【００２３】
本発明の説明に入る前に、図１乃至２を参照して国際化ソフトウェアの外部化されたリソース・ファイルと、改良された擬似翻訳の方法及びその問題を説明する。なお、以下では国際化ソフトウェアをテスト対象プログラムと、外部化されたリソース・ファイルを単にリソース・ファイルと呼ぶ。図１の（ａ）に、リソース・ファイルの例として、オリジナル言語を英語とするテスト対象プログラムのリソース・ファイル１００を示す。図示するようにリソース・ファイルは複数の項目を含み、各項目はキーと当該キーに代入する文字列とからなる。テスト対象プログラムは実行時にキーに出会うと、当該キーをリソース・ファイルから探し出し、当該キーに代入すべき文字列の値を読み出す。この動作を図１の（ｂ）に図示するソースコード１０５と図１の（ｃ）テスト対象プログラムの出力画面１１０とを用いて具体的に説明する。
【００２４】
ソースコード１０５に含まれるｓｈｏｗＭｅｓｓａｇｅ（）というコマンドは、第１引数の文字列に含まれる変数に第２引数を代入してできる文字列を画面に表示するコマンドである。そこでテスト対象プログラムはＳｈｏｗＭｅｓｓａｇｅコマンドを実行する際に、リソース・ファイル１００から第１引数であるキーＭＳＧ０１を探し出し、対応する文字列値「Ｔｈｅ  ｓｔａｔｕｓ  ｉｓ  ｛０｝．」を読み出す。そしてテスト対象プログラムは、読み出した文字列値の｛０｝の部分に、第２引数として渡された「ＧＲＥＥＮ」を代入し、最終的に図１の（ｃ）の１１５に図示するように「Ｔｈｅ  ｓｔａｔｕｓ  ｉｓ  ＧＲＥＥＮ．」を画面に表示する。なおキーＭＳＧ０１に代入される文字列の中にある｛０｝は代入部であり、｛０｝には実行時に値が決まる変数が代入される。  
【００２５】
次に図２を参照して改良された擬似翻訳の方法とその問題とを説明する。上述したように、改良された擬似翻訳では、オリジナル言語のリソース・ファイルの各項目に対し、オリジナル言語の文字列の先頭文字の前後に、問題を引き起こしやすい翻訳先の言語の異なる文字を追加する。また、リソース・ファイルに含まれる代入部の前後に「開始」、「終了」を示すマークを追加する。図２の（ａ）に図示する擬似翻訳されたリソース・ファイル２００は、改良後の技術に基づき図１の（ａ）に図示するリソース・ファイル１００を擬似翻訳したリソース・ファイル２００である。ここで翻訳先言語は日本語としている。
【００２６】
図２の（ａ）を見ると分かるように、この例では問題を引き起こしやすい文字として、アルファベットＴの先頭文字に対して「竹」、「金」の文字が、アルファベットＧの先頭文字に対して「講」、「愛」の文字がそれぞれ選択され追加されている。他の項目の先頭文字についても異なるアルファベットに対しては異なる日本語の文字が選択され追加されている。また、各項目の先頭文字は（）で括られており、先頭文字であることが容易に識別できるようにされている。更に、代入部｛０｝の前後には、「開始」、「終了」の文字が追加されている。
【００２７】
図２の（ｂ）は、上記擬似翻訳を実行時に読み込んだテスト対象プログラムが図１の（ｂ）に図示するソースコード部分を実行して表示する画面２０５である。フィールド２１０に表示される文字列「Ｇｒｅｅｎ」をみると、その前後に「開始」、「終了」の文字が表示されていること、また先頭文字「Ｇ」の前後に日本語の文字がないことから、この文字列はハードコードされた代入文字列であることがわかる。またリストボックス２１５内の３つの文字列の先頭文字には、それぞれ異なる日本語が追加されており、従ってＳｏｒｔコマンドを実行することによりソート結果の妥当性テストが可能であることが分かる。更に、ボタン２２５に表示される「Ｒｅｆｒｅｓｈ  ｔｈｅ  ｓｔａｔｕｓ」文字列の先頭文字Ｒの前後に表示される日本語の文字が最初に追加された日本語の文字と異なることから、当該箇所では、「ソ」、「十」の文字の表示に問題があることが分かる。
【００２８】
しかしながら、この改良された擬似翻訳によるテスト方法にも上述したようにいくつか問題がある。１つには、代入部を識別できてもハードコード文字列を見落とす可能性があるということである。代入部をもつ文字列については、文字列を代入された元の文字列と代入部である文字列との両方についてハードコード文字列の確認をしなければならない。しかし、ハードコード文字列の確認は上述したように文字列の先頭文字に対して行うため、図２の（ｂ）のフィールド２１０の文字列のように代入部が文字列の途中にあると、文字列の先頭とならない代入部についてのハードコード文字列の確認し損なう可能性がある。
【００２９】
また１つには、ソートの結果文字列のリストが並び替えられることを確認できても、その並び替えが正しいかどうかの判断が困難であるということである。翻訳先の言語に関する知識のないテスターはもちろんのこと、たとえ知識のあるテスターであっても、日本語など文字種が多い言語については並び替えが正しいかどうかを直ちには判断できない。また１つには、図２の（ｂ）の表示画面２０５を単独で見ても文字化けした文字を特定できないことから分かるように、改良された擬似翻訳を用いたテスト方法では画面に表示される翻訳先の言語の文字種が多くなるため、表示された文字が文字化けした文字であるかどうかをすぐには判断できないということである。
【００３０】
更に、改良された従来技術によるテスト方法では、すべてのテスト項目を、擬似翻訳された外部化されたリソース・ファイルを参照して処理を行う国際化ソフトウェアの１つの表示画面を用いて１度に確認しようと試みるため、表示画面でのテスト対象の視認性が低い。しかしながら、テスト項目ごとテスト内容に適した外部化されたリソース・ファイルを用意するとなると、テスト項目の数だけ国際化ソフトウェアを再起動する必要が生じ、効率的にテストを行うことができない。
【００３１】
そこで本発明は、新たに開発したテスト用リソース・ファイルとテスト項目ごとに用意する複数のフォントとあわせて用いることで、上記問題を解決する。すなわち本発明は、テスト用に用意される擬似翻訳されたリソース・ファイルを１つとしながらも、このリソース・ファイルを参照して処理を行うテスト対象プログラムからの出力をテスト項目ごとに用意した複数のフォントを使用して表示することで、テスト項目ごとテストに適した表示画面を提供することを可能とする。また各テスト項目に固有の問題は、テスト項目ごとに複数のフォントを用意し、テスト対象である文字コードとテスト対象以外の文字コードを識別可能にすること、また文字コードに割当てる字形を工夫することで解決する。
【００３２】
そこで、まず始めに図３乃至５を参照して本発明に係る新しいリソース・ファイルの擬似翻訳の方法について説明する。その後、図３、図７乃至１１を参照して上記擬似翻訳されたリソース・ファイルとテスト項目ごとに用意した複数のフォントを用いたテスト対象プログラムのテスト方法を説明する。
【００３３】
図３の点線で囲んだ部分は、本発明の実施形態に係るテスト用リソース・ファイルを作成するための装置３００の機能ブロック図である。装置３００は、オリジナルのリソース・ファイル３１０と変換テーブル３２０を格納する第１格納部、テスト用リソース・ファイル生成手段３３０、及びテスト用リソース・リソースファイル３４０を格納する第２格納部とを備える。なお、第１格納部と第２格納部は物理的には同一の記憶装置であってもよい。また本実施例では、所定の文字コード体系としてＵｎｉｃｏｄｅを採用するが、これに限らず他の文字コード体系を採用するものであってもよいことはいうまでもない。なお「文字コード」とは、文字に割当ら得るコードであり、Ｕｎｉｃｏｄｅではコード・ポイントと呼ばれるものである。
【００３４】
オリジナルのリソース・ファイル３１０は、テスト対象プログラムが実行中に参照するオリジナルのリソース・ファイルである。図４の（ａ）に、オリジナルのリソース・ファイル３１０の例として、オリジナル言語を英語とするリソース・ファイル４００を示す。なお本実施形態では、翻訳先の言語は日本語とする。変換テーブル３２０は、第１の言語であるオリジナル言語の文字を第２の言語である翻訳先の言語の文字に１対１に対応させるテーブルである。このように１対１にマッピングするためには、翻訳先言語の使用する文字の文字コードの範囲が、オリジナル言語の使用する文字の文字コードの範囲よりも大きくなくてはならない。例えば英語（ＡＳＣＩＩコード）は最も小さい文字コードの範囲を使用するため、翻訳先言語としては日本語の他、中国語、韓国語、フランス語などを選択できる。逆にフランス語をオリジナル言語とする場合は、翻訳先言語として日本語や中国語を選択できるが、英語は選択できない。また、変換テーブル３２０は、好ましくは、オリジナル言語の文字の一部を、翻訳先の言語の文字のうち表示に関して問題を引き起こす可能性のある文字に１対１に対応させる。
【００３５】
ここで表示に関して問題を引き起こす可能性のある文字について日本語の文字を例にいくつか説明する。まず、「表」、「噂」、「ソ」等の日本語の文字であるが、これらの文字は英語環境において改行等の制御コードとして使われるビットパターンを文字コードの２バイト目にもつため、使用する文字コード体系の種類によっては正しく表示されない場合がある。また「鯵」等のいくつかの日本語の文字は、使用する文字コード体系の種類によって違う文字に変換される。例えば「鯵」の文字コードは、ＵｎｉｃｏｄｅではＵ＋９ＢＦ５であるが、これはＭＳ９３２と呼ばれる文字コード体系では、０Ｘ８８Ｂ１に変換され、ＣＣＳＩＤ  ９４２と呼ばれる文字コード体系では、０ＸＥ９ＣＢに変換される。なお、問題を引き起こす可能性があるとして認識されている文字以外の文字でも正しく表示されない場合がある。従って変換テーブル３２０は、通常の文字と表示に関して問題を引き起こす可能性のある文字の両方を含むように、オリジナル言語の文字の一部を、翻訳先の言語の文字の問題を引き起こす可能性のある文字に１対１に対応させることが好ましい。
【００３６】
図４の（ｂ）に、変換テーブル３２０の例として、英語の文字を日本語の文字に１対１に対応させる変換テーブル４０５を示す。変換テーブル４０５の左側２列は、英語の文字と当該文字に割当てられた文字コードであり、右側２列は、対応する日本語の文字と当該文字に割当てられた文字コードである。なお変換テーブル３２０により対応関係が定義されるのは、オリジナル言語が使用する文字のうち、正規表現でパターンを作る際に使用する記号であるメタ文字を除く文字である。変換テーブル４０５から分かるように、Ｕｎｉｃｏｄｅではメタ文字を除く英語の文字はＵ＋００２０〜Ｕ＋００７Ｅの範囲の文字コードに割当てられる。また、ここでは英大文字のＳ、Ｔ、Ｕの各文字に、問題を引き起こす可能性がある文字「表」、「噂」、「ソ」が対応させられている。
【００３７】
テスト用リソース・ファイル生成手段３３０は、第１格納部からオリジナルのリソース・ファイル３１０と変換テーブル３２０を読み出し、変換テーブル３２０に基づいて第１の言語の文字を第２の言語の文字に変換することにより、第１の言語で記載されたテスト対象プログラムのリソース・ファイル３１０から、第２の言語で記載されたテスト用リソース・ファイル３４０を生成する。生成されたテスト用リソース・ファイル３４０は、テスト対象プログラムのリソース・ファイルとして第２格納部に格納される。図４の（ｃ）に、変換テーブル４０５に基づいて英語の文字を日本語の文字に変換することにより、オリジナルのリソース・ファイル４００から生成されたテスト用リソース・ファイル４１０を示す。テスト用リソース・ファイル４１０をみると分かるように、テスト用リソース・ファイル４１０にはオリジナル言語である英語の文字は一つも含まれない。
【００３８】
次に図５のフローチャートを参照して、本実施形態に係る装置３００の処理の流れの一例を説明する。図５の（ａ）は、本実施形態に係る装置３００の処理の流れの概要を示すフローチャートである。装置３００はまず、格納部１からオリジナルのリソース・ファイル３１０を読み出す（ステップ５００）。そして装置３００は、変換テーブル３２０に基づいて第１の言語の文字を第２の言語の文字に変換することにより、テスト対象プログラムの第１の言語で記載されたオリジナルのリソース・ファイル３１０から、第２の言語で記載されたテスト用リソース・ファイル３４０を生成する（ステップ５０５）。最後に装置３００は、生成したテスト用リソース・ファイル３４０を第２格納部へ格納する（ステップ５１０）。
【００３９】
次に図５の（ｂ）を参照して、ステップ５０５の処理を詳細に説明する。まず前処理として、装置３００は、第１格納部から変換テーブル３２０を、また第２格納部から空のテスト用リソース・ファイル３４０を読み出しておく。その後メイン処理が開始し、テスト用リソース・ファイル生成手段３３０はまず、オリジナルのリソース・ファイル３１０に読み込み可能な項目があるか判断する（ステップ５１５）。読み込み可能な項目がない場合（ステップ５１５：ＮＯ）処理はそこで終了する。一方、読み込み可能な項目があると判断すると（ステップ５１５：ＹＥＳ）、テスト用リソース・ファイル生成手段３３０は、オリジナルのリソース・ファイル３１０から１項目を読み込む（ステップ５２０）。そしてテスト用リソース・ファイル生成手段３３０は、読み込んだ項目からキーを取り出して変数Ｋｅｙに代入し（ステップ５２５）、当該変数Ｋｅｙをテスト用リソース・ファイル３４０に書き込む（ステップ５３０）。
【００４０】
テスト用リソース・ファイル生成手段３３０は、先程読み込んだ項目から今度は文字列の値を取り出して変数Ｔｅｘｔに代入し（ステップ５３５）、更に変数Ｔｅｘｔから１文字だけ読み出して変数Ｘに代入する（ステップ５４０）。代入部の確認のため、テスト用リソース・ファイル生成手段３３０は変数Ｘの値を確認し、変数Ｘの値が数字である場合、更に変数Ｘの前後の値が「｛」及び「｝」であるかどうか確認する（ステップ５４５）。変数Ｘの値が代入部であることを示す数字でない場合（ステップ５４５：ＮＯ）、テスト用リソース・ファイル生成手段３３０は、変換テーブル３２０を参照して変数Ｘの文字を変換し、変換後の文字を変数Ｙへ代入する（ステップ５５０）。変数Ｘの値が代入部であることを示す数字である場合（ステップ５４５：ＹＥＳ）、テスト用リソース・ファイル生成手段３３０は、変数Ｘの値をそのまま変数Ｙへ代入する（ステップ５５５）。なお、変換テーブル３２０では、「｛」及び「｝」の文字は変換後も同じ文字になるよう定義されているものとする。その後テスト用リソース・ファイル生成手段３３０は、変数Ｙをテスト用リソース・ファイル３４０に書き込む（ステップ５６０）。そしてテスト用リソース・ファイル生成手段３３０は、変数Ｔｅｘｔから先程読み出した文字が最後の文字か確認する（ステップ５６５）。最後の文字でない場合（ステップ５６５：ＮＯ）、処理はステップ５４０に戻る。一方最後の文字である場合（ステップ５６５：ＹＥＳ）、処理はステップ５１５に戻る。
【００４１】
図３に戻って、図３において一点鎖線で囲んだ部分は、本発明の実施形態に係る擬似翻訳されたリソース・ファイルとテスト項目ごとに用意した複数のフォントとを用いてテスト対象プログラムをテストするための装置３５０の機能ブロック図である。なお本明細書では、テスト用リソース・ファイルを作成するための装置３００とテスト対象プログラムをテストするための装置３５０とを区別して説明するが、これは説明の便宜上の区別であり、実際には装置３５０の機能と装置３００の機能を１台のコンピュータに実装することも可能である。装置３５０は、テスト用リソース・ファイル３４０を格納する第２格納部、テスト対象プログラム実行部３５５、表示画面作成部３６０、フォント選択部３６５、及びテスト項目ごとに用意した複数のフォントを含む第３格納部を備える。第３格納部に含まれる複数のフォントには、デフォルトのフォント３７０、ハードコード検出フォント３７５、文字化け検出フォント３８０、リバース・フォント３８５、ソート・フォント３９０及びその他のフォント３９５が含まれる。なお、第２格納部と第３格納部は物理的には同一の記憶装置であってもよい。
【００４２】
第２格納部に格納されたテスト用リソース・ファイル３４０は、上述したように第２の言語である翻訳先の言語で記載されたリソース・ファイルである。テスト用リソース・ファイル３４０は、テスト対象プログラムのリソース・ファイルとして第２格納部に格納されている。テスト対象プログラム実行部３５５は、テスト対象プログラムを実行する。テスト対象プログラム実行部３５５は、テスト対象プログラムを実行するとまず第２格納部からテスト用リソース・ファイル３４０を読み込み、その後テスト用リソース・ファイル３４０を参照してテスト対象プログラムの各処理を実行し処理結果を出力する。
【００４３】
表示画面作成部３６０は、テスト対象プログラムから処理結果を受け取り、第３格納部に含まれるデフォルトのフォントを使用して処理結果の表示画面を作成する。この際表示画面作成部３６０は、テスト対象プログラムから受け取った処理結果を一時的にバッファに格納する。作成された表示画面は表示のため表示装置へ送られる。表示画面作成部３６０はまた、フォント選択部３６５からフォントの指定を受けると、バッファからテスト対象プログラムの処理結果を読み出し、指定されたフォントを使用して新たに処理結果の表示画面を作成する。作成された表示画面は表示のため再び表示装置へ送られる。  
【００４４】
フォント選択部３６５は、ユーザからマウスやキーボード等の入力装置を介して使用するフォントの選択要求を受け取ると、第３格納部を参照して使用可能なフォントを確認し、フォント選択のためのダイアログボックスを作成する。フォント選択部３６５は作成したダイアログボックスを表示装置へ送る。フォント選択部３６５はまた、ユーザから使用するフォントの指定を受け取ると、指定されたフォントの種類を表示作画面成部３６０に伝える。
【００４５】
次に、本発明の実施形態に係るテスト項目ごとに用意された複数のフォントの説明に入る前に、通常のフォントを使用して表示されるテスト対象プログラムの処理結果を説明する。図４の（ｃ）に図示するテスト用リソース・ファイル４１０を参照して処理を行うテスト対象プログラムの処理結果を、通常のフォントを用いて表示すると、図６に図示する表示画面６６０のようになる。なお、オリジナルのリソース・ファイル１００を参照して処理を行うテスト対象プログラムの処理結果の表示画面は、図１の（ｃ）に示す表示画面１１０である。上述したようにテスト用リソース・ファイル４１０は英語を含まないため、本来ならば出力される表示画面に英語は表示されない。従って図７のフィールド６６５に表示される英語の文字列「Ｇｒｅｅｎ」はハードコードされた文字列である。しかし表示画面６６０では日本語の文字と英語の文字とが混在しているため、テスターはハードコード文字列を直ちには検出できない。
【００４６】
また、図６のボタン６８０に表示される文字列は、テスト用リソース・ファイル４１０のＭＳＧ０２の文字列とは異なっており、文字化けした文字である。しかし、表示画面６６０に表示される文字の文字種が多いことから表示画面６６０を単独でみただけでは、テスターはボタン６８０に表示される文字列が文字化けであるとは判断できない。更に図６のリストボックス６７０に表示される３つの文字列には、平仮名、漢字、カタカナ、記号など様々な日本語の文字が含まれており、テスターはソートを実行した場合にそのソート結果が正しいかどうか直ぐには判断できない。このように、本発明の実施形態に係るテスト用リソース・ファイルは、通常のフォントと一緒に用いられる場合はテスト項目ごとテストに適した画面表示を提供することはできない。
【００４７】
次に本発明の実施形態に係るテスト項目ごとに用意された複数のフォントを説明する。最初に、ハードコード文字列の検出に使用されるハードコード検出フォント３７５について説明する。ハードコード文字列の検出では、第１の言語であるオリジナル言語の文字に対応する複数の文字コードが、テスト対象、言い換えると検出対象となる複数の文字コードとなる。本発明に係るテスト用リソース・ファイル３４０は、変換テーブル３２０に基づきオリジナルのリソース・ファイル３１０に含まれるすべてのオリジナル言語の文字を翻訳先の言語に変換して作成されるものであるため、そのテスト用リソース・ファイル３４０を参照して処理を行うテスト対象プログラムの出力に含まれるオリジナル言語の文字は、ソースコードにハードコードされた文字、あるいはテスト対象ではない他のリソースに由来する文字であるといえる。変換テーブルに含まれる第２の言語である翻訳先の言語の文字に対応する文字コード、及びオリジナル言語の文字又は変換テーブル３２０に含まれる翻訳先の言語の文字のいずれにも対応しない複数の文字コードは、テスト対象以外の複数の文字コードとなる。
【００４８】
そしてハードコード検出フォント３７５では、テスト対象となるオリジナル言語の文字の画面上での視認性を向上させるため、テスト対象以外の複数の文字コードの各々に同一の字形を対応させる。同一の字形は、好ましくは中白の四角や空白などの目立たない字形、使用頻度の低い字形、又は使用頻度が低くかつ目立たない字形である。一方、テスト対象となるオリジナル言語の複数の文字コードの各々には、その文字コードに対応するオリジナル言語の文字の字形をそのまま対応させる。
【００４９】
図７の（ａ）にハードコード検出フォント３７５の例として、オリジナル言語を英語、翻訳先言語を日本語とし、図４の（ｂ）に図示する変換テーブル４０５を使用してテスト用リソース・ファイルを作成する場合の、ハードコード検出フォントの表７００を示す。左端の列は文字コードを示し、対応する右端の列は文字コードに割当てられたハードコード検出フォントのグリフを示す。なお、「グリフ」とは文字コードに割当てられる字形である。また参考のため表７００には、中央の列に通常のフォントのグリフが追加されている。表７００の文字コードＵ＋３０００からＵ＋ＦＦＥＡは、変換テーブル４０５に含まれる日本語の文字に対応する文字コードである。これらは上述したようにテスト対象以外の文字コードであるため、ここでは中白の四角の字形が割当てられている。表７００の文字コードＵ＋００２０からＵ＋００７Ｅは、英語の文字に対応する文字コードである。これらは上述したようにテスト対象の文字コードであるため、ここでは本来の文字の字形がそのまま割当てられている。
【００５０】
そして表７００のその他の文字コードは、Ｕｎｉｃｏｄｅのその他の複数の文字コードである。これらは上述したようにテスト対象以外の文字コードであるため、先程と同様、中白の四角の字形が割当てられている。なお、表７００の行数は実際の文字コードの数を示さないことに注意されたい。図４の（ｃ）に図示するテスト用リソース・ファイル４１０を参照して処理を行うテスト対象プログラムの処理結果を、ハードコード検出フォントの表７００を使用して表示した場合の表示画面７０５を、図７の（ｂ）に図示する。図７の（ｂ）をみると、フィールド７１０に表示されるハードコードされた文字列「Ｇｒｅｅｎ」以外の文字はすべて中白の四角記号として表示されている。このようにハードコード検出フォント３７５を使用するとテスト対象以外の文字が同一の字形で表示されるため、翻訳先言語などの検出対象以外の文字に惑わされることなくテスターは容易にハードコードされた文字を検出できる。
【００５１】
次に第２の言語である翻訳先の言語に固有な文字の表示可能性を判断するために使用される文字化け検出フォント３８０について説明する。表示可能性の判断では、オリジナル言語の文字又は変換テーブル３２０に含まれる翻訳先の言語の文字のいずれにも対応しない複数の文字コードが、テスト対象、言い換えると検出対象となる複数の文字コードとなる。本発明に係るテスト用リソース・ファイル３４０は、変換テーブル３２０に基づきオリジナルのリソース・ファイル３１０に含まれるすべてのオリジナル言語の文字を翻訳先の言語に変換して作成されるものであるため、そのテスト用リソース・ファイル３４０を読み込んだテスト対象プログラムの出力に含まれるべき文字は、変換テーブル３２０に含まれる翻訳先言語の文字である。但し上記出力には、ハードコード検出フォント３７５の説明で上述したように、ソースコードにハードコードされた、あるいはテスト対象ではない他のリソースに由来する、オリジナル言語の文字も含まれ得る。しかもこのオリジナル言語の文字は、いわゆる文字化けの結果表示される文字ではない。そのため上記出力に、変換テーブル３２０に含まれる翻訳先言語の文字及びオリジナル言語の文字以外の文字が含まれていれば、それは本来の表示されるべき文字とは異なる文字、いわゆる文字化けした文字であるといえる。  
【００５２】
従ってオリジナル言語の文字に対応する文字コード、及び変換テーブルに含まれる翻訳先の言語の文字に対応する文字コードは、テスト対象以外の複数の文字コードとなる。そして文字化け検出フォント３８０では、テスト対象となるいわゆる文字化けした文字の画面上での視認性を向上させるため、テスト対象の複数の文字コードの各々に、同一の字形を対応させる。同一の字形は、好ましくは郵便のマークなどの目立つ字形、又は使用頻度が低くかつ目立つ字形である。一方、テスト対象以外の複数の文字コードの各々には、同一の字形であって、かつテスト対象の文字コードに対応付けた字形と異なる字形を対応させる。同一の字形は、好ましくは中白の四角や空白などの目立たない字形である。
【００５３】
図８の（ａ）に文字化け検出フォント３８０の例として、オリジナル言語を英語、翻訳先言語を日本語とし、図４の（ｂ）に図示する変換テーブル４０５に基づいてテスト用リソース・ファイルを生成する場合の、文字化け検出フォントの表８００を示す。表８００の左端の列は文字化け検出フォント３８０の文字コードを示し、対応する右端の列は文字コードに割当てられたグリフを示す。その中間の列は参考のために追加された通常のフォントのグリフを示す列である。表８００の文字コードＵ＋３０００からＵ＋ＦＦＥＡは、変換テーブル４０５に含まれる日本語の文字に対応する文字コードである。上述したようにこれらはテスト対象以外の文字コードであるため、中白の四角の字形が割当てられている。
【００５４】
表８００の文字コードＵ＋００２０からＵ＋００７Ｅは、英語の文字に対応する文字コードである。上述したようにこれらもテスト対象以外の文字コードであるため、中白の四角の字形が割当てられている。そして表８００のその他の文字コードは、Ｕｎｉｃｏｄｅのその他の複数の文字コードである。これらは上述したようにテスト対象の文字コードであるため、ここでは郵便マークの字形が割当てられている。なお、表８００の行数は実際の文字コードの数を示さないことに注意されたい。
【００５５】
図４の（ｃ）に図示するテスト用リソース・ファイル４１０を参照して処理を行うテスト対象プログラムの処理結果を、文字化け検出フォント３８０の表８００を使用して表示した場合の表示画面８１０を、図８の（ｂ）に図示する。図８の（ｂ）をみると、ボタン８３０には郵便マークが表示されており、当該箇所では文字化けして文字が表示されることが直ちに分かる。このように文字化け検出フォント３８０を使用すると文字化けした文字が所定の字形で表示されるため、翻訳先言語の文字種が多い場合でもテスターは容易に文字化けした文字を検出できる。またリストボックス８２０などに表示される文字など、テスト対象以外の文字は目立たない同一の字形で表示されるため、テスターは正しく表示される翻訳先言語などの検出対象以外の文字に惑わされることなく容易に文字化けした文字を検出できる。
【００５６】
次に第１言語で記載されたリソース・ファイルに含まれる文字列を確認するために使用されるリバース・フォント３８５について説明する。元の文字列を確認する場合、オリジナル言語の文字に対応する複数の文字コード及び変換テーブル３２０に含まれる翻訳先の言語の文字に対応する複数の文字コードが、テスト対象、言い換えると確認対象となる複数の文字コードとなる。本発明に係るテスト用リソース・ファイル３４０は、変換テーブル３２０に基づきオリジナルのリソース・ファイル３１０に含まれるすべてのオリジナル言語の文字を翻訳先の言語に変換して作成されるものであるため、テスト用リソース３４０を参照して処理を行うテスト対象プログラムの出力画面からは元の文字列に関する情報は得られない。そこで、元の文字列に関する情報を得るため、オリジナル言語の文字に対応する複数の文字コード及び変換テーブル３２０に含まれる翻訳先の言語の文字に対応する複数の文字コードを使用する。オリジナル言語の文字又は変換テーブル３２０に含まれる翻訳先の言語の文字のいずれにも対応しない複数の文字コードは、テスト対象以外の複数の文字コードとなる。
【００５７】
元の文字列に関する情報を得るため、変換テーブル３２０に含まれる翻訳先の言語の文字に対応する複数の文字コードの各々には、当該文字コードに対応する翻訳先言語の文字をテスト用リソース・ファイル３４０の生成の際に変換先の文字としたオリジナル言語の文字の字形を対応させる。これにより、本発明に係るテスト用リソース・ファイル３４０を参照して処理を行うテスト対象プログラムの出力画面に、オリジナルのリソース・ファイル３１０に含まれる文字列の各々をオリジナル言語で表示させることができる。また、オリジナル言語の文字に対応する複数の文字コードの各々には、当該文字コードに対応する文字の字形をそのまま割当てる。これによりハードコードされた文字列があった場合でも元の文字列に関する完全な情報を得ることができる。一方、テスト対象以外の複数の文字コードの各々には、識別が容易となるよう同一の字形を対応させる。これら文字コードは、文字化け検出フォント３８０の説明で上述したように、文字化けした文字といえる文字の文字コードである。すなわち、リバース・フォントを使用した表示画面では、元の文字列に関する情報が得られるだけでなく、同時に文字化けした文字の検出が可能となる。従って上記同一の字形は、郵便のマークなどの目立つ字形、又は使用頻度が低くかつ目立つ字形とするのが好ましい。
【００５８】
図９の（ａ）にリバース・フォント３８５の例として、オリジナル言語を英語、翻訳先言語を日本語とし、図４の（ｂ）に図示する変換テーブル４０５に基づいてテスト用リソース・ファイル３４０を生成する場合の、リバース・フォントの表８５０を示す。理解が容易になるように、表８５０の左端２列にオリジナル言語である英語の文字の文字コードを追加した。従って表８５０の中央の列がリバース・フォント３８５の文字コードを示し、対応する右端の列が文字コードに割当てられたグリフを示す。その中間の列は通常のフォントのグリフを示す。表８５０の文字コードＵ＋３０００からＵ＋ＦＦＥＡは、変換テーブル４０５に含まれる日本語の文字に対応する文字コードである。上述したようにこれらはテスト対象の文字コードであるため、これらの文字コードには変換前のもとの英語の文字の字形が割当てられている。
【００５９】
図９の（ａ）中、点線で囲った部分８５５をみると、文字コードＵ＋８８６８には、通常のフォントでは「表」の字形が割当てられる。しかし、リバース・フォント３８５では文字コードＵ＋８８６８には「Ｓ」の字形が割当てられている。この字形「Ｓ」は、文字コードＵ＋８８６８を変換先とする英語の文字コードＵ＋００５３に対応する文字である。表８５０の文字コードＵ＋００２０からＵ＋００７Ｅは、英語の文字に対応する文字コードである。これらは上述したようにオリジナル言語の文字に対応する文字コードであるため、元のオリジナル言語の文字の字形がそのまま割当てられている。表８５０のその他の文字コードは、Ｕｎｉｃｏｄｅのその他の複数の文字コードである。これらは上述したように文字化け文字に対応する文字コードとなるため、ここでは郵便マークの字形が割当てられている。なお、表８５０の行数は実際の文字コードの数を示さないことに注意されたい。
【００６０】
起動時に図４の（ｃ）に図示するテスト用リソース・ファイル４１０を読み込んだテスト対象プログラムの処理結果を、リバース・フォントの表８５０を使用して表示した場合の表示画面８６０を、図８の（ｂ）に図示する。図８の（ｂ）をみると、文字が文字化けしているボタン８８０を除く箇所では、文字列がオリジナル言語である英語で表示されており、図１の（ｃ）に示す元の表示画面１１０とほぼ同じ画面となっていることが分かる。このようにテスターは、リバース・フォント３８５を使用すると、オリジナルのリソース・ファイルを開くことなく元の文字列を知ることができると同時に、文字化け文字を容易に検出できる。
【００６１】
次に第２の言語である翻訳先の言語において定義される文字の順番に従う文字列のソート結果の妥当性判断に使用されるソート・フォント３９０について説明する。ソート結果の妥当性判断では、変換テーブル３２０に含まれる翻訳先言語の文字に対応する複数の文字コードが、テスト対象となる複数の文字コードとなる。なぜならば、本願発明のテスト用リソース・ファイル３４０は、変換テーブル３２０に基づきオリジナルのリソース・ファイル３１０に含まれるすべてのオリジナル言語の文字を翻訳先の言語に変換して作成されるものであるため、そのテスト用リソース・ファイル３４０を読み込んだテスト対象プログラムの出力には、翻訳先言語の文字のうち変換テーブル３２０に含まれる翻訳先の言語が含まれるからである。従って、第１の言語であるオリジナル言語の文字に対応する文字コード、及びオリジナル言語の文字又は変換テーブル３２０に含まれる翻訳先の言語の文字のいずれにも対応しない複数の文字コードは、テスト対象以外の複数の文字コードとなる。  
【００６２】
そしてソート・フォント３９０では、翻訳先の言語において定義される文字の順番に従って翻訳先言語の文字列が正しくソートされることを画面上で容易に判断できるように、テスト対象の複数の文字コードの各々に、当該文字コードに対応する文字に定義される順番を示す字形を対応させる。一方、テスト対象以外の複数の文字コードの各々には、同一の字形を対応させる。同一の字形は、好ましくは中白の四角や空白などの使用頻度の低い字形、目立たない字形、又は使用頻度が低くかつ目立たない字形である。
【００６３】
図１０の（ａ）にソート・フォント３９０の例として、オリジナル言語を英語、翻訳先言語を日本語とし、図４の（ｂ）に図示する変換テーブル４０５を使用してテスト用リソース・ファイル３４０を作成する場合の、ソート・フォントの表９００を示す。左端の列は文字コードを示し、対応する右端の列は文字コードに割当てられたハードコード検出フォントのグリフを示す。また参考のため、表９００には中央の列に通常のフォントのグリフが追加されている。表９００の文字コードＵ＋３０００からＵ＋ＦＦＥＡは、変換テーブル４０５に含まれる日本語の文字に対応する文字コードである。これらは上述したようにテスト対象の文字コードであるため、各々その文字に定義される順番を示す字形が割当てられている。なお、「翻訳先の言語において定義される文字の順番」とはどのような順番でもよく、どのような順番を文字に定義するかはどのようなテストをするかによる。ここでは、変換テーブル４０５に含まれる日本語の文字の文字コード順を採用している。但し、文字コードＵ＋０ＦＦＥＡのように通常のフォントのグリフにおいて記号を割当てられるような文字コードには、番号（９３）ではなく中白の四角のような目立たない字形を割当ててもよい。
【００６４】
表９００の文字コードＵ＋００２０からＵ＋００７Ｅは、英語の文字に対応する文字コードである。また表９００のその他の文字コードは、Ｕｎｉｃｏｄｅのその他の複数の文字コードである。これらは上述したようにテスト対象の文字以外の文字コードであるため、ここでは中白の四角の字形が割当てられている。なお、表９００の行数は実際の文字コードの数を示さないことに注意されたい。図４の（ｃ）に図示するテスト用リソース・ファイル４１０を参照して処理を行うテスト対象プログラムの処理結果を、ソート・フォントの表９００を使用して表示した場合の表示画面９０５を、図１０の（ｂ）に図示する。図１０の（ｂ）をみると、リストボックス９１５にリストされるべき文字列の各文字は、すべて番号として表示されている。従って、ボタン９２０（図１の（ｃ）のボタン１２５参照）をクリックしてソートコマンドを実行したときのソート結果が正しいかどうかの判断は、各文字列の先頭文字に相当する番号（同じ番号のときは続く文字の番号、以下同様）をみることにより容易に行うことができる。このようにソート・フォント３９０を使用すると、翻訳先の言語の文字種が多い場合でも並び替えが正しいかどうかを容易に判断できる。
【００６５】
以上説明した４つのフォント、すなわち、ハードコード検出コード３７５、文字化け検出フォント３８０、リバース・フォント３８５及びソート・フォント３９０は、例えば次のようにして作成できる。すなわち、既存のフォント・ファイルをコピーし新しい名前で保存する。そして市販のフォント用のエディタ等で新しく作成したフォント・ファイルを開き、上述した本発明に係るいずれかのフォントを作成するべく、文字コードに割当てられる字形を適宜編集する。もちろんフォント用のエディタを使用して本発明に係るフォントを一から作成してもよい。なお、本発明に係るフォントを作成する際指定する文字コード体系は、オリジナル言語の文字集合及び翻訳先言語の文字集合を含む文字コード体系であれば、どのような文字コード体系を選択してもよい。
【００６６】
次に図１１の（ａ）のフローチャートを参照して、本発明の実施形態に係る擬似翻訳されたリソース・ファイルとテスト項目ごとに用意した複数のフォントとを用いて、テスト対象プログラムをテストする処理の流れの一例を説明する。まず前処理として、テスト用リソース・ファイル３４０を第２格納部に、テスト項目ごとに用意した複数のフォントを通常のフォントと一緒に第３格納部に格納し、テスト対象プログラム実行部３５５、表示画面作成部３６０、フォント選択部がそれぞれ参照可能なようにしておく。なお、フォントを実際に使用できるようにするには、フォントを使用するコンピュータにフォントをインストールする必要がある。インストールの方法は、後述する実装例において説明する。そして処理は開始し、まずテスト対象プログラム実行部３５５は、第２格納部からテスト用リソース・ファイル３４０を読み込む（ステップ６００）。そしてテスト対象プログラム実行部３５５は、テスト用リソース・ファイル３４０を参照してテスト対象プログラムの各処理を実行し（ステップ６０５）、処理結果を出力する（ステップ６１０）。    
【００６７】
表示画面作成部３６０は、テスト対象プログラムから処理結果を受け取り、第３格納部に含まれるデフォルトのフォントを使用して処理結果の表示画面を作成する（ステップ６１５）。このとき表示画面作成部３６０は、テスト対象プログラムから受け取った処理結果を一時的にバッファに格納する。そして、表示画面作成部３６０は作成した表示画面を表示装置へ送る（ステップ６２０）。フォント選択部３６５は、ユーザからの入力を待ち（ステップ６２５）、入力を受け取ると受け取った入力がフォント選択要求かどうか判断する（ステップ６３０）。フォント選択要求でない場合（ステップ６３０：ＮＯ）、処理はここで終了する。フォント選択要求の場合（ステップ６３０：ＹＥＳ）、フォント選択部３６５は、第３格納部を参照して使用可能なフォントを確認しフォント選択のための表示画面を作成する（ステップ６３５）。そして、フォント選択部３６５は作成したフォント選択のための表示画面を表示装置へ送り画面に表示させる（ステップ６４０）。
【００６８】
フォント選択部３６５は、ユーザから使用するフォントの指定を受け取ると（ステップ６４５）、指定されたフォントの種類に関する情報を画面表示作成部６１０に渡す。表示画面作成部３６０はバッファからテスト対象プログラムの処理結果を読み出し、ユーザが選択したフォントを使用して新たに処理結果の表示画面を作成する（ステップ６５０）。表示画面作成部３６０は再び作成した表示画面を表示装置へ送る（ステップ６５５）。そして処理はステップ６２５へ戻る。
【００６９】
次に図１１の（ｂ）を参照して、ステップ６５０の処理の詳細を説明する。まず、表示画面作成部３６０はバッファからテスト対象プログラムの処理結果を読み出す（ステップ６６０）。そして表示画面作成部３６０は、読み出した処理結果に次の処理データがあるかどうか判断する（ステップ６６５）。  次の処理データがない場合（ステップ６６５：ＮＯ）、処理はここで終了する。次の処理データがある場合（ステップ６６５：ＹＥＳ）、表示画面作成部３６０は、処理結果から次の処理データを読み出し、（ステップ６７０）、処理データに文字コードが含まれるかどうか判断する（ステップ６７５）。文字コードが含まれない場合（ステップ６７５：ＮＯ）、表示画面作成部３６０は、そのまま処理データに基づいて表示画面の一部を作成する（ステップ６８０）。ステップ６７５で文字コードが含まれる場合、表示画面作成部３６０は、ユーザから指示されたフォントから上記文字コードに割り当てられる字形を検索し（ステップ６８５）、検索した字形を使用して処理データに基づき表示画面の一部を作成する（ステップ６９０）。
【００７０】
本発明に係る各フォントは、テスト対象となる複数の第１の文字コードと、第１の規則に従って複数の第１の文字コードに１対１に対応付けられた複数の第１の字形情報と、所定の文字コード体系のその他の複数の第２の文字コードと、第２の規則に従って複数の第２の文字コードに１対１に対応付けられた複数の第２の字形情報とを含む。従って図１１の（ａ）に示すステップ６４５で本発明に係るフォントが指定されている場合、表示画面作成部３６０は、処理データに含まれる文字コードがテスト対象となる第１の文字コードである場合、当該第１の文字コードに第１の規則に従って割当てられた第１の字形情報をフォントから検索し、画面表示に使用する。一方、処理データに含まれる文字コードがテスト対象ではない第２の文字コードである場合、表示画面作成部３６０は、当該第２の文字コードに第２の規則に従って割当てられた第２の字形情報をフォントから検索し、画面表示に使用する。従って表示画面では、テスト対象である第１の文字コードとテスト対象ではない第２の文字コードが識別可能に表示される。ステップ６８０又はステップ６９０の後、処理はステップ６６５へ戻る。
【００７１】
次に、図１２乃至図１４を参照して、本発明の実装例を説明する。図１２は、本発明を実装したシステム９５０の一実装例を示す。システム９５０は、Ｗｅｂサーバ９７０、Ｗｅｂサーバに接続された記憶装置９５５、Ｗｅｂサーバ９７０にネットワークを介して接続されたクライアント９７５、クライアント９７５に接続された記憶装置９８０を含む。記憶装置９５５はテスト対象プログラムとしてのＷｅｂアプリケーション９６０とテスト用リソース・ファイル９６５とを含む。また、記憶装置９８０はＷｅｂブラウザ９８５とテスト項目ごとに用意された複数のフォント９９０とを含む。
【００７２】
Ｗｅｂサーバ９７０は、ネットワークを介してクライアント９７５から処理のリクエストを受信すると、当該処理を実行するＷｅｂアプリケーション９６０を起動する。また、Ｗｅｂサーバ９７０は、Ｗｅｂアプリケーション９６０から処理結果を受け取ると、ネットワークを介して処理をリクエストしたクライアント９７５に処理結果を送信する。テスト対象プログラムであるＷｅｂアプリケーション９６０は、記憶装置９５５からＷｅｂサーバ９７０のＲＡＭにロードされ、Ｗｅｂサーバ９７０の中央処理装置（ＣＰＵ）により実行されることにより、図３に図示されるテスト対象プログラム実行部３５５として機能する。そしてＷｅｂアプリケーション９６０は、起動時に記憶装置９５５からテスト用リソース・ファイル９６５を読み込み、当該テスト用リソース・ファイル９６５を参照してリクエストされた処理を実行する。Ｗｅｂアプリケーション９６０から出力された処理結果は、Ｗｅｂサーバ９７０へ渡される。
【００７３】
クライアント９７５は、Ｗｅｂアプリケーション９６０をテストするテスターのリクエストによりＷｅｂブラウザ９８５を起動する。Ｗｅｂブラウザ９８５は、記憶装置９８０からクライアント９７５のＲＡＭにロードされ、クライアント９７５のＣＰＵにより実行されることにより、図３に図示される表示画面作成部３６０及びフォント選択部３６５として機能する。Ｗｅｂブラウザ９８５は、テスターの入力に応答してＷｅｂアプリケーション９６０が提供する処理をＷｅｂサーバ９７０にリクエストする。そしてＷｅｂサーバ９７０から処理結果を受信すると、表示画面作成部３６０として機能するＷｅｂブラウザ９８５は、デフォルトのフォントを使用して処理結果の表示画面を作成し、クライアント９７５のディスプレイに表示する。
【００７４】
また、フォント選択部３６５として機能するＷｅｂブラウザ９８５は、テスターからフォントの選択要求を受け取ると、記憶装置９８０に格納されるフォントを参照して又は使用可能なフォント名取得の関数を呼び出して使用可能なフォントの一覧を取得し、クライアント９７５のディスプレイにフォント選択のためのダイアログボックスを表示する。そして、テスターから使用するフォントの指定を受け取ると、Ｗｅｂブラウザ９８５は、指定されたフォントを使って上記処理結果をクライアント９７５のディスプレイに再表示する。
【００７５】
なお、本発明に係るテスト項目ごとに用意された複数のフォント９９０をＷｅｂブラウザ９８５が参照できるようにするには、テスト項目ごとに用意された複数のフォント９９０をクライアント９７５にインストールする必要がある。インストールの方法は、クライアント９７５上で動作するオペレーティング・システム（ＯＳ）による。例えばＯＳとしてマイクロソフト社のＷｉｎｄｏｗｓ（登録商標）ＸＰを使用する場合、フォントのインストールは、コンピュータのフォントの追加、変更及び管理をするコントロールパネルのフォントを利用する。フォントのファイルメニューには、「新しいフォントのインストール」が用意されている。またマイクロソフト社のＷｉｎｄｏｗｓ（登録商標）ＸＰより以前のＷｉｎｄｏｗｓ（登録商標）を使用する場合は、Ａｄｏｂｅ  Ｔｙｐｅ  Ｍａｎａｇｅｒ（ＡＴＭ）というフォント管理ソフトウェアを利用できる。ＡＴＭをコンピュータにインストールすれば、あとはフォント・ファイルをシステム・フォルダにドラッグ＆ドロップし、コンピュータを再起動するだけでよい。
【００７６】
次に、図１３のフローチャートを参照して、システム９５０の処理の流れを説明する。Ｗｅｂサーバ９７０はステップ７００においてクライアントからのリクエストを待っている。一方クライアントであるＷｅｂブラウザ９８５は、テスターからの入力を待ち（ステップ７０５）、Ｗｅｂアプリケーション９６０が提供する処理のリクエストを受け取ると、当該リクエストをＷｅｂサーバ９７０に送信する（ステップ７１０）。リクエストの受信に応答して（ステップ７１５）、Ｗｅｂサーバ９７０は、Ｗｅｂアプリケーション９６０を起動する（ステップ７２０）。Ｗｅｂアプリケーション９６０は、起動時に本発明に係るテスト用リソース・ファイルを読み込み（ステップ７２５）、当該テスト用リソース・ファイルを参照してリクエストされた処理を実行する（ステップ７３０）。そしてＷｅｂアプリケーション９６０は、処理結果を出力しＷｅｂサーバ９７０へ渡す（ステップ７３５）。
【００７７】
処理結果を受け取ったことに応答して（ステップ７４０）、Ｗｅｂサーバ９７０は当該処理結果をＷｅｂブラウザ９８５に送信する（ステップ７４５）。Ｗｅｂブラウザ９８５は処理結果を受信すると（ステップ７５０）、デフォルトのフォントを使用して処理結果の表示画面を作成し（ステップ７５５）、クライアント９７５のディスプレイに表示する（ステップ７６０）。そしてＷｅｂブラウザ９８５はテスターからの入力を待つ（ステップ７６５）。テスターからの入力を受け取    ると、Ｗｅｂブラウザ９８５は入力がフォントの選択要求かどうかを判断する（ステップ７７０）。フォントの選択要求である場合（ステップ７７０：ＹＥＳ）、Ｗｅｂブラウザ９８５は記憶装置９８０を参照して使用できるフォントを確認し、本発明に係るテスト項目ごとに用意された複数のフォントを含む使用可能なフォントの一覧表を作成する（ステップ７７５）。
【００７８】
Ｗｅｂブラウザ９８５は作成した一覧表を使ってクライアント９７５のディスプレイにフォント選択のためのダイアログボックス表示し（ステップ７８０）（図１４参照）、テスターからのフォントの指定を待つ。テスターからのフォント指定の入力に応答して（ステップ７８５）、Ｗｅｂブラウザ９８５は指定されたフォントを使用して先程の処理結果を再表示する（ステップ７９０、ステップ７９５）。ステップ７７０でＮＯの場合、すなわちテスターからの入力がフォントの選択要求でない場合、処理はステップ８００へ進み、Ｗｅｂブラウザ９８５は他の処理を実行する。ステップ７９５またはステップ８００の後処理はステップ７６５に戻り、Ｗｅｂブラウザ９８５は再びテスターからの入力を待つ。ステップ７６５からステップ７９５までの処理が繰り返され、本発明に係るテスト項目ごと用意された複数のフォント間でフォントの切り換えがテスターにより行われると、クライアントのディスプレイには図７の（ｂ）、図８の（ｂ）、図９の（ｂ）、図１０の（ｂ）に各々図示されるような表示画面が次々と表示される。
【００７９】
図１５は、本発明に係るテスト用リソース・ファイルを作成するための装置３００のハードウェア構成の一例を示す。図１５はまた、本発明に係る、擬似翻訳されたリソース・ファイルとテスト項目ごとに用意した複数のフォントとを用いてテスト対象プログラムをテストするための装置３５０のハードウェア構成の一例でもある。更に図１５は、１台のコンピュータに装置３００の機能と装置３５０の機能とを実装する場合の、コンピュータのハードウェア構成の一例でもある。なお図１２乃至図１４を参照して説明したシステム９５０では、装置３５０はＷｅｂサーバ９７０とクライアント９７５の２台のコンピュータにより構成された。この場合、図１５に図示するハードウェア構成は、Ｗｅｂサーバ９７０及びクライアント９７５のそれぞれのハードウェア構成の一例としてみることができる。  
【００８０】
システム１０００は、ホストコントローラ１０１５により相互に接続されるＣＰＵ１０１０及びＲＡＭ１０４０、グラフィックコントローラ１０２０、及び表示装置１０２５を含むＣＰＵ周辺部と、入出力コントローラ１０３０によりホストコントローラ１０１５に接続される通信インターフェース１０７０、ハードディスクドライブ１０５０、及びＣＤ−ＲＯＭドライブ１０６０を含む入出力部と、入出力コントローラ１０３０に接続されるスーパーＩ／Ｏコントローラ１０８０及びスーパーＩ／Ｏコントローラ１０８０に接続されるフレキシブルディスクドライブ１０９０、フラッシュＲＯＭ１１００、並びにキーボードマウスコントローラ１１１０を有するレガシー入出力部を備える。
【００８１】
ホストコントローラ１０１５は、高い転送レートでＲＡＭ１０４０にアクセスするＣＰＵ１０１０をＲＡＭ１０４０と接続する。ＣＰＵ１０４０は、ハードディスクに格納されたプログラムに基づいて動作し、各部の制御を行う。本発明に係るテスト対象プログラムをテストするためのプログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記憶媒体、ＩＣカード等の半導体メモリ等の記録媒体に格納されて利用者によって提供される。または、テスト対象プログラムをテストするためのプログラムは、外部のコンピュータからネットワークを介してダウンロードされてもよい。本発明に係るテスト項目ごとに用意される複数のフォントも同様に、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記憶媒体、ＩＣカード等の半導体メモリ等の記録媒体に格納されて、またはネットワークを介してダウンロードされて、利用者によって提供される。
【００８２】
入出力コントローラ１０３０は、比較的高速な入出力装置である通信インターフェース１０７０、ハードディスクドライブ１０５０、及びＣＤ−ＲＯＭドライブ１０６０をホストコントローラ１０１５と接続する。通信インターフェース１０７０は、ネットワークを介して他のコンピュータと通信する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭからプログラムまたはデータを読み取り、入出力コントローラ１０３０を介してＣＰＵ１０１０に提供する。また、入出力コントローラ１０３０には、フレキシブルディスクドライブ１０９０やキーボードマウスコントローラ１１１０等の比較的低速な入出力装置と、フラッシュＲＯＭ１１００とが接続される。フラッシュＲＯＭ１１００は、装置システム１０００の起動時にＣＰＵ１０１０が実行するブートプログラムや、ハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０９０は、フレキシブルディスクからプログラムまたはデータを読み取り、ＲＡＭ１０４０を介してスーパーＩ／Ｏコントローラ１０８０に提供する。スーパーＩ／Ｏコントローラ１０８０は、フレキシブルディスクや、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。  
【００８３】
以上、実施形態を用いて本発明の説明をしたが、本発明の技術範囲は上記実施形態に記載の範囲には限定されない。上記の実施形態に、種々の変更または改良を加えることが可能であることが当業者に明らかである。従って、そのような変更または改良を加えた形態も当然に本発明の技術的範囲に含まれる。
【図面の簡単な説明】
【００８４】
【図１】（ａ）は、テスト対象プログラムの外部化されたリソース・ファイルの一例を示す図である。（ｂ）は、テスト対象プログラムのソースコードの一部の一例を示す図である。（ｃ）は、テスト対象プログラムの出力画面の一例を示す図である。
【図２】（ａ）は、従来技術に基づく擬似翻訳されたリソース・ファイルの一例を示す図である。（ｂ）は、テスト対象プログラムの出力画面の一例を示す図である。
【図３】本発明の実施形態に係るテスト用リソース・ファイルを作成するための装置、及び本発明の実施形態に係るテスト対象プログラムをテストするための装置の構成の一例を示す図である。
【図４】（ａ）は、テスト対象プログラムの外部化されたリソース・ファイルの一例を示す図である。（ｂ）は、本発明の実施形態に係る変換テーブルの一例を示す図である。（ｃ）は、本発明の実施形態に係るテスト用リソース・ファイルの一例を示す図である。
【図５】本発明の実施形態に係るテスト用リソース・ファイルを作成するための装置の処理の流れの一例を示すフローチャートを示す図である。
【図６】テスト対象プログラムの実行結果を通常のフォントを用いて表示した表示画面の一例を示す図である。
【図７】（ａ）は、本発明の実施形態に係るハードコード検出フォントの一例を示す図である。（ｂ）は、テスト対象プログラムの処理結果を、ハードコード検出フォントを用いて表示した表示画面の一例を示す図である。
【図８】（ａ）は、本発明の実施形態に係る文字化け検出フォントの一例を示す図である。（ｂ）は、テスト対象プログラムの処理結果を、文字化け検出フォントを用いて表示した表示画面の一例を示す図である。
【図９】（ａ）は、本発明の実施形態に係るリバース・フォントの一例を示す図である。（ｂ）は、テスト対象プログラムの処理結果を、リバース・フォントを用いて表示した表示画面の一例を示す図である。
【図１０】（ａ）は、本発明の実施形態に係るソート・フォントの一例を示す図である。（ｂ）は、テスト対象プログラムの処理結果を、ソート・フォントを用いて表示した表示画面の一例を示す図である。
【図１１】（ａ）は、本発明の実施形態に係る、テスト対象プログラムをテストするための装置の処理の流れの一例を示すフローチャートを示す図である。（ｂ）は、指定されたフォントを使用して処理結果の表示画面を作成する処理の流れの一例を示すフローチャートを示す図である。
【図１２】本発明の実施形態に係るシステム全体の実装例を示す図である。
【図１３】図１２に示すシステム全体の処理の流れの一例を示すフローチャートを示す図である。
【図１４】使用するフォントを選択するために表示されるダイアログボックスの一例を示す図である。
【図１５】本実施形態に係るテスト用リソース・ファイルを作成するための装置、及び本発明の実施形態に係る、テスト対象プログラムをテストするための装置のハードウェア構成の一例を示す図である。
【図１】
2008065794.tif 000003
【図２】
2008065794.tif 000004
【図３】
2008065794.tif 000005
【図４】
2008065794.tif 000006
【図５】
2008065794.tif 000007
【図６】
2008065794.tif 000008
【図７】
2008065794.tif 000009
【図８】
2008065794.tif 000010
【図９】
2008065794.tif 000011
【図１０】
2008065794.tif 000012
【図１１】
2008065794.tif 000013
【図１２】
2008065794.tif 000014
【図１３】
2008065794.tif 000015
【図１４】
2008065794.tif 000016
【図１５】
2008065794.tif 000017