JP2010250583A - Program and method for generating application test, and application test device - Google Patents

Program and method for generating application test, and application test device Download PDF

Info

Publication number
JP2010250583A
JP2010250583A JP2009099703A JP2009099703A JP2010250583A JP 2010250583 A JP2010250583 A JP 2010250583A JP 2009099703 A JP2009099703 A JP 2009099703A JP 2009099703 A JP2009099703 A JP 2009099703A JP 2010250583 A JP2010250583 A JP 2010250583A
Authority
JP
Japan
Prior art keywords
instruction sequence
test
instruction
request
divided
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
JP2009099703A
Other languages
Japanese (ja)
Other versions
JP5463717B2 (en
Inventor
Yuji Yamaoka
裕司 山岡
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009099703A priority Critical patent/JP5463717B2/en
Publication of JP2010250583A publication Critical patent/JP2010250583A/en
Application granted granted Critical
Publication of JP5463717B2 publication Critical patent/JP5463717B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To reduce trouble of application test generation. <P>SOLUTION: An instruction string division means 11 reads an instruction string 21, and divides the instruction string by a division instruction. A communication log obtaining/classification means 12 reproduces the divided division instruction string, and outputs to a user agent 40 an operation instruction. The communication log obtaining/classification means 12 obtains a request transmitted by the user agent 40 according to the operation instruction and a communication log of a response to the request, and classifies them in each division instruction string. An automatic test generation means 13 generates a test nucleus changing the request of a target based on the classified communication log, and generates an automatic test 24 wherein the instruction string is combined. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

アプリケーションテスト生成プログラム、アプリケーションテスト生成方法及びアプリケーションテスト装置に関し、特に、ネットワークを介して所定のサービスを提供するアプリケーション装置のテストのためのアプリケーションテスト生成プログラム、アプリケーションテスト生成方法及びアプリケーションテスト装置に関する。   The present invention relates to an application test generation program, an application test generation method, and an application test apparatus, and more particularly to an application test generation program, an application test generation method, and an application test apparatus for testing an application apparatus that provides a predetermined service via a network.

近年、ネットワークを介してアプリケーション装置に接続し、所定のサービスを受ける利用形態が広く普及している。例えば、Webサーバが提供するWebアプリケーションは、クライアント・コンピュータのWebブラウザを操作して利用することができる。このようなアプリケーションの動作確認は、操作あるいはデータの一部を変更してテストを繰り返し行う必要がある。このため、その作業は膨大となり、テストの自動化が検討されてきた。   2. Description of the Related Art In recent years, usage forms that connect to application devices via a network and receive predetermined services have become widespread. For example, a Web application provided by a Web server can be used by operating a Web browser of a client computer. In order to check the operation of such an application, it is necessary to repeat the test by changing a part of the operation or data. For this reason, the work is enormous, and test automation has been studied.

ところで、アプリケーションテストの手順には、テスト対象のリクエストが通常処理される状況を作る作業と、テスト対象のリクエストをテストの目的に合うように改変し、レスポンスを検証する作業と、がある。以下の説明では前者の作業を「再現」、後者の作業を「テスト核」と呼ぶ。   By the way, the application test procedure includes a process of creating a situation in which a test target request is normally processed, and a process of modifying the test target request to meet the purpose of the test and verifying a response. In the following description, the former work is called “reproduction”, and the latter work is called “test nucleus”.

再現に適している自動テスト手法として、例えば、Webブラウザに対する操作を自動化するブラウザ操作方式と呼ばれる手法がある。ブラウザ操作方式としては、Selenium RC(HYPERLINK "http://selenium-rc.openqa.org/"http://selenium-rc.openqa.org/参照)がよく知られている。また、Webブラウザの操作履歴に基づいて、操作の一部や入力データの一部を変更してテストを自動生成し、繰り返し実行させる方法も提案されている(例えば、特許文献1参照)。   As an automatic test method suitable for reproduction, for example, there is a method called a browser operation method for automating operations on a Web browser. As a browser operation method, Selenium RC (HYPERLINK "http://selenium-rc.openqa.org/"http://selenium-rc.openqa.org/) is well known. There has also been proposed a method in which a test is automatically generated by changing a part of an operation or a part of input data based on an operation history of a Web browser and repeatedly executed (see, for example, Patent Document 1).

一方、テスト核に適している自動テスト手法として、例えば、通信途中のリクエスト・レスポンスを横取りし、リクエストの任意の部分を改変する通信横取り方式と呼ばれる手法がある。通信横取り方式では、Webブラウザの操作に応じてWebサーバに対して送信されたリクエストを横取りし、予め決められたシナリオに沿って任意の部分を改変し、改変されたリクエストをWebサーバに送信する。そして、このリクエストを処理したWebサーバからのレスポンスを横取りして検証する。なお、リクエストなどの改変は、インタラクティブに手動で行うこともできる。また、リクエストの中には、サーバ装置に引き渡すべき引数を含むものもあるため、これを検出し、改変処理のシナリオにパラメータとして組み込む方法も提案されている(例えば、特許文献2参照)。   On the other hand, as an automatic test method suitable for a test core, for example, there is a method called a communication preemption method that intercepts a request / response during communication and modifies an arbitrary part of the request. In the communication interception method, a request transmitted to a web server is intercepted in response to an operation of the web browser, an arbitrary part is modified according to a predetermined scenario, and the modified request is transmitted to the web server. . The response from the Web server that processed this request is intercepted and verified. Requests can be altered interactively manually. Further, since some requests include an argument to be delivered to the server device, a method has been proposed in which this is detected and incorporated as a parameter in a scenario of modification processing (see, for example, Patent Document 2).

特開2005−266954号公報JP 2005-266554 A 特開2007−264967号公報JP 2007-264967 A

しかし、従来のアプリケーションテストは、テスト生成の自動化が容易ではないという問題点があった。
上述のように、アプリケーションテストには、テスト対象のリクエストが通常処理される状況を作る再現と、テスト対象のリクエストをテストの目的に合うように改変するテスト核と、がある。
However, the conventional application test has a problem that it is not easy to automate test generation.
As described above, the application test includes a reproduction that creates a situation in which a request to be tested is normally processed, and a test kernel that modifies the request to be tested to suit the purpose of the test.

再現に適しているブラウザ操作方式は、ブラウザ利用者ができることの多くを自動化することができる。しかし、この方法はブラウザ上から操作できない項目をテストすることはできないため、テスト核には適さない。例えば、Ajax(Asynchronous JavaScript + XML)のような非同期的に生じるリクエストの改変とそのレスポンスの検証、JavaScript(登録商標)などが動的に生成するリクエストの改変、ブラウザ上に表示されないフォームデータの改変などはできない。   Browser operation methods suitable for reproduction can automate much of what a browser user can do. However, this method cannot test items that cannot be operated from the browser, so it is not suitable for the test core. For example, modification of requests that occur asynchronously such as Ajax (Asynchronous JavaScript + XML) and verification of their responses, modification of requests that are dynamically generated by JavaScript (registered trademark), modification of form data that is not displayed on the browser I can't.

一方、テスト核に適している通信横取り方式は、ブラウザ利用者の操作をシミュレートする能力は低いため、再現にはあまり適さない。
このように、ブラウザ操作方式は再現、通信横取り方式はテスト核に、それぞれ適しており、良いアプリケーションテストの自動化のためには、これらを組み合わせる必要があった。しかし、これらを組み合わせてテストを作成することは容易ではなかった。通信横取り方式では、テスト対象とするリクエスト・レスポンスだけを横取りするという仕組みがない。これは、リクエストからだけでは、リクエストがどのブラウザ操作に対応するのかを判断することは難しいことによる。従って、あるブラウザ操作に対応するリクエスト・レスポンスをテスト対象としたい場合でも、テスト対象以外のリクエスト・レスポンスも横取りしてしまう。このため、テスト全体が正しく実行されなくなる可能性がある。
On the other hand, the communication interception method suitable for the test core is not very suitable for reproduction because the ability to simulate the operation of the browser user is low.
As described above, the browser operation method is suitable for reproduction and the communication interception method is suitable for a test core, respectively. In order to automate a good application test, it is necessary to combine them. However, it was not easy to combine these to create a test. In the communication interception method, there is no mechanism for intercepting only the request / response to be tested. This is because it is difficult to determine which browser operation the request corresponds to only from the request. Therefore, even when a request / response corresponding to a certain browser operation is to be a test target, a request / response other than the test target is also intercepted. This can prevent the entire test from being executed correctly.

一例として、Webブラウザの操作を何回か行った後に表示されるテスト対象の入力画面において、ある操作を行ったときに送信されるリクエストを改変し、アプリケーションテストを行う場合について説明する。便宜的に、テスト対象の入力画面までのWebブラウザの操作によって通信されるリクエスト・レスポンスをR1,R2,R3とし、テスト対象のリクエスト・レスポンスをR4とする。アプリケーションテストでは、R1,R2,R3については改変を行わない再現で検証し、テスト対象のR4のみをリクエストを改変するテスト核で検証するという制御を行うことが望ましい。しかし、上述のように、ブラウザ操作方式では、R1,R2,R3の再現を行うことはできるが、R4のリクエスト改変はできない。一方、通信横取り方式では、R1,R2,R3,R4に対応するリクエストを識別できない。このため、R4についてのみリクエストを改変するということは難しい。   As an example, a case will be described in which an application test is performed by modifying a request transmitted when a certain operation is performed on a test target input screen that is displayed after the web browser is operated several times. For convenience, R1, R2, and R3 are the requests and responses communicated by the operation of the Web browser up to the test target input screen, and R4 is the request and response that is the test target. In the application test, it is desirable to perform control such that R1, R2, and R3 are verified by reproduction without modification, and only R4 to be tested is verified by a test nucleus that modifies the request. However, as described above, the browser operation method can reproduce R1, R2, and R3, but cannot change the request of R4. On the other hand, in the communication interception method, requests corresponding to R1, R2, R3, and R4 cannot be identified. For this reason, it is difficult to modify the request only for R4.

このように、再現とテスト核とは、異なる方式で行われるため、双方の機能を満たすアプリケーションテストの自動生成は容易ではなかった。このため、アプリケーションテストの生成及び実行制御は、人手で行うほかなく、多大な手間と時間を要していた。   Thus, since the reproduction and the test core are performed in different ways, it is not easy to automatically generate an application test that satisfies both functions. For this reason, generation and execution control of the application test must be performed manually, requiring a great deal of labor and time.

このような点に鑑み、アプリケーションテスト生成を自動化し、テスト作成の手間を軽減することが可能なアプリケーションテスト生成プログラム、アプリケーションテスト生成方法及びアプリケーションテスト装置を提供することを目的とする。   In view of these points, it is an object of the present invention to provide an application test generation program, an application test generation method, and an application test apparatus capable of automating application test generation and reducing the labor of test generation.

上記課題を解決するために、ネットワークを介して所定のサービスを提供するアプリケーション装置のテストのためのアプリケーションテスト生成プログラムが提供される。このアプリケーションテスト生成プログラムは、コンピュータを、命令列分割手段、通信ログ取得・分類手段及び自動テスト生成手段として機能させる。命令列分割手段は、所定のサービスの提供を受けるユーザエージェントに対し、アプリケーション装置に対するテスト対象のリクエストの送信及びリクエストに対するレスポンスの受信に応じた処理を含む所定の処理の実行を指示する命令から成る命令列を取得する。そして、命令列の表す処理が区切れる区切り命令を命令列から検出し、区切り命令ごとに命令列を分割して、分割命令列を生成する。通信ログ取得・分割手段は、分割命令列ごとに、分割命令列に含まれる命令列に基づいてユーザエージェントへの指示を再生して出力する。そして、ユーザエージェントが送信したリクエストと、リクエストに対応してアプリケーション装置から送信されたレスポンスと、を通信ログとして取得する。この通信ログを、通信ログ取得時に再生した分割命令列に対応付けて記憶手段に記憶し、通信ログを分割命令列ごとに分類したログ分類表を生成する。自動テスト生成手段は、ログ分類表からテスト対象のリクエストを発生させた命令列を含む分割命令列に対応付けられている前記通信ログを抽出する。そして、抽出された通信ログに基づいてリクエストの改変を含むテスト手順を記述したテスト核を生成するとともに、分割命令列とテスト核とを協働して実行させる自動テストを生成する。   In order to solve the above problems, an application test generation program for testing an application device that provides a predetermined service via a network is provided. The application test generation program causes a computer to function as an instruction sequence dividing unit, a communication log acquisition / classification unit, and an automatic test generation unit. The instruction sequence dividing unit includes an instruction for instructing a user agent receiving a predetermined service to execute a predetermined process including a process according to transmission of a test target request to the application apparatus and reception of a response to the request. Get the instruction sequence. Then, a delimiter instruction in which the process represented by the instruction sequence is delimited is detected from the instruction sequence, and the instruction sequence is divided for each delimiter instruction to generate a divided instruction sequence. The communication log obtaining / dividing unit reproduces and outputs an instruction to the user agent based on the instruction sequence included in the divided instruction sequence for each divided instruction sequence. Then, the request transmitted by the user agent and the response transmitted from the application apparatus in response to the request are acquired as a communication log. This communication log is stored in the storage means in association with the divided instruction sequence reproduced at the time of acquiring the communication log, and a log classification table in which the communication log is classified for each divided instruction sequence is generated. The automatic test generation means extracts the communication log associated with the divided instruction sequence including the instruction sequence that generated the test target request from the log classification table. Then, based on the extracted communication log, a test nucleus describing a test procedure including request modification is generated, and an automatic test for causing the divided instruction sequence and the test nucleus to be executed in cooperation is generated.

このようなアプリケーションテスト生成プログラムによれば、コンピュータを、アプリケーションテスト生成装置として機能させる。所定のサービスの提供を受けるユーザエージェントは、アプリケーション装置に対し、サービスを要求するリクエストを送信し、レスポンスを得て所定の処理を行う。アプリケーションテスト生成装置は、ユーザエージェントに対し、アプリケーション装置に対するテスト対象のリクエストの送信及びレスポンス処理を含む所定の処理の実行を指示する命令から成る命令列を取得する。そして、命令列に含まれる区切り命令によって命令列を分割し、分割命令列を生成する。次に、分割命令列ごとに、分割命令列を再生し、ユーザエージェントに出力して所定の処理を実行させる。このとき、ユーザエージェントが送信したリクエストと、これに対するレスポンスとを通信ログとして取得し、再生した分割命令列に対応付けて記憶手段に記憶する。分割命令列ごとにこの手順を繰り返し、通信ログを分割命令列ごとに分類したログ分類表を生成する。次に、ログ分類表に基づき、テスト対象のリクエストを含む通信ログを抽出し、リクエストの改変を含むテスト手順を記述したテスト核を生成する。こうして生成されたテスト核と分割命令列とを組み合わせ、分割命令列とテスト核を協働して実行させる自動テストを生成する。   According to such an application test generation program, the computer is caused to function as an application test generation device. A user agent receiving provision of a predetermined service transmits a request for requesting a service to the application apparatus, obtains a response, and performs predetermined processing. The application test generation apparatus acquires an instruction sequence including instructions for instructing the user agent to execute a predetermined process including a transmission of a request to be tested to the application apparatus and a response process. Then, the instruction sequence is divided by a delimiter instruction included in the instruction sequence to generate a divided instruction sequence. Next, for each divided instruction sequence, the divided instruction sequence is reproduced and output to the user agent to execute a predetermined process. At this time, the request transmitted by the user agent and the response to the request are acquired as a communication log, and stored in the storage unit in association with the reproduced divided instruction sequence. This procedure is repeated for each divided instruction sequence to generate a log classification table in which the communication log is classified for each divided instruction sequence. Next, based on the log classification table, a communication log including a request to be tested is extracted, and a test nucleus describing a test procedure including request modification is generated. The test kernel and the divided instruction sequence generated in this way are combined to generate an automatic test for executing the divided instruction sequence and the test nucleus in cooperation.

また、上記課題を解決するために、コンピュータに、上記の処理機能によって実現される処理手順を実行させるアプリケーションテスト生成方法と、アプリケーションテストを実行するアプリケーションテスト装置と、が提供される。   In order to solve the above problems, an application test generation method for causing a computer to execute a processing procedure realized by the above processing function and an application test apparatus for executing an application test are provided.

開示のアプリケーションテスト生成プログラム、アプリケーションテスト生成方法及びアプリケーションテスト装置によれば、再現テストと、テスト核テストとを協働して実行させることができるアプリケーションテストを自動的に生成することができる。これによって、アプリケーションテストの作成に要する手間を軽減することができる。   According to the disclosed application test generation program, application test generation method, and application test apparatus, it is possible to automatically generate an application test capable of executing a reproduction test and a test core test in cooperation with each other. This can reduce the effort required to create an application test.

発明の概要を示した図である。It is the figure which showed the outline | summary of invention. 実施の形態のシステムのハードウェア構成を示した図である。It is the figure which showed the hardware constitutions of the system of embodiment. テスト生成装置のソフトウェア構成を示した図である。It is the figure which showed the software structure of the test production | generation apparatus. 命令列(Selenese)の一例を示した図である。It is the figure which showed an example of the command sequence (Selenese). 命令列分割表の一例を示した図である。It is the figure which showed an example of the instruction sequence division table. ログ群(d1〜d3)の一例を示した図である。It is the figure which showed an example of the log group (d1-d3). ログ群(d4〜d9)の一例を示した図である。It is the figure which showed an example of the log group (d4-d9). ログ分類表の一例を示した図である。It is the figure which showed an example of the log classification table. アプリケーションテスト生成処理の手順を示したフローチャートである。It is the flowchart which showed the procedure of the application test production | generation process. 命令列分割処理の手順を示したフローチャートである。It is the flowchart which showed the procedure of instruction sequence division processing. 通信ログ取得・分類処理の手順を示したフローチャートである。It is the flowchart which showed the procedure of the communication log acquisition and classification process. 自動テスト装置の構成を示した図である。It is the figure which showed the structure of the automatic test apparatus.

以下、実施の形態を図面を参照して説明する。まず、発明の概要について説明し、その後、具体的な内容を説明する。
図1は、発明の概要を示した図である。
Hereinafter, embodiments will be described with reference to the drawings. First, an outline of the invention will be described, and then specific contents will be described.
FIG. 1 is a diagram showing an outline of the invention.

テスト生成装置10は、所定のサービスを提供するアプリケーション装置として動作するサーバ60に、ネットワークを介して接続する。そして、サーバ60のアプリケーションプログラムを対象とするアプリケーションテストを生成する。   The test generation apparatus 10 is connected to a server 60 that operates as an application apparatus that provides a predetermined service via a network. Then, an application test for the application program of the server 60 is generated.

ここで、ユーザエージェント40とサーバ60の関係について説明する。ユーザエージェント40は、ユーザから指示を受けたとき、指示に対応するリクエストをサーバ60に送信する。サーバ60は、リクエストに対応する処理を実行し、レスポンスを返す。そして、ユーザエージェント40は、応答として得られたレスポンスに基づくサービスをユーザに提供する。例えば、ユーザエージェント40は、表示画面上に操作ボタンを表示しておく。ユーザが操作ボタンを操作して指示すると、操作ボタンに応じた情報を要求するリクエストをサーバ60に送信する。サーバ60から要求された情報を含むレスポンスが送られてきたときは、レスポンスに基づく表示を行い、ユーザに情報を提供する。   Here, the relationship between the user agent 40 and the server 60 will be described. When receiving an instruction from the user, the user agent 40 transmits a request corresponding to the instruction to the server 60. The server 60 executes processing corresponding to the request and returns a response. Then, the user agent 40 provides a service based on the response obtained as a response to the user. For example, the user agent 40 displays operation buttons on the display screen. When the user operates and operates the operation button, a request for requesting information corresponding to the operation button is transmitted to the server 60. When a response including the requested information is sent from the server 60, a display based on the response is performed and the information is provided to the user.

なお、通信ログ取得装置50は、ユーザエージェント40と、サーバ60との間で交換されるリクエスト及びレスポンスを中継し、通過したリクエスト及びレスポンスを通信ログとして残す処理を行う。   The communication log acquisition device 50 relays requests and responses exchanged between the user agent 40 and the server 60, and performs processing for leaving the passed requests and responses as communication logs.

テスト生成装置10は命令列分割手段11、通信ログ取得・分類手段12及び自動テスト生成手段13の各処理手段と、記憶手段14とを有し、サーバ60のアプリケーションテストを生成する。各処理手段は、コンピュータが、アプリケーションテスト生成プログラムを実行することにより、その処理機能を実現する。   The test generation apparatus 10 includes processing units such as an instruction sequence division unit 11, a communication log acquisition / classification unit 12, and an automatic test generation unit 13, and a storage unit 14, and generates an application test for the server 60. Each processing means realizes its processing function by a computer executing an application test generation program.

命令列分割手段11は、命令列21を取得し、所定の区切り命令で命令列を分割する。命令列21には、ユーザの指令と同様の操作命令をユーザエージェント40に出力することを指示する命令が実行順に記述されている。例えば、ユーザエージェント40に対し、「表示画面上に表示されている最初のリンクをクリックせよ」というような操作命令が記述される。この命令列21に基づいて、ユーザエージェント40に対する操作命令を再生することにより、ユーザができることの多くを自動化することができる。命令列分割手段11では、この命令列21に記述される命令を解析し、命令列から再生される操作命令が区切れる区切り命令を検出する。区切り命令は、予めユーザが設定しておいてもよい。例えば、ユーザエージェント40の表示画面でリンクが設定されているアイコンをクリックしてあるページを開くという操作について、「アイコンをクリック」、「ページが読込まれるのを待つ」、「ページが要求したものかをチェックする」という命令列が記述されていたとする。この命令の中で処理が区切られる命令列を検出し、区切り命令とする。この場合、「アイコンをクリック」と、「ページが読込まれるのを待つ」という一連の操作命令がエージェント40で実行されると、リクエストが送信され、それに対するレスポンスが完了したと推定される。そこで、「ページが読込まれるのを待つ」、あるいは、「ページが要求したものかをチェックする」を区切り命令とする。これは、ユーザエージェント40がリクエストをしてレスポンスを受けた後に状態が安定したことを示唆する命令と言い換えることもできる。命令列分割手段11は、指定された区切り命令を表す文字パターンと、命令列21の各命令列の文字パターンとを照合し、一致するものを命令列から検出する。そして、区切り命令ごとに命令列を分割し、分割命令列を生成する。どこで分割したかは、命令列分割表22に登録しておく。   The instruction sequence dividing means 11 acquires the instruction sequence 21 and divides the instruction sequence with a predetermined delimiter instruction. In the instruction sequence 21, instructions instructing to output to the user agent 40 an operation instruction similar to a user instruction are described in the order of execution. For example, an operation command such as “click on the first link displayed on the display screen” is described for the user agent 40. By reproducing an operation command for the user agent 40 based on the command sequence 21, much of what the user can do can be automated. The instruction sequence dividing means 11 analyzes the instruction described in the instruction sequence 21 and detects a delimiter instruction that delimits an operation instruction reproduced from the instruction sequence. The separation command may be set in advance by the user. For example, with respect to an operation of clicking on an icon for which a link is set on the display screen of the user agent 40 to open a page, “click icon”, “wait for page to load”, “page requested It is assumed that an instruction sequence “check whether it is a thing” is described. An instruction sequence in which processing is delimited is detected in this instruction and is set as a delimiter instruction. In this case, when a series of operation instructions “click on icon” and “wait for page to be read” are executed by the agent 40, it is estimated that a request is transmitted and a response to the request is completed. Therefore, “wait for the page to be read” or “check whether the page is requested” is set as a delimiter instruction. This can be paraphrased as an instruction indicating that the state has been stabilized after the user agent 40 makes a request and receives a response. The instruction sequence dividing means 11 collates the character pattern representing the designated delimiter instruction with the character pattern of each instruction sequence in the instruction sequence 21, and detects a match from the instruction sequence. Then, the instruction sequence is divided for each delimiter instruction to generate a divided instruction sequence. The location of the division is registered in the instruction sequence division table 22.

通信ログ取得・分類手段12は、分割命令列を再生してユーザエージェント40に操作命令を出力する。そして、このときの通信ログを分割命令列ごとに分類する。操作命令に応じた処理を実行するときにユーザエージェント40から送信されたリクエストと、リクエストを受けて所定のアプリケーション処理を行ったサーバ60からのレスポンスは、通信ログ取得装置50によって通信ログとして記録される。通信ログ取得・分類手段12は、分割命令列を再生し、このとき通信ログ取得装置50から取得した通信ログを再生した分割命令列に対応付け、記憶手段14に格納する。これを分割命令列ごとに繰り返すことにより、分割命令列ごとに分類された通信ログが得られる。具体的には、通信ログと、このときに再生された分割命令列とを対応付け、その対応関係をログ分類表23に登録する。上記の例で、「ページが要求したものかをチェックする」命令を区切り命令とし、分割命令列を実行すると、「アイコンをクリック」から区切り命令までの処理で発行されたリクエストと、レスポンスとが通信ログとして記録される。こうして、分割命令列と、これに対応する通信ログとの対応関係が、ログ分類表23に登録される。   The communication log acquisition / classification unit 12 reproduces the divided instruction sequence and outputs an operation instruction to the user agent 40. Then, the communication log at this time is classified for each divided instruction sequence. The request transmitted from the user agent 40 when executing the process according to the operation command and the response from the server 60 that has performed the predetermined application process in response to the request are recorded as a communication log by the communication log acquisition device 50. The The communication log acquisition / classification unit 12 reproduces the divided instruction sequence, and stores the communication log acquired from the communication log acquisition device 50 at this time in the storage unit 14 in association with the reproduced divided instruction sequence. By repeating this for each divided instruction sequence, a communication log classified for each divided instruction sequence is obtained. Specifically, the communication log is associated with the divided instruction sequence reproduced at this time, and the correspondence is registered in the log classification table 23. In the above example, when the instruction “Check whether the page requested” is a delimiter instruction and the split instruction sequence is executed, the request issued in the process from “click icon” to the delimiter instruction and the response are Recorded as a communication log. In this way, the correspondence relationship between the divided instruction sequence and the communication log corresponding thereto is registered in the log classification table 23.

自動テスト生成手段13は、ログ分類表23に基づいて、テスト核を生成するテスト対象のリクエストに対応する通信ログを抽出する。例えば、テスト核を通信ログに含まれるリクエストの各フォームパラメータについて1つずつ生成する場合には、テスト対象のリクエストは、フォームパラメータを含むリクエストになる。そして、抽出された通信ログに基づいて、リクエストの改変を含むテスト手順を記述したテスト核を生成する。例えば、リクエストの各フォームパラメータについて、その値を無効な値に改変する手順が生成される。さらに、テスト核を分割命令列と組み合わせ、分割命令列とテスト核とを協働して実行させる自動テストを生成する。   Based on the log classification table 23, the automatic test generation unit 13 extracts a communication log corresponding to a test target request for generating a test nucleus. For example, when one test kernel is generated for each form parameter of the request included in the communication log, the request to be tested is a request including the form parameter. Then, based on the extracted communication log, a test kernel describing a test procedure including request modification is generated. For example, for each form parameter of the request, a procedure for changing the value to an invalid value is generated. Further, the test kernel is combined with the divided instruction sequence, and an automatic test is generated for executing the divided instruction sequence and the test nucleus in cooperation.

記憶手段14には、命令列分割手段11によって分割された命令列の区分を示した命令列分割表22、分割命令列と通信ログとを対応付けたログ分類表23などの情報が記憶される。   The storage unit 14 stores information such as an instruction sequence division table 22 that indicates the division of the instruction sequence divided by the instruction sequence division unit 11 and a log classification table 23 that associates the divided instruction sequence with the communication log. .

このような構成のテスト生成装置10の動作及びアプリケーションテスト生成方法について説明する。
テスト生成装置10は、処理が開始されると、ユーザエージェント40への操作命令の出力を指示する命令列21を取得する。命令列分割手段11は、区切り命令と命令列の命令とを照合し、一致する区切り命令を検出する。そして、検出された区切り命令で命令列を分割する。区切り命令は、サーバ60の対応処理が区切られる命令、例えば、ユーザエージェント40がリクエストをしてレスポンスを受けた後に状態が安定したことを示唆する命令が予め設定される。分割した命令列に関する情報は、命令列分割表22として記憶手段14に格納される。
An operation of the test generation apparatus 10 having such a configuration and an application test generation method will be described.
When the process is started, the test generation apparatus 10 acquires an instruction sequence 21 that instructs the user agent 40 to output an operation instruction. The instruction sequence dividing unit 11 collates the delimiter instruction with the instruction in the instruction sequence, and detects a matching delimiter instruction. Then, the instruction string is divided by the detected delimiter instruction. As the delimiter instruction, an instruction for delimiting the corresponding processing of the server 60, for example, an instruction indicating that the state has been stabilized after the user agent 40 makes a request and receives a response is set in advance. Information relating to the divided instruction sequence is stored in the storage unit 14 as the instruction sequence division table 22.

通信ログ取得・分類手段12は、命令列分割表22に基づいて、分割命令列単位で命令列を再生し、ユーザエージェント40への操作命令を出力する。ユーザエージェント40は、操作命令に応じてリクエストをサーバ60に送信する。サーバ60は、リクエストに応じたアプリケーション処理を行い、レスポンスを返す。このときのリクエストとレスポンスは、通信ログ取得装置50が、通信ログとして記録している。通信ログ取得・分類手段12は、分割命令列再生時の通信ログを通信ログ取得装置50から取得し、分割命令列に対応付け、その対応関係をログ分類表23に登録する。分割命令列ごとに、分割命令列の再生と、そのときの通信ログの取得とログ分類表23への登録を行うことにより、ログ分類表23には、分割命令列ごとに分類された通信ログの情報が登録される。   The communication log acquisition / classification unit 12 reproduces the instruction sequence in units of the divided instruction sequence based on the instruction sequence division table 22 and outputs an operation instruction to the user agent 40. The user agent 40 transmits a request to the server 60 according to the operation command. The server 60 performs application processing according to the request and returns a response. The request and response at this time are recorded as a communication log by the communication log acquisition device 50. The communication log acquisition / classification unit 12 acquires the communication log at the time of reproduction of the divided instruction sequence from the communication log acquisition device 50, associates it with the divided instruction sequence, and registers the correspondence relationship in the log classification table 23. For each divided instruction sequence, reproduction of the divided instruction sequence, acquisition of the communication log at that time, and registration in the log classification table 23 result in the log classification table 23 displaying the communication log classified for each divided instruction sequence. Is registered.

自動テスト生成手段13は、ログ分類表23に基づいてテスト核を生成するテスト対象のリクエストに対応する通信ログを抽出する。そして、抽出した通信ログに基づいて、リクエストの改変を含むテスト手順を指示したテスト核を生成する。テスト核は、分割命令列と組み合わせられ、分割命令列とテスト核とを協働して実行させる自動テスト24が生成される。例えば、テスト核が生成されたリクエストを含む分割命令列が実行されるとき、このテスト核も実行させるように対応付けられる。リクエストにテスト核が生成されていない分割命令列では、テスト核は実行させない。   The automatic test generation means 13 extracts a communication log corresponding to a test target request for generating a test nucleus based on the log classification table 23. Then, based on the extracted communication log, a test nucleus instructing a test procedure including request modification is generated. The test kernel is combined with the divided instruction sequence, and an automatic test 24 is generated to execute the divided instruction sequence and the test nucleus in cooperation. For example, when a divided instruction sequence including a request for which a test nucleus is generated is executed, the test nucleus is associated with the execution. The test kernel is not executed in the divided instruction sequence in which the test kernel is not generated in the request.

これにより、再現とテスト核とを組み合わせた自動テスト24が生成される。自動テスト24が実行されると、命令列21に設定された命令列が分割命令列単位で順次再生される。このとき、命令列にテスト核が対応付けられていなければ、再現のみが実行される。すなわち、命令列に基づいてユーザエージェント40へ操作指示を行い、ユーザの操作を自動的に再現する作業のみが行われる。そして、命令列にテスト核が対応付けられていれば、再現とともにテスト核が実行される。例えば、再現によって再生された操作命令に応じてユーザエージェント40が送信したテスト対象のリクエストを横取りし、横取りしたリクエストをテスト核で改変した後、サーバ60へ送信することができる。   As a result, an automatic test 24 that combines the reproduction and the test kernel is generated. When the automatic test 24 is executed, the instruction sequence set in the instruction sequence 21 is sequentially reproduced in divided instruction sequence units. At this time, if a test kernel is not associated with the instruction sequence, only reproduction is executed. That is, only the operation of instructing the user agent 40 based on the instruction sequence and automatically reproducing the user's operation is performed. If a test nucleus is associated with the instruction sequence, the test nucleus is executed with reproduction. For example, a test target request transmitted by the user agent 40 according to an operation command reproduced by reproduction can be intercepted, and the intercepted request can be modified with a test kernel and then transmitted to the server 60.

このように、テスト生成装置10によれば、再現とテスト核とを協働させることの可能なアプリケーションテストを自動生成することが可能となる。また、生成されたアプリケーションテストを使ったテストでは、テスト対象のリクエストが発生するときのみテスト核を実行させ、サーバ60の動作確認を行うことが可能となる。   As described above, according to the test generation device 10, it is possible to automatically generate an application test capable of cooperating the reproduction and the test nucleus. In the test using the generated application test, it is possible to check the operation of the server 60 by causing the test kernel to be executed only when a request to be tested occurs.

以下、ユーザエージェント40がWebブラウザであり、サーバ60がWebアプリケーションであるアプリケーションテスト生成を例にとり、実施の形態を説明する。
図2は、実施の形態のシステムのハードウェア構成を示した図である。
Hereinafter, an embodiment will be described by taking application test generation in which the user agent 40 is a Web browser and the server 60 is a Web application as an example.
FIG. 2 is a diagram illustrating a hardware configuration of the system according to the embodiment.

テスト生成装置100は、ネットワーク700を介して、テスト対象のアプリケーションを搭載するサーバ600に接続する。
テスト生成装置100のハードウェア構成について説明する。テスト生成装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、及び通信インタフェース106が接続されている。
The test generation apparatus 100 is connected via a network 700 to a server 600 that mounts an application to be tested.
A hardware configuration of the test generation apparatus 100 will be described. The entire test generation apparatus 100 is controlled by a CPU (Central Processing Unit) 101. A random access memory (RAM) 102, a hard disk drive (HDD) 103, a graphic processing device 104, an input interface 105, and a communication interface 106 are connected to the CPU 101 via a bus 107.

RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションのプログラムが格納される。グラフィック処理装置104には、モニタ108が接続されており、CPU101からの命令に従って画像をモニタ108の画面に表示させる。入力インタフェース105には、キーボード109aやマウス109bが接続されており、キーボード109aやマウス109bから送られてくる信号を、バス107を介してCPU101に送信する。通信インタフェース106は、ネットワーク700に接続されており、ネットワーク700を介してサーバ600との間でデータの送受信を行う。   The RAM 102 temporarily stores at least part of an OS (Operating System) program and application programs to be executed by the CPU 101. The RAM 102 stores various data necessary for processing by the CPU 101. The HDD 103 stores the OS and application programs. A monitor 108 is connected to the graphic processing device 104, and an image is displayed on the screen of the monitor 108 in accordance with a command from the CPU 101. A keyboard 109 a and a mouse 109 b are connected to the input interface 105, and signals transmitted from the keyboard 109 a and the mouse 109 b are transmitted to the CPU 101 via the bus 107. The communication interface 106 is connected to the network 700 and transmits / receives data to / from the server 600 via the network 700.

このようなハードウェア構成によって、テスト生成装置100の処理機能を実現することができる。
次に、テスト生成装置100のソフトウェア構成について説明する。図3は、テスト生成装置のソフトウェア構成を示した図である。
With such a hardware configuration, the processing function of the test generation apparatus 100 can be realized.
Next, the software configuration of the test generation apparatus 100 will be described. FIG. 3 is a diagram illustrating a software configuration of the test generation apparatus.

テスト生成装置100は、テスト生成部110、Webブラウザ(以下、ブラウザとする)120、ブラウザ操作部130、ログ取得部140及び記憶部150を有し、ネットワークを介してサーバ600と接続する。   The test generation apparatus 100 includes a test generation unit 110, a Web browser (hereinafter referred to as a browser) 120, a browser operation unit 130, a log acquisition unit 140, and a storage unit 150, and is connected to the server 600 via a network.

テスト生成部110は、ブラウザ操作部130を制御し、命令列に従ってブラウザ120への操作を自動再生させる。また、ログ取得部140を制御し、ブラウザ120とサーバ600との間の通信ログを取得する。そして取得した通信ログと、命令列とを協働させて実行するアプリケーションテストを自動生成する。詳細は後述する。   The test generation unit 110 controls the browser operation unit 130 to automatically reproduce the operation on the browser 120 according to the instruction sequence. In addition, the log acquisition unit 140 is controlled to acquire a communication log between the browser 120 and the server 600. Then, an application test for executing the acquired communication log and the instruction sequence in cooperation with each other is automatically generated. Details will be described later.

ブラウザ120は、サーバ600が提供するHTML(Hyper Text Markup Language)ファイルや画像ファイル、音楽ファイルなどをダウンロードし、モニタ108、あるいは音声出力装置に再生出力する。表示画面の操作入力などに応じてリクエストをサーバ600に送信し、サーバ600からのレスポンスからレイアウトを解析して表示・再生する。   The browser 120 downloads an HTML (Hyper Text Markup Language) file, an image file, a music file, and the like provided by the server 600, and reproduces and outputs the file to the monitor 108 or an audio output device. A request is transmitted to the server 600 in response to an operation input on the display screen, etc., and the layout is analyzed from the response from the server 600 and displayed / reproduced.

ブラウザ操作部130は、ブラウザ120に対する命令列を再生し、ブラウザ120への操作命令を自動的に発生させる。ここでは、ブラウザ操作方式の自動テストを行うテストツールとして、「Selenium(セレニウム) RC」を用いるとする。   The browser operation unit 130 reproduces a command sequence for the browser 120 and automatically generates an operation command for the browser 120. Here, it is assumed that “Selenium RC” is used as a test tool for performing an automatic test of the browser operation method.

ログ取得部140は、ブラウザ120とサーバ600との間の通信を中継する中継点に設置され、その通信を横取りして通信ログとして記録する。例えば、HTTP(Hyper Text Transfer Protocol)プロキシサーバとして実装する。   The log acquisition unit 140 is installed at a relay point that relays communication between the browser 120 and the server 600, intercepts the communication, and records it as a communication log. For example, it is implemented as an HTTP (Hyper Text Transfer Protocol) proxy server.

記憶部150は、テスト生成部110によって生成される命令列分割表22、ログ分類表23などの情報を記憶する。
サーバ600は、Webサーバであり、HTMLファイルや画像ファイルなどの情報を蓄積しておき、ユーザエージェントのブラウザ120からの要求に応じてアプリケーションプログラムを実行する。実行結果は、レスポンスとしてブラウザ120に返す。
The storage unit 150 stores information such as the instruction sequence division table 22 and the log classification table 23 generated by the test generation unit 110.
The server 600 is a Web server, stores information such as HTML files and image files, and executes application programs in response to requests from the browser 120 of the user agent. The execution result is returned to the browser 120 as a response.

ここで、テスト生成部110の詳細について説明する。
命令列分割部111は、ブラウザ120への操作を自動化する命令列を解析し、ブラウザ120の状態が安定したことを示唆する命令を区切り命令として、命令列を分割する。分割した分割命令列について命令列分割表22を生成し、記憶部150に格納する。
Here, details of the test generation unit 110 will be described.
The instruction sequence dividing unit 111 analyzes an instruction sequence for automating operations on the browser 120 and divides the instruction sequence using an instruction indicating that the state of the browser 120 is stable as a delimiter instruction. An instruction sequence division table 22 is generated for the divided instruction sequence and stored in the storage unit 150.

通信ログ取得・分類部112は、命令列分割表22に基づいて、ブラウザ操作部(Selenium RC)130で命令列を再生させる。また、ログ取得部140を制御し、このときブラウザ120と、サーバ600との間で交換されるリクエスト及びレスポンスを取得させる。そして、ログ取得部140が取得したリクエスト及びレスポンスを記録した通信ログを取得し、分割命令列ごとに分類する。ここでは、分割命令列を実行させ、そのときに取得された通信ログをこの分割命令列に分類する。この処理を分割命令列ごとに繰り返し、命令列全体の通信ログを分割命令列ごとに分類する。   The communication log acquisition / classification unit 112 causes the browser operation unit (Selenium RC) 130 to reproduce the instruction sequence based on the instruction sequence partitioning table 22. Further, the log acquisition unit 140 is controlled, and at this time, a request and a response exchanged between the browser 120 and the server 600 are acquired. And the communication log which recorded the request and response which the log acquisition part 140 acquired is acquired, and it classify | categorizes for every division | segmentation command sequence. Here, the divided instruction sequence is executed, and the communication log acquired at that time is classified into this divided instruction sequence. This process is repeated for each divided instruction sequence, and the communication log of the entire instruction sequence is classified for each divided instruction sequence.

テスト核生成部113は、ログ取得部140が取得した通信ログの各リクエストの各フォームパラメータについて1つずつテスト核を生成する。
自動テスト生成部114は、テスト核生成部113が生成したテスト核と、再現のための命令列とを協働させて動作させる自動テストを生成する。
The test kernel generation unit 113 generates one test kernel for each form parameter of each request of the communication log acquired by the log acquisition unit 140.
The automatic test generation unit 114 generates an automatic test that operates the test nucleus generated by the test nucleus generation unit 113 and the instruction sequence for reproduction in cooperation with each other.

このようなテスト生成装置100の動作及びアプリケーションテスト生成方法について、具体例を用いて詳細に説明する。
命令列分割部111には、ブラウザ操作部(Selenium RC)130が実行する命令列が入力される。命令列は、例えば、Selenium RCの命令列表記形式であるSelenese形式で記述されている。
The operation of the test generation apparatus 100 and the application test generation method will be described in detail using specific examples.
The instruction sequence executed by the browser operation unit (Selenium RC) 130 is input to the instruction sequence dividing unit 111. The instruction sequence is described in, for example, a Selenium format that is a Selenium RC instruction sequence notation format.

図4は、命令列(Selenese)の一例を示した図である。
命令列(Selenese)1000には、ブラウザ操作部(Selenium RC)130が再生するブラウザに対する操作が、Selenese形式で記述されている。Selenese形式は、要素3つが1組となって構成される。具体的には、コマンド(command)1001、ターゲット1002(target)及び値(value)1003が1つの組となり、命令列を構成している。コマンド1001は、ブラウザ操作部(Selenium RC)130に対してどう動くかを指示する命令を表している。命令の詳細を含むSeleniumについては、例えば、「Selenium 徹底入門」(笠谷真也・宮澤信吾・増井雄一郎著、WEB+DB PRESS編集部編「WEB+DB PRESS」Vol.36、技術評論社、2006年、41頁)に記載されている。
FIG. 4 is a diagram illustrating an example of an instruction sequence (Series).
In the instruction sequence (Selenese) 1000, an operation on the browser reproduced by the browser operation unit (Selenium RC) 130 is described in the Selene format. The Series format is composed of a set of three elements. Specifically, a command (command) 1001, a target 1002 (target), and a value (value) 1003 form one set and constitute an instruction sequence. A command 1001 represents a command that instructs the browser operation unit (Selenium RC) 130 to move. As for Selenium including details of instructions, for example, “Thorough Introduction to Selenium” (Shinya Kasaya, Shingo Miyazawa, Yuichiro Masui, WEB + DB PRESS Editing Department, “WEB + DB PRESS” Vol. 36, Technical Review, 2006, page 41) It is described in.

なお、図の最左欄は、行番号を表している。
例えば、行番号1の行は、コマンド1001が「open」、ターゲット1002が「/」と記述されている。これは、「URI(Uniform Resource Identifier)が『/』であるページをリクエストし、ページが読込まれるまで待つ」という意味になる。行番号2の行は、コマンド1001が「assertTitle」、ターゲット1002が「トップページ」と記述されている。これは、「現在のページのタイトルが『トップページ』でなければエラーとする」という意味になる。そして、行番号が5の行は、コマンド1001が「clickAndWait」、ターゲット1002が「//input[@value=‘ログイン’]」と記述されている。これは、「現在のページから値が『ログイン』であるvalue属性を持つinput要素を探し、それをクリックし、ページが読込まれるまで待つ」という意味になる。なお、Selenium RCは、このような操作命令を、ブラウザ120上でJavaScriptによって解釈・実行する。
Note that the leftmost column in the figure represents row numbers.
For example, in the line of line number 1, the command 1001 is described as “open” and the target 1002 is described as “/”. This means “request a page whose URI (Uniform Resource Identifier) is“ / ”and wait until the page is read”. In the line of line number 2, the command 1001 is described as “assertTitle”, and the target 1002 is described as “top page”. This means that an error occurs if the title of the current page is not “top page”. The line with the line number 5 describes the command 1001 as “clickAndWait” and the target 1002 as “// input [@ value = 'login']”. This means “search for an input element having a value attribute whose value is“ login ”from the current page, click on it, and wait until the page is read”. The Selenium RC interprets and executes such an operation command on the browser 120 by using JavaScript.

このようなブラウザ命令列(Selenese)は、予めユーザによって設定されたものを読込む。ところで、有意義な自動テストを生成するためには、繰り返し何度か実行しても正常に動作する命令列になっていることが望ましい。そこで、ブラウザ命令列(Selenese)の入力の際には、そのような入力を行うように促すようにしてもよい。   Such a browser command sequence (Series) is read in advance by the user. By the way, in order to generate a meaningful automatic test, it is desirable that the instruction sequence operates normally even if it is repeatedly executed several times. Therefore, when inputting a browser command sequence (Selene), it may be prompted to perform such input.

命令列分割部111では、このような命令列(Selenese)1000を解析し、所定の区切り命令で分割する。分割は、ブラウザ120の状態が安定したことを示唆する命令列の後で区切って行う。ブラウザ120の状態が安定するとは、ブラウザ120の動作が時間が経っても変化しないであろう状態であることをいう。   The instruction sequence dividing unit 111 analyzes such an instruction sequence (Series) 1000 and divides it by a predetermined delimiter instruction. The division is performed after the instruction sequence that suggests that the state of the browser 120 is stable. The state in which the browser 120 is stable means that the operation of the browser 120 will not change over time.

このようにブラウザ120の状態が安定したことを示唆するコマンド(区切り命令)には、「pause」、「open」、「・・・AndWait」、「waitFor・・・」がある。「pause」は、ターゲットで指定された時間だけ待つという命令である。「open」は、ターゲットで指定されたURIのページをリクエストし、ページが読込まれるまで待つという命令である。「・・・AndWait」は、操作・・・をした後、ページが読込まれるまで待つという命令である。そして、「waitFor・・・」は、状態・・・が成立するまで待つという命令である。   As described above, commands (separation instructions) that suggest that the state of the browser 120 is stable include “pause”, “open”, “... AndWait”, “waitFor. “Pause” is an instruction to wait for a time designated by the target. “Open” is an instruction to request a page of the URI specified by the target and wait until the page is read. “... AndWait” is a command to wait until the page is read after performing the operation. “WaitFor...” Is an instruction to wait until the state.

命令列分割部111は、命令列(Selenese)1000のコマンド1001と、上記の区切り命令とを比較し、一致しているものがあれば、そのコマンドまでの一区切りとして命令列を分割する。例えば、上記の区切り命令「pause」、「open」、「・・・AndWait」、「waitFor・・・」を、図4の命令列(Selenese)1000に適用したとする。この場合、行番号1にコマンド「open」が検出されるので、命令列をここで分割することができる。次に、行番号5のコマンド「clickAndWait」、行番号8のコマンド「clickAndWait」、行番号11の「clickAndWait」、行番号13の「clickAndWait」が検出され、分割される。命令列をどこで分割したかという情報は、命令列分割表1100に登録される。   The instruction sequence dividing unit 111 compares the command 1001 of the instruction sequence (Series) 1000 with the above delimiter instruction and, if there is a match, divides the instruction sequence as one delimiter up to the command. For example, it is assumed that the above delimiter instructions “pause”, “open”, “... AndWait”, “waitFor...” Are applied to the instruction sequence (Series) 1000 in FIG. In this case, since the command “open” is detected at the line number 1, the instruction string can be divided here. Next, the command “clickAndWait” at the line number 5, the command “clickAndWait” at the line number 8, the “clickAndWait” at the line number 11, and the “clickAndWait” at the line number 13 are detected and divided. Information indicating where the instruction sequence is divided is registered in the instruction sequence division table 1100.

なお、分割の方法として、上記の区切り命令の直後で区切るのではなく、後続の連続した、操作の指示ではない命令(例えば、「assert・・・」や「verify・・・」など)の後で区切っても良い。   In addition, as a division method, it does not divide immediately after the above-described delimiter instruction, but after subsequent consecutive instructions that are not operation instructions (for example, “assert ...”, “verify ...”, etc.). You may separate them with

図5は、命令列分割表の一例を示した図である。
命令列分割表1100は、区分識別子1101及び命令列行番号1102の情報項目を有し、分割後の各区分と、命令列の行番号との対応付けを記した表である。
FIG. 5 is a diagram showing an example of the instruction sequence partition table.
The instruction sequence division table 1100 has information items of a category identifier 1101 and an instruction sequence row number 1102, and is a table in which each division after division is associated with the row number of the instruction sequence.

区分識別子1101は、分割された分割命令列を識別するため、文字「s」と、通し番号とを連結した識別子である。「s1」が最初の命令列を含む区分を識別し、順に「s2」、「s3」、・・・、「sn」と対応する命令列の番号が大きくなる(なお、nは任意の整数)。   The division identifier 1101 is an identifier obtained by concatenating a character “s” and a serial number in order to identify a divided instruction sequence. “S1” identifies the section including the first instruction sequence, and the instruction sequence numbers corresponding to “s2”, “s3”,..., “Sn” increase in order (n is an arbitrary integer) .

命令列行番号1102は、区分識別子1101に対応する命令列の行番号を示している。
図5の命令列分割表1100は、上述の命令列の行番号1,5,8,11,13で命令列を分割した場合を示している。例えば、区分s1には行番号1、区分s2には行番号2〜5、区分s3には行番号6〜8、区分s4には行番号9〜11、区分s5には行番号12〜13、区分s6には行番号14、の命令列がそれぞれ対応付けられている。生成された命令列分割表1100は、記憶部150に格納される。
The instruction string row number 1102 indicates the line number of the instruction string corresponding to the category identifier 1101.
The instruction sequence division table 1100 in FIG. 5 shows a case where the instruction sequence is divided by row numbers 1, 5, 8, 11, and 13 of the above-described instruction sequence. For example, line number 1 for section s1, line numbers 2-5 for section s2, line numbers 6-8 for section s3, line numbers 9-11 for section s4, line numbers 12-13 for section s5, The section s6 is associated with the instruction sequence of line number 14 respectively. The generated instruction sequence partition table 1100 is stored in the storage unit 150.

続いて、通信ログ取得・分類部112によって、命令列分割部111が分割した分割命令列を単位として通信ログが取得され、分割命令列ごとに分類される。
まず、ログ取得部140の動作について説明する。ログ取得部140は、ブラウザ120からサーバ600に送信されたリクエストを横取りし、通信ログに記録した後、サーバ600に送信する。同様に、サーバ600から送信されたレスポンスも横取りして通信ログに記録した後、ブラウザ120に返す。こうして取得した1組のリクエスト・レスポンスに、識別子を割り当て順次保存していく。ここでは、OSのファイルシステムにディレクトリを生成し、そのディレクトリの下に通信ログを保存する。識別子は、文字「d」と、通し番号を連結して生成するとする。「d1」が最初に取得されたログの組で、順に、「d2」、「d3」、・・・「dn」と取得されたログが蓄積される。
Subsequently, a communication log is acquired by the communication log acquisition / classification unit 112 in units of the divided instruction sequence divided by the instruction sequence dividing unit 111, and is classified for each divided instruction sequence.
First, the operation of the log acquisition unit 140 will be described. The log acquisition unit 140 intercepts the request transmitted from the browser 120 to the server 600, records the request in the communication log, and transmits the request to the server 600. Similarly, the response transmitted from the server 600 is also intercepted and recorded in the communication log, and then returned to the browser 120. An identifier is assigned to the set of requests and responses acquired in this way, and is sequentially stored. Here, a directory is generated in the OS file system, and a communication log is stored under the directory. It is assumed that the identifier is generated by concatenating the character “d” and the serial number. Logs acquired as “d2”, “d3”,... “Dn” are sequentially accumulated in a set of logs where “d1” is acquired first.

図6,図7は、ログ群の一例を示した図である。図6は、ディレクトリd1からd3のログ群を示している。図7は、ディレクトリd4からd9のログ群を示している。
ログ群1200a,1200bは、図4に示した命令列を実行したときに、得られた通信ログを示している。また、図6,図7の各ディレクトリに対応する上段のログはリクエスト、下段のログはレスポンスを示している。
6 and 7 are diagrams illustrating an example of the log group. FIG. 6 shows a log group of the directories d1 to d3. FIG. 7 shows a log group of directories d4 to d9.
The log groups 1200a and 1200b show communication logs obtained when the instruction sequence shown in FIG. 4 is executed. In addition, the upper log corresponding to each directory in FIGS. 6 and 7 indicates a request, and the lower log indicates a response.

通信ログ取得・分類部112は、命令列分割表1100に基づき、各区分の分割命令列をブラウザ操作部130で再生させ、そのときログ取得部140がログ群1200a,1200bに新たに設定したログを、当該分割命令列で発生した通信と判断する。そして、このログと、分割命令列の区分とを対応付けたログ分類表23を生成する。   The communication log acquisition / classification unit 112 reproduces the divided instruction sequence of each category by the browser operation unit 130 based on the instruction sequence division table 1100, and the log acquisition unit 140 newly sets the log groups 1200a and 1200b at that time. Are determined to be communications generated by the divided instruction sequence. Then, a log classification table 23 in which this log is associated with the division of the divided instruction sequence is generated.

具体例で説明する。
図8は、ログ分類表の一例を示した図である。ログ分類表1300aは、区分識別子1301と、ログのディレクトリ名1302とが対応付けられている。ログ分類表1300b,1300cも同様である。
A specific example will be described.
FIG. 8 is a diagram showing an example of the log classification table. In the log classification table 1300a, a category identifier 1301 and a log directory name 1302 are associated with each other. The same applies to the log classification tables 1300b and 1300c.

(A)ログ分類表(区分s1まで)は、最初の区分s1に対応する通信ログのディレクトリ名が登録された状態を示している。
通信ログ取得・分類部112は、図5に示した命令列分割表1100の最初の区分s1の命令列(命令列番号1)をブラウザ操作部130に実行させる。ブラウザ操作部130は、区分s1に指定された、図4に示した命令列(Selenese)1000の命令列番号1の「open」コマンドを実行する。これにより、ブラウザ120は、該当するページの情報を要求するリクエストをサーバ600に送信し、サーバ600からレスポンスが返る。そのやり取りは、ログ取得部140が記録しておく。図6に示したログ群1200aのディレクトリd1が設定される。通信ログ取得・分類部112は、ディレクトリd1の通信ログを取得して記憶部150に保存する。さらに、この通信は、区分s1で発生したものとしてログ分類表1300aに登録する。ログ分類表1300aには、区分識別子s1と、ログのディレクトリ名d1とが対応付けて登録される。
(A) The log classification table (up to section s1) shows a state in which the directory name of the communication log corresponding to the first section s1 is registered.
The communication log acquisition / classification unit 112 causes the browser operation unit 130 to execute the instruction sequence (instruction sequence number 1) of the first section s1 of the instruction sequence partition table 1100 illustrated in FIG. The browser operation unit 130 executes the “open” command of the instruction sequence number 1 of the instruction sequence (Selene) 1000 shown in FIG. Accordingly, the browser 120 transmits a request for requesting information on the corresponding page to the server 600, and a response is returned from the server 600. The log acquisition unit 140 records the exchange. The directory d1 of the log group 1200a shown in FIG. 6 is set. The communication log acquisition / classification unit 112 acquires the communication log of the directory d1 and stores it in the storage unit 150. Further, this communication is registered in the log classification table 1300a as having occurred in the category s1. In the log classification table 1300a, a category identifier s1 and a log directory name d1 are registered in association with each other.

(B)ログ分類表(区分s2まで)は、次の区分s2までの通信ログのディレクトリ名が登録された状態を示している。
通信ログ取得・分類部112は、上記と同様に、ブラウザ操作部130に指示し、次の区分s2の分割命令列を再生させる。そして、そのとき記録された通信ログをログ取得部140から取得する。ここでは、ディレクトリd2とd3の通信ログが取得される。取得したログ群は、区分s2で発生したものとして、ログ分類表1300bに登録する。ログ分類表1300bには、ログ分類表1300aの登録に加え、区分識別子s2と、ログのディレクトリ名d2,d3とが対応付けて登録される。
(B) The log classification table (up to category s2) shows a state in which the directory names of communication logs up to the next category s2 are registered.
As described above, the communication log acquisition / classification unit 112 instructs the browser operation unit 130 to reproduce the divided instruction sequence of the next category s2. Then, the communication log recorded at that time is acquired from the log acquisition unit 140. Here, communication logs of the directories d2 and d3 are acquired. The acquired log group is registered in the log classification table 1300b as having occurred in the category s2. In the log classification table 1300b, in addition to the registration of the log classification table 1300a, the category identifier s2 and the log directory names d2 and d3 are registered in association with each other.

以下、同様に、ログの取得と、ログ分類表の更新を交互もしくは並行して行う。
(C)ログ分類表(最終)は、最後の区分s6まで実行されたときの通信ログのディレクトリ名が登録された状態を示している。
Similarly, log acquisition and log classification table update are performed alternately or in parallel.
(C) The log classification table (final) shows a state in which the directory name of the communication log when registration is executed up to the last division s6 is registered.

通信ログ取得・分類部112は、上記と同様の手順を、さらに、区分s3,s4,s5,s6と順に再生する。そして、再生に伴って取得された通信ログは随時保存していき、再生が終わったら保存されたログのディレクトリ名を区分に対応付けてログ分類表1300cに登録する。なお、再生の途中で、命令列を正常に実行できないなどのエラーが起きたときは、その旨を通知する出力を行って、処理を終了する。   The communication log acquisition / classification unit 112 further reproduces the same procedure as above in the order of sections s3, s4, s5, and s6. The communication log acquired along with the reproduction is saved as needed. When the reproduction is finished, the directory name of the saved log is registered in the log classification table 1300c in association with the category. When an error occurs such that the instruction sequence cannot be executed normally during reproduction, an output for notifying the fact is given and the processing is terminated.

こうして、分割命令列ごとに、対応するブラウザ120とサーバ600間のリクエスト・レスポンスのログが得られる。
テスト核生成部113は、ログ分類表1300cの分類ごとに、ログを抽出し、抽出されたログのテスト対象のリクエストについてテスト核を生成する。ここでのテスト対象は、リクエストに含まれるフォームパラメータであるとする。フォームパラメータを有するリクエストについては、テスト核を生成し、フォームパラメータがないリクエストについては、テスト核は生成しない。なお、フォームパラメータかどうかは、リクエスト形式等で推測する。
Thus, a request / response log between the corresponding browser 120 and the server 600 is obtained for each divided instruction sequence.
The test kernel generation unit 113 extracts a log for each category of the log classification table 1300c, and generates a test kernel for a test target request of the extracted log. The test target here is a form parameter included in the request. A test kernel is generated for requests having form parameters, and a test kernel is not generated for requests without form parameters. Whether it is a form parameter is estimated from the request format.

生成されたテスト核には、識別子を与える。例えば、テスト核の元となった通信ログのディレクトリ名と、文字「−」と、パラメータ名とを連結した文字列などとすることができる。テスト核には、リクエストの改変など、テスト核における処理の実行手順が記述される。テスト核の一例を説明する。   An identifier is given to the generated test kernel. For example, it may be a character string obtained by concatenating the directory name of the communication log that is the source of the test core, the character “-”, and the parameter name. The test core describes the execution procedure of processing in the test core, such as request modification. An example of the test kernel will be described.

(1) 横取りしたリクエストが、テスト対象のフォームパラメータを有するリクエストであることをURLやメソッドで確認する。違う場合は、そのリクエスト・レスポンスを通常のプロキシサーバと同様に中継する。   (1) The URL or method is used to confirm that the intercepted request is a request having a form parameter to be tested. If they are different, the request / response is relayed in the same way as a normal proxy server.

(2) テスト対象のリクエストのフォームパラメータの値を文字「a」を10,001個連結した文字列に変更したリクエストを生成し、送信する。
(3) サーバ600からのレスポンスのステータスコードが500以上のとき、エラーメッセージを出力する。
(2) Generate and transmit a request in which the value of the form parameter of the request to be tested is changed to a character string in which 10,001 characters “a” are concatenated.
(3) When the status code of the response from the server 600 is 500 or more, an error message is output.

(4) 改変前の元のリクエストをサーバ600に送信し、レスポンスを受信する。
(5) ブラウザ120に、そのレスポンスを提供する。
(6) テスト核の処理が完了した旨を出力する。
(4) The original request before modification is transmitted to the server 600 and a response is received.
(5) Providing the browser 120 with the response.
(6) Outputs the completion of the test kernel processing.

テスト核には、このような処理手順が、テスト装置が実行可能な形式で記述される。例えば、通信横取り方式の実装上で動作する処理(プログラム)として出力する。
この例のテスト核では、リクエストがテスト対象のリクエストであれば、フォームパラメータの値が改変され、文字「a」が10,001個付加され、サーバ600に送信する。そして、そのレスポンスのステータスコードを確認し、500以上であればエラーメッセージが出力されるという処理が行われる。このように、このテスト核は、バッファー・オーバーランの脆弱性を発見するのに役立つテスト内容となっている。また、(4)以降の処理は、このテスト自体には直接関係ないが、元と同じ(正常な)リクエストを発行することで、サーバ側の状態を安定させやすくすることができる。
In the test kernel, such a processing procedure is described in a format that can be executed by the test apparatus. For example, it is output as a process (program) that operates on the implementation of the communication interception method.
In the test kernel of this example, if the request is a request to be tested, the value of the form parameter is modified, and 10,001 characters “a” are added and transmitted to the server 600. Then, the status code of the response is checked, and if it is 500 or more, an error message is output. As such, this test core is a test that helps find buffer overrun vulnerabilities. Further, the processing after (4) is not directly related to this test itself, but it is possible to easily stabilize the state on the server side by issuing the same (normal) request as the original.

このテスト核の内容を、図6に示したログ群1200aに適用した場合について説明する。
ディレクトリd1のリクエストにはフォームパラメータがないので、d1については、テスト核を生成しない。
The case where the contents of the test kernel are applied to the log group 1200a shown in FIG. 6 will be described.
Since there is no form parameter in the request in the directory d1, no test kernel is generated for d1.

ディレクトリd2には、フォームパラメータが3つある。リクエストのボディ(最後の行)の「action=login&user=test&password=test」に含まれる「action」、「user」、「password」である。よって、ディレクトリd2については、それぞれのパラメータについて、識別子がd2−action、d2−user、d2−passwordという計3つのテスト核が生成される。   There are three form parameters in the directory d2. “Action”, “user”, and “password” included in “action = login & user = test & password = test” in the body (last line) of the request. Therefore, for the directory d2, for each parameter, a total of three test kernels having identifiers d2-action, d2-user, and d2-password are generated.

例として、テスト核d2−actionの生成について説明する。上記(1)から(6)に示したテスト核の内容を適用すると、テスト核d2−actionは次のようになる。   As an example, generation of the test kernel d2-action will be described. When the contents of the test nucleus shown in (1) to (6) above are applied, the test nucleus d2-action is as follows.

(1a) 横取りしたリクエストが、「POST /session.jsp HTTP/」で始まっている場合のみ、以降の処理を進める。違う場合は、そのリクエスト・レスポンスを通常のプロキシサーバと同様に、中継する。   (1a) The following process is advanced only when the intercepted request starts with “POST / session.jsp HTTP /”. If they are different, the request / response is relayed in the same way as a normal proxy server.

(2a) リクエストのフォームパラメータ「action」の値を文字「a」を10,001個連結した文字列に変更したリクエストを生成し、送信する。なお、生成したリクエストのContent−Lengthヘッダフィールドなども送信前に適切に変更しておく。   (2a) A request in which the value of the form parameter “action” of the request is changed to a character string in which 10,001 characters “a” are concatenated is generated and transmitted. Note that the Content-Length header field of the generated request is also appropriately changed before transmission.

(3a) レスポンスのステータスコードが500以上のとき、エラーメッセージを出力する。
(4a) 元のリクエストを送信し、レスポンスを受信する。
(3a) When the response status code is 500 or more, an error message is output.
(4a) Send the original request and receive the response.

(5a) ブラウザ120側へそのレスポンスを提供する。
(6a) テスト核d2−actionの処理が終了した旨を出力する。
というテスト核d2−actionが生成される。なお、(1a)は上記の(1)に対応する。(2a),(3a),(4a),(5a),(6a)についても同様である。
(5a) The response is provided to the browser 120 side.
(6a) Outputs that the processing of the test kernel d2-action is completed.
The test kernel d2-action is generated. Note that (1a) corresponds to (1) above. The same applies to (2a), (3a), (4a), (5a), and (6a).

この例では、テスト核の内容を予め決めていた。しかし、テスト核の内容は、別途入力として受付けるとすることもできる。また、ここでは、フォームパラメータを変更するとしたが、それ以外のテスト核を生成するとしてもよい。さらに、識別子は、一例であり、生成するテスト核の内容に応じて適宜設定してよい。   In this example, the contents of the test core are determined in advance. However, the contents of the test core can be received as a separate input. Although the form parameters are changed here, other test kernels may be generated. Furthermore, the identifier is an example, and may be appropriately set according to the content of the test nucleus to be generated.

こうして、テスト核が生成されると、自動テスト生成部114は、各テスト核を適当なタイミングで実行させる自動テストを生成する。
自動テストは、入力された命令列(Selenese)と、テスト核とを協働させるテストである。すなわち、再現の実施には、ブラウザ操作部(Selenium RC)130を使い、テスト核の実施には、HTTPのプロキシサーバとして実装した通信横取り装置を使う。
Thus, when the test kernel is generated, the automatic test generation unit 114 generates an automatic test for executing each test kernel at an appropriate timing.
The automatic test is a test in which an input instruction sequence (Series) and a test kernel cooperate. That is, the browser operation unit (Selenium RC) 130 is used for the reproduction, and the communication interception device implemented as an HTTP proxy server is used for the test core.

このような自動テストを生成するため、自動テスト生成部140は、ブラウザ操作部(Selenium RC)130で命令列(Selenese)を再生させながら、再生途中のあるタイミングでテスト核を有効化させるテスト手順を生成する。テスト核を有効化するタイミングは、例えば、テスト核に対応する区分識別子に属する命令列を再生する直前とする。   In order to generate such an automatic test, the automatic test generation unit 140 enables a test kernel to be validated at a certain timing during the reproduction while reproducing the instruction sequence (Selene) by the browser operation unit (Selenium RC) 130. Is generated. The timing at which the test kernel is validated is, for example, immediately before the instruction sequence belonging to the category identifier corresponding to the test kernel is reproduced.

また、再生の途中、あるいは、所定のタイミングでテスト核の処理が完了したかを確認する手順を加えるとしてもよい。確認のタイミングは、例えば、テスト核に対応する区分識別子に対応する命令列を再生した直後とする。   Further, a procedure for confirming whether the processing of the test nucleus is completed during the reproduction or at a predetermined timing may be added. The timing of confirmation is, for example, immediately after the instruction sequence corresponding to the segment identifier corresponding to the test nucleus is reproduced.

自動テスト生成手順の一例を説明する。
<1> テスト核の識別子から、対応するログのディレクトリ名を取得する。
<2> そのディレクトリ名に対応する区分識別子を、ログ分類表1300cから取得する。
An example of an automatic test generation procedure will be described.
<1> The directory name of the corresponding log is obtained from the test kernel identifier.
<2> The category identifier corresponding to the directory name is acquired from the log classification table 1300c.

<3> その区分識別子に対応する命令列行番号を、命令列分割表1100から取得する。以下、命令列行番号のうち、区分識別子に対応する最小の番号を最小行番号、最大の番号を最大行番号と、それぞれ呼ぶ。   <3> The instruction string row number corresponding to the classification identifier is acquired from the instruction string partitioning table 1100. Hereinafter, among the instruction sequence row numbers, the smallest number corresponding to the category identifier is called the smallest row number, and the largest number is called the largest row number.

<4> ブラウザ操作部(Selenium RC)130と、通信横取り装置を準備・起動する処理を出力する。
<5> 命令列(Selenese)のうち、最小行番号より前の命令列(テスト対象の区分識別子より前の区分識別子に属する命令列)をブラウザ操作部(Selenium RC)130で再生する処理を出力する。
<4> The browser operation unit (Selenium RC) 130 and a process for preparing and starting the communication interception device are output.
<5> Outputs a process for reproducing, in the browser operation unit (Selenium RC) 130, an instruction string before the minimum line number (an instruction string belonging to a section identifier before the test target section identifier) in the instruction string (Selene). To do.

<6> 通信横取り装置でテスト核を有効化する処理を出力する。
<7> 命令列(Selenese)のうち、最小行番号から最大行番号までの命令列をブラウザ操作部(Selenium RC)130で再生する処理を出力する。
<6> A process for validating the test kernel in the communication interception device is output.
<7> A process of reproducing the instruction sequence from the minimum line number to the maximum line number in the instruction sequence (Selene) by the browser operation unit (Selenium RC) 130 is output.

<8> 有効化したテスト核で処理が完了した旨の出力がされたことを確認する処理を出力する。完了した旨の出力がされていない場合の処理は、正しくテストできなかった可能性がある旨のエラーメッセージを出力するようにする。   <8> A process for confirming that the process has been completed with the validated test kernel is output. In the case where the output indicating completion is not output, an error message indicating that there is a possibility that the test could not be performed correctly is output.

<9> テスト核を無効化し、命令列(Selenese)のうち最大行番号から後の命令列(テスト対象の区分識別子より後ろの区分識別子に属する命令列)をブラウザ操作部(Selenium RC)130で再生する処理を出力する。   <9> The test kernel is invalidated, and the instruction sequence (the instruction sequence belonging to the category identifier after the category identifier to be tested) after the maximum row number in the command sequence (Series) is displayed on the browser operation unit (Selenium RC) 130. Output the process to play.

なお、<9>の処理は、なくても意味のある自動テストとなるが、命令列(Selenese)を最後まで再生することで、サーバ側の状態を安定しやすくすることができる。
この手順で生成した自動テストは、アプリケーションの自動テストを実行する自動テスト装置の制御部にロードされ、実行される。自動テスト装置の詳細については後述する。命令列(Selenese)はSelenium RCに、テスト核は通信横取り装置に、それぞれ出力される。
Note that the process <9> is a meaningful automatic test even if it is not necessary, but the state on the server side can be easily stabilized by reproducing the instruction sequence (Selene) to the end.
The automatic test generated in this procedure is loaded and executed in the control unit of the automatic test apparatus that executes the automatic test of the application. Details of the automatic test apparatus will be described later. The instruction sequence (Selene) is output to the Selenium RC, and the test kernel is output to the communication interceptor.

例として、テスト核d2−actionに適用した場合について説明する。上記の自動テスト生成手順の内容を適用すると、テスト核d2−actionに対応する自動テストの生成手順は次のようになる。   As an example, a case where it is applied to the test kernel d2-action will be described. Applying the contents of the automatic test generation procedure described above, the automatic test generation procedure corresponding to the test kernel d2-action is as follows.

<1a> テスト核の識別子「d2−action」から、対応するログのディレクトリ名「d2」を取得する。
<2a> そのディレクトリ名「d2」に対応する区分識別子「s2」を、ログ分類表1300cから取得する。
<1a> The directory name “d2” of the corresponding log is acquired from the identifier “d2-action” of the test kernel.
<2a> The category identifier “s2” corresponding to the directory name “d2” is acquired from the log category table 1300c.

<3a> その区分識別子「s2」に対応する命令列行番号「2〜5」を、命令列分割表1100から取得する。よって、最小行番号は「2」、最大行番号は「5」となる。
<4a> ブラウザ操作部(Selenium RC)130と、通信横取り装置を準備・起動する処理を出力する。
<3a> The instruction string row numbers “2 to 5” corresponding to the classification identifier “s2” are acquired from the instruction string partitioning table 1100. Therefore, the minimum line number is “2” and the maximum line number is “5”.
<4a> The browser operation unit (Selenium RC) 130 and processing for preparing and starting the communication interception device are output.

<5a> 命令列(Selenese)のうち、命令列行番号「1」の命令列をブラウザ操作部(Selenium RC)130で再生する処理を出力する。
<6a> 通信横取り装置でテスト核d2−actionを有効化する処理を出力する。
<5a> A process for reproducing the instruction string of the instruction string row number “1” in the instruction string (Selene) by the browser operation unit (Selenium RC) 130 is output.
<6a> A process for validating the test kernel d2-action is output by the communication interception device.

<7a> 命令列(Selenese)のうち、命令列行番号「2」から「5」までの命令列をブラウザ操作部(Selenium RC)130で再生する処理を出力する。
<8a> テスト核d2−actionで処理が完了した旨の出力がされたことを確認する処理を出力する。完了した旨の出力がされていない場合の処理は、正しくテストできなかった可能性がある旨のエラーメッセージを出力するようにする。
<7a> A process for reproducing the instruction string from the instruction string row numbers “2” to “5” in the instruction string (Selene) by the browser operation unit (Selenium RC) 130 is output.
<8a> A process for confirming that the test kernel d2-action has output that the process has been completed is output. In the case where the output indicating completion is not output, an error message indicating that there is a possibility that the test could not be performed correctly is output.

<9a> テスト核d2−actionを無効化し、命令列行番号「6」から「14」までの命令列をブラウザ操作部(Selenium RC)130で再生する処理を出力する。なお、<1a>は上記の<1>に対応する。<2a>,<3a>,<4a>,<5a>,<6a>,<7a>,<8a>,<9a>についても同様である。   <9a> The test kernel d2-action is invalidated, and a process for reproducing the instruction sequence from the instruction sequence row numbers “6” to “14” by the browser operation unit (Selenium RC) 130 is output. <1a> corresponds to the above <1>. The same applies to <2a>, <3a>, <4a>, <5a>, <6a>, <7a>, <8a>, <9a>.

ここで、命令列(Selenese)やテスト核d2−actionといったデータは、生成する自動テストに含める。
上記テスト核d2−actionに対応する自動テストの生成手順により、生成される自動テストの処理は次のようになる。
Here, data such as an instruction sequence (Selene) and a test kernel d2-action are included in the generated automatic test.
The automatic test process generated by the automatic test generation procedure corresponding to the test kernel d2-action is as follows.

<1−4a>ブラウザ操作部(Selenium RC)130と、通信横取り装置を準備・起動する。
<2−5a>命令列(Selenese)のうち、命令列行番号「1」の命令列をブラウザ操作部(Selenium RC)130で再生する。
<1-4a> The browser operation unit (Selenium RC) 130 and the communication interception device are prepared and activated.
<2-5a> Of the instruction string (Selene), the instruction string of the instruction string row number “1” is reproduced by the browser operation unit (Selenium RC) 130.

<3−6a> 通信横取り装置でテスト核d2−actionを有効化する。
<4−7a> 命令列(Selenese)のうち、命令列行番号「2」から「5」までの命令列をブラウザ操作部(Selenium RC)130で再生する。
<3-6a> The test kernel d2-action is validated by the communication interception device.
<4-7a> Of the instruction string (Selene), the instruction string from the instruction string row numbers “2” to “5” is reproduced by the browser operation unit (Selenium RC) 130.

<5−8a> テスト核d2−actionで処理が完了した旨の出力がされたことを確認する。完了した旨の出力がされていない場合の処理は、正しくテストできなかった可能性がある旨のエラーメッセージを出力する。   <5-8a> It is confirmed that the processing kernel d2-action has output that processing has been completed. In the case where the completion is not output, an error message indicating that there is a possibility that the test could not be performed correctly is output.

<6−9a> テスト核d2−actionを無効化し、命令列行番号「6」から「14」までの命令列をブラウザ操作部(Selenium RC)130で再生する。なお、<1−4a>は上記の<4a>で出力された処理に対応する。<2−5a>,<3−6a>,<4−7a>,<5−8a>,<6−9a>についても同様である。   <6-9a> The test kernel d2-action is invalidated and the instruction sequence from the instruction sequence row numbers “6” to “14” is reproduced by the browser operation unit (Selenium RC) 130. <1-4a> corresponds to the process output in <4a> above. The same applies to <2-5a>, <3-6a>, <4-7a>, <5-8a>, <6-9a>.

なお、上記では、自動テストを外部の自動テスト装置に出力するとしていた。しかし、自動テストを内部的に生成し、その実行と結果出力を同じ装置で行うとしてもよい。
以上のように、テスト生成装置100によれば、命令列(Selenese)を用意し、入力するだけで、その命令列によりリクエストされる範囲について、テスト核を組み合わせた自動テストを作成することができるようになる。
In the above description, the automatic test is output to an external automatic test apparatus. However, an automatic test may be generated internally, and its execution and result output may be performed on the same device.
As described above, according to the test generation apparatus 100, it is possible to create an automatic test combining test nuclei for a range requested by an instruction sequence by preparing and inputting an instruction sequence (Selene). It becomes like this.

また、その自動テストは、テスト対象のリクエストが発生すると予測されるタイミングでのみテスト核を有効化するため、テスト対象以外のリクエストについて誤ってテストしてしまうことが少ない。さらに、テスト核でテスト対象のリクエストであるかどうかをURLやメソッドで確認すれば、誤ってテストが行われる可能性をより低くすることができる。   In addition, since the automatic test validates the test kernel only at the timing when the test target request is predicted to occur, it is unlikely that a test other than the test target is erroneously tested. Furthermore, if the test kernel confirms whether the request is a request to be tested by using a URL or a method, the possibility that the test is erroneously performed can be further reduced.

ここで、テスト生成装置100のアプリケーションテスト生成方法の処理手順を、フローチャートを用いて説明する。これまでの説明と同様に、テスト核を生成する対象は、リクエストのフォームパラメータとする。   Here, the processing procedure of the application test generation method of the test generation apparatus 100 will be described using a flowchart. As in the previous description, the target for generating the test kernel is the form parameter of the request.

図9は、アプリケーションテスト生成処理の手順を示したフローチャートである。
再現テストに用いられる命令列(Selenese)1000が入力されて、処理が開始される。
FIG. 9 is a flowchart showing the procedure of the application test generation process.
An instruction sequence (Series) 1000 used for the reproduction test is input, and the process is started.

[ステップS01] 入力された命令列(Selenese)1000を解析し、区切り命令で命令列を分割する命令列分割処理を行う。分割された区分を識別する区分識別子と、その区分に属する命令列の行番号とを対応付けた命令列分割表1100が設定される。命令列分割処理の詳細は後述する。   [Step S01] The input instruction sequence (Series) 1000 is analyzed, and an instruction sequence dividing process is performed to divide the instruction sequence by a delimiter instruction. An instruction string partition table 1100 is set in which a section identifier for identifying a divided section and a row number of an instruction string belonging to the section are associated with each other. Details of the instruction sequence dividing process will be described later.

[ステップS02] ステップS01で分割された区分ごとに、ブラウザ操作部(Selenium RC)130に、当該区分の分割命令列を実行させる。そして、そのときに得られた通信ログを保存するとともに、通信ログを分割命令列ごとに分類する通信ログ取得・分類処理を行う。再生された分割命令列の区分識別子と、このとき取得された通信ログを格納するディレクトリ名とを対応付けたログ分類表1300cが設定される。通信ログ取得・分類処理の詳細は後述する。   [Step S02] For each division divided in step S01, the browser operation unit (Selenium RC) 130 is caused to execute a division instruction sequence for the division. Then, the communication log obtained at that time is stored, and communication log acquisition / classification processing for classifying the communication log for each divided instruction sequence is performed. A log classification table 1300c is set in which the division identifier of the reproduced divided instruction sequence is associated with the directory name storing the communication log acquired at this time. Details of the communication log acquisition / classification process will be described later.

[ステップS03] ログ分類表1300cに基づき、区分識別子で識別される区分ごとに通信ログを抽出し、この通信ログに基づいてテスト核を生成する。例えば、通信ログに記録されるリクエストのうち、フォームパラメータを有するリクエストのフォームパラメータの値を改変するなどのテスト手順をテスト核として記述する。1つのリクエストに複数のフォームパラメータが含まれるときは、すべてのフォームパラメータについてテスト核を生成する。こうして生成されたテスト核には、テスト核を識別する識別子を設定しておく。なお、テスト核は、リクエストを改変する通信横取り装置が実行可能なプログラムとして記述しておく。   [Step S03] Based on the log classification table 1300c, a communication log is extracted for each category identified by the category identifier, and a test kernel is generated based on this communication log. For example, a test procedure such as changing the value of a form parameter of a request having a form parameter among requests recorded in the communication log is described as a test core. When a single request includes multiple form parameters, a test kernel is generated for all form parameters. An identifier for identifying the test nucleus is set in the test nucleus generated in this way. Note that the test core is described as a program that can be executed by the communication interception device that modifies the request.

[ステップS04] 命令列(Selenese)と、ステップS03で生成されたテスト核とを組み合わせた自動テストを生成する。自動テストでは、再現を行う命令列(Selenese)1000を順次実行するとともに、命令列が属する区分にテスト核が設定されていたときは、このテスト核を有効化させるというテスト手順が生成される。また、このテスト核に対応する区分に属する命令列の実行が終了したときには、テスト核を無効化する手順も設定される。   [Step S04] An automatic test is generated by combining the instruction sequence (Selene) and the test kernel generated in step S03. In the automatic test, a sequence of instructions 1000 to be reproduced is sequentially executed, and when a test nucleus is set in a section to which the instruction sequence belongs, a test procedure for enabling the test nucleus is generated. In addition, when the execution of the instruction sequence belonging to the section corresponding to the test nucleus is completed, a procedure for invalidating the test nucleus is also set.

以上の処理手順が実行されることにより、命令列(Selenese)1000から、所定の範囲の命令列実行時に、テスト核によるテストが実行される自動テストが生成される。   By executing the above processing procedure, an automatic test for generating a test using a test kernel is generated from the instruction sequence 1000 when executing a predetermined range of instruction sequences.

次に、命令列分割処理と通信ログ取得・分類処理について説明する。
図10は、命令列分割処理の手順を示したフローチャートである。
命令列(Selenese)1000が入力され、処理が開始される。
Next, instruction sequence division processing and communication log acquisition / classification processing will be described.
FIG. 10 is a flowchart showing the sequence of instruction sequence division processing.
An instruction sequence (Series) 1000 is input and processing is started.

[ステップS11] 命令列(Selenese)を1行読込む。最初の処理であれば、行番号1の命令列が読込まれる。それ以降の処理であれば、前回処理を行った命令列の次の行番号の命令列が読込まれる。   [Step S11] One line of the instruction sequence (Selene) is read. If it is the first process, the instruction sequence of line number 1 is read. For subsequent processing, the instruction sequence of the line number next to the instruction sequence that was processed last time is read.

[ステップS12] 命令列に記述される命令(コマンド)と、区切り命令に指定される命令とを照合する。区切り命令には、ブラウザ120が安定状態となったことを示唆する命令が指定される。例えば、ある状態となるまで、あるいは必要な情報が得られるまで「待つ」という命令が該当する。Seleneseであれば、「pause」、「open」、「・・・AndWait」、「waitFor・・・」などが該当する。照合した命令列が区切り命令であれば、処理をステップS13に進める。区切り命令でなければ、処理をステップS14に進める。   [Step S12] The instruction (command) described in the instruction sequence is collated with the instruction specified as the delimiter instruction. An instruction indicating that the browser 120 is in a stable state is specified as the delimiter instruction. For example, an instruction “wait” until a certain state is obtained or necessary information is obtained corresponds. In the case of Selenes, “pause”, “open”, “... AndWait”, “waitFor. If the collated instruction sequence is a delimiter instruction, the process proceeds to step S13. If it is not a delimiter instruction, the process proceeds to step S14.

[ステップS13] 命令列が区切り命令であれば、前に区切り命令が出現した次の命令列からステップS12で検出された区切り命令列までを1区分として、命令列分割表1100に登録する。命令列分割表1100には、区分を識別する区分識別子に対応付けて、この区分に分割された命令列の行番号が設定される。分割された範囲の最小の行番号と、最大の行番号とを登録するとしてもよい。   [Step S13] If the instruction sequence is a delimiter instruction, the instruction sequence from the next instruction sequence in which the delimiter instruction appeared before the delimiter instruction sequence detected in step S12 is registered in the instruction sequence partition table 1100 as one segment. In the instruction sequence division table 1100, the row numbers of the instruction sequences divided into the divisions are set in association with the division identifiers for identifying the divisions. The minimum line number and the maximum line number of the divided range may be registered.

[ステップS14] 次の命令列が有るかどうかを判定する。無であれば、処理をステップS15に進める。有であれば、処理をステップS11に戻し、次の命令列の処理を行う。
[ステップS15] どこにも区分分けされていない命令列が残っているかどうかを判定する。残っているときは、処理をステップS16に進める。残っていないときは、処理を終了する。
[ステップS16] どこにも区分分けされてない命令列が残っているときは、これらをまとめ、1つの区分を設定し、命令列分割表1100に登録する。その後、処理を終了する。
[Step S14] It is determined whether there is a next instruction sequence. If not, the process proceeds to step S15. If yes, the process returns to step S11 to process the next instruction sequence.
[Step S15] It is determined whether an instruction sequence that is not divided anywhere remains. If it remains, the process proceeds to step S16. If not, the process ends.
[Step S16] When instruction sequences that are not divided anywhere remain, they are collected and set as one division and registered in the instruction sequence division table 1100. Thereafter, the process ends.

以上の処理手順が実行されることにより、区切り命令で命令列が分割され、命令列分割表1100が生成される。
次に、通信ログ取得・分類処理について説明する。
By executing the above processing procedure, the instruction sequence is divided by the delimiter instruction, and the instruction sequence division table 1100 is generated.
Next, communication log acquisition / classification processing will be described.

図11は、通信ログ取得・分類処理の手順を示したフローチャートである。
[ステップS21] ログ取得部140を起動する。
[ステップS22] 命令列分割表1100に基づき、ブラウザ操作部(Selenium RC)130で実行する分割命令列を指定する。最初に、処理対象の区分識別子sn(nは任意の整数)として、s1を指定する。
FIG. 11 is a flowchart showing a procedure of communication log acquisition / classification processing.
[Step S21] The log acquisition unit 140 is activated.
[Step S22] Based on the instruction sequence division table 1100, a division instruction sequence to be executed by the browser operation unit (Selenium RC) 130 is designated. First, s1 is designated as the processing target segment identifier sn (n is an arbitrary integer).

[ステップS23] 該当する区分識別子の範囲の命令列をブラウザ操作部(Selenium RC)130に実行させる。ブラウザ操作部(Selenium RC)130が命令列(Selenese)を実行する間、ログ取得部140は、ブラウザ120とサーバ600との間で交換されるリクエスト及びレスポンスの通信ログを記録している。   [Step S23] The browser operation unit (Selenium RC) 130 is caused to execute an instruction string in the range of the corresponding category identifier. While the browser operation unit (Selenium RC) 130 executes the instruction sequence (Selene), the log acquisition unit 140 records a communication log of requests and responses exchanged between the browser 120 and the server 600.

[ステップS24] 区分識別子の範囲の命令列の実行が終了した後、この範囲の命令列を実行中にログ取得部140が収集した通信ログを取得する。
[ステップS25] ステップS24で取得した通信ログを記憶部150に保存する。
[Step S24] After the execution of the instruction sequence in the range of the category identifier is completed, the communication log collected by the log acquisition unit 140 during execution of the instruction sequence in this range is acquired.
[Step S25] The communication log acquired in step S24 is stored in the storage unit 150.

[ステップS26] ログ分類表1300cに、ステップS25で取得した通信ログの識別情報(通信ログのディレクトリ名)と、区分識別子とを登録する。
[ステップS27] 命令列分割表1100に次の区分が登録されているかどうか、すなわち、次の区分識別子が有るかどうかを調べる。有であれば、処理をステップS28に進める。無であれば、処理を終了する。
[Step S26] The communication log identification information (communication log directory name) acquired in step S25 and the category identifier are registered in the log classification table 1300c.
[Step S27] It is checked whether or not the next category is registered in the instruction sequence partitioning table 1100, that is, whether or not there is a next category identifier. If yes, the process proceeds to step S28. If not, the process is terminated.

[ステップS28] 次の区分識別子が有るときは、処理対象の区分識別子snとして、nの値を1増加させたs(n+1)を指定する。そして処理をステップS23に戻し、次の区分についての通信ログを取得する。   [Step S28] When there is a next segment identifier, s (n + 1) obtained by increasing the value of n by 1 is designated as the segment identifier sn to be processed. Then, the process returns to step S23, and a communication log for the next category is acquired.

以上の処理手順が実行されることにより、区分ごとに命令列が実行され、取得された通信ログを分類したログ分類表1300cが設定される。
次に、この自動テストを実行する自動テスト装置について説明する。図12は、自動テスト装置の構成を示した図である。
By executing the above processing procedure, an instruction sequence is executed for each category, and a log classification table 1300c that classifies the acquired communication log is set.
Next, an automatic test apparatus that executes this automatic test will be described. FIG. 12 is a diagram showing the configuration of the automatic test apparatus.

自動テスト装置200は、制御部210、ブラウザ220、ブラウザ操作部230及び通信横取り装置240を有し、ネットワークを介して接続するサーバ600のアプリケーションテストを実行する。   The automatic test device 200 includes a control unit 210, a browser 220, a browser operation unit 230, and a communication interception device 240, and executes an application test of the server 600 connected via a network.

制御部210は、自動テストの実行部であり、自動テストに基づいて、ブラウザ操作部230と通信横取り装置240を制御し、サーバ600に対するアプリケーションテストを制御する。   The control unit 210 is an automatic test execution unit that controls the browser operation unit 230 and the communication interception device 240 based on the automatic test, and controls an application test for the server 600.

ブラウザ220は、ブラウザ120と同様に、サーバ600が提供するHTMLファイルや画像ファイル、音楽ファイルなどをダウンロードし、モニタ108、あるいは音声出力装置に再生出力する。ブラウザ操作部230は、制御部210に従って、命令列(Selenese)251で記述される命令列を実行し、ブラウザ220への操作命令などを自動的に発生させる。ここでは、ブラウザ操作方式の自動テストを行うテストツールとして、「Selenium RC」を用いる。通信横取り装置240は、HTTPプロキシサーバとして実装される。制御部210に従って、テスト核252の処理を実行し、入力されたリクエストを改変してサーバ600に送信するなどの処理を行う。   Similarly to the browser 120, the browser 220 downloads an HTML file, an image file, a music file, or the like provided by the server 600, and reproduces and outputs it to the monitor 108 or an audio output device. The browser operation unit 230 executes a command sequence described by a command sequence (Series) 251 in accordance with the control unit 210, and automatically generates an operation command to the browser 220 or the like. Here, “Selenium RC” is used as a test tool for performing an automatic test of the browser operation method. The communication interception device 240 is implemented as an HTTP proxy server. In accordance with the control unit 210, the processing of the test kernel 252 is executed, and the input request is modified and transmitted to the server 600.

このような自動テスト装置200の動作及び自動テスト方法について、前述のテスト核d2−actionに対応する自動テストを実行させる場合で説明する。
ブラウザ操作部(Selenium RC)230と、通信横取り装置240とが準備・起動される。
The operation of the automatic test apparatus 200 and the automatic test method will be described in the case where an automatic test corresponding to the above-described test kernel d2-action is executed.
A browser operation unit (Selenium RC) 230 and a communication interception device 240 are prepared and activated.

準備が整った後、ブラウザ操作部(Selenium RC)230に、命令列(Selenese)251の行番号1を入力・再生させる。通信横取り装置140は通常のプロキシサーバと同様に、リクエスト・レスポンスを中継する。   After the preparation is completed, the browser operation unit (Selenium RC) 230 is caused to input and reproduce the line number 1 of the instruction sequence (Selene) 251. The communication interception device 140 relays the request / response in the same manner as a normal proxy server.

次に、制御部210は、通信横取り装置240に、テスト核d2−actionを入力し、それを有効化するよう指示する。
続いて、制御部210は、ブラウザ操作部(Selenium RC)230に、命令列(Selenese)251の行番号2から5を入力・再生させる。このとき、サーバ600に送信されるリクエストのうちテスト核d2−actionが対象とするものは、通信横取り装置240で改変された後、サーバ600に送信される。
Next, the control unit 210 inputs the test kernel d2-action to the communication interception device 240 and instructs it to be validated.
Subsequently, the control unit 210 causes the browser operation unit (Selenium RC) 230 to input and reproduce the line numbers 2 to 5 of the instruction sequence (Selene) 251. At this time, among the requests transmitted to the server 600, those targeted by the test kernel d <b> 2-action are modified by the communication interception device 240 and then transmitted to the server 600.

その後、テスト核d2−actionで処理が終了した旨の出力を確認する。出力されていない場合は、正しいテストができなかった可能性がある旨のエラーメッセージを出力する。処理が終了した旨の出力がされている場合は、テスト核d2−actionを無効化し、命令列(Selenese)の行番号6以降をブラウザ操作部(Selenium RC)230に入力・再生させる。   After that, the test kernel d2-action confirms the output indicating that the processing is completed. If it has not been output, an error message indicating that the correct test may not have been output is output. If an output indicating that the processing has been completed is output, the test kernel d2-action is invalidated and the browser operation unit (Selenium RC) 230 is caused to input / reproduce the line number 6 and later of the instruction sequence (Selenese).

このように、自動テスト装置200は、利用者が実行制御を行うことなく、自動でアプリケーションテストを行うことができる。
なお、上記の説明では、自動テスト装置200と、テスト生成装置100とを別装置としたが、同一の装置に搭載することもできる。例えば、自動テスト装置200にテスト生成部110を搭載し、ブラウザ操作部230と、通信横取り装置240とを接続する。テスト生成部110は、ブラウザ操作部230をブラウザ操作部130、通信横取り装置240をログ取得部140として動作させ、自動テストを生成する。
Thus, the automatic test apparatus 200 can automatically perform an application test without the user performing execution control.
In the above description, the automatic test apparatus 200 and the test generation apparatus 100 are separate apparatuses, but can be mounted on the same apparatus. For example, the test generation unit 110 is mounted on the automatic test apparatus 200, and the browser operation unit 230 and the communication interception apparatus 240 are connected. The test generation unit 110 operates the browser operation unit 230 as the browser operation unit 130 and the communication interception device 240 as the log acquisition unit 140, and generates an automatic test.

なお、上記の処理機能は、コンピュータによって実現することができる。その場合、テスト生成装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読取り可能な記録媒体に記録しておくことができる。   The above processing functions can be realized by a computer. In that case, a program describing the processing contents of the functions that the test generation apparatus should have is provided. By executing the program on a computer, the above processing functions are realized on the computer. The program describing the processing contents can be recorded on a computer-readable recording medium.

プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD−ROM(Compact Disc Read Only Memory)などの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。   When distributing the program, for example, portable recording media such as a DVD (Digital Versatile Disc) and a CD-ROM (Compact Disc Read Only Memory) on which the program is recorded are sold. It is also possible to store the program in a storage device of a server computer and transfer the program from the server computer to another computer via a network.

プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。   The computer that executes the program stores, for example, the program recorded on the portable recording medium or the program transferred from the server computer in its own storage device. Then, the computer reads the program from its own storage device and executes processing according to the program. The computer can also read a program directly from a portable recording medium and execute processing according to the program. Further, each time the program is transferred from the server computer, the computer can sequentially execute processing according to the received program.

以上の実施の形態に関し、さらに以下の付記を開示する。
(付記1) ネットワークを介して所定のサービスを提供するアプリケーション装置のテストのためのアプリケーションテスト生成プログラムにおいて、
コンピュータを、
前記所定のサービスの提供を受けるユーザエージェントに対し、前記アプリケーション装置に対するテスト対象のリクエストの送信及び前記リクエストに対するレスポンスの受信に応じた処理を含む所定の処理の実行を指示する命令から成る命令列を取得し、前記命令列の表す処理が区切れる区切り命令を前記命令列から検出し、前記区切り命令ごとに前記命令列を分割して、分割命令列を生成する命令列分割手段、
前記分割命令列ごとに、前記分割命令列に基づいて前記ユーザエージェントへの指示を再生して出力し、前記ユーザエージェントが送信した前記リクエストと、前記リクエストに対応して前記アプリケーション装置から送信された前記レスポンスと、を通信ログとして取得し、該通信ログ取得時に再生した前記分割命令列に対応付けて記憶手段に記憶し、前記通信ログを前記分割命令列ごとに分類したログ分類表を生成する通信ログ取得・分類手段、
前記ログ分類表から、前記テスト対象のリクエストを発生させた前記命令列を含む前記分割命令列に対応付けられている前記通信ログを抽出し、抽出された前記通信ログに基づいて前記リクエストの改変を含むテスト手順を記述したテスト核を生成するとともに、前記分割命令列と前記テスト核とを協働して実行させる自動テストを生成する自動テスト生成手段、
として機能させることを特徴とするアプリケーションテスト生成プログラム。(1、図1)
(付記2) 前記命令列分割手段は、前記リクエストに基づいて前記アプリケーション装置から前記レスポンスを受けた後の状態が安定状態となったことを示唆する命令を前記区切り命令とする、ことを特徴とする付記1記載のアプリケーションテスト生成プログラム。
Regarding the above embodiment, the following additional notes are disclosed.
(Supplementary Note 1) In an application test generation program for testing an application device that provides a predetermined service via a network,
Computer
An instruction sequence comprising instructions for instructing a user agent receiving the provision of a predetermined service to execute a predetermined process including a process in response to transmission of a request to be tested to the application apparatus and reception of a response to the request. An instruction sequence dividing means for acquiring and detecting a delimiter instruction in which the process represented by the instruction sequence is delimited from the instruction sequence, dividing the instruction sequence for each delimiter instruction, and generating a divided instruction sequence;
For each of the divided instruction sequences, an instruction to the user agent is reproduced and output based on the divided instruction sequence, and the request transmitted by the user agent is transmitted from the application device in response to the request. The response is acquired as a communication log, stored in a storage unit in association with the divided instruction sequence reproduced when the communication log is acquired, and a log classification table in which the communication log is classified for each divided instruction sequence is generated. Communication log acquisition / classification means,
Extracting the communication log associated with the divided instruction sequence including the instruction sequence that generated the request to be tested from the log classification table, and modifying the request based on the extracted communication log Automatic test generation means for generating a test nucleus describing a test procedure including: an automatic test for executing the divided instruction sequence and the test nucleus in cooperation with each other;
An application test generation program characterized by functioning as (1, Fig. 1)
(Additional remark 2) The said instruction sequence division | segmentation means makes the said instruction | indication which suggests that the state after receiving the said response from the said application apparatus based on the said request became a stable state as the said division | segmentation instruction, It is characterized by the above-mentioned. The application test generation program according to appendix 1.

(付記3) 前記命令列分割手段は、前記リクエストに基づいて前記アプリケーション装置から前記レスポンスを受けた後の状態が安定状態となったことを示唆する命令の次の実行順の命令を前記区切り命令とする、ことを特徴とする付記1記載のアプリケーションテスト生成プログラム。   (Additional remark 3) The said instruction sequence division | segmentation means is an instruction | indication of the next execution order following the instruction which suggests that the state after receiving the said response from the said application apparatus based on the said request became the stable state. The application test generation program according to supplementary note 1, characterized by:

(付記4) 前記命令列分割手段は、前記アプリケーション装置から送信される前記レスポンスの受信を待つことを指示する命令を前記区切り命令とする、ことを特徴とする付記2または3記載のアプリケーションテスト生成プログラム。   (Supplementary note 4) The application test generation according to Supplementary note 2 or 3, wherein the instruction sequence dividing unit uses the instruction to wait for reception of the response transmitted from the application device as the delimiter instruction. program.

(付記5) 前記命令列分割手段は、前記アプリケーション装置から送信される前記レスポンスが受信できたことを示唆する命令を前記区切り命令とする、ことを特徴とする付記2または3記載のアプリケーションテスト生成プログラム。   (Supplementary note 5) The application test generation according to supplementary note 2 or 3, wherein the instruction sequence dividing means uses an instruction indicating that the response transmitted from the application device has been received as the delimiter instruction. program.

(付記6) 前記自動テスト生成手段は、前記分割命令列を順次再生して前記ユーザエージェントに出力させるとともに、前記分割命令列に対し前記テスト核が設定されていなかったときは、前記テスト核を実行する実行部の動作を無効とし、前記分割命令列に対し前記テスト核が設定されていたときは、前記実行部の動作を有効とする手順を前記自動テストに組み込む、ことを特徴とする付記1または2記載のアプリケーションテスト生成プログラム。   (Additional remark 6) The said automatic test production | generation means reproduces | regenerates the said division | segmentation instruction sequence one by one, and makes it output to the said user agent, and when the said test nucleus is not set with respect to the said division | segmentation instruction sequence, The operation of the execution unit to be executed is invalidated, and when the test kernel is set for the divided instruction sequence, a procedure for validating the operation of the execution unit is incorporated in the automatic test. The application test generation program according to 1 or 2.

(付記7) 前記自動テスト生成手段は、前記テスト核を生成する対象のリクエストを含む前記通信ログから前記リクエストに含まれる前記アプリケーション装置のアドレス情報を含む該リクエストを特徴付ける特徴情報を抽出し、前記特徴情報と、前記ユーザエージェントが送信した前記リクエストに含まれる特徴情報とを比較し、一致したときのみ前記ユーザエージェントが送信した前記リクエストの任意の部分の改変を行う手順を前記自動テストに組み込む、ことを特徴とする付記1記載のアプリケーションテスト生成プログラム。   (Additional remark 7) The said automatic test production | generation means extracts the characteristic information which characterizes this request including the address information of the said application apparatus contained in the said request from the said communication log containing the request of the object which produces | generates the said test nucleus, Comparing the feature information with the feature information included in the request sent by the user agent, and incorporating a procedure for modifying any part of the request sent by the user agent into the automatic test only when they match. The application test generation program according to supplementary note 1, wherein

(付記8) 前記自動テスト生成手段は、前記リクエストを改変するテスト終了時に、改変前の前記リクエストを前記アプリケーション装置に送信し、応答を得る手順を前記テスト核に組み込む、ことを特徴とする付記1記載のアプリケーションテスト生成プログラム。   (Supplementary note 8) The automatic test generation means, at the end of a test for modifying the request, transmits the request before modification to the application device and incorporates a procedure for obtaining a response in the test core. 1. An application test generation program according to 1.

(付記9) 前記自動テスト生成手段は、前記テスト核に対応する前記命令列の実行終了時に、該テスト核の処理が終了したかどうかを判断し、終了していないときはエラーを通知する手順を前記自動テストに組み込む、ことを特徴とする付記1記載のアプリケーションテスト生成プログラム。   (Supplementary note 9) A procedure in which the automatic test generation means determines whether or not the processing of the test kernel is completed when the execution of the instruction sequence corresponding to the test kernel is completed, and notifies an error when the processing is not completed The application test generation program according to supplementary note 1, wherein the application test generation program is incorporated into the automatic test.

(付記10) ネットワークを介して所定のサービスを提供するアプリケーション装置のテストのためのアプリケーションテスト生成方法において、
コンピュータに、
前記所定のサービスの提供を受けるユーザエージェントに対し、前記アプリケーション装置に対するテスト対象のリクエストの送信及び前記リクエストに対するレスポンスの受信に応じた処理を含む所定の処理の実行を指示する命令から成る命令列を取得し、前記命令列の表す処理が区切れる区切り命令を前記命令列から検出し、前記区切り命令ごとに前記命令列を分割して、分割命令列を生成する命令列分割手順と、
前記分割命令列ごとに、前記分割命令列に基づいて前記ユーザエージェントへの指示を再生して出力し、前記ユーザエージェントが送信した前記リクエストと、前記リクエストに対応して前記アプリケーション装置から送信された前記レスポンスと、を通信ログとして取得し、該通信ログ取得時に再生した前記分割命令列に対応付けて記憶手段に記憶し、前記通信ログを前記分割命令列ごとに分類したログ分類表を生成する通信ログ取得・分類手順と、
前記ログ分類表から、前記テスト対象のリクエストを発生させた前記命令列を含む前記分割命令列に対応付けられている前記通信ログを抽出し、抽出された前記通信ログに基づいて前記リクエストの改変を含むテスト手順を記述したテスト核を生成するとともに、前記分割命令列と前記テスト核とを協働して実行させる自動テストを生成する自動テスト生成手順と、
を実行させることを特徴とするアプリケーションテスト生成方法。
(Additional remark 10) In the application test production | generation method for the test of the application apparatus which provides a predetermined service via a network,
On the computer,
An instruction sequence comprising instructions for instructing a user agent receiving the provision of a predetermined service to execute a predetermined process including a process in response to transmission of a request to be tested to the application apparatus and reception of a response to the request. An instruction sequence dividing procedure for obtaining a segmented instruction in which the processing represented by the instruction sequence is obtained from the instruction sequence, dividing the instruction sequence for each delimited instruction, and generating a divided instruction sequence;
For each of the divided instruction sequences, an instruction to the user agent is reproduced and output based on the divided instruction sequence, and the request transmitted by the user agent is transmitted from the application device in response to the request. The response is acquired as a communication log, stored in a storage unit in association with the divided instruction sequence reproduced when the communication log is acquired, and a log classification table in which the communication log is classified for each divided instruction sequence is generated. Communication log acquisition / classification procedure,
Extracting the communication log associated with the divided instruction sequence including the instruction sequence that generated the request to be tested from the log classification table, and modifying the request based on the extracted communication log And an automatic test generation procedure for generating an automatic test for executing the split instruction sequence and the test nucleus in cooperation with each other.
An application test generation method characterized in that

(付記11) ネットワークを介して所定のサービスを提供するアプリケーション装置のテストのためのアプリケーションテスト装置において、
前記所定のサービスの提供を受けるユーザエージェントに対し、前記アプリケーション装置に対するテスト対象のリクエストの送信及び前記リクエストに対するレスポンスの受信に応じた処理を含む所定の処理の実行を指示する命令から成る命令列を取得し、前記命令列の表す処理が区切れる区切り命令を前記命令列から検出し、前記区切り命令ごとに前記命令列を分割して、分割命令列を生成する命令列分割手段と、
前記分割命令列ごとに、前記分割命令列に基づいて前記ユーザエージェントへの指示を再生して出力し、前記ユーザエージェントが送信した前記リクエストと、前記リクエストに対応して前記アプリケーション装置から送信された前記レスポンスと、を通信ログとして取得し、該通信ログ取得時に再生した前記分割命令列に対応付けて記憶手段に記憶し、前記通信ログを前記分割命令列ごとに分類したログ分類表を生成する通信ログ取得・分類手段と、
前記ログ分類表から、前記テスト対象のリクエストを発生させた前記命令列を含む前記分割命令列に対応付けられている前記通信ログを抽出し、抽出された前記通信ログに基づいて前記リクエストの改変を含むテスト手順を記述したテスト核を生成するとともに、前記分割命令列と前記テスト核とを協働して実行させる自動テストを生成する自動テスト生成手段と、
前記ユーザエージェントと前記アプリケーション装置との間のリクエスト及びレスポンスを中継する中継手段の動作を制御し、前記ユーザエージェントに対し、前記分割命令列を再生して前記ユーザエージェントに前記所定の処理の実行を実行させるとともに、前記テスト核が生成された前記リクエストを送信する前記分割命令列の再生時には、対応する前記テスト核に基づいて前記リクエストの横取りと改変を前記中継手段に実行させる制御手段と、
を有することを特徴とするアプリケーションテスト装置。
(Additional remark 11) In the application test apparatus for the test of the application apparatus which provides a predetermined service via a network,
An instruction sequence comprising instructions for instructing a user agent receiving the provision of a predetermined service to execute a predetermined process including a process in response to transmission of a request to be tested to the application apparatus and reception of a response to the request. An instruction sequence dividing means for obtaining and detecting a delimiter instruction in which the processing represented by the instruction sequence is delimited from the instruction sequence, dividing the instruction sequence for each delimiter instruction, and generating a divided instruction sequence;
For each of the divided instruction sequences, an instruction to the user agent is reproduced and output based on the divided instruction sequence, and the request transmitted by the user agent is transmitted from the application device in response to the request. The response is acquired as a communication log, stored in a storage unit in association with the divided instruction sequence reproduced when the communication log is acquired, and a log classification table in which the communication log is classified for each divided instruction sequence is generated. Communication log acquisition / classification means,
Extracting the communication log associated with the divided instruction sequence including the instruction sequence that generated the request to be tested from the log classification table, and modifying the request based on the extracted communication log Automatic test generation means for generating a test nucleus that describes a test procedure including: and generating an automatic test that causes the divided instruction sequence and the test nucleus to be executed in cooperation with each other;
Controls the operation of a relay unit that relays requests and responses between the user agent and the application device, and reproduces the divided instruction sequence for the user agent and causes the user agent to execute the predetermined process. Control means for causing the relay means to execute the interception and modification of the request based on the corresponding test nucleus at the time of reproduction of the divided instruction sequence for transmitting the request in which the test nucleus is generated,
An application test apparatus characterized by comprising:

10 テスト生成装置
11 命令列分割手段
12 通信ログ取得・分類手段
13 自動テスト生成手段
14 記憶手段
21 命令列
22 命令列分割表
23 ログ分類表
24 自動テスト
40 ユーザエージェント
50 通信ログ取得装置
60 サーバ
DESCRIPTION OF SYMBOLS 10 Test generation apparatus 11 Instruction sequence dividing means 12 Communication log acquisition / classification means 13 Automatic test generation means 14 Storage means 21 Instruction sequence 22 Instruction sequence division table 23 Log classification table 24 Automatic test 40 User agent 50 Communication log acquisition device 60 Server

Claims (5)

ネットワークを介して所定のサービスを提供するアプリケーション装置のテストのためのアプリケーションテスト生成プログラムにおいて、
コンピュータを、
前記所定のサービスの提供を受けるユーザエージェントに対し、前記アプリケーション装置に対するテスト対象のリクエストの送信及び前記リクエストに対するレスポンスの受信に応じた処理を含む所定の処理の実行を指示する命令から成る命令列を取得し、前記命令列の表す処理が区切れる区切り命令を前記命令列から検出し、前記区切り命令ごとに前記命令列を分割して、分割命令列を生成する命令列分割手段、
前記分割命令列ごとに、前記分割命令列に基づいて前記ユーザエージェントへの指示を再生して出力し、前記ユーザエージェントが送信した前記リクエストと、前記リクエストに対応して前記アプリケーション装置から送信された前記レスポンスと、を通信ログとして取得し、該通信ログ取得時に再生した前記分割命令列に対応付けて記憶手段に記憶し、前記通信ログを前記分割命令列ごとに分類したログ分類表を生成する通信ログ取得・分類手段、
前記ログ分類表から、前記テスト対象のリクエストを発生させた前記命令列を含む前記分割命令列に対応付けられている前記通信ログを抽出し、抽出された前記通信ログに基づいて前記リクエストの改変を含むテスト手順を記述したテスト核を生成するとともに、前記分割命令列と前記テスト核とを協働して実行させる自動テストを生成する自動テスト生成手段、
として機能させることを特徴とするアプリケーションテスト生成プログラム。
In an application test generation program for testing an application device that provides a predetermined service via a network,
Computer
An instruction sequence comprising instructions for instructing a user agent receiving the provision of a predetermined service to execute a predetermined process including a process in response to transmission of a request to be tested to the application apparatus and reception of a response to the request. An instruction sequence dividing means for acquiring and detecting a delimiter instruction in which the process represented by the instruction sequence is delimited from the instruction sequence, dividing the instruction sequence for each delimiter instruction, and generating a divided instruction sequence;
For each of the divided instruction sequences, an instruction to the user agent is reproduced and output based on the divided instruction sequence, and the request transmitted by the user agent is transmitted from the application device in response to the request. The response is acquired as a communication log, stored in a storage unit in association with the divided instruction sequence reproduced when the communication log is acquired, and a log classification table in which the communication log is classified for each divided instruction sequence is generated. Communication log acquisition / classification means,
Extracting the communication log associated with the divided instruction sequence including the instruction sequence that generated the request to be tested from the log classification table, and modifying the request based on the extracted communication log Automatic test generation means for generating a test nucleus describing a test procedure including: an automatic test for causing the divided instruction sequence and the test nucleus to be executed in cooperation with each other;
An application test generation program characterized by functioning as
前記命令列分割手段は、前記リクエストに基づいて前記アプリケーション装置から前記レスポンスを受けた後の状態が安定状態となったことを示唆する命令を前記区切り命令とする、ことを特徴とする請求項1記載のアプリケーションテスト生成プログラム。   2. The instruction sequence dividing unit, wherein the instruction indicating that the state after receiving the response from the application apparatus based on the request has become a stable state is the delimiter instruction. Application test generation program described. 前記自動テスト生成手段は、前記分割命令列を順次再生して前記ユーザエージェントに出力させるとともに、前記分割命令列に対し前記テスト核が設定されていなかったときは、前記テスト核を実行する実行部の動作を無効とし、前記分割命令列に対し前記テスト核が設定されていたときは、前記実行部の動作を有効とする手順を前記自動テストに組み込む、ことを特徴とする請求項1または2記載のアプリケーションテスト生成プログラム。   The automatic test generation means sequentially reproduces the divided instruction sequences and outputs them to the user agent, and executes the test nucleus when the test nucleus is not set for the divided instruction sequence 3. A procedure for validating the operation of the execution unit is incorporated in the automatic test when the operation is invalidated and the test kernel is set for the divided instruction sequence. Application test generation program described. ネットワークを介して所定のサービスを提供するアプリケーション装置のテストのためのアプリケーションテスト生成方法において、
コンピュータに、
前記所定のサービスの提供を受けるユーザエージェントに対し、前記アプリケーション装置に対するテスト対象のリクエストの送信及び前記リクエストに対するレスポンスの受信に応じた処理を含む所定の処理の実行を指示する命令から成る命令列を取得し、前記命令列の表す処理が区切れる区切り命令を前記命令列から検出し、前記区切り命令ごとに前記命令列を分割して、分割命令列を生成する命令列分割手順と、
前記分割命令列ごとに、前記分割命令列に基づいて前記ユーザエージェントへの指示を再生して出力し、前記ユーザエージェントが送信した前記リクエストと、前記リクエストに対応して前記アプリケーション装置から送信された前記レスポンスと、を通信ログとして取得し、該通信ログ取得時に再生した前記分割命令列に対応付けて記憶手段に記憶し、前記通信ログを前記分割命令列ごとに分類したログ分類表を生成する通信ログ取得・分類手順と、
前記ログ分類表から、前記テスト対象のリクエストを発生させた前記命令列を含む前記分割命令列に対応付けられている前記通信ログを抽出し、抽出された前記通信ログに基づいて前記リクエストの改変を含むテスト手順を記述したテスト核を生成するとともに、前記分割命令列と前記テスト核とを協働して実行させる自動テストを生成する自動テスト生成手順と、
を実行させることを特徴とするアプリケーションテスト生成方法。
In an application test generation method for testing an application device that provides a predetermined service via a network,
On the computer,
An instruction sequence comprising instructions for instructing a user agent receiving the provision of a predetermined service to execute a predetermined process including a process in response to transmission of a request to be tested to the application apparatus and reception of a response to the request. An instruction sequence dividing procedure for obtaining and detecting a delimiter instruction in which the processing represented by the instruction sequence is delimited from the instruction sequence, dividing the instruction sequence for each delimiter instruction, and generating a divided instruction sequence;
For each of the divided instruction sequences, an instruction to the user agent is reproduced and output based on the divided instruction sequence, and the request transmitted by the user agent is transmitted from the application device in response to the request. The response is acquired as a communication log, stored in a storage unit in association with the divided instruction sequence reproduced when the communication log is acquired, and a log classification table in which the communication log is classified for each divided instruction sequence is generated. Communication log acquisition / classification procedure,
Extracting the communication log associated with the divided instruction sequence including the instruction sequence that generated the request to be tested from the log classification table, and modifying the request based on the extracted communication log And an automatic test generation procedure for generating an automatic test for executing the split instruction sequence and the test nucleus in cooperation with each other.
An application test generation method characterized in that
ネットワークを介して所定のサービスを提供するアプリケーション装置のテストのためのアプリケーションテスト装置において、
前記所定のサービスの提供を受けるユーザエージェントに対し、前記アプリケーション装置に対するテスト対象のリクエストの送信及び前記リクエストに対するレスポンスの受信に応じた処理を含む所定の処理の実行を指示する命令から成る命令列を取得し、前記命令列の表す処理が区切れる区切り命令を前記命令列から検出し、前記区切り命令ごとに前記命令列を分割して、分割命令列を生成する命令列分割手段と、
前記分割命令列ごとに、前記分割命令列に基づいて前記ユーザエージェントへの指示を再生して出力し、前記ユーザエージェントが送信した前記リクエストと、前記リクエストに対応して前記アプリケーション装置から送信された前記レスポンスと、を通信ログとして取得し、該通信ログ取得時に再生した前記分割命令列に対応付けて記憶手段に記憶し、前記通信ログを前記分割命令列ごとに分類したログ分類表を生成する通信ログ取得・分類手段と、
前記ログ分類表から、前記テスト対象のリクエストを発生させた前記命令列を含む前記分割命令列に対応付けられている前記通信ログを抽出し、抽出された前記通信ログに基づいて前記リクエストの改変を含むテスト手順を記述したテスト核を生成するとともに、前記分割命令列と前記テスト核とを協働して実行させる自動テストを生成する自動テスト生成手段と、
前記ユーザエージェントと前記アプリケーション装置との間のリクエスト及びレスポンスを中継する中継手段の動作を制御し、前記ユーザエージェントに対し、前記分割命令列を再生して前記ユーザエージェントに前記所定の処理の実行を実行させるとともに、前記テスト核が生成された前記リクエストを送信する前記分割命令列の再生時には、対応する前記テスト核に基づいて前記リクエストの横取りと改変を前記中継手段に実行させる制御手段と、
を有することを特徴とするアプリケーションテスト装置。
In an application test apparatus for testing an application apparatus that provides a predetermined service via a network,
An instruction sequence comprising instructions for instructing a user agent receiving the provision of a predetermined service to execute a predetermined process including a process in response to transmission of a request to be tested to the application apparatus and reception of a response to the request. An instruction sequence dividing means for obtaining and detecting a delimiter instruction in which the processing represented by the instruction sequence is delimited from the instruction sequence, dividing the instruction sequence for each delimiter instruction, and generating a divided instruction sequence;
For each of the divided instruction sequences, an instruction to the user agent is reproduced and output based on the divided instruction sequence, and the request transmitted by the user agent is transmitted from the application device in response to the request. The response is acquired as a communication log, stored in a storage unit in association with the divided instruction sequence reproduced when the communication log is acquired, and a log classification table in which the communication log is classified for each divided instruction sequence is generated. Communication log acquisition / classification means,
Extracting the communication log associated with the divided instruction sequence including the instruction sequence that generated the request to be tested from the log classification table, and modifying the request based on the extracted communication log Automatic test generation means for generating a test nucleus that describes a test procedure including: and generating an automatic test that causes the divided instruction sequence and the test nucleus to be executed in cooperation with each other;
Controls the operation of a relay unit that relays requests and responses between the user agent and the application device, and reproduces the divided instruction sequence for the user agent and causes the user agent to execute the predetermined process. Control means for causing the relay means to execute the interception and modification of the request based on the corresponding test nucleus at the time of reproduction of the divided instruction sequence for transmitting the request in which the test nucleus is generated,
An application test apparatus characterized by comprising:
JP2009099703A 2009-04-16 2009-04-16 Application test generation program, application test generation method, and application test apparatus Active JP5463717B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009099703A JP5463717B2 (en) 2009-04-16 2009-04-16 Application test generation program, application test generation method, and application test apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009099703A JP5463717B2 (en) 2009-04-16 2009-04-16 Application test generation program, application test generation method, and application test apparatus

Publications (2)

Publication Number Publication Date
JP2010250583A true JP2010250583A (en) 2010-11-04
JP5463717B2 JP5463717B2 (en) 2014-04-09

Family

ID=43312832

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009099703A Active JP5463717B2 (en) 2009-04-16 2009-04-16 Application test generation program, application test generation method, and application test apparatus

Country Status (1)

Country Link
JP (1) JP5463717B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012146100A (en) * 2011-01-11 2012-08-02 Fujitsu Ltd Attack imitation testing method, attack imitation testing device and attack imitation testing program
CN103562927A (en) * 2011-05-31 2014-02-05 惠普发展公司,有限责任合伙企业 Automated security testing
WO2014087493A1 (en) * 2012-12-04 2014-06-12 株式会社日立製作所 Test pattern creation device and creation method, and software verification device and verification method
KR20180076020A (en) * 2016-12-27 2018-07-05 주식회사 넥슨코리아 Apparatus and method for application test automation
CN109643272A (en) * 2016-06-29 2019-04-16 新思科技有限公司 Automatic HTTP user's flow field simulation device
JP2019082746A (en) * 2017-10-27 2019-05-30 株式会社エヌ・ティ・ティ・データ Abnormal log detection apparatus, method and program for detecting abnormal log
JP2020529066A (en) * 2017-07-28 2020-10-01 イングラム マイクロ インコーポレーテッド Technology that automatically verifies the functionality of offers in cloud service broker systems

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006031722A (en) * 2005-08-03 2006-02-02 Fujitsu Ltd Test support program
JP2008015709A (en) * 2006-07-04 2008-01-24 Fujitsu Ltd Test support program, device, and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006031722A (en) * 2005-08-03 2006-02-02 Fujitsu Ltd Test support program
JP2008015709A (en) * 2006-07-04 2008-01-24 Fujitsu Ltd Test support program, device, and method

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012146100A (en) * 2011-01-11 2012-08-02 Fujitsu Ltd Attack imitation testing method, attack imitation testing device and attack imitation testing program
US10243679B2 (en) 2011-05-31 2019-03-26 Entit Software Llc Vulnerability detection
CN103562927A (en) * 2011-05-31 2014-02-05 惠普发展公司,有限责任合伙企业 Automated security testing
JP2014519119A (en) * 2011-05-31 2014-08-07 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. Automatic security inspection
US9276952B2 (en) 2011-05-31 2016-03-01 Hewlett Packard Enterprise Development Lp Automated security testing
CN103562927B (en) * 2011-05-31 2016-06-01 惠普发展公司,有限责任合伙企业 Automatization's safety test
US9736177B2 (en) 2011-05-31 2017-08-15 Hewlett Packard Enterprise Development Lp Automated security testing
WO2014087493A1 (en) * 2012-12-04 2014-06-12 株式会社日立製作所 Test pattern creation device and creation method, and software verification device and verification method
CN109643272A (en) * 2016-06-29 2019-04-16 新思科技有限公司 Automatic HTTP user's flow field simulation device
CN109643272B (en) * 2016-06-29 2023-03-28 新思科技有限公司 Test system and method for automatic HTTP test
KR20180076020A (en) * 2016-12-27 2018-07-05 주식회사 넥슨코리아 Apparatus and method for application test automation
KR102635847B1 (en) * 2016-12-27 2024-02-08 주식회사 넥슨코리아 Apparatus and method for application test automation
JP2020529066A (en) * 2017-07-28 2020-10-01 イングラム マイクロ インコーポレーテッド Technology that automatically verifies the functionality of offers in cloud service broker systems
JP7105298B2 (en) 2017-07-28 2022-07-22 クラウドブルー エルエルシー Technology for automatically verifying offer functionality in a cloud service broker system
JP2019082746A (en) * 2017-10-27 2019-05-30 株式会社エヌ・ティ・ティ・データ Abnormal log detection apparatus, method and program for detecting abnormal log
JP7005278B2 (en) 2017-10-27 2022-01-21 株式会社エヌ・ティ・ティ・データ Abnormal log detection device, abnormal log detection method and program

Also Published As

Publication number Publication date
JP5463717B2 (en) 2014-04-09

Similar Documents

Publication Publication Date Title
JP5463717B2 (en) Application test generation program, application test generation method, and application test apparatus
JP5325169B2 (en) Web application operation reproduction method and system
US7099939B2 (en) HTTP transaction monitor with sequence replay capacity
US7333978B2 (en) Searching to identify web page(s)
US20100058118A1 (en) Storage medium recording information reacquisition procedure generation program and information reacquisition procedure generation apparatus
JP5483965B2 (en) Web application operation recording / reproducing method and system
WO2012014284A1 (en) Method of generating test scenario, test scenario generating system and test scenario generating program
US20020065911A1 (en) HTTP transaction monitor with edit and replay capacity
JP4940791B2 (en) Test support program, test support apparatus, and test support method
JP2008117093A (en) User operation recording/reproducing method and device
JP4023803B2 (en) Web application development support apparatus, data processing method, and program
US20130198333A1 (en) Method and device for recording and reproducing web operation
US20020156881A1 (en) HTTP transaction monitor with replay capacity
JPH0981445A (en) Information controller
JP2011164704A (en) Client program, terminal, server device, system, and method
US7363368B2 (en) System and method for transaction recording and playback
JP2013080404A (en) System, computer, method, and program which call java method on client
CN110532182B (en) Automatic testing method and device for virtualization platform
JP4788768B2 (en) How to get long data with GET method
JP4048736B2 (en) Failure analysis support method and apparatus
CN107608672A (en) A kind of UI module managements, UI module management methods and system
JP2016071398A (en) Test execution device, test execution method, and computer program
JP2005222130A (en) Program managing method, execution device, and processing program
JP6436704B2 (en) Test execution device, test execution method, and computer program
JP6353759B2 (en) Test execution device, test execution method, and computer program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130806

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131004

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140106

R150 Certificate of patent or registration of utility model

Ref document number: 5463717

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150