JP4143661B2 - テスト用リソース・ファイル及びテスト用フォントを用いた国際化ソフトウェアのテスト方法、装置及びプログラム - Google Patents

テスト用リソース・ファイル及びテスト用フォントを用いた国際化ソフトウェアのテスト方法、装置及びプログラム Download PDF

Info

Publication number
JP4143661B2
JP4143661B2 JP2006246177A JP2006246177A JP4143661B2 JP 4143661 B2 JP4143661 B2 JP 4143661B2 JP 2006246177 A JP2006246177 A JP 2006246177A JP 2006246177 A JP2006246177 A JP 2006246177A JP 4143661 B2 JP4143661 B2 JP 4143661B2
Authority
JP
Japan
Prior art keywords
character
language
characters
test
resource file
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.)
Expired - Fee Related
Application number
JP2006246177A
Other languages
English (en)
Other versions
JP2008065794A (ja
Inventor
祐子 伊藤
希 青山
隆晴 伊藤
俊道 有馬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2006246177A priority Critical patent/JP4143661B2/ja
Priority to CNB2007101482834A priority patent/CN100570556C/zh
Priority to US11/853,412 priority patent/US8656357B2/en
Priority to US11/853,359 priority patent/US7581208B2/en
Publication of JP2008065794A publication Critical patent/JP2008065794A/ja
Application granted granted Critical
Publication of JP4143661B2 publication Critical patent/JP4143661B2/ja
Priority to US12/504,517 priority patent/US8286136B2/en
Priority to US14/145,587 priority patent/US9015678B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/454Multi-language systems; Localisation; Internationalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Machine Translation (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本発明は、複数の言語環境で実行される国際化ソフトウェアをテストするための技術に関し、特に、オリジナル言語と異なる言語環境で実行される国際化ソフトウェアのユーザに対する出力に関するテストにおいて、テスト対象の視認性を向上させ、効率的なテストを可能とする技術に関する。
複数の言語に対応したソフトウェアを国際化ソフトウェアという。国際化ソフトウェアでは、ソースコードから画面に表示されるテキスト・ストリングの部分が切り離され、切り離されたテキスト・ストリングの部分は外部化されたリソース・ファイルとして保持される。外部化されたリソース・ファイルは国際化ソフトウェアの実行時に参照され、国際化ソフトウェアが画面表示を行うのに使用される。このような構成の採用により、国際化ソフトウェアの開発者は、外部化されたリソース・ファイルを他の言語に翻訳するだけで国際化ソフトウェアを他の言語に対応させることができる。しかも、外部化されたリソース・ファイルを一旦翻訳してしまえば、たとえ実行コードを変更してもその翻訳をやり直す必要はない。
ところで、このような国際化ソフトウェアの開発プロセスでは、各国の言語環境で国際化ソフトウェアが正しく動作するかをみるために様々な項目についてテストが行われる。その中でユーザに対する出力に関するテストをいくつかを紹介すると、まずユーザに表示されるメッセージやその他の文字列がソースコードから切り離され、リソース・ファイルとして正しく外部化されているかどうかを検証するテストがある。言い換えると、ユーザに表示されるメッセージやその他の文字列がソースコード内に直接記述(ハードコード)されていないかを確認するハードコード文字列検出テストである。また、アルファベット順など各言語に定義された順番で文字列のリストが正しくソートされるかを検証するソート結果の妥当性テストも行われる。更に、各言語に特有の文字が例えば文字化けなどすることなく正しく表示されるかを検証する言語固有文字の表示可能性テストも行われる。
ところが、外部化されたリソース・ファイルの翻訳は時間がかかるため、開発プロセスにおいて上記各項目をテストするために翻訳された外部化されたリソース・ファイルを使用することはできない。そこで従来開発されたのが、外部化されたリソース・ファイルを擬似翻訳し、これを目的の言語に翻訳された外部化されたリソース・ファイルとして利用する方法である。この従来技術では、オリジナルのリソース・ファイルの各項目に対し、オリジナル言語の文字列の前あるいは後ろに、問題を引き起こしやすい同一の翻訳先の言語の文字を追加することにより、外部化されたリソース・ファイルの擬似翻訳を作成する(特許文献1、2参照。)。また、オリジナル言語の文字である半角英字をすべて全角英字に置換することにより、擬似翻訳を作成する技術もある(特許文献3参照。)。そして擬似翻訳されたリソース・ファイルを参照して処理を行う国際化ソフトウェアの出力の画面表示において、オリジナル言語の文字列の各々に対し、追加した文字または全角英字が正しく表示されることを確認する。オリジナル言語の文字列のみが表示される場合は、その文字列はハードコードされた文字列である。また、追加した文字または全角英字が異なる文字に置き換わっていれば、これはいわゆる文字化けである。
米国特許第6507812号明細書 米国特許第6453462号明細書 米国特許第6425123号明細書
しかしながら、上記従来技術によるテスト方法にはいくつかの問題がある。1つは、外部化されたリソース・ファイルに代入部をもつ文字列が含まれると、当該代入部に対してハードコード文字列の検出ができないという問題である。これは、擬似翻訳されたリソース・ファイルを参照して処理を行う国際化ソフトウェアの出力の表示画面では代入部を識別できないからである。また、上記従来技術ではオリジナル言語の文字列の前後に翻訳先の言語の同一の文字列を追加するため、複数の文字列をソートしてもオリジナル言語の文字列部分での評価となり、翻訳先の言語についてソート結果の妥当性を判断できない。また、翻訳先の言語に特有な複数の文字のすべてについて言語固有文字の表示可能性テストを行うためには、少なくとも10種類以上の文字を検証する必要がある。しかし、上記従来技術ではすべてのオリジナル言語の文字列の先頭に同一パターンの文字群を追加するため、追加できる文字種は視認性を考慮すると2〜3種類に限られる。そのためより多くの文字種をカバーするためには複数の外部化されたリソース・ファイルを用意する必要がある。
そこで、本出願の発明者は従来技術の擬似翻訳にいくつかの改良を加えた。1つめの改良は、オリジナル言語のリソース・ファイルの各項目に対し、オリジナル言語の文字列の先頭文字の前後に、あるいは前のみに、問題を引き起こしやすい翻訳先の言語の異なる文字を追加することである。2つめの改良は、リソース・ファイルに含まれる代入部の前後に代入部の開始と終了を明示するマークを追加することである。これらの改良により、擬似翻訳されたリソース・ファイルを参照して処理を行う国際化ソフトウェアの出力の画面表示では、オリジナル言語の文字列の先頭に翻訳先の言語の異なる文字列が表示されることになった。そのため、上記従来技術ではできなかったソート結果の妥当性テストを、改良された擬似翻訳を用いた国際化ソフトウェアの表示画面では行うことが可能となった。また、改良された擬似翻訳では、オリジナル言語の文字列の異なる先頭文字に任意の長さの翻訳先の言語の異なる文字を追加することができるようになった。そのため、改良された擬似翻訳では1つのリソース・ファイルでより多くの言語固有文字の表示可能性テストが行えるようになった。更に、改良された擬似翻訳を用いた国際化ソフトウェアの画面表示では代入部の前後に代入部の開始と終了を明示するマークが表示されるようになった。その結果代入部が識別可能となり、改良された擬似翻訳では代入部に対してハードコード文字列の検出を適切に行うことが可能となった。
ところが、改良された従来技術によるテスト方法にもまだいくつかの問題が残る。まず、改良された従来技術によるテスト方法では、代入部を識別できてもハードコード文字列を見落とす可能性がある。また、改良された従来技術のテスト方法では、ソートの結果文字列のリストが並び替えられることを確認できるが、その並び替えが正しいかどうかは翻訳先の言語に関する知識のないテスターには判断がつかない。たとえ翻訳先の言語に関する知識のあるテスターであっても、日本語など文字種が多い言語については並び替えが正しいかどうかを直ちには判断できない。また、改良された従来技術の方法では画面に表示される翻訳先の言語の文字種が多くなるため、テスターは画面に表示された文字が文字化けした文字かどうかをすぐには判断できない。
更に、改良された従来技術によるテスト方法では、すべてのテスト項目を、擬似翻訳されたリソース・ファイルを参照して処理を行う国際化ソフトウェアの1つの表示画面を用いて1度に確認しようと試みるため、テスト対象の視認性が低い。しかしながら、テスト項目ごとテスト内容に適した外部化されたリソース・ファイルを用意するとなると、テスト項目の数だけ国際化ソフトウェアを再起動する必要が生じ、効率的にテストを行うことができない。
よってこの発明の目的は、テスト対象の視認性の向上をはかりつつ、国際化ソフトウェアを再起動する必要のない効率的な国際化ソフトウェアのテスト方法、装置、プログラム、及び当該テストに使用するフォントのデータ構造を提供することである。また、この発明の別の目的は、国際化ソフトウェアのテストにおいて、ハードコード文字列である可能性のある文字列を検出できるようにすることである。また、この発明の別の目的は、国際化ソフトウェアのテストにおいて、翻訳先の言語に関する知識あるなしにかかわらず、複数の文字列をソートする際にその文字列の並び替えが正しいかを判断できるようにすることである。更に、この発明の別の目的は、国際化ソフトウェアのテストにおいて、文字化けした文字であるかどうかの判断を容易にすることである。
上記目的を達成する本発明は、次のような、コンピュータによって実行される国際化ソフトウェアのテスト方法によって実現される。ここで国際化ソフトウェアとは、外部化されたリソース・ファイルを参照して処理を行うソフトウェアであり、複数の言語環境で実行されるソフトウェアである。この国際化ソフトウェアのテスト方法は、第1の言語で記載された外部化されたリソース・ファイルからデータを読み出すステップと、第1の言語の文字を第2の言語の文字に1対1に対応させる変換テーブルを参照して、上記データに含まれる第1の言語の文字を第2の言語の文字に変換することにより、第1の言語で記載された外部化されたリソース・ファイルから第2の言語で記載されたテスト用リソース・ファイルを生成するステップと、国際化ソフトウェアを実行するステップと、テスト用リソース・ファイルを外部化されたリソース・ファイルとして参照して表示画面作成のための処理を行う国際化ソフトウェアから出力される処理の結果としての出力情報を、フォントの切り替え操作に応答して、国際化ソフトウェアのテスト項目ごとに用意された複数のフォントからユーザにより選択された1つを参照して画面に表示するステップとを備える。
ここで、出力情報に含まれる文字コードは、出力情報に本来含まれるべきでない、第1の言語の複数の文字に各々対応する複数の文字コードからなる第1のグループ出力情報に含まれるべき、変換テーブルに含まれる第2の言語の複数の文字に各々対応する複数の文字コードからなる第2のグループ、及び出力情報に本来含まれるべきでない、第1の言語の複数の文字及び変換テーブルに含まれる第2の言語の複数の文字のいずれにも対応しない複数の文字コードからなる第3のグループのいずれかに分類することが可能である。
また、上記テスト項目は、第1の言語で記載された外部化されたリソース・ファイルに含まれる文字列を確認する文字列確認を含むそして当該文字列確認に使用されるフォントは、第2のグループに含まれる複数の文字コードの各々に、当該文字コードに対応する第2の言語の文字をテスト用リソース・ファイルの生成の際に変換先の文字とした第1の言語の文字の字形を対応させ、かつ第1のグループに含まれる複数の文字コードの各々に、当該文字コードに対応する第1の言語の文字の字形をそのまま対応させる好適には、文字列確認に使用されるフォントは、第3のグループに含まれる複数の文字コードの各々に、同一の字形を対応させる
また、文字列確認に使用されるフォントを除く複数のフォントの各々は、対応するテスト項目においてテスト対象となる第1乃至第3のいずれか1つのグループに含まれる各文字コードには、同一の字形又は各々異なる複数の字形を対応付け、テスト対象とならない残りの前記第1乃至第3のいずれか2つのグループに含まれる各文字コードには、同一の字形とは異なる同一の字形を対応付けることにより、当該フォントを用いた出力情報の表示において、テスト対象となる文字コードとその他の文字コードとを識別可能にする
本発明によれば、国際化ソフトウェアのテスト項目ごとに用意された複数のフォントには、第1の言語で記載された外部化されたリソース・ファイルに含まれる文字列を確認するための文字列確認用フォントが含まれ、国際化ソフトウェアから出力される出力情報は、フォントの切り替え操作に応答して、国際化ソフトウェアのテスト項目ごとに用意された複数のフォントからユーザにより選択された1つを参照して画面に表示されるため、テスターは、使用するフォントを文字列確認用フォントに切り替えるだけで、元の外部化されたリソース・ファイルを開くことなく、外部化されたリソース・ファイルに第1の言語で記載されている文字列を確認しながら、テストを進めることが可能となる
また、本発明によれば、テスト用に用意される擬似翻訳されたリソース・ファイルを1つとしながらも、テスト項目ごとに複数のフォントを用意するため、対応するフォントを使用するだけで国際化ソフトウェアを再起動することなくテスト項目ごとテストに適した表示画面を提供できる従って、本発明によればテスト対象となる複数の文字コードが他の文字コードと区別可能に表示されるため、テスト対象の視認性が向上する
好適には、変換テーブルは、第1の言語の文字の一部を、第2の言語の文字のうち表示に関し問題を引き起こす可能性がある文字に1対1に対応させ、かつ第1の言語の文字の残りを、任意の第2の言語の文字に1対1に対応させる
また好適には、テスト項目は、ハードコード文字列である可能性のある文字列の検出を含む。そして当該検出に使用されるフォントは、第1のグループをテスト対象のグループとし、第1のグループの複数の文字コードの各々に、当該文字コードに対応する第1の言語の文字の字形をそのまま対応させる
また好適には、テスト項目は、第2の言語において定義される文字の順番に従う文字列のソート結果の妥当性を含むそしてソート結果の妥当性の判断に使用されるフォントは、第2のグループをテスト対象のグループとし、第2のグループの複数の文字コードの各々に、当該文字コードに対応する第2の言語の文字に定義された順番を示す字形を対応させる
また好適には、テスト項目は、第2の言語に固有な文字の表示可能性を含む表示可能性の判断に使用されるフォントは、第3のグループをテスト対象のグループとし、第3のグループの複数の文字コードの各々に、同一の字形を対応させるこの同一の文字は、好ましくは使用頻度の低い記号又は目立つ記号である
以上、国際化ソフトウェアのテスト方法として本発明を説明したが、本発明は、装置、プログラムまたはプログラムを格納した記憶媒体として把握することもできる。また、国際化ソフトウェアのテスト方法について説明した複数の特徴は、本発明のもう1つの実施形態として説明した国際化ソフトウェアのテストに使用されるフォントのデータ構造においても取り込むことができる。また、フォントのデータ構造として説明した本発明は、当該フォントのデータ構造を格納した記録媒体として把握することもできる。
本発明によれば、オリジナル言語と異なる言語環境で実行される国際化ソフトウェアのユーザに対する出力に関するテストにおいて、テスト対象の視認性が向上すると共に、テスト項目ごとに国際化ソフトウェアを再起動することを要求しない効率的な国際化ソフトウェアのテストが可能となる。その他の効果については、以下に説明する実施の形態の説明において述べる。
以下、本発明を実施するための最良の形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、実施の形態の説明の全体を通じて同じ要素には同じ番号を付している。
本発明の説明に入る前に、図1乃至2を参照して国際化ソフトウェアの外部化されたリソース・ファイルと、改良された擬似翻訳の方法及びその問題を説明する。なお、以下では国際化ソフトウェアをテスト対象プログラムと、外部化されたリソース・ファイルを単にリソース・ファイルと呼ぶ。図1の(a)に、リソース・ファイルの例として、オリジナル言語を英語とするテスト対象プログラムのリソース・ファイル100を示す。図示するようにリソース・ファイルは複数の項目を含み、各項目はキーと当該キーに代入する文字列とからなる。テスト対象プログラムは実行時にキーに出会うと、当該キーをリソース・ファイルから探し出し、当該キーに代入すべき文字列の値を読み出す。この動作を図1の(b)に図示するソースコード105と図1の(c)テスト対象プログラムの出力画面110とを用いて具体的に説明する。
ソースコード105に含まれるshowMessage()というコマンドは、第1引数の文字列に含まれる変数に第2引数を代入してできる文字列を画面に表示するコマンドである。そこでテスト対象プログラムはShowMessageコマンドを実行する際に、リソース・ファイル100から第1引数であるキーMSG01を探し出し、対応する文字列値「The status is {0}.」を読み出す。そしてテスト対象プログラムは、読み出した文字列値の{0}の部分に、第2引数として渡された「GREEN」を代入し、最終的に図1の(c)の115に図示するように「The status is GREEN.」を画面に表示する。なおキーMSG01に代入される文字列の中にある{0}は代入部であり、{0}には実行時に値が決まる変数が代入される。
次に図2を参照して改良された擬似翻訳の方法とその問題とを説明する。上述したように、改良された擬似翻訳では、オリジナル言語のリソース・ファイルの各項目に対し、オリジナル言語の文字列の先頭文字の前後に、問題を引き起こしやすい翻訳先の言語の異なる文字を追加する。また、リソース・ファイルに含まれる代入部の前後に「開始」、「終了」を示すマークを追加する。図2の(a)に図示する擬似翻訳されたリソース・ファイル200は、改良後の技術に基づき図1の(a)に図示するリソース・ファイル100を擬似翻訳したリソース・ファイル200である。ここで翻訳先言語は日本語としている。
図2の(a)を見ると分かるように、この例では問題を引き起こしやすい文字として、アルファベットTの先頭文字に対して「竹」、「金」の文字が、アルファベットGの先頭文字に対して「講」、「愛」の文字がそれぞれ選択され追加されている。他の項目の先頭文字についても異なるアルファベットに対しては異なる日本語の文字が選択され追加されている。また、各項目の先頭文字は()で括られており、先頭文字であることが容易に識別できるようにされている。更に、代入部{0}の前後には、「開始」、「終了」の文字が追加されている。
図2の(b)は、上記擬似翻訳を実行時に読み込んだテスト対象プログラムが図1の(b)に図示するソースコード部分を実行して表示する画面205である。フィールド210に表示される文字列「Green」をみると、その前後に「開始」、「終了」の文字が表示されていること、また先頭文字「G」の前後に日本語の文字がないことから、この文字列はハードコードされた代入文字列であることがわかる。またリストボックス215内の3つの文字列の先頭文字には、それぞれ異なる日本語が追加されており、従ってSortコマンドを実行することによりソート結果の妥当性テストが可能であることが分かる。更に、ボタン225に表示される「Refresh the status」文字列の先頭文字Rの前後に表示される日本語の文字が最初に追加された日本語の文字と異なることから、当該箇所では、「ソ」、「十」の文字の表示に問題があることが分かる。
しかしながら、この改良された擬似翻訳によるテスト方法にも上述したようにいくつか問題がある。1つには、代入部を識別できてもハードコード文字列を見落とす可能性があるということである。代入部をもつ文字列については、文字列を代入された元の文字列と代入部である文字列との両方についてハードコード文字列の確認をしなければならない。しかし、ハードコード文字列の確認は上述したように文字列の先頭文字に対して行うため、図2の(b)のフィールド210の文字列のように代入部が文字列の途中にあると、文字列の先頭とならない代入部についてのハードコード文字列の確認し損なう可能性がある。
また1つには、ソートの結果文字列のリストが並び替えられることを確認できても、その並び替えが正しいかどうかの判断が困難であるということである。翻訳先の言語に関する知識のないテスターはもちろんのこと、たとえ知識のあるテスターであっても、日本語など文字種が多い言語については並び替えが正しいかどうかを直ちには判断できない。また1つには、図2の(b)の表示画面205を単独で見ても文字化けした文字を特定できないことから分かるように、改良された擬似翻訳を用いたテスト方法では画面に表示される翻訳先の言語の文字種が多くなるため、表示された文字が文字化けした文字であるかどうかをすぐには判断できないということである。
更に、改良された従来技術によるテスト方法では、すべてのテスト項目を、擬似翻訳された外部化されたリソース・ファイルを参照して処理を行う国際化ソフトウェアの1つの表示画面を用いて1度に確認しようと試みるため、表示画面でのテスト対象の視認性が低い。しかしながら、テスト項目ごとテスト内容に適した外部化されたリソース・ファイルを用意するとなると、テスト項目の数だけ国際化ソフトウェアを再起動する必要が生じ、効率的にテストを行うことができない。
そこで本発明は、新たに開発したテスト用リソース・ファイルとテスト項目ごとに用意する複数のフォントとあわせて用いることで、上記問題を解決する。すなわち本発明は、テスト用に用意される擬似翻訳されたリソース・ファイルを1つとしながらも、このリソース・ファイルを参照して処理を行うテスト対象プログラムからの出力をテスト項目ごとに用意した複数のフォントを使用して表示することで、テスト項目ごとテストに適した表示画面を提供することを可能とする。また各テスト項目に固有の問題は、テスト項目ごとに複数のフォントを用意し、テスト対象である文字コードとテスト対象以外の文字コードを識別可能にすること、また文字コードに割当てる字形を工夫することで解決する。
そこで、まず始めに図3乃至5を参照して本発明に係る新しいリソース・ファイルの擬似翻訳の方法について説明する。その後、図3、図7乃至11を参照して上記擬似翻訳されたリソース・ファイルとテスト項目ごとに用意した複数のフォントを用いたテスト対象プログラムのテスト方法を説明する。
図3の点線で囲んだ部分は、本発明の実施形態に係るテスト用リソース・ファイルを作成するための装置300の機能ブロック図である。装置300は、オリジナルのリソース・ファイル310と変換テーブル320を格納する第1格納部、テスト用リソース・ファイル生成手段330、及びテスト用リソース・リソースファイル340を格納する第2格納部とを備える。なお、第1格納部と第2格納部は物理的には同一の記憶装置であってもよい。また本実施例では、所定の文字コード体系としてUnicodeを採用するが、これに限らず他の文字コード体系を採用するものであってもよいことはいうまでもない。なお「文字コード」とは、文字に割当ら得るコードであり、Unicodeではコード・ポイントと呼ばれるものである。
オリジナルのリソース・ファイル310は、テスト対象プログラムが実行中に参照するオリジナルのリソース・ファイルである。図4の(a)に、オリジナルのリソース・ファイル310の例として、オリジナル言語を英語とするリソース・ファイル400を示す。なお本実施形態では、翻訳先の言語は日本語とする。変換テーブル320は、第1の言語であるオリジナル言語の文字を第2の言語である翻訳先の言語の文字に1対1に対応させるテーブルである。このように1対1にマッピングするためには、翻訳先言語の使用する文字の文字コードの範囲が、オリジナル言語の使用する文字の文字コードの範囲よりも大きくなくてはならない。例えば英語(ASCIIコード)は最も小さい文字コードの範囲を使用するため、翻訳先言語としては日本語の他、中国語、韓国語、フランス語などを選択できる。逆にフランス語をオリジナル言語とする場合は、翻訳先言語として日本語や中国語を選択できるが、英語は選択できない。また、変換テーブル320は、好ましくは、オリジナル言語の文字の一部を、翻訳先の言語の文字のうち表示に関して問題を引き起こす可能性のある文字に1対1に対応させる。
ここで表示に関して問題を引き起こす可能性のある文字について日本語の文字を例にいくつか説明する。まず、「表」、「噂」、「ソ」等の日本語の文字であるが、これらの文字は英語環境において改行等の制御コードとして使われるビットパターンを文字コードの2バイト目にもつため、使用する文字コード体系の種類によっては正しく表示されない場合がある。また「鯵」等のいくつかの日本語の文字は、使用する文字コード体系の種類によって違う文字に変換される。例えば「鯵」の文字コードは、UnicodeではU+9BF5であるが、これはMS932と呼ばれる文字コード体系では、0X88B1に変換され、CCSID 942と呼ばれる文字コード体系では、0XE9CBに変換される。なお、問題を引き起こす可能性があるとして認識されている文字以外の文字でも正しく表示されない場合がある。従って変換テーブル320は、通常の文字と表示に関して問題を引き起こす可能性のある文字の両方を含むように、オリジナル言語の文字の一部を、翻訳先の言語の文字の問題を引き起こす可能性のある文字に1対1に対応させることが好ましい。
図4の(b)に、変換テーブル320の例として、英語の文字を日本語の文字に1対1に対応させる変換テーブル405を示す。変換テーブル405の左側2列は、英語の文字と当該文字に割当てられた文字コードであり、右側2列は、対応する日本語の文字と当該文字に割当てられた文字コードである。なお変換テーブル320により対応関係が定義されるのは、オリジナル言語が使用する文字のうち、正規表現でパターンを作る際に使用する記号であるメタ文字を除く文字である。変換テーブル405から分かるように、Unicodeではメタ文字を除く英語の文字はU+0020〜U+007Eの範囲の文字コードに割当てられる。また、ここでは英大文字のS、T、Uの各文字に、問題を引き起こす可能性がある文字「表」、「噂」、「ソ」が対応させられている。
テスト用リソース・ファイル生成手段330は、第1格納部からオリジナルのリソース・ファイル310と変換テーブル320を読み出し、変換テーブル320に基づいて第1の言語の文字を第2の言語の文字に変換することにより、第1の言語で記載されたテスト対象プログラムのリソース・ファイル310から、第2の言語で記載されたテスト用リソース・ファイル340を生成する。生成されたテスト用リソース・ファイル340は、テスト対象プログラムのリソース・ファイルとして第2格納部に格納される。図4の(c)に、変換テーブル405に基づいて英語の文字を日本語の文字に変換することにより、オリジナルのリソース・ファイル400から生成されたテスト用リソース・ファイル410を示す。テスト用リソース・ファイル410をみると分かるように、テスト用リソース・ファイル410にはオリジナル言語である英語の文字は一つも含まれない。
次に図5のフローチャートを参照して、本実施形態に係る装置300の処理の流れの一例を説明する。図5の(a)は、本実施形態に係る装置300の処理の流れの概要を示すフローチャートである。装置300はまず、格納部1からオリジナルのリソース・ファイル310を読み出す(ステップ500)。そして装置300は、変換テーブル320に基づいて第1の言語の文字を第2の言語の文字に変換することにより、テスト対象プログラムの第1の言語で記載されたオリジナルのリソース・ファイル310から、第2の言語で記載されたテスト用リソース・ファイル340を生成する(ステップ505)。最後に装置300は、生成したテスト用リソース・ファイル340を第2格納部へ格納する(ステップ510)。
次に図5の(b)を参照して、ステップ505の処理を詳細に説明する。まず前処理として、装置300は、第1格納部から変換テーブル320を、また第2格納部から空のテスト用リソース・ファイル340を読み出しておく。その後メイン処理が開始し、テスト用リソース・ファイル生成手段330はまず、オリジナルのリソース・ファイル310に読み込み可能な項目があるか判断する(ステップ515)。読み込み可能な項目がない場合(ステップ515:NO)処理はそこで終了する。一方、読み込み可能な項目があると判断すると(ステップ515:YES)、テスト用リソース・ファイル生成手段330は、オリジナルのリソース・ファイル310から1項目を読み込む(ステップ520)。そしてテスト用リソース・ファイル生成手段330は、読み込んだ項目からキーを取り出して変数Keyに代入し(ステップ525)、当該変数Keyをテスト用リソース・ファイル340に書き込む(ステップ530)。
テスト用リソース・ファイル生成手段330は、先程読み込んだ項目から今度は文字列の値を取り出して変数Textに代入し(ステップ535)、更に変数Textから1文字だけ読み出して変数Xに代入する(ステップ540)。代入部の確認のため、テスト用リソース・ファイル生成手段330は変数Xの値を確認し、変数Xの値が数字である場合、更に変数Xの前後の値が「{」及び「}」であるかどうか確認する(ステップ545)。変数Xの値が代入部であることを示す数字でない場合(ステップ545:NO)、テスト用リソース・ファイル生成手段330は、変換テーブル320を参照して変数Xの文字を変換し、変換後の文字を変数Yへ代入する(ステップ550)。変数Xの値が代入部であることを示す数字である場合(ステップ545:YES)、テスト用リソース・ファイル生成手段330は、変数Xの値をそのまま変数Yへ代入する(ステップ555)。なお、変換テーブル320では、「{」及び「}」の文字は変換後も同じ文字になるよう定義されているものとする。その後テスト用リソース・ファイル生成手段330は、変数Yをテスト用リソース・ファイル340に書き込む(ステップ560)。そしてテスト用リソース・ファイル生成手段330は、変数Textから先程読み出した文字が最後の文字か確認する(ステップ565)。最後の文字でない場合(ステップ565:NO)、処理はステップ540に戻る。一方最後の文字である場合(ステップ565:YES)、処理はステップ515に戻る。
図3に戻って、図3において一点鎖線で囲んだ部分は、本発明の実施形態に係る擬似翻訳されたリソース・ファイルとテスト項目ごとに用意した複数のフォントとを用いてテスト対象プログラムをテストするための装置350の機能ブロック図である。なお本明細書では、テスト用リソース・ファイルを作成するための装置300とテスト対象プログラムをテストするための装置350とを区別して説明するが、これは説明の便宜上の区別であり、実際には装置350の機能と装置300の機能を1台のコンピュータに実装することも可能である。装置350は、テスト用リソース・ファイル340を格納する第2格納部、テスト対象プログラム実行部355、表示画面作成部360、フォント選択部365、及びテスト項目ごとに用意した複数のフォントを含む第3格納部を備える。第3格納部に含まれる複数のフォントには、デフォルトのフォント370、ハードコード検出フォント375、文字化け検出フォント380、リバース・フォント385、ソート・フォント390及びその他のフォント395が含まれる。なお、第2格納部と第3格納部は物理的には同一の記憶装置であってもよい。
第2格納部に格納されたテスト用リソース・ファイル340は、上述したように第2の言語である翻訳先の言語で記載されたリソース・ファイルである。テスト用リソース・ファイル340は、テスト対象プログラムのリソース・ファイルとして第2格納部に格納されている。テスト対象プログラム実行部355は、テスト対象プログラムを実行する。テスト対象プログラム実行部355は、テスト対象プログラムを実行するとまず第2格納部からテスト用リソース・ファイル340を読み込み、その後テスト用リソース・ファイル340を参照してテスト対象プログラムの各処理を実行し処理結果を出力する。
表示画面作成部360は、テスト対象プログラムから処理結果を受け取り、第3格納部に含まれるデフォルトのフォントを使用して処理結果の表示画面を作成する。この際表示画面作成部360は、テスト対象プログラムから受け取った処理結果を一時的にバッファに格納する。作成された表示画面は表示のため表示装置へ送られる。表示画面作成部360はまた、フォント選択部365からフォントの指定を受けると、バッファからテスト対象プログラムの処理結果を読み出し、指定されたフォントを使用して新たに処理結果の表示画面を作成する。作成された表示画面は表示のため再び表示装置へ送られる。
フォント選択部365は、ユーザからマウスやキーボード等の入力装置を介して使用するフォントの選択要求を受け取ると、第3格納部を参照して使用可能なフォントを確認し、フォント選択のためのダイアログボックスを作成する。フォント選択部365は作成したダイアログボックスを表示装置へ送る。フォント選択部365はまた、ユーザから使用するフォントの指定を受け取ると、指定されたフォントの種類を表示作画面成部360に伝える。
次に、本発明の実施形態に係るテスト項目ごとに用意された複数のフォントの説明に入る前に、通常のフォントを使用して表示されるテスト対象プログラムの処理結果を説明する。図4の(c)に図示するテスト用リソース・ファイル410を参照して処理を行うテスト対象プログラムの処理結果を、通常のフォントを用いて表示すると、図6に図示する表示画面660のようになる。なお、オリジナルのリソース・ファイル100を参照して処理を行うテスト対象プログラムの処理結果の表示画面は、図1の(c)に示す表示画面110である。上述したようにテスト用リソース・ファイル410は英語を含まないため、本来ならば出力される表示画面に英語は表示されない。従って図7のフィールド665に表示される英語の文字列「Green」はハードコードされた文字列である。しかし表示画面660では日本語の文字と英語の文字とが混在しているため、テスターはハードコード文字列を直ちには検出できない。
また、図6のボタン680に表示される文字列は、テスト用リソース・ファイル410のMSG02の文字列とは異なっており、文字化けした文字である。しかし、表示画面660に表示される文字の文字種が多いことから表示画面660を単独でみただけでは、テスターはボタン680に表示される文字列が文字化けであるとは判断できない。更に図6のリストボックス670に表示される3つの文字列には、平仮名、漢字、カタカナ、記号など様々な日本語の文字が含まれており、テスターはソートを実行した場合にそのソート結果が正しいかどうか直ぐには判断できない。このように、本発明の実施形態に係るテスト用リソース・ファイルは、通常のフォントと一緒に用いられる場合はテスト項目ごとテストに適した画面表示を提供することはできない。
次に本発明の実施形態に係るテスト項目ごとに用意された複数のフォントを説明する。最初に、ハードコード文字列の検出に使用されるハードコード検出フォント375について説明する。ハードコード文字列の検出では、第1の言語であるオリジナル言語の文字に対応する複数の文字コードが、テスト対象、言い換えると検出対象となる複数の文字コードとなる。本発明に係るテスト用リソース・ファイル340は、変換テーブル320に基づきオリジナルのリソース・ファイル310に含まれるすべてのオリジナル言語の文字を翻訳先の言語に変換して作成されるものであるため、そのテスト用リソース・ファイル340を参照して処理を行うテスト対象プログラムの出力に含まれるオリジナル言語の文字は、ソースコードにハードコードされた文字、あるいはテスト対象ではない他のリソースに由来する文字であるといえる。変換テーブルに含まれる第2の言語である翻訳先の言語の文字に対応する文字コード、及びオリジナル言語の文字又は変換テーブル320に含まれる翻訳先の言語の文字のいずれにも対応しない複数の文字コードは、テスト対象以外の複数の文字コードとなる。
そしてハードコード検出フォント375では、テスト対象となるオリジナル言語の文字の画面上での視認性を向上させるため、テスト対象以外の複数の文字コードの各々に同一の字形を対応させる。同一の字形は、好ましくは中白の四角や空白などの目立たない字形、使用頻度の低い字形、又は使用頻度が低くかつ目立たない字形である。一方、テスト対象となるオリジナル言語の複数の文字コードの各々には、その文字コードに対応するオリジナル言語の文字の字形をそのまま対応させる。
図7の(a)にハードコード検出フォント375の例として、オリジナル言語を英語、翻訳先言語を日本語とし、図4の(b)に図示する変換テーブル405を使用してテスト用リソース・ファイルを作成する場合の、ハードコード検出フォントの表700を示す。左端の列は文字コードを示し、対応する右端の列は文字コードに割当てられたハードコード検出フォントのグリフを示す。なお、「グリフ」とは文字コードに割当てられる字形である。また参考のため表700には、中央の列に通常のフォントのグリフが追加されている。表700の文字コードU+3000からU+FFEAは、変換テーブル405に含まれる日本語の文字に対応する文字コードである。これらは上述したようにテスト対象以外の文字コードであるため、ここでは中白の四角の字形が割当てられている。表700の文字コードU+0020からU+007Eは、英語の文字に対応する文字コードである。これらは上述したようにテスト対象の文字コードであるため、ここでは本来の文字の字形がそのまま割当てられている。
そして表700のその他の文字コードは、Unicodeのその他の複数の文字コードである。これらは上述したようにテスト対象以外の文字コードであるため、先程と同様、中白の四角の字形が割当てられている。なお、表700の行数は実際の文字コードの数を示さないことに注意されたい。図4の(c)に図示するテスト用リソース・ファイル410を参照して処理を行うテスト対象プログラムの処理結果を、ハードコード検出フォントの表700を使用して表示した場合の表示画面705を、図7の(b)に図示する。図7の(b)をみると、フィールド710に表示されるハードコードされた文字列「Green」以外の文字はすべて中白の四角記号として表示されている。このようにハードコード検出フォント375を使用するとテスト対象以外の文字が同一の字形で表示されるため、翻訳先言語などの検出対象以外の文字に惑わされることなくテスターは容易にハードコードされた文字を検出できる。
次に第2の言語である翻訳先の言語に固有な文字の表示可能性を判断するために使用される文字化け検出フォント380について説明する。表示可能性の判断では、オリジナル言語の文字又は変換テーブル320に含まれる翻訳先の言語の文字のいずれにも対応しない複数の文字コードが、テスト対象、言い換えると検出対象となる複数の文字コードとなる。本発明に係るテスト用リソース・ファイル340は、変換テーブル320に基づきオリジナルのリソース・ファイル310に含まれるすべてのオリジナル言語の文字を翻訳先の言語に変換して作成されるものであるため、そのテスト用リソース・ファイル340を読み込んだテスト対象プログラムの出力に含まれるべき文字は、変換テーブル320に含まれる翻訳先言語の文字である。但し上記出力には、ハードコード検出フォント375の説明で上述したように、ソースコードにハードコードされた、あるいはテスト対象ではない他のリソースに由来する、オリジナル言語の文字も含まれ得る。しかもこのオリジナル言語の文字は、いわゆる文字化けの結果表示される文字ではない。そのため上記出力に、変換テーブル320に含まれる翻訳先言語の文字及びオリジナル言語の文字以外の文字が含まれていれば、それは本来の表示されるべき文字とは異なる文字、いわゆる文字化けした文字であるといえる。
従ってオリジナル言語の文字に対応する文字コード、及び変換テーブルに含まれる翻訳先の言語の文字に対応する文字コードは、テスト対象以外の複数の文字コードとなる。そして文字化け検出フォント380では、テスト対象となるいわゆる文字化けした文字の画面上での視認性を向上させるため、テスト対象の複数の文字コードの各々に、同一の字形を対応させる。同一の字形は、好ましくは郵便のマークなどの目立つ字形、又は使用頻度が低くかつ目立つ字形である。一方、テスト対象以外の複数の文字コードの各々には、同一の字形であって、かつテスト対象の文字コードに対応付けた字形と異なる字形を対応させる。同一の字形は、好ましくは中白の四角や空白などの目立たない字形である。
図8の(a)に文字化け検出フォント380の例として、オリジナル言語を英語、翻訳先言語を日本語とし、図4の(b)に図示する変換テーブル405に基づいてテスト用リソース・ファイルを生成する場合の、文字化け検出フォントの表800を示す。表800の左端の列は文字化け検出フォント380の文字コードを示し、対応する右端の列は文字コードに割当てられたグリフを示す。その中間の列は参考のために追加された通常のフォントのグリフを示す列である。表800の文字コードU+3000からU+FFEAは、変換テーブル405に含まれる日本語の文字に対応する文字コードである。上述したようにこれらはテスト対象以外の文字コードであるため、中白の四角の字形が割当てられている。
表800の文字コードU+0020からU+007Eは、英語の文字に対応する文字コードである。上述したようにこれらもテスト対象以外の文字コードであるため、中白の四角の字形が割当てられている。そして表800のその他の文字コードは、Unicodeのその他の複数の文字コードである。これらは上述したようにテスト対象の文字コードであるため、ここでは郵便マークの字形が割当てられている。なお、表800の行数は実際の文字コードの数を示さないことに注意されたい。
図4の(c)に図示するテスト用リソース・ファイル410を参照して処理を行うテスト対象プログラムの処理結果を、文字化け検出フォント380の表800を使用して表示した場合の表示画面810を、図8の(b)に図示する。図8の(b)をみると、ボタン830には郵便マークが表示されており、当該箇所では文字化けして文字が表示されることが直ちに分かる。このように文字化け検出フォント380を使用すると文字化けした文字が所定の字形で表示されるため、翻訳先言語の文字種が多い場合でもテスターは容易に文字化けした文字を検出できる。またリストボックス820などに表示される文字など、テスト対象以外の文字は目立たない同一の字形で表示されるため、テスターは正しく表示される翻訳先言語などの検出対象以外の文字に惑わされることなく容易に文字化けした文字を検出できる。
次に第1言語で記載されたリソース・ファイルに含まれる文字列を確認するために使用されるリバース・フォント385について説明する。元の文字列を確認する場合、オリジナル言語の文字に対応する複数の文字コード及び変換テーブル320に含まれる翻訳先の言語の文字に対応する複数の文字コードが、テスト対象、言い換えると確認対象となる複数の文字コードとなる。本発明に係るテスト用リソース・ファイル340は、変換テーブル320に基づきオリジナルのリソース・ファイル310に含まれるすべてのオリジナル言語の文字を翻訳先の言語に変換して作成されるものであるため、テスト用リソース340を参照して処理を行うテスト対象プログラムの出力画面からは元の文字列に関する情報は得られない。そこで、元の文字列に関する情報を得るため、オリジナル言語の文字に対応する複数の文字コード及び変換テーブル320に含まれる翻訳先の言語の文字に対応する複数の文字コードを使用する。オリジナル言語の文字又は変換テーブル320に含まれる翻訳先の言語の文字のいずれにも対応しない複数の文字コードは、テスト対象以外の複数の文字コードとなる。
元の文字列に関する情報を得るため、変換テーブル320に含まれる翻訳先の言語の文字に対応する複数の文字コードの各々には、当該文字コードに対応する翻訳先言語の文字をテスト用リソース・ファイル340の生成の際に変換先の文字としたオリジナル言語の文字の字形を対応させる。これにより、本発明に係るテスト用リソース・ファイル340を参照して処理を行うテスト対象プログラムの出力画面に、オリジナルのリソース・ファイル310に含まれる文字列の各々をオリジナル言語で表示させることができる。また、オリジナル言語の文字に対応する複数の文字コードの各々には、当該文字コードに対応する文字の字形をそのまま割当てる。これによりハードコードされた文字列があった場合でも元の文字列に関する完全な情報を得ることができる。一方、テスト対象以外の複数の文字コードの各々には、識別が容易となるよう同一の字形を対応させる。これら文字コードは、文字化け検出フォント380の説明で上述したように、文字化けした文字といえる文字の文字コードである。すなわち、リバース・フォントを使用した表示画面では、元の文字列に関する情報が得られるだけでなく、同時に文字化けした文字の検出が可能となる。従って上記同一の字形は、郵便のマークなどの目立つ字形、又は使用頻度が低くかつ目立つ字形とするのが好ましい。
図9の(a)にリバース・フォント385の例として、オリジナル言語を英語、翻訳先言語を日本語とし、図4の(b)に図示する変換テーブル405に基づいてテスト用リソース・ファイル340を生成する場合の、リバース・フォントの表850を示す。理解が容易になるように、表850の左端2列にオリジナル言語である英語の文字の文字コードを追加した。従って表850の中央の列がリバース・フォント385の文字コードを示し、対応する右端の列が文字コードに割当てられたグリフを示す。その中間の列は通常のフォントのグリフを示す。表850の文字コードU+3000からU+FFEAは、変換テーブル405に含まれる日本語の文字に対応する文字コードである。上述したようにこれらはテスト対象の文字コードであるため、これらの文字コードには変換前のもとの英語の文字の字形が割当てられている。
図9の(a)中、点線で囲った部分855をみると、文字コードU+8868には、通常のフォントでは「表」の字形が割当てられる。しかし、リバース・フォント385では文字コードU+8868には「S」の字形が割当てられている。この字形「S」は、文字コードU+8868を変換先とする英語の文字コードU+0053に対応する文字である。表850の文字コードU+0020からU+007Eは、英語の文字に対応する文字コードである。これらは上述したようにオリジナル言語の文字に対応する文字コードであるため、元のオリジナル言語の文字の字形がそのまま割当てられている。表850のその他の文字コードは、Unicodeのその他の複数の文字コードである。これらは上述したように文字化け文字に対応する文字コードとなるため、ここでは郵便マークの字形が割当てられている。なお、表850の行数は実際の文字コードの数を示さないことに注意されたい。
起動時に図4の(c)に図示するテスト用リソース・ファイル410を読み込んだテスト対象プログラムの処理結果を、リバース・フォントの表850を使用して表示した場合の表示画面860を、図8の(b)に図示する。図8の(b)をみると、文字が文字化けしているボタン880を除く箇所では、文字列がオリジナル言語である英語で表示されており、図1の(c)に示す元の表示画面110とほぼ同じ画面となっていることが分かる。このようにテスターは、リバース・フォント385を使用すると、オリジナルのリソース・ファイルを開くことなく元の文字列を知ることができると同時に、文字化け文字を容易に検出できる。
次に第2の言語である翻訳先の言語において定義される文字の順番に従う文字列のソート結果の妥当性判断に使用されるソート・フォント390について説明する。ソート結果の妥当性判断では、変換テーブル320に含まれる翻訳先言語の文字に対応する複数の文字コードが、テスト対象となる複数の文字コードとなる。なぜならば、本願発明のテスト用リソース・ファイル340は、変換テーブル320に基づきオリジナルのリソース・ファイル310に含まれるすべてのオリジナル言語の文字を翻訳先の言語に変換して作成されるものであるため、そのテスト用リソース・ファイル340を読み込んだテスト対象プログラムの出力には、翻訳先言語の文字のうち変換テーブル320に含まれる翻訳先の言語が含まれるからである。従って、第1の言語であるオリジナル言語の文字に対応する文字コード、及びオリジナル言語の文字又は変換テーブル320に含まれる翻訳先の言語の文字のいずれにも対応しない複数の文字コードは、テスト対象以外の複数の文字コードとなる。
そしてソート・フォント390では、翻訳先の言語において定義される文字の順番に従って翻訳先言語の文字列が正しくソートされることを画面上で容易に判断できるように、テスト対象の複数の文字コードの各々に、当該文字コードに対応する文字に定義される順番を示す字形を対応させる。一方、テスト対象以外の複数の文字コードの各々には、同一の字形を対応させる。同一の字形は、好ましくは中白の四角や空白などの使用頻度の低い字形、目立たない字形、又は使用頻度が低くかつ目立たない字形である。
図10の(a)にソート・フォント390の例として、オリジナル言語を英語、翻訳先言語を日本語とし、図4の(b)に図示する変換テーブル405を使用してテスト用リソース・ファイル340を作成する場合の、ソート・フォントの表900を示す。左端の列は文字コードを示し、対応する右端の列は文字コードに割当てられたハードコード検出フォントのグリフを示す。また参考のため、表900には中央の列に通常のフォントのグリフが追加されている。表900の文字コードU+3000からU+FFEAは、変換テーブル405に含まれる日本語の文字に対応する文字コードである。これらは上述したようにテスト対象の文字コードであるため、各々その文字に定義される順番を示す字形が割当てられている。なお、「翻訳先の言語において定義される文字の順番」とはどのような順番でもよく、どのような順番を文字に定義するかはどのようなテストをするかによる。ここでは、変換テーブル405に含まれる日本語の文字の文字コード順を採用している。但し、文字コードU+0FFEAのように通常のフォントのグリフにおいて記号を割当てられるような文字コードには、番号(93)ではなく中白の四角のような目立たない字形を割当ててもよい。
表900の文字コードU+0020からU+007Eは、英語の文字に対応する文字コードである。また表900のその他の文字コードは、Unicodeのその他の複数の文字コードである。これらは上述したようにテスト対象の文字以外の文字コードであるため、ここでは中白の四角の字形が割当てられている。なお、表900の行数は実際の文字コードの数を示さないことに注意されたい。図4の(c)に図示するテスト用リソース・ファイル410を参照して処理を行うテスト対象プログラムの処理結果を、ソート・フォントの表900を使用して表示した場合の表示画面905を、図10の(b)に図示する。図10の(b)をみると、リストボックス915にリストされるべき文字列の各文字は、すべて番号として表示されている。従って、ボタン920(図1の(c)のボタン125参照)をクリックしてソートコマンドを実行したときのソート結果が正しいかどうかの判断は、各文字列の先頭文字に相当する番号(同じ番号のときは続く文字の番号、以下同様)をみることにより容易に行うことができる。このようにソート・フォント390を使用すると、翻訳先の言語の文字種が多い場合でも並び替えが正しいかどうかを容易に判断できる。
以上説明した4つのフォント、すなわち、ハードコード検出コード375、文字化け検出フォント380、リバース・フォント385及びソート・フォント390は、例えば次のようにして作成できる。すなわち、既存のフォント・ファイルをコピーし新しい名前で保存する。そして市販のフォント用のエディタ等で新しく作成したフォント・ファイルを開き、上述した本発明に係るいずれかのフォントを作成するべく、文字コードに割当てられる字形を適宜編集する。もちろんフォント用のエディタを使用して本発明に係るフォントを一から作成してもよい。なお、本発明に係るフォントを作成する際指定する文字コード体系は、オリジナル言語の文字集合及び翻訳先言語の文字集合を含む文字コード体系であれば、どのような文字コード体系を選択してもよい。
次に図11の(a)のフローチャートを参照して、本発明の実施形態に係る擬似翻訳されたリソース・ファイルとテスト項目ごとに用意した複数のフォントとを用いて、テスト対象プログラムをテストする処理の流れの一例を説明する。まず前処理として、テスト用リソース・ファイル340を第2格納部に、テスト項目ごとに用意した複数のフォントを通常のフォントと一緒に第3格納部に格納し、テスト対象プログラム実行部355、表示画面作成部360、フォント選択部がそれぞれ参照可能なようにしておく。なお、フォントを実際に使用できるようにするには、フォントを使用するコンピュータにフォントをインストールする必要がある。インストールの方法は、後述する実装例において説明する。そして処理は開始し、まずテスト対象プログラム実行部355は、第2格納部からテスト用リソース・ファイル340を読み込む(ステップ600)。そしてテスト対象プログラム実行部355は、テスト用リソース・ファイル340を参照してテスト対象プログラムの各処理を実行し(ステップ605)、処理結果を出力する(ステップ610)。
表示画面作成部360は、テスト対象プログラムから処理結果を受け取り、第3格納部に含まれるデフォルトのフォントを使用して処理結果の表示画面を作成する(ステップ615)。このとき表示画面作成部360は、テスト対象プログラムから受け取った処理結果を一時的にバッファに格納する。そして、表示画面作成部360は作成した表示画面を表示装置へ送る(ステップ620)。フォント選択部365は、ユーザからの入力を待ち(ステップ625)、入力を受け取ると受け取った入力がフォント選択要求かどうか判断する(ステップ630)。フォント選択要求でない場合(ステップ630:NO)、処理はここで終了する。フォント選択要求の場合(ステップ630:YES)、フォント選択部365は、第3格納部を参照して使用可能なフォントを確認しフォント選択のための表示画面を作成する(ステップ635)。そして、フォント選択部365は作成したフォント選択のための表示画面を表示装置へ送り画面に表示させる(ステップ640)。
フォント選択部365は、ユーザから使用するフォントの指定を受け取ると(ステップ645)、指定されたフォントの種類に関する情報を画面表示作成部610に渡す。表示画面作成部360はバッファからテスト対象プログラムの処理結果を読み出し、ユーザが選択したフォントを使用して新たに処理結果の表示画面を作成する(ステップ650)。表示画面作成部360は再び作成した表示画面を表示装置へ送る(ステップ655)。そして処理はステップ625へ戻る。
次に図11の(b)を参照して、ステップ650の処理の詳細を説明する。まず、表示画面作成部360はバッファからテスト対象プログラムの処理結果を読み出す(ステップ660)。そして表示画面作成部360は、読み出した処理結果に次の処理データがあるかどうか判断する(ステップ665)。 次の処理データがない場合(ステップ665:NO)、処理はここで終了する。次の処理データがある場合(ステップ665:YES)、表示画面作成部360は、処理結果から次の処理データを読み出し、(ステップ670)、処理データに文字コードが含まれるかどうか判断する(ステップ675)。文字コードが含まれない場合(ステップ675:NO)、表示画面作成部360は、そのまま処理データに基づいて表示画面の一部を作成する(ステップ680)。ステップ675で文字コードが含まれる場合、表示画面作成部360は、ユーザから指示されたフォントから上記文字コードに割り当てられる字形を検索し(ステップ685)、検索した字形を使用して処理データに基づき表示画面の一部を作成する(ステップ690)。
本発明に係る各フォントは、テスト対象となる複数の第1の文字コードと、第1の規則に従って複数の第1の文字コードに1対1に対応付けられた複数の第1の字形情報と、所定の文字コード体系のその他の複数の第2の文字コードと、第2の規則に従って複数の第2の文字コードに1対1に対応付けられた複数の第2の字形情報とを含む。従って図11の(a)に示すステップ645で本発明に係るフォントが指定されている場合、表示画面作成部360は、処理データに含まれる文字コードがテスト対象となる第1の文字コードである場合、当該第1の文字コードに第1の規則に従って割当てられた第1の字形情報をフォントから検索し、画面表示に使用する。一方、処理データに含まれる文字コードがテスト対象ではない第2の文字コードである場合、表示画面作成部360は、当該第2の文字コードに第2の規則に従って割当てられた第2の字形情報をフォントから検索し、画面表示に使用する。従って表示画面では、テスト対象である第1の文字コードとテスト対象ではない第2の文字コードが識別可能に表示される。ステップ680又はステップ690の後、処理はステップ665へ戻る。
次に、図12乃至図14を参照して、本発明の実装例を説明する。図12は、本発明を実装したシステム950の一実装例を示す。システム950は、Webサーバ970、Webサーバに接続された記憶装置955、Webサーバ970にネットワークを介して接続されたクライアント975、クライアント975に接続された記憶装置980を含む。記憶装置955はテスト対象プログラムとしてのWebアプリケーション960とテスト用リソース・ファイル965とを含む。また、記憶装置980はWebブラウザ985とテスト項目ごとに用意された複数のフォント990とを含む。
Webサーバ970は、ネットワークを介してクライアント975から処理のリクエストを受信すると、当該処理を実行するWebアプリケーション960を起動する。また、Webサーバ970は、Webアプリケーション960から処理結果を受け取ると、ネットワークを介して処理をリクエストしたクライアント975に処理結果を送信する。テスト対象プログラムであるWebアプリケーション960は、記憶装置955からWebサーバ970のRAMにロードされ、Webサーバ970の中央処理装置(CPU)により実行されることにより、図3に図示されるテスト対象プログラム実行部355として機能する。そしてWebアプリケーション960は、起動時に記憶装置955からテスト用リソース・ファイル965を読み込み、当該テスト用リソース・ファイル965を参照してリクエストされた処理を実行する。Webアプリケーション960から出力された処理結果は、Webサーバ970へ渡される。
クライアント975は、Webアプリケーション960をテストするテスターのリクエストによりWebブラウザ985を起動する。Webブラウザ985は、記憶装置980からクライアント975のRAMにロードされ、クライアント975のCPUにより実行されることにより、図3に図示される表示画面作成部360及びフォント選択部365として機能する。Webブラウザ985は、テスターの入力に応答してWebアプリケーション960が提供する処理をWebサーバ970にリクエストする。そしてWebサーバ970から処理結果を受信すると、表示画面作成部360として機能するWebブラウザ985は、デフォルトのフォントを使用して処理結果の表示画面を作成し、クライアント975のディスプレイに表示する。
また、フォント選択部365として機能するWebブラウザ985は、テスターからフォントの選択要求を受け取ると、記憶装置980に格納されるフォントを参照して又は使用可能なフォント名取得の関数を呼び出して使用可能なフォントの一覧を取得し、クライアント975のディスプレイにフォント選択のためのダイアログボックスを表示する。そして、テスターから使用するフォントの指定を受け取ると、Webブラウザ985は、指定されたフォントを使って上記処理結果をクライアント975のディスプレイに再表示する。
なお、本発明に係るテスト項目ごとに用意された複数のフォント990をWebブラウザ985が参照できるようにするには、テスト項目ごとに用意された複数のフォント990をクライアント975にインストールする必要がある。インストールの方法は、クライアント975上で動作するオペレーティング・システム(OS)による。例えばOSとしてマイクロソフト社のWindows(登録商標)XPを使用する場合、フォントのインストールは、コンピュータのフォントの追加、変更及び管理をするコントロールパネルのフォントを利用する。フォントのファイルメニューには、「新しいフォントのインストール」が用意されている。またマイクロソフト社のWindows(登録商標)XPより以前のWindows(登録商標)を使用する場合は、Adobe Type Manager(ATM)というフォント管理ソフトウェアを利用できる。ATMをコンピュータにインストールすれば、あとはフォント・ファイルをシステム・フォルダにドラッグ&ドロップし、コンピュータを再起動するだけでよい。
次に、図13のフローチャートを参照して、システム950の処理の流れを説明する。Webサーバ970はステップ700においてクライアントからのリクエストを待っている。一方クライアントであるWebブラウザ985は、テスターからの入力を待ち(ステップ705)、Webアプリケーション960が提供する処理のリクエストを受け取ると、当該リクエストをWebサーバ970に送信する(ステップ710)。リクエストの受信に応答して(ステップ715)、Webサーバ970は、Webアプリケーション960を起動する(ステップ720)。Webアプリケーション960は、起動時に本発明に係るテスト用リソース・ファイルを読み込み(ステップ725)、当該テスト用リソース・ファイルを参照してリクエストされた処理を実行する(ステップ730)。そしてWebアプリケーション960は、処理結果を出力しWebサーバ970へ渡す(ステップ735)。
処理結果を受け取ったことに応答して(ステップ740)、Webサーバ970は当該処理結果をWebブラウザ985に送信する(ステップ745)。Webブラウザ985は処理結果を受信すると(ステップ750)、デフォルトのフォントを使用して処理結果の表示画面を作成し(ステップ755)、クライアント975のディスプレイに表示する(ステップ760)。そしてWebブラウザ985はテスターからの入力を待つ(ステップ765)。テスターからの入力を受け取 ると、Webブラウザ985は入力がフォントの選択要求かどうかを判断する(ステップ770)。フォントの選択要求である場合(ステップ770:YES)、Webブラウザ985は記憶装置980を参照して使用できるフォントを確認し、本発明に係るテスト項目ごとに用意された複数のフォントを含む使用可能なフォントの一覧表を作成する(ステップ775)。
Webブラウザ985は作成した一覧表を使ってクライアント975のディスプレイにフォント選択のためのダイアログボックス表示し(ステップ780)(図14参照)、テスターからのフォントの指定を待つ。テスターからのフォント指定の入力に応答して(ステップ785)、Webブラウザ985は指定されたフォントを使用して先程の処理結果を再表示する(ステップ790、ステップ795)。ステップ770でNOの場合、すなわちテスターからの入力がフォントの選択要求でない場合、処理はステップ800へ進み、Webブラウザ985は他の処理を実行する。ステップ795またはステップ800の後処理はステップ765に戻り、Webブラウザ985は再びテスターからの入力を待つ。ステップ765からステップ795までの処理が繰り返され、本発明に係るテスト項目ごと用意された複数のフォント間でフォントの切り換えがテスターにより行われると、クライアントのディスプレイには図7の(b)、図8の(b)、図9の(b)、図10の(b)に各々図示されるような表示画面が次々と表示される。
図15は、本発明に係るテスト用リソース・ファイルを作成するための装置300のハードウェア構成の一例を示す。図15はまた、本発明に係る、擬似翻訳されたリソース・ファイルとテスト項目ごとに用意した複数のフォントとを用いてテスト対象プログラムをテストするための装置350のハードウェア構成の一例でもある。更に図15は、1台のコンピュータに装置300の機能と装置350の機能とを実装する場合の、コンピュータのハードウェア構成の一例でもある。なお図12乃至図14を参照して説明したシステム950では、装置350はWebサーバ970とクライアント975の2台のコンピュータにより構成された。この場合、図15に図示するハードウェア構成は、Webサーバ970及びクライアント975のそれぞれのハードウェア構成の一例としてみることができる。
システム1000は、ホストコントローラ1015により相互に接続されるCPU1010及びRAM1040、グラフィックコントローラ1020、及び表示装置1025を含むCPU周辺部と、入出力コントローラ1030によりホストコントローラ1015に接続される通信インターフェース1070、ハードディスクドライブ1050、及びCD−ROMドライブ1060を含む入出力部と、入出力コントローラ1030に接続されるスーパーI/Oコントローラ1080及びスーパーI/Oコントローラ1080に接続されるフレキシブルディスクドライブ1090、フラッシュROM1100、並びにキーボードマウスコントローラ1110を有するレガシー入出力部を備える。
ホストコントローラ1015は、高い転送レートでRAM1040にアクセスするCPU1010をRAM1040と接続する。CPU1040は、ハードディスクに格納されたプログラムに基づいて動作し、各部の制御を行う。本発明に係るテスト対象プログラムをテストするためのプログラムは、フレキシブルディスク、CD−ROM、DVDやPD等の光学記録媒体、MD等の光磁気記憶媒体、ICカード等の半導体メモリ等の記録媒体に格納されて利用者によって提供される。または、テスト対象プログラムをテストするためのプログラムは、外部のコンピュータからネットワークを介してダウンロードされてもよい。本発明に係るテスト項目ごとに用意される複数のフォントも同様に、フレキシブルディスク、CD−ROM、DVDやPD等の光学記録媒体、MD等の光磁気記憶媒体、ICカード等の半導体メモリ等の記録媒体に格納されて、またはネットワークを介してダウンロードされて、利用者によって提供される。
入出力コントローラ1030は、比較的高速な入出力装置である通信インターフェース1070、ハードディスクドライブ1050、及びCD−ROMドライブ1060をホストコントローラ1015と接続する。通信インターフェース1070は、ネットワークを介して他のコンピュータと通信する。CD−ROMドライブ1060は、CD−ROMからプログラムまたはデータを読み取り、入出力コントローラ1030を介してCPU1010に提供する。また、入出力コントローラ1030には、フレキシブルディスクドライブ1090やキーボードマウスコントローラ1110等の比較的低速な入出力装置と、フラッシュROM1100とが接続される。フラッシュROM1100は、装置システム1000の起動時にCPU1010が実行するブートプログラムや、ハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ1090は、フレキシブルディスクからプログラムまたはデータを読み取り、RAM1040を介してスーパーI/Oコントローラ1080に提供する。スーパーI/Oコントローラ1080は、フレキシブルディスクや、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
以上、実施形態を用いて本発明の説明をしたが、本発明の技術範囲は上記実施形態に記載の範囲には限定されない。上記の実施形態に、種々の変更または改良を加えることが可能であることが当業者に明らかである。従って、そのような変更または改良を加えた形態も当然に本発明の技術的範囲に含まれる。
(a)は、テスト対象プログラムの外部化されたリソース・ファイルの一例を示す図である。(b)は、テスト対象プログラムのソースコードの一部の一例を示す図である。(c)は、テスト対象プログラムの出力画面の一例を示す図である。 (a)は、従来技術に基づく擬似翻訳されたリソース・ファイルの一例を示す図である。(b)は、テスト対象プログラムの出力画面の一例を示す図である。 本発明の実施形態に係るテスト用リソース・ファイルを作成するための装置、及び本発明の実施形態に係るテスト対象プログラムをテストするための装置の構成の一例を示す図である。 (a)は、テスト対象プログラムの外部化されたリソース・ファイルの一例を示す図である。(b)は、本発明の実施形態に係る変換テーブルの一例を示す図である。(c)は、本発明の実施形態に係るテスト用リソース・ファイルの一例を示す図である。 本発明の実施形態に係るテスト用リソース・ファイルを作成するための装置の処理の流れの一例を示すフローチャートを示す図である。 テスト対象プログラムの実行結果を通常のフォントを用いて表示した表示画面の一例を示す図である。 (a)は、本発明の実施形態に係るハードコード検出フォントの一例を示す図である。(b)は、テスト対象プログラムの処理結果を、ハードコード検出フォントを用いて表示した表示画面の一例を示す図である。 (a)は、本発明の実施形態に係る文字化け検出フォントの一例を示す図である。(b)は、テスト対象プログラムの処理結果を、文字化け検出フォントを用いて表示した表示画面の一例を示す図である。 (a)は、本発明の実施形態に係るリバース・フォントの一例を示す図である。(b)は、テスト対象プログラムの処理結果を、リバース・フォントを用いて表示した表示画面の一例を示す図である。 (a)は、本発明の実施形態に係るソート・フォントの一例を示す図である。(b)は、テスト対象プログラムの処理結果を、ソート・フォントを用いて表示した表示画面の一例を示す図である。 (a)は、本発明の実施形態に係る、テスト対象プログラムをテストするための装置の処理の流れの一例を示すフローチャートを示す図である。(b)は、指定されたフォントを使用して処理結果の表示画面を作成する処理の流れの一例を示すフローチャートを示す図である。 本発明の実施形態に係るシステム全体の実装例を示す図である。 図12に示すシステム全体の処理の流れの一例を示すフローチャートを示す図である。 使用するフォントを選択するために表示されるダイアログボックスの一例を示す図である。 本実施形態に係るテスト用リソース・ファイルを作成するための装置、及び本発明の実施形態に係る、テスト対象プログラムをテストするための装置のハードウェア構成の一例を示す図である。

Claims (14)

  1. コンピュータによって実行される、外部化されたリソース・ファイルを参照して処理を行う国際化ソフトウェアをテストする方法であって、
    第1の言語で記載された前記外部化されたリソース・ファイルからデータを読み出すステップと、
    前記第1の言語の文字を第2の言語の文字に1対1に対応させる変換テーブルを参照して、前記データに含まれる前記第1の言語の文字を前記第2の言語の文字に変換することにより、前記第1の言語で記載された前記外部化されたリソース・ファイルから前記第2の言語で記載されたテスト用リソース・ファイルを生成するステップと、
    前記国際化ソフトウェアを実行するステップと、
    前記テスト用リソース・ファイルを前記外部化されたリソース・ファイルとして参照して表示画面作成のための処理を行う前記国際化ソフトウェアから出力される前記処理の結果としての出力情報を、フォントの切り替え操作に応答して、前記国際化ソフトウェアのテスト項目ごとに用意された複数のフォントからユーザにより選択された1つを参照して画面に表示するステップとを含み、
    前記出力情報に含まれる文字コードは、前記出力情報に本来含まれるべきでない、前記第1の言語の複数の文字に各々対応する複数の文字コードからなる第1のグループ前記出力情報に含まれるべき、前記変換テーブルに含まれる前記第2の言語の複数の文字に各々対応する複数の文字コードからなる第2のグループ、及び前記出力情報に本来含まれるべきでない、前記第1の言語の複数の文字及び前記変換テーブルに含まれる前記第2の言語の複数の文字のいずれにも対応しない複数の文字コードからなる第3のグループのいずれかに分類することが可能であり、
    前記テスト項目は、第1の言語で記載された前記外部化されたリソース・ファイルに含まれる文字列を確認する文字列確認を含み、当該文字列確認に使用されるフォントは、前記第2のグループに含まれる複数の文字コードの各々に、当該文字コードに対応する前記第2の言語の文字を前記テスト用リソース・ファイルの生成の際に変換先の文字とした前記第1の言語の文字の字形を対応させ、かつ前記第1のグループに含まれる複数の文字コードの各々に、当該文字コードに対応する前記第1の言語の文字の字形をそのまま対応させ
    前記文字列確認に使用されるフォントを除く前記複数のフォントの各々は、対応するテスト項目においてテスト対象となる前記第1乃至第3のいずれか1つのグループに含まれる各文字コードには、同一の字形又は各々異なる複数の字形を対応付け、前記テスト対象とならない残りの前記第1乃至第3のいずれか2つのグループに含まれる各文字コードには、前記同一の字形とは異なる同一の字形を対応付けることにより、当該フォントを用いた前記出力情報の表示において、テスト対象となる文字コードとその他の文字コードとを識別可能にする、方法。
  2. 前記変換テーブルは、前記第1の言語の文字の一部を、前記第2の言語の文字のうち表示に関し問題を引き起こす可能性がある文字に1対1に対応させ、かつ前記第1の言語の文字の残りを、任意の前記第2の言語の文字に1対1に対応させる、請求項1に記載の方法。
  3. 前記テスト項目は、ハードコード文字列である可能性のある文字列の検出を含み、当該出に使用されるフォントは、前記第1のグループを前記テスト対象グループとし、前記第1のグループの複数の文字コードの各々に、当該文字コードに対応する前記第1の言語の文字の字形をそのまま対応させる、請求項1に記載の方法。
  4. 前記テスト項目は、前記第2の言語において定義される文字の順番に従う文字列のソート結果の妥当性判断を含み、当該ソート結果の妥当性の判断に使用されるフォントは、前記第2のグループを前記テスト対象グループとし、前記第2のグループの複数の文字コードの各々に、当該文字コードに対応する前記第2の言語の文字に定義された順番を示す字形を対応させる、請求項1又は3に記載の方法。
  5. 前記テスト項目は、前記第2の言語に固有な文字の表示可能性判断を含み、当該表示可能性の判断に使用されるフォントは、前記第3のグループを前記テスト対象のグループとし、前記第3のグループの複数の文字コードの各々に、同一の字形を対応させる、請求項1又は4に記載の方法。
  6. 前記文字列確認に使用されるフォントは、前記第3のグループに含まれる複数の文字コードの各々に、同一の字形を対応させる、請求項1乃至5いずれか1項に記載の方法。
  7. 外部化されたリソース・ファイルを参照して処理を行う国際化ソフトウェアをテストするための装置であって、
    第1の言語で記載された前記外部化されたリソース・ファイル及び前記第1の言語の文字を第2の言語の文字に1対1に対応させる変換テーブルを格納する第1の格納部と、
    前記変換テーブルを参照して前記第1の言語の文字を前記第2の言語の文字に変換することにより、前記外部化されたリソース・ファイルから前記第2の言語で記載されたテスト用リソース・ファイルを生成する生成手段と、
    生成された前記テスト用リソース・ファイルを格納する第2の格納部と、
    前記国際化ソフトウェアを実行する手段と、
    前記テスト用リソース・ファイルを前記外部化されたリソース・ファイルとして参照して表示画面作成のための処理を行う前記国際化ソフトウェアから出力される前記処理の結果としての出力情報を、フォントの切り替え操作に応答して、前記国際化ソフトウェアのテスト項目ごとに用意された複数のフォントからユーザにより選択された1つを参照して表示画面を作成する表示画面作成部とを含み、
    前記出力情報に含まれる文字コードは、前記出力情報に本来含まれるべきでない、前記第1の言語の複数の文字に各々対応する複数の文字コードからなる第1のグループ前記出力情報に含まれるべき、前記変換テーブルに含まれる前記第2の言語の複数の文字に各々対応する複数の文字コードからなる第2のグループ、及び前記出力情報に本来含まれるべきでない、前記第1の言語の複数の文字及び前記変換テーブルに含まれる前記第2の言語の複数の文字のいずれにも対応しない複数の文字コードからなる第3のグループのいずれかに分類することが可能であり、
    前記テスト項目は、第1の言語で記載された前記外部化されたリソース・ファイルに含まれる文字列を確認する文字列確認を含み、当該文字列確認に使用されるフォントは、前記第2のグループに含まれる複数の文字コードの各々に、当該文字コードに対応する前記第2の言語の文字を前記テスト用リソース・ファイルの生成の際に変換先の文字とした前記第1の言語の文字の字形を対応させ、かつ前記第1のグループに含まれる複数の文字コードの各々に、当該文字コードに対応する前記第1の言語の文字の字形をそのまま対応させ
    前記文字列確認に使用されるフォントを除く前記複数のフォントの各々は、対応するテスト項目においてテスト対象となる前記第1乃至第3のいずれか1つのグループに含まれる各文字コードには、同一の字形又は各々異なる複数の字形を対応付け、前記テスト対象とならない残りの前記第1乃至第3のいずれか2つのグループに含まれる各文字コードには、前記同一の字形とは異なる同一の字形を対応づけることにより、当該フォントを用いた前記出力情報の表示において、テスト対象となる文字コードとその他の文字コードとを識別可能にする、装置。
  8. 前記テスト項目は、ハードコード文字列である可能性のある文字列の検出を含み、当該検出に使用されるフォントは、前記第1のグループを前記テスト対象のグループとし、前記第1のグループの複数の文字コードの各々に、当該文字コードに対応する前記第1の言語の文字の字形をそのまま対応させる、請求項7に記載の装置。
  9. 前記テスト項目は、前記第2の言語において定義される文字の順番に従う文字列のソート結果の妥当性判断を含み、当該ソート結果の妥当性の判断に使用されるフォントは、前記第2のグループを前記テスト対象のグループとし、前記第2のグループの複数の文字コードの各々に、当該文字コードに対応する前記第2の言語の文字に定義された順番を示す字形を対応させる、請求項7又は8に記載の装置。
  10. 前記テスト項目は、前記第2の言語に固有な文字の表示可能性判断を含み、当該表示可能性の判断に使用されるフォントは、前記第3のグループを前記テスト対象のグループとし、前記第3のグループの複数の文字コードの各々に、同一の字形を対応させる、請求項7又は9に記載の装置。
  11. 外部化されたリソース・ファイルを参照して処理を行う国際化ソフトウェアをテストするためのプログラムであって、コンピュータに、
    第1の言語で記載された前記外部化されたリソース・ファイルからデータを読み出すステップと、
    第1の言語の文字を第2の言語の文字に1対1に対応させる変換テーブルを参照して、前記データに含まれる前記第1の言語の文字を前記第2の言語の文字に変換することにより、前記第1の言語で記載された前記外部化されたリソース・ファイルから前記第2の言語で記載されたテスト用リソース・ファイルを生成するステップと、
    前記テスト用リソース・ファイルを前記外部化されたリソース・ファイルとして参照して表示画面作成のための処理を行う前記国際化ソフトウェアから出力される前記処理の結果としての出力情報を、フォントの切り替え操作に応答して、前記国際化ソフトウェアのテスト項目ごとに用意された複数のフォントからユーザにより選択された1つを参照して画面に表示するステップとを実行させ、
    前記出力情報に含まれる文字コードは、前記出力情報に本来含まれるべきでない、前記第1の言語の複数の文字に各々対応する複数の文字コードからなる第1のグループ前記出力情報に含まれるべき、前記変換テーブルに含まれる前記第2の言語の複数の文字に各々対応する複数の文字コードからなる第2のグループ、及び前記出力情報に本来含まれるべきでない、前記第1の言語の複数の文字及び前記変換テーブルに含まれる前記第2の言語の複数の文字のいずれにも対応しない複数の文字コードからなる第3のグループのいずれかに分類することが可能であり、
    前記テスト項目は、第1の言語で記載された前記外部化されたリソース・ファイルに含まれる文字列を確認する文字列確認を含み、当該文字列確認に使用されるフォントは、前記第2のグループに含まれる複数の文字コードの各々に、当該文字コードに対応する前記第2の言語の文字を前記テスト用リソース・ファイルの生成の際に変換先の文字とした前記第1の言語の文字の字形を対応させ、かつ前記第1のグループに含まれる複数の文字コードの各々に、当該文字コードに対応する前記第1の言語の文字の字形をそのまま対応させ
    前記文字列確認に使用されるフォントを除く前記複数のフォントの各々は、対応するテスト項目においてテスト対象となる前記第1乃至第3のいずれか1つのグループに含まれる各文字コードには、同一の字形又は各々異なる複数の字形を対応付け、前記テスト対象とならない残りの前記第1乃至第3のいずれか2つのグループに含まれる各文字コードには、前記同一の字形とは異なる同一の字形を対応付けることにより、当該フォントを用いた前記出力情報の表示において、テスト対象となる文字コードとその他の文字コードとを識別可能にする、プログラム。
  12. 前記テスト項目は、ハードコード文字列である可能性のある文字列の検出を含み、当該検出に使用されるフォントは、前記第1のグループを前記テスト対象のグループとし、前記第1のグループの複数の文字コードの各々に、当該文字コードに対応する前記第1の言語の文字の字形をそのまま対応させる、請求項11に記載のプログラム。
  13. 前記テスト項目は、前記第2の言語において定義される文字の順番に従う文字列のソート結果の妥当性判断を含み、当該ソート結果の妥当性の判断に使用されるフォントは、前記第2のグループを前記テスト対象のグループとし、前記第2のグループの複数の文字コードの各々に、当該文字コードに対応する前記第2の言語の文字に定義された順番を示す字形を対応させる、請求項11又は12に記載のプログラム。
  14. 前記テスト項目は、前記第2の言語に固有な文字の表示可能性判断を含み、当該表示可能性の判断に使用されるフォントは、前記第3のグループを前記テスト対象のグループとし、前記第3のグループの複数の文字コードの各々に、同一の字形を対応させる、請求項11又は13に記載のプログラム。
JP2006246177A 2006-09-11 2006-09-11 テスト用リソース・ファイル及びテスト用フォントを用いた国際化ソフトウェアのテスト方法、装置及びプログラム Expired - Fee Related JP4143661B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2006246177A JP4143661B2 (ja) 2006-09-11 2006-09-11 テスト用リソース・ファイル及びテスト用フォントを用いた国際化ソフトウェアのテスト方法、装置及びプログラム
CNB2007101482834A CN100570556C (zh) 2006-09-11 2007-09-04 测试国际化软件的方法和设备
US11/853,412 US8656357B2 (en) 2006-09-11 2007-09-11 Testing internationalized software using test resource file and test font
US11/853,359 US7581208B2 (en) 2006-09-11 2007-09-11 Testing internationalized software using test resource file and test font
US12/504,517 US8286136B2 (en) 2006-09-11 2009-07-16 Testing internationalized software using test resource file and test font
US14/145,587 US9015678B2 (en) 2006-09-11 2013-12-31 Testing internationalized software using test resource file and test font

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006246177A JP4143661B2 (ja) 2006-09-11 2006-09-11 テスト用リソース・ファイル及びテスト用フォントを用いた国際化ソフトウェアのテスト方法、装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2008065794A JP2008065794A (ja) 2008-03-21
JP4143661B2 true JP4143661B2 (ja) 2008-09-03

Family

ID=39171261

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006246177A Expired - Fee Related JP4143661B2 (ja) 2006-09-11 2006-09-11 テスト用リソース・ファイル及びテスト用フォントを用いた国際化ソフトウェアのテスト方法、装置及びプログラム

Country Status (3)

Country Link
US (4) US8656357B2 (ja)
JP (1) JP4143661B2 (ja)
CN (1) CN100570556C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11809847B2 (en) 2022-03-16 2023-11-07 International Business Machines Corporation Hardcoded string detection

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7739660B2 (en) * 2006-03-31 2010-06-15 Sap Ag Code management in a distributed software development environment
JP4143661B2 (ja) 2006-09-11 2008-09-03 インターナショナル・ビジネス・マシーンズ・コーポレーション テスト用リソース・ファイル及びテスト用フォントを用いた国際化ソフトウェアのテスト方法、装置及びプログラム
US20090037830A1 (en) * 2007-08-03 2009-02-05 International Business Machines Corporation Software solution for localization of software applications using automatically generated placeholders
US8307349B2 (en) * 2008-01-31 2012-11-06 International Business Machines Corporation Methods, systems, and computer program products for internationalizing user interface control layouts
US7698688B2 (en) * 2008-03-28 2010-04-13 International Business Machines Corporation Method for automating an internationalization test in a multilingual web application
WO2009145769A1 (en) 2008-05-29 2009-12-03 Hewlett-Packard Development Company, L.P. Method and system of testing software using real time replication
CN101382888B (zh) * 2008-09-10 2011-09-14 金蝶软件(中国)有限公司 一种处理国际化资源的方法及系统
JP4993319B2 (ja) 2009-02-13 2012-08-08 インターナショナル・ビジネス・マシーンズ・コーポレーション ソフトウェアの国際化の検証を支援する装置及び方法
CN101697127B (zh) * 2009-10-30 2012-08-29 南京中兴软创科技股份有限公司 一种软件系统国际化方法
JP2011134018A (ja) * 2009-12-22 2011-07-07 Canon Inc 情報処理装置、情報処理システム、制御方法、及びプログラム
US9098629B2 (en) * 2010-12-01 2015-08-04 Sap Se System and method for reversibility categories and characteristics of computer application functions
US20130014084A1 (en) * 2011-07-05 2013-01-10 Microsoft Corporation International Testing Platform
JP5720531B2 (ja) * 2011-10-31 2015-05-20 富士通株式会社 ヘルプ作成支援装置、ヘルプ作成支援プログラムおよびヘルプ作成支援方法
US20130125232A1 (en) * 2011-11-10 2013-05-16 Rockwell Automation Technologies, Inc. Implementing engineering unit conversions associated with control devices
CN103150293B (zh) * 2011-12-06 2017-06-06 富泰华工业(深圳)有限公司 可进行乱码恢复的电子装置及恢复乱码的方法
CN103358727B (zh) * 2012-03-26 2017-09-19 精工爱普生株式会社 记录装置及记录装置的控制方法
CN103425572B (zh) * 2012-05-24 2016-04-13 腾讯科技(深圳)有限公司 代码分析方法及代码分析系统
US20140019951A1 (en) * 2012-07-12 2014-01-16 Rumiana Petrova Mobile application translation
US10007535B1 (en) * 2012-09-11 2018-06-26 EMC IP Holding Company LLC Method and system for an automation framework for internationalization compliant applications
GB2506122A (en) * 2012-09-20 2014-03-26 Ibm Integrating data transform test with data transform tool
KR101438979B1 (ko) * 2012-12-31 2014-09-11 현대자동차주식회사 소프트웨어 검사 방법 및 시스템
US9529699B2 (en) * 2013-06-11 2016-12-27 Wipro Limited System and method for test data generation and optimization for data driven testing
US10613840B1 (en) * 2014-01-17 2020-04-07 TG, Inc Converting programs to visual representation with intercepting screen draws
CN103823686B (zh) * 2014-03-17 2017-04-19 广东欧珀移动通信有限公司 基于签到法的字符串资源是否同步的检测方法及系统
US9697018B2 (en) 2015-05-29 2017-07-04 International Business Machines Corporation Synthesizing inputs to preserve functionality
CN107153607A (zh) * 2016-03-03 2017-09-12 展讯通信(天津)有限公司 检查移动终端界面语言的方法、装置及系统
US10229220B2 (en) 2016-05-09 2019-03-12 Coupa Software Incorporated Automatic entry of suggested translated terms in an online application program
CN106095685A (zh) * 2016-06-20 2016-11-09 浪潮电子信息产业股份有限公司 基于linux系统服务器功能测试界面显示的方法
US11403078B2 (en) * 2016-10-21 2022-08-02 Vmware, Inc. Interface layout interference detection
CN108255490B (zh) * 2016-12-28 2021-11-26 平安科技(深圳)有限公司 一种硬编码的处理方法及装置
CN106708591B (zh) * 2017-01-25 2020-06-02 东软集团股份有限公司 操作系统的文字检测方法及装置
US10235361B2 (en) * 2017-02-15 2019-03-19 International Business Machines Corporation Context-aware translation memory to facilitate more accurate translation
CN107480053B (zh) * 2017-07-21 2021-08-17 销冠网络科技有限公司 一种软件测试数据生成方法及装置
US10318644B1 (en) 2017-07-26 2019-06-11 Coupa Software Incorporated Dynamic update of translations for electronic resources
CN107608875B (zh) * 2017-08-03 2020-11-06 奇安信科技集团股份有限公司 一种静态代码的本地化处理方法及装置
US10248396B1 (en) * 2017-09-18 2019-04-02 Amazon Technologies, Inc. Code review with automated translation
KR102307871B1 (ko) * 2019-06-26 2021-09-30 넷마블 주식회사 Lqa 테스트 자동화를 위한 컴퓨터 프로그램
CN111158805B (zh) * 2019-11-19 2022-06-17 厦门天锐科技股份有限公司 Delphi软件源语言翻译系统、方法、设备及介质
US11347500B2 (en) 2020-06-17 2022-05-31 Bank Of America Corporation Software code converter for resolving conflicts during code development
US11782685B2 (en) 2020-06-17 2023-10-10 Bank Of America Corporation Software code vectorization converter
US11573775B2 (en) 2020-06-17 2023-02-07 Bank Of America Corporation Software code converter for resolving redundancy during code development
CN111984267B (zh) * 2020-07-02 2023-11-07 福建天泉教育科技有限公司 多版本资源存储国际化的方法、存储介质
CN112000575A (zh) * 2020-08-21 2020-11-27 探探文化发展(北京)有限公司 一种应用的界面显示测试方法、系统、设备及存储介质

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4864503A (en) * 1987-02-05 1989-09-05 Toltran, Ltd. Method of using a created international language as an intermediate pathway in translation between two national languages
US5263162A (en) * 1990-11-07 1993-11-16 Hewlett-Packard Company Method of validating a label translation configuration by parsing a real expression describing the translation configuration
US6760695B1 (en) * 1992-08-31 2004-07-06 Logovista Corporation Automated natural language processing
US5438628A (en) * 1993-04-19 1995-08-01 Xerox Corporation Method for matching text images and documents using character shape codes
JP2773652B2 (ja) * 1994-08-04 1998-07-09 日本電気株式会社 機械翻訳装置
JP3311904B2 (ja) * 1995-06-27 2002-08-05 富士通株式会社 印刷装置
US6158045A (en) * 1995-11-13 2000-12-05 Object Technology Licensing Corporation Portable debugging services utilizing a client debugger object and a server debugger object with flexible addressing support
US6185729B1 (en) * 1996-03-04 2001-02-06 Sun Microsystems, Inc. Multibyte locale for single byte languages
US6813747B1 (en) * 1998-12-31 2004-11-02 International Business Machines Corporation System and method for output of multipart documents
US6507812B1 (en) * 1999-06-29 2003-01-14 International Business Machines Corporation Mock translation method, system, and program to test software translatability
US6453462B1 (en) * 1999-06-29 2002-09-17 International Business Machines Corporation Mock translation system, method, and program using multi-byte placeholder characters to test translatability of software that will display multi-byte languages
US6425123B1 (en) * 1999-06-29 2002-07-23 International Business Machines Corporation System, method, and program for testing translatability of software by using english multi-byte transliteration creating double-wide characters
US6735759B1 (en) * 1999-07-28 2004-05-11 International Business Machines Corporation Editing system for translating displayed user language using a wrapper class
US6275790B1 (en) * 1999-07-28 2001-08-14 International Business Machines Corporation Introspective editor system, program, and method for software translation
US20050091576A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Programming interface for a computer platform
US6745348B2 (en) * 2001-06-14 2004-06-01 International Business Machines Corporation Method for estimating number of internationalization faults in software code
US6931628B2 (en) * 2001-10-01 2005-08-16 Hewlett-Packard Development Company, L.P. Mangled strings for testing of internationalization
CN1452058A (zh) * 2002-04-20 2003-10-29 鸿富锦精密工业(深圳)有限公司 专利资料多语言文字显示方法及系统
US20030212982A1 (en) * 2002-05-09 2003-11-13 International Business Machines Corporation Message compiler for internationalization of application programs
US20030236658A1 (en) * 2002-06-24 2003-12-25 Lloyd Yam System, method and computer program product for translating information
US7509251B2 (en) * 2002-12-23 2009-03-24 International Business Machines Corporation Mock translating software applications at runtime
CN1474312A (zh) * 2003-06-04 2004-02-11 无敌科技(西安)有限公司 可支持多国语言的装置及其显示方法
US20050010392A1 (en) * 2003-07-10 2005-01-13 International Business Machines Corporation Traditional Chinese / simplified Chinese character translator
US7389223B2 (en) * 2003-09-18 2008-06-17 International Business Machines Corporation Method and apparatus for testing a software program using mock translation input method editor
US7503036B2 (en) * 2004-02-23 2009-03-10 International Business Machines Corporation Testing multi-byte data handling using multi-byte equivalents to single-byte characters in a test string
US20060136907A1 (en) * 2004-12-20 2006-06-22 Microsoft Corporation Language-neutral and language-specific installation packages for software setup
US7865353B2 (en) * 2005-03-22 2011-01-04 Fuji Xerox Co., Ltd. Translation device, image processing device, translation method, and recording medium
US7752501B2 (en) * 2006-07-27 2010-07-06 International Business Machines Corporation Dynamic generation and implementation of globalization verification testing for user interface controls
JP4143661B2 (ja) 2006-09-11 2008-09-03 インターナショナル・ビジネス・マシーンズ・コーポレーション テスト用リソース・ファイル及びテスト用フォントを用いた国際化ソフトウェアのテスト方法、装置及びプログラム
US7895576B2 (en) * 2006-11-10 2011-02-22 International Business Machines Corporation Method for automating internationalization software testing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11809847B2 (en) 2022-03-16 2023-11-07 International Business Machines Corporation Hardcoded string detection

Also Published As

Publication number Publication date
US7581208B2 (en) 2009-08-25
US20090276759A1 (en) 2009-11-05
US20080066057A1 (en) 2008-03-13
JP2008065794A (ja) 2008-03-21
US8286136B2 (en) 2012-10-09
US9015678B2 (en) 2015-04-21
CN101145102A (zh) 2008-03-19
US20080066058A1 (en) 2008-03-13
US8656357B2 (en) 2014-02-18
CN100570556C (zh) 2009-12-16
US20140201715A1 (en) 2014-07-17

Similar Documents

Publication Publication Date Title
JP4143661B2 (ja) テスト用リソース・ファイル及びテスト用フォントを用いた国際化ソフトウェアのテスト方法、装置及びプログラム
RU2316814C2 (ru) Способ выбора шрифта
JP2782478B2 (ja) 自国言語サポートプログラムのテスト方法およびテスト装置
US5243519A (en) Method and system for language translation within an interactive software application
JP4401292B2 (ja) グリフレット
US7046848B1 (en) Method and system for recognizing machine generated character glyphs and icons in graphic images
US6182099B1 (en) Multiple language computer-interface input system
US7509251B2 (en) Mock translating software applications at runtime
US20150269140A1 (en) Dynamic software localization
KR100907671B1 (ko) 기록 매체 및 문자 입력 편집 방법
EP1890235A1 (en) Test case management
JP5229871B2 (ja) 使用者によるデータの入力を支援する技術
CA2559198C (en) Systems and methods for identifying complex text in a presentation data stream
US7941311B2 (en) System and method for linguistic collation
US20080141164A1 (en) Automated control text truncation detection
JP4363533B2 (ja) 文字化けを検出するための装置、方法、及びプログラム
US20050183033A1 (en) Apparatus and methods for displaying dialog box text messages including languages having different reading orders
JP4584359B2 (ja) ユニコード・コンバータ
US20180293213A1 (en) Reduced Memory Footprint Font Sample Strings
Correll Graphite: an extensible rendering engine for complex writing systems
US20220198127A1 (en) Enhancement aware text transition
JP2009146357A (ja) プルーフリーディング用ドキュメント作成方法、プログラム、メディア及び情報処理装置
Shihab Arabic and multilingual scripts sorting and analysis
Wali ENHANCING CONTEXTUAL SUBSTITUTION SUPPORT IN PANGO USING OPENTYPE
JPH10207879A (ja) 文字処理装置および文字処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080121

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20080123

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20080131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080415

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080616

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120620

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120620

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130620

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees