JP2007026306A - Program test device and method, and program - Google Patents

Program test device and method, and program Download PDF

Info

Publication number
JP2007026306A
JP2007026306A JP2005210292A JP2005210292A JP2007026306A JP 2007026306 A JP2007026306 A JP 2007026306A JP 2005210292 A JP2005210292 A JP 2005210292A JP 2005210292 A JP2005210292 A JP 2005210292A JP 2007026306 A JP2007026306 A JP 2007026306A
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.)
Granted
Application number
JP2005210292A
Other languages
Japanese (ja)
Other versions
JP4696744B2 (en
Inventor
Yoshiharu Nishimura
祥治 西村
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/en
Publication of JP2007026306A publication Critical patent/JP2007026306A/en
Application granted granted Critical
Publication of JP4696744B2 publication Critical patent/JP4696744B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a program test device for raising readability in a test scenario which is used in the test of a program to be tested. <P>SOLUTION: A part 110 for simulating a service to be called simulates the external service to be called from the program to be tested. A part 102 for performing the program to be tested performs the program 160 to be tested. A test scenario analysis performing part 101 transmits message reception to the part 110 for simulating the service to be called when it is described in the test scenario 150 that a message is to be received from the program to be tested. When a message reception receiving part receives the message reception from the test scenario analysis performing part 101 and also receives the message from the part 102 for performing the program to be tested, a message waiting part 112 transmits the received message to the test scenario analysis performing part 101. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、プログラムテスト装置、方法、及び、プログラムに関し、更に詳しくは、メッセージ交換により実行を進行させるプログラムをテストするプログラムテスト装置、方法、及び、プログラムに関する。   The present invention relates to a program test apparatus, method, and program, and more particularly to a program test apparatus, method, and program for testing a program whose execution proceeds by exchanging messages.

他のサービスやモジュールを呼び出し、呼び出したサービス等との間でメッセージ交換を行って処理を進行するプログラムがある。このようなプログラムをテストする技術としては、非特許文献1に記載された技術がある。図17は、非特許文献1に記載されたプログラムテストシステムにおけるテストの様子を示している。この技術では、テストを実行するテストプログラム501と、被テストプログラムに呼び出されるオブジェクトの動作を模擬する模擬オブジェクト503とを用いて、被テストプログラム502をテストする。   There are programs that call other services and modules, exchange messages with the called services, etc., and proceed with processing. As a technique for testing such a program, there is a technique described in Non-Patent Document 1. FIG. 17 shows a state of the test in the program test system described in Non-Patent Document 1. In this technique, a program under test 502 is tested using a test program 501 that executes a test and a simulated object 503 that simulates the operation of an object called by the program under test.

図18は、非特許文献1に記載されたプログラムテストシステムのテスト時の動作フローを示している。まず、テスト実施に先立って、模擬オブジェクト503に、被テストプログラムから呼び出された場合にどのような値を返すかなどの振る舞いを設定する(ステップM1)。次いで、被テストプログラム502を実行し(ステップM2)、模擬オブジェクト503が正しく呼び出されたかや、期待した値が渡されたかなどを検証する(ステップM3)。   FIG. 18 shows an operation flow during the test of the program test system described in Non-Patent Document 1. First, prior to test execution, a behavior such as what value is returned to the simulated object 503 when called from the program under test is set (step M1). Next, the program under test 502 is executed (step M2), and it is verified whether the simulated object 503 has been correctly called and an expected value has been passed (step M3).

ところで、テストシナリオを用いて試験対象のプログラムをテストする技術としては、特許文献1に記載された技術がある。図19は、特許文献1に記載されたテストシステムの概略構成を示している。この技術では、テストシナリオ504と、テストシナリオを実行するテストプログラム505とを用い、GUI環境における被テストプログラム506の動作をテストする。   By the way, as a technique for testing a test target program using a test scenario, there is a technique described in Patent Document 1. FIG. 19 shows a schematic configuration of the test system described in Patent Document 1. In this technique, a test scenario 504 and a test program 505 that executes the test scenario are used to test the operation of the program under test 506 in the GUI environment.

図20は、図19に記載のテストシステムの動作手順を示している。テストプログラム505は、テストシナリオ504に従って、被テストプログラム506にマウス操作などの入力を与える(ステップG1)。被テストプログラム506は、入力に対する結果として、画面遷移などの出力をテストプログラム505に返す。テストプログラム505は、テストシナリオ504に従って、被テストプログラム506が期待した出力を返したか否かを検証する(ステップG2)。次いで、テストシナリオ504を最後まで実行したか否かを判断し(ステップG3)、最後まで実行していないときには、ステップG1に戻ってテストを続行する。   FIG. 20 shows an operation procedure of the test system shown in FIG. The test program 505 gives an input such as a mouse operation to the test program 506 in accordance with the test scenario 504 (step G1). The program under test 506 returns an output such as a screen transition to the test program 505 as a result of the input. The test program 505 verifies whether the program under test 506 has returned the expected output according to the test scenario 504 (step G2). Next, it is determined whether or not the test scenario 504 has been executed to the end (step G3). When the test scenario 504 has not been executed to the end, the process returns to step G1 to continue the test.

特開2002−366387号公報JP 2002-366387 A エンドゥ テスティング:ユニット テスティング ウィズ モック オブジェクツ(Endo−Testing:Unit Testing with Mock Objects)(URL http://www.connextra.com/about/Us/mockobjects.pdf)Endo Testing: Unit Testing with Mock Objects (URL http://www.connextra.com/about/Us/mockobjects.pdf)

非特許文献1に記載の技術では、被テストプログラムから呼び出される模擬オブジェクトの振る舞いを、被テストプログラムを実行する前に設定する必要がある。このため、テストプログラム上で、ある事象が起こった後のことを、起こる前に書かなければならないという問題がある。また、模擬オブジェクトの振る舞いの設定と、その検証とが離れて書かれることで断片化しやすくなる。このように、特許文献1では、ある手順の流れをテストしたいにもかかわらず、テストプログラムがテスト手順の時系列とは異なる順で書かれ、或いは、断片化されることで、テストプログラムの可読性が悪くなり、メンテナンス性が悪いという問題がある。   In the technique described in Non-Patent Document 1, it is necessary to set the behavior of the simulated object called from the program under test before executing the program under test. For this reason, there is a problem that after a certain event occurs, it must be written on the test program before it occurs. In addition, the behavior setting of the simulated object and the verification thereof are written separately to facilitate fragmentation. As described above, in Patent Document 1, the test program is written in a different order from the time sequence of the test procedure or is fragmented even though it is desired to test the flow of a certain procedure, so that the readability of the test program is improved. There is a problem that the maintenance becomes worse.

また、非特許文献1に記載の技術では、模擬オブジェクトを呼び出して実行を進行することで、最終的にテストプログラムが実行を完了したか否かをテストすることはできる。しかし、テストプログラムが複数のサービス(模擬オブジェクト)を呼び出す場合には、どのような順序で模擬オブジェクトが呼び出されたかを容易に知ることができないという問題がある。   In the technique described in Non-Patent Document 1, it is possible to test whether or not the test program has finally completed execution by calling a simulated object and executing the execution. However, when the test program calls a plurality of services (simulated objects), there is a problem that it is difficult to know in what order the simulated objects are called.

特許文献1に記載の技術は、被テストプログラムに入力を与えて、与えられた入力に対して返された出力を検証するものである。このため、被テストプログラムに入力を与えて、出力を返すまでの間に、被テストプログラムが他のサービスからの入力を受け付け、或いは、他のサービスを呼び出す場合には、その受付順序や呼出し順序まで検証することができないという問題がある。すなわち、特許文献1では、被テストプログラムがサービスを呼び出し、或いは、サービスから呼び出されることで実行が進行するものである場合、そのメッセージ交換順序に対するテストを行うことはできない。   The technique described in Japanese Patent Laid-Open No. 2004-228561 provides an input to a program under test and verifies an output returned for the given input. For this reason, when the program under test accepts input from other services or calls other services before the input is given to the program under test and the output is returned, the order of acceptance and the order of invocation There is a problem that it cannot be verified. That is, in Patent Document 1, when the program under test calls a service or when execution proceeds by being called from a service, it is not possible to test the message exchange order.

上記各従来技術では、被テストプログラムへの呼び出し順に関しては考慮されているが、被テストプログラムからの呼び出し順に関しては十分に考慮されていない。このため、被テストプログラムによる外部サービスの呼出しと、外部サービスによる被テストプログラムの呼出しとが混在するときには、その順序が設計した通りであるか否かを検証することが困難であるという問題がある。   In each of the above prior arts, the order of calls to the program under test is considered, but the order of calls from the program under test is not fully considered. For this reason, when the call of the external service by the program under test and the call of the program under test by the external service are mixed, there is a problem that it is difficult to verify whether the order is as designed. .

本発明は、上記従来技術の問題点を解消し、サービス等を呼び出し、或いは、サービス等に呼び出されて処理が進捗する被テストプログラムについて、テストの内容の可読性やテスト自身のメンテナンス性が高いプログラムテスト装置、方法、及び、プログラムを提供することを目的とする。   The present invention solves the above-mentioned problems of the prior art and calls a service or the like, or a program under test whose processing progresses by being called by a service or the like, a program with high readability of the test content and high maintainability of the test itself It is an object to provide a test apparatus, method, and program.

また、本発明は、被テストプログラムによる呼出しと、サービス等による被テストプログラムの呼出しとが混在する場合でも、テストシナリオに沿った順序で呼出しが行われていることを容易に検証することができるプログラムテスト装置、方法、及び、プログラムを提供することを目的とする。   Further, the present invention can easily verify that calls are made in the order according to the test scenario even when calls by the program under test and calls of the program under test by services or the like are mixed. It is an object to provide a program test apparatus, method, and program.

上記目的を達成するために、本発明のプログラムテスト装置は、外部サービスとの間でメッセージの送受信を行いつつ処理を進行する被テストプログラムを、該被テストプログラムとの間で送受信すべきメッセージが記述されたテストシナリオに従ってテストするプログラムテスト装置であって、前記テストシナリオを記憶装置から読み込み、該読み込んだテストシナリオを解釈して実行するテストシナリオ解釈実行部であって、前記テストシナリオに従って前記被テストプログラムを呼び出し元とするメッセージを受信する際には、メッセージを受理する旨のメッセージ受理信号を送信するテストシナリオ解釈実行部と、前記被テストプログラムを読み込み、該読み込んだ被テストプログラムを実行する被テストプログラム実行部であって、少なくとも前記被テストプログラムを呼び出し元とするメッセージを送信する被テストプログラム実行部と、前記メッセージ受理信号を受信し記憶するメッセージ受理受付部と、前記被テストプログラム実行部から送信されたメッセージを受信し記憶するメッセージ受信部と、前記メッセージ受理受付部がメッセージ受理信号を受信し、かつ、前記メッセージ受信部がメッセージを受信すると、前記メッセージ受信部が記憶したメッセージを前記テストシナリオ解釈実行部に送信するメッセージ待合せ部とを有する被呼出しサービス模擬部とを備えることを特徴とする。   In order to achieve the above object, the program test apparatus according to the present invention provides a program under test for transmitting / receiving a message to / from an external service and a message to be transmitted / received to / from the program under test. A program test apparatus for testing according to a described test scenario, comprising: a test scenario interpretation execution unit that reads the test scenario from a storage device, interprets the read test scenario, and executes the test scenario. When receiving a message having a test program as a caller, a test scenario interpretation execution unit for transmitting a message acceptance signal for accepting the message, and reading the test target program, and executing the read test target program The program under test execution part A test program execution unit that transmits at least a message having the program under test as a caller; a message reception reception unit that receives and stores the message acceptance signal; and a message transmitted from the test program execution unit. When the message reception unit to store and the message reception reception unit receive the message reception signal and the message reception unit receives the message, the message stored by the message reception unit is transmitted to the test scenario interpretation execution unit. And a called service simulation unit having a message waiting unit.

本発明のプログラムテスト方法は、外部サービスとの間でメッセージの送受信を行いつつ処理を進行する被テストプログラムを、該被テストプログラムとの間で送受信すべきメッセージが記述されたテストシナリオを解釈実行するテストシナリオ解釈実行部と、被テストプログラムに呼び出される外部サービスを模擬する被呼出しサービス模擬部とを備えるテスト装置を用いてテストするプログラムテスト方法であって、前記テストシナリオ解釈実行部が、前記テストシナリオを記憶装置から読み込み、該読み込んだテストシナリオに従って、前記被テストプログラムを呼び出し元とするメッセージを受理する旨のメッセージ受理信号を送信するステップと、前記被呼出しサービス模擬部が、前記テストシナリオ解釈実行部が送信したメッセージ受理信号を受信し記憶するステップと、前記被呼出しサービス模擬部が、前記被テストプログラムを呼び出し元とするメッセージを受信し記憶するステップと、前記被呼出しサービス模擬部が、前記メッセージ受理信号受信ステップでメッセージ受理信号を受信し、かつ、前記メッセージ受信ステップでメッセージを受信すると、前記記憶したメッセージを前記テストシナリオ解釈実行部に送信するステップと、前記テストシナリオ解釈実行部が、前記被呼出しサービス模擬部を介して受信したメッセージが、テストシナリオで示されるメッセージと一致するか否かを検査するステップとを備えたことを特徴とする。   The program test method of the present invention interprets and executes a test scenario in which a message to be transmitted / received to / from the test target program is described for a program under test that performs processing while transmitting / receiving messages to / from an external service. A test scenario interpretation execution unit that performs testing using a test apparatus that includes a test service simulation unit that simulates an external service that is called by the test target program, wherein the test scenario interpretation execution unit includes the test scenario interpretation execution unit, A step of reading a test scenario from a storage device and transmitting a message acceptance signal for accepting a message having the program under test as a caller in accordance with the read test scenario; Message sent by the interpreter Receiving and storing a received signal, a step in which the called service simulating unit receives and stores a message having the program under test as a calling source, and the called service simulating unit receives the message receiving signal. Receiving a message acceptance signal in a step and receiving the message in the message reception step, transmitting the stored message to the test scenario interpretation execution unit; and the test scenario interpretation execution unit includes the called service. And a step of checking whether or not the message received via the simulation unit matches the message indicated in the test scenario.

本発明のプログラムは、外部サービスとの間でメッセージの送受信を行いつつ処理を進行する被テストプログラムを、該被テストプログラムとの間で送受信すべきメッセージが記述されたテストシナリオに従ってテストする処理を、コンピュータに実行させるプログラムであって、前記コンピュータに、前記テストシナリオを記憶装置から読み込み、該読み込んだテストシナリオに従って、前記被テストプログラムを呼び出し元とするメッセージを受理する旨のメッセージ受理信号を発生する処理と、前記被テストプログラムを呼び出し元とするメッセージを受信し記憶する処理と、前記メッセージ受理信号が発生し、かつ、前記被テストプログラムを呼び出し元とするメッセージを受信すると、前記記憶したメッセージと、テストシナリオに記述されたメッセージとが一致するか否かを検査する処理とを備えることを特徴とする。   The program of the present invention performs a process for testing a program under test that proceeds with processing while transmitting / receiving a message to / from an external service in accordance with a test scenario in which a message to be transmitted / received to / from the program under test is described. A program to be executed by a computer, wherein the computer reads the test scenario from a storage device and generates a message acceptance signal for accepting a message with the program under test as a caller in accordance with the read test scenario A process for receiving and storing a message with the program under test as a caller, and when the message acceptance signal is generated and a message with the program under test as a caller is received, the stored message And a test scenario Characterized in that it comprises a processing and written message checks whether match.

本発明のプログラムテスト装置、方法、及び、プログラムでは、テストシナリオ側は、テストシナリオに従って、被テストプログラム側が呼び出し元となるメッセージを受信する旨のメッセージ受理信号を送信(発生)し、被テストプログラムによって送信されたメッセージの受信と、メッセージ受理信号との双方が揃うと、被テストプログラム側から送信されたメッセージが、テストシナリオ側に引き渡される。このように、テストシナリオ側は、メッセージ受理信号により、被テストプログラム側が呼び出し元となるメッセージを能動的に受信できるため、そのようなメッセージについても、メッセージの受信順序を、テストシナリオ側で制御することができる。従って、テストシナリオ側からの呼出しと、被テストプログラム側からの呼出しとを分離することなく同じスキームで実施でき、テストシナリオの断片化を避けて、テストシナリオの可読性やメンテナンス性を向上することができる。また、テストシナリオで示されるメッセージ送受信順序が、そのまま被テストプログラムによるメッセージ送受信の順序となるため、テストシナリオの構成が理解しやすくなる。   In the program test apparatus, method, and program of the present invention, the test scenario side transmits (generates) a message acceptance signal indicating that the program under test side receives a call source message according to the test scenario, and the program under test When both the reception of the message transmitted by the message and the message acceptance signal are completed, the message transmitted from the program under test side is delivered to the test scenario side. In this way, the test scenario side can actively receive the call source message by the program under test side based on the message acceptance signal. Therefore, the test scenario side controls the reception order of such messages. be able to. Therefore, the call from the test scenario side and the call from the program under test side can be executed in the same scheme without separation, and test scenario fragmentation can be avoided and test scenario readability and maintainability can be improved. it can. Further, since the message transmission / reception order shown in the test scenario is the same as the order of message transmission / reception by the program under test, the configuration of the test scenario is easily understood.

本発明のプログラムテスト装置では、前記メッセージ待合せ部は、前記メッセージ受理受付部によるメッセージ受理信号の受信、及び、前記メッセージ受信部によるメッセージの受信の何れか一方が発生してから、所定時間内に他方が発生しないと、前記テストシナリオ解釈実行部に、テストに失敗した旨を送信する構成を採用できる。この場合、例えばテストの進行が止まったままとなる事態を避けることができる。   In the program test apparatus of the present invention, the message queuing unit may receive the message reception signal by the message reception reception unit or the message reception by the message reception unit within a predetermined time. If the other does not occur, a configuration can be adopted in which a test failure is transmitted to the test scenario interpretation execution unit. In this case, for example, a situation in which the progress of the test remains stopped can be avoided.

本発明のプログラムテスト装置では、前記メッセージ待合せ部は、前記テストシナリオ解釈実行部にメッセージを送信すると、被テストプログラムによる呼出しが完了した旨を前記被テストプログラム実行部に送信する構成を採用できる。また、前記被テストプログラム実行部は、前記被呼出しサービス模擬部にメッセージを送信した後、該被呼出しサービス模擬部から前記呼出しが完了した旨を受信するまで、被テストプログラムの進行を停止する構成を採用できる。この場合、被テストプログラム実行部は、呼出しを完了したことを確認した後に、次の処理を開始できる。   In the program test apparatus of the present invention, the message queuing unit can transmit a message that the call by the test program is completed to the test program execution unit when the message is transmitted to the test scenario interpretation execution unit. The program under test execution unit is configured to stop the progress of the program under test until a message indicating that the call is completed is received from the callee service simulation unit after transmitting a message to the callee service simulation unit. Can be adopted. In this case, the program under test execution unit can start the next process after confirming that the call has been completed.

本発明のプログラムテスト装置では、前記被呼出しサービス模擬部は、前記テストシナリオ解釈実行部から送信された、前記被テストプログラムを呼び出し元とするメッセージに対する返信メッセージを受信し記憶する返信メッセージ受信部と、前記メッセージ待合せ部が被テストプログラムを呼び出し元とするメッセージをテストシナリオ解釈実行部に送信し、かつ、前記返信メッセージ受信部が前記返信メッセージを受信すると、前記返信メッセージ受信部が記憶した返信メッセージを前記被テストプログラム実行部に送信する返信メッセージ待合せ部とを更に有する構成を採用できる。被テストプログラム側からの呼出しに対して、外部サービス側から返信メッセージが必要な場合がある。この場合には、被呼出しサービス模擬部において、テストシナリオ解釈実行部へメッセージを送信した後に、テストシナリオ解釈実行部から送信される返信メッセージを待ち合わせることで、被テストプログラム側へ返信メッセージを送信することができる。このようにすることで、返信メッセージをテストシナリオで指定することができ、被呼出しサービス模擬部にあらかじめ返信メッセージを設定する場合に比して、テストシナリオの可読性を向上することができる。   In the program test apparatus of the present invention, the called service simulation unit receives and stores a reply message sent from the test scenario interpretation execution unit with respect to a message having the program under test as a caller; When the message queuing unit sends a message having the program under test as a caller to the test scenario interpretation executing unit, and the reply message receiving unit receives the reply message, the reply message stored by the reply message receiving unit It is possible to adopt a configuration further including a reply message queuing unit that transmits a message to the test program execution unit. A reply message may be required from the external service side in response to a call from the program under test side. In this case, the called service simulation unit transmits a message to the test scenario interpretation execution unit, and then waits for a reply message transmitted from the test scenario interpretation execution unit, thereby transmitting the reply message to the program under test side. be able to. By doing so, the reply message can be specified in the test scenario, and the readability of the test scenario can be improved as compared with the case where the reply message is set in advance in the called service simulation unit.

本発明のプログラムテスト装置では、前記被テストプログラム実行部は、前記被呼出しサービス模擬部にメッセージを送信した後、該被呼出しサービス模擬部から前記返信メッセージを受信するまで、被テストプログラムの進行を停止する構成を採用できる。また、前記返信メッセージ待合せ部は、前記被テストプログラム実行部に返信メッセージを送信すると、前記テストシナリオ解釈実行部に、返信メッセージの送信が完了した旨を送信する構成を採用できる。この場合、被テストプログラム実行部は、返信メッセージの受信によって呼出しを完了し、次の処理を開始できる。   In the program test apparatus of the present invention, the program under test execution unit transmits the message to the called service simulation unit and then proceeds with the progress of the program under test until the reply message is received from the called service simulation unit. A configuration to stop can be adopted. Further, the reply message queuing unit may transmit a message indicating that transmission of the reply message is completed to the test scenario interpretation executing unit when the reply message is transmitted to the program under test executing unit. In this case, the program under test execution unit can complete the call by receiving the reply message and start the next process.

本発明のプログラムテスト装置では、前記テストシナリオ解釈実行部は、前記被呼出しサービス模擬部に返信メッセージを送信した後、該被呼出しサービス模擬部から前記返信メッセージの送信が完了した旨を受信するまで、テストシナリオの進行を停止する構成を採用できる。この場合、テストシナリオ解釈実行部は、返信メッセージが送信されたことを確認した後に、テストシナリオの進行を再開できる。   In the program test apparatus of the present invention, after the test scenario interpretation execution unit transmits a reply message to the called service simulation unit, the test scenario interpretation execution unit receives from the called service simulation unit that the transmission of the reply message is completed. A configuration that stops the progress of the test scenario can be adopted. In this case, the test scenario interpretation execution unit can resume the progress of the test scenario after confirming that the reply message has been transmitted.

本発明のプログラムテスト装置では、前記テストシナリオ解釈実行部は、前記返信メッセージの送信後、所定時間以内に、前記返信メッセージの送信が完了した旨を受信しないときには、テストに失敗した旨を出力する構成を採用できる。この場合、テストシナリオの進行が停止したままになる事態を回避できる。   In the program test apparatus according to the present invention, the test scenario interpretation execution unit outputs a test failure when not receiving the completion of the transmission of the reply message within a predetermined time after the transmission of the reply message. Configuration can be adopted. In this case, it is possible to avoid a situation in which the progress of the test scenario remains stopped.

本発明のプログラムテスト装置では、前記テストシナリオ解釈実行部は、テストシナリオを最後まで進行すると、テストに成功した旨を出力する構成を採用できる。テストシナリオには、被テストプログラムが外部サービスとの間で送受信するメッセージを、メッセージ送受信順序に従って記述できる。このため、テストシナリオを最後まで正しく実行できたということは、テストに成功したこと意味する。   In the program test apparatus of the present invention, the test scenario interpretation execution unit can output a message indicating that the test is successful when the test scenario is advanced to the end. In the test scenario, a message to be transmitted / received to / from an external service by the program under test can be described according to a message transmission / reception order. For this reason, the fact that the test scenario was successfully executed to the end means that the test was successful.

本発明のプログラムテスト装置、方法、及び、プログラムでは、テストシナリオ側は、メッセージ受理信号の送信(発生)により、被テストプログラム側が呼び出し元となるメッセージを能動的に受信できる。このため、テストシナリオ側からの呼出しと、被テストプログラム側からの呼出しとを分離することなく同じスキームで実施でき、テストシナリオの断片化を避けて、テストシナリオの可読性やメンテナンス性を向上することができる。また、テストシナリオで示されるメッセージ送受信順序が、被テストプログラムによるメッセージ送受信の順序となるため、テストシナリオの構成が理解しやすくなる。   In the program test apparatus, method, and program of the present invention, the test scenario side can actively receive a message to be called by the program under test side by transmitting (generating) a message acceptance signal. For this reason, calls from the test scenario side and calls from the program under test side can be implemented with the same scheme without separation, and test scenario fragmentation can be avoided and test scenario readability and maintainability can be improved. Can do. Further, since the message transmission / reception order shown in the test scenario is the order of message transmission / reception by the program under test, the configuration of the test scenario is easy to understand.

以下、図面を参照し、本発明の実施の形態を詳細に説明する。図1は、本発明の第1実施形態のプログラムテストシステムの構成を示している。テストシステム10は、コンピュータ(中央処理装置、プロセッサ、又はデータ処理装置)100と、テストシナリオ格納部180と、被テストプログラム格納部190とを有する。コンピュータ100は、プログラム制御により動作し、テストシナリオ解釈実行部101と、被テストプログラム実行部102と、被テストプログラム呼出し部103と、被呼出しサービス模擬部110とを有する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. FIG. 1 shows the configuration of a program test system according to the first embodiment of the present invention. The test system 10 includes a computer (central processing unit, processor, or data processing unit) 100, a test scenario storage unit 180, and a test program storage unit 190. The computer 100 operates under program control, and includes a test scenario interpretation execution unit 101, a test program execution unit 102, a test program call unit 103, and a called service simulation unit 110.

被テストプログラム格納部190は、テスト対象の被テストプログラム160を格納する。被テストプログラム160は、他のサービスやモジュールからメッセージを受信し、或いは、他のサービス等に対してメッセージを送信しつつ処理を進行する。被テストプログラム160としては、例えば、WS−BPEL(Web Services Business Process Execution Language)などのビジネスプロセス実行言語で書かれたプログラム、シェルスクリプトなどいくつかのコマンドを組み合わせて動作するプログラム、或いは、ソケットを用いていくつかのサーバやデーモンなどと連携するネットワークプログラムなどがある。被テストプログラム実行部102は、被テストプログラム160を読み込み、テストシナリオ解釈実行部101との間でメッセージの送受信をしつつ、被テストプログラム160に従った動作を実行する。   The test program storage unit 190 stores a test program 160 to be tested. The program under test 160 proceeds with processing while receiving a message from another service or module or transmitting a message to another service or the like. Examples of the program under test 160 include a program written in a business process execution language such as WS-BPEL (Web Services Business Process Execution Language), a program that operates by combining several commands such as a shell script, or a socket. There are network programs that use and cooperate with several servers and daemons. The program under test execution unit 102 reads the program under test 160 and executes an operation according to the program under test 160 while transmitting and receiving messages to and from the test scenario interpretation execution unit 101.

テストシナリオ格納部180は、被テストプログラム160のテストに用いられるテストシナリオ150を格納する。テストシナリオ150には、被テストプログラム160が、どのサービスとの間で、どのようなメッセージで、どのような方式でメッセージを交換するかについて、メッセージ交換が起きることを確認したい順で並べられている。テストシナリオ解釈実行部101は、テストシナリオ150を読み込み、テストシナリオ150に従って、被テストプログラム実行部102との間でメッセージを送受信しつつ、動作を進行する。   The test scenario storage unit 180 stores a test scenario 150 used for testing the program under test 160. In the test scenario 150, the program under test 160 is arranged in the order in which it is desired to confirm that message exchange occurs with what service, what message, and in what method. Yes. The test scenario interpretation execution unit 101 reads the test scenario 150 and proceeds with operations according to the test scenario 150 while transmitting and receiving messages to and from the program under test execution unit 102.

ここで、メッセージの送受信の方式には、同期送信・受信と、非同期送信・受信とがある。同期送信・受信とは、メッセージ送信後、相手側(送信先)に処理が移り、相手側の処理が終了すると、返信メッセージがある場合にはこれを受け取って、送信元の処理が再開する送信・受信形態を指す。一方、メッセージの非同期送信・受信とは、メッセージ送信後、直ちに次の処理に移ることができる送信・受信形態を指す。本実施形態においては、テストシナリオ解釈実行部101は、自身が呼び出し元となるときには、被テストプログラム実行部102との間で、同期又は非同期でメッセージを送受信する。また、被テストプログラム実行部102が呼び出し元となるときには、被テストプログラム実行部102から、メッセージを非同期で受信する。   The message transmission / reception methods include synchronous transmission / reception and asynchronous transmission / reception. Synchronous transmission / reception refers to transmission in which processing is transferred to the other party (transmission destination) after sending a message, and when the other party's processing is completed, if there is a reply message, it is received and the source process resumes -Refers to the reception form. On the other hand, asynchronous message transmission / reception refers to a transmission / reception form in which a message can be transferred to the next process immediately after the message transmission. In the present embodiment, the test scenario interpretation execution unit 101 transmits and receives a message synchronously or asynchronously with the program under test execution unit 102 when the test scenario interpretation execution unit 101 is a caller. When the test program execution unit 102 becomes a caller, a message is asynchronously received from the test program execution unit 102.

テストシナリオ解釈実行部101は、テストシナリオ150に、被テストプログラム160が外部サービスから同期又は非同期でメッセージを受信する旨が記述されている場合には、テストシナリオ解釈実行部101を呼び出し元とし、被テストプログラム呼出し部103を介して、同期又は非同期で、呼び出し先の被テストプログラム実行部102にメッセージを送信する。このとき、テストシナリオ解釈実行部101が送信したメッセージが同期送信である場合であって、被テストプログラム実行部102が、受信したメッセージに対して返信メッセージを同期送信するときには、テストシナリオ解釈実行部101は、被テストプログラム実行部102から、被テストプログラム呼出し部103を介して、その返信メッセージを同期受信する。   When the test scenario 150 describes that the test program 160 receives a message synchronously or asynchronously from an external service, the test scenario interpretation execution unit 101 uses the test scenario interpretation execution unit 101 as a caller. A message is transmitted to the called program-under-execution unit 102 as a call destination synchronously or asynchronously via the program-under-test calling unit 103. At this time, when the message transmitted by the test scenario interpretation execution unit 101 is synchronous transmission, and the program under test execution unit 102 transmits a reply message synchronously to the received message, the test scenario interpretation execution unit 101 synchronously receives the reply message from the test program execution unit 102 via the test program call unit 103.

被呼出しサービス模擬部110は、被テストプログラム160によって呼び出される外部サービスを模擬し、呼び出される外部サービスに対応して用意される。テストシナリオ解釈実行部101は、テストシナリオ150に、外部サービスが、被テストプログラム実行部102が呼び出し元となって非同期送信されたメッセージを受信する旨が記述されているときには、そのメッセージを、対応する被呼出しサービス模擬部110を介して受信する。   The called service simulation unit 110 simulates an external service called by the test program 160 and is prepared corresponding to the called external service. When the test scenario 150 describes that the external service receives a message asynchronously transmitted by the program under test execution unit 102 as a caller, the test scenario interpretation execution unit 101 responds to the message. To be received via the called service simulation unit 110.

被呼出しサービス模擬部110は、メッセージ受理受付部111と、メッセージ待合せ部112と、メッセージ受信部113とを備える。被テストプログラム実行部102は、被テストプログラム160に従って、自身が呼び出し元となって、外部サービスにメッセージを非同期で送信する場合には、その外部サービスに対応する被呼出しサービス模擬部110にメッセージを送信する。メッセージ受信部113は、被テストプログラム実行部102が送信したメッセージを受信する。メッセージ受信部113は、被テストプログラム実行部102からメッセージを受信すると、その旨をメッセージ待合せ部112に通知する。   The called service simulation unit 110 includes a message reception receiving unit 111, a message waiting unit 112, and a message receiving unit 113. When the program-under-execution unit 102 becomes a caller according to the program under test 160 and sends a message asynchronously to an external service, the program-under-execution unit 102 sends a message to the called service simulation unit 110 corresponding to the external service. Send. The message receiving unit 113 receives the message transmitted by the test program execution unit 102. When the message receiving unit 113 receives a message from the program under test executing unit 102, the message receiving unit 113 notifies the message waiting unit 112 to that effect.

一方、テストシナリオ解釈実行部101は、テストシナリオ150に、被テストプログラム実行部102が呼び出し元となって外部サービスにメッセージを送信する旨が記述されている場合には、対応する被呼出しサービス模擬部110にメッセージ受理を送信する。メッセージ受理受付部111は、テストシナリオ解釈実行部101が送信したメッセージ受理を受け付けて、メッセージ受理を受信した旨をメッセージ待合せ部112に通知する。   On the other hand, when the test scenario 150 describes that the test program execution unit 102 sends a message to an external service as a call source, the test scenario interpretation execution unit 101 simulates the corresponding called service. The message acceptance is transmitted to the unit 110. The message acceptance receiving unit 111 accepts the message acceptance transmitted by the test scenario interpretation execution unit 101 and notifies the message waiting unit 112 that the message acceptance has been received.

メッセージ待合せ部112は、被テストプログラム実行部102が送信するメッセージと、テストシナリオ解釈実行部101が送信するメッセージ受理との待ち合わせを行う。メッセージ待合せ部112は、メッセージ受信部113からメッセージを受信した旨の通知がされ、かつ、メッセージ受理受付部111がメッセージ受理を受け付けた旨の通知がされると、テストシナリオ解釈実行部101に受信したメッセージを送信する。また、被テストプログラム実行部102にメッセージを送信した旨を通知する。   The message queuing unit 112 waits for a message transmitted by the program under test execution unit 102 and a message reception transmitted by the test scenario interpretation execution unit 101. When the message queuing unit 112 is notified that the message has been received from the message receiving unit 113, and the message reception receiving unit 111 is notified that the message reception has been received, the message waiting unit 112 receives the message from the test scenario interpretation executing unit 101. Send the message. In addition, the program under test execution unit 102 is notified that the message has been transmitted.

メッセージ待合せ部112におけるメッセージ待合せの機構には、例えば、Java言語の標準ライブラリに含まれるjava.util.concurrent.BlockingQueueなどを用いることができる。また、メッセージ及びメッセージ受理を記憶する領域と、それら領域にメッセージ又はメッセージ受理が記憶されたか否かをチェックするフラグとを設けて、フラグがセットされていなければ、セットされるまで待機し、フラグがセットされると、記憶されたメッセージ及びメッセージ受理を、それぞれテストシナリオ解釈実行部101及び被テストプログラム実行部102に送信する機構を採用することができる。   The message queuing mechanism in the message queuing unit 112 includes, for example, Java. util. current. Blocking Queue or the like can be used. In addition, an area for storing a message and message acceptance and a flag for checking whether or not a message or message acceptance is stored in the area are provided. If the flag is not set, the process waits until the flag is set. When is set, a mechanism for transmitting the stored message and message acceptance to the test scenario interpretation execution unit 101 and the program under test execution unit 102 can be employed.

被テストプログラム実行部102は、被呼出しサービス模擬部110にメッセージを送信した後、被テストプログラム160の進行を一時停止する。また、テストシナリオ解釈実行部101は、メッセージ受理の送信後、テストシナリオ150の進行を一時停止する。テストシナリオ解釈実行部101は、被呼出しサービス模擬部110からメッセージを受信すると、テストシナリオ150の進行を再開し、被テストプログラム実行部102は、被呼出しサービス模擬部110から、テストシナリオ解釈実行部101にメッセージを送信した旨の通知を受け取ると、被テストプログラム160の進行を再開する。   The program under test execution unit 102 suspends the progress of the program under test 160 after transmitting a message to the called service simulation unit 110. In addition, the test scenario interpretation execution unit 101 temporarily stops the progress of the test scenario 150 after transmitting the message acceptance. When the test scenario interpretation execution unit 101 receives a message from the called service simulation unit 110, the test scenario interpretation execution unit 101 resumes the progress of the test scenario 150, and the test program execution unit 102 receives the test scenario interpretation execution unit from the called service simulation unit 110. When the notification that the message is transmitted to 101 is received, the progress of the program under test 160 is resumed.

なお、テストシステム10は、典型的には、図2に示すように、CPU1001、メモリ1002、及び、外部記憶装置1003を含むコンピュータ1000と、入力装置1004と、出力装置1005とを有するコンピュータシステムとして構成できる。テストシステム10は、テストを実施するためのテスト作成実施プログラム1010をメモリ1002上に読み込んで動作する。テストシナリオ150及び被テストプログラム160(図1)は、それぞれメモリ1002又は外部記憶装置1003に格納されている。テスト開始に際して、利用者は、マウスやキーボード、タッチパネルなどの入力装置1004を通じて、テストの作成及び実施の開始を指令する。テストの結果は、ディスプレイ等の出力装置1005に表示される。   The test system 10 is typically a computer system having a computer 1000 including a CPU 1001, a memory 1002, and an external storage device 1003, an input device 1004, and an output device 1005, as shown in FIG. Can be configured. The test system 10 operates by reading a test creation execution program 1010 for executing a test into the memory 1002. The test scenario 150 and the program under test 160 (FIG. 1) are stored in the memory 1002 or the external storage device 1003, respectively. At the start of the test, the user commands the start of test creation and execution through the input device 1004 such as a mouse, keyboard, or touch panel. The test result is displayed on an output device 1005 such as a display.

図3は、テストシステムの動作手順をフローチャートで示している。利用者が入力装置1004(図2)を通じてテストの開始を指示すると、テストシナリオ解釈実行部101(図1)は、テストシナリオ格納部180から、テストシナリオ150を読み込む(ステップA1)。また、被テストプログラム実行部102は、被テストプログラム格納部190から、被テストプログラム160を読み込み(ステップA2)、その実行を開始する(ステップA3)。その後、テストシナリオ解釈実行部101は、ステップA1で読み込んだテストシナリオ150の実行を開始する(ステップA4)。   FIG. 3 is a flowchart showing the operation procedure of the test system. When the user instructs the start of the test through the input device 1004 (FIG. 2), the test scenario interpretation execution unit 101 (FIG. 1) reads the test scenario 150 from the test scenario storage unit 180 (step A1). The program under test execution unit 102 reads the program under test 160 from the program under test storage unit 190 (step A2), and starts its execution (step A3). Thereafter, the test scenario interpretation execution unit 101 starts executing the test scenario 150 read in step A1 (step A4).

テストシナリオ解釈実行部101は、テストシナリオ150に、被テストプログラム実行部102にメッセージを送信するという指示があるか否かを調べ(ステップA5)、そのような指示があるときには、被テストプログラム呼出し部103を介して、被テストプログラム実行部102にメッセージを送信する(ステップA9)。テストシナリオ解釈実行部101は、外部サービスが被テストプログラム実行部102からメッセージを受信するという指示があるか否かを調べ(ステップA6)、そのような指示があるときには、被テストプログラム160からメッセージを受信し(ステップA10)、受信したメッセージがテストシナリオ150で示されるメッセージであるか否かを確認する。テストシナリオ解釈実行部101は、メッセージが一致していないときには、テストに失敗したと判断して、その旨を出力する。   The test scenario interpretation execution unit 101 checks whether or not the test scenario 150 has an instruction to send a message to the test program execution unit 102 (step A5). A message is transmitted to the test program execution unit 102 via the unit 103 (step A9). The test scenario interpretation execution unit 101 checks whether or not there is an instruction that the external service receives a message from the program under test execution unit 102 (step A6). (Step A10) and confirms whether the received message is a message indicated by the test scenario 150 or not. When the messages do not match, the test scenario interpretation execution unit 101 determines that the test has failed and outputs a message to that effect.

ステップA10では、テストシナリオ解釈実行部101は、被テストプログラム実行部102から同期送信したメッセージに対する返信メッセージを受信する場合には、被テストプログラム呼出し部103を介して、返信メッセージを受信する。一方、被テストプログラム実行部102側が呼び出し元となって送信されたメッセージを受信する場合には、メッセージを受信すべき外部サービスに対応する被呼出しサービス模擬部110にメッセージ受理を送信し、被呼出しサービス模擬部110を介して、メッセージを受信する。   In step A 10, when the test scenario interpretation execution unit 101 receives a reply message to the message synchronously transmitted from the test program execution unit 102, the test scenario interpretation execution unit 101 receives the reply message via the test program call unit 103. On the other hand, when the message to be tested is received by the program under test execution unit 102 side, a message acceptance is transmitted to the called service simulation unit 110 corresponding to the external service that should receive the message, and the called program is received. A message is received via the service simulation unit 110.

図4は、被テストプログラム実行部102側がメッセージを送信しテストシナリオ解釈実行部101がメッセージを受信する際の被呼出しサービス模擬部110の動作手順を示している。メッセージ受理受付部111は、テストシナリオ解釈実行部101からのメッセージ受理を受け付け(ステップB1)、メッセージ受理を受信すると、その旨を、メッセージ待合せ部112に通知し、メッセージ待合せ部112に、被テストプログラム実行部102からメッセージを受信した旨の通知がされるまで待機する(ステップB2)。   FIG. 4 shows an operation procedure of the called service simulation unit 110 when the test program execution unit 102 side transmits a message and the test scenario interpretation execution unit 101 receives the message. The message reception receiving unit 111 receives a message received from the test scenario interpretation execution unit 101 (step B1). When the message reception is received, the message reception unit 111 notifies the message waiting unit 112 of the message reception, and the message waiting unit 112 receives the message reception. It waits until notification that the message is received from the program execution unit 102 (step B2).

一方、被テストプログラム実行部102は、被テストプログラム160に従って、メッセージを送信すべき外部サービスに対応する被呼出しサービス模擬部110にメッセージを送信する。メッセージ受信部113は、被テストプログラム実行部102からのメッセージを受け付け(ステップB11)、メッセージを受信すると、その旨をメッセージ待合せ部112に通知し、メッセージ待合せ部112に、テストシナリオ解釈実行部101からメッセージ受理を受け付けた旨の通知がされるまで待機する(ステップB12)。   On the other hand, the program under test execution unit 102 transmits a message to the called service simulation unit 110 corresponding to the external service to which the message is to be transmitted, according to the program under test 160. The message receiving unit 113 accepts a message from the program under test executing unit 102 (step B11). When the message is received, the message receiving unit 113 notifies the message waiting unit 112 of the message and notifies the message waiting unit 112 of the test scenario interpretation executing unit 101. Waits until a notification indicating that the message has been accepted is received (step B12).

メッセージ待合せ部112は、メッセージを受信した旨の通知を受け、かつ、メッセージ受理を受け付けた旨の通知を受けると、テストシナリオ解釈実行部101に、被テストプログラム実行部102から受信したメッセージを送信する(ステップB3)。また、被テストプログラム実行部102に、テストシナリオ解釈実行部101にメッセージを送信した旨の通知を送信する(ステップB13)。被テストプログラム実行部102は、メッセージ受理を受信すると、被テストプログラム160からの呼出しを完了し、被テストプログラム160の進行を再開する。また、テストシナリオ解釈実行部101は、被呼出しサービス模擬部110からメッセージを受信すると、停止していたテストシナリオ150の進行を再開する。   Upon receiving the notification that the message has been received and the notification that the message has been accepted, the message waiting unit 112 transmits the message received from the program under test execution unit 102 to the test scenario interpretation execution unit 101. (Step B3). In addition, a notification that the message has been transmitted to the test scenario interpretation execution unit 101 is transmitted to the program under test execution unit 102 (step B13). When receiving the message acceptance, the program under test execution unit 102 completes the call from the program under test 160 and resumes the progress of the program under test 160. When the test scenario interpretation execution unit 101 receives a message from the called service simulation unit 110, the test scenario interpretation execution unit 101 resumes the progress of the stopped test scenario 150.

図3に戻り、テストシナリオ解釈実行部101は、テストシナリオ150を最後まで実行したか否かを判断する(ステップA7)。テストシナリオ解釈実行部101は、テストシナリオ150の実行が完了していないと判断したときには、ステップA5に戻って、テストシナリオ150に記述された次の処理を実行する。テストシナリオ解釈実行部101は、テストシナリオ150の実行が完了した判断すると、テストが成功した旨を出力し(ステップA8)、処理を終了する。   Returning to FIG. 3, the test scenario interpretation execution unit 101 determines whether or not the test scenario 150 has been executed to the end (step A7). When the test scenario interpretation execution unit 101 determines that the execution of the test scenario 150 has not been completed, the test scenario interpretation execution unit 101 returns to step A5 and executes the next process described in the test scenario 150. When the test scenario interpretation execution unit 101 determines that the execution of the test scenario 150 is completed, the test scenario interpretation execution unit 101 outputs that the test is successful (step A8), and ends the process.

以下、テストシステム10の動作について、具体例を挙げて説明する。以下では、被テストプログラム160(被テストプログラム実行部102)が、図5に示すように、複数のサービス(サービスA〜サービスC)との間でメッセージの送受信を行って動作する場合について考える。この例では、テストシナリオ150には、図6に示すように、各サービスとの間でのメッセージのやり取り、及び、その方法(同期受信・送信、又は、非同期受信・送信)が、メッセージ交換が生起すべき順番に並べられる。   Hereinafter, the operation of the test system 10 will be described with a specific example. In the following, consider the case where the program under test 160 (test program execution unit 102) operates by sending and receiving messages to and from a plurality of services (service A to service C) as shown in FIG. In this example, in the test scenario 150, as shown in FIG. 6, message exchange with each service and its method (synchronous reception / transmission or asynchronous reception / transmission) are performed by message exchange. Arranged in the order they should occur.

図5の例では、被テストプログラム160が呼び出すサービスは、サービスCであるため、コンピュータ100内に、サービスCに対応する被呼出しサービス模擬部110を用意する。被呼出しサービス模擬部110は、テスト開始に先立って、テスト(シナリオ)の作成者によって生成することができ、或いは、コンピュータ100にテストシナリオ150を解析させることにより、機械的に生成してもよい。例えば、模擬したいサービスについて、そのサービスがどのような形式のメッセージをやり取りするかを定めたインタフェース定義を入力として、その定義に基づいてメッセージ受信部113を生成し、これと、あらかじめ用意しておいたメッセージ受理受付部111及びメッセージ待合せ部112とを合成して被呼出しサービス模擬部110を自動生成する。   In the example of FIG. 5, the service to be called by the program under test 160 is the service C, and therefore the called service simulation unit 110 corresponding to the service C is prepared in the computer 100. The called service simulation unit 110 can be generated by a test (scenario) creator prior to the start of the test, or can be generated mechanically by causing the computer 100 to analyze the test scenario 150. . For example, for a service to be simulated, an interface definition that defines what type of message is exchanged by the service is input, and the message receiving unit 113 is generated based on the definition. The message reception receiving unit 111 and the message waiting unit 112 are combined to automatically generate the called service simulation unit 110.

テストシナリオ解釈実行部101は、まず、テストシナリオ150の第1項目(#1)を読み込み、被テストプログラム160が、サービスAからメッセージ1を非同期で受信することを知る。次いで、メッセージ1の内容を取得し、被テストプログラム呼出し部103を介して、被テストプログラム160に、メッセージ1を非同期で送信する。ここで、メッセージ1の内容は、テストシナリオ150内に直接記述することができる。或いは、テストシナリオ150にはポインタを記述しておき、そのポインタを参照して、外部記憶装置1003やメモリ1002(図2)からメッセージ1の内容を取得してもよい。テストシナリオ解釈実行部101は、被テストプログラム実行部102から、メッセージ1を受信した旨の応答を受け取ると、この項目に関しては、成功したとみなす。   The test scenario interpretation execution unit 101 first reads the first item (# 1) of the test scenario 150 and knows that the program under test 160 receives message 1 from the service A asynchronously. Next, the content of the message 1 is acquired, and the message 1 is asynchronously transmitted to the program under test 160 via the program under test calling unit 103. Here, the content of the message 1 can be directly described in the test scenario 150. Alternatively, a pointer may be described in the test scenario 150, and the content of the message 1 may be acquired from the external storage device 1003 or the memory 1002 (FIG. 2) by referring to the pointer. When the test scenario interpretation execution unit 101 receives a response indicating that the message 1 has been received from the program under test execution unit 102, it regards this item as successful.

テストシナリオ解釈実行部101は、テストシナリオ150の第1項目に成功すると、第2項目(#2)を読み込み、被テストプログラム160が、サービスBからのメッセージ2を同期受信し、その後、メッセージ3を同期で返信する(#3)ことを知る。テストシナリオ解釈実行部101は、メッセージ2の内容を取得し、取得したメッセージ2を、被テストプログラム呼出し部103を介して、被テストプログラム160に同期送信する。また、被テストプログラム呼出し部103を介して、被テストプログラム実行部102から、受信したメッセージ2に対する返信メッセージであるメッセージ3を受信する。   When the test scenario interpretation execution unit 101 succeeds in the first item of the test scenario 150, the test scenario interpretation unit 101 reads the second item (# 2), and the program under test 160 synchronously receives the message 2 from the service B, and then the message 3 Knows that it will reply in sync (# 3). The test scenario interpretation execution unit 101 acquires the content of the message 2 and transmits the acquired message 2 to the test program 160 via the test program call unit 103 in synchronization. Further, a message 3 that is a reply message to the received message 2 is received from the test program execution unit 102 via the test program call unit 103.

テストシナリオ解釈実行部101は、被テストプログラム実行部102から返信メッセージを受信すると、受信すべきメッセージ3の内容を取得し、受信した返信メッセージとメッセージ3とを比較して、メッセージ3を正しく受信できたか否かを判断する。テストシナリオ解釈実行部101は、被テストプログラム実行部102からメッセージ3を正しく受信できたときには、テストシナリオ150の第2項目及び第3項目に関しては、成功したとみなす。   When the test scenario interpretation execution unit 101 receives the reply message from the program under test execution unit 102, the test scenario interpretation execution unit 101 acquires the content of the message 3 to be received, compares the received reply message with the message 3, and receives the message 3 correctly. It is judged whether it was able to be done. When the test scenario interpretation execution unit 101 can correctly receive the message 3 from the test program execution unit 102, the test scenario interpretation execution unit 101 regards the second item and the third item of the test scenario 150 as successful.

テストシナリオ解釈実行部101は、テストシナリオ150の第2項目及び第3項目に成功すると、第4項目(#4)を読み込み、被テストプログラム160がサービスCにメッセージ4を非同期で送信することを知る。テストシナリオ解釈実行部101は、サービスCに対応する被呼出しサービス模擬部110にメッセージ受理を送信し、テストシナリオ150の進行を一時停止する。一方、被テストプログラム実行部102は、メッセージ3の送信後、被テストプログラム160に従った処理を実行し、その内容に従って、任意のタイミングで、メッセージ4をサービスCに対応する被呼出しサービス模擬部103に送信し、被テストプログラム160の進行を一時停止する。   When the test scenario interpretation execution unit 101 succeeds in the second item and the third item of the test scenario 150, the test scenario interpretation execution unit 101 reads the fourth item (# 4), and the program under test 160 transmits the message 4 to the service C asynchronously. know. The test scenario interpretation execution unit 101 transmits a message acceptance to the called service simulation unit 110 corresponding to the service C, and temporarily stops the progress of the test scenario 150. On the other hand, the program under test execution unit 102 executes processing according to the program under test 160 after sending the message 3, and calls the message 4 corresponding to the service C at any timing according to the contents of the program under test execution unit 102. 103, and temporarily stops the progress of the program under test 160.

被テストプログラム実行部102によるメッセージ4の送信と、テストシナリオ解釈実行部101によるメッセージ受理の送信とは、どちらが先であってもかまわない。その理由は、メッセージ待合せ部112がメッセージ受理とメッセージの受信との待ち合わせを行うからである。サービスCに対応する被呼出しサービス模擬部110は、メッセージ待合せ部112が、メッセージ受理受付部111からメッセージ受理を受信した旨の通知を受け、かつ、メッセージ受信部113からメッセージを受信した旨の通知を受けると、メッセージ4をテストシナリオ解釈実行部101に送信し、メッセージを送信した旨を被テストプログラム実行部102に送信する。テストシナリオ解釈実行部101は、受信すべきメッセージ4の内容を取得し、受信したメッセージとメッセージ4とを比較して、メッセージ4を正しく受信できたか否かを判断する。テストシナリオ150を最後まで正しく実行できたときには、ディスプレイやプリンタなど外部出力装置1005(図2)にテストの結果を出力し、或いは、メモリ1002やディスクなどの記憶装置1003にテストの結果を書き込む。   Either the message 4 transmission by the program under test execution unit 102 or the message acceptance transmission by the test scenario interpretation execution unit 101 may be first. The reason is that the message queuing unit 112 waits for message reception and message reception. The called service simulation unit 110 corresponding to the service C receives a notification that the message waiting unit 112 has received a message from the message reception receiving unit 111 and a message that the message reception unit 113 has received a message. When the message is received, the message 4 is transmitted to the test scenario interpretation execution unit 101, and the fact that the message has been transmitted is transmitted to the program under test execution unit 102. The test scenario interpretation execution unit 101 acquires the content of the message 4 to be received, compares the received message with the message 4, and determines whether the message 4 has been correctly received. When the test scenario 150 is correctly executed to the end, the test result is output to the external output device 1005 (FIG. 2) such as a display or a printer, or the test result is written to the storage device 1003 such as the memory 1002 or the disk.

テストシナリオ解釈実行部101は、被テストプログラム160のサービスCへのメッセージの送信が行われるまで、テストシナリオ150の進行を中断することで、被テストプログラム160が、どのタイミングでメッセージを送信したかを認識することができる。すなわち、被テストプログラム実行部102がサービスCにメッセージを送信する前に、他のサービスへメッセージを送信したとすると、テストシナリオ解釈実行部101は、サービスCに対応する被呼出しサービス模擬部110からメッセージを受信することができないため、メッセージ交換順序が不正であることがわかる。また、被テストプログラム実行部102が、サービスBとの間のメッセージ送受信の前にサービスCにメッセージを送信した場合には、テストシナリオ解釈実行部101は、被テストプログラム実行部102とサービスBとの間のメッセージの送受信が終わるまで、サービスCにメッセージ受理を送信しないため、メッセージ交換順序が不正であることがわかる。   The test scenario interpretation execution unit 101 suspends the progress of the test scenario 150 until the message to the service C of the program under test 160 is transmitted, and at what timing the program under test 160 transmitted the message. Can be recognized. That is, assuming that the program under test execution unit 102 transmits a message to another service before transmitting a message to the service C, the test scenario interpretation execution unit 101 reads from the called service simulation unit 110 corresponding to the service C. Since the message cannot be received, it is understood that the message exchange order is incorrect. When the program under test execution unit 102 transmits a message to the service C before message transmission / reception with the service B, the test scenario interpretation execution unit 101 Since the message acceptance is not transmitted to the service C until the transmission / reception of the message between is completed, it is understood that the message exchange order is incorrect.

一般に、被テストプログラム実行部102側が呼び出し元となってメッセージを送信する場合には、呼出しを受ける側のテストシナリオ解釈実行部101は、受動的にメッセージを受信することになるため、メッセージの受信タイミングを制御することができない。本実施形態では、テストシナリオ解釈実行部101は、メッセージを受信すべきタイミングで、メッセージを受信すべきサービスに対応する被呼出しサービス模擬部110にメッセージ受理を送信することで、能動的にメッセージを受信するため、テストシナリオ解釈実行部101は、自身が呼出しを受ける側になる場合でも、能動的にメッセージを受信できる。   In general, when the test target program execution unit 102 sends a message as a caller, the test scenario interpretation execution unit 101 on the call receiving side passively receives the message. The timing cannot be controlled. In this embodiment, the test scenario interpretation execution unit 101 actively sends a message by sending a message acceptance to the called service simulation unit 110 corresponding to the service that should receive the message at the timing when the message should be received. In order to receive, the test scenario interpretation execution unit 101 can actively receive a message even when the test scenario interpretation execution unit 101 becomes a call receiving side.

本実施形態では、被呼出しサービス模擬部110において、テストシナリオ解釈実行部101が送信したメッセージ受理と、被テストプログラム実行部102が送信したメッセージとの待ち合わせを行う。これにより、被テストプログラム160からの呼出し及び被テストプログラム160への呼出しの順序を、テストシナリオ150側で制御することができる。従って、被テストプログラム160からの呼出しと被テストプログラム160への呼出しとを分離することなく同じスキームで実施でき、テストシナリオ150の断片化を避けることができることにより、テストシナリオの可読性やメンテナンス性を向上することができる。また、テストシナリオ150で示される順序が、そのまま被テストプログラム160によるメッセージ交換の順序となるため、テストシナリオ150の構成が理解しやすくなる。   In this embodiment, the called service simulation unit 110 waits for the message received by the test scenario interpretation execution unit 101 and the message transmitted by the program under test execution unit 102. Thereby, the test scenario 150 side can control the order of calls from the program under test 160 and calls to the program under test 160. Therefore, the call from the program under test 160 and the call to the program under test 160 can be implemented in the same scheme without separation, and fragmentation of the test scenario 150 can be avoided, thereby improving the readability and maintainability of the test scenario. Can be improved. In addition, since the order shown in the test scenario 150 is the order of message exchange by the program under test 160 as it is, the configuration of the test scenario 150 is easy to understand.

上記のように、テストシナリオ150側が、被テストプログラム160を呼び出すタイミングだけでなく、被テストプログラム160が送信したメッセージを受信するタイミングを制御できるようになった結果、テストシナリオ150側で、被テストプログラム160によるメッセージ交換の進捗が制御できる。このため、テストシナリオ150の進捗によって、被テストプログラム160によるメッセージ送受信の順序を検証することができ、ログを解析してメッセージ送受信の順序を調べる必要がないことから、メッセージ送受信の検証が容易となる。また、被テストプログラム160がサービスとの間で、テストシナリオ150の順序通りにメッセージを交換しない場合には、テストシナリオ150が進捗できなくなることから、テストシナリオ150を最後まで実行できたか否かを調べることにより、被テストプログラム160によるメッセージ交換の順序が正しく行われたか否かを容易に検証することができる。   As described above, the test scenario 150 side can control not only the timing to call the program under test 160 but also the timing to receive the message transmitted by the program under test 160. The progress of message exchange by the program 160 can be controlled. Therefore, the order of message transmission / reception by the program under test 160 can be verified according to the progress of the test scenario 150, and it is not necessary to analyze the log to check the order of message transmission / reception. Become. Also, if the program under test 160 does not exchange messages with the service in the order of the test scenario 150, the test scenario 150 cannot progress, so whether or not the test scenario 150 has been executed to the end. By checking, it is possible to easily verify whether or not the order of message exchange by the program under test 160 has been correctly performed.

図7は、本発明の第2実施形態のテストシステムの構成を示している。本実施形態は、コンピュータ100aが、被呼出しサービス模擬部110(図1)に代えて、図7に示す構成を有する被呼出しサービス模擬部120を備える点で、第1実施形態と相違する。被呼出しサービス模擬部120は、第1実施形態の被呼出しサービス模擬部110の構成に加えて、返信メッセージ受付部114及び返信メッセージ待合せ部115を更に有する。第1実施形態では、外部サービス等にメッセージを非同期で送信するプログラムを被テストプログラム160としたが、本実施形態では、外部サービス等にメッセージを同期送信するプログラムを、被テストプログラム160とする。   FIG. 7 shows the configuration of a test system according to the second embodiment of the present invention. This embodiment is different from the first embodiment in that the computer 100a includes a called service simulation unit 120 having the configuration shown in FIG. 7 instead of the called service simulation unit 110 (FIG. 1). The called service simulation unit 120 further includes a reply message receiving unit 114 and a reply message waiting unit 115 in addition to the configuration of the called service simulation unit 110 of the first embodiment. In the first embodiment, the program under test 160 is a program for asynchronously transmitting a message to an external service or the like. In this embodiment, the program under test 160 is a program for synchronously transmitting a message to an external service or the like.

メッセージ受信部113は、被テストプログラム実行部102から同期送信で送信されたメッセージを受信し、メッセージを受信した旨をメッセージ待合せ部112に通知する。メッセージ受理受付部111は、テストシナリオ解釈実行部101によって送信されたメッセージ受理を受け付けて、その旨をメッセージ待合せ部112に通知する。メッセージ待合せ部112は、メッセージと、メッセージ受理とが揃うと、被テストプログラム実行部102が同期送信したメッセージを、テストシナリオ解釈実行部101に送信し、メッセージを送信した旨を、メッセージ受信部113に通知する。   The message receiving unit 113 receives the message transmitted by synchronous transmission from the program under test executing unit 102 and notifies the message waiting unit 112 that the message has been received. The message acceptance receiving unit 111 accepts the message acceptance transmitted by the test scenario interpretation executing unit 101 and notifies the message waiting unit 112 to that effect. When the message and the message acceptance are ready, the message queuing unit 112 transmits the message synchronously transmitted by the program under test execution unit 102 to the test scenario interpretation execution unit 101 and indicates that the message has been transmitted. Notify

メッセージ受信部113は、メッセージを送信した旨の通知を受けると、返信メッセージ待合せ部115に、返信メッセージを受理する旨の通知を行う。テストシナリオ解釈実行部101は、受信したメッセージがテストシナリオ150で示されるメッセージと一致するか否かを確認し、メッセージの確認後、返信メッセージを被呼出しサービス模擬部120に送信する。返信メッセージ受付部114は、テストシナリオ解釈実行部101から送信された返信メッセージを受け付けて、その旨を返信メッセージ待合せ部115に送信する。返信メッセージ待合せ部120は、返信メッセージと、返信メッセージ受理とが揃うと、被テストプログラム実行部102に返信メッセージを送信し、被テストプログラム実行部102に返信メッセージを送信した旨をテストシナリオ解釈実行部101に送信する。   When the message receiving unit 113 receives a notification that the message has been transmitted, the message receiving unit 113 notifies the reply message waiting unit 115 that the reply message is accepted. The test scenario interpretation execution unit 101 confirms whether or not the received message matches the message indicated by the test scenario 150, and after confirming the message, transmits a reply message to the called service simulation unit 120. The reply message accepting unit 114 accepts the reply message transmitted from the test scenario interpretation executing unit 101 and transmits a message to that effect to the reply message waiting unit 115. When the reply message queuing unit 120 completes the reply message and the reply message acceptance, the reply message queuing unit 120 transmits a reply message to the program under test execution unit 102, and interprets that the reply message is transmitted to the program under test execution unit 102. To the unit 101.

図8は、テストシステムの動作手順をフローチャートで示している。テストシナリオ解釈実行部101は、テストシナリオ格納部180から、テストシナリオ150を読み込み、読み込んだテストシナリオ150の実行を開始する(ステップC1)。また、被テストプログラム実行部102は、被テストプログラム格納部190から、被テストプログラム160を読み込み、その実行を開始する。   FIG. 8 is a flowchart showing the operation procedure of the test system. The test scenario interpretation execution unit 101 reads the test scenario 150 from the test scenario storage unit 180 and starts executing the read test scenario 150 (step C1). The program under test execution unit 102 reads the program under test 160 from the program under test storage unit 190 and starts its execution.

テストシナリオ解釈実行部101は、テストシナリオ150に、被テストプログラム実行部102にメッセージを送信するという指示があるか否かを調べ(ステップC2)、そのような指示があるときには、被テストプログラム呼出し部103を介して、被テストプログラム実行部102にメッセージを送信する(ステップC7)。また、テストシナリオ解釈実行部101は、外部サービスが被テストプログラム実行部102からメッセージを受信するという指示があるか否かを調べ(ステップC3)、そのような指示があるときには、被テストプログラム160からメッセージを受信し(ステップC8)、受信したメッセージがテストシナリオ150で示されるメッセージであるか否かを確認する。   The test scenario interpretation execution unit 101 checks whether or not the test scenario 150 has an instruction to send a message to the test program execution unit 102 (step C2). The message is transmitted to the test program execution unit 102 via the unit 103 (step C7). Further, the test scenario interpretation execution unit 101 checks whether or not there is an instruction that the external service receives a message from the program under test execution unit 102 (step C3), and when there is such an instruction, the program under test 160 (Step C8), and confirms whether the received message is a message shown in the test scenario 150 or not.

ステップC8では、テストシナリオ解釈実行部101は、被テストプログラム実行部102から同期送信したメッセージに対する返信メッセージを受信する場合には、被テストプログラム呼出し部103を介して、返信メッセージを受信する。一方、被テストプログラム実行部102側が呼び出し元となって送信されたメッセージを受信する場合には、メッセージを受信すべき外部サービスに対応する被呼出しサービス模擬部110にメッセージ受理を送信し、被呼出しサービス模擬部110を介して、メッセージを受信する。   In step C 8, when receiving a reply message for the message synchronously transmitted from the test program execution unit 102, the test scenario interpretation execution unit 101 receives the reply message via the test program call unit 103. On the other hand, when the message to be tested is received by the program under test execution unit 102 side, a message acceptance is transmitted to the called service simulation unit 110 corresponding to the external service that should receive the message, and the called program is received. A message is received via the service simulation unit 110.

テストシナリオ解釈実行部101は、テストシナリオ150に、同期受信したメッセージに対する返信メッセージを送信するという指示があるか否かを調べる(ステップC4)。テストシナリオ解釈実行部101は、そのような指示があるときには、被呼出しサービス模擬部120を介して、被テストプログラム実行部102に返信メッセージを送信する(ステップC9)。   The test scenario interpretation execution unit 101 checks whether or not the test scenario 150 has an instruction to transmit a reply message for the synchronously received message (step C4). When there is such an instruction, the test scenario interpretation execution unit 101 transmits a reply message to the test program execution unit 102 via the called service simulation unit 120 (step C9).

図9は、被テストプログラム実行部102がメッセージを同期送信して、返信メッセージを受信する際の被呼出しサービス模擬部120の動作手順を示している。メッセージ受理受付部111は、テストシナリオ解釈実行部101からのメッセージ受理を受け付け(ステップD1)、メッセージ受理を受信すると、その旨を、メッセージ待合せ部112に通知し、メッセージ待合せ部112に、被テストプログラム実行部102からのメッセージを受信した旨の通知がされるまで待機する(ステップD2)。   FIG. 9 shows an operation procedure of the called service simulator 120 when the test program execution unit 102 transmits a message synchronously and receives a reply message. The message reception receiving unit 111 receives a message received from the test scenario interpretation execution unit 101 (step D1). When the message reception is received, the message reception unit 111 notifies the message waiting unit 112 to that effect, and sends a message to the message waiting unit 112 to be tested. It waits until it is notified that the message from the program execution part 102 was received (step D2).

一方、被テストプログラム実行部102は、被テストプログラム160に従って、メッセージを送信すべき外部サービスに対応する被呼出しサービス模擬部110にメッセージを送信する。メッセージ受信部113は、被テストプログラム実行部102からのメッセージを受け付け(ステップD11)、メッセージを受信すると、その旨をメッセージ待合せ部112に通知し、メッセージ待合せ部112に、テストシナリオ解釈実行部101からメッセージ受理を受け付けた旨の通知がされるまで待機する(ステップD12)。   On the other hand, the program under test execution unit 102 transmits a message to the called service simulation unit 110 corresponding to the external service to which the message is to be transmitted, according to the program under test 160. The message receiving unit 113 accepts a message from the program under test execution unit 102 (step D11). When the message reception unit 113 receives the message, the message reception unit 113 notifies the message waiting unit 112 of the message and notifies the message waiting unit 112 of the test scenario interpretation execution unit 101. Waits until a message indicating that the message has been accepted is received (step D12).

メッセージ待合せ部112は、メッセージを受信した旨の通知を受け、かつ、メッセージ受理を受け付けた旨の通知を受けると、テストシナリオ解釈実行部101に、被テストプログラム実行部102から受信したメッセージを送信する(ステップD3)。このとき、メッセージ待合せ部112は、メッセージ受信部113に、テストシナリオ解釈実行部101にメッセージを送信した旨を通知する。   Upon receiving the notification that the message has been received and the notification that the message has been accepted, the message waiting unit 112 transmits the message received from the program under test execution unit 102 to the test scenario interpretation execution unit 101. (Step D3). At this time, the message queuing unit 112 notifies the message receiving unit 113 that the message has been transmitted to the test scenario interpretation executing unit 101.

テストシナリオ解釈実行部101は、テストシナリオ150に従って、返信メッセージを被呼出しサービス模擬部120に送信する。返信メッセージ受付部114は、テストシナリオ解釈実行部101が送信した返信メッセージを受け付けて(ステップD4)、返信メッセージを受信した旨を返信メッセージ待合せ部115に通知し、返信メッセージ待合せ部115に、返信メッセージを受理する旨の通知がされるまで待機する(ステップD5)。   The test scenario interpretation execution unit 101 transmits a reply message to the called service simulation unit 120 according to the test scenario 150. The reply message accepting unit 114 accepts the reply message transmitted by the test scenario interpretation executing unit 101 (step D4), notifies the reply message waiting unit 115 that the reply message has been received, and sends a reply to the reply message waiting unit 115. It waits until it is notified that the message is accepted (step D5).

一方、メッセージ受信部113は、メッセージ待合せ部112から、テストシナリオ解釈実行部101にメッセージを送信した旨の通知を受け取ると、返信メッセージを受理する旨を、返信メッセージ待合せ部115に通知する。その後、返信メッセージ待合せ部115に、テストシナリオ解釈実行部101からの返信メッセージを受信した旨の通知がされるまで待機する(ステップD13)。   On the other hand, when the message receiving unit 113 receives a notification from the message waiting unit 112 that the message has been transmitted to the test scenario interpretation executing unit 101, the message receiving unit 113 notifies the reply message waiting unit 115 that the reply message is accepted. Thereafter, it waits until the reply message waiting unit 115 is notified that the reply message from the test scenario interpretation execution unit 101 has been received (step D13).

返信メッセージ待合せ部115は、返信メッセージと、返信メッセージ受理とが揃うと、被テストプログラム実行部102に返信メッセージを送信し(ステップD14)、テストシナリオ解釈実行部101に返信メッセージを送信した旨を通知する(ステップD6)。被テストプログラム実行部102は、返信メッセージを受信すると、メッセージの同期送信・受信の処理を終了し、被テストプログラム160の進行を再開する。テストシナリオ解釈実行部101は、返信メッセージを送信した旨の通知を受け取ると、テストシナリオ150の進行を再開する。   When the reply message and the reply message acceptance are complete, the reply message awaiting section 115 transmits a reply message to the program under test execution section 102 (step D14), and indicates that the reply message has been transmitted to the test scenario interpretation execution section 101. Notification is made (step D6). When the test program execution unit 102 receives the reply message, it ends the synchronous transmission / reception processing of the message and resumes the progress of the program under test 160. When the test scenario interpretation execution unit 101 receives the notification that the reply message has been transmitted, the test scenario interpretation execution unit 101 resumes the progress of the test scenario 150.

図8に戻り、テストシナリオ解釈実行部101は、テストシナリオ150を最後まで実行したか否かを判断する(ステップC5)。テストシナリオ解釈実行部101は、テストシナリオ150の実行が完了していないと判断したときには、ステップC2に戻って、テストシナリオ150に記述された次の処理を実行する。テストシナリオ解釈実行部101は、テストシナリオ150の実行が完了した判断すると、テストが成功した旨を出力し(ステップC6)、処理を終了する。   Returning to FIG. 8, the test scenario interpretation execution unit 101 determines whether or not the test scenario 150 has been executed to the end (step C5). When the test scenario interpretation execution unit 101 determines that the execution of the test scenario 150 has not been completed, the test scenario interpretation execution unit 101 returns to step C2 and executes the next process described in the test scenario 150. When the test scenario interpretation execution unit 101 determines that the execution of the test scenario 150 is completed, the test scenario interpretation execution unit 101 outputs a message indicating that the test is successful (step C6) and ends the process.

次に、本実施形態のテストシステム10aの動作について、具体例を用いて説明する。図10は、被テストプログラム160と外部サービスとの間のメッセージ交換の様子を示している。図10では、被テストプログラム160が呼び出すサービスは、サービスDであるため、コンピュータ100a内に、サービスDに対応する被呼出しサービス模擬部120が用意される。図10に示す被テストプログラム160のテストには、図11に示すテストシナリオ150が使用される。このテストシナリオ150の第1項〜第3項は、第1実施形態の説明で用いたテストシナリオ150(図6)と同じであり、テストシナリオ解釈実行部101は、第1実施形態で説明したのと同様な動作により、被テストプログラム160との間でメッセージを交換する。   Next, the operation of the test system 10a of this embodiment will be described using a specific example. FIG. 10 shows a state of message exchange between the program under test 160 and an external service. In FIG. 10, since the service called by the test target program 160 is the service D, the called service simulation unit 120 corresponding to the service D is prepared in the computer 100a. A test scenario 150 shown in FIG. 11 is used for testing the program under test 160 shown in FIG. The first to third items of the test scenario 150 are the same as the test scenario 150 (FIG. 6) used in the description of the first embodiment, and the test scenario interpretation execution unit 101 has been described in the first embodiment. Messages are exchanged with the program under test 160 by the same operation as.

テストシナリオ解釈実行部101は、テストシナリオ150の第3項(メッセージ3の同期返信)に成功すると、第4項(#4)を読み込み、被テストプログラム160が、サービスDへメッセージ5を同期送信することを知る。その後、テストシナリオ解釈実行部101は、サービスDに対応する被呼出しサービス模擬部120に、メッセージ受理を送信し、テストシナリオ150の進行を一時停止する。被テストプログラム実行部102は、被テストプログラムに従って、任意のタイミングで、メッセージ5を、サービスDに対応する被呼出しサービス模擬部120に同期送信し、被テストプログラム160の進行を一時停止する。   When the test scenario interpretation execution unit 101 succeeds in the third term (synchronous reply of message 3) of the test scenario 150, the test scenario interpretation execution unit 101 reads the fourth term (# 4), and the program under test 160 synchronously transmits the message 5 to the service D. Know what to do. Thereafter, the test scenario interpretation execution unit 101 transmits a message acceptance to the called service simulation unit 120 corresponding to the service D, and temporarily stops the progress of the test scenario 150. The program under test execution unit 102 synchronously transmits the message 5 to the called service simulation unit 120 corresponding to the service D at an arbitrary timing according to the program under test, and temporarily stops the progress of the program under test 160.

被呼出しサービス模擬部120では、メッセージ待合せ部112が、メッセージの受信とメッセージ受理の受信とを待ち合わせ、その双方が揃うと、受信したメッセージをテストシナリオ解釈実行部101に送信する。メッセージの送信後、メッセージ受信部113は、返信メッセージを受理する旨を、返信メッセージ待合せ部115に通知する。テストシナリオ解釈実行部101は、被呼出しサービス模擬部120からメッセージを受信すると、受信したメッセージが、受信すべきメッセージ5と一致することを確認する。   In the called service simulation unit 120, the message queuing unit 112 waits for the reception of the message and the reception of the message, and when both of them are ready, the received message is transmitted to the test scenario interpretation execution unit 101. After sending the message, the message receiving unit 113 notifies the reply message waiting unit 115 that the reply message is accepted. When the test scenario interpretation execution unit 101 receives a message from the called service simulation unit 120, the test scenario interpretation execution unit 101 confirms that the received message matches the message 5 to be received.

テストシナリオ解釈実行部101は、受信メッセージの確認後、テストシナリオ150の進行を再開して、その第5項(#5)を読み込み、被テストプログラム160がサービスDから返信メッセージ6を受信することを知る。テストシナリオ解釈実行部101は、送信すべき返信メッセージ6の内容を取得し、サービスDに対応する被呼出しサービス模擬部120に、その返信メッセージ6を送信する。返信メッセージ受付部114は、テストシナリオ解釈実行部101から返信メッセージ6を受信して、返信メッセージを受信した旨を返信メッセージ待合せ部115に通知する。   After confirming the received message, the test scenario interpretation execution unit 101 resumes the progress of the test scenario 150, reads the fifth term (# 5), and the program under test 160 receives the reply message 6 from the service D. Know. The test scenario interpretation execution unit 101 acquires the content of the reply message 6 to be transmitted, and transmits the reply message 6 to the called service simulation unit 120 corresponding to the service D. The reply message reception unit 114 receives the reply message 6 from the test scenario interpretation execution unit 101 and notifies the reply message waiting unit 115 that the reply message has been received.

返信メッセージ待合せ部115は、返信メッセージと返信メッセージ受理とが揃うと、返信メッセージ6を被テストプログラム実行部102に送信し、返信メッセージを送信した旨をテストシナリオ解釈実行部101に通知する。被テストプログラム実行部102は、返信メッセージ6を受信すると、サービスDに対する呼出しを完了して、被テストプログラム160の進行を再開する。また、テストシナリオ解釈実行部101は、返信メッセージを送信した旨の通知を受けると、テストシナリオ150の進行を再開する。   When the reply message and the reply message are received, the reply message queuing unit 115 transmits the reply message 6 to the test program execution unit 102 and notifies the test scenario interpretation execution unit 101 that the reply message has been transmitted. When the program under test execution unit 102 receives the reply message 6, it completes the call to the service D and resumes the progress of the program under test 160. When the test scenario interpretation execution unit 101 receives a notification that the reply message has been transmitted, the test scenario interpretation execution unit 101 resumes the progress of the test scenario 150.

本実施形態では、第1実施形態と同様に、被呼出しサービス模擬部120において、テストシナリオ解釈実行部101からのメッセージ受理と、被テストプログラム実行部102からのメッセージの送信とを、待ち合わせているため、テストシナリオ150で示された順序でメッセージの送受信が行われないと、テストシナリオ150が進行しなくなる。従って、本実施形態では、テストシナリオ150で示されたメッセージの送受信順序が、そのまま被テストプログラム160がメッセージを送受信すべき順序となるため、テストシナリオの可読性及びメンテナンス性を向上できる。   In the present embodiment, as in the first embodiment, the called service simulation unit 120 waits for message reception from the test scenario interpretation execution unit 101 and transmission of a message from the test program execution unit 102. Therefore, if messages are not transmitted and received in the order shown in the test scenario 150, the test scenario 150 does not progress. Therefore, in this embodiment, the message transmission / reception order shown in the test scenario 150 is the order in which the program under test 160 should transmit / receive the message as it is, so that the readability and maintainability of the test scenario can be improved.

また、本実施形態では、返信メッセージ受付部114及び返信メッセージ待合せ部115によって返信メッセージの待ち合わせを行っているため、被テストプログラム実行部101が、被呼出しサービス模擬部120を同期呼出しした際には、被テストプログラム実行部102が受け取る返信メッセージに関して、その返信メッセージを返すべき時点まで、その返信メッセージの作成及び被呼出しサービス模擬部120への受け渡しを遅れさせることができる。すなわち、この返信メッセージの待ち合わせ機構がない場合には、テストシナリオ解釈実行部101へメッセージを送信した後に、直ちに被呼出しサービス模擬部120から返信メッセージを送信することが必要であるため、被呼出しサービス模擬部120に、あらかじめ返信メッセージを設定しておく必要があるが、返信メッセージを待ち合わせることにより、被呼出しサービス模擬部120にあらかじめ返信メッセージを設定しておく必要がなく、テストシナリオ150において、返信メッセージを指定することが可能となる。この結果、テストシナリオの可読性を向上させることができる。   In this embodiment, since the reply message reception unit 114 and the reply message waiting unit 115 wait for the reply message, when the program under test execution unit 101 calls the called service simulation unit 120 synchronously, With respect to the reply message received by the program under test execution unit 102, the creation of the reply message and the delivery to the called service simulation part 120 can be delayed until the reply message is to be returned. In other words, if there is no mechanism for waiting for this reply message, it is necessary to send a reply message from the called service simulation unit 120 immediately after sending the message to the test scenario interpretation execution unit 101. Although it is necessary to set a reply message in the simulation unit 120 in advance, it is not necessary to set a reply message in the called service simulation unit 120 in advance by waiting for the reply message. A message can be specified. As a result, the readability of the test scenario can be improved.

図12は、本発明の第3実施形態のテストシステムの構成を示している。本実施形態では、コンピュータ100bは、被呼出しサービス模擬部(非同期)110と、被呼出しサービス模擬部(同期)120とを備えている。本実施形態のテストシステム10bでは、被呼出しサービス模擬部(非同期)110は、第1実施形態の被呼出しサービス模擬部110と同様な動作により、被テストプログラム実行部102から非同期で送信されたメッセージを、テストシナリオ解釈実行部101に送信する。被呼出しサービス模擬部(同期)120は、第2実施形態の被呼出しサービス模擬部120と同様な動作により、被テストプログラム実行部102から同期送信されたメッセージをテストシナリオ解釈実行部101に送信し、テストシナリオ解釈実行部101が送信したメッセージを被テストプログラム実行部102に送信する。   FIG. 12 shows the configuration of the test system according to the third embodiment of the present invention. In the present embodiment, the computer 100 b includes a called service simulation unit (asynchronous) 110 and a called service simulation unit (synchronous) 120. In the test system 10b of this embodiment, the called service simulation unit (asynchronous) 110 is a message transmitted asynchronously from the test program execution unit 102 by the same operation as the called service simulation unit 110 of the first embodiment. Is transmitted to the test scenario interpretation execution unit 101. The called service simulation unit (synchronization) 120 transmits a message synchronously transmitted from the test program execution unit 102 to the test scenario interpretation execution unit 101 by the same operation as the called service simulation unit 120 of the second embodiment. The message transmitted by the test scenario interpretation execution unit 101 is transmitted to the program under test execution unit 102.

例えば、被テストプログラム160が、図13に示すように、各外部サービスとの間でメッセージの送受信をする場合について考える。この場合、テストシナリオ150は、メッセージ送受信順序に従って、図14に示すように記述される。テストシナリオ150の第4項(#4)では、テストシナリオ解釈実行部101は、被呼出しサービス模擬部(非同期)110を介して、被テストプログラム実行部102によって送信されたメッセージ4を受信する。また、テストシナリオ150の第5項(#5)では、テストシナリオ解釈実行部101は、被呼出しサービス模擬部(同期)120を介して、メッセージ5を受信し、返信メッセージ6を被テストプログラム実行部102に返信する。   For example, consider a case where the program under test 160 transmits and receives messages to and from each external service as shown in FIG. In this case, the test scenario 150 is described as shown in FIG. 14 according to the message transmission / reception order. In the fourth item (# 4) of the test scenario 150, the test scenario interpretation execution unit 101 receives the message 4 transmitted by the test program execution unit 102 via the called service simulation unit (asynchronous) 110. In the fifth item (# 5) of the test scenario 150, the test scenario interpretation execution unit 101 receives the message 5 via the called service simulation unit (synchronization) 120 and executes the reply message 6 as the program under test execution. Reply to unit 102.

本実施形態では、被呼出しサービス模擬部(非同期)110と、被呼出しサービス模擬部(同期)120と備えることにより、被テストプログラム160に、同期送信によるメッセージ送信と、非同期送信によるメッセージ送信とが含まれる場合でも、テストが可能となる。その他の効果は、第1実施形態又は第2実施形態と同様である。   In this embodiment, by providing the called service simulation unit (asynchronous) 110 and the called service simulation unit (synchronous) 120, the program under test 160 can perform message transmission by synchronous transmission and message transmission by asynchronous transmission. Even if included, testing is possible. Other effects are the same as those of the first embodiment or the second embodiment.

なお、上記各実施形態では、メッセージ待合せ部112又は返信メッセージ待合せ部115において、(返信)メッセージ受理と(返信)メッセージ受信との双方が揃わないと(待ち合わせが完了しないと)、テストシナリオ150の進行が停止したままとなる。このような事態を回避するため、メッセージ待合せ部112及び返信メッセージ待合せ部115は、メッセージ受理又はメッセージ受信が通知されるとタイマを起動し、所定時間内に、他方が通知されない場合には、待ち合わせを終了して、テストシナリオ150を満たさないとして、テストに失敗した旨を出力させる構成を採用することができる。或いは、ポーリングを指定回数だけ実施しても待ち合わせが完了しないときには、テストに失敗した旨を出力させてもよい。これらの場合には、被テストプログラム160の誤りによって待ち合わせが完了せず、テストの実施が途中で止まる事態を避けることができる。   In each of the above embodiments, if both the (reply) message reception and the (reply) message reception are not completed (waiting is not completed) in the message waiting unit 112 or the reply message waiting unit 115, the test scenario 150 Progress remains stopped. In order to avoid such a situation, the message queuing unit 112 and the reply message queuing unit 115 start a timer when a message acceptance or message reception is notified, and if the other is not notified within a predetermined time, the message queuing unit 112 and the reply message queuing unit 115 It is possible to adopt a configuration in which the fact that the test has failed is output assuming that the test scenario 150 is not satisfied. Alternatively, if the waiting is not completed even if the polling is performed a specified number of times, a message indicating that the test has failed may be output. In these cases, it is possible to avoid a situation in which the waiting is not completed due to an error in the program under test 160 and the execution of the test stops midway.

また、図15に示すように、テストシナリオ解釈実行部101、被呼出しサービス模擬部110、120、及び、被テストプログラム呼出し部103と、被テストプログラム実行部102とを、それぞれ別のコンピュータ200(クライアント部)、300(サーバ部)上に実現して、クライアント部200とサーバ部300との間をネットワーク400で接続し、メッセージの送受信をネットワーク400を介して行う構成を採用することもできる。この場合には、ネットワークを経由したテストの実施が可能となり、リモートで動作する被テストプログラム160に対するテストを実施することができる。   Further, as shown in FIG. 15, a test scenario interpretation execution unit 101, a called service simulation unit 110, 120, a test program call unit 103, and a test program execution unit 102 are respectively connected to different computers 200 ( (Client part), 300 (server part), the structure which connects between the client part 200 and the server part 300 with the network 400, and transmits / receives a message via the network 400 is also employable. In this case, a test can be performed via the network, and a test can be performed on the program under test 160 that operates remotely.

図15に示すテストシステムは、典型的には、図16に示すコンピュータシステムによって実現できる。このコンピュータシステムの構成は、図2に示した構成を、通信装置2006、3006によって、ネットワーク4000を介して接続した構成に相当する。ネットワーク4000は、LANやWAN、インターネット等のネットワークとして構成される。通信装置2006、3006には、例えばイーサネットワークカード、モデル、ターミナルアダプタなど、ネットワーク4000を介して通信を行うものを用いることができる。コンピュータ2000は、テスト作成実施クライアントプログラム2010を読み込んで、これを実行することにより、クライアント部200(図15)として動作する。また、コンピュータ3000は、テスト実施サーバプログラム3010を読み込んで、サーバ部300として動作する。   The test system shown in FIG. 15 can be typically realized by a computer system shown in FIG. The configuration of this computer system corresponds to the configuration in which the configuration shown in FIG. 2 is connected via the network 4000 by the communication devices 2006 and 3006. The network 4000 is configured as a network such as a LAN, a WAN, or the Internet. As the communication devices 2006 and 3006, for example, an Ethernet work card, a model, a terminal adapter, or the like that performs communication via the network 4000 can be used. The computer 2000 operates as the client unit 200 (FIG. 15) by reading the test creation execution client program 2010 and executing it. Further, the computer 3000 reads the test execution server program 3010 and operates as the server unit 300.

以上、本発明をその好適な実施形態に基づいて説明したが、本発明のプログラムテスト装置、方法、及び、プログラムは、上記実施形態例にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。   Although the present invention has been described based on the preferred embodiment, the program test apparatus, method, and program of the present invention are not limited to the above-described embodiment example. Various modifications and changes are also included in the scope of the present invention.

本発明は、WS−BPELのようなWebサービスとの連携を記述したワークフローに対するテストの作成・実施といった用途に適用できる。また、ソケットを使ったネットワークプログラミングをした際のプログラムのテストの作成・実施といった用途にも適用可能である。   The present invention can be applied to uses such as creation / execution of a test for a workflow describing cooperation with a Web service such as WS-BPEL. Also, it can be applied to the purpose of creating and executing a program test when network programming using a socket is performed.

本発明の第1実施形態のプログラムテストシステムの構成を示すブロック図。The block diagram which shows the structure of the program test system of 1st Embodiment of this invention. テストシステム10を実現するコンピュータシステムの構成を示すブロック図。1 is a block diagram showing a configuration of a computer system that implements a test system 10. FIG. テストシステムの動作手順を示すフローチャート。The flowchart which shows the operation | movement procedure of a test system. 被テストプログラム実行部102側がメッセージを送信しテストシナリオ解釈実行部101がメッセージを受信する際の被呼出しサービス模擬部110の動作手順を示すフローチャート。7 is a flowchart showing an operation procedure of the called service simulation unit 110 when the test program execution unit 102 transmits a message and the test scenario interpretation execution unit 101 receives the message. 被テストプログラムと外部サービスとの間のメッセージ交換の様子を示すブロック図。The block diagram which shows the mode of the message exchange between a to-be-tested program and an external service. 図5に示す被テストプログラムをテストする際に使用されるテストシナリオを示す図。The figure which shows the test scenario used when testing the to-be-tested program shown in FIG. 本発明の第2実施形態のテストシステムの構成を示すブロック図。The block diagram which shows the structure of the test system of 2nd Embodiment of this invention. テストシステムの動作手順を示すフローチャート。The flowchart which shows the operation | movement procedure of a test system. 被テストプログラム実行部102がメッセージを同期送信して、返信メッセージを受信する際の被呼出しサービス模擬部120の動作手順を示すフローチャート。7 is a flowchart showing an operation procedure of the called service simulation unit 120 when the program under test execution unit 102 synchronously transmits a message and receives a reply message. 被テストプログラム160と外部サービスとの間のメッセージ交換の様子を示す図。The figure which shows the mode of the message exchange between the to-be-tested program 160 and an external service. 図10に示す被テストプログラムをテストする際に使用されるテストシナリオを示す図。The figure which shows the test scenario used when testing the to-be-tested program shown in FIG. 本発明の第3実施形態のテストシステムの構成を示すブロック図。The block diagram which shows the structure of the test system of 3rd Embodiment of this invention. 被テストプログラム160と外部サービスとの間のメッセージ交換の様子を示す図。The figure which shows the mode of the message exchange between the to-be-tested program 160 and an external service. 図13に示す被テストプログラムをテストする際に使用されるテストシナリオを示す図。The figure which shows the test scenario used when testing the to-be-tested program shown in FIG. 図1のテストシステムの変形例のテストシステムの構成を示すブロック図。The block diagram which shows the structure of the test system of the modification of the test system of FIG. 図15に示すテストシステムを実現するコンピュータシステムの構成を示すブロック図。The block diagram which shows the structure of the computer system which implement | achieves the test system shown in FIG. 非特許文献1に記載されたプログラムテストシステムにおけるテストの様子を示す模式図。The schematic diagram which shows the mode of the test in the program test system described in the nonpatent literature 1. FIG. 非特許文献1に記載されたプログラムテストシステムのテスト時の動作フローを示すフローチャート。9 is a flowchart showing an operation flow at the time of testing the program test system described in Non-Patent Document 1. 特許文献1に記載されたテストシステムの概略構成を示すブロック図。1 is a block diagram showing a schematic configuration of a test system described in Patent Document 1. FIG. 図19に記載のテストシステムの動作手順を示すフローチャート。The flowchart which shows the operation | movement procedure of the test system of FIG.

符号の説明Explanation of symbols

10:テストシステム
100:コンピュータ(中央処理装置、プロセッサ、データ処理装置)
101:テストシナリオ解釈実行部
102:被テストプログラム実行部
103:被テストプログラム呼出し部
110、120:被呼出しサービス模擬部
111:メッセージ受理受付部
112:メッセージ待合せ部
113:メッセージ受信部
114:返信メッセージ受付部
115:返信メッセージ待合せ部
150:テストシナリオ
160:被テストプログラム
180:テストシナリオ格納部
190:被テストプログラム格納部
200:クライアント部(コンピュータ)
300:サーバ部(コンピュータ)
400:ネットワーク
10: Test system 100: Computer (central processing unit, processor, data processing unit)
DESCRIPTION OF SYMBOLS 101: Test scenario interpretation execution part 102: Test program execution part 103: Test program call part 110, 120: Called service simulation part 111: Message reception reception part 112: Message waiting part 113: Message reception part 114: Reply message Reception unit 115: Reply message waiting unit 150: Test scenario 160: Program under test 180: Test scenario storage unit 190: Test program storage unit 200: Client unit (computer)
300: Server part (computer)
400: Network

Claims (13)

外部サービスとの間でメッセージの送受信を行いつつ処理を進行する被テストプログラムを、該被テストプログラムとの間で送受信すべきメッセージが記述されたテストシナリオに従ってテストするプログラムテスト装置であって、
前記テストシナリオを記憶装置から読み込み、該読み込んだテストシナリオを解釈して実行するテストシナリオ解釈実行部であって、前記テストシナリオに従って前記被テストプログラムを呼び出し元とするメッセージを受信する際には、メッセージを受理する旨のメッセージ受理信号を送信するテストシナリオ解釈実行部と、
前記被テストプログラムを読み込み、該読み込んだ被テストプログラムを実行する被テストプログラム実行部であって、少なくとも前記被テストプログラムを呼び出し元とするメッセージを送信する被テストプログラム実行部と、
前記メッセージ受理信号を受信し記憶するメッセージ受理受付部と、前記被テストプログラム実行部から送信されたメッセージを受信し記憶するメッセージ受信部と、前記メッセージ受理受付部がメッセージ受理信号を受信し、かつ、前記メッセージ受信部がメッセージを受信すると、前記メッセージ受信部が記憶したメッセージを前記テストシナリオ解釈実行部に送信するメッセージ待合せ部とを有する被呼出しサービス模擬部と、
を備えることを特徴とするプログラムテスト装置。
A program test apparatus for testing a program under test that proceeds with processing while transmitting / receiving a message to / from an external service according to a test scenario in which a message to be transmitted / received to / from the program under test is described,
A test scenario interpretation execution unit that reads the test scenario from a storage device, interprets and executes the read test scenario, and receives a message that calls the program under test according to the test scenario. A test scenario interpretation execution unit that transmits a message acceptance signal indicating that the message is accepted;
A test program execution unit that reads the program under test and executes the read program under test, and at least a program under test execution unit that transmits a message having the test program as a caller;
A message reception receiving unit for receiving and storing the message reception signal, a message reception unit for receiving and storing a message transmitted from the program under test execution unit, the message reception reception unit receiving the message reception signal, and A call service simulation unit having a message queuing unit that transmits a message stored in the message reception unit to the test scenario interpretation execution unit when the message reception unit receives the message;
A program test apparatus comprising:
前記テストシナリオ解釈実行部は、前記メッセージ受理信号を送信した後、前記被呼出しサービス模擬部から前記テストプログラムを呼び出し元とするメッセージを受信するまで、前記テストシナリオの進行を停止する、請求項1に記載のプログラムテスト装置。   The test scenario interpretation execution unit stops the progress of the test scenario after transmitting the message acceptance signal until receiving a message having the test program as a caller from the called service simulation unit. The program test apparatus described in 1. 前記メッセージ待合せ部は、前記メッセージ受理受付部によるメッセージ受理信号の受信、及び、前記メッセージ受信部によるメッセージの受信の何れか一方が発生してから、所定時間内に他方が発生しないと、前記テストシナリオ解釈実行部に、テストに失敗した旨を送信する、請求項1又は2に記載のプログラムテスト装置。   The message queuing unit receives the message reception signal by the message reception reception unit and the reception of the message by the message reception unit, and if the other does not occur within a predetermined time, the test The program test apparatus according to claim 1, wherein a message indicating that the test has failed is transmitted to the scenario interpretation execution unit. 前記メッセージ待合せ部は、前記テストシナリオ解釈実行部にメッセージを送信すると、被テストプログラムによる呼出しが完了した旨を前記被テストプログラム実行部に送信する、請求項1〜3の何れか一に記載のプログラムテスト装置。   The message queuing unit, when transmitting a message to the test scenario interpretation execution unit, transmits to the program under test execution unit that the call by the program under test is completed. Program test device. 前記被テストプログラム実行部は、前記被呼出しサービス模擬部にメッセージを送信した後、該被呼出しサービス模擬部から前記呼出しが完了した旨を受信するまで、被テストプログラムの進行を停止する、請求項4に記載のプログラムテスト装置。   The program under test execution unit, after transmitting a message to the called service simulation unit, stops the progress of the program under test until receiving a message that the call is completed from the called service simulation unit. 4. The program test apparatus according to 4. 前記被呼出しサービス模擬部は、前記テストシナリオ解釈実行部から送信された、前記被テストプログラムを呼び出し元とするメッセージに対する返信メッセージを受信し記憶する返信メッセージ受信部と、前記メッセージ待合せ部が被テストプログラムを呼び出し元とするメッセージをテストシナリオ解釈実行部に送信し、かつ、前記返信メッセージ受信部が前記返信メッセージを受信すると、前記返信メッセージ受信部が記憶した返信メッセージを前記被テストプログラム実行部に送信する返信メッセージ待合せ部とを更に有する、請求項1〜3の何れか一に記載のプログラムテスト装置。   The called service simulation unit includes a reply message receiving unit that receives and stores a reply message for a message that is transmitted from the test scenario interpretation execution unit and that has the program under test as a calling source, and the message waiting unit includes a test target When a message having a program as a caller is transmitted to the test scenario interpretation execution unit and the reply message receiving unit receives the reply message, the reply message stored by the reply message receiving unit is sent to the program under test execution unit. The program test apparatus according to claim 1, further comprising a reply message waiting unit to be transmitted. 前記被テストプログラム実行部は、前記被呼出しサービス模擬部にメッセージを送信した後、該被呼出しサービス模擬部から前記返信メッセージを受信するまで、被テストプログラムの進行を停止する、請求項6に記載のプログラムテスト装置。   The said program under test execution part stops progress of a program under test until it transmits the said reply message from the said callee service simulation part, after transmitting a message to the said callee service simulation part. Program test equipment. 前記返信メッセージ待合せ部は、前記被テストプログラム実行部に返信メッセージを送信すると、前記テストシナリオ解釈実行部に、返信メッセージの送信が完了した旨を送信する、請求項6又は7に記載のプログラムテスト装置。   8. The program test according to claim 6, wherein, when the reply message queuing unit transmits a reply message to the program under test execution unit, the test message interpretation execution unit transmits information indicating that transmission of the reply message is completed. apparatus. 前記テストシナリオ解釈実行部は、前記被呼出しサービス模擬部に返信メッセージを送信した後、該被呼出しサービス模擬部から前記返信メッセージの送信が完了した旨を受信するまで、テストシナリオの進行を停止する、請求項8に記載のプログラムテスト装置。   The test scenario interpretation execution unit stops the progress of the test scenario after transmitting a reply message to the called service simulation unit until receiving a notification that the transmission of the reply message is completed from the called service simulation unit The program test apparatus according to claim 8. 前記テストシナリオ解釈実行部は、前記返信メッセージの送信後、所定時間以内に、前記返信メッセージの送信が完了した旨を受信しないときには、テストに失敗した旨を出力する、請求項8又は9に記載のプログラムテスト装置。   The test scenario interpretation execution unit outputs that the test has failed when it does not receive that the transmission of the reply message is completed within a predetermined time after the transmission of the reply message. Program test equipment. 前記テストシナリオ解釈実行部は、テストシナリオを最後まで進行すると、テストに成功した旨を出力する、請求項1〜10の何れか一に記載のプログラムテスト装置。   The program test apparatus according to claim 1, wherein the test scenario interpretation execution unit outputs that the test is successful when the test scenario proceeds to the end. 外部サービスとの間でメッセージの送受信を行いつつ処理を進行する被テストプログラムを、該被テストプログラムとの間で送受信すべきメッセージが記述されたテストシナリオを解釈実行するテストシナリオ解釈実行部と、被テストプログラムに呼び出される外部サービスを模擬する被呼出しサービス模擬部とを備えるテスト装置を用いてテストするプログラムテスト方法であって、
前記テストシナリオ解釈実行部が、前記テストシナリオを記憶装置から読み込み、該読み込んだテストシナリオに従って、前記被テストプログラムを呼び出し元とするメッセージを受理する旨のメッセージ受理信号を送信するステップと、
前記被呼出しサービス模擬部が、前記テストシナリオ解釈実行部が送信したメッセージ受理信号を受信し記憶するステップと、
前記被呼出しサービス模擬部が、前記被テストプログラムを呼び出し元とするメッセージを受信し記憶するステップと、
前記被呼出しサービス模擬部が、前記メッセージ受理信号受信ステップでメッセージ受理信号を受信し、かつ、前記メッセージ受信ステップでメッセージを受信すると、前記記憶したメッセージを前記テストシナリオ解釈実行部に送信するステップと、
前記テストシナリオ解釈実行部が、前記被呼出しサービス模擬部を介して受信したメッセージが、テストシナリオで示されるメッセージと一致するか否かを検査するステップとを備えたことを特徴とするプログラムテスト方法。
A test scenario interpretation execution unit that interprets and executes a test scenario in which a message to be transmitted to and received from the test target program is described, while performing a process to be performed while transmitting and receiving a message to and from an external service; A program test method for testing using a test apparatus including a called service simulation unit for simulating an external service called by a test target program,
The test scenario interpretation execution unit reads the test scenario from a storage device, and transmits a message acceptance signal for accepting a message with the program under test as a caller according to the read test scenario;
The called service simulation unit receiving and storing the message acceptance signal transmitted by the test scenario interpretation execution unit;
The called service simulation unit receiving and storing a message having the program to be tested as a caller; and
A step of transmitting the stored message to the test scenario interpretation execution unit when the called service simulation unit receives a message reception signal in the message reception signal reception step and receives a message in the message reception step; ,
The test scenario interpretation execution unit includes a step of checking whether or not a message received via the called service simulation unit matches a message indicated in the test scenario. .
外部サービスとの間でメッセージの送受信を行いつつ処理を進行する被テストプログラムを、該被テストプログラムとの間で送受信すべきメッセージが記述されたテストシナリオに従ってテストする処理を、コンピュータに実行させるプログラムであって、前記コンピュータに、
前記テストシナリオを記憶装置から読み込み、該読み込んだテストシナリオに従って、前記被テストプログラムを呼び出し元とするメッセージを受理する旨のメッセージ受理信号を発生する処理と、
前記被テストプログラムを呼び出し元とするメッセージを受信し記憶する処理と、
前記メッセージ受理信号が発生し、かつ、前記被テストプログラムを呼び出し元とするメッセージを受信すると、前記記憶したメッセージと、テストシナリオに記述されたメッセージとが一致するか否かを検査する処理とを実行させることを特徴とするプログラム。
A program that causes a computer to execute a process for testing a program under test that proceeds with processing while transmitting / receiving messages to / from an external service according to a test scenario that describes a message to be transmitted / received to / from the program under test And the computer
A process of reading the test scenario from a storage device and generating a message acceptance signal to accept a message with the program under test as a caller in accordance with the read test scenario;
Processing for receiving and storing a message having the program under test as a caller;
When the message acceptance signal is generated and a message having the program under test as a caller is received, a process of checking whether or not the stored message matches the message described in the test scenario; A program characterized by being executed.
JP2005210292A 2005-07-20 2005-07-20 Program test apparatus, method, and program Expired - Fee Related JP4696744B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005210292A JP4696744B2 (en) 2005-07-20 2005-07-20 Program test apparatus, method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005210292A JP4696744B2 (en) 2005-07-20 2005-07-20 Program test apparatus, method, and program

Publications (2)

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

Family

ID=37786950

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005210292A Expired - Fee Related JP4696744B2 (en) 2005-07-20 2005-07-20 Program test apparatus, method, and program

Country Status (1)

Country Link
JP (1) JP4696744B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009037519A (en) * 2007-08-03 2009-02-19 Toshiba Corp Test scenario creating apparatus, stock trading test system and computer program
WO2009150788A1 (en) * 2008-06-10 2009-12-17 パナソニック株式会社 Api evaluation system in embedded device
JP2012080378A (en) * 2010-10-04 2012-04-19 Nec Commun Syst Ltd Protocol test device, protocol test method, and protocol test program
JP2015170203A (en) * 2014-03-07 2015-09-28 富士通株式会社 Verification method, verification program and verification device
KR20230114499A (en) * 2022-01-25 2023-08-01 한화시스템 주식회사 Apparatus and method for testing software

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05100906A (en) * 1991-10-04 1993-04-23 Hokuriku Nippon Denki Software Kk On-line program test support device
JPH0628219A (en) * 1992-07-10 1994-02-04 Matsushita Electric Ind Co Ltd Program operation testing device
JPH08263322A (en) * 1995-03-20 1996-10-11 Oki Electric Ind Co Ltd Test method and test device for object-oriented program
JPH08314760A (en) * 1995-05-23 1996-11-29 Hitachi Ltd Program development supporting device
JPH0973425A (en) * 1995-09-04 1997-03-18 Mitsubishi Electric Corp Client simulator
JP2000259450A (en) * 1999-03-09 2000-09-22 Toshiba Corp Object oriented message communication test device equipment and storage medium
JP2002073585A (en) * 2000-08-29 2002-03-12 Nec Software Hokuriku Ltd Debugging support device, debugging support method, and recording medium
JP2002366387A (en) * 2001-06-13 2002-12-20 Hitachi Ltd Automatic test system for software program
JP2005070835A (en) * 2003-08-25 2005-03-17 Fujitsu Ltd Test supporting program and test supporting method

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05100906A (en) * 1991-10-04 1993-04-23 Hokuriku Nippon Denki Software Kk On-line program test support device
JPH0628219A (en) * 1992-07-10 1994-02-04 Matsushita Electric Ind Co Ltd Program operation testing device
JPH08263322A (en) * 1995-03-20 1996-10-11 Oki Electric Ind Co Ltd Test method and test device for object-oriented program
JPH08314760A (en) * 1995-05-23 1996-11-29 Hitachi Ltd Program development supporting device
JPH0973425A (en) * 1995-09-04 1997-03-18 Mitsubishi Electric Corp Client simulator
JP2000259450A (en) * 1999-03-09 2000-09-22 Toshiba Corp Object oriented message communication test device equipment and storage medium
JP2002073585A (en) * 2000-08-29 2002-03-12 Nec Software Hokuriku Ltd Debugging support device, debugging support method, and recording medium
JP2002366387A (en) * 2001-06-13 2002-12-20 Hitachi Ltd Automatic test system for software program
JP2005070835A (en) * 2003-08-25 2005-03-17 Fujitsu Ltd Test supporting program and test supporting method

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009037519A (en) * 2007-08-03 2009-02-19 Toshiba Corp Test scenario creating apparatus, stock trading test system and computer program
WO2009150788A1 (en) * 2008-06-10 2009-12-17 パナソニック株式会社 Api evaluation system in embedded device
US8443381B2 (en) 2008-06-10 2013-05-14 Panasonic Corporation API evaluation system in embedded device
JP5337155B2 (en) * 2008-06-10 2013-11-06 パナソニック株式会社 API evaluation system for embedded devices
JP2012080378A (en) * 2010-10-04 2012-04-19 Nec Commun Syst Ltd Protocol test device, protocol test method, and protocol test program
JP2015170203A (en) * 2014-03-07 2015-09-28 富士通株式会社 Verification method, verification program and verification device
KR20230114499A (en) * 2022-01-25 2023-08-01 한화시스템 주식회사 Apparatus and method for testing software
KR102598881B1 (en) * 2022-01-25 2023-11-06 한화시스템 주식회사 Apparatus and method for testing software

Also Published As

Publication number Publication date
JP4696744B2 (en) 2011-06-08

Similar Documents

Publication Publication Date Title
US7284155B2 (en) Remote software support agent system with electronic documents for troubleshooting
CN108196915B (en) Code processing method and device based on application container engine and storage medium
US11245601B2 (en) Automated integrated test system and method thereof
US20070033441A1 (en) System for and method of multi-location test execution
US20080209405A1 (en) Distributed debugging for a visual programming language
CN110011875B (en) Dial testing method, device, equipment and computer readable storage medium
CN112187585A (en) Network protocol testing method and device
EP4119207A1 (en) Vibration control method and apparatus, and electronic device and computer-readable storage medium
JP4696744B2 (en) Program test apparatus, method, and program
JP5936103B2 (en) System, computer, method and program for calling Java method on client
CN112015654A (en) Method and apparatus for testing
CN111444103A (en) Automatic testing method for Web page and related equipment
CN111767229A (en) Performance test method, device and equipment
CN112988588B (en) Client software debugging method and device, storage medium and electronic equipment
US20020169863A1 (en) Multi-client to multi-server simulation environment control system (JULEP)
KR20200048633A (en) System and method for automatically testing software
CN113434384A (en) Pressure testing method and device
CN111708568B (en) Modularized development decoupling method and terminal
JP2010224870A (en) Web log-on control method, system, and program
CN112395194B (en) Method and device for accessing test platform
CN113230661A (en) Data synchronization method and device, computer readable medium and electronic equipment
CN114691486A (en) Program debugging method and device and computer equipment
JP6215033B2 (en) Test control apparatus, communication system, test control method, and test control program
CN108920172A (en) Program publication and call method and system for voice dialogue platform
JP2008305003A (en) Method and system for verifying operation of program performing multi-task communication

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