(57)【要約】【課題】アプリケーションの種々の要求に対して正規のデバイスから返される種々の応答を模擬して試験を行うこと。【解決手段】試験装置１は、アプリケーション層２およびドライバ層３を備えている。アプリケーション層２は、試験対象アプリケーション４および疑似データ作成部５を備えている。ドライバ層３は、疑似データ応答部６を備えている。試験装置１は、試験対象アプリケーション４とハードウェア層７との間でドライバ層３を介して授受されるデータの入出力処理を評価する装置である。疑似データ作成部５は、ハードウェア層７からドライバ層３に渡されるデータの疑似データを作成してドライバ層３へ出力する。ドライバ層３において、疑似データ応答部６は、アプリケーション層２から渡された疑似データを、ハードウェア層７から渡されたデータとして試験対象アプリケーション４へ返す。【選択図】図１
2010224795.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション層の試験対象アプリケーションとハードウェア層との間でドライバ層を介して授受されるデータの入出力処理を評価する試験装置であって、
前記アプリケーション層にあって、前記ハードウェア層から前記ドライバ層に渡されるデータの疑似データを作成して前記ドライバ層へ出力する疑似データ作成部と、
前記ドライバ層にあって、前記ハードウェア層から渡されたデータとして前記試験対象アプリケーションへ前記疑似データを返す疑似データ応答部と、
を備えることを特徴とする試験装置。
【請求項２】
前記疑似データ応答部は、前記試験対象アプリケーションから前記ハードウェア層宛に出力されたデータを前記ハードウェア層へ出力することを特徴とする請求項１に記載の試験装置。
【請求項３】
前記疑似データ作成部は、前記疑似データとして、前記試験対象アプリケーションから前記ハードウェア層宛に出力されるデータに対して前記ハードウェア層から前記試験対象アプリケーションへ返される応答値のデータを作成することを特徴とする請求項１または２に記載の試験装置。
【請求項４】
前記ドライバ層に、前記ハードウェア層のデバイスを判定し、前記試験対象アプリケーションに対して実際のデバイスを、前記試験対象アプリケーションに対応するデバイスに見せる判定部を備えることを特徴とする請求項１〜３のいずれか一つに記載の試験装置。
【請求項５】
前記ドライバ層に、前記ハードウェア層のデバイスを判定し、前記試験対象アプリケーションに対して仮想デバイスを、前記試験対象アプリケーションに対応するデバイスに見せる判定部を備えることを特徴とする請求項１〜３のいずれか一つに記載の試験装置。
【請求項６】
アプリケーション層の試験対象アプリケーションとハードウェア層との間でドライバ層を介して授受されるデータの入出力処理を評価する試験方法であって、
前記ハードウェア層から前記ドライバ層に渡されるデータの疑似データを作成して前記ドライバ層へ出力する疑似データ作成工程と、
前記ドライバ層から前記試験対象アプリケーションへ前記疑似データを前記ハードウェア層から渡されたデータとして返す疑似データ応答工程と、
を含むことを特徴とする試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、試験装置および試験方法に関する。
【背景技術】
【０００２】
従来、アプリケーション（応用ソフト）の入出力処理の評価テストを行う技術が知られている。例えば、応用ソフトからの入出力要求は、システムコール層により入出力のパラメータがチェックされ、異常がなければデバイスドライバ層に送られる。デバイスドライバ層では、送られてきたデータに基づいて先ず模擬入出力を行うか否かを判断する。模擬の入出力をしないのであれば、実デバイスにデータを送って処理する。一方、模擬入出力処理を行う場合は、模擬入出力を行って、デバイス入出力にかえることができる（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１３３９１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、応用ソフトの要求に対して、予めデバイスドライバ層に記憶されている情報を返すことによって、模擬入出力処理が行われる。そのため、応用ソフトの種々の要求に対して正規のデバイスから返される種々の応答を模擬して試験を行うことができないという問題点がある。
【課題を解決するための手段】
【０００５】
この試験装置および試験方法は、アプリケーション層の試験対象アプリケーションとハードウェア層との間でドライバ層を介して授受されるデータの入出力処理を評価する装置および方法である。アプリケーション層は、疑似データ作成部を備える。疑似データ作成部は、ハードウェア層からドライバ層に渡されるデータの疑似データを作成してドライバ層へ出力する。ドライバ層は、疑似データ応答部を備える。疑似データ応答部は、アプリケーション層から渡された疑似データを、ハードウェア層から渡されたデータとして試験対象アプリケーションへ返す。
【発明の効果】
【０００６】
この試験装置および試験方法によれば、アプリケーションの種々の要求に対して正規のデバイスから返される種々の応答を模擬して試験を行うことができるという効果を奏する。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施の形態１におけるブロック図である。
【図２】本発明の実施の形態１におけるシーケンス図である。
【図３】本発明の実施の形態２におけるハードウェア構成を示す図である。
【図４】本発明の実施の形態２におけるブロック図である。
【図５】本発明の実施の形態２における通常の送信データのフォーマットを示す図である。
【図６】本発明の実施の形態２における通常の受信データのフォーマットを示す図である。
【図７】本発明の実施の形態２における疑似データのフォーマットを示す図である。
【図８】本発明の実施の形態２における疑似データのフォーマットを示す図である。
【図９】本発明の実施の形態２におけるフローチャートである。
【図１０】本発明の実施の形態２におけるシーケンス図である。
【図１１】本発明の実施の形態２におけるシーケンス図である。
【図１２】本発明の実施の形態２におけるシーケンス図である。
【図１３】本発明の実施の形態２におけるシーケンス図である。
【図１４】本発明の実施の形態２におけるシーケンス図である。
【図１５】本発明の実施の形態２におけるシーケンス図である。
【図１６】本発明の実施の形態２におけるシーケンス図である。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、この試験装置および試験方法の好適な実施の形態を詳細に説明する。
【０００９】
（実施の形態１）
・試験装置の構成
図１は、本発明の実施の形態１におけるブロック図である。図１に示すように、試験装置１は、アプリケーション層２およびドライバ層３を備えている。アプリケーション層２は、試験対象アプリケーション４および疑似データ作成部５を備えている。ドライバ層３は、疑似データ応答部６を備えている。試験装置１は、試験対象アプリケーション４とハードウェア層７との間でドライバ層３を介して授受されるデータの入出力処理を評価する装置である。
【００１０】
試験対象アプリケーション４は、試験装置１により、ハードウェア層７との間のデータの入出力処理を評価されるアプリケーションである。疑似データ作成部５は、疑似データを作成してドライバ層３へ出力する。疑似データは、ハードウェア層７からドライバ層３に渡されるデータを模擬したデータである。疑似データは、ハードウェア層７からドライバ層３に渡される本来のデータの代わりとなるデータである。
【００１１】
ドライバ層３は、ハードウェア層７のデバイスを動作させるデバイスドライバである。ドライバ層３において、疑似データ応答部６は、アプリケーション層２から渡された疑似データを、ハードウェア層７から渡されたデータとして試験対象アプリケーション４へ返す。ハードウェア層７は、試験装置１に接続されていてもよいし、接続されていなくてもよい。また、ハードウェア層７として、正規のデバイス以外のデバイスが試験装置１に接続されていてもよい。
【００１２】
・試験装置の動作
図２は、本発明の実施の形態１におけるシーケンス図である。図２に示すように、アプリケーション層２において、疑似データ作成部５は、ハードウェア層７からドライバ層３に渡されるデータの疑似データを作成する（ステップＳ１）。そして、疑似データ作成部５は、疑似データをドライバ層３へ送信する（ステップＳ２）。ドライバ層３では、アプリケーション層２から疑似データを受け取り、その疑似データを、ハードウェア層７から渡されたデータとして試験対象アプリケーション４へ返す（ステップＳ３）。
【００１３】
実施の形態１によれば、試験対象アプリケーション４の要求に対するハードウェア層７からの応答として、疑似データ作成部５で作成された疑似データがドライバ層３から試験対象アプリケーション４に返されるので、正規のデバイスからの応答は不要である。従って、ハードウェア層７が正規のデバイス以外のデバイスであっても、試験対象アプリケーション４の種々の要求に対して正規のデバイスから返される種々の応答を模擬して試験を行うことができる。また、ハードウェア層７にデバイスがない場合、すなわち、ハードウェア層７が仮想デバイスであっても、同様に、正規のデバイスから返される種々の応答を模擬して試験を行うことができる。
【００１４】
また、疑似データ作成部５がドライバ層３へ疑似データを任意のタイミングで送信するようにしてもよいし、疑似データ応答部６が試験対象アプリケーション４へ疑似データを任意のタイミングで返すようにしてもよい。そのようにすることによって、試験対象アプリケーション４からの要求に対する応答だけでなく、ハードウェア層７から自発的にデータが送信されてきた場合などの試験を行うことができる。また、正規のデバイスがなくても試験対象アプリケーション４の試験を行うことができるので、アプリケーションとハードウェア層７のデバイスとを並行して同時に開発することができる。
【００１５】
（実施の形態２）
・試験装置のハードウェア構成
図３は、本発明の実施の形態２におけるハードウェア構成を示す図である。図３に示すように、試験装置は、例えばコンピュータ本体１１、入力装置１２および出力装置１３を備えている。試験装置は、例えば、図示省略したルータやモデムを介してＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ、構内通信網）やＷｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＷＡＮ、広域通信網）やインターネットなどのネットワーク１４に接続可能となっている。
【００１６】
コンピュータ本体１１は、例えばＣｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ、中央処理装置）、メモリおよびインタフェースを備えている。ＣＰＵは、試験装置の全体の制御を司る。メモリには、例えばＲｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）、Ｈａｒｄ  Ｄｉｓｋ（ＨＤ、ハードディスク）および光ディスク１５などが含まれる。メモリは、ＣＰＵのワークエリアとして使用される。また、メモリには各種プログラムが格納されている。各種プログラムは、ＣＰＵからの命令に応じてロードされる。インタフェースは、例えば入力装置１２からの入力、出力装置１３への出力およびネットワーク１４に対する送受信の制御を行う。入力装置１２には、例えばキーボード１６、マウス１７およびスキャナ１８などが含まれる。出力装置１３には、例えばディスプレイ１９、スピーカ２０およびプリンタ２１などが含まれる。
【００１７】
・試験装置の構成
図４は、本発明の実施の形態２におけるブロック図である。図４に示すように、試験装置３１は、アプリケーション層３２およびドライバ層３３を備えている。アプリケーション層３２は、試験対象アプリケーション３４および疑似データ作成アプリケーション３５を備えている。疑似データ作成アプリケーション３５は、疑似データ作成部に相当する。ドライバ層３３は、判定部３６、受付部３７、ユーザデータ処理部３８、制御データ処理部３９、受信バッファ４０および刈り取り処理部４１を備えている。
【００１８】
判定部３６は、ハードウェア層４６のデバイスの種別を判定する。判定部３６は、デバイスの種別を判定した結果、ハードウェア層４６が正規のデバイス以外のデバイスや仮想デバイスである場合でも、試験対象アプリケーション３４に対して正規のデバイスとして通知する。判定部３６は、ドライバ層３３のデバイスドライバを初期化する処理中に動作する。
【００１９】
受付部３７は、試験対象アプリケーション３４からのデータ送信処理および疑似データ作成アプリケーション３５からのデータ送信処理を受け付ける。受付部３７は、データ解釈部４２を備えている。データ解釈部４２は、受付部３７で受け付けたデータの種別を判定する。データ解釈部４２は、データの種別を判定した結果、ハードウェア層４６への通常の送信データである場合には、そのハードウェア層宛の送信データをハードウェア層４６へ送信する。データ解釈部４２は、データの種別が疑似データである場合には、その疑似データを、当該疑似データの種別に応じてユーザデータ処理部３８または制御データ処理部３９へ送信する。
【００２０】
ユーザデータ処理部３８は、ストリーミングなどのユーザデータを受信するインタフェースである。ユーザデータ処理部３８は、データ解釈部４２から送られてきたデータを、ハードウェア層４６から送られてきたユーザデータとして、試験対象アプリケーション３４へ送信する。
【００２１】
制御データ処理部３９は、制御系のデータを受信するインタフェースである。制御データ処理部３９は、データ解釈部４２から送られてきたデータを、ハードウェア層４６から送られてきた制御系のデータとして、受信バッファ４０へ送信する。
【００２２】
受信バッファ４０は、制御データ処理部３９から送られてきた制御系のデータを格納する。刈り取り処理部４１は、アプリケーション層３２と受信バッファ４０との間のインタフェースである。試験対象アプリケーション３４は、刈り取り処理部４１を介して、受信バッファ４０に格納されているデータを読み出す。ユーザデータ処理部３８、制御データ処理部３９、受信バッファ４０、刈り取り処理部４１およびデータ解釈部４２は、疑似データ応答部として動作する。
【００２３】
ハードウェア層４６は、正規のデバイス以外のデバイスであってもよいし、実際には存在しない仮想デバイスであってもよい。ハードウェア層４６として想定されるデバイスは、例えば有線または無線による通信を制御するインタフェース機器などである。そのようなインタフェース機器として、例えば無線ＬＡＮなどの通信カードのように、アプリケーション層３２からの要求に対してネットワーク側から応答が返されるような環境で用いられるデバイスが挙げられる。そのようなデバイスとして、例えばＩｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃ  Ｅｎｇｉｎｅｅｒｓ（ＩＥＥＥ、電気電子学会）の８０２．１１ａや８０２．１１ｂの規格に準拠した無線ＬＡＮカードが挙げられる。
【００２４】
また、試験対象アプリケーションのプログラムは、例えばハードウェア層４６のデバイスとの通信を確立したり制御するプログラムである。試験対象アプリケーションのプログラムおよび疑似データ作成アプリケーションのプログラムは、例えばコンピュータ本体のメモリに格納されている。アプリケーション層３２は、メモリからロードされた試験対象アプリケーションのプログラムおよび疑似データ作成アプリケーションのプログラムがメモリに展開されることにより実現される。ドライバ層３３は、メモリからロードされたデバイスドライバのプログラムがメモリに展開されることにより実現される。
【００２５】
・データフォーマット
図５は、本発明の実施の形態２における通常の送信データのフォーマットを示す図である。図５に示すように、通常の送信データ５１は、例えば送信データ種別の情報（例えば「ＳＥＮＤ＿１・・・」）を格納する送信データ種別フィールド５２、および送信データを格納する送信データフィールド５３を備えている。通常の送信データは、試験対象アプリケーション３４からハードウェア層４６へ送信されるデータである。ドライバ層３３のデータ解釈部４２は、送信データ種別の情報を参照することによって、ハードウェア層宛の送信データであることを認識する。
【００２６】
図６は、本発明の実施の形態２における通常の受信データのフォーマットを示す図である。図６に示すように、通常の受信データ５４は、例えば受信データ種別の情報（例えば「ＲＥＣＶ＿１・・・」）を格納する受信データ種別フィールド５５、および受信データを格納する受信データフィールド５６を備えている。通常の受信データは、フィールドにおけるユーザの使用環境において、正規のデバイスからアプリケーションへ返されるデータである。従って、通常の受信データは、実施の形態２における試験環境では出現しない。
【００２７】
図７は、本発明の実施の形態２における疑似データのフォーマットを示す図である。図７に示すように、疑似データ５７は、例えば疑似データ種別の情報（例えば「ＳＥＮＤ＿ＤＵＭＭＹ」）を格納する疑似データ種別フィールド５８、および疑似受信データを格納する疑似受信データフィールド５９を備えている。疑似受信データは、通常の受信データの代わりとなるデータである。疑似受信データフィールド５９は、通常の受信データと同様に、例えば受信データ種別の情報（例えば「ＲＥＣＶ＿１・・・」）を格納する受信データ種別フィールド６０、および受信データを格納する受信データフィールド６１を備えている。データ解釈部４２は、疑似データ種別の情報を参照することによって、試験対象アプリケーション３４へ返す疑似受信データであることを認識する。
【００２８】
図８は、本発明の実施の形態２における疑似データのフォーマットを示す図である。図８に示すように、疑似データ６２は、図７に示す疑似データ５７のフォーマットに、待機カウンタ値を格納する待機カウンタ値フィールド６３を追加したものである。待機カウンタ値は、疑似受信データを試験対象アプリケーション３４へ返すタイミングを制御するデータである。
【００２９】
・ドライバ層の動作
図９は、本発明の実施の形態２におけるフローチャートである。試験において、ドライバ層３３は、例えば次の手順で処理を行う。図９に示すように、受付部３７は、アプリケーション層３２からデータを受信する（ステップＳ１１）。そして、データ解釈部４２は、受信したデータのデータ種別フィールド（送信データ種別フィールド５２または疑似データ種別フィールド５８）を参照し、受信したデータがハードウェア層宛の通常の送信データであるか疑似データであるかを判定する（ステップＳ１２）。判定の結果、受信したデータが通常の送信データである場合（ステップＳ１２：Ｎｏ）、データ解釈部４２は、受信したデータの送信データフィールド５３に格納されているデータをハードウェア層４６へ送信する（ステップＳ１９）。ハードウェア層４６へ送信されたデータは、ハードウェア層４６において破棄される。
【００３０】
一方、アプリケーション層３２から受信したデータが疑似データである場合（ステップＳ１２：Ｙｅｓ）、データ解釈部４２は、受信したデータの疑似受信データフィールド５９の受信データ種別フィールド６０を参照し、疑似受信データが制御系のデータであるかユーザデータであるかを判定する（ステップＳ１３）。判定の結果、疑似受信データがユーザデータである場合（ステップＳ１３：Ｎｏ）、データ解釈部４２は、疑似受信データフィールド５９の受信データフィールド６１に格納されているデータをユーザデータ処理部３８へ送信する。ユーザデータ処理部３８は、データ解釈部４２から送られてきたデータを受信し（ステップＳ１８）、当該データをユーザデータとしてアプリケーション層３２の試験対象アプリケーション３４へ送信する（ステップＳ１７）。
【００３１】
一方、疑似受信データが制御系のデータである場合（ステップＳ１３：Ｙｅｓ）、データ解釈部４２は、疑似受信データフィールド５９の受信データフィールド６１に格納されているデータを制御データ処理部３９へ送信する。制御データ処理部３９は、データ解釈部４２から送られてきたデータを受信し（ステップＳ１４）、当該データを受信バッファ４０へ送る。受信バッファ４０は、制御データ処理部３９から送られてきたデータを格納する（ステップＳ１５）。刈り取り処理部４１は、試験対象アプリケーション３４からデータの刈り取り処理を受け付け（ステップＳ１６）、受信バッファ４０に格納されているデータを読み出す。刈り取り処理部４１は、受信バッファ４０から読み出したデータを制御系のデータとして試験対象アプリケーション３４へ送信する（ステップＳ１７）。この一連の手順により、ハードウェア層４６が正規のデバイスでなくても、あるいは仮想デバイスであっても、本来ハードウェア層４６から受信する正しいデータが、ドライバ層３３から試験対象アプリケーション３４に返される。
【００３２】
・試験装置の動作（非正規デバイスを正規デバイスに見せかける動作）
図１０は、本発明の実施の形態２におけるシーケンス図である。図１０において、デバイスＡは正規デバイスであり、デバイスＢは非正規デバイスである。図１０に示すように、ハードウェア層４６がデバイスＢである場合、Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（ＯＳ、オペレーティングシステム、基本ソフト）は、デバイスドライバをインストールするときにデバイスＢを検出したら、デバイスＡ用のデバイスドライバを起動するように、例えばシステム定義ファイル（ＩＮＦファイル）に予め登録しておく。そして、ＯＳは、試験を行う際にデバイスＢを検出すると（ステップＳ２１）、デバイスＡ用のデバイスドライバを起動する（ステップＳ２２）。ハードウェアＡ用の試験対象アプリケーション３４は、起動時にデバイスＡ用のデバイスドライバを検索する（ステップＳ２３）。デバイスＡ用のデバイスドライバが起動されているので、試験対象アプリケーション３４はデバイスＡ用のデバイスドライバを認識し、試験の処理を続行する（ステップＳ２４）。
【００３３】
・試験装置の動作（仮想デバイスを正規デバイスに見せかける動作）
図１１は、本発明の実施の形態２におけるシーケンス図である。図１１において、デバイスＡは正規デバイスであり、仮想デバイスＡはデバイスＡの仮想デバイスである。図１１に示すように、ハードウェア層４６にデバイスがない場合には、仮想デバイスの技術を利用する。従って、ハードウェア層４６は仮想デバイスＡとなる。この場合、ＯＳは、デバイスドライバをインストールするときにデバイスＡを検出したら、デバイスＡ用のデバイスドライバを起動するように、例えばシステム定義ファイルに予め登録しておく。そして、ＯＳは、試験を行う際にデバイスＡ（仮想デバイスＡ）を検出すると（ステップＳ３１）、デバイスＡ用のデバイスドライバを起動する（ステップＳ３２）。ハードウェアＡ用の試験対象アプリケーション３４は、起動時にデバイスＡ用のデバイスドライバを検索し（ステップＳ３３）、デバイスＡ用のデバイスドライバを認識して、試験の処理を続行する（ステップＳ３４）。前記ステップＳ２４およびステップＳ３４については、図１２〜図１６を参照しながら、以下に説明する。
【００３４】
・試験装置の動作（応答がこない場合の試験）
図１２は、本発明の実施の形態２におけるシーケンス図である。図１２に示すように、試験対象アプリケーション３４は、ドライバ層３３へハードウェア層宛の通常の送信データを送信する（ステップＳ４１）。ドライバ層３３は、試験対象アプリケーション３４から送られてきたデータをハードウェア層４６へ送信する（ステップＳ４２）。疑似データ作成アプリケーション３５がドライバ層３３へ疑似データを送信しないので、受信バッファ４０にはデータが格納されていない。従って、試験対象アプリケーション３４が受信バッファ４０に対してデータの刈り取りを行うと、試験対象アプリケーション３４にはデータなしという情報が返される（ステップＳ４３）。この場合、試験対象アプリケーション３４は、ハードウェア層４６への送信データに対して期待される応答が得られないので、例えば再送を要求したり、あるいは、エラー処理を行う。ハードウェア層４６に送られてきた通常の送信データは破棄される。
【００３５】
・試験装置の動作（正常に応答がくる場合の試験）
図１３は、本発明の実施の形態２におけるシーケンス図である。図１３に示すように、上記ステップＳ４１およびステップＳ４２と同様に、試験対象アプリケーション３４は、ドライバ層３３を介してハードウェア層４６へ通常の送信データを送信する（ステップＳ５１、ステップＳ５２）。次いで、疑似データ作成アプリケーション３５は、ハードウェア層宛の通常の送信データが送信されたことを認識し、その送信データに対して期待される応答値を含む疑似データをドライバ層３３へ送信する（ステップＳ５３）。ドライバ層３３では、制御データ処理部３９は、送られてきた疑似データから抽出された制御系のデータを応答値として受信バッファ４０に格納する（ステップＳ５４）。次いで、試験対象アプリケーション３４は、受信バッファ４０に対してデータの刈り取りを行う。それによって、ドライバ層３３から試験対象アプリケーション３４に、受信バッファ４０に格納されているデータが応答値として返される（ステップＳ５５）。疑似データからユーザデータが抽出された場合には、ユーザデータ処理部３８は、ユーザデータを試験対象アプリケーション３４へ送信する。疑似データ作成アプリケーション３５は、試験対象アプリケーション３４から通常の送信データが送信されたことを、例えばフラグの設定などによって認識するようにしてもよい。
【００３６】
・試験装置の動作（応答が遅れてくる場合の試験）
図１４は、本発明の実施の形態２におけるシーケンス図である。図１４に示すように、疑似データ作成アプリケーション３５は、試験対象アプリケーション３４が通常の送信データを送信した後（ステップＳ６１、ステップＳ６２）、すぐには疑似データを送信しない。従って、試験対象アプリケーション３４が受信バッファ４０に対してデータの刈り取りを行っても、試験対象アプリケーション３４にはデータなしという情報が返される（ステップＳ６３）。疑似データ作成アプリケーション３５は、試験対象アプリケーション３４が通常の送信データを送信した後、任意の時間が経過した後に疑似データをドライバ層３３へ送信する（ステップＳ６４）。それによって、通常の送信データの送信後、任意の時間が経過した後に、疑似データから抽出された制御系のデータが受信バッファ４０に格納される（ステップＳ６５）。その後、試験対象アプリケーション３４が受信バッファ４０に対してデータの刈り取りを行うことによって、試験対象アプリケーション３４に応答値が返される（ステップＳ６６）。応答値がユーザデータである場合には、通常の送信データの送信後、任意の時間が経過した後に、ユーザデータ処理部３８がユーザデータを試験対象アプリケーション３４へ送信することになる。通常の送信データの送信後、任意の時間が経過した時点で例えばフラグが設定されることにより、疑似データ作成アプリケーション３５が、通常の送信データが送信されたことを実際の送信タイミングから遅れて認識するようにしてもよい。
【００３７】
・試験装置の動作（応答が遅れてくる場合の試験の別の例）
図１５は、本発明の実施の形態２におけるシーケンス図である。図１５に示すように、疑似データ作成アプリケーション３５は、試験対象アプリケーション３４が通常の送信データを送信した後（ステップＳ７１、ステップＳ７２）、待機カウンタ値（＝ｎ、ｎは自然数）を含む疑似データをドライバ層３３へ送信する（ステップＳ７３）。疑似データからは、制御系のデータと待機カウンタ値が抽出され、それらのデータが受信バッファ４０に格納される（ステップＳ７４）。試験対象アプリケーション３４は受信バッファ４０に対してデータの刈り取りを行うが、刈り取りの回数が待機カウンタ値（＝ｎ）を超えるまでは試験対象アプリケーション３４にはデータなしという情報が返される（ステップＳ７５）。刈り取りの回数がｎ＋１回目になると、刈り取り処理部４１は、試験対象アプリケーション３４に応答値を返す（ステップＳ７６）。その際、刈り取り処理部４１は、試験対象アプリケーション３４に待機カウンタ値を返さない。刈り取り処理部４１は、待機カウンタ値と刈り取りの回数とを監視して、刈り取りの回数が待機カウンタ値を超えるまでは試験対象アプリケーション３４に応答値を返さないようにしてもよい。応答値がユーザデータである場合には、ユーザデータ処理部３８は、待機カウンタ値に関係なく、試験対象アプリケーション３４へユーザデータを送信する。待機カウンタ値を刈り取りの回数で設定する代わりに、時間で設定するようにしてもよい。すなわち、試験対象アプリケーション３４が通常の送信データを送信した後、待機カウンタ値に設定された時間が経過するまでは、刈り取り処理部４１が試験対象アプリケーション３４に応答値を返さないようにしてもよい。待機カウンタ値を時間で設定する場合には、待機カウンタ値に設定された時間が経過した後に、ユーザデータ処理部３８が試験対象アプリケーション３４へユーザデータを送信するようにしてもよい。
【００３８】
・試験装置の動作（ハードウェア層から自発的にデータが送られてくる場合の試験）
図１６は、本発明の実施の形態２におけるシーケンス図である。図１６に示すように、疑似データ作成アプリケーション３５は、任意のタイミングで疑似データをドライバ層３３へ送信する（ステップＳ８１）。ドライバ層３３では、制御データ処理部３９が、疑似データから抽出された制御系のデータを応答値として受信バッファ４０に格納する（ステップＳ８２）。次いで、試験対象アプリケーション３４は、受信バッファ４０に対してデータの刈り取りを行い、受信バッファ４０に格納されているデータを応答値として取得する（ステップＳ８３）。疑似データからユーザデータが抽出された場合には、ユーザデータ処理部３８は、ユーザデータを試験対象アプリケーション３４へ送信する。図１６に示す手順の試験では、疑似データが送信される前にハードウェア層宛の通常の送信データの送信が行われない。従って、疑似データによって試験対象アプリケーション３４に返される応答値は、試験対象アプリケーション３４の要求に対する応答ではない。つまり、ハードウェア層４６からデータが自発的に送られてきた場合の試験を行うことになる。
【００３９】
実施の形態２によれば、実施の形態１と同様の効果が得られる。また、ドライバ層３３から試験対象アプリケーション３４に返される疑似データによる応答値は、ドライバ層３３がハードウェア層４６から受信したデータをアプリケーション層３２へ返す場合の本来のロジックを用いて試験対象アプリケーション３４へ返される。従って、エミュレータなど、大がかりな装置を用いて時間のかかる試験を行わずに済むので、アプリケーションの開発の工数および費用の削減を図ることができる。
【００４０】
上述した実施の形態１、２に関し、さらに以下の付記を開示する。
【００４１】
（付記１）アプリケーション層の試験対象アプリケーションとハードウェア層との間でドライバ層を介して授受されるデータの入出力処理を評価する試験装置であって、前記アプリケーション層にあって、前記ハードウェア層から前記ドライバ層に渡されるデータの疑似データを作成して前記ドライバ層へ出力する疑似データ作成部と、前記ドライバ層にあって、前記ハードウェア層から渡されたデータとして前記試験対象アプリケーションへ前記疑似データを返す疑似データ応答部と、を備えることを特徴とする試験装置。
【００４２】
（付記２）前記疑似データ応答部は、前記試験対象アプリケーションから前記ハードウェア層宛に出力されたデータを前記ハードウェア層へ出力することを特徴とする付記１に記載の試験装置。
【００４３】
（付記３）前記疑似データ作成部は、前記疑似データとして、前記試験対象アプリケーションから前記ハードウェア層宛に出力されるデータに対して前記ハードウェア層から前記試験対象アプリケーションへ返される応答値のデータを作成することを特徴とする付記１または２に記載の試験装置。
【００４４】
（付記４）前記ドライバ層に、前記ハードウェア層のデバイスを判定し、前記試験対象アプリケーションに対して実際のデバイスを、前記試験対象アプリケーションに対応するデバイスに見せる判定部を備えることを特徴とする付記１〜３のいずれか一つに記載の試験装置。
【００４５】
（付記５）前記ドライバ層に、前記ハードウェア層のデバイスを判定し、前記試験対象アプリケーションに対して仮想デバイスを、前記試験対象アプリケーションに対応するデバイスに見せる判定部を備えることを特徴とする付記１〜３のいずれか一つに記載の試験装置。
【００４６】
（付記６）前記疑似データ作成部は、前記ハードウェア層から渡されたデータとして前記試験対象アプリケーションへ返されるデータの情報、および前記試験対象アプリケーションへ返されるデータであることを示す情報、を備えた前記疑似データを作成することを特徴とする付記１〜５のいずれか一つに記載の試験装置。
【００４７】
（付記７）前記疑似データ作成部は、前記試験対象アプリケーションへ返されるデータの、前記試験対象アプリケーションへ返されるタイミングを制御する情報、をさらに備えた前記疑似データを作成することを特徴とする付記６に記載の試験装置。
【００４８】
（付記８）アプリケーション層の試験対象アプリケーションとハードウェア層との間でドライバ層を介して授受されるデータの入出力処理を評価する試験方法であって、前記ハードウェア層から前記ドライバ層に渡されるデータの疑似データを作成して前記ドライバ層へ出力する疑似データ作成工程と、前記ドライバ層から前記試験対象アプリケーションへ前記疑似データを前記ハードウェア層から渡されたデータとして返す疑似データ応答工程と、を含むことを特徴とする試験方法。
【００４９】
（付記９）前記疑似データ作成工程の前に、前記ハードウェア層のデバイスを判定し、前記試験対象アプリケーションに対して実際のデバイスを、前記試験対象アプリケーションに対応するデバイスに見せる工程、をさらに含むことを特徴とする付記８に記載の試験方法。
【００５０】
（付記１０）前記疑似データ作成工程の前に、前記ハードウェア層のデバイスを判定し、前記試験対象アプリケーションに対して仮想デバイスを、前記試験対象アプリケーションに対応するデバイスに見せる工程、をさらに含むことを特徴とする付記８に記載の試験方法。
【符号の説明】
【００５１】
１，３１  試験装置
２，３２  アプリケーション層
３，３３  ドライバ層
４，３４  試験対象アプリケーション
５，３５  疑似データ作成部
６，３８〜４２  疑似データ応答部
７，４６  ハードウェア層
５７，６２  疑似データ
【図１】
2010224795.tif 000003
【図２】
2010224795.tif 000004
【図３】
2010224795.tif 000005
【図４】
2010224795.tif 000006
【図５】
2010224795.tif 000007
【図６】
2010224795.tif 000008
【図７】
2010224795.tif 000009
【図８】
2010224795.tif 000010
【図９】
2010224795.tif 000011
【図１０】
2010224795.tif 000012
【図１１】
2010224795.tif 000013
【図１２】
2010224795.tif 000014
【図１３】
2010224795.tif 000015
【図１４】
2010224795.tif 000016
【図１５】
2010224795.tif 000017
【図１６】
2010224795.tif 000018