JP4696744B2 - プログラムテスト装置、方法、及び、プログラム - Google Patents

プログラムテスト装置、方法、及び、プログラム Download PDF

Info

Publication number
JP4696744B2
JP4696744B2 JP2005210292A JP2005210292A JP4696744B2 JP 4696744 B2 JP4696744 B2 JP 4696744B2 JP 2005210292 A JP2005210292 A JP 2005210292A JP 2005210292 A JP2005210292 A JP 2005210292A JP 4696744 B2 JP4696744 B2 JP 4696744B2
Authority
JP
Japan
Prior art keywords
message
test
program
unit
execution unit
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
JP2005210292A
Other languages
English (en)
Other versions
JP2007026306A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2005210292A priority Critical patent/JP4696744B2/ja
Publication of JP2007026306A publication Critical patent/JP2007026306A/ja
Application granted granted Critical
Publication of JP4696744B2 publication Critical patent/JP4696744B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、プログラムテスト装置、方法、及び、プログラムに関し、更に詳しくは、メッセージ交換により実行を進行させるプログラムをテストするプログラムテスト装置、方法、及び、プログラムに関する。
他のサービスやモジュールを呼び出し、呼び出したサービス等との間でメッセージ交換を行って処理を進行するプログラムがある。このようなプログラムをテストする技術としては、非特許文献1に記載された技術がある。図17は、非特許文献1に記載されたプログラムテストシステムにおけるテストの様子を示している。この技術では、テストを実行するテストプログラム501と、被テストプログラムに呼び出されるオブジェクトの動作を模擬する模擬オブジェクト503とを用いて、被テストプログラム502をテストする。
図18は、非特許文献1に記載されたプログラムテストシステムのテスト時の動作フローを示している。まず、テスト実施に先立って、模擬オブジェクト503に、被テストプログラムから呼び出された場合にどのような値を返すかなどの振る舞いを設定する(ステップM1)。次いで、被テストプログラム502を実行し(ステップM2)、模擬オブジェクト503が正しく呼び出されたかや、期待した値が渡されたかなどを検証する(ステップM3)。
ところで、テストシナリオを用いて試験対象のプログラムをテストする技術としては、特許文献1に記載された技術がある。図19は、特許文献1に記載されたテストシステムの概略構成を示している。この技術では、テストシナリオ504と、テストシナリオを実行するテストプログラム505とを用い、GUI環境における被テストプログラム506の動作をテストする。
図20は、図19に記載のテストシステムの動作手順を示している。テストプログラム505は、テストシナリオ504に従って、被テストプログラム506にマウス操作などの入力を与える(ステップG1)。被テストプログラム506は、入力に対する結果として、画面遷移などの出力をテストプログラム505に返す。テストプログラム505は、テストシナリオ504に従って、被テストプログラム506が期待した出力を返したか否かを検証する(ステップG2)。次いで、テストシナリオ504を最後まで実行したか否かを判断し(ステップG3)、最後まで実行していないときには、ステップG1に戻ってテストを続行する。
特開2002−366387号公報 エンドゥ テスティング:ユニット テスティング ウィズ モック オブジェクツ(Endo−Testing:Unit Testing with Mock Objects)(URL http://www.connextra.com/about/Us/mockobjects.pdf)
非特許文献1に記載の技術では、被テストプログラムから呼び出される模擬オブジェクトの振る舞いを、被テストプログラムを実行する前に設定する必要がある。このため、テストプログラム上で、ある事象が起こった後のことを、起こる前に書かなければならないという問題がある。また、模擬オブジェクトの振る舞いの設定と、その検証とが離れて書かれることで断片化しやすくなる。このように、特許文献1では、ある手順の流れをテストしたいにもかかわらず、テストプログラムがテスト手順の時系列とは異なる順で書かれ、或いは、断片化されることで、テストプログラムの可読性が悪くなり、メンテナンス性が悪いという問題がある。
また、非特許文献1に記載の技術では、模擬オブジェクトを呼び出して実行を進行することで、最終的にテストプログラムが実行を完了したか否かをテストすることはできる。しかし、テストプログラムが複数のサービス(模擬オブジェクト)を呼び出す場合には、どのような順序で模擬オブジェクトが呼び出されたかを容易に知ることができないという問題がある。
特許文献1に記載の技術は、被テストプログラムに入力を与えて、与えられた入力に対して返された出力を検証するものである。このため、被テストプログラムに入力を与えて、出力を返すまでの間に、被テストプログラムが他のサービスからの入力を受け付け、或いは、他のサービスを呼び出す場合には、その受付順序や呼出し順序まで検証することができないという問題がある。すなわち、特許文献1では、被テストプログラムがサービスを呼び出し、或いは、サービスから呼び出されることで実行が進行するものである場合、そのメッセージ交換順序に対するテストを行うことはできない。
上記各従来技術では、被テストプログラムへの呼び出し順に関しては考慮されているが、被テストプログラムからの呼び出し順に関しては十分に考慮されていない。このため、被テストプログラムによる外部サービスの呼出しと、外部サービスによる被テストプログラムの呼出しとが混在するときには、その順序が設計した通りであるか否かを検証することが困難であるという問題がある。
本発明は、上記従来技術の問題点を解消し、サービス等を呼び出し、或いは、サービス等に呼び出されて処理が進捗する被テストプログラムについて、テストの内容の可読性やテスト自身のメンテナンス性が高いプログラムテスト装置、方法、及び、プログラムを提供することを目的とする。
また、本発明は、被テストプログラムによる呼出しと、サービス等による被テストプログラムの呼出しとが混在する場合でも、テストシナリオに沿った順序で呼出しが行われていることを容易に検証することができるプログラムテスト装置、方法、及び、プログラムを提供することを目的とする。
上記目的を達成するために、本発明のプログラムテスト装置は、外部サービスとの間でメッセージの送受信を行いつつ処理を進行する被テストプログラムを、該被テストプログラムとの間で送受信すべきメッセージが記述されたテストシナリオに従ってテストするプログラムテスト装置であって、前記テストシナリオを記憶装置から読み込み、該読み込んだテストシナリオを解釈して実行するテストシナリオ解釈実行部であって、前記テストシナリオに従って前記被テストプログラムを呼び出し元とするメッセージを受信する際には、メッセージを受理する旨のメッセージ受理信号を送信し、該メッセージ受理信号を送信した後、前記被テストプログラムを呼び出し元とするメッセージを受信するまで前記テストシナリオの進行を停止し、該メッセージを受信すると、前記テストシナリオの進行を再開し、前記テストシナリオに従って前記外部サービスを呼び出し元とするメッセージを送信する際には、当該外部サービスを呼び出し元とするメッセージを送信し、該外部サービスを呼び出し元とするメッセージに対する返信メッセージ又は該メッセージを受信した旨を受信すると前記テストシナリオを進行させるテストシナリオ解釈実行部と、前記テストシナリオ解釈実行部より前記テストシナリオが読み込まれると、前記被テストプログラムを読み込み、該読み込んだ被テストプログラムを実行する被テストプログラム実行部であって、該被テストプログラムに従って、少なくとも前記被テストプログラムを呼び出し元とするメッセージを送信し、該メッセージが前記テストシナリオ解釈実行部に送信された後、該メッセージを送信した旨を受信するまで、被テストプログラムの進行を停止し、該メッセージを送信した旨を受信すると、該被テストプログラムの進行を再開し、前記外部サービスを呼び出し元とするメッセージを受信すると該被テストプログラムに従って、外部サービスを呼び出し元とするメッセージに対する返信メッセージを送信する被テストプログラム実行部と、前記メッセージ受理信号を受信し記憶するメッセージ受理受付部と、前記被テストプログラム実行部から送信された前記被テストプログラムを呼び出し元とするメッセージを受信し記憶するメッセージ受信部と、前記メッセージ受理受付部が前記メッセージ受理信号を受信し、かつ、前記メッセージ受信部が前記被テストプログラムを呼び出し元とするメッセージを受信すると、前記メッセージ受信部が記憶したメッセージを前記テストシナリオ解釈実行部に送信し、該メッセージを送信した旨を前記被テストプログラム実行部に送信するメッセージ待合せ部とを有する被呼出しサービス模擬部とを備えることを特徴とする。
本発明のプログラムテスト方法は、外部サービスとの間でメッセージの送受信を行いつつ処理を進行する被テストプログラムを、該被テストプログラムとの間で送受信すべきメッセージが記述されたテストシナリオに従ってテストするプログラムテスト装置であって、前記テストシナリオを記憶装置から読み込み、該読み込んだテストシナリオを解釈して実行するテストシナリオ解釈実行部と、前記テストシナリオ解釈実行部により前記テストシナリオの実行が開始されると、前記被テストプログラムを読み込み、該読み込んだ被テストプログラムを実行する被テストプログラム実行部と、被テストプログラムに呼び出される外部サービスを模擬し、メッセージ受理受付部と、メッセージ受信部と、メッセージ待合せ部とを有する被呼出しサービス模擬部とを備えるプログラムテスト装置を用いてテストするプログラムテスト方法であって、前記テストシナリオ解釈実行部が、前記テストシナリオに従って前記被テストプログラムを呼び出し元とするメッセージを受信する際には、メッセージを受理する旨のメッセージ受理信号を送信し、該メッセージ受理信号を送信した後、前記被テストプログラムを呼び出し元とするメッセージを受信するまで前記テストシナリオの進行を停止し、該メッセージを受信すると、前記テストシナリオの進行を再開し、前記テストシナリオに従って前記外部サービスを呼び出し元とするメッセージを送信する際には、当該外部サービスを呼び出し元とするメッセージを送信し、該外部サービスを呼び出し元とするメッセージに対する返信メッセージ又は該メッセージを受信した旨を受信すると前記テストシナリオを進行させるステップと、前記被テストプログラム実行部が、前記テストシナリオ解釈実行部より前記テストシナリオが読み込まれると、前記被テストプログラムを読み込み、該読み込んだ被テストプログラムを実行する被テストプログラム実行部であって、該被テストプログラムに従って、少なくとも前記被テストプログラムを呼び出し元とするメッセージを送信し、該メッセージが前記テストシナリオ解釈実行部に送信された後、該メッセージを送信した旨を受信するまで、被テストプログラムの進行を停止し、該メッセージを送信した旨を受信すると、該被テストプログラムの進行を再開し、前記外部サービスを呼び出し元とするメッセージを受信すると、該被テストプログラムに従って、該外部サービスを呼び出し元とするメッセージに対する返信メッセージを送信するステップと、前記メッセージ受理受付部が、前記メッセージ受理信号を受信し記憶するステップと、前記メッセージ受信部が、前記被テストプログラム実行部から送信された前記被テストプログラムを呼び出し元とするメッセージを受信し記憶するステップと、前記メッセージ待合せ部が、前記メッセージ受理受付部が前記メッセージ受理信号を受信し、かつ、前記メッセージ受信部が前記被テストプログラムを呼び出し元とするメッセージを受信すると、前記メッセージ受信部が記憶したメッセージを前記テストシナリオ解釈実行部に送信し、該メッセージを送信した旨を前記被テストプログラム実行部に送信するステップと、を備えたことを特徴とする。
本発明のプログラムは、コンピュータを、外部サービスとの間でメッセージの送受信を行いつつ処理を進行する被テストプログラムを、該被テストプログラムとの間で送受信すべきメッセージが記述されたテストシナリオに従ってテストするプログラムテスト装置として機能させるプログラムであって、前記コンピュータ、前記テストシナリオを記憶装置から読み込み、該読み込んだテストシナリオを解釈して実行するテストシナリオ解釈実行部であって、前記テストシナリオに従って前記被テストプログラムを呼び出し元とするメッセージを受信する際には、メッセージを受理する旨のメッセージ受理信号を送信し、該メッセージ受理信号を送信した後、前記被テストプログラムを呼び出し元とするメッセージを受信するまで前記テストシナリオの進行を停止し、該メッセージを受信すると、前記テストシナリオの進行を再開し、前記テストシナリオに従って前記外部サービスを呼び出し元とするメッセージを送信する際には、当該外部サービスを呼び出し元とするメッセージを送信し、該外部サービスを呼び出し元とするメッセージに対する返信メッセージ又は該メッセージを受信した旨を受信すると前記テストシナリオを進行させるテストシナリオ解釈実行部、前記テストシナリオ解釈実行部より前記テストシナリオが読み込まれると、前記被テストプログラムを読み込み、該読み込んだ被テストプログラムを実行する被テストプログラム実行部であって、該被テストプログラムに従って、少なくとも前記被テストプログラムを呼び出し元とするメッセージを送信し、該メッセージが前記テストシナリオ解釈実行部に送信された後、該メッセージを送信した旨を受信するまで、被テストプログラムの進行を停止し、該メッセージを送信した旨を受信すると、該被テストプログラムの進行を再開し、前記外部サービスを呼び出し元とするメッセージを受信すると、該被テストプログラムに従って、該外部サービスを呼び出し元とするメッセージに対する返信メッセージを送信する被テストプログラム実行部、前記メッセージ受理信号を受信し記憶するメッセージ受理受付部と、前記被テストプログラム実行部から送信された前記被テストプログラムを呼び出し元とするメッセージを受信し記憶するメッセージ受信部と、前記メッセージ受理受付部が前記メッセージ受理信号を受信し、かつ、前記メッセージ受信部が前記被テストプログラムを呼び出し元とするメッセージを受信すると、前記メッセージ受信部が記憶したメッセージを前記テストシナリオ解釈実行部に送信し、該メッセージを送信した旨を前記被テストプログラム実行部に送信するメッセージ待合せ部とを有する被呼出しサービス模擬部、として機能させることを特徴とする。
本発明のプログラムテスト装置、方法、及び、プログラムでは、テストシナリオ側は、テストシナリオに従って、被テストプログラム側が呼び出し元となるメッセージを受信する旨のメッセージ受理信号を送信(発生)し、被テストプログラムによって送信されたメッセージの受信と、メッセージ受理信号との双方が揃うと、被テストプログラム側から送信されたメッセージが、テストシナリオ側に引き渡される。このように、テストシナリオ側は、メッセージ受理信号により、被テストプログラム側が呼び出し元となるメッセージを能動的に受信できるため、そのようなメッセージについても、メッセージの受信順序を、テストシナリオ側で制御することができる。従って、テストシナリオ側からの呼出しと、被テストプログラム側からの呼出しとを分離することなく同じスキームで実施でき、テストシナリオの断片化を避けて、テストシナリオの可読性やメンテナンス性を向上することができる。また、テストシナリオで示されるメッセージ送受信順序が、そのまま被テストプログラムによるメッセージ送受信の順序となるため、テストシナリオの構成が理解しやすくなる。
本発明のプログラムテスト装置では、前記メッセージ待合せ部は、前記メッセージ受理受付部によるメッセージ受理信号の受信、及び、前記メッセージ受信部によるメッセージの受信の何れか一方が発生してから、所定時間内に他方が発生しないと、前記テストシナリオ解釈実行部に、テストに失敗した旨を送信する構成を採用できる。この場合、例えばテストの進行が止まったままとなる事態を避けることができる。
本発明のプログラムテスト装置では、前記メッセージ待合せ部は、前記テストシナリオ解釈実行部にメッセージを送信すると、被テストプログラムによる呼出しが完了した旨を前記被テストプログラム実行部に送信する構成を採用できる。また、前記被テストプログラム実行部は、前記被呼出しサービス模擬部にメッセージを送信した後、該被呼出しサービス模擬部から前記呼出しが完了した旨を受信するまで、被テストプログラムの進行を停止する構成を採用できる。この場合、被テストプログラム実行部は、呼出しを完了したことを確認した後に、次の処理を開始できる。
本発明のプログラムテスト装置では、前記被呼出しサービス模擬部は、前記テストシナリオ解釈実行部から送信された、前記被テストプログラムを呼び出し元とするメッセージに対する返信メッセージを受信し記憶する返信メッセージ受信部と、前記メッセージ待合せ部が被テストプログラムを呼び出し元とするメッセージをテストシナリオ解釈実行部に送信し、かつ、前記返信メッセージ受信部が前記返信メッセージを受信すると、前記返信メッセージ受信部が記憶した返信メッセージを前記被テストプログラム実行部に送信する返信メッセージ待合せ部とを更に有する構成を採用できる。被テストプログラム側からの呼出しに対して、外部サービス側から返信メッセージが必要な場合がある。この場合には、被呼出しサービス模擬部において、テストシナリオ解釈実行部へメッセージを送信した後に、テストシナリオ解釈実行部から送信される返信メッセージを待ち合わせることで、被テストプログラム側へ返信メッセージを送信することができる。このようにすることで、返信メッセージをテストシナリオで指定することができ、被呼出しサービス模擬部にあらかじめ返信メッセージを設定する場合に比して、テストシナリオの可読性を向上することができる。
本発明のプログラムテスト装置では、前記被テストプログラム実行部は、前記被呼出しサービス模擬部にメッセージを送信した後、該被呼出しサービス模擬部から前記返信メッセージを受信するまで、被テストプログラムの進行を停止する構成を採用できる。また、前記返信メッセージ待合せ部は、前記被テストプログラム実行部に返信メッセージを送信すると、前記テストシナリオ解釈実行部に、返信メッセージの送信が完了した旨を送信する構成を採用できる。この場合、被テストプログラム実行部は、返信メッセージの受信によって呼出しを完了し、次の処理を開始できる。
本発明のプログラムテスト装置では、前記テストシナリオ解釈実行部は、前記被呼出しサービス模擬部に返信メッセージを送信した後、該被呼出しサービス模擬部から前記返信メッセージの送信が完了した旨を受信するまで、テストシナリオの進行を停止する構成を採用できる。この場合、テストシナリオ解釈実行部は、返信メッセージが送信されたことを確認した後に、テストシナリオの進行を再開できる。
本発明のプログラムテスト装置では、前記テストシナリオ解釈実行部は、前記返信メッセージの送信後、所定時間以内に、前記返信メッセージの送信が完了した旨を受信しないときには、テストに失敗した旨を出力する構成を採用できる。この場合、テストシナリオの進行が停止したままになる事態を回避できる。
本発明のプログラムテスト装置では、前記テストシナリオ解釈実行部は、テストシナリオを最後まで進行すると、テストに成功した旨を出力する構成を採用できる。テストシナリオには、被テストプログラムが外部サービスとの間で送受信するメッセージを、メッセージ送受信順序に従って記述できる。このため、テストシナリオを最後まで正しく実行できたということは、テストに成功したこと意味する。
本発明のプログラムテスト装置、方法、及び、プログラムでは、テストシナリオ側は、メッセージ受理信号の送信(発生)により、被テストプログラム側が呼び出し元となるメッセージを能動的に受信できる。このため、テストシナリオ側からの呼出しと、被テストプログラム側からの呼出しとを分離することなく同じスキームで実施でき、テストシナリオの断片化を避けて、テストシナリオの可読性やメンテナンス性を向上することができる。また、テストシナリオで示されるメッセージ送受信順序が、被テストプログラムによるメッセージ送受信の順序となるため、テストシナリオの構成が理解しやすくなる。
以下、図面を参照し、本発明の実施の形態を詳細に説明する。図1は、本発明の第1実施形態のプログラムテストシステムの構成を示している。テストシステム10は、コンピュータ(中央処理装置、プロセッサ、又はデータ処理装置)100と、テストシナリオ格納部180と、被テストプログラム格納部190とを有する。コンピュータ100は、プログラム制御により動作し、テストシナリオ解釈実行部101と、被テストプログラム実行部102と、被テストプログラム呼出し部103と、被呼出しサービス模擬部110とを有する。
被テストプログラム格納部190は、テスト対象の被テストプログラム160を格納する。被テストプログラム160は、他のサービスやモジュールからメッセージを受信し、或いは、他のサービス等に対してメッセージを送信しつつ処理を進行する。被テストプログラム160としては、例えば、WS−BPEL(Web Services Business Process Execution Language)などのビジネスプロセス実行言語で書かれたプログラム、シェルスクリプトなどいくつかのコマンドを組み合わせて動作するプログラム、或いは、ソケットを用いていくつかのサーバやデーモンなどと連携するネットワークプログラムなどがある。被テストプログラム実行部102は、被テストプログラム160を読み込み、テストシナリオ解釈実行部101との間でメッセージの送受信をしつつ、被テストプログラム160に従った動作を実行する。
テストシナリオ格納部180は、被テストプログラム160のテストに用いられるテストシナリオ150を格納する。テストシナリオ150には、被テストプログラム160が、どのサービスとの間で、どのようなメッセージで、どのような方式でメッセージを交換するかについて、メッセージ交換が起きることを確認したい順で並べられている。テストシナリオ解釈実行部101は、テストシナリオ150を読み込み、テストシナリオ150に従って、被テストプログラム実行部102との間でメッセージを送受信しつつ、動作を進行する。
ここで、メッセージの送受信の方式には、同期送信・受信と、非同期送信・受信とがある。同期送信・受信とは、メッセージ送信後、相手側(送信先)に処理が移り、相手側の処理が終了すると、返信メッセージがある場合にはこれを受け取って、送信元の処理が再開する送信・受信形態を指す。一方、メッセージの非同期送信・受信とは、メッセージ送信後、直ちに次の処理に移ることができる送信・受信形態を指す。本実施形態においては、テストシナリオ解釈実行部101は、自身が呼び出し元となるときには、被テストプログラム実行部102との間で、同期又は非同期でメッセージを送受信する。また、被テストプログラム実行部102が呼び出し元となるときには、被テストプログラム実行部102から、メッセージを非同期で受信する。
テストシナリオ解釈実行部101は、テストシナリオ150に、被テストプログラム160が外部サービスから同期又は非同期でメッセージを受信する旨が記述されている場合には、テストシナリオ解釈実行部101を呼び出し元とし、被テストプログラム呼出し部103を介して、同期又は非同期で、呼び出し先の被テストプログラム実行部102にメッセージを送信する。このとき、テストシナリオ解釈実行部101が送信したメッセージが同期送信である場合であって、被テストプログラム実行部102が、受信したメッセージに対して返信メッセージを同期送信するときには、テストシナリオ解釈実行部101は、被テストプログラム実行部102から、被テストプログラム呼出し部103を介して、その返信メッセージを同期受信する。
被呼出しサービス模擬部110は、被テストプログラム160によって呼び出される外部サービスを模擬し、呼び出される外部サービスに対応して用意される。テストシナリオ解釈実行部101は、テストシナリオ150に、外部サービスが、被テストプログラム実行部102が呼び出し元となって非同期送信されたメッセージを受信する旨が記述されているときには、そのメッセージを、対応する被呼出しサービス模擬部110を介して受信する。
被呼出しサービス模擬部110は、メッセージ受理受付部111と、メッセージ待合せ部112と、メッセージ受信部113とを備える。被テストプログラム実行部102は、被テストプログラム160に従って、自身が呼び出し元となって、外部サービスにメッセージを非同期で送信する場合には、その外部サービスに対応する被呼出しサービス模擬部110にメッセージを送信する。メッセージ受信部113は、被テストプログラム実行部102が送信したメッセージを受信する。メッセージ受信部113は、被テストプログラム実行部102からメッセージを受信すると、その旨をメッセージ待合せ部112に通知する。
一方、テストシナリオ解釈実行部101は、テストシナリオ150に、被テストプログラム実行部102が呼び出し元となって外部サービスにメッセージを送信する旨が記述されている場合には、対応する被呼出しサービス模擬部110にメッセージ受理を送信する。メッセージ受理受付部111は、テストシナリオ解釈実行部101が送信したメッセージ受理を受け付けて、メッセージ受理を受信した旨をメッセージ待合せ部112に通知する。
メッセージ待合せ部112は、被テストプログラム実行部102が送信するメッセージと、テストシナリオ解釈実行部101が送信するメッセージ受理との待ち合わせを行う。メッセージ待合せ部112は、メッセージ受信部113からメッセージを受信した旨の通知がされ、かつ、メッセージ受理受付部111がメッセージ受理を受け付けた旨の通知がされると、テストシナリオ解釈実行部101に受信したメッセージを送信する。また、被テストプログラム実行部102にメッセージを送信した旨を通知する。
メッセージ待合せ部112におけるメッセージ待合せの機構には、例えば、Java言語の標準ライブラリに含まれるjava.util.concurrent.BlockingQueueなどを用いることができる。また、メッセージ及びメッセージ受理を記憶する領域と、それら領域にメッセージ又はメッセージ受理が記憶されたか否かをチェックするフラグとを設けて、フラグがセットされていなければ、セットされるまで待機し、フラグがセットされると、記憶されたメッセージ及びメッセージ受理を、それぞれテストシナリオ解釈実行部101及び被テストプログラム実行部102に送信する機構を採用することができる。
被テストプログラム実行部102は、被呼出しサービス模擬部110にメッセージを送信した後、被テストプログラム160の進行を一時停止する。また、テストシナリオ解釈実行部101は、メッセージ受理の送信後、テストシナリオ150の進行を一時停止する。テストシナリオ解釈実行部101は、被呼出しサービス模擬部110からメッセージを受信すると、テストシナリオ150の進行を再開し、被テストプログラム実行部102は、被呼出しサービス模擬部110から、テストシナリオ解釈実行部101にメッセージを送信した旨の通知を受け取ると、被テストプログラム160の進行を再開する。
なお、テストシステム10は、典型的には、図2に示すように、CPU1001、メモリ1002、及び、外部記憶装置1003を含むコンピュータ1000と、入力装置1004と、出力装置1005とを有するコンピュータシステムとして構成できる。テストシステム10は、テストを実施するためのテスト作成実施プログラム1010をメモリ1002上に読み込んで動作する。テストシナリオ150及び被テストプログラム160(図1)は、それぞれメモリ1002又は外部記憶装置1003に格納されている。テスト開始に際して、利用者は、マウスやキーボード、タッチパネルなどの入力装置1004を通じて、テストの作成及び実施の開始を指令する。テストの結果は、ディスプレイ等の出力装置1005に表示される。
図3は、テストシステムの動作手順をフローチャートで示している。利用者が入力装置1004(図2)を通じてテストの開始を指示すると、テストシナリオ解釈実行部101(図1)は、テストシナリオ格納部180から、テストシナリオ150を読み込む(ステップA1)。また、被テストプログラム実行部102は、被テストプログラム格納部190から、被テストプログラム160を読み込み(ステップA2)、その実行を開始する(ステップA3)。その後、テストシナリオ解釈実行部101は、ステップA1で読み込んだテストシナリオ150の実行を開始する(ステップA4)。
テストシナリオ解釈実行部101は、テストシナリオ150に、被テストプログラム実行部102にメッセージを送信するという指示があるか否かを調べ(ステップA5)、そのような指示があるときには、被テストプログラム呼出し部103を介して、被テストプログラム実行部102にメッセージを送信する(ステップA9)。テストシナリオ解釈実行部101は、外部サービスが被テストプログラム実行部102からメッセージを受信するという指示があるか否かを調べ(ステップA6)、そのような指示があるときには、被テストプログラム160からメッセージを受信し(ステップA10)、受信したメッセージがテストシナリオ150で示されるメッセージであるか否かを確認する。テストシナリオ解釈実行部101は、メッセージが一致していないときには、テストに失敗したと判断して、その旨を出力する。
ステップA10では、テストシナリオ解釈実行部101は、被テストプログラム実行部102から同期送信したメッセージに対する返信メッセージを受信する場合には、被テストプログラム呼出し部103を介して、返信メッセージを受信する。一方、被テストプログラム実行部102側が呼び出し元となって送信されたメッセージを受信する場合には、メッセージを受信すべき外部サービスに対応する被呼出しサービス模擬部110にメッセージ受理を送信し、被呼出しサービス模擬部110を介して、メッセージを受信する。
図4は、被テストプログラム実行部102側がメッセージを送信しテストシナリオ解釈実行部101がメッセージを受信する際の被呼出しサービス模擬部110の動作手順を示している。メッセージ受理受付部111は、テストシナリオ解釈実行部101からのメッセージ受理を受け付け(ステップB1)、メッセージ受理を受信すると、その旨を、メッセージ待合せ部112に通知し、メッセージ待合せ部112に、被テストプログラム実行部102からメッセージを受信した旨の通知がされるまで待機する(ステップB2)。
一方、被テストプログラム実行部102は、被テストプログラム160に従って、メッセージを送信すべき外部サービスに対応する被呼出しサービス模擬部110にメッセージを送信する。メッセージ受信部113は、被テストプログラム実行部102からのメッセージを受け付け(ステップB11)、メッセージを受信すると、その旨をメッセージ待合せ部112に通知し、メッセージ待合せ部112に、テストシナリオ解釈実行部101からメッセージ受理を受け付けた旨の通知がされるまで待機する(ステップB12)。
メッセージ待合せ部112は、メッセージを受信した旨の通知を受け、かつ、メッセージ受理を受け付けた旨の通知を受けると、テストシナリオ解釈実行部101に、被テストプログラム実行部102から受信したメッセージを送信する(ステップB3)。また、被テストプログラム実行部102に、テストシナリオ解釈実行部101にメッセージを送信した旨の通知を送信する(ステップB13)。被テストプログラム実行部102は、メッセージ受理を受信すると、被テストプログラム160からの呼出しを完了し、被テストプログラム160の進行を再開する。また、テストシナリオ解釈実行部101は、被呼出しサービス模擬部110からメッセージを受信すると、停止していたテストシナリオ150の進行を再開する。
図3に戻り、テストシナリオ解釈実行部101は、テストシナリオ150を最後まで実行したか否かを判断する(ステップA7)。テストシナリオ解釈実行部101は、テストシナリオ150の実行が完了していないと判断したときには、ステップA5に戻って、テストシナリオ150に記述された次の処理を実行する。テストシナリオ解釈実行部101は、テストシナリオ150の実行が完了した判断すると、テストが成功した旨を出力し(ステップA8)、処理を終了する。
以下、テストシステム10の動作について、具体例を挙げて説明する。以下では、被テストプログラム160(被テストプログラム実行部102)が、図5に示すように、複数のサービス(サービスA〜サービスC)との間でメッセージの送受信を行って動作する場合について考える。この例では、テストシナリオ150には、図6に示すように、各サービスとの間でのメッセージのやり取り、及び、その方法(同期受信・送信、又は、非同期受信・送信)が、メッセージ交換が生起すべき順番に並べられる。
図5の例では、被テストプログラム160が呼び出すサービスは、サービスCであるため、コンピュータ100内に、サービスCに対応する被呼出しサービス模擬部110を用意する。被呼出しサービス模擬部110は、テスト開始に先立って、テスト(シナリオ)の作成者によって生成することができ、或いは、コンピュータ100にテストシナリオ150を解析させることにより、機械的に生成してもよい。例えば、模擬したいサービスについて、そのサービスがどのような形式のメッセージをやり取りするかを定めたインタフェース定義を入力として、その定義に基づいてメッセージ受信部113を生成し、これと、あらかじめ用意しておいたメッセージ受理受付部111及びメッセージ待合せ部112とを合成して被呼出しサービス模擬部110を自動生成する。
テストシナリオ解釈実行部101は、まず、テストシナリオ150の第1項目(#1)を読み込み、被テストプログラム160が、サービスAからメッセージ1を非同期で受信することを知る。次いで、メッセージ1の内容を取得し、被テストプログラム呼出し部103を介して、被テストプログラム160に、メッセージ1を非同期で送信する。ここで、メッセージ1の内容は、テストシナリオ150内に直接記述することができる。或いは、テストシナリオ150にはポインタを記述しておき、そのポインタを参照して、外部記憶装置1003やメモリ1002(図2)からメッセージ1の内容を取得してもよい。テストシナリオ解釈実行部101は、被テストプログラム実行部102から、メッセージ1を受信した旨の応答を受け取ると、この項目に関しては、成功したとみなす。
テストシナリオ解釈実行部101は、テストシナリオ150の第1項目に成功すると、第2項目(#2)を読み込み、被テストプログラム160が、サービスBからのメッセージ2を同期受信し、その後、メッセージ3を同期で返信する(#3)ことを知る。テストシナリオ解釈実行部101は、メッセージ2の内容を取得し、取得したメッセージ2を、被テストプログラム呼出し部103を介して、被テストプログラム160に同期送信する。また、被テストプログラム呼出し部103を介して、被テストプログラム実行部102から、受信したメッセージ2に対する返信メッセージであるメッセージ3を受信する。
テストシナリオ解釈実行部101は、被テストプログラム実行部102から返信メッセージを受信すると、受信すべきメッセージ3の内容を取得し、受信した返信メッセージとメッセージ3とを比較して、メッセージ3を正しく受信できたか否かを判断する。テストシナリオ解釈実行部101は、被テストプログラム実行部102からメッセージ3を正しく受信できたときには、テストシナリオ150の第2項目及び第3項目に関しては、成功したとみなす。
テストシナリオ解釈実行部101は、テストシナリオ150の第2項目及び第3項目に成功すると、第4項目(#4)を読み込み、被テストプログラム160がサービスCにメッセージ4を非同期で送信することを知る。テストシナリオ解釈実行部101は、サービスCに対応する被呼出しサービス模擬部110にメッセージ受理を送信し、テストシナリオ150の進行を一時停止する。一方、被テストプログラム実行部102は、メッセージ3の送信後、被テストプログラム160に従った処理を実行し、その内容に従って、任意のタイミングで、メッセージ4をサービスCに対応する被呼出しサービス模擬部103に送信し、被テストプログラム160の進行を一時停止する。
被テストプログラム実行部102によるメッセージ4の送信と、テストシナリオ解釈実行部101によるメッセージ受理の送信とは、どちらが先であってもかまわない。その理由は、メッセージ待合せ部112がメッセージ受理とメッセージの受信との待ち合わせを行うからである。サービスCに対応する被呼出しサービス模擬部110は、メッセージ待合せ部112が、メッセージ受理受付部111からメッセージ受理を受信した旨の通知を受け、かつ、メッセージ受信部113からメッセージを受信した旨の通知を受けると、メッセージ4をテストシナリオ解釈実行部101に送信し、メッセージを送信した旨を被テストプログラム実行部102に送信する。テストシナリオ解釈実行部101は、受信すべきメッセージ4の内容を取得し、受信したメッセージとメッセージ4とを比較して、メッセージ4を正しく受信できたか否かを判断する。テストシナリオ150を最後まで正しく実行できたときには、ディスプレイやプリンタなど外部出力装置1005(図2)にテストの結果を出力し、或いは、メモリ1002やディスクなどの記憶装置1003にテストの結果を書き込む。
テストシナリオ解釈実行部101は、被テストプログラム160のサービスCへのメッセージの送信が行われるまで、テストシナリオ150の進行を中断することで、被テストプログラム160が、どのタイミングでメッセージを送信したかを認識することができる。すなわち、被テストプログラム実行部102がサービスCにメッセージを送信する前に、他のサービスへメッセージを送信したとすると、テストシナリオ解釈実行部101は、サービスCに対応する被呼出しサービス模擬部110からメッセージを受信することができないため、メッセージ交換順序が不正であることがわかる。また、被テストプログラム実行部102が、サービスBとの間のメッセージ送受信の前にサービスCにメッセージを送信した場合には、テストシナリオ解釈実行部101は、被テストプログラム実行部102とサービスBとの間のメッセージの送受信が終わるまで、サービスCにメッセージ受理を送信しないため、メッセージ交換順序が不正であることがわかる。
一般に、被テストプログラム実行部102側が呼び出し元となってメッセージを送信する場合には、呼出しを受ける側のテストシナリオ解釈実行部101は、受動的にメッセージを受信することになるため、メッセージの受信タイミングを制御することができない。本実施形態では、テストシナリオ解釈実行部101は、メッセージを受信すべきタイミングで、メッセージを受信すべきサービスに対応する被呼出しサービス模擬部110にメッセージ受理を送信することで、能動的にメッセージを受信するため、テストシナリオ解釈実行部101は、自身が呼出しを受ける側になる場合でも、能動的にメッセージを受信できる。
本実施形態では、被呼出しサービス模擬部110において、テストシナリオ解釈実行部101が送信したメッセージ受理と、被テストプログラム実行部102が送信したメッセージとの待ち合わせを行う。これにより、被テストプログラム160からの呼出し及び被テストプログラム160への呼出しの順序を、テストシナリオ150側で制御することができる。従って、被テストプログラム160からの呼出しと被テストプログラム160への呼出しとを分離することなく同じスキームで実施でき、テストシナリオ150の断片化を避けることができることにより、テストシナリオの可読性やメンテナンス性を向上することができる。また、テストシナリオ150で示される順序が、そのまま被テストプログラム160によるメッセージ交換の順序となるため、テストシナリオ150の構成が理解しやすくなる。
上記のように、テストシナリオ150側が、被テストプログラム160を呼び出すタイミングだけでなく、被テストプログラム160が送信したメッセージを受信するタイミングを制御できるようになった結果、テストシナリオ150側で、被テストプログラム160によるメッセージ交換の進捗が制御できる。このため、テストシナリオ150の進捗によって、被テストプログラム160によるメッセージ送受信の順序を検証することができ、ログを解析してメッセージ送受信の順序を調べる必要がないことから、メッセージ送受信の検証が容易となる。また、被テストプログラム160がサービスとの間で、テストシナリオ150の順序通りにメッセージを交換しない場合には、テストシナリオ150が進捗できなくなることから、テストシナリオ150を最後まで実行できたか否かを調べることにより、被テストプログラム160によるメッセージ交換の順序が正しく行われたか否かを容易に検証することができる。
図7は、本発明の第2実施形態のテストシステムの構成を示している。本実施形態は、コンピュータ100aが、被呼出しサービス模擬部110(図1)に代えて、図7に示す構成を有する被呼出しサービス模擬部120を備える点で、第1実施形態と相違する。被呼出しサービス模擬部120は、第1実施形態の被呼出しサービス模擬部110の構成に加えて、返信メッセージ受付部114及び返信メッセージ待合せ部115を更に有する。第1実施形態では、外部サービス等にメッセージを非同期で送信するプログラムを被テストプログラム160としたが、本実施形態では、外部サービス等にメッセージを同期送信するプログラムを、被テストプログラム160とする。
メッセージ受信部113は、被テストプログラム実行部102から同期送信で送信されたメッセージを受信し、メッセージを受信した旨をメッセージ待合せ部112に通知する。メッセージ受理受付部111は、テストシナリオ解釈実行部101によって送信されたメッセージ受理を受け付けて、その旨をメッセージ待合せ部112に通知する。メッセージ待合せ部112は、メッセージと、メッセージ受理とが揃うと、被テストプログラム実行部102が同期送信したメッセージを、テストシナリオ解釈実行部101に送信し、メッセージを送信した旨を、メッセージ受信部113に通知する。
メッセージ受信部113は、メッセージを送信した旨の通知を受けると、返信メッセージ待合せ部115に、返信メッセージを受理する旨の通知を行う。テストシナリオ解釈実行部101は、受信したメッセージがテストシナリオ150で示されるメッセージと一致するか否かを確認し、メッセージの確認後、返信メッセージを被呼出しサービス模擬部120に送信する。返信メッセージ受付部114は、テストシナリオ解釈実行部101から送信された返信メッセージを受け付けて、その旨を返信メッセージ待合せ部115に送信する。返信メッセージ待合せ部120は、返信メッセージと、返信メッセージ受理とが揃うと、被テストプログラム実行部102に返信メッセージを送信し、被テストプログラム実行部102に返信メッセージを送信した旨をテストシナリオ解釈実行部101に送信する。
図8は、テストシステムの動作手順をフローチャートで示している。テストシナリオ解釈実行部101は、テストシナリオ格納部180から、テストシナリオ150を読み込み、読み込んだテストシナリオ150の実行を開始する(ステップC1)。また、被テストプログラム実行部102は、被テストプログラム格納部190から、被テストプログラム160を読み込み、その実行を開始する。
テストシナリオ解釈実行部101は、テストシナリオ150に、被テストプログラム実行部102にメッセージを送信するという指示があるか否かを調べ(ステップC2)、そのような指示があるときには、被テストプログラム呼出し部103を介して、被テストプログラム実行部102にメッセージを送信する(ステップC7)。また、テストシナリオ解釈実行部101は、外部サービスが被テストプログラム実行部102からメッセージを受信するという指示があるか否かを調べ(ステップC3)、そのような指示があるときには、被テストプログラム160からメッセージを受信し(ステップC8)、受信したメッセージがテストシナリオ150で示されるメッセージであるか否かを確認する。
ステップC8では、テストシナリオ解釈実行部101は、被テストプログラム実行部102から同期送信したメッセージに対する返信メッセージを受信する場合には、被テストプログラム呼出し部103を介して、返信メッセージを受信する。一方、被テストプログラム実行部102側が呼び出し元となって送信されたメッセージを受信する場合には、メッセージを受信すべき外部サービスに対応する被呼出しサービス模擬部110にメッセージ受理を送信し、被呼出しサービス模擬部110を介して、メッセージを受信する。
テストシナリオ解釈実行部101は、テストシナリオ150に、同期受信したメッセージに対する返信メッセージを送信するという指示があるか否かを調べる(ステップC4)。テストシナリオ解釈実行部101は、そのような指示があるときには、被呼出しサービス模擬部120を介して、被テストプログラム実行部102に返信メッセージを送信する(ステップC9)。
図9は、被テストプログラム実行部102がメッセージを同期送信して、返信メッセージを受信する際の被呼出しサービス模擬部120の動作手順を示している。メッセージ受理受付部111は、テストシナリオ解釈実行部101からのメッセージ受理を受け付け(ステップD1)、メッセージ受理を受信すると、その旨を、メッセージ待合せ部112に通知し、メッセージ待合せ部112に、被テストプログラム実行部102からのメッセージを受信した旨の通知がされるまで待機する(ステップD2)。
一方、被テストプログラム実行部102は、被テストプログラム160に従って、メッセージを送信すべき外部サービスに対応する被呼出しサービス模擬部110にメッセージを送信する。メッセージ受信部113は、被テストプログラム実行部102からのメッセージを受け付け(ステップD11)、メッセージを受信すると、その旨をメッセージ待合せ部112に通知し、メッセージ待合せ部112に、テストシナリオ解釈実行部101からメッセージ受理を受け付けた旨の通知がされるまで待機する(ステップD12)。
メッセージ待合せ部112は、メッセージを受信した旨の通知を受け、かつ、メッセージ受理を受け付けた旨の通知を受けると、テストシナリオ解釈実行部101に、被テストプログラム実行部102から受信したメッセージを送信する(ステップD3)。このとき、メッセージ待合せ部112は、メッセージ受信部113に、テストシナリオ解釈実行部101にメッセージを送信した旨を通知する。
テストシナリオ解釈実行部101は、テストシナリオ150に従って、返信メッセージを被呼出しサービス模擬部120に送信する。返信メッセージ受付部114は、テストシナリオ解釈実行部101が送信した返信メッセージを受け付けて(ステップD4)、返信メッセージを受信した旨を返信メッセージ待合せ部115に通知し、返信メッセージ待合せ部115に、返信メッセージを受理する旨の通知がされるまで待機する(ステップD5)。
一方、メッセージ受信部113は、メッセージ待合せ部112から、テストシナリオ解釈実行部101にメッセージを送信した旨の通知を受け取ると、返信メッセージを受理する旨を、返信メッセージ待合せ部115に通知する。その後、返信メッセージ待合せ部115に、テストシナリオ解釈実行部101からの返信メッセージを受信した旨の通知がされるまで待機する(ステップD13)。
返信メッセージ待合せ部115は、返信メッセージと、返信メッセージ受理とが揃うと、被テストプログラム実行部102に返信メッセージを送信し(ステップD14)、テストシナリオ解釈実行部101に返信メッセージを送信した旨を通知する(ステップD6)。被テストプログラム実行部102は、返信メッセージを受信すると、メッセージの同期送信・受信の処理を終了し、被テストプログラム160の進行を再開する。テストシナリオ解釈実行部101は、返信メッセージを送信した旨の通知を受け取ると、テストシナリオ150の進行を再開する。
図8に戻り、テストシナリオ解釈実行部101は、テストシナリオ150を最後まで実行したか否かを判断する(ステップC5)。テストシナリオ解釈実行部101は、テストシナリオ150の実行が完了していないと判断したときには、ステップC2に戻って、テストシナリオ150に記述された次の処理を実行する。テストシナリオ解釈実行部101は、テストシナリオ150の実行が完了した判断すると、テストが成功した旨を出力し(ステップC6)、処理を終了する。
次に、本実施形態のテストシステム10aの動作について、具体例を用いて説明する。図10は、被テストプログラム160と外部サービスとの間のメッセージ交換の様子を示している。図10では、被テストプログラム160が呼び出すサービスは、サービスDであるため、コンピュータ100a内に、サービスDに対応する被呼出しサービス模擬部120が用意される。図10に示す被テストプログラム160のテストには、図11に示すテストシナリオ150が使用される。このテストシナリオ150の第1項〜第3項は、第1実施形態の説明で用いたテストシナリオ150(図6)と同じであり、テストシナリオ解釈実行部101は、第1実施形態で説明したのと同様な動作により、被テストプログラム160との間でメッセージを交換する。
テストシナリオ解釈実行部101は、テストシナリオ150の第3項(メッセージ3の同期返信)に成功すると、第4項(#4)を読み込み、被テストプログラム160が、サービスDへメッセージ5を同期送信することを知る。その後、テストシナリオ解釈実行部101は、サービスDに対応する被呼出しサービス模擬部120に、メッセージ受理を送信し、テストシナリオ150の進行を一時停止する。被テストプログラム実行部102は、被テストプログラムに従って、任意のタイミングで、メッセージ5を、サービスDに対応する被呼出しサービス模擬部120に同期送信し、被テストプログラム160の進行を一時停止する。
被呼出しサービス模擬部120では、メッセージ待合せ部112が、メッセージの受信とメッセージ受理の受信とを待ち合わせ、その双方が揃うと、受信したメッセージをテストシナリオ解釈実行部101に送信する。メッセージの送信後、メッセージ受信部113は、返信メッセージを受理する旨を、返信メッセージ待合せ部115に通知する。テストシナリオ解釈実行部101は、被呼出しサービス模擬部120からメッセージを受信すると、受信したメッセージが、受信すべきメッセージ5と一致することを確認する。
テストシナリオ解釈実行部101は、受信メッセージの確認後、テストシナリオ150の進行を再開して、その第5項(#5)を読み込み、被テストプログラム160がサービスDから返信メッセージ6を受信することを知る。テストシナリオ解釈実行部101は、送信すべき返信メッセージ6の内容を取得し、サービスDに対応する被呼出しサービス模擬部120に、その返信メッセージ6を送信する。返信メッセージ受付部114は、テストシナリオ解釈実行部101から返信メッセージ6を受信して、返信メッセージを受信した旨を返信メッセージ待合せ部115に通知する。
返信メッセージ待合せ部115は、返信メッセージと返信メッセージ受理とが揃うと、返信メッセージ6を被テストプログラム実行部102に送信し、返信メッセージを送信した旨をテストシナリオ解釈実行部101に通知する。被テストプログラム実行部102は、返信メッセージ6を受信すると、サービスDに対する呼出しを完了して、被テストプログラム160の進行を再開する。また、テストシナリオ解釈実行部101は、返信メッセージを送信した旨の通知を受けると、テストシナリオ150の進行を再開する。
本実施形態では、第1実施形態と同様に、被呼出しサービス模擬部120において、テストシナリオ解釈実行部101からのメッセージ受理と、被テストプログラム実行部102からのメッセージの送信とを、待ち合わせているため、テストシナリオ150で示された順序でメッセージの送受信が行われないと、テストシナリオ150が進行しなくなる。従って、本実施形態では、テストシナリオ150で示されたメッセージの送受信順序が、そのまま被テストプログラム160がメッセージを送受信すべき順序となるため、テストシナリオの可読性及びメンテナンス性を向上できる。
また、本実施形態では、返信メッセージ受付部114及び返信メッセージ待合せ部115によって返信メッセージの待ち合わせを行っているため、被テストプログラム実行部101が、被呼出しサービス模擬部120を同期呼出しした際には、被テストプログラム実行部102が受け取る返信メッセージに関して、その返信メッセージを返すべき時点まで、その返信メッセージの作成及び被呼出しサービス模擬部120への受け渡しを遅れさせることができる。すなわち、この返信メッセージの待ち合わせ機構がない場合には、テストシナリオ解釈実行部101へメッセージを送信した後に、直ちに被呼出しサービス模擬部120から返信メッセージを送信することが必要であるため、被呼出しサービス模擬部120に、あらかじめ返信メッセージを設定しておく必要があるが、返信メッセージを待ち合わせることにより、被呼出しサービス模擬部120にあらかじめ返信メッセージを設定しておく必要がなく、テストシナリオ150において、返信メッセージを指定することが可能となる。この結果、テストシナリオの可読性を向上させることができる。
図12は、本発明の第3実施形態のテストシステムの構成を示している。本実施形態では、コンピュータ100bは、被呼出しサービス模擬部(非同期)110と、被呼出しサービス模擬部(同期)120とを備えている。本実施形態のテストシステム10bでは、被呼出しサービス模擬部(非同期)110は、第1実施形態の被呼出しサービス模擬部110と同様な動作により、被テストプログラム実行部102から非同期で送信されたメッセージを、テストシナリオ解釈実行部101に送信する。被呼出しサービス模擬部(同期)120は、第2実施形態の被呼出しサービス模擬部120と同様な動作により、被テストプログラム実行部102から同期送信されたメッセージをテストシナリオ解釈実行部101に送信し、テストシナリオ解釈実行部101が送信したメッセージを被テストプログラム実行部102に送信する。
例えば、被テストプログラム160が、図13に示すように、各外部サービスとの間でメッセージの送受信をする場合について考える。この場合、テストシナリオ150は、メッセージ送受信順序に従って、図14に示すように記述される。テストシナリオ150の第4項(#4)では、テストシナリオ解釈実行部101は、被呼出しサービス模擬部(非同期)110を介して、被テストプログラム実行部102によって送信されたメッセージ4を受信する。また、テストシナリオ150の第5項(#5)では、テストシナリオ解釈実行部101は、被呼出しサービス模擬部(同期)120を介して、メッセージ5を受信し、返信メッセージ6を被テストプログラム実行部102に返信する。
本実施形態では、被呼出しサービス模擬部(非同期)110と、被呼出しサービス模擬部(同期)120と備えることにより、被テストプログラム160に、同期送信によるメッセージ送信と、非同期送信によるメッセージ送信とが含まれる場合でも、テストが可能となる。その他の効果は、第1実施形態又は第2実施形態と同様である。
なお、上記各実施形態では、メッセージ待合せ部112又は返信メッセージ待合せ部115において、(返信)メッセージ受理と(返信)メッセージ受信との双方が揃わないと(待ち合わせが完了しないと)、テストシナリオ150の進行が停止したままとなる。このような事態を回避するため、メッセージ待合せ部112及び返信メッセージ待合せ部115は、メッセージ受理又はメッセージ受信が通知されるとタイマを起動し、所定時間内に、他方が通知されない場合には、待ち合わせを終了して、テストシナリオ150を満たさないとして、テストに失敗した旨を出力させる構成を採用することができる。或いは、ポーリングを指定回数だけ実施しても待ち合わせが完了しないときには、テストに失敗した旨を出力させてもよい。これらの場合には、被テストプログラム160の誤りによって待ち合わせが完了せず、テストの実施が途中で止まる事態を避けることができる。
また、図15に示すように、テストシナリオ解釈実行部101、被呼出しサービス模擬部110、120、及び、被テストプログラム呼出し部103と、被テストプログラム実行部102とを、それぞれ別のコンピュータ200(クライアント部)、300(サーバ部)上に実現して、クライアント部200とサーバ部300との間をネットワーク400で接続し、メッセージの送受信をネットワーク400を介して行う構成を採用することもできる。この場合には、ネットワークを経由したテストの実施が可能となり、リモートで動作する被テストプログラム160に対するテストを実施することができる。
図15に示すテストシステムは、典型的には、図16に示すコンピュータシステムによって実現できる。このコンピュータシステムの構成は、図2に示した構成を、通信装置2006、3006によって、ネットワーク4000を介して接続した構成に相当する。ネットワーク4000は、LANやWAN、インターネット等のネットワークとして構成される。通信装置2006、3006には、例えばイーサネットワークカード、モデル、ターミナルアダプタなど、ネットワーク4000を介して通信を行うものを用いることができる。コンピュータ2000は、テスト作成実施クライアントプログラム2010を読み込んで、これを実行することにより、クライアント部200(図15)として動作する。また、コンピュータ3000は、テスト実施サーバプログラム3010を読み込んで、サーバ部300として動作する。
以上、本発明をその好適な実施形態に基づいて説明したが、本発明のプログラムテスト装置、方法、及び、プログラムは、上記実施形態例にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
本発明は、WS−BPELのようなWebサービスとの連携を記述したワークフローに対するテストの作成・実施といった用途に適用できる。また、ソケットを使ったネットワークプログラミングをした際のプログラムのテストの作成・実施といった用途にも適用可能である。
本発明の第1実施形態のプログラムテストシステムの構成を示すブロック図。 テストシステム10を実現するコンピュータシステムの構成を示すブロック図。 テストシステムの動作手順を示すフローチャート。 被テストプログラム実行部102側がメッセージを送信しテストシナリオ解釈実行部101がメッセージを受信する際の被呼出しサービス模擬部110の動作手順を示すフローチャート。 被テストプログラムと外部サービスとの間のメッセージ交換の様子を示すブロック図。 図5に示す被テストプログラムをテストする際に使用されるテストシナリオを示す図。 本発明の第2実施形態のテストシステムの構成を示すブロック図。 テストシステムの動作手順を示すフローチャート。 被テストプログラム実行部102がメッセージを同期送信して、返信メッセージを受信する際の被呼出しサービス模擬部120の動作手順を示すフローチャート。 被テストプログラム160と外部サービスとの間のメッセージ交換の様子を示す図。 図10に示す被テストプログラムをテストする際に使用されるテストシナリオを示す図。 本発明の第3実施形態のテストシステムの構成を示すブロック図。 被テストプログラム160と外部サービスとの間のメッセージ交換の様子を示す図。 図13に示す被テストプログラムをテストする際に使用されるテストシナリオを示す図。 図1のテストシステムの変形例のテストシステムの構成を示すブロック図。 図15に示すテストシステムを実現するコンピュータシステムの構成を示すブロック図。 非特許文献1に記載されたプログラムテストシステムにおけるテストの様子を示す模式図。 非特許文献1に記載されたプログラムテストシステムのテスト時の動作フローを示すフローチャート。 特許文献1に記載されたテストシステムの概略構成を示すブロック図。 図19に記載のテストシステムの動作手順を示すフローチャート。
符号の説明
10:テストシステム
100:コンピュータ(中央処理装置、プロセッサ、データ処理装置)
101:テストシナリオ解釈実行部
102:被テストプログラム実行部
103:被テストプログラム呼出し部
110、120:被呼出しサービス模擬部
111:メッセージ受理受付部
112:メッセージ待合せ部
113:メッセージ受信部
114:返信メッセージ受付部
115:返信メッセージ待合せ部
150:テストシナリオ
160:被テストプログラム
180:テストシナリオ格納部
190:被テストプログラム格納部
200:クライアント部(コンピュータ)
300:サーバ部(コンピュータ)
400:ネットワーク

Claims (7)

  1. 外部サービスとの間でメッセージの送受信を行いつつ処理を進行する被テストプログラムを、該被テストプログラムとの間で送受信すべきメッセージが記述されたテストシナリオに従ってテストするプログラムテスト装置であって、
    前記テストシナリオを記憶装置から読み込み、該読み込んだテストシナリオを解釈して実行するテストシナリオ解釈実行部であって、前記テストシナリオに従って前記被テストプログラムを呼び出し元とするメッセージを受信する際には、メッセージを受理する旨のメッセージ受理信号を送信し、該メッセージ受理信号を送信した後、前記被テストプログラムを呼び出し元とするメッセージを受信するまで前記テストシナリオの進行を停止し、該メッセージを受信すると、前記テストシナリオの進行を再開し、前記テストシナリオに従って前記外部サービスを呼び出し元とするメッセージを送信する際には、当該外部サービスを呼び出し元とするメッセージを送信し、該外部サービスを呼び出し元とするメッセージに対する返信メッセージ又は該メッセージを受信した旨を受信すると前記テストシナリオを進行させるテストシナリオ解釈実行部と、
    前記テストシナリオ解釈実行部より前記テストシナリオが読み込まれると、前記被テストプログラムを読み込み、該読み込んだ被テストプログラムを実行する被テストプログラム実行部であって、該被テストプログラムに従って、少なくとも前記被テストプログラムを呼び出し元とするメッセージを送信し、該メッセージが前記テストシナリオ解釈実行部に送信された後、該メッセージを送信した旨を受信するまで、被テストプログラムの進行を停止し、該メッセージを送信した旨を受信すると、該被テストプログラムの進行を再開し、前記外部サービスを呼び出し元とするメッセージを受信すると該被テストプログラムに従って、外部サービスを呼び出し元とするメッセージに対する返信メッセージを送信する被テストプログラム実行部と、
    前記メッセージ受理信号を受信し記憶するメッセージ受理受付部と、前記被テストプログラム実行部から送信された前記被テストプログラムを呼び出し元とするメッセージを受信し記憶するメッセージ受信部と、前記メッセージ受理受付部が前記メッセージ受理信号を受信し、かつ、前記メッセージ受信部が前記被テストプログラムを呼び出し元とするメッセージを受信すると、前記メッセージ受信部が記憶したメッセージを前記テストシナリオ解釈実行部に送信し、該メッセージを送信した旨を前記被テストプログラム実行部に送信するメッセージ待合せ部とを有する被呼出しサービス模擬部と、
    を備えることを特徴とするプログラムテスト装置。
  2. 前記メッセージ待合せ部は、前記メッセージ受理受付部によるメッセージ受理信号の受信、及び、前記メッセージ受信部による前記被テストプログラムを呼び出し元とするメッセージの受信の何れか一方が発生してから、所定時間内に他方が発生しないと、前記テストシナリオ解釈実行部に、テストに失敗した旨を送信する、請求項1に記載のプログラムテスト装置。
  3. 前記メッセージ待ち合わせ部は、前記被テストプログラムを呼び出し元とするメッセージが、前記被テストプログラムを呼び出し元とするメッセージに対する返信メッセージを要求するメッセージである場合、前記メッセージ受理受付部が前記メッセージ受理信号を受信し、かつ、前記メッセージ受信部が前記被テストプログラムを呼び出し元とするメッセージを受信すると、該メッセージを送信した旨を、前記被テストプログラム実行部に送信するするのに代えて、前記メッセージ受信部に送信し、
    前記被呼出しサービス模擬部は、前記テストシナリオ解釈実行部から送信された、前記被テストプログラムを呼び出し元とするメッセージに対する返信メッセージを受信し記憶する返信メッセージ受信部と、前記メッセージ受信部が前記メッセージを送信した旨を受信し、かつ、前記返信メッセージ受信部が前記返信メッセージを受信すると、前記返信メッセージ受信部が記憶した返信メッセージを前記被テストプログラム実行部に送信し、該返信メッセージを送信した旨を前記テストシナリオ解釈実行部に送信する返信メッセージ待合せ部とを更に有し、
    前記被テストプログラム実行部は、前記メッセージ受信部に、前記被テストプログラムを呼び出し元とするメッセージであって、該被テストプログラムを呼び出し元とするメッセージに対する返信メッセージを要求するメッセージを送信した後、前記返信メッセージ待合せ部から返信メッセージを受信するまで、被テストプログラムの進行を停止し、該返信メッセージを受信すると、被テストプログラムの進行を再開し、
    前記テストシナリオ解釈実行部は、前記返信メッセージ受信部に返信メッセージを送信した後、前記返信メッセージ待合せ部から該返信メッセージを送信した旨を受信するまで、テストシナリオの進行を停止し、該返信メッセージを送信した旨を受信すると、該被テストプログラムの進行を再開する
    ことを特徴とする請求項1又は2に記載のプログラムテスト装置。
  4. 前記テストシナリオ解釈実行部は、前記被テストプログラムを呼び出し元とするメッセージに対する返信メッセージの送信後、所定時間以内に、返信メッセージ信した旨を受信しないときには、テストに失敗した旨を出力する、請求項に記載のプログラムテスト装置。
  5. 前記テストシナリオ解釈実行部は、テストシナリオを最後まで進行すると、テストに成功した旨を出力する、請求項1〜の何れか一に記載のプログラムテスト装置。
  6. 外部サービスとの間でメッセージの送受信を行いつつ処理を進行する被テストプログラムを、該被テストプログラムとの間で送受信すべきメッセージが記述されたテストシナリオに従ってテストするプログラムテスト装置であって、前記テストシナリオを記憶装置から読み込み、該読み込んだテストシナリオを解釈して実行するテストシナリオ解釈実行部と、前記テストシナリオ解釈実行部により前記テストシナリオの実行が開始されると、前記被テストプログラムを読み込み、該読み込んだ被テストプログラムを実行する被テストプログラム実行部と、被テストプログラムに呼び出される外部サービスを模擬し、メッセージ受理受付部と、メッセージ受信部と、メッセージ待合せ部とを有する被呼出しサービス模擬部とを備えるプログラムテスト装置を用いてテストするプログラムテスト方法であって、
    前記テストシナリオ解釈実行部が、前記テストシナリオに従って前記被テストプログラムを呼び出し元とするメッセージを受信する際には、メッセージを受理する旨のメッセージ受理信号を送信し、該メッセージ受理信号を送信した後、前記被テストプログラムを呼び出し元とするメッセージを受信するまで前記テストシナリオの進行を停止し、該メッセージを受信すると、前記テストシナリオの進行を再開し、前記テストシナリオに従って前記外部サービスを呼び出し元とするメッセージを送信する際には、当該外部サービスを呼び出し元とするメッセージを送信し、該外部サービスを呼び出し元とするメッセージに対する返信メッセージ又は該メッセージを受信した旨を受信すると前記テストシナリオを進行させるステップと、
    前記被テストプログラム実行部が、前記テストシナリオ解釈実行部より前記テストシナリオが読み込まれると、前記被テストプログラムを読み込み、該読み込んだ被テストプログラムを実行する被テストプログラム実行部であって、該被テストプログラムに従って、少なくとも前記被テストプログラムを呼び出し元とするメッセージを送信し、該メッセージが前記テストシナリオ解釈実行部に送信された後、該メッセージを送信した旨を受信するまで、被テストプログラムの進行を停止し、該メッセージを送信した旨を受信すると、該被テストプログラムの進行を再開し、前記外部サービスを呼び出し元とするメッセージを受信すると、該被テストプログラムに従って、該外部サービスを呼び出し元とするメッセージに対する返信メッセージを送信するステップと、
    前記メッセージ受理受付部が、前記メッセージ受理信号を受信し記憶するステップと、
    前記メッセージ受信部が、前記被テストプログラム実行部から送信された前記被テストプログラムを呼び出し元とするメッセージを受信し記憶するステップと、
    前記メッセージ待合せ部が、前記メッセージ受理受付部が前記メッセージ受理信号を受信し、かつ、前記メッセージ受信部が前記被テストプログラムを呼び出し元とするメッセージを受信すると、前記メッセージ受信部が記憶したメッセージを前記テストシナリオ解釈実行部に送信し、該メッセージを送信した旨を前記被テストプログラム実行部に送信するステップと、
    を備えたことを特徴とするプログラムテスト方法。
  7. コンピュータを、外部サービスとの間でメッセージの送受信を行いつつ処理を進行する被テストプログラムを、該被テストプログラムとの間で送受信すべきメッセージが記述されたテストシナリオに従ってテストするプログラムテスト装置として機能させるプログラムであって、前記コンピュータ
    前記テストシナリオを記憶装置から読み込み、該読み込んだテストシナリオを解釈して実行するテストシナリオ解釈実行部であって、前記テストシナリオに従って前記被テストプログラムを呼び出し元とするメッセージを受信する際には、メッセージを受理する旨のメッセージ受理信号を送信し、該メッセージ受理信号を送信した後、前記被テストプログラムを呼び出し元とするメッセージを受信するまで前記テストシナリオの進行を停止し、該メッセージを受信すると、前記テストシナリオの進行を再開し、前記テストシナリオに従って前記外部サービスを呼び出し元とするメッセージを送信する際には、当該外部サービスを呼び出し元とするメッセージを送信し、該外部サービスを呼び出し元とするメッセージに対する返信メッセージ又は該メッセージを受信した旨を受信すると前記テストシナリオを進行させるテストシナリオ解釈実行部、
    前記テストシナリオ解釈実行部より前記テストシナリオが読み込まれると、前記被テストプログラムを読み込み、該読み込んだ被テストプログラムを実行する被テストプログラム実行部であって、該被テストプログラムに従って、少なくとも前記被テストプログラムを呼び出し元とするメッセージを送信し、該メッセージが前記テストシナリオ解釈実行部に送信された後、該メッセージを送信した旨を受信するまで、被テストプログラムの進行を停止し、該メッセージを送信した旨を受信すると、該被テストプログラムの進行を再開し、前記外部サービスを呼び出し元とするメッセージを受信すると、該被テストプログラムに従って、該外部サービスを呼び出し元とするメッセージに対する返信メッセージを送信する被テストプログラム実行部、
    前記メッセージ受理信号を受信し記憶するメッセージ受理受付部と、前記被テストプログラム実行部から送信された前記被テストプログラムを呼び出し元とするメッセージを受信し記憶するメッセージ受信部と、前記メッセージ受理受付部が前記メッセージ受理信号を受信し、かつ、前記メッセージ受信部が前記被テストプログラムを呼び出し元とするメッセージを受信すると、前記メッセージ受信部が記憶したメッセージを前記テストシナリオ解釈実行部に送信し、該メッセージを送信した旨を前記被テストプログラム実行部に送信するメッセージ待合せ部とを有する被呼出しサービス模擬部、
    として機能させることを特徴とするプログラム。
JP2005210292A 2005-07-20 2005-07-20 プログラムテスト装置、方法、及び、プログラム Expired - Fee Related JP4696744B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005210292A JP4696744B2 (ja) 2005-07-20 2005-07-20 プログラムテスト装置、方法、及び、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005210292A JP4696744B2 (ja) 2005-07-20 2005-07-20 プログラムテスト装置、方法、及び、プログラム

Publications (2)

Publication Number Publication Date
JP2007026306A JP2007026306A (ja) 2007-02-01
JP4696744B2 true JP4696744B2 (ja) 2011-06-08

Family

ID=37786950

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005210292A Expired - Fee Related JP4696744B2 (ja) 2005-07-20 2005-07-20 プログラムテスト装置、方法、及び、プログラム

Country Status (1)

Country Link
JP (1) JP4696744B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009037519A (ja) * 2007-08-03 2009-02-19 Toshiba Corp テストシナリオ生成装置、株取引テストシステム及びコンピュータプログラム
WO2009150788A1 (ja) * 2008-06-10 2009-12-17 パナソニック株式会社 組み込み機器におけるapi評価システム
JP2012080378A (ja) * 2010-10-04 2012-04-19 Nec Commun Syst Ltd プロトコル試験装置、プロトコル試験方法およびプロトコル試験プログラム
JP2015170203A (ja) * 2014-03-07 2015-09-28 富士通株式会社 検証方法、検証プログラムおよび検証装置
KR102598881B1 (ko) * 2022-01-25 2023-11-06 한화시스템 주식회사 소프트웨어 시험 장치 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000259450A (ja) * 1999-03-09 2000-09-22 Toshiba Corp オブジェクト指向メッセージ通信テスト装置及び記憶媒体
JP2002073585A (ja) * 2000-08-29 2002-03-12 Nec Software Hokuriku Ltd デバッグ支援装置、デバッグ支援方法、および記録媒体
JP2002366387A (ja) * 2001-06-13 2002-12-20 Hitachi Ltd ソフトウェアプログラムの自動テストシステム
JP2005070835A (ja) * 2003-08-25 2005-03-17 Fujitsu Ltd テスト支援プログラムおよびテスト支援方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05100906A (ja) * 1991-10-04 1993-04-23 Hokuriku Nippon Denki Software Kk オンラインプログラムテスト支援装置
JPH0628219A (ja) * 1992-07-10 1994-02-04 Matsushita Electric Ind Co Ltd プログラム動作試験装置
JPH08263322A (ja) * 1995-03-20 1996-10-11 Oki Electric Ind Co Ltd オブジェクト指向プログラムの試験方法および試験装置
JPH08314760A (ja) * 1995-05-23 1996-11-29 Hitachi Ltd プログラム開発支援装置
JPH0973425A (ja) * 1995-09-04 1997-03-18 Mitsubishi Electric Corp クライアントシミュレータ

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000259450A (ja) * 1999-03-09 2000-09-22 Toshiba Corp オブジェクト指向メッセージ通信テスト装置及び記憶媒体
JP2002073585A (ja) * 2000-08-29 2002-03-12 Nec Software Hokuriku Ltd デバッグ支援装置、デバッグ支援方法、および記録媒体
JP2002366387A (ja) * 2001-06-13 2002-12-20 Hitachi Ltd ソフトウェアプログラムの自動テストシステム
JP2005070835A (ja) * 2003-08-25 2005-03-17 Fujitsu Ltd テスト支援プログラムおよびテスト支援方法

Also Published As

Publication number Publication date
JP2007026306A (ja) 2007-02-01

Similar Documents

Publication Publication Date Title
US7284155B2 (en) Remote software support agent system with electronic documents for troubleshooting
CN108196915B (zh) 基于应用容器引擎的代码处理方法、设备及存储介质
US20070033441A1 (en) System for and method of multi-location test execution
CN109656538A (zh) 应用程序的生成方法、装置、系统、设备和介质
US20080209405A1 (en) Distributed debugging for a visual programming language
CN107241315B (zh) 银行网关接口的接入方法、装置及计算机可读存储介质
JP2005531049A (ja) アプリケーションの自動インストール
CN110011875B (zh) 拨测方法、装置、设备及计算机可读存储介质
JP4696744B2 (ja) プログラムテスト装置、方法、及び、プログラム
US7310798B1 (en) Simulator tool for testing software in development process
JP2013080404A (ja) クライアントでJavaメソッドを呼び出すシステム、コンピュータ、方法及びプログラム
CN103608801A (zh) 演示软件自动化服务
CN107645476B (zh) 请求处理方法和装置
CN112988588B (zh) 客户端软件调试方法、装置、存储介质及电子设备
US20020169863A1 (en) Multi-client to multi-server simulation environment control system (JULEP)
CN112825525B (zh) 用于处理事务的方法和装置
US11720089B2 (en) Decoupled load generation architecture
JP2016071398A (ja) テスト実行装置、テスト実行方法およびコンピュータプログラム
CN111708568B (zh) 一种组件化开发解耦方法及终端
JP2010224870A (ja) ウェブログオン制御方法とシステムおよびプログラム
CN112395194B (zh) 一种接入测试平台的方法和装置
CN114691486A (zh) 程序调试方法、装置及计算机设备
Wannipurage et al. Implementing a flexible, fault tolerant job management system for science gateways
CN113230661A (zh) 数据同步方法、装置、计算机可读介质及电子设备
JP6215033B2 (ja) テスト制御装置、通信システム、テスト制御方法、及びテスト制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080611

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091228

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20100223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100906

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100928

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101227

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110105

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110214

R150 Certificate of patent or registration of utility model

Ref document number: 4696744

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees