(57)【要約】【課題】復号装置の動作保証をすることのできるテストを容易に実行することができる検証装置を提供する。【解決手段】符号化規則生成部は、定義文書に基づいて、状態遷移を定義した符号化規則を生成する。テストデータ生成部は、前記符号化規則にしたがって、テスト用データを生成する。エラー規則生成部は、前記状態遷移の遷移数と、前記遷移数を表現するために必要なビット数が表現することのできる最大数との間に差分が生じている場合に、前記差分に相当するエラー規則を前記符号化規則に対して追加する。判定値生成部は、前記符号化規則にしたがって、全ての前記状態遷移の組み合わせに対応付けて正常な遷移であるか、異常な遷移であるかを示す判定値を生成する。検証部は、前記復号装置に対して前記テスト用データを入力した結果である出力判定値と、前記判定値とを比較して、互いに異なる場合に、前記復号装置が正常ではないと判定する。【選択図】図１
2014086048.tif 000002
【特許請求の範囲】
【請求項１】
構造化文書の文法を定義する定義文書の入力を受け付ける受付部と、
受け付けられた前記定義文書に基づいて、前記構造化文書をバイナリデータへと符号化する際に用いられる状態遷移を定義した符号化規則を生成する符号化規則生成部と、
符号化された前記構造化文書を復号化する復号装置へと入力され、前記符号化規則にしたがって、全ての前記状態遷移の組み合わせをビットで示したテスト用データを生成するテストデータ生成部と、
前記状態遷移の遷移数と、前記遷移数を表現するために必要なビット数が表現することのできる最大数との間に差分が生じている場合に、前記差分に相当するエラー規則を前記符号化規則に対して追加するエラー規則生成部と、
前記符号化規則にしたがって、全ての前記状態遷移の組み合わせに対応付けて正常な遷移であるか、異常な遷移であるかを示す判定値を生成する判定値生成部と、
前記復号装置に対して前記テスト用データを入力した結果である、前記状態遷移の組み合わせに対応付けられた正常な遷移であるか、異常な遷移であるかを示す出力判定値と、前記判定値とを比較して、互いに異なる場合に、前記復号装置が正常ではないと判定する検証部と、
を備えることを特徴とする検証装置。
【請求項２】
構造化文書の文法を定義する定義文書の入力を受け付ける受付部と、
受け付けられた前記定義文書に基づいて、前記構造化文書をバイナリデータへと符号化する際に用いられる状態遷移を定義した符号化規則を生成する符号化規則生成部と、
符号化された前記定義文書を復号化する復号装置へと入力され、前記符号化規則にしたがって、全ての前記状態遷移の組み合わせをビットで示したテスト用データを生成するテストデータ生成部と、
前記テスト用データに前記状態遷移に対応するビットが付加されるごとに、前記テスト用データのある状態遷移から遷移可能な遷移数を含む生成情報と、生成途中の前記ビットが付加された生成中テスト用データと、を出力する生成情報出力部と、
出力された前記遷移数と、前記遷移数を表現するために必要なビット数が表現することのできる最大数との間に差分が生じている場合に、前記生成中テスト用データに異常なデータであることを示すエラービットを付加して、異常テスト用データを生成する異常テストデータ生成部と、
前記符号化規則にしたがって、全ての前記状態遷移の組み合わせに対応付けて正常な遷移であるか、異常な遷移であるかを示す判定値を生成する判定値生成部と、
前記復号装置に対して前記テスト用データ、及び前記異常テスト用データを入力した結果である、前記状態遷移の組み合わせに対応付けられた正常な遷移であるか、異常な遷移であるかを示す出力判定値と、前記判定値とを比較して、互いに異なる場合に、前記復号装置が正常ではないと判定する検証部と、
を備えることを特徴とする検証装置。
【請求項３】
前記テストデータ生成部は、前記テスト用データのデータ長を調整するパディングを付加するとともに、前記パディングを付加する前のデータ長を前記検証部に対して出力し、
前記検証部は、前記復号装置から、前記テスト用データを復号化した際の既読ビット位置を入力として受け取り、
前記判定値と前記出力判定値とを比較して、互いに異なる場合、又は前記データ長と、前記既読ビット位置とが異なる場合に、前記復号装置が正常ではないと判定する
ことを特徴とする請求項１又は２に記載の検証装置。
【請求項４】
前記テストデータ生成部は、前記テスト用データのデータ長を調整するパディングを付加するとともに、前記パディングのデータサイズを前記検証部に対して出力し、
前記検証部は、前記復号装置から、前記テスト用データを復号化した際の未読ビット位置を入力として受け取り、
前記判定値と前記出力判定値とを比較して、互いに異なる場合、又は前記データサイズと、前記未読ビット位置とが異なる場合に、前記復号装置が正常ではないと判定する
ことを特徴とする請求項１又は２に記載の検証装置。
【請求項５】
構造化文書の文法を定義する定義文書の入力を受け付ける受付ステップと、
受け付けられた前記定義文書に基づいて、前記構造化文書をバイナリデータへと符号化する際に用いられる状態遷移を定義した符号化規則を生成する符号化規則生成ステップと、
前記状態遷移の遷移数と、前記遷移数を表現するために必要なビット数が表現することのできる最大数との間に差分が生じている場合に、前記差分に相当するエラー規則を前記符号化規則に対して追加するエラー規則生成ステップと、
符号化された前記定義文書を復号化する復号装置へと入力され、前記符号化規則にしたがって、全ての前記状態遷移の組み合わせをビットで示したテスト用データを生成するテストデータ生成ステップと、
前記符号化規則にしたがって、全ての前記状態遷移の組み合わせに対応付けて正常な遷移であるか、異常な遷移であるかを示す判定値を生成する判定値生成ステップと、
前記復号装置に対して前記テスト用データを入力した結果である、前記状態遷移の組み合わせに対応付けられた正常な遷移であるか、異常な遷移であるかを示す出力判定値と、前記判定値とを比較して、互いに異なる場合に、前記復号装置が正常ではないと判定する検証ステップと、
を含むことを特徴とする検証方法。
【請求項６】
コンピュータに、
構造化文書の文法を定義する定義文書の入力を受け付ける受付ステップと、
受け付けられた前記定義文書に基づいて、前記構造化文書をバイナリデータへと符号化する際に用いられる状態遷移を定義した符号化規則を生成する符号化規則生成ステップと、
前記状態遷移の遷移数と、前記遷移数を表現するために必要なビット数が表現することのできる最大数との間に差分が生じている場合に、前記差分に相当するエラー規則を前記符号化規則に対して追加するエラー規則生成ステップと、
符号化された前記定義文書を復号化する復号装置へと入力され、前記符号化規則にしたがって、全ての前記状態遷移の組み合わせをビットで示したテスト用データを生成するテストデータ生成ステップと、
前記符号化規則にしたがって、全ての前記状態遷移の組み合わせに対応付けて正常な遷移であるか、異常な遷移であるかを示す判定値を生成する判定値生成ステップと、
前記復号装置に対して前記テスト用データを入力した結果である、前記状態遷移の組み合わせに対応付けられた正常な遷移であるか、異常な遷移であるかを示す出力判定値と、前記判定値とを比較して、互いに異なる場合に、前記復号装置が正常ではないと判定する検証ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、検証装置、検査方法およびプログラムに関する。
【背景技術】
【０００２】
従来、ＸＭＬなどの構造化文書においては、文書のデータ量が大きくなる傾向にあるため、高速なデータ処理や大量のＸＭＬ文書のデータを扱う処理には向いていなかった。そこで、効率的、かつ高速なデータ処理のための規格としてＥＸＩ（Ｅｆｆｉｃｉｅｎｔ  ＸＭＬ  Ｉｎｔａｒｃｈａｎｇｅ）が提訴されている。ＥＸＩは、ＸＭＬ文書をＸＭＬスキーマにしたがってバイナリー化したＥＸＩストリームへと変換する。バイナリー化されたデータは、データ容量が劇的に低減されることから、効率的なデータの通信や処理に寄与することができる。
【０００３】
また、上記のようにバイナリー化されたデータをユーザが実際に確認する場合には、ＸＭＬ文書をバイナリー化する際に用いた状態機械と同様のロジックを有する復号装置にＥＸＩストリームを入力し、元のＸＭＬ文書が出力される。出力されたＸＭＬ文書は自然言語によって記述されているため、ユーザはその内容を確認することができるようになる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２２６８１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述のようにＥＸＩストリーム化された構造化文書を適切に扱うためには復号装置が正常に稼動している必要がある。そのために、復号装置は実際の運用に先立って、ＸＭＬ文書から生成したＥＸＩストリームを入力値としてテストを行い、正常に復号化できたか否かを確認することが望ましい。しかしながら、ＸＭＬ文書は、無限の組み合わせが存在するため、単にＸＭＬ文書を入力値として生成したＥＸＩストリームをテスト用データとして使用するだけでは復号装置の動作を保証する事ができない。
【０００６】
実施形態は、上記課題を鑑みてなされたものであり、復号装置の動作保証をすることのできるテストを容易に実行することができる検証装置を提供することにある。
【課題を解決するための手段】
【０００７】
実施形態の検証装置は、受付部と、符号化規則生成部と、テストデータ生成部と、エラー規則生成部と、判定値生成部と、検証部とを備える。符号化規則生成部は、定義文書に基づいて、状態遷移を定義した符号化規則を生成する。
【０００８】
テストデータ生成部は、前記符号化規則にしたがって、テスト用データを生成する。エラー規則生成部は、前記状態遷移の遷移数と、前記遷移数を表現するために必要なビット数が表現することのできる最大数との間に差分が生じている場合に、前記差分に相当するエラー規則を前記符号化規則に対して追加する。判定値生成部は、前記符号化規則にしたがって、全ての前記状態遷移の組み合わせに対応付けて正常な遷移であるか、異常な遷移であるかを示す判定値を生成する。
【０００９】
検証部は、前記復号装置に対して前記テスト用データを入力した結果である出力判定値と、前記判定値とを比較して、互いに異なる場合に、前記復号装置が正常ではないと判定する。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態の検証装置の機能構成を示すブロック図である。
【図２】第１の実施形態の検証装置の機能構成の詳細を示すブロック図である。
【図３】第１の実施形態の検証装置において用いられるＸＭＬスキーマの例である。
【図４】第１の実施形態の検証装置における状態遷移の例である。
【図５】第１の実施形態の検証装置における状態遷移図である。
【図６】第１の実施形態の検証装置における状態遷移にエラー遷移を追加した例である。
【図７】第１の実施形態の検証装置における状態遷移にエラー遷移を追加した状態遷移図である。
【図８】第１の実施形態のテストストリームの例である。
【図９】第１の実施形態のテストパターンの例である。
【図１０】第１の実施形態のテストストリームが復号化されたデータである。
【図１１】第１の実施形態の検証装置における状態遷移にエラー遷移を追加する処理の流れを示すフロー図である。
【図１２】第１の実施形態の検証装置におけるテストストリームを生成する処理の流れを示すフロー図である。
【図１３】第２の実施形態の検証装置の機能構成の詳細を示すブロック図である。
【図１４】第２の実施形態の生成途中のテストストリームの生成情報の例である。
【図１５】第２の実施形態の検証装置における状態遷移にエラー遷移を追加する処理の流れを示すフロー図である。
【発明を実施するための形態】
【００１１】
（第１の実施形態）
以下、検証装置１００を実施形態として具体化した例について図面を参照して説明する。図１に示されるように、検証装置１００は、テストパターン生成部１１０、及び検証部１２０を備えている。テストパターン生成部１１０は、入力されたＸＭＬスキーマに基づいて、テスト用データであるテストストリームと、テストパターンを生成する。テストストリームは復号装置であるデコーダ２００に入力され、テストパターンは、検証部１２０へと入力される。検証部１２０には、デコーダ２００にテストストリームを入力して復号化し、復号化したデータが正常であるか否かの結果が入力され、デコーダ２００からの結果と、テストパターンとに含まれる判定値とが一致するか否かによって、デコーダ２００の動作が正常であるか否かを判定し、検証結果を出力する。
【００１２】
図３は、本実施形態のＸＭＬスキーマの例である。ＸＭＬスキーマはＸＭＬ文書の構文ルールを記載したものであり、図３に示されるＸＭＬスキーマにおいては、「ｓａｍｐｌｅ」という名前の「ｅｌｅｍｅｎｔ」を定義しており、ｓａｍｐｌｅには、登場回数が１以上の整数型の要素「ＩＤ」と、登場回数が０以上１以下の文字型の要素「ｄｅｓｃｒｉｐｔｉｏｎ」とが順に含まれることが定義されている。
【００１３】
図２は、上述したテストパターン生成部１１０の詳細な機能構成を示した図である。図２に示されるように、テストパターン生成部１１０は、符号化規則生成部１１１、エラー規則生成部１１２、及びテストデータ生成部１１３を備えている。符号化規則生成部１１１は、ＸＭＬスキーマの入力を受け付けるとともに、ＸＭＬスキーマに基づいて、ＸＭＬ文書をバイナリデータへと符号化する際に用いられる状態遷移を定義した符号化規則を生成する。したがって、符号化規則生成部１１１は、受付部を兼ねている。
【００１４】
図４は、生成された符号化規則の一例を示す図であり、図５は、符号化規則を状態遷移表の形式で示したものである。ＸＭＬスキーマから、符号化規則を生成する方法については、既存のＥＸＩ規格で定義されている方法によって行うことができる。図４で示される符号化規則においては、丸で囲まれたＥｌｅｍｅｎｔ１やＥｌｅｍｅｎｔ２は、それぞれイベントが発生した後の状態を示し、矢印が遷移を示している。例えば、ＳｔａｒｔＥｌｅｍｅｎｔ（ｉｄ）とは、「ｉｄ」という要素が割り当てられているタグがあった場合にＳｔａｒｔＥｌｅｍｅｎｔ（ｉｄ）という遷移のイベントが発生するということを示している。また、各遷移に割り当てられている「００」等の数字はコンパクトＩＤである。コンパクトＩＤにおける大文字の数字は、ある状態から遷移できるイベントに対して、それぞれ０から始まる互いに異なる整数を割り当てたものである。すなわち、Ｓｔａｒｔからは「０」の１つの遷移が、Ｅｌｅｍｅｎｔ１からは「０」「１」「２」の３つの遷移が、Ｅｌｅｍｅｎｔ２からは「０」の１つの遷移がとりうることを示したものである。また、下付文字で示された数字は、ある状態から移りうる遷移をそれぞれ互いに識別可能に表現することのできる最小のビット幅である。例えば、Ｅｌｅｍｅｎｔ２から派生するイベントに付与されている「２」とは、４通りの遷移を識別可能であることを示している。そして、この状態遷移を定義した符号化規則に対して、構造化文書が付与されると、構造化文書中のタグによって、遷移が行われ、遷移が行われるごとにコンパクトＩＤが、符号化される値として付与される。したがって、デコーダ２００においては、逆にコンパクトＩＤを入力として、イベント（遷移）を出力する。例えば、Ｅｌｅｍｅｎｔ１の状態で、１２という入力があると、ＳｔａｒｔＥｌｅｍｅｎｔ（ｄｅｓｃｒｉｐｔｉｏｎ）というイベントを出力する。
【００１５】
次いで、図２に戻り、エラー規則生成部１１２は、生成された符号化規則を入力とし、エラー規則を付与してエラー規則付き符号化規則を出力する。エラー規則の詳細について図６、及び図７を用いて説明する。図６、７に示されるように、状態遷移には、Ｅｌｅｍｅｎｔ１から遷移するＥｒｒｏｒという状態が付加されており、遷移には３２というコンパクトＩＤが付与されている。Ｅｌｅｍｅｎｔ１の状態から可能な遷移数は３通りあり、すなわちＸＭＬスキーマによって正しい遷移は３通りとなっている。一方で、Ｅｌｅｍｅｎｔ１からの遷移に割り当てられたビット幅は２であるため、００、０１、１０、１１の４通りの数値を取りうることができる。デコーダ２００における復号では、予め定められたビット幅分のストリームを読み込み、その値から対応するイベントを判別する。したがって、デコーダ２００には、Ｅｌｅｍｅｎｔ１の状態において３２という入力がされる可能性があるが、このコンパクトＩＤに対応する遷移は定義されていない。したがって、デコーダ２００において、本来ＸＭＬスキーマ上エラーである入力３２がエラーであると正しく判定できるかを検証ためには、３２のコンパクトＩＤに対応するテスト用のデータを生成できるようにする必要がある。そこで、本実施形態においては、符号化規則においてエラー規則としてＥｒｒｏｒへの遷移を追加している。
【００１６】
以下、エラー規則の追加に係る処理の流れを図１１のフロー図を用いて説明する。まず、エラー規則生成部１１２は、符号化規則を取得する（ステップＳ１０１）。取得した際には、符号化規則のうち「Ｓｔａｒｔ」が選択されている状態である。次いで、エラー規則生成部１１２は、現在の状態から遷移可能な遷移数が２のべき乗であるか否かを判定する（ステップＳ１０２）。遷移数が２のべき乗でないと判定された場合（ステップＳ１０２：Ｎｏ）、すなわち１、２、４、８・・・でない場合は、エラー規則を追加し、コンパクトＩＤとして値に現在の遷移のうち最も大きい値に１加算したものを設定するとともに、ビット幅に同じ遷移に割り当てられている値を設定する（ステップＳ１０３）。エラー規則が追加されることで、遷移数は１加算されており、ステップＳ１０３に戻って遷移数が２のべき乗になるまで処理を繰り返す。一方、遷移数が２のべき乗であると判定された場合（ステップＳ１０２：Ｙｅｓ）、エラー規則生成部１１２は、全ての状態に対して遷移数のチェックが完了したか否かを判定する（ステップＳ１０４）。全てチェック完了している場合（ステップＳ１０４：Ｙｅｓ）、処理を終了する。チェックが完了していない場合（ステップＳ１０４：Ｎｏ）、次の、まだ遷移数を確認していない状態へと遷移し、ステップＳ１０２からの処理を繰り返す（ステップＳ１０５）。したがって、図６、７に示される状態遷移では、Ｅｌｅｍｅｎｔ１からの遷移数のみが２のべき乗にならないため、エラー規則としてＥｒｒｏｒの遷移が生成されて追加される。
【００１７】
次いで、図２に戻り、テストデータ生成部１１３は、エラー規則付き符号化規則を入力として、デコーダ２００に入力されるテスト用データと、検証部１２０入力されるテストパターンとを出力する。図８はテスト用データの例を示しており、図９はテストパターンの例を示している。テスト用データは、ＳｔａｒからＥｎｄ、またはＳｔａｒからＥｒｒｏｒにいたるまでの遷移の組み合わせに対して１つのビットストリームとして生成される。以下、図１２のフローチャーを用いて、テスト用データ、及びテストパターンの生成の処理の流れを説明する。図１２に示されるように、まずテストデータ生成部１１３は、入力されたエラー規則付き符号化規則に使用していない遷移があるか否かを判定する（ステップＳ２０１）。使用していない遷移がないと判定された場合（ステップＳ２０１：Ｎｏ）、処理を終了する。一方、使用していない遷移の組み合わせがあると判定された場合（ステップＳ２０１：Ｙｅｓ）、テストデータ生成部１１３は、使用していない遷移のうちから１つを選択してＳｔａｒｔから遷移を実行し、遷移に相当するビットをテスト用データに追加する（ステップＳ２０２）。このとき追加されるビットは、遷移に付加されているコンパクトＩＤを符号化したものである。このとき、テストデータ生成部１１３は、遷移先の状態がＥＲＲＯＲであるか否かを判定する（ステップＳ２０３）。
【００１８】
ＥＲＲＯＲであると判定された場合（ステップＳ２０３：Ｙｅｓ）、テストデータ生成部１１３は、それまでに付加されたビットをテスト用データとして出力する（ステップＳ２０７）。一方、ＥＲＲＯＲでないと判定された場合（ステップＳ２０３：Ｎｏ）、テストデータ生成部１１３は、選択した組み合わせにおける次の遷移を実行し、遷移に相当するビットをテスト用データに追加する（ステップＳ２０４）。
【００１９】
そして、テストデータ生成部１１３は、遷移先の状態がＥＲＲＯＲであるか否かを判定する（ステップＳ２０５）。ＥＲＲＯＲであると判定された場合（ステップＳ２０５：Ｙｅｓ）、テストデータ生成部１１３は、それまでに付加されたビットをテスト用データとして出力する（ステップＳ２０７）。一方、ＥＲＲＯＲでないと判定された場合（ステップＳ２０５：Ｎｏ）、テストデータ生成部１１３は、遷移先の状態がＥＮＤであるか否かを判定する（ステップＳ２０６）。ＥＮＤであると判定された場合（ステップＳ２０６：Ｙｅｓ）、テストデータ生成部１１３は、それまでに付加されたビットをテスト用データとして出力する（ステップＳ２０７）。一方、ＥＮＤでないと判定された場合（ステップＳ２０６：Ｎｏ）、ステップＳ２０４からの処理を繰り返す。
【００２０】
以上の処理を得て出力されたテスト用データには、図８で示されるように、それぞれのビットストリームごとにテストストリームＩＤが割り当てられる。なお、テストストリームＩＤは、出力されたビットストリームの順番に従って付与してもよいし、全てのビットストリームを出力した後に、ランダムに付与してもよい。また、生成したテストストリームには、ビットがバイト単位になるように、不足しているビット分だけビット０をデータ長を調整するパディングとして追加する。なお、このパディングの追加は、テストデータ生成部１１３において各ストリームが出力される際に付与してもよいし、テスト用データを別の部位で加工して付与するようにしてもよい。
【００２１】
また、図９に示されるように、テストパターンは、生成されたテスト用データに対して、ビットストリームがＥＲＲＯＲの状態に移行することで出力されたものであるか否かを示す判定値である、正常ストリーム／異常ストリームの値や、符号化前のＸＭＬ形式の情報、パディングを付与する前のビット数の情報などが加えられたものである。この際、必須となるのは正常ストリーム／異常ストリームの値である。したがって、本実施形態においては、テストデータ生成部１１３が、符号化規則にしたがって、全ての状態遷移の組み合わせに対応付けて正常な遷移であるか、ＸＭＬスキーマで定義されていない遷移であるかを示す判定値を生成する判定値生成部として機能する。
【００２２】
そして、生成されたテスト用データは、デコーダ２００に入力され、デコーダ２００は復号化の結果として、図１０に示す復号結果を出力する。復号化結果としては、入力値と同様のテストストリームＩＤとビットストリームに加え、復号した結果が、正しいビットストリームであったか否かを判定する出力判定値である復号可否の値を出力する。すなわち、ＥＲＲＯＲへの状態遷移によって生成されたビットストリームに対しては、「不可」の値が出力されると想定される。
【００２３】
検証部１２０は、デコーダ２００から入力された出力判定値と、テストパターンに含まれる判定値とで、同じテストストリームＩＤが付与されている値を比較して、一致するか否かを判定する。すなわち、両方の入力値から、ＥＲＲＯＲへの状態遷移によって生成されたビットストリームはエラーとしてデコーダ２００が認識し、正常なビットストリームは正常であるとデコーダ２００が認識してそれぞれ処理しているか否かを検証することで、デコーダ２００の検証が行われる。そして、検証部１２０は、検証結果として、互いの入力値が一致している場合はデコーダ２００の動作が正常である旨を示す検証結果を出力し、一致していない場合は、デコーダ２００の動作に異常がある旨を検証結果として出力する。
【００２４】
また、他のデコーダ２００の検証方法としては、上記検証の方法に加え、デコーダ２００が、入力されたビットストリームのうち、パディング部分は読み出しを行わないように設定し、パディングを付加する前のビットストリームの長さと、ビットストリームのうちデコーダ２００によって解析されたデータサイズとが一致するか、又はパディングのデータサイズと、ビットストリームのうちデコーダ２００によって解析されなかった部分のデータサイズとが一致するかを検証し、一致する場合にデコーダ２００の動作が正しいと判定するような検証を行うこともできる。また、パディングとして解析のされなかった部分のデータサイズが８ｂｉｔ以下であるかを確認したり、復号前のＸＭＬ文書と復号後のＸＭＬ文書とを比較したりすることによって、デコーダ２００を検証することもできる。
【００２５】
このように、エラー規則を追加することで、デコーダ２００に追加される可能性のあるビットの組み合わせのテスト用データを生成することができるようになり、正しい入力に対して正しい出力を行えるだけではなく、異常な入力を正常であると誤認せず、異常なものとして処理することができることを検証することができるようになり、デコーダ２００の動作保証をすることのできるテストを容易に実行することができるようになる。
【００２６】
（第２の実施形態）
次に、検証装置１００の第２の実施形態について説明する。図１３は、第２の実施形態のテストパターン生成部２１０の詳細な構成を示す図である。テストパターン生成部２１０は、符号化規則生成部１１１、テストデータ生成部２１２、異常テストデータ生成部２１３を備えている。符号化規則生成部１１１は、第１の実施形態と同様である。
【００２７】
テストデータ生成部２１２は、符号化規則を入力として、符号化規則の遷移をたどっていくことで生成される正常テストストリームと、テストパターン、及び生成途中のテストストリームを出力する。正常テストストリームは、第１の実施形態の実施形態のうち、エラー規則が付与される前の状態で生成可能なテスト用データと同様のものであり、テストパターンは第１の実施形態と同様のものである。また生成途中のテストストリームとは、ある遷移の組み合わせの中で、状態が１つ遷移される毎に生成されて、異常テストデータ生成部２１３へと入力される。図１４は、生成途中のテストストリームの一例である。
【００２８】
図１４に示されるように、生成途中のテストストリームには、ビットストリームのほかに、現在のビット数や、現在の状態から分岐可能な遷移数、現在の状態から分岐可能な遷移数を識別可能な態様で示すことができるビット幅などの生成情報が含まれている。なお、テストパターンにおいてビット数を出力しない場合には、現在のビット数は含まれていなくてもよい。こうした、生成途中のビットストリームは、異常テストデータ生成部２１３に入力され、異常テストデータ生成部２１３は、エラーとなりうるテストパターンを生成する必要があると判定した場合には、異常テストストリームを生成する処理を行う。また、テストデータ生成部２１２により生成されたテストパターンに、エラーとなる場合のテストストリームに対応したテストパターンを追加する。なお、異常テストデータ生成部２１３に対しては全ての生成途中のテストストリームを入力するようにしてもよいし、テストストリームの生成時に選択した遷移の組み合わせの中に、遷移数とビット幅との間に差異が生じる状態を含んでいるストリームのみを出力するようにしてもよい。したがって、本実施形態においては、テストデータ生成部２１２が生成情報出力部を兼ねているが、別に、生成途中のテストストリームと符号化規則とから、生成情報のみを出力する構成を設けてもよい。
【００２９】
以下、図１５のフローチャートを用いて異常テストストリームを生成する処理の流れについて説明する。図１５に示されるように、異常テストデータ生成部２１３は、まず入力された生成途中のテストストリームを取得する（ステップＳ３０１）。次いで、異常テストデータ生成部２１３は、生成途中のテストストリームに含まれる生成情報の遷移数が２のべき乗であるか否かを判定する（ステップＳ３０２）。遷移数が２のべき乗である場合（ステップＳ３０２：Ｙｅｓ）、処理を終了する。一方、遷移数が２のべき乗でない場合（ステップＳ３０２：Ｎｏ）、現在の遷移数に１加算した数に対応するビットを生成して、生成途中のビットストリームに追加して、異常テストストリームを生成する（ステップＳ３０３）。この時点で、遷移数は１追加されているため、ステップＳ３０２に戻り以降の処理を繰り返し行う。例えば、図１４で示した生成途中のテストストリームの場合、遷移数が５であるため、１０１を生成途中のテストストリームに追加した異常テストストリームと、１１０を生成途中のテストストリームに追加した異常テストストリームと、１１１を生成途中のテストストリームに追加した異常テストストリームと、が生成される。異常テストストリームはデコーダ２００に入力されるとともに、テストパターンにも追加される。
【００３０】
そして、異常テストストリームと、正常なテストストリームとが、ともにデコーダ２００に入力され、以降、第１の実施形態と同じように検証部１２０において、デコーダ２００からの出力判定値と、テストパターンの判定値とから、デコーダ２００の動作の検証を実施することができる。
【００３１】
本実施形態の検証装置１００にあっては、エラー規則を予め生成することなく、生成途中のテストストリームの遷移数から、エラーとなる異常テストストリームを生成するか否かを判定し、第１の実施形態と同様のデコーダ２００の動作検証を行うことができるようになる。
【００３２】
以上の各実施形態の検証装置は、例えばＣＰＵなどの制御装置と、ＲＯＭ（Read  Only  Memory）やＲＡＭなどの記憶装置と、ＨＤＤ、ＣＤドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【００３３】
以上の各実施形態の検証装置はで実行される検証プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【００３４】
また、以上の各実施形態の検証プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、以上の各実施形態の検証装置で実行される検証プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【００３５】
また、以上の各実施形態の検証プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【００３６】
以上の各実施形態の検証装置はで実行される検証プログラムは、上述した各部（テストパターン生成部、検証部）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記記憶媒体から検証プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、テストパターン生成部、検証部が主記憶装置上に生成されるようになっている。
【００３７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００３８】
１００  検証部
１１０  テストパターン生成部
１１１  符号化規則生成部
１１２  エラー規則生成部
１１３  テストデータ生成部
１２０  検証部
２００  デコーダ
２１０  テストパターン生成部
２１２  テストデータ生成部
２１３  異常テストデータ生成部
【図１】
2014086048.tif 000003
【図２】
2014086048.tif 000004
【図３】
2014086048.tif 000005
【図４】
2014086048.tif 000006
【図５】
2014086048.tif 000007
【図６】
2014086048.tif 000008
【図７】
2014086048.tif 000009
【図８】
2014086048.tif 000010
【図９】
2014086048.tif 000011
【図１０】
2014086048.tif 000012
【図１１】
2014086048.tif 000013
【図１２】
2014086048.tif 000014
【図１３】
2014086048.tif 000015
【図１４】
2014086048.tif 000016
【図１５】
2014086048.tif 000017