Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5200719B2 - Web application inspection program, test execution device, and test execution method - Google Patents
[go: Go Back, main page]

JP5200719B2 - Web application inspection program, test execution device, and test execution method - Google Patents

Web application inspection program, test execution device, and test execution method Download PDF

Info

Publication number
JP5200719B2
JP5200719B2 JP2008184120A JP2008184120A JP5200719B2 JP 5200719 B2 JP5200719 B2 JP 5200719B2 JP 2008184120 A JP2008184120 A JP 2008184120A JP 2008184120 A JP2008184120 A JP 2008184120A JP 5200719 B2 JP5200719 B2 JP 5200719B2
Authority
JP
Japan
Prior art keywords
screen
web
program
session
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008184120A
Other languages
Japanese (ja)
Other versions
JP2010026600A (en
Inventor
敏裕 小高
里枝子 山本
忠弘 上原
朝子 片山
ユカ 田中
翔一朗 藤原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2008184120A priority Critical patent/JP5200719B2/en
Publication of JP2010026600A publication Critical patent/JP2010026600A/en
Application granted granted Critical
Publication of JP5200719B2 publication Critical patent/JP5200719B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

この発明は、WebサーバにインストールされているWebアプリケーションを、クライアントがWebサーバにアクセスすることにより検査するWebアプリケーション検査プログラム、テスト実行装置、およびテスト実行方法に関する。   The present invention relates to a Web application inspection program, a test execution device, and a test execution method for inspecting a Web application installed on a Web server when a client accesses the Web server.

従来、Webアプリケーションのテストとして、Webブラウザに対する操作を繰返し行うことにより、Webアプリケーションが正しく動作するかを確認する手法が一般的に採られている。   Conventionally, as a test of a web application, a method of confirming whether the web application operates correctly by repeatedly performing operations on the web browser is generally employed.

この場合、複数の操作の組合せや複数の入力データの組合せによりバグが発生することもあるため、修正の必要な箇所を把握するために、一部のみ異なる操作やデータ入力を行い、他の部分については前回と同様の操作を行うことが必要となっていた。したがって、各テストにおいて、操作手順及び入力データをすべて記録しておくことが必要となるため、再帰テストにおける作業が煩雑なものとなっていた。   In this case, since bugs may occur due to combinations of multiple operations and combinations of multiple input data, in order to grasp the points that need to be corrected, only some operations or data inputs are performed, and other parts For, it was necessary to perform the same operation as the previous time. Therefore, since it is necessary to record all operation procedures and input data in each test, the work in the recursive test is complicated.

このような再帰テストにおける支援装置として、テスト結果の検証を行う際、保存されていたHTML(HyperText Markup Language)ファイルとWebサーバから受信したHTMLファイルの内容が一致するか否かの判定をおこなう技術が開示されている(たとえば、下記特許文献1を参照。)。   As a support apparatus in such a recursive test, when verifying a test result, a technique for determining whether or not the stored HTML (HyperText Markup Language) file and the content of the HTML file received from the Web server match. Is disclosed (for example, see Patent Document 1 below).

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

しかしながら、上述した従来技術では、通常、一つのジョブは複数のプログラムから構成されているため、データの異常の発生を検知することができても、当該異常がどの箇所で発生したものであるかを把握することができないという問題があった。   However, in the above-described prior art, since one job is usually composed of a plurality of programs, even if it is possible to detect the occurrence of a data abnormality, where the abnormality occurred. There was a problem that could not be grasped.

この発明は、上述した従来技術による問題点を解消するため、バグを検出した際のプログラム上のバグ発生箇所の発見時間の短縮化を図ることができる技術を提供することを目的とする。   An object of the present invention is to provide a technique capable of shortening the time required to find a bug occurrence location on a program when a bug is detected in order to solve the above-described problems caused by the prior art.

上述した課題を解決し、目的を達成するため、本開示技術では、一連のプログラム群を含むWebアプリケーションがインストールされているWebサーバが、前記Webアプリケーションのテストケースに含まれている一連の画面遷移仕様の中から選ばれた画面遷移仕様のWeb画面を要求するリクエストをクライアントから受信し、受信されたリクエストに基づいて、前記プログラム群のうち前記Web画面を呼び出すプログラムを実行して、前記Web画面に表示させる画面項目に関する出力値と前記プログラムに関する出力値およびその属性とを出力し、出力された前記プログラムに関する出力値およびその属性をセッション情報として記憶領域に保存し、出力された画面項目に関する出力値が埋め込まれた前記Web画面に関するレスポンスを生成し、生成された前記Web画面に関するレスポンスに、前記記憶領域に保存されたセッション情報を挿入し、前記セッション情報が挿入された前記Web画面に関するレスポンスを前記クライアントに送信することを要件とする。   In order to solve the above-described problems and achieve the object, in the disclosed technique, a web server in which a web application including a series of programs is installed is a series of screen transitions included in the test case of the web application. A request for requesting a Web screen of a screen transition specification selected from the specifications is received from a client, and a program for calling the Web screen of the program group is executed based on the received request, and the Web screen is executed. The output value related to the screen item to be displayed on the screen, the output value related to the program and the attribute thereof are output, the output value related to the program output and the attribute thereof are stored in the storage area as session information, and the output related to the output screen item is output. Regarding the Web screen in which the value is embedded Generating a response, inserting the session information stored in the storage area into the generated response related to the Web screen, and transmitting the response related to the Web screen into which the session information is inserted to the client To do.

また、Webサーバにアクセス可能なWebアプリケーション検査装置が、前記一連の画面遷移仕様が記述されたテスト仕様書データを受け付け、前記リクエストを前記Webサーバに送信した結果、前記Web画面に関するレスポンスを前記Webサーバから取得し、取得された前記Web画面に関するレスポンスの中から、前記画面項目に関する出力値と前記セッション情報とを抽出し、抽出された画面項目に関する出力値と前記セッション情報とを、前記Web画面に関連付けて、前記受付工程によって受け付けられたテスト仕様書データに書き込むことを要件とする。   In addition, a Web application inspection apparatus that can access the Web server receives test specification data in which the series of screen transition specifications are described, and transmits the request to the Web server. An output value related to the screen item and the session information are extracted from the acquired response related to the Web screen, and the output value related to the extracted screen item and the session information are extracted from the Web screen. It is necessary to write the test specification data received in the receiving step in association with

本開示技術によれば、バグを検出した際のプログラム上のバグ発生箇所の発見時間の短縮化を図ることができるという効果を奏する。   According to the present disclosure technique, it is possible to shorten the time for finding a bug occurrence location on a program when a bug is detected.

(本開示技術の概要)
以下に添付図面を参照して、本開示技術の概要を説明する。WebサーバにインストールされたWebアプリケーションのリグレッション(回帰)テストの実行結果に誤りがある場合、実行結果を最終的に表示する画面を呼び出したプログラムのバグにより実行結果に誤りが発生したのか、それ以前のプログラムのバグに影響されて実行結果に誤りが発生したのかがわからない。ここでは、Webアプリケーションの例として、厄年表示プログラムを用いて説明する。
(Outline of the disclosed technology)
The outline of the disclosed technique will be described below with reference to the accompanying drawings. If there is an error in the execution result of the regression test of the Web application installed on the Web server, whether or not the error occurred in the execution result due to a bug in the program that called the screen that finally displays the execution result I don't know if there was an error in the execution result due to a bug in the program. Here, a bad year display program will be described as an example of a Web application.

図1は、厄年表示プログラムの画面および処理の遷移を示す画面処理遷移図である。図2は、厄年表示プログラム100のソースコードを示す説明図である。厄年表示プログラム100は、利用者が入力した和暦の生年月日から、その人の厄年を計算、表示するWebアプリケーションである。   FIG. 1 is a screen process transition diagram showing transitions of screens and processes of a bad year display program. FIG. 2 is an explanatory diagram showing the source code of the bad year display program 100. The bad year display program 100 is a Web application that calculates and displays the bad year of the person from the date of birth of the Japanese calendar input by the user.

図1において、利用者は、Webブラウザを操作してURL(Uniform Resource Locator)を入力して、そのHTTP(Hypertext Transfer Protocol)リクエストをWebサーバに送信する。Webサーバは、初期画面である生年月日入力画面101を生成して、レスポンスとしてクライアントに送信する。これにより、クライアントのWebブラウザでは、生年月日入力画面101に遷移する。   In FIG. 1, a user operates a Web browser to input a URL (Uniform Resource Locator), and transmits an HTTP (Hypertext Transfer Protocol) request to the Web server. The Web server generates a birth date input screen 101 that is an initial screen and transmits it as a response to the client. Thereby, the client's Web browser transits to the birth date input screen 101.

利用者は生年月日入力画面101上で元号、年、月、日を選択またはキー入力することで和暦の生年月日を入力し、サブミットボタンを押下する。これにより、和暦の生年月日を含むHTTPリクエストがWebサーバに送信される。Webサーバ上で和暦→西暦変換プログラム102が実行され、性別入力画面103を生成する。性別入力画面103はレスポンスとしてクライアントに送信され、Webブラウザ上に表示される。   The user inputs the date of birth of the Japanese calendar by selecting or keying in the era name, year, month, and day on the date of birth input screen 101, and presses the submit button. Thereby, the HTTP request including the date of birth of the Japanese calendar is transmitted to the Web server. A Japanese calendar → Western calendar conversion program 102 is executed on the Web server to generate a gender input screen 103. The gender input screen 103 is transmitted as a response to the client and displayed on the Web browser.

性別入力画面103には、生年月日入力画面101で入力された情報が確認用に画面項目として表示され、さらに性別を入力するためのラジオボタン等の入力フォームが配置される。利用者は性別入力画面103上で性別を選択またはキー入力し、サブミットボタンを押下する。Webサーバでは厄年計算プログラム104が実行され、最終的な計算結果である厄年情報が表示される厄年表示画面105を生成する。厄年表示画面105はレスポンスとしてクライアントに送信され、Webブラウザ上に表示される。   On the gender input screen 103, information input on the date of birth input screen 101 is displayed as a screen item for confirmation, and an input form such as a radio button for inputting gender is arranged. The user selects or inputs a gender on the gender input screen 103 and presses a submit button. In the Web server, a bad year calculation program 104 is executed to generate a bad year display screen 105 on which the bad year information which is the final calculation result is displayed. The bad year display screen 105 is transmitted to the client as a response and displayed on the Web browser.

このような厄年表示プログラム100においては、画面出力上、性別入力画面103までテストをパスし、厄年表示画面105で障害を検出したとしても、バグが直前の厄年計算プログラム104にあると判断することはできない。通常、障害を検出した画面の直前の処理である厄年計算プログラム104にバグがあると考えるのが一般的だが、実際には和暦→西暦変換プログラム102にバグが潜んでいる可能性もあり、バグのある場所を特定することは困難である。   In such a troubled year display program 100, even if a test is passed to the sex input screen 103 on the screen output and a failure is detected on the troubled year display screen 105, it is determined that the bug exists in the previous troubled year calculation program 104. I can't. Normally, it is generally considered that there is a bug in the troubled year calculation program 104 that is the process immediately before the screen where the failure is detected, but in reality there may be a bug lurking in the Japanese calendar → Western calendar conversion program 102, It is difficult to identify where the bug is.

図2のソースコード200を参照すると、下線の行がbirthday変数に影響を与える可能性のある命令であり、バグの可能性がある行である。本開示技術では、このようにバグが潜む位置を高精度に特定することにより、Webアプリケーションのテストに対する信頼性の向上を図る。   Referring to the source code 200 of FIG. 2, the underlined line is an instruction that may affect the birthday variable, and is a line that may be a bug. In the disclosed technique, the position where the bug is hidden is specified with high accuracy, thereby improving the reliability of the Web application test.

<実施の形態1>
まず、本開示技術の実施の形態1について説明する。実施の形態1では、バグにより出力される画面をバグ位置として特定する。まず、Webアプリケーション検査システムの概略構成について説明する。
<Embodiment 1>
First, the first embodiment of the disclosed technology will be described. In the first embodiment, a screen output due to a bug is specified as a bug position. First, a schematic configuration of the Web application inspection system will be described.

(Webアプリケーション検査システムの概略構成)
図3は、実施の形態1にかかるWebアプリケーション検査システムの概略構成を示す説明図である。Webアプリケーション検査システム300は、Webサーバ301とクライアント302とがインターネットなどのネットワーク303により相互に交信可能に接続されている。なお、Webサーバ301とクライアント302とは、一台のマシンとして構成することとしてもよい。
(Schematic configuration of Web application inspection system)
FIG. 3 is an explanatory diagram of a schematic configuration of the Web application inspection system according to the first embodiment. In the Web application inspection system 300, a Web server 301 and a client 302 are connected to each other via a network 303 such as the Internet. Note that the Web server 301 and the client 302 may be configured as a single machine.

Webサーバ301は、検査対象となるWebアプリケーションがインストールされているコンピュータ装置である。Webサーバ301は、Webアプリケーションのテストを実行する。   The Web server 301 is a computer device in which a Web application to be inspected is installed. The Web server 301 executes a Web application test.

クライアント302は、Webアプリケーション検査者が利用するコンピュータ装置であり、実施の形態1におけるWebアプリケーション検査装置に相当する。クライアント302は、テスト仕様書データを作成する。作成されたテスト仕様書データは、テスト仕様書DB(Database)310に格納される。この作成にあたり、クライアント302は、Webサーバ301にアクセスすることで、任意の画面遷移仕様のWeb画面を要求するリクエストをWebサーバ301に送信するとともに、そのレスポンスをWebサーバ301から受信する。そして、そのレスポンスを解析してディスプレイに表示することができる。   The client 302 is a computer device used by the Web application inspector, and corresponds to the Web application inspection device in the first embodiment. The client 302 creates test specification data. The created test specification data is stored in a test specification DB (Database) 310. In this creation, the client 302 accesses the Web server 301 to transmit a request for requesting a Web screen of an arbitrary screen transition specification to the Web server 301 and receive a response from the Web server 301. Then, the response can be analyzed and displayed on the display.

(コンピュータ装置のハードウェア構成)
図4は、実施の形態1にかかるコンピュータ装置のハードウェア構成を示すブロック図である。図4において、コンピュータ装置は、CPU(Central Processing Unit)401と、ROM(Read‐Only Memory)402と、RAM(Random Access Memory)403と、磁気ディスクドライブ404と、磁気ディスク405と、光ディスクドライブ406と、光ディスク407と、ディスプレイ408と、I/F(Interface)409と、キーボード410と、マウス411と、スキャナ412と、プリンタ413と、を備えている。また、各構成部はバス400によってそれぞれ接続されている。
(Hardware configuration of computer device)
FIG. 4 is a block diagram of a hardware configuration of the computer apparatus according to the first embodiment. 4, the computer apparatus includes a CPU (Central Processing Unit) 401, a ROM (Read-Only Memory) 402, a RAM (Random Access Memory) 403, a magnetic disk drive 404, a magnetic disk 405, and an optical disk drive 406. An optical disk 407, a display 408, an interface (I / F) 409, a keyboard 410, a mouse 411, a scanner 412, and a printer 413. Each component is connected by a bus 400.

ここで、CPU401は、コンピュータ装置の全体の制御を司る。ROM402は、ブートプログラムなどのプログラムを記憶している。RAM403は、CPU401のワークエリアとして使用される。磁気ディスクドライブ404は、CPU401の制御にしたがって磁気ディスク405に対するデータのリード/ライトを制御する。磁気ディスク405は、磁気ディスクドライブ404の制御で書き込まれたデータを記憶する。   Here, the CPU 401 controls the entire computer apparatus. The ROM 402 stores programs such as a boot program. The RAM 403 is used as a work area for the CPU 401. The magnetic disk drive 404 controls the reading / writing of the data with respect to the magnetic disk 405 according to control of CPU401. The magnetic disk 405 stores data written under the control of the magnetic disk drive 404.

光ディスクドライブ406は、CPU401の制御にしたがって光ディスク407に対するデータのリード/ライトを制御する。光ディスク407は、光ディスクドライブ406の制御で書き込まれたデータを記憶したり、光ディスク407に記憶されたデータをコンピュータに読み取らせたりする。   The optical disk drive 406 controls reading / writing of data with respect to the optical disk 407 according to the control of the CPU 401. The optical disk 407 stores data written under the control of the optical disk drive 406, or causes the computer to read data stored on the optical disk 407.

ディスプレイ408は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ408は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。   The display 408 displays data such as a document, an image, and function information as well as a cursor, an icon, or a tool box. As the display 408, for example, a CRT, a TFT liquid crystal display, a plasma display, or the like can be adopted.

インターフェース(以下、「I/F」と略する。)409は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク303に接続され、このネットワーク303を介して他の装置に接続される。そして、I/F409は、ネットワーク303と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F409には、たとえばモデムやLANアダプタなどを採用することができる。   An interface (hereinafter abbreviated as “I / F”) 409 is connected to a network 303 such as a LAN (Local Area Network), a WAN (Wide Area Network), and the Internet through a communication line. Connected to other devices. The I / F 409 controls an internal interface with the network 303 and controls input / output of data from an external device. For example, a modem or a LAN adapter may be employed as the I / F 409.

キーボード410は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス411は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様の機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。   The keyboard 410 includes keys for inputting characters, numbers, various instructions, and the like, and inputs data. Moreover, a touch panel type input pad or a numeric keypad may be used. The mouse 411 moves the cursor, selects a range, moves the window, changes the size, and the like. A trackball or a joystick may be used as long as they have the same function as a pointing device.

スキャナ412は、画像を光学的に読み取り、コンピュータ装置内に画像データを取り込む。なお、スキャナ412は、OCR(Optical Character Reader)機能を持たせてもよい。また、プリンタ413は、画像データや文書データを印刷する。プリンタ413には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。   The scanner 412 optically reads an image and takes in the image data into the computer apparatus. The scanner 412 may have an OCR (Optical Character Reader) function. The printer 413 prints image data and document data. As the printer 413, for example, a laser printer or an ink jet printer can be adopted.

(テスト仕様書データのデータ構造)
つぎに、テスト仕様書データのデータ構造について説明する。Webアプリケーションをテストする際には、まずテスト仕様書データを作成する必要がある。このような、テスト仕様書データを自動的に生成する方法では、一度テスト実施者がWebアプリケーションを実行させながら、入力情報と出力情報を抽出し、テスト仕様書データに書き込むものである。1回テストを実行しながらテスト仕様書データを作成することから、本テストを「初回テスト」と呼ぶ。
(Data structure of test specification data)
Next, the data structure of the test specification data will be described. When testing a Web application, it is first necessary to create test specification data. In such a method for automatically generating test specification data, the tester once extracts the input information and the output information while executing the Web application, and writes it to the test specification data. Since the test specification data is created while executing the test once, this test is called “initial test”.

図5は、初回テスト用のテスト仕様書データのデータ構造を示す説明図である。図5では、作成開始前のテスト仕様書データD1を示しているため、期待値情報は空欄である。テスト仕様書データD1は、Webサーバ301にインストールされるWebアプリケーションのテストケースに含まれている一連の画面遷移仕様が記述された電子データであり、具体的には、たとえば、表形式のスプレッドシートなどのマクロファイルにより作成される。   FIG. 5 is an explanatory diagram showing the data structure of the test specification data for the initial test. In FIG. 5, since the test specification data D1 before the start of creation is shown, the expected value information is blank. The test specification data D1 is electronic data in which a series of screen transition specifications included in a test case of a Web application installed in the Web server 301 is described. Specifically, for example, a spreadsheet in a table format is used. Created by a macro file.

このテスト仕様書データD1には、検査対象となるWebアプリケーションに対し、検査したいテストケースTCi(i=1,2,・・・,n)ごとに、一連の画面遷移仕様と期待値情報とが記述される。図5では、例として2つ(n=2)のテストケースTC1,TC2が示されている。画面遷移仕様は、手作業で記入しても良いし、その一部または全部を画面遷移図などの設計書情報から機械的に抽出することとしてもよい。   The test specification data D1 includes a series of screen transition specifications and expected value information for each test case TCi (i = 1, 2,..., N) to be inspected for the Web application to be inspected. Described. In FIG. 5, two (n = 2) test cases TC1 and TC2 are shown as an example. The screen transition specification may be entered manually, or a part or all of the screen transition specification may be mechanically extracted from design document information such as a screen transition diagram.

画面遷移仕様は、画面名と操作手順記述とにより特定される。画面名とは、クライアント302に表示されるWeb画面の画面ファイルを特定する名称であり、たとえば、米国サンマイクロシステムズが規定するJSP(JavaServer Pages)およびJava言語仕様に則る場合、JSPファイル名のように記述される。上述した厄年表示プログラム100の場合、生年月日入力画面101、性別入力画面103、厄年表示画面105となる。   The screen transition specification is specified by the screen name and the operation procedure description. The screen name is a name that identifies the screen file of the Web screen displayed on the client 302. For example, in the case of complying with JSP (Java Server Pages) and Java language specifications prescribed by Sun Microsystems, Inc., the JSP file name Is described as follows. In the case of the above-mentioned bad year display program 100, the date of birth input screen 101, the sex input screen 103, and the bad year display screen 105 are displayed.

図6は、生年月日入力画面101の画面例を示す説明図である。図7は、性別入力画面103の画面例を示す説明図である。図8は、厄年表示画面105の画面例を示す説明図である。   FIG. 6 is an explanatory diagram illustrating a screen example of the date of birth input screen 101. FIG. 7 is an explanatory diagram showing a screen example of the gender input screen 103. FIG. 8 is an explanatory diagram showing a screen example of the bad year display screen 105.

また、操作手順記述は、対応付けられているWeb画面、すなわち、左隣のセルの画面名により特定されるWeb画面が表示されている場合のユーザの操作手順をあらわしている。この操作手順記述どおりにWeb画面に入力情報を与えると、左斜め下のセルの画面名のWeb画面が表示されることとなる。   Further, the operation procedure description represents the user's operation procedure when the associated Web screen, that is, the Web screen specified by the screen name of the left adjacent cell is displayed. If input information is given to the Web screen as described in this operation procedure, the Web screen with the screen name of the cell on the lower left is displayed.

たとえば、テストケースTC1において図6に示した生年月日入力画面101が表示されている場合、図6に示した年号のプルダウンのうち、「平成」を選択し、年月日の入力欄にそれぞれ、「13」、「10」、「25」を入力して、サブミットボタン(図6中、「性別入力画面103へ」のボタン)をクリックすると、図7に示した性別入力画面103に遷移する。   For example, if the birth date input screen 101 shown in FIG. 6 is displayed in the test case TC1, “Heisei” is selected from the year pull-down shown in FIG. When “13”, “10”, and “25” are entered and the submit button (the button “Go to gender input screen 103” in FIG. 6) is clicked, the screen changes to the gender input screen 103 shown in FIG. To do.

一方、期待値情報は、作成中に、WebアプリケーションがインストールされているWebサーバ301からのレスポンスに基づいて記述される。あるテストケースTCiについて、期待値情報における空欄のセルがすべて記述されると、そのテストケースTCiに関するテスト仕様書データD1は完成する。   On the other hand, the expected value information is described based on a response from the Web server 301 in which the Web application is installed during creation. When all blank cells in the expected value information are described for a test case TCi, the test specification data D1 related to the test case TCi is completed.

図9は、初回テスト済みのテスト仕様書データD1を示す説明図である。図9に示した仕様書データD1の期待値情報は、正常な値となる。また、図5および図9において、期待値情報中、メタ情報とは、タグクラスとその属性からなる情報である。タグクラスとは、Webアプリケーションのタグが属するクラスである。   FIG. 9 is an explanatory diagram showing the test specification data D1 after the initial test. The expected value information of the specification data D1 shown in FIG. 9 is a normal value. In FIG. 5 and FIG. 9, the meta information in the expected value information is information including a tag class and its attributes. A tag class is a class to which a tag of a Web application belongs.

属性とは、タグクラスの詳細情報であり、タグクラスに属するタグの属性名(name)と属性値(property)とを含む。また、呼び出し回数とは、メタ情報の出現回数である。また、期待値とは、タグクラス、属性名、および属性値からなるメタ情報により特定されるタグを実行した場合に出力値として期待される値である。以降この期待値を、「画面項目期待値」と称す。   The attribute is detailed information of the tag class, and includes an attribute name (name) and an attribute value (property) of the tag belonging to the tag class. The number of calls is the number of appearances of meta information. The expected value is a value expected as an output value when a tag specified by meta information including a tag class, an attribute name, and an attribute value is executed. Hereinafter, this expected value is referred to as “screen item expected value”.

期待値情報中、セッション情報とは、後述するセッション情報取得エンジンにより取得される情報である。セッション情報の属性とは、セッションにおける属性を示す情報である。セッション情報の期待値とは、セッション時に期待される出力値である。以降この期待値を、「セッション期待値」と称す。   In the expected value information, the session information is information acquired by a session information acquisition engine described later. The session information attribute is information indicating an attribute in the session. The expected value of session information is an output value expected during a session. This expected value is hereinafter referred to as “session expected value”.

(各コンピュータ装置の詳細な内部構成)
つぎに、各コンピュータ装置の詳細な内部構成について説明する。図10は、各コンピュータ装置の詳細な内部構成を示すブロック図である。まず、Webサーバ301の詳細な内部構成について説明する。
(Detailed internal configuration of each computer device)
Next, a detailed internal configuration of each computer apparatus will be described. FIG. 10 is a block diagram showing a detailed internal configuration of each computer apparatus. First, a detailed internal configuration of the Web server 301 will be described.

Webサーバ301は、AP(Application)サーバ1011とプリプロセッサ1012とコンパイラ1013とWebアプリケーション1014とメタ情報挿入エンジン1017とセッション情報取得エンジン1018を有する。   The Web server 301 includes an AP (Application) server 1011, a preprocessor 1012, a compiler 1013, a Web application 1014, a meta information insertion engine 1017, and a session information acquisition engine 1018.

APサーバ1011は、Webアプリケーション1014の実行環境となるプログラムであり、プリプロセッサ1012とコンパイラ1013を有している。APサーバ1011としては、具体的にはApache Tomcat等の、Java言語で記述、コンパイラ1013によりコンパイルされたプログラムを実行できるミドルウェアが適用される。   The AP server 1011 is a program serving as an execution environment for the Web application 1014, and includes a preprocessor 1012 and a compiler 1013. Specifically, middleware that can execute a program described in Java language and compiled by a compiler 1013 such as Apache Tomcat is applied as the AP server 1011.

ここで、米国サンマイクロシステムズが規定するJSPおよびJava言語仕様に則る場合、プリプロセッサ1012としてJSP展開エンジンを適用することができ、コンパイラ1013としてJavaコンパイラを適用することができる。JSP展開エンジン1012は、JSP等のテンプレート記述言語を解釈しJava言語及びJavaクラスファイルに翻訳する。   Here, when conforming to the JSP and Java language specifications defined by Sun Microsystems, Inc., a JSP expansion engine can be applied as the preprocessor 1012, and a Java compiler can be applied as the compiler 1013. The JSP expansion engine 1012 interprets a template description language such as JSP and translates it into a Java language and a Java class file.

また、APサーバ1011には、検査対象となるWebアプリケーション1014が実装され、ビジネスロジック1015とテンプレートファイル1016から構成される。Webアプリケーション1014はJavaやJSP等の言語で記述されたプログラム群である。通常はMVC(Model View Controller)等のデザインと処理ロジックを分離することが可能なフレームワークにより、クライアント302のWebブラウザからのHTTPリクエストに応じて、どのビジネスロジック1015とテンプレートファイル1016が呼び出されるかが決定される。しかし、上述のようなフレームワークを利用しなくても、ビジネスロジック1015とテンプレートファイル1016への振り分けは可能である。   In addition, a Web application 1014 to be inspected is mounted on the AP server 1011 and includes a business logic 1015 and a template file 1016. The Web application 1014 is a program group described in a language such as Java or JSP. Which business logic 1015 and template file 1016 are called in response to an HTTP request from the Web browser of the client 302 by a framework such as MVC (Model View Controller) that can separate design and processing logic. Is determined. However, distribution to the business logic 1015 and the template file 1016 is possible without using the above-described framework.

ビジネスロジック1015とは、ビジネス取引などの動作処理を実行するWebアプリケーション1014の論理記述であり、たとえば、『お客様が買い物カゴに品物を入れた時に、在庫確認をするように決めている。』、『送信ボタンを押すと、カード会社に認証をとるようにしている。』といった、各々の業務の流れ方を取り決めた論理記述である。図1および図2に示した厄年表示プログラム100は、ビジネスロジック1015に相当する。   The business logic 1015 is a logical description of the Web application 1014 that executes an operation process such as a business transaction. For example, “When a customer puts an item in a shopping cart, it is determined to check inventory. “When you press the send button, the card company is authenticated. "Is a logical description that determines how each business flows. The bad year display program 100 shown in FIGS. 1 and 2 corresponds to the business logic 1015.

なお、ビジネスロジック1015には、入力された検索条件に従う検索を実施したり、会員を認証したりといった処理ロジックが記述される。これらのビジネスロジック1015の中には、外部のデータベースにアクセスして情報を参照したり、データベースに対してデータを追加、更新、削除等のデータベース操作を行う論理記述も含まれる。   The business logic 1015 describes processing logic such as performing a search according to the input search condition and authenticating a member. These business logics 1015 include a logical description for accessing an external database to refer to information and performing database operations such as adding, updating, and deleting data in the database.

また、テンプレートファイル1016とは、画面デザインと出力項目の表示位置を定義するファイルである。Javaを用いる場合、テンプレートファイル1016としてJSPファイルを適用することができる。   The template file 1016 is a file that defines the screen design and the display position of output items. In the case of using Java, a JSP file can be applied as the template file 1016.

図1に示した厄年表示プログラム100を例に挙げて説明すると、生年月日入力画面101、性別入力画面103、厄年表示画面105のWebブラウザ1021上におけるデザインはテンプレートファイル1016としてJSP言語で開発される。また、和暦→西暦変換プログラム102および厄年計算プログラム104はビジネスロジック1015としてJava言語で開発される。そして、コンパイラによりコンパイルされた結果がJavaクラスファイルとして保存された状態で実行される。   The bad year display program 100 shown in FIG. 1 will be described as an example. The design of the birth date input screen 101, the sex input screen 103, and the bad year display screen 105 on the Web browser 1021 is developed as a template file 1016 in the JSP language. The Further, the Japanese calendar → Western calendar conversion program 102 and the troubled year calculation program 104 are developed as a business logic 1015 in the Java language. Then, the result compiled by the compiler is executed while being saved as a Java class file.

利用者は最初に生年月日入力画面101に対応するテンプレートファイル1016のURLを入力することで、その画面へのアクセスが可能となる。生年月日入力画面101ではサブミットボタン押下時の遷移先URLが記述されており、この遷移先URLは和暦→西暦変換プログラム102を呼び出すようAPサーバ1011(または上述のフレームワーク)に定義されている。   The user can access the screen by first inputting the URL of the template file 1016 corresponding to the date of birth input screen 101. The birth date input screen 101 describes a transition destination URL when the submit button is pressed, and this transition destination URL is defined in the AP server 1011 (or the above-described framework) to call the Japanese calendar → Western calendar conversion program 102. Yes.

和暦→西暦変換プログラム102は、その処理が完了すると次画面である性別入力画面103に対応するテンプレートファイル1016を指定する。これによりAPサーバ1011は性別入力画面103のHTMLをWebブラウザ1021に送信する。性別入力画面103から厄年計算プログラム104を呼び出し、結果として厄年表示画面105を表示するのも、同様の手順により実行される。   When the processing is completed, the Japanese calendar → Western calendar conversion program 102 designates a template file 1016 corresponding to the gender input screen 103 which is the next screen. As a result, the AP server 1011 transmits the HTML of the gender input screen 103 to the Web browser 1021. Calling the troubled year calculation program 104 from the gender input screen 103 and displaying the troubled year display screen 105 as a result are executed by the same procedure.

このように、近年のWebアプリケーション開発においては、デザイン機能とビジネスロジック機能を分離する手法が一般化しつつある。このため、ビジネスロジック1015内で処理された出力項目がJSPファイル1016内のカスタムタグで指定された位置に表示されるような構造となる。   As described above, in recent Web application development, a technique for separating the design function and the business logic function is becoming common. Therefore, the output item processed in the business logic 1015 is displayed at the position specified by the custom tag in the JSP file 1016.

また、メタ情報挿入エンジン1017は、Javaソース断片から、タグクラス、name属性の属性値、およびproperty属性の属性値からなるメタ情報を特定する。そして、出力項目のコメント文として挿入する。具体的には、JSP展開エンジン1012が出力するJavaクラスファイルに対してアスペクトを注入することで振る舞いが異なるJavaクラスファイルへの変換を行う。   Further, the meta information insertion engine 1017 specifies meta information including a tag class, an attribute value of the name attribute, and an attribute value of the property attribute from the Java source fragment. And it inserts as a comment sentence of an output item. Specifically, the Java class file output by the JSP development engine 1012 is converted into a Java class file having a different behavior by injecting an aspect.

セッション情報取得エンジン1018は、Webサーバ301が保有するセッション情報(メモリ構造)について、テストをおこなうのに必要なものだけを画面単位で取得する。具体的には、たとえば、APサーバ1011から呼び出すことができる形式のプログラムとして記述され、Webアプリケーション1014が出力したHTML形式のテキスト情報にアクセスして変更するフィルタ処理を加えることができるようになっている。   The session information acquisition engine 1018 acquires only the necessary session information (memory structure) held by the Web server 301 for each screen. Specifically, for example, it is described as a program in a format that can be called from the AP server 1011, and a filtering process for accessing and changing HTML text information output by the Web application 1014 can be added. Yes.

より具体的には、たとえば、Java Servlet仕様におけるフィルタ等の手段で開発されたJava言語のプログラムであり、Javaクラスファイルとしてコンパイル済みのものである。ここではフィルタを利用する方法を提示したが、アスペクト指向言語やDI(Dependency Injection)コンテナ、フレームワーク等一般的な技術を利用しても同様のことを実現可能である。   More specifically, for example, it is a Java language program developed by means such as a filter in the Java Servlet specification, and has been compiled as a Java class file. Although a method using a filter has been presented here, the same can be realized by using a general technique such as an aspect-oriented language, a DI (Dependency Injection) container, or a framework.

つぎに、クライアント302の詳細な内部構成について説明する。クライアント302は、Webブラウザ1021と実行ナビゲータ1022とを有する。   Next, a detailed internal configuration of the client 302 will be described. The client 302 has a Web browser 1021 and an execution navigator 1022.

Webブラウザ1021は、Webサーバ301のWebアプリケーション1014に対してHTTPリクエストを生成して送信したり、Webサーバ301からのHTML形式のレスポンスを受信する通信機能と、受信されたレスポンスHTMLを解析する解析機能と、その解析結果をディスプレイに描画する描画機能とを有するプログラムである。   The Web browser 1021 generates and transmits an HTTP request to the Web application 1014 of the Web server 301, or receives a response in HTML format from the Web server 301, and an analysis for analyzing the received response HTML. This is a program having a function and a drawing function for drawing the analysis result on a display.

また、実行ナビゲータ1022は、つぎに実行すべき操作手順記述を取得して、Webブラウザ1021に渡したり、レスポンスHTMLから抽出した情報をテスト仕様書データに書き込むためにインストールされたプログラムである。   The execution navigator 1022 is a program installed to acquire an operation procedure description to be executed next and pass it to the Web browser 1021 or write information extracted from the response HTML into the test specification data.

具体的には、実行ナビゲータ1022は、Webブラウザ1021を経由して、レスポンスHTMLを取得する。レスポンスHTMLを取得する方法は、Webブラウザ1021が提供するAPI(Application Program Interface)を利用する方法、Webブラウザ1021のログやキャッシュ等の出力情報を利用する方法、Webサーバ301からクライアント302に至るネットワーク経路上にプロキシサーバを挿入する方法等、様々な方法が考えられるが、ここではWebブラウザ1021上に配備されたプラグインにより、取得したレスポンスHTMLを実行ナビゲータ1022上に通知する方法を利用する。   Specifically, the execution navigator 1022 acquires the response HTML via the web browser 1021. The response HTML is acquired by using an API (Application Program Interface) provided by the Web browser 1021, a method using output information such as a log or cache of the Web browser 1021, and a network from the Web server 301 to the client 302. Various methods such as a method of inserting a proxy server on the route are conceivable. Here, a method of notifying the acquired response HTML on the execution navigator 1022 using a plug-in deployed on the Web browser 1021 is used.

実行ナビゲータ1022は、レスポンスHTML内のコメント部分を解析する。コメントには、メタ情報HTMLコメントとセッションHTMLコメントの2種類がある。メタ情報HTMLコメントは、メタ情報(画面項目のタグクラス名、画面項目の属性)、画面項目期待値に分解される。一方、セッションHTMLコメントはセッション情報の属性とセッション期待値に分解される。この分解では、「sessionInfo」で始まるHTMLコメントの「=」の前と後ろの文字列をそれぞれセッション属性、セッション期待値に割り当てる。   The execution navigator 1022 analyzes the comment part in the response HTML. There are two types of comments: meta information HTML comments and session HTML comments. The meta information HTML comment is decomposed into meta information (a tag class name of a screen item, an attribute of a screen item) and a screen item expected value. On the other hand, the session HTML comment is decomposed into session information attributes and session expected values. In this decomposition, the character strings before and after “=” in the HTML comment beginning with “sessionInfo” are assigned to the session attribute and the session expected value, respectively.

テストケースTCiが複数の画面遷移から構成される場合には、各画面について画面項目期待値とセッション期待値を取得する。通常、Webアプリケーション1014のテストを行う際には、Webアプリケーション1014の規模にも依るが数百から数千項目テストケースを実施することが一般的である。このようにWebアプリケーション1014の一連の動作を一個のテストケースとしてテスト仕様書DB310に保存していき、Webアプリケーション1014の品質を確保するのに十分な数のテストケースを蓄えていく。   When the test case TCi is composed of a plurality of screen transitions, the screen item expected value and the session expected value are acquired for each screen. Normally, when testing the Web application 1014, it is common to perform test cases of several hundred to several thousand items, depending on the scale of the Web application 1014. In this way, a series of operations of the Web application 1014 are stored as one test case in the test specification DB 310, and a sufficient number of test cases are stored to ensure the quality of the Web application 1014.

また、実行ナビゲータ1022は、テスト仕様書DB310からテストケースを順に取得し、Webアプリケーション1014を自動実行しながら消化していく。さらに実行ナビゲータ1022はテストケース内の初期画面のURLから操作手順記述に従って画面を遷移させる。画面が遷移するごとに、実行ナビゲータ1022はその画面内に存在する画面項目の内容が期待値と一致するかどうかを判定する。   The execution navigator 1022 sequentially acquires test cases from the test specification DB 310, and digests them while automatically executing the Web application 1014. Further, the execution navigator 1022 changes the screen according to the operation procedure description from the URL of the initial screen in the test case. Each time the screen transitions, the execution navigator 1022 determines whether the content of the screen item existing in the screen matches the expected value.

この自動実行時においても、Webアプリケーション1014にはメタ情報挿入エンジン1017が織り込まれた状態となっており、最新の実行結果を取得することができる。実行ナビゲータ1022は、画面項目期待値とこの最新実行結果とを比較することで、自動的な判定を行う。テストケースTCiが複数の画面遷移から構成される場合は、上記手順を繰り返すことで、各テストケースTCi内のすべての手順が完了するまでテストを実施する。   Even during this automatic execution, the meta information insertion engine 1017 is woven into the Web application 1014, and the latest execution result can be acquired. The execution navigator 1022 performs automatic determination by comparing the expected value of the screen item with the latest execution result. When the test case TCi is composed of a plurality of screen transitions, the test is performed by repeating the above procedure until all the procedures in each test case TCi are completed.

図10に示したようなシステム構成において、テストを実施する際の全体概要について説明する。Webアプリケーション1014をテストする際には、まずテスト仕様書データD1を作成する必要がある。このような、テスト仕様書データD1を自動的に生成する方法では、一度テスト実施者がWebアプリケーション1014を実行させながら、メタ情報挿入エンジン1017を利用して入力情報と出力情報を抽出し、テスト仕様書データD1に書き込むものである。最初に1回手動でテストを実行しながらテスト仕様書データD1を作成することから、本テストを「初回テスト」と呼ぶ。   An overall outline when the test is performed in the system configuration as shown in FIG. 10 will be described. When testing the Web application 1014, it is necessary to first create test specification data D1. In such a method of automatically generating the test specification data D1, the tester once executes the Web application 1014, extracts the input information and the output information using the meta information insertion engine 1017, and performs the test. This is written in the specification data D1. Since the test specification data D1 is created while the test is manually executed once at first, this test is referred to as “initial test”.

本実施の形態1では、上述した入出力情報に加えてメモリの状態もテスト仕様書データD1内に保存しておくことにより、2回目以降のテストにおいて初回テストとの差異がWebアプリケーション1014全体におけるどこで発生したかを特定して、バグの位置を特定する。   In the first embodiment, in addition to the input / output information described above, the memory state is also stored in the test specification data D1, so that the difference from the first test in the second and subsequent tests is different in the entire Web application 1014. Identify where it occurred and locate the bug.

初回テストにおいてテスト仕様書データD1が作成された状態では、Webアプリケーション1014への入力と期待される実行結果(期待値)とが入出力情報としてテスト仕様書データD1に書き込まれているので、その情報に基づき自動テストが実行される。この自動テストの方法については、特願2006−294502号に開示されている。このテスト仕様書データD1が作成された状態で自動的に行われる2回目以降のテストを、本実施の形態では「リグレッションテスト」と呼ぶ。実施の形態1では、実行ナビゲータ1022により、この期待値とリグレッションテストの結果とを比較し、その比較結果が変化した場所をバグ位置と特定する。   In a state where the test specification data D1 is created in the initial test, the input to the Web application 1014 and the expected execution result (expected value) are written in the test specification data D1 as input / output information. Automated tests are performed based on the information. This automatic test method is disclosed in Japanese Patent Application No. 2006-294502. The second and subsequent tests that are automatically performed in a state where the test specification data D1 is created are referred to as “regression tests” in the present embodiment. In the first embodiment, the execution navigator 1022 compares the expected value with the result of the regression test, and identifies the place where the comparison result has changed as the bug position.

以下、図1の厄年表示プログラム100を用いて説明する。厄年表示プログラム100では、厄年計算プログラム104において、利用者が生年月日入力画面101で入力した和暦の生年月日と性別入力画面103で入力した性別の両方に基づいて厄年が計算される。この例では、厄年計算プログラム104では、性別入力画面103で入力した内容にしかアクセスすることはできないものとする。厄年計算プログラム104が生年月日入力画面101から入力された情報にアクセスするための方法として、セッションオブジェクトを利用する方法がある。   Hereinafter, description will be made using the troubled year display program 100 of FIG. In the bad year display program 100, the bad year calculation program 104 calculates the bad year based on both the date of birth of the Japanese calendar entered by the user on the birth date input screen 101 and the gender entered on the gender input screen 103. In this example, it is assumed that the troubled year calculation program 104 can access only the contents entered on the gender input screen 103. As a method for the troubled year calculation program 104 to access information input from the date of birth input screen 101, there is a method using a session object.

セッションオブジェクトとは、Webセッション(同一クライアント302、同一Webブラウザ1021で同一のWebサーバ301に対して継続的に行われるアクセス)における状態を管理するために、Webサーバ301のメモリ上に確保された領域である。同一の利用者の過去の入力情報や途中の計算結果を一時的に保存するために使われる。このセッションオブジェクトは、メモリの状態であるため、デバッガを使わない限り外部からの参照はできない。   The session object is secured on the memory of the Web server 301 in order to manage the state in the Web session (access that is continuously performed on the same Web server 301 by the same client 302 and the same Web browser 1021). Is an area. Used to temporarily store past input information and intermediate calculation results for the same user. Since this session object is in a memory state, it cannot be referenced from outside unless a debugger is used.

図11は、セッションオブジェクトを示す説明図である。セッションオブジェクト1100は、和暦→西暦変換プログラム102および厄年計算プログラム104から、APサーバ1011を通じてアクセスすることが可能である。図11では、図1に示した厄年表示プログラム100の画面処理遷移に合わせて説明する。   FIG. 11 is an explanatory diagram showing a session object. The session object 1100 can be accessed through the AP server 1011 from the Japanese calendar → Western calendar conversion program 102 and the bad year calculation program 104. FIG. 11 will be described in accordance with the screen process transition of the bad year display program 100 shown in FIG.

和暦→西暦変換プログラム102は、生年月日入力画面101から入力情報1101として「和暦の生年月日=平成13年10月25日」を受けると、出力情報1102として「西暦の生年月日=2001年10月25日」をセッションオブジェクト1100に渡す。セッションオブジェクト1100は、出力情報1102の“=”の左側の「西暦の生年月日」を属性、“=”の右側の「2001年10月25日」を文字列表現として格納する。   When the Japanese calendar → Western calendar conversion program 102 receives “date of birth of the Japanese calendar = October 25, 2001” as the input information 1101 from the date of birth input screen 101, the date of birth of the calendar is displayed as the output information 1102. = October 25, 2001 "is passed to the session object 1100. The session object 1100 stores “date of birth” on the left side of “=” in the output information 1102 as an attribute, and “October 25, 2001” on the right side of “=” as a character string expression.

厄年計算プログラム104は、性別入力画面103から入力情報1103として「性別=男」を受けると、セッションオブジェクト1100にアクセスして、セッションオブジェクト1100に格納されている属性および文字列表現である「西暦の生年月日=2001年10月25日」を入力情報1104として読み出す。厄年計算プログラム104は、この入力情報1103,1104により厄年を計算する。そして、出力情報1105として「厄年=2025年,2042年,2061年」を厄年表示画面105に埋め込んでクライアント302に出力する。   Upon receiving “gender = male” as input information 1103 from the gender input screen 103, the troubled year calculation program 104 accesses the session object 1100, and the attributes and character string representations stored in the session object 1100 are “A.D. “Birth date = October 25, 2001” is read out as input information 1104. The bad year calculation program 104 calculates the bad year based on the input information 1103 and 1104. Then, “bad year = 2025, 2042, 2061” is embedded in the bad year display screen 105 as output information 1105 and output to the client 302.

セッション情報取得エンジン1018では、処理(和暦→西暦変換プログラム102や厄年計算プログラム104)の直後で、かつ、画面遷移の直前のタイミング(図11中、AまたはB)でセッション情報を取得する。このタイミングで、セッション情報のうちセッションオブジェクト1100内のすべての属性情報を取得する。このように取得されたセッション情報は、次画面として生成されるHTML内にコメント文として埋め込まれる。したがって、Webブラウザ1021ではコメント文は表示されないが、Webブラウザ1021の解析対象となる。   The session information acquisition engine 1018 acquires session information immediately after the processing (Japanese calendar-to-year conversion program 102 or troubled year calculation program 104) and at the timing immediately before the screen transition (A or B in FIG. 11). At this timing, all attribute information in the session object 1100 is acquired from the session information. The session information acquired in this way is embedded as a comment sentence in HTML generated as the next screen. Accordingly, the comment text is not displayed in the Web browser 1021, but is subject to analysis by the Web browser 1021.

(Webサーバ301のシーケンス)
図12は、Webサーバ301のシーケンスを示すシーケンス図である。まず、クライアント302が、Webサーバ301のURLを含むHTTPリクエストを送信する。Webサーバ301では、APサーバ1011が、そのHTTPリクエストを受信し、リクエスト解析処理(ステップS1201)を実行する。そして、APサーバ1011は、ビジネスロジック実行処理(ステップS1202)を実行する。ビジネスロジック実行処理(ステップS1202)はビジネスロジック1015の実行やセッションオブジェクト1100へのセッション情報の書込みをおこなう。
(Sequence of Web server 301)
FIG. 12 is a sequence diagram showing a sequence of the Web server 301. First, the client 302 transmits an HTTP request including the URL of the Web server 301. In the Web server 301, the AP server 1011 receives the HTTP request and executes a request analysis process (step S1201). Then, the AP server 1011 executes business logic execution processing (step S1202). The business logic execution process (step S1202) executes the business logic 1015 and writes the session information to the session object 1100.

このあと、JSP展開エンジンによる出力項目展開処理(ステップS1203)、メタ情報挿入エンジン1017によるアスペクト注入処理(ステップS1204)、APサーバ1011によるレスポンス生成処理(ステップS1205)を実行する。そして、セッション情報取得エンジン1018によるセッション情報取得処理(ステップS1206)を実行して、レスポンス生成処理(ステップS1205)により生成されたレスポンスHTMLにセッション情報を埋め込む。セッション情報取得処理(ステップS1206)の詳細な処理手順については後述する。APサーバ1011は、セッション情報が埋め込まれたレスポンスHTMLをクライアント302に送信するレスポンス送信処理(ステップS1207)を実行する。   Thereafter, output item expansion processing by the JSP expansion engine (step S1203), aspect injection processing by the meta information insertion engine 1017 (step S1204), and response generation processing by the AP server 1011 (step S1205) are executed. Then, the session information acquisition process (step S1206) by the session information acquisition engine 1018 is executed, and the session information is embedded in the response HTML generated by the response generation process (step S1205). The detailed processing procedure of the session information acquisition process (step S1206) will be described later. The AP server 1011 executes response transmission processing (step S1207) for transmitting the response HTML in which the session information is embedded to the client 302.

ここで、リクエスト解析処理(ステップS1201)、ビジネスロジック実行処理(ステップS1202)、出力項目展開処理(ステップS1203)、アスペクト注入処理(ステップS1204)、およびレスポンス生成処理(ステップS1205)について、図13〜図15を用いて具体的に説明する。   Here, the request analysis process (step S1201), the business logic execution process (step S1202), the output item expansion process (step S1203), the aspect injection process (step S1204), and the response generation process (step S1205) will be described with reference to FIGS. This will be specifically described with reference to FIG.

図13および図14は、Webサーバ301によるWebアプリケーション実行処理内容を示す説明図である。まず、リクエスト解析処理(ステップS1201)では、APサーバ1011が、受信されたHTTPリクエストの内容(リクエスト行やメッセージ・ヘッダ、エンティティ・ボディ)を分析して、検査対象となるビジネスロジック1015を呼び出す。ビジネスロジック1015は、図13(A)に示したように、HTTPリクエストの内容を分析して画面への出力項目を計算する。たとえば、ビジネスロジック1015が上述した和暦→西暦変換プログラム102である場合は、和暦の生年月日を西暦の生年月日に変換する。また、厄年計算プログラム104である場合は、厄年を計算する。   FIG. 13 and FIG. 14 are explanatory diagrams showing the contents of Web application execution processing by the Web server 301. First, in the request analysis process (step S1201), the AP server 1011 analyzes the content (request line, message header, entity body) of the received HTTP request and calls the business logic 1015 to be inspected. As shown in FIG. 13A, the business logic 1015 analyzes the content of the HTTP request and calculates items to be output to the screen. For example, when the business logic 1015 is the above-described Japanese calendar → West calendar conversion program 102, the date of birth of the Japanese calendar is converted to the date of birth of the Western calendar. In the case of the bad year calculation program 104, the bad year is calculated.

つぎに、Webサーバ301のJSP展開エンジン1012による出力項目展開処理(ステップS1203)では、JSP展開エンジン1012が、図13(A)に示したように、JSPファイル1016内の出力項目1310の表示位置を決定する。たとえば、ビジネスロジック1015が上述した和暦→西暦変換プログラム102である場合は、出力項目である変換結果を性別入力画面103にて表示させないため、表示位置を決定する必要はない。一方、厄年計算プログラム104である場合は、出力項目1310の位置を決定する。   Next, in the output item expansion processing (step S1203) by the JSP expansion engine 1012 of the Web server 301, the JSP expansion engine 1012 displays the display position of the output item 1310 in the JSP file 1016 as shown in FIG. To decide. For example, when the business logic 1015 is the above-described Japanese calendar → West calendar conversion program 102, the conversion result as an output item is not displayed on the gender input screen 103, so there is no need to determine the display position. On the other hand, in the case of the troubled year calculation program 104, the position of the output item 1310 is determined.

そして、図13(B)に示したように、そのJSPファイル1016を出力項目の出力位置が指定されたソースコードに変換する。ソースコードに変換することで、JSPファイル1016のカスタムタグ1301は、Javaソース断片1303に変換される。   Then, as shown in FIG. 13B, the JSP file 1016 is converted into source code in which the output position of the output item is designated. By converting into the source code, the custom tag 1301 of the JSP file 1016 is converted into the Java source fragment 1303.

Javaソース断片1303は、カスタムタグ1301に相当するクラスのdoStartTag()メソッドとdoEndTag()メソッドを呼び出すようなコードである。そして、コンパイラは、図13(C)に示したように、変換されたソースコードをバイナリファイルにコンパイルすることで、画面クラスファイル1304を生成する。   The Java source fragment 1303 is code that calls the doStartTag () method and the doEndTag () method of the class corresponding to the custom tag 1301. Then, as shown in FIG. 13C, the compiler generates a screen class file 1304 by compiling the converted source code into a binary file.

つぎに、Webサーバ301のメタ情報挿入エンジン1017によるアスペクト注入処理(ステップS1104)では、画面クラスファイル1304にメタ情報を挿入することで、図13(D)に示したように、アスペクト付きJavaクラスファイル1315を得る。   Next, in the aspect injection process (step S1104) by the meta information insertion engine 1017 of the Web server 301, by inserting meta information into the screen class file 1304, as shown in FIG. A file 1315 is obtained.

つぎに、Webサーバ301のAPサーバ1011によるレスポンス生成処理(ステップS1205)では、APサーバ1011が、アスペクト付きJavaクラスファイル1315を実行することで、メタ情報付きのレスポンスHTML1320を生成する。図13(E)に示したように、メタ情報付きのレスポンスHTML1320には、HTMLコメント1321,1322が付加されている。たとえば、ビジネスロジック1015が上述した和暦→西暦変換プログラム102である場合は、出力項目である変換結果を性別入力画面103にて表示させないため、メタ情報は挿入されない。一方、厄年計算プログラム104である場合は、メタ情報が挿入される。   Next, in the response generation process (step S1205) by the AP server 1011 of the Web server 301, the AP server 1011 generates the response HTML 1320 with meta information by executing the Java class file with aspect 1315. As shown in FIG. 13E, HTML comments 1321 and 1322 are added to the response HTML 1320 with meta information. For example, in the case where the business logic 1015 is the above-described Japanese calendar → Western calendar conversion program 102, the conversion result as the output item is not displayed on the gender input screen 103, and therefore the meta information is not inserted. On the other hand, in the case of the bad year calculation program 104, meta information is inserted.

また、図14では、アスペクト付きJavaクラスファイル1315により動作が置き換えられることによって、どのようにメタ情報付きのレスポンスHTML1320が生成されるかを示している。メタ情報挿入エンジン1017はAspectJなどのアスペクト指向のプログラミング言語により構成されている場合、メタ情報挿入エンジン1017およびAPサーバ1011は、つぎの手順(1)〜(5)でメタ情報付きのレスポンスHTML1320を生成する。   FIG. 14 shows how the response HTML 1320 with meta information is generated by replacing the operation with the Java class file 1315 with aspect. When the meta information insertion engine 1017 is configured by an aspect-oriented programming language such as AspectJ, the meta information insertion engine 1017 and the AP server 1011 send a response HTML 1320 with meta information in the following procedures (1) to (5). Generate.

(1)Javaソース断片1303のsetPageContext()メソッドが属するクラスのクラス名を取得する。この例では、図13(B)および図14(A)に示したJavaソース断片1303の145行目に記述されている「org.apache.struts.taglib.bean.WriteTag」が、カスタムタグ1301のタグクラスとして取得される。 (1) The class name of the class to which the setPageContext () method of the Java source fragment 1303 belongs is acquired. In this example, “org.apache.struts.taglib.bean.WriteTag” described in the 145th line of the Java source fragment 1303 shown in FIG. 13B and FIG. Acquired as a tag class.

(2)タグクラスとJavaソース断片1303上のsetXxx()メソッドを属性リストとして抽出する。この例では、図13(B)および図14(A)に示したJavaソース断片1303の148行目に記述されている「AddForm」がname属性の属性値として、149行目に記述されている「result」がproperty属性の属性値として、抽出される。 (2) The tag class and the setXXX () method on the Java source fragment 1303 are extracted as an attribute list. In this example, “AddForm” described in the 148th line of the Java source fragment 1303 shown in FIGS. 13B and 14A is described in the 149th line as the attribute value of the name attribute. “Result” is extracted as the attribute value of the property attribute.

(3)doStartTag()メソッドが呼び出される直前に、メタ情報がHTMLとしてコメント化されたHTMLコメントを出力する。これにより、図14(B)に示したように、「<!−−testStart class="WriteTag“ name=“AddForm” property=“result” −−>」が表示される。 (3) Immediately before the doStartTag () method is called, an HTML comment in which meta information is commented out as HTML is output. As a result, as shown in FIG. 14B, “<!-TestStart class =“ WriteTag ”name =“ AddForm ”property =“ result ”—> is displayed.

(4)doStartTag()メソッドおよびdoEndTag()メソッドを実行し、Webアプリケーション1014を通常通り実行させる。これにより、図14(C)に示したように、実行結果の出力項目1310として出力値「5」が表示される。 (4) The doStartTag () method and the doEndTag () method are executed, and the Web application 1014 is executed as usual. As a result, as shown in FIG. 14C, the output value “5” is displayed as the output item 1310 of the execution result.

(5)doEndTag()が終了した直後に、HTMLコメントを出力する。これにより、図14(B)に示したように、「<!−−testEnd −−>」が表示される。 (5) An HTML comment is output immediately after doEndTag () ends. Accordingly, as shown in FIG. 14B, “<!-TestEnd->” is displayed.

図15は、上記(1)〜(5)によるWebアプリケーション1014の実行結果を示す説明図である。図15に示したように、メタ情報付きのレスポンスHTML1320では、出力項目である出力値「5」の出力位置の前後に、メタ情報を示すHTMLコメント1321,1322が配置されて出力されることとなる。   FIG. 15 is an explanatory diagram showing the execution result of the Web application 1014 according to the above (1) to (5). As shown in FIG. 15, in the response HTML 1320 with meta information, HTML comments 1321 and 1322 indicating meta information are arranged and output before and after the output position of the output value “5” as an output item. Become.

つぎに、セッション情報取得処理(ステップS1206)について説明する。セッション情報取得処理(ステップS1206)は、セッション情報取得エンジン1018がおこなう処理である。セッション情報取得エンジン1018は、APサーバ1011がレスポンスHTMLを生成すると、APサーバ1011により呼び出される。そして、上述したセッションオブジェクト1100を利用してセッション情報を取得し、レスポンス生成処理(ステップS1205)により生成されたレスポンスHTMLに対し、セッション情報を埋め込む。セッション情報が埋め込まれたレスポンスHTMLを、以降、「セッション情報付きレスポンスHTML」と称す。   Next, the session information acquisition process (step S1206) will be described. The session information acquisition process (step S1206) is a process performed by the session information acquisition engine 1018. The session information acquisition engine 1018 is called by the AP server 1011 when the AP server 1011 generates a response HTML. Then, the session information is acquired using the session object 1100 described above, and the session information is embedded in the response HTML generated by the response generation process (step S1205). Hereinafter, the response HTML in which the session information is embedded is referred to as “response HTML with session information”.

図16は、セッション情報取得処理(ステップS1206)の詳細な処理手順を示すフローチャートである。図16において、まず、リクエストオブジェクトが検出されるのを待ち受け(ステップS1601:No)、リクエストオブジェクトが検出された場合(ステップS1601:Yes)、セッションオブジェクト1100を取得する(ステップS1602)。そして、未選択の属性があるか否かを判断する(ステップS1603)。   FIG. 16 is a flowchart showing a detailed processing procedure of the session information acquisition process (step S1206). In FIG. 16, first, it waits for a request object to be detected (step S1601: No), and when a request object is detected (step S1601: Yes), a session object 1100 is acquired (step S1602). Then, it is determined whether there is an unselected attribute (step S1603).

未選択の属性がある場合(ステップS1603:Yes)、未選択の属性を選択し(ステップS1604)、選択属性の文字列表現を抽出する(ステップS1605)。そして、選択属性およびその文字列表現をセッションHTMLコメントとして、生成済みのレスポンスHTMLの末尾にコメント文として埋め込む(ステップS1606)。   If there is an unselected attribute (step S1603: Yes), an unselected attribute is selected (step S1604), and a character string expression of the selected attribute is extracted (step S1605). Then, the selected attribute and its character string expression are embedded as a session HTML comment as a comment sentence at the end of the generated response HTML (step S1606).

Java Servlet仕様では、属性名は文字列表現であることが指定されているが、属性値はプリミティブ型を除く任意のJavaオブジェクトであるため、属性値を文字列表現に変換しHTMLコメント形式に整形する。セッション情報取得エンジン1018はこの文字列表現をセッションHTMLコメント文字列(「<!−−」と「−−>」に囲まれたHTMLコメント形式)に変換する。   In the Java Servlet specification, it is specified that the attribute name is a character string representation. However, since the attribute value is an arbitrary Java object excluding the primitive type, the attribute value is converted into a character string representation and formatted into an HTML comment format. . The session information acquisition engine 1018 converts this character string expression into a session HTML comment character string (HTML comment format surrounded by “<!-” And “->”).

たとえば、「西暦の生年月日」という属性の属性値が「2001年10月25日」の場合、セッションHTMLコメント文字列は「<!−−sessionInfo 西暦の生年月日=“2001年10月25日” −−>」となる。複数の属性が抽出された場合には、複数のセッションHTMLコメント文字列が列挙される。   For example, if the attribute value of the attribute “date of birth in the Christian era” is “October 25, 2001”, the session HTML comment character string is “<!-SessionInfo Date of birth in the Western calendar =“ October 25, 2001 ” Day "->". When a plurality of attributes are extracted, a plurality of session HTML comment character strings are listed.

図17は、セッション情報付きレスポンスHTMLの一例を示す説明図である。図17では、性別入力画面103に関するセッション情報付きレスポンスHTML1700をあらわしている。このあと、図16において、ステップS1603に戻る。ステップS1603において、未選択の属性がない場合(ステップS1603:No)、セッション情報取得処理(ステップS1206)を終了する。   FIG. 17 is an explanatory diagram showing an example of a response HTML with session information. FIG. 17 shows a response HTML 1700 with session information regarding the gender input screen 103. Thereafter, in FIG. 16, the process returns to step S1603. If there is no unselected attribute in step S1603 (step S1603: No), the session information acquisition process (step S1206) is terminated.

(クライアント302による初回テスト時におけるテスト仕様書作成処理)
図18は、クライアント302による初回テスト時におけるテスト仕様書作成処理手順を示すフローチャートである。図18において、まず、図7に示した初回テスト用のテスト仕様書データD1を読み込む(ステップS1801)。そして、テストケースTCiのインデックスiをi=1とし(ステップS1802)、i>nであるか否かを判断する(ステップS1803)。i>nでない場合(ステップS1803:No)、テストケースTCiの期待値情報書き込み処理を実行する(ステップS1804)。このあと、iをインクリメントして(ステップS1805)、ステップS1803に戻る。
(Test specification creation process at the time of the first test by the client 302)
FIG. 18 is a flowchart showing a test specification creation processing procedure at the time of the initial test by the client 302. In FIG. 18, first, test specification data D1 for the initial test shown in FIG. 7 is read (step S1801). Then, the index i of the test case TCi is set to i = 1 (step S1802), and it is determined whether i> n is satisfied (step S1803). If i> n is not satisfied (step S1803: NO), an expected value information writing process for the test case TCi is executed (step S1804). Thereafter, i is incremented (step S1805), and the process returns to step S1803.

このあと、i>nの場合(ステップS1803:Yes)、Webブラウザ1021によりテスト仕様書データD1を表示する(ステップS1806)。このとき表示されるテスト仕様書データD1は、図17のようになる。これにより、期待値情報を目視で確認することができる。   Thereafter, when i> n (step S1803: Yes), the test specification data D1 is displayed by the Web browser 1021 (step S1806). The test specification data D1 displayed at this time is as shown in FIG. Thereby, expected value information can be confirmed visually.

そして、テストケースの追加があったか否かを判断する(ステップS1807)。追加があった場合(ステップS1807:Yes)、i>mであるか否かを判断する(ステップS1808)。mは、追加後のテストケース総数である。   Then, it is determined whether or not a test case has been added (step S1807). When there is an addition (step S1807: Yes), it is determined whether i> m is satisfied (step S1808). m is the total number of test cases after addition.

i>mでない場合(ステップS1808:No)、テストケースTCiの期待値情報書き込み処理を実行する(ステップS1809)。このあと、iをインクリメントして(ステップS1810)、ステップS1808に戻る。   If i> m is not satisfied (step S1808: NO), expected value information writing processing for the test case TCi is executed (step S1809). Thereafter, i is incremented (step S1810), and the process returns to step S1808.

このあと、i>mの場合(ステップS1808:Yes)、Webブラウザ1021によりテスト仕様書データD1を表示する(ステップS1811)。これにより、追加分の期待値情報を目視で確認することができる。そして、ステップS1807に戻る。   Thereafter, when i> m (step S1808: Yes), the test specification data D1 is displayed by the Web browser 1021 (step S1811). Thereby, the expected value information for the additional portion can be confirmed visually. Then, the process returns to step S1807.

また、ステップS1807において、テストケースの追加がない場合(ステップS1807:No)、テスト仕様書データD1について、テスト仕様書DB310への出力処理を実行する(ステップS1812)。これにより、一連の処理を終了する。   If no test case is added in step S1807 (step S1807: NO), an output process to the test specification DB 310 is executed for the test specification data D1 (step S1812). As a result, the series of processes is completed.

(テストケースTCiの期待値情報書き込み処理)
つぎに、ステップS1804、S1809において示したテストケースTCiの期待値情報書き込み処理の具体的な処理手順について説明する。図19は、テストケースTCiの期待値情報書き込み処理の具体的な処理手順を示すフローチャートである。
(Expectation value information writing process of test case TCi)
Next, a specific processing procedure of the expected value information writing process of the test case TCi shown in steps S1804 and S1809 will be described. FIG. 19 is a flowchart illustrating a specific processing procedure of expected value information writing processing of the test case TCi.

図19において、まず、初期画面のHTTPリクエストをWebサーバ301に送信する(ステップS1901)。図5に示したテスト仕様書データD1のテストケースTC1を例に挙げると、生年月日入力画面101が初期画面となるため、生年月日入力画面101のHTTPリクエストをWebサーバ301に送信する。   In FIG. 19, first, an HTTP request for an initial screen is transmitted to the Web server 301 (step S1901). Taking the test case TC1 of the test specification data D1 shown in FIG. 5 as an example, the birth date input screen 101 is an initial screen, and thus an HTTP request for the birth date input screen 101 is transmitted to the Web server 301.

Webサーバ301にHTTPリクエストを送信したあと、このHTTPリクエストに応じたレスポンスHTMLを受信する(ステップS1902)。生年月日入力画面101ではセッション情報(セッションHTMLコメント文字列)が埋め込まれないため、受信されたHTMLレスポンスにはメタ情報やセッション情報が埋め込まれない。   After transmitting an HTTP request to the Web server 301, a response HTML corresponding to the HTTP request is received (step S1902). Since session information (session HTML comment character string) is not embedded on the date of birth input screen 101, meta information and session information are not embedded in the received HTML response.

一方、性別入力画面103では、セッション情報が埋め込まれたセッション情報付きレスポンスHTMLを受信することとなる。また、厄年表示画面105では、メタ情報およびセッション情報が埋め込まれたセッション情報付きレスポンスHTMLが受信されることとなる。ここでは、これらを総称して「受信レスポンスHTML」と称す。   On the other hand, the gender input screen 103 receives a response HTML with session information in which session information is embedded. On the bad year display screen 105, a response HTML with session information in which meta information and session information are embedded is received. Here, these are collectively referred to as “reception response HTML”.

そして、Webブラウザ1021により、受信レスポンスHTMLを表示する(ステップS1903)。受信レスポンスHTMLでは、埋め込まれたメタ情報やセッション情報がWebブラウザ1021による表示時には表示されることはないが、解析対象となる。   Then, the reception response HTML is displayed by the Web browser 1021 (step S1903). In the reception response HTML, embedded meta information and session information are not displayed when displayed by the Web browser 1021, but are subject to analysis.

このあと、Webブラウザ1021により受信レスポンスHTMLを解析して、期待値情報抽出処理を実行する(ステップS1904)。メタ情報またはセッション情報がない場合は、期待値情報抽出処理(ステップS1904)は実行されないが、メタ情報またはセッション情報がある場合は、期待値情報抽出処理(ステップS1904)は実行される。期待値情報抽出処理(ステップS1904)の詳細については後述する。   Thereafter, the Web browser 1021 analyzes the reception response HTML and executes expected value information extraction processing (step S1904). When there is no meta information or session information, the expected value information extraction process (step S1904) is not executed, but when there is meta information or session information, the expected value information extraction process (step S1904) is executed. Details of the expected value information extraction process (step S1904) will be described later.

そして、抽出された期待値情報をテストケースTCiの空欄のセルに書き込む(ステップS1905)。このあと、テストケースTCiにおいて、現在のWeb画面から遷移する遷移先画面があるか否かを判断する(ステップS1906)。   Then, the extracted expected value information is written into a blank cell of the test case TCi (step S1905). Thereafter, in the test case TCi, it is determined whether there is a transition destination screen that transitions from the current Web screen (step S1906).

遷移先画面がある場合(ステップS1906:Yes)、現在のWeb画面の操作手順記述どおりの入力情報が受け付けられるのを待ち受ける(ステップS1907:No)。図5に示したテスト仕様書データD1のテストケースTC1を例に挙げると、生年月日入力画面101の操作手順記述『性別「男性」を選択、「厄年表示」をクリック』どおりに入力された入力情報が受け付けられるのを待ち受ける。   When there is a transition destination screen (step S1906: Yes), it waits for input information as described in the operation procedure description on the current Web screen to be received (step S1907: No). Taking the test case TC1 of the test specification data D1 shown in FIG. 5 as an example, the operation procedure description on the date of birth input screen 101 is entered as “select gender“ male ”and click“ bad year display ”” Wait for input information to be accepted.

入力情報が受け付けられた場合(ステップS1907:Yes)、遷移先画面のHTTPリクエスト、すなわち、この入力情報を含んだHTTPリクエストをWebサーバ301に送信する(ステップS1908)。このあと、ステップS1902に戻る。一方、ステップS1906において、遷移先画面がない場合(ステップS1906:No)、ステップS1805(S1810)に移行する。これにより、一連のテストケースTCiの期待値情報書き込み処理手順を終了する。   When the input information is accepted (step S1907: Yes), the HTTP request for the transition destination screen, that is, the HTTP request including the input information is transmitted to the web server 301 (step S1908). Thereafter, the process returns to step S1902. On the other hand, in step S1906, when there is no transition destination screen (step S1906: No), the process proceeds to step S1805 (S1810). As a result, the expected value information write processing procedure for a series of test cases TCi is completed.

(期待値情報抽出処理)
図20は、期待値情報抽出処理(ステップS1904)の詳細な処理手順を示すフローチャートである。図20において、まず、testStartタグとtestEndタグに囲まれた位置から画面項目期待値を抽出する(ステップS2001)。testStartタグとtestEndタグがない場合は抽出しない。つぎに、sessionInfoタグの一覧を取得する(ステップS2002)。
(Expected value information extraction process)
FIG. 20 is a flowchart showing a detailed processing procedure of expected value information extraction processing (step S1904). In FIG. 20, first, a screen item expected value is extracted from a position surrounded by a testStart tag and a testEnd tag (step S2001). If there is no testStart tag and testEnd tag, no extraction is performed. Next, a list of sessionInfo tags is acquired (step S2002).

そして、未処理のsessionInfoタグがあるか否かを判断する(ステップS2003)。未処理のsessionInfoタグがある場合(ステップS2003:Yes)、未処理のsessionInfoタグの内容を取得する(ステップS2004)。たとえば、図17に示したセッション情報付きレスポンスHTML1700では、セッションHTMLコメント文字列である「<!−−sessionInfo 西暦の生年月日=“2001年10月25日” −−>」のうち、「西暦の生年月日=“2001年10月25日”」を取得する。   Then, it is determined whether or not there is an unprocessed sessionInfo tag (step S2003). If there is an unprocessed sessionInfo tag (step S2003: Yes), the contents of the unprocessed sessionInfo tag are acquired (step S2004). For example, in the response HTML1700 with session information shown in FIG. 17, “<!-SessionInfo date of birth =“ October 25th, 2001 ”->” of “<! The date of birth = “October 25, 2001” is acquired.

そして、取得された内容のうち、「=」の前の記述を属性名、後ろの記述を属性値と同定し(ステップS2005)、ステップS2003に戻る。先の例では、「西暦の生年月日」が属性名、「2001年10月25日」が属性値となる。ステップS2003において、未処理のsessionInfoタグがない場合(ステップS2003:No)、ステップS1905移行する。これにより、ステップS1905では、画面項目期待値とセッション情報を対応付けてテスト仕様書データD1に書き込むこととなる。   Then, in the acquired content, the description before “=” is identified as the attribute name, and the description after is identified as the attribute value (step S2005), and the process returns to step S2003. In the previous example, “date of birth in the Christian era” is the attribute name, and “October 25, 2001” is the attribute value. If there is no unprocessed SessionInfo tag in step S2003 (step S2003: No), the process proceeds to step S1905. Thus, in step S1905, the screen item expected value and the session information are associated with each other and written in the test specification data D1.

(クライアント302によるリグレッションテスト時におけるテスト仕様書作成処理)
つぎに、クライアント302によるリグレッションテスト時におけるテスト仕様書作成処理について説明する。テスト仕様書データの作成は、Webブラウザ1021および実行ナビゲータ1022がおこなう。クライアント302は、リグレッションテスト用のテスト仕様書データを読み込む。
(Test specification creation process during regression test by client 302)
Next, a test specification creation process at the time of a regression test by the client 302 will be described. The test specification data is created by the Web browser 1021 and the execution navigator 1022. The client 302 reads test specification data for the regression test.

図21は、リグレッションテスト用のテスト仕様書データを示す説明図である。図5に示した初回テスト用のテスト仕様書データD1との違いは、「期待値情報」が「実績値情報」に、「画面項目期待値」が「画面項目実績値」に、「セッション期待値」が「セッション実績値」に変わっている点である。リグレッションテスト用のテスト仕様書データD2において、リグレッションテスト前では、実績値情報のセルは空欄である。   FIG. 21 is an explanatory diagram showing test specification data for a regression test. The difference from the test specification data D1 for the initial test shown in FIG. 5 is that “expected value information” is “actual value information”, “screen item expected value” is “screen item actual value”, and “session expectation”. The “value” is changed to the “session performance value”. In the test specification data D2 for the regression test, the cell of the actual value information is blank before the regression test.

図22は、リグレッションテスト時における自動作成後のテスト仕様書データD2を示す説明図である。リグレッションテストにより実績値情報が埋め込まれているセルがある。つぎに、クライアント302によるテスト仕様書作成処理手順について説明する。   FIG. 22 is an explanatory diagram showing the test specification data D2 after automatic creation during the regression test. There is a cell in which performance value information is embedded by a regression test. Next, a test specification creation process procedure by the client 302 will be described.

図23は、クライアント302によるリグレッションテスト時におけるテスト仕様書作成処理手順を示すフローチャートである。図23において、まず、図21に示したリグレッションテスト用のテスト仕様書データD2を読み込む(ステップS2301)。   FIG. 23 is a flowchart showing a test specification creation processing procedure at the time of a regression test by the client 302. In FIG. 23, first, the test specification data D2 for the regression test shown in FIG. 21 is read (step S2301).

そして、テストケースTCiのインデックスiをi=1とし(ステップS2302)、i>nであるか否かを判断する(ステップS2303)。i>nでない場合(ステップS2303:No)、テストケースTCiの実績値情報書き込み処理を実行する(ステップS2304)。このあと、iをインクリメントして(ステップS2305)、ステップS2303に戻る。   Then, the index i of the test case TCi is set to i = 1 (step S2302), and it is determined whether i> n is satisfied (step S2303). If i> n is not satisfied (step S2303: NO), the actual value information writing process of the test case TCi is executed (step S2304). Thereafter, i is incremented (step S2305), and the process returns to step S2303.

このあと、i>nの場合(ステップS2303:Yes)、Webブラウザ1021によりテスト仕様書データD2を表示する(ステップS2306)。このとき表示されるテスト仕様書データD2は、図22のようになる。これにより、実績値情報を目視で確認することができる。このあと、テスト仕様書データD2について、テスト仕様書DB310への出力処理を実行する(ステップS2307)。これにより、一連の処理を終了する。   Thereafter, when i> n (step S2303: Yes), the test specification data D2 is displayed by the Web browser 1021 (step S2306). The test specification data D2 displayed at this time is as shown in FIG. Thereby, performance value information can be confirmed visually. Thereafter, an output process to the test specification DB 310 is executed for the test specification data D2 (step S2307). As a result, the series of processes is completed.

(テストケースTCiの実績値情報書き込み処理)
つぎに、ステップS2304において示したテストケースTCiの実績値情報書き込み処理の具体的な処理手順について説明する。図24は、テストケースTCiの実績値情報書き込み処理の具体的な処理手順を示すフローチャートである。
(Test value TCi result value information writing process)
Next, a specific processing procedure of the actual value information writing process of the test case TCi shown in step S2304 will be described. FIG. 24 is a flowchart showing a specific processing procedure of the actual value information writing process of the test case TCi.

図24において、まず、初期画面のHTTPリクエストをWebサーバ301に送信する(ステップS2401)。図21に示したテスト仕様書データD2のテストケースTC1を例に挙げると、生年月日入力画面101が初期画面となるため、生年月日入力画面101のHTTPリクエストをWebサーバ301に送信する。   In FIG. 24, first, an HTTP request for an initial screen is transmitted to the Web server 301 (step S2401). Taking the test case TC1 of the test specification data D2 shown in FIG. 21 as an example, the birth date input screen 101 is an initial screen, and thus an HTTP request for the birth date input screen 101 is transmitted to the Web server 301.

Webサーバ301にHTTPリクエストを送信したあと、このHTTPリクエストに応じたレスポンスHTMLを受信する(ステップS2402)。生年月日入力画面101ではセッション情報(セッションHTMLコメント文字列)が埋め込まれないため、受信されたHTMLレスポンスにはメタ情報やセッション情報が埋め込まれない。   After transmitting an HTTP request to the Web server 301, a response HTML corresponding to the HTTP request is received (step S2402). Since session information (session HTML comment character string) is not embedded on the date of birth input screen 101, meta information and session information are not embedded in the received HTML response.

一方、性別入力画面103では、セッション情報が埋め込まれたセッション情報付きレスポンスHTMLを受信することとなる。また、厄年表示画面105では、メタ情報およびセッション情報が埋め込まれたセッション情報付きレスポンスHTMLが受信されることとなる。ここでは、これらを総称して「受信レスポンスHTML」と称す。   On the other hand, the gender input screen 103 receives a response HTML with session information in which session information is embedded. On the bad year display screen 105, a response HTML with session information in which meta information and session information are embedded is received. Here, these are collectively referred to as “reception response HTML”.

そして、Webブラウザ1021により、受信レスポンスHTMLを表示する(ステップS2403)。受信されたレスポンスHTMLでは、埋め込まれたメタ情報やセッション情報がWebブラウザ1021による表示時には表示されることはないが、解析対象となる。   Then, the reception response HTML is displayed by the Web browser 1021 (step S2403). In the received response HTML, the embedded meta information and session information are not displayed when displayed by the Web browser 1021, but are subject to analysis.

このあと、Webブラウザ1021により受信レスポンスHTMLを解析して、実績値情報抽出処理を実行する(ステップS2404)。メタ情報またはセッション情報がない場合は、実績値情報抽出処理(ステップS2404)は実行されないが、メタ情報またはセッション情報がある場合は、実績値情報抽出処理(ステップS2404)は実行される。実績値情報抽出処理(ステップS2404)の詳細については後述する。   Thereafter, the received response HTML is analyzed by the Web browser 1021, and the performance value information extraction process is executed (step S2404). When there is no meta information or session information, the actual value information extraction process (step S2404) is not executed, but when there is meta information or session information, the actual value information extraction process (step S2404) is executed. Details of the performance value information extraction process (step S2404) will be described later.

そして、抽出された実績値情報をテストケースTCiの空欄のセルに書き込む(ステップS2405)。このあと、テストケースTCiにおいて、現在のWeb画面から遷移する遷移先画面があるか否かを判断する(ステップS2406)。   Then, the extracted actual value information is written in a blank cell of the test case TCi (step S2405). Thereafter, in the test case TCi, it is determined whether there is a transition destination screen that transitions from the current Web screen (step S2406).

遷移先画面がある場合(ステップS2406:Yes)、現在のWeb画面の操作手順記述どおりの入力情報が受け付けられるのを待ち受ける(ステップS2407:No)。図21に示したテスト仕様書データD2のテストケースTC1を例に挙げると、生年月日入力画面101の操作手順記述『性別「男性」を選択、「厄年表示」をクリック』どおりに入力された入力情報が受け付けられるのを待ち受ける。   When there is a transition destination screen (step S2406: Yes), it waits for input information as described in the operation procedure description on the current Web screen to be received (step S2407: No). Taking the test case TC1 of the test specification data D2 shown in FIG. 21 as an example, the operation procedure description on the date of birth input screen 101 is input according to “select gender“ male ”, click“ bad year display ”” Wait for input information to be accepted.

入力情報が受け付けられた場合(ステップS2407:Yes)、遷移先画面のHTTPリクエスト、すなわち、この入力情報を含んだHTTPリクエストをWebサーバ301に送信する(ステップS2408)。このあと、ステップS2402に戻る。一方、ステップS2406において、遷移先画面がない場合(ステップS2406:No)、ステップS2305に移行する。これにより、一連のテストケースTCiの実績値情報書き込み処理手順を終了する。   When the input information is accepted (step S2407: Yes), an HTTP request for the transition destination screen, that is, an HTTP request including this input information is transmitted to the Web server 301 (step S2408). Thereafter, the process returns to step S2402. On the other hand, if there is no transition destination screen in step S2406 (step S2406: No), the process proceeds to step S2305. Thereby, the result value information writing process procedure of a series of test cases TCi is completed.

(実績値情報抽出処理)
図25は、実績値情報抽出処理(ステップS2404)の詳細な処理手順を示すフローチャートである。図25において、まず、testStartタグとtestEndタグに囲まれた位置から画面項目実績値を抽出する(ステップS2501)。testStartタグとtestEndタグがない場合は抽出しない。つぎに、sessionInfoタグの一覧を取得する(ステップS2502)。
(Actual value information extraction processing)
FIG. 25 is a flowchart showing a detailed processing procedure of the actual value information extraction processing (step S2404). In FIG. 25, first, the screen item actual value is extracted from the position surrounded by the testStart tag and the testEnd tag (step S2501). If there is no testStart tag and testEnd tag, no extraction is performed. Next, a list of sessionInfo tags is acquired (step S2502).

そして、未処理のsessionInfoタグがあるか否かを判断する(ステップS2503)。未処理のsessionInfoタグがある場合(ステップS2503:Yes)、未処理のsessionInfoタグの内容を取得する(ステップS2504)。たとえば、図17に示したセッション情報付きレスポンスHTML1700では、セッションHTMLコメント文字列である「<!−−sessionInfo 西暦の生年月日=“2001年10月25日” −−>」のうち、「西暦の生年月日=“2001年10月25日”」を取得する。   Then, it is determined whether there is an unprocessed sessionInfo tag (step S2503). If there is an unprocessed sessionInfo tag (step S2503: Yes), the contents of the unprocessed sessionInfo tag are acquired (step S2504). For example, in the response HTML1700 with session information shown in FIG. 17, “<!-SessionInfo date of birth =“ October 25th, 2001 ”->” of “<! The date of birth = “October 25, 2001” is acquired.

そして、取得された内容のうち、「=」の前の記述を属性名、後ろの記述を属性値と同定し(ステップS2505)、ステップS2503に戻る。先の例では、「西暦の生年月日」が属性名、「2001年10月25日」が属性値となる。ステップS2503において、未処理のsessionInfoタグがない場合(ステップS2503:No)、ステップS2405移行する。これにより、ステップS2405では、画面項目実績値とセッション情報を対応付けてテスト仕様書データD2に書き込むこととなる。   In the acquired contents, the description before “=” is identified as the attribute name, and the description after is identified as the attribute value (step S2505), and the process returns to step S2503. In the previous example, “date of birth in the Christian era” is the attribute name, and “October 25, 2001” is the attribute value. In step S2503, when there is no unprocessed sessionInfo tag (step S2503: No), the process proceeds to step S2405. Thus, in step S2405, the screen item actual value and the session information are associated and written to the test specification data D2.

(バグ位置特定処理)
つぎに、クライアント302によるバグ位置特定処理について説明する。バグ位置特定処理は、実行ナビゲータ1022がおこなう。バグ位置特定処理は、初回テスト済みの初回テスト用のテスト仕様書データD1(図9)と、リグレッションテスト済みのリグレッションテスト用のテスト仕様書データD2(図22)とを比較しておこなう。
(Bug location processing)
Next, the bug position specifying process by the client 302 will be described. The execution navigator 1022 performs the bug location specifying process. The bug location specifying process is performed by comparing the test specification data D1 for the initial test that has been subjected to the initial test (FIG. 9) with the test specification data D2 for the regression test that has been subjected to the regression test (FIG. 22).

図26は、初回テスト用のテスト仕様書データD1との比較後のリグレッションテスト用のテスト仕様書データD2を示す説明図である。図26のテスト仕様書データD2の実績値情報は、図22のそれと同一である。図22との違いは、テスト仕様書データD1と値が異なるセルを網掛けしている点である。   FIG. 26 is an explanatory diagram showing the test specification data D2 for the regression test after comparison with the test specification data D1 for the initial test. The actual value information of the test specification data D2 in FIG. 26 is the same as that in FIG. A difference from FIG. 22 is that cells having different values from the test specification data D1 are shaded.

たとえば、テストケースTC1の性別入力画面103では、図9のセッション期待値が「2001年10月25日」であるのに対し、図26のセッション実績値は「2000年10月25日」である。また、テストケースTC1の厄年表示画面105では、図9の画面項目期待値が「2025年、2042年、2061年」であるのに対し、図26の画面項目実績値は「2024年、2041年、2060年」である。さらに、図9のセッション期待値が「2001年10月25日」であるのに対し、図26のセッション実績値は「2000年10月25日」である。   For example, in the gender input screen 103 of the test case TC1, the expected session value in FIG. 9 is “October 25, 2001”, whereas the actual session value in FIG. 26 is “October 25, 2000”. . Further, in the bad year display screen 105 of the test case TC1, the screen item expected value in FIG. 9 is “2025, 2042, 2061”, whereas the screen item actual value in FIG. 26 is “2024, 2041”. , 2060 ". Further, the expected session value in FIG. 9 is “October 25, 2001”, whereas the actual session value in FIG. 26 is “October 25, 2000”.

図26に示したように、テストケースTC1では、Webブラウザ1021により厄年表示画面105に表示される画面項目実績値「2024年、2041年、2060年」が、図9の画面項目期待値が「2025年、2042年、2061年」と異なっているため、厄年表示画面105を出力した厄年計算プログラム104にバグがあると考えられる。しかし、セッション実績値を見ると、厄年表示画面105の遷移元画面である性別入力画面103のセッション実績値が、セッション期待値と異なっていることがわかる。   As shown in FIG. 26, in the test case TC1, the screen item actual value “2024, 2041, 2060” displayed on the bad year display screen 105 by the Web browser 1021 is the screen item expected value of FIG. Since it is different from “2025, 2042, 2061”, it is considered that there is a bug in the bad year calculation program 104 that has output the bad year display screen 105. However, looking at the session result value, it can be seen that the session result value of the gender input screen 103 which is the transition source screen of the bad year display screen 105 is different from the expected session value.

したがって、この場合は、性別入力画面103を出力した和暦→西暦変換プログラム102にバグがあると判断すべきである。なお、実施の形態1では、Webアプリケーション1014のソースコード内のバグ位置までは特定しないため、この場合のバグ位置は、性別入力画面103となる。   Therefore, in this case, it should be determined that there is a bug in the Japanese calendar → Western calendar conversion program 102 that outputs the gender input screen 103. In the first embodiment, since the bug position in the source code of the Web application 1014 is not specified, the bug position in this case is the gender input screen 103.

図27は、バグ位置特定処理手順(その1)を示すフローチャートである。図27において、まず、両テスト仕様書データD1,D2を読み込む(ステップS2701)。つぎに、初期画面を選択する(ステップS2702)。そして、選択画面についての期待値が仕様書データD1にあるか否かを判断する(ステップS2703)。ここでは、画面項目期待値またはセッション期待値のうち少なくともいずれか一方の期待値がテスト仕様書データD1のセルに書き込まれていれば、期待値があると判断する。   FIG. 27 is a flowchart showing the bug position identification processing procedure (part 1). In FIG. 27, first, both test specification data D1 and D2 are read (step S2701). Next, an initial screen is selected (step S2702). Then, it is determined whether or not the expected value for the selection screen is in the specification data D1 (step S2703). Here, if at least one of the screen item expected value and the session expected value is written in the cell of the test specification data D1, it is determined that there is an expected value.

期待値がない場合(ステップS2703:No)、ステップS2709に移行する。一方、期待値がある場合(ステップS2703:Yes)、存在する期待値に対応する実績値を仕様書データD2から特定する(ステップS2704)。そして、画面項目期待値と画面項目実績値とが一致するか否かを判断する(ステップS2705)。なお、画面項目期待値および画面項目実績値がない場合は、ステップS2707に移行する。不一致である場合(ステップS2705:No)、テスト仕様書データD2の画面項目実績値を強調表示して(ステップS2706)、ステップS2707に移行する。一方、一致する場合(ステップS2705:Yes)、ステップS2707に移行する。   When there is no expected value (step S2703: No), the process proceeds to step S2709. On the other hand, when there is an expected value (step S2703: Yes), the actual value corresponding to the existing expected value is specified from the specification data D2 (step S2704). Then, it is determined whether the screen item expected value matches the screen item actual value (step S2705). If there is no expected screen item value and no actual screen item value, the process proceeds to step S2707. If they do not match (step S2705: NO), the screen item actual value of the test specification data D2 is highlighted (step S2706), and the process proceeds to step S2707. On the other hand, if they match (step S2705: YES), the process proceeds to step S2707.

ステップS2707では、セッション期待値とセッション実績値が一致するか否かを判断する(ステップS2707)。なお、セッション期待値およびセッション実績値がない場合は、ステップS2709に移行する。不一致の場合(ステップS2707:No)、テスト仕様書データD2のセッション実績値を強調表示して(ステップS2708)、ステップS2709に移行する。一方、一致する場合(ステップS2707:Yes)、ステップS2709に移行する。   In step S2707, it is determined whether or not the expected session value matches the actual session value (step S2707). If there is no expected session value or actual session value, the process proceeds to step S2709. If they do not match (step S2707: NO), the session result value of the test specification data D2 is highlighted (step S2708), and the process proceeds to step S2709. On the other hand, if they match (step S2707: YES), the process proceeds to step S2709.

ステップS2709では、遷移先画面があるか否かを判断する(ステップS2709)。遷移先画面がある場合(ステップS2709:Yes)、遷移先画面を選択して(ステップS2710)、ステップS2703に戻る。一方、遷移先画面がない場合(ステップS2709:No)、一連の処理を終了する。これにより、図26に示したようなテスト仕様書データD2が得られるため、どの画面がバグ位置であるかを視認することができる。なお、本例ではテスト仕様書データD2を強調表示することとしたが、テスト仕様書データD1の方を強調表示することとしてもよい。   In step S2709, it is determined whether there is a transition destination screen (step S2709). If there is a transition destination screen (step S2709: YES), the transition destination screen is selected (step S2710), and the process returns to step S2703. On the other hand, when there is no transition destination screen (step S2709: No), a series of processing is terminated. As a result, test specification data D2 as shown in FIG. 26 is obtained, so it is possible to visually recognize which screen is the bug position. In this example, the test specification data D2 is highlighted, but the test specification data D1 may be highlighted.

図28は、バグ位置特定処理手順(その2)を示すフローチャート(前半)であり、図29は、バグ位置特定処理手順(その2)を示すフローチャート(後半)である。図27に示したバグ位置特定処理手順(その1)では、テスト仕様書データD1と値が異なるテスト仕様書データD2のセルを強調表示してユーザが視認することでバグ位置を特定することとしたが、バグ位置特定処理手順(その2)では、バグ位置を自動特定する例である。なお、このバグ位置特定処理手順(その2)は、テストケースTCiごとに実行する。   FIG. 28 is a flowchart (first half) showing the bug position specifying process procedure (part 2), and FIG. 29 is a flowchart (second half) showing the bug position specifying process procedure (part 2). In the bug position specifying processing procedure (part 1) shown in FIG. 27, the bug position is specified by highlighting the cell of the test specification data D2 having a value different from that of the test specification data D1 and visually recognizing the user. However, the bug position specifying processing procedure (part 2) is an example of automatically specifying the bug position. This bug position specifying process procedure (part 2) is executed for each test case TCi.

図28において、まず、両テスト仕様書データD1,D2を読み込む(ステップS2801)。つぎに、初期画面を選択する(ステップS2802)。そして、選択画面についての期待値が仕様書データD1にあるか否かを判断する(ステップS2803)。ここでは、画面項目期待値またはセッション期待値のうち少なくともいずれか一方の期待値がテスト仕様書データD1のセルに書き込まれていれば、期待値があると判断する。   In FIG. 28, first, both test specification data D1 and D2 are read (step S2801). Next, an initial screen is selected (step S2802). Then, it is determined whether or not the expected value for the selection screen is in the specification data D1 (step S2803). Here, if at least one of the screen item expected value and the session expected value is written in the cell of the test specification data D1, it is determined that there is an expected value.

期待値がない場合(ステップS2803:No)、ステップS2809に移行する。一方、期待値がある場合(ステップS2803:Yes)、存在する期待値に対応する実績値を仕様書データD2から特定する(ステップS2804)。そして、画面項目期待値と画面項目実績値とが一致するか否かを判断する(ステップS2805)。   If there is no expected value (step S2803: NO), the process proceeds to step S2809. On the other hand, when there is an expected value (step S2803: Yes), the actual value corresponding to the existing expected value is specified from the specification data D2 (step S2804). Then, it is determined whether or not the screen item expected value matches the screen item actual value (step S2805).

なお、画面項目期待値および画面項目実績値がない場合は、ステップS2807に移行する。不一致である場合(ステップS2805:No)、画面項目不一致フラグをONにして(ステップS2806)、ステップS2807に移行する。一方、一致する場合(ステップS2805:Yes)、ステップS2807に移行する。   If there is no expected screen item value and no actual screen item value, the process proceeds to step S2807. If they do not match (step S2805: No), the screen item mismatch flag is turned ON (step S2806), and the process proceeds to step S2807. On the other hand, if they match (step S2805: YES), the process proceeds to step S2807.

ステップS2807では、セッション期待値とセッション実績値が一致するか否かを判断する(ステップS2807)。なお、セッション期待値およびセッション実績値がない場合は、ステップS2809に移行する。不一致の場合(ステップS2807:No)、セッション不一致フラグをONにして(ステップS2808)、ステップS2809に移行する。一方、一致する場合(ステップS2807:Yes)、ステップS2809に移行する。   In step S2807, it is determined whether the session expected value matches the session performance value (step S2807). If there is no expected session value and actual session value, the process proceeds to step S2809. If they do not match (step S2807: NO), the session mismatch flag is turned ON (step S2808), and the process proceeds to step S2809. On the other hand, if they match (step S2807: YES), the process proceeds to step S2809.

ステップS2809では、遷移先画面があるか否かを判断する(ステップS2809)。遷移先画面がある場合(ステップS2809:Yes)、遷移先画面を選択して(ステップS2810)、ステップS2803に戻る。一方、遷移先画面がない場合(ステップS2809:No)、図29のステップS2901に移行する。   In step S2809, it is determined whether there is a transition destination screen (step S2809). If there is a transition destination screen (step S2809: Yes), the transition destination screen is selected (step S2810), and the process returns to step S2803. On the other hand, when there is no transition destination screen (step S2809: No), the process proceeds to step S2901 in FIG.

図29において、画面項目不一致フラグとセッション不一致フラグがともにONの画面があるか否かを判断する(ステップS2901)。両フラグがともにONの画面がない場合(ステップS2901:No)、バグなしと決定して(ステップS2902)、ステップS2907に移行する。   In FIG. 29, it is determined whether or not there is a screen whose screen item mismatch flag and session mismatch flag are both ON (step S2901). If there is no screen in which both flags are ON (step S2901: No), it is determined that there is no bug (step S2902), and the process proceeds to step S2907.

一方、両フラグがともにONの画面がある場合(ステップS2901:Yes)、少なくとも誤った値が表示されることとなる。したがって、最初にセッション不一致フラグがONとなった画面を特定する(ステップS2903)。そして、特定された画面が、ステップS2901の両フラグONの画面と同一画面であるか否かを判断する(ステップS2904)。   On the other hand, if there is a screen in which both flags are ON (step S2901: YES), at least an incorrect value will be displayed. Therefore, the screen on which the session mismatch flag is first turned on is identified (step S2903). Then, it is determined whether or not the specified screen is the same screen as the screen in which both flags are turned on in step S2901 (step S2904).

同一画面でない場合(ステップS2904:No)、両フラグONの画面をバグ表示画面、ステップS2903で特定された画面をバグ位置に決定し(ステップS2905)、ステップS2907に移行する。   If they are not the same screen (step S2904: No), the screen with both flags ON is determined as the bug display screen, the screen specified in step S2903 is determined as the bug position (step S2905), and the process proceeds to step S2907.

一方、両フラグONと同一画面である場合(ステップS2904:Yes)、両フラグONの画面をバグ位置に決定して(ステップS2906)、ステップS2907に移行する。ステップS2907では、各種決定結果を出力する(ステップS2907)。これにより、一連の処理を終了する。   On the other hand, if the screen is the same as both flags ON (step S2904: YES), the screen with both flags ON is determined as the bug position (step S2906), and the process proceeds to step S2907. In step S2907, various determination results are output (step S2907). As a result, the series of processes is completed.

図22のテスト仕様書データD2では、テストケースTC1において、厄年表示画面105の画面項目実績値およびセッション実績値が、テスト仕様書データD1の厄年表示画面105の画面項目期待値およびセッション期待値と異なる。したがって、厄年表示画面105がステップS2901の「両フラグONの画面」となる。また、性別入力画面103のセッション実績値が、テスト仕様書データD1のセッション期待値と異なる。   In the test specification data D2 of FIG. 22, in the test case TC1, the screen item actual value and the session actual value of the bad year display screen 105 are the screen item expected value and the session expected value of the bad year display screen 105 of the test specification data D1. Different. Therefore, the troubled year display screen 105 becomes the “both flag ON screen” in step S2901. Further, the session result value on the gender input screen 103 is different from the expected session value of the test specification data D1.

したがって、性別入力画面103がステップS2903の「特定された画面」となる。これにより、このケースでは、ステップS2905により、厄年表示画面105がバグ表示画面となり、性別入力画面103がバグ位置と決定されることとなる。これにより、テスト実施者は、性別入力画面103を呼び出す和暦→西暦変換プログラム102にバグがあると判断することができる。   Therefore, the gender input screen 103 becomes the “specified screen” in step S2903. Accordingly, in this case, the troubled year display screen 105 becomes a bug display screen and the gender input screen 103 is determined as a bug position in step S2905. As a result, the tester can determine that there is a bug in the Japanese calendar to Western calendar conversion program 102 that calls the gender input screen 103.

仮に、性別入力画面103のセッション実績値が、テスト仕様書データD1のセッション期待値と一致する場合、厄年表示画面105がステップS2903の「特定された画面」となる。これにより、このケースでは、ステップS2905により、厄年表示画面105がバグ位置と決定されることとなる。これにより、テスト実施者は、厄年表示画面105を呼び出す厄年計算プログラム104にバグがあると判断することができる。   If the session result value on the gender input screen 103 matches the expected session value of the test specification data D1, the troubled year display screen 105 becomes the “specified screen” in step S2903. Thus, in this case, the troubled year display screen 105 is determined as the bug position in step S2905. Thereby, the tester can determine that there is a bug in the bad year calculation program 104 that calls the bad year display screen 105.

このように、実施の形態1では、両テスト仕様書データD1,D2を比較することで、Webアプリケーション1014が出力するWeb画面の中からバグにより得られるWeb画面を自動特定することができる。したがって、バグ検出の時間を短縮することができ、バグの修正にかかる全体の時間も短縮することができる。これにより、開発サイクルの短縮化やソフトウェア開発全般の工期工数の低減を図ることができる。   As described above, in the first embodiment, by comparing the test specification data D1 and D2, it is possible to automatically specify the Web screen obtained by the bug from the Web screens output from the Web application 1014. Therefore, it is possible to reduce the time for bug detection, and it is possible to reduce the overall time required for bug correction. As a result, the development cycle can be shortened and the work period for software development in general can be reduced.

<実施の形態2>
次に、実施の形態2について説明する。実施の形態1では、両テスト仕様書データD1,D2を比較することで、バグにより出力される画面をバグ位置として特定した。すなわち、初回テストとリグレッションテスト時とで同一の入力操作を行った際に、セッション情報上に違いがあればその処理でバグが発生したと判断することとした。
<Embodiment 2>
Next, a second embodiment will be described. In the first embodiment, the screen output by the bug is specified as the bug position by comparing the test specification data D1 and D2. That is, when the same input operation is performed in the initial test and the regression test, if there is a difference in the session information, it is determined that a bug has occurred in the processing.

この比較対象となるセッション情報には、日付、受付番号/予約番号等のID番号等の情報が保持されることがある。このような情報は毎回変化する可能性がある情報であるため、テスト仕様書データD1とテスト仕様書データD2とで値が異なる場合が生じる。このため、実施の形態2では、バグ検出のための基礎情報として、必要なものと不要なものとをテスト実施者が指定可能にすることで、バグ検出時のバグ位置特定の精度の向上を図る。なお、実施の形態1と同一構成、同一処理については説明を省略する。   In the session information to be compared, information such as an ID number such as a date and a reception number / reservation number may be held. Since such information is information that may change every time, the test specification data D1 and the test specification data D2 may have different values. For this reason, in the second embodiment, as the basic information for bug detection, it is possible for the tester to specify what is necessary and what is not necessary, thereby improving the accuracy of specifying the bug position at the time of bug detection. Plan. Note that the description of the same configuration and the same process as in the first embodiment is omitted.

図30は、セッションオブジェクト1100に情報を記録するためのプログラムを示す説明図である。実施の形態1では簡単のためにセッションオブジェクト1100に対して単一の情報(「西暦の生年月日」という属性名の1個のオブジェクト)を格納する方法を示した。一方、より多くの情報をセッションオブジェクト1100に記録する場合、それぞれの情報を一つ一つ記録するよりも、JavaBeanとしてまとめて記録することの方が好まれるケースが多い。   FIG. 30 is an explanatory diagram showing a program for recording information in the session object 1100. In the first embodiment, for the sake of simplicity, a method for storing single information (one object having an attribute name “date of birth of the year”) for the session object 1100 is shown. On the other hand, when more information is recorded in the session object 1100, it is often preferred to record the information as a JavaBean rather than recording each information one by one.

図31は、JavaBeanのソースコード例(その1)を示す説明図である。図31では、1個のJavaBeanに2個の情報(「西暦の誕生日」と「アクセス日」)が格納され、さらにこの複数の情報を保持するJavaBeanが図30の4行目でセッションオブジェクト1100に格納されている。   FIG. 31 is an explanatory diagram of an example (part 1) of JavaBean source code. In FIG. 31, two pieces of information (“birthday of the Christian era” and “access date”) are stored in one JavaBean, and the JavaBean holding the plurality of pieces of information is the session object 1100 in the fourth line of FIG. Stored in

JavaBeanでは、JavaBean内に格納される各要素をプロパティ、プロパティに対して情報を読み書きするためのメソッドをアクセサと呼ぶ。特に、JavaBeanから情報を取得するためのメソッドをゲッターと呼び、JavaBeanに情報を書き込むメソッドをセッターと呼ぶ。   In JavaBean, each element stored in JavaBean is called a property, and a method for reading and writing information with respect to the property is called an accessor. In particular, a method for acquiring information from JavaBean is called a getter, and a method for writing information to JavaBean is called a setter.

図31の例では、プロパティ「西暦の誕生日」は、生年月日入力画面101内で入力する情報が同一であれば常に同じ内容が取得できるはずである。逆に言えばバグを検出した際に誕生日の情報が初回テストとリグレッションテスト時とで異なればバグ位置の特定と判断することができる。   In the example of FIG. 31, the same content should always be obtained for the property “birthday of the Christian era” if the information input on the date of birth input screen 101 is the same. In other words, when a bug is detected, if the birthday information differs between the initial test and the regression test, it can be determined that the bug location is specified.

一方、アクセス日はその和暦→西暦変換プログラム102が実行された瞬間のWebサーバ301のシステム時刻が格納されている。このため、初回テストとリグレッションテストでは必ず異なる時刻が格納されることになる。このアクセス日に関するセッション情報のセッション期待値を、テスト仕様書データD1に格納するセッション期待値から取り除く必要がある。   On the other hand, the access time stores the system time of the Web server 301 at the moment when the Japanese calendar → Western calendar conversion program 102 is executed. For this reason, different times are always stored in the initial test and the regression test. It is necessary to remove the expected session value of the session information regarding the access date from the expected session value stored in the test specification data D1.

図32は、JavaBeanのソースコード例(その2)を示す説明図である。Webアプリケーション1014の開発者は、JavaBeanを開発する際に、アクセス日のように期待値として記録したくないプロパティの前に「@Ignore」というアノテーションを付加する。図32の例では、JavaBeanにおける「アクセス日」プロパティの宣言の直前に「@Ignore」アノテーションを付加している。   FIG. 32 is an explanatory diagram of an example of JavaBean source code (part 2). When developing a JavaBean, the developer of the Web application 1014 adds an annotation “@Ignore” before a property that is not to be recorded as an expected value, such as an access date. In the example of FIG. 32, the “@Ignore” annotation is added immediately before the declaration of the “access date” property in JavaBean.

このIgnoreという情報はJavaのメタデータ仕様により解釈され、コンパイル後のアスペクト付きJavaクラスファイル1315にも残すことが可能である。さらに、Webアプリケーション1014の実行時には、セッション情報取得エンジン1018により各プロパティに「@Ignore」アノテーションが付加されているかどうかを判断する。そして、付加されていないセッション情報を取り出すことも可能である。   The information “Ignore” is interpreted according to the metadata specification of Java, and can be left in the Java class file 1315 with an aspect after compilation. Furthermore, when the Web application 1014 is executed, the session information acquisition engine 1018 determines whether or not the “@Ignore” annotation is added to each property. It is also possible to extract session information that has not been added.

(セッション情報取得処理)
図33および図34は、実施の形態2にかかるセッション情報取得エンジン1018によるセッション情報取得処理手順を示すフローチャートである。なお、図16と同一処理については同一ステップ番号を付し、その説明を省略する。
(Session information acquisition process)
FIG. 33 and FIG. 34 are flowcharts showing a session information acquisition processing procedure by the session information acquisition engine 1018 according to the second embodiment. The same processes as those in FIG. 16 are denoted by the same step numbers, and the description thereof is omitted.

まず、図33において、ステップS1604で未選択の属性を選択(ステップS1604)したあと、選択属性がJavaBeanであるか否かを判断する(ステップS3300)。判段基準としては、属性のオブジェクトに“get”で始まるメソッドが1個以上あればJavaBeanであると判断し、そうでなければJavaBeanではないものとする。JavaBeanでない場合(ステップS3300:No)、選択属性の文字列表現を抽出する(ステップS1605)。一方、JavaBeanである場合(ステップS3300:Yes)、図34のステップS3401に移行する。   First, in FIG. 33, after selecting an unselected attribute in step S1604 (step S1604), it is determined whether or not the selected attribute is JavaBean (step S3300). As a judgment standard, if there is at least one method starting with “get” in the attribute object, it is determined that the JavaBean is used. Otherwise, the JavaBean is not used. If it is not JavaBean (step S3300: No), the character string representation of the selection attribute is extracted (step S1605). On the other hand, if it is JavaBean (step S3300: Yes), the process proceeds to step S3401 in FIG.

ステップS3401では、未選択のプロパティがあるか否かを判断する(ステップS3401)。未選択のプロパティがある場合(ステップS3401:Yes)、未選択のプロパティを選択する(ステップS3402)。そして、選択プロパティに「@Ignore」アノテーションが付加されているか否かを判断する(ステップS3403)。「@Ignore」アノテーションが付加されている場合(ステップS3403:Yes)、その選択プロパティを無視してステップS3401に戻る。   In step S3401, it is determined whether there is an unselected property (step S3401). If there is an unselected property (step S3401: YES), an unselected property is selected (step S3402). Then, it is determined whether or not “@Ignore” annotation is added to the selected property (step S3403). If the “@Ignore” annotation is added (step S3403: YES), the selected property is ignored and the process returns to step S3401.

一方、「@Ignore」アノテーションが付加されていない場合(ステップS3403:No)、取得対象となるため、選択プロパティの文字列表現(プロパティ値)を抽出する(ステップS3404)。   On the other hand, if the “@Ignore” annotation is not added (step S3403: NO), the character string representation (property value) of the selected property is extracted because it is an acquisition target (step S3404).

プロパティ自身は、プログラム上外部からアクセスできないプライベートスコープとして定義されることが多いことから、プロパティ名に対応するゲッターメソッドを呼び出してプロパティ値を取得する。ゲッターメソッドはプロパティ名の前に「get」又は「Is」を付加したものであるため、簡単に特定することが可能である。たとえば、プロパティ名が「西暦の誕生日」の場合、ゲッターメソッド名は「get西暦の誕生日」となる。   Since the property itself is often defined as a private scope that cannot be accessed from the outside in the program, the property value is obtained by calling the getter method corresponding to the property name. Since the getter method has “get” or “Is” added in front of the property name, it can be easily specified. For example, when the property name is “Birthday of the Christian era”, the getter method name is “Birthday of the Christian era”.

このあと、セッション情報の属性名とプロパティ名、プロパティ値をレスポンスHTMLの末尾にHTMLコメントとして埋め込む(ステップS3405)。セッション情報の属性名とプロパティ名の間にはデリミタ(情報と情報を分離する文字)として「.」(ピリオド)を指定する。この例では、セッション情報の属性名、プロパティ名、プロパティ値としてそれぞれ、「誕生日」、「西暦の誕生日」、「2001年10月25日」が取得できたため、付加されるHTMLコメントの文字列は、「<!−−sessionInfo 誕生日.西暦の誕生日=“2001年10月25日” −−>」となる。   Thereafter, the attribute name, property name, and property value of the session information are embedded as an HTML comment at the end of the response HTML (step S3405). “.” (Period) is specified as a delimiter (character for separating information and information) between the attribute name and property name of the session information. In this example, “birthday”, “birthday of the Christian era”, and “October 25, 2001” can be acquired as the attribute name, property name, and property value of the session information, respectively. The column is “<!-SessionInfo birth date. Birth date in the Christian era =“ October 25, 2001 ”->”.

この動作をセッションオブジェクト1100内の属性の数だけ繰り返し、すべての属性についての処理を完了すると全属性を出力済みとなり、処理を終了する。このように、セッションオブジェクト1100に記録する情報をJavaBeanとし、その中に期待値として使用する情報と使用しない情報とを分離して管理することにより、検査をする際に必要な情報のみを期待値として記録することができる。   This operation is repeated for the number of attributes in the session object 1100. When the processing for all the attributes is completed, all the attributes have been output, and the processing ends. In this way, information to be recorded in the session object 1100 is JavaBean, and information used as expected values and information not used are managed separately in the information, so that only information necessary for inspection is expected values. Can be recorded as

したがって、バグ位置特定に関する精度の向上を図ることができる。また、不要な情報を削除することが容易にできるようになることからテスト仕様書データD1,D2の可読性やメンテナンス性の向上、メモリやハードディスクといった資源使用量の削減にもつながる。   Therefore, it is possible to improve the accuracy regarding the bug position specification. Further, since unnecessary information can be easily deleted, the readability and maintainability of the test specification data D1 and D2 are improved, and the amount of resources used such as memory and hard disk is reduced.

実施の形態2では、JavaBeanのプロパティ(フィールドとも呼ぶ)定義文に対してアノテーションを付ける方法を提案したが、ゲッターメソッドにアノテーションを付加しても同様にセッション期待値(またはセッション実績値)として取り込むか否かを決定することが可能である。また、期待値として無視するプロパティにアノテーションを付与したが、逆にセッション期待値(またはセッション実績値)として取り込むプロパティにアノテーションを付けても良いし、無視するプロパティと取り込むプロパティそれぞれに異なる名称のアノテーションを付加しても良い。また、JavaBeanクラス全体に対するアノテーションを指定できるようにしてもよい。   In the second embodiment, a method for annotating a JavaBean property (also referred to as a field) definition statement has been proposed. However, even if an annotation is added to a getter method, the session expected value (or session result value) is also captured. It is possible to determine whether or not. In addition, annotations are given to properties to be ignored as expected values. Conversely, properties to be imported as session expected values (or session actual values) may be annotated, and annotations with different names for properties to be ignored and properties to be imported. May be added. Moreover, you may enable it to designate the annotation with respect to the whole JavaBean class.

また、JSR(Java Specification Reqest)−175メタデータに対応しないJavaバーチャルマシンを利用している場合に、transient等のキーワードを付与することで期待値としての取り込みの有無を指定してもよい。   In addition, when using a Java virtual machine that does not correspond to JSR (Java Specification Request) -175 metadata, it is possible to specify whether or not to capture as an expected value by adding a keyword such as transient.

<実施の形態3>
つぎに、実施の形態3について説明する。実施の形態1,2では、画面単位のバグ位置の特定は可能だが、さらに細かいレベル(クラス単位、メソッド単位、行番号単位等)での診断は行えない。
<Embodiment 3>
Next, a third embodiment will be described. In the first and second embodiments, it is possible to specify the bug position in units of screens, but it is not possible to diagnose at a finer level (class unit, method unit, line number unit, etc.).

たとえば、性別入力画面103をバグ位置と特定した場合、プログラム上は和暦→西暦変換プログラム102にバグが存在することを特定できるが、たとえば和暦→西暦変換プログラム102内のどのクラス、メソッドなのかというところまでは特定できない。特に、和暦→西暦変換プログラム102が他のライブラリに依存している場合には、バグ位置の特定は人手に頼る部分が大きくなってしまう。   For example, when the gender input screen 103 is specified as a bug position, it can be specified on the program that there is a bug in the Japanese calendar → West calendar conversion program 102. For example, any class or method in the Japanese calendar → West calendar conversion program 102 can be specified. It is not possible to specify the place. In particular, when the Japanese calendar to Western calendar conversion program 102 depends on other libraries, the part of the bug position that is manually relied upon becomes large.

実施の形態3では、セッション情報における書き込みを検出した際に、その書き込みを行ったプログラムのクラス名、メソッド名も取得し、レスポンスHTMLとしてWebブラウザ1021に出力することにより、画面レベルよりも詳細にバグ位置を特定する。なお、実施の形態1,2と同一構成、同一処理については説明を省略する。   In the third embodiment, when writing in the session information is detected, the class name and method name of the program that performed the writing are also acquired and output to the Web browser 1021 as a response HTML, so that the screen level is more detailed. Identify the bug location. In addition, description is abbreviate | omitted about the same structure as Embodiment 1, 2, and the same process.

図35および図36は、Webアプリケーション1014を実行する際のシーケンス図である。このシーケンス図では、Webブラウザ1021とAPサーバ1011とが相互に通信を行い、APサーバ1011から呼び出されるWebアプリケーション1014(実施の形態1,2で示した厄年表示プログラム100)とセッションオブジェクト1100がどのように情報の交換を行うかを示している。   FIG. 35 and FIG. 36 are sequence diagrams when the Web application 1014 is executed. In this sequence diagram, the Web browser 1021 and the AP server 1011 communicate with each other, and the Web application 1014 (the troubled year display program 100 shown in the first and second embodiments) called from the AP server 1011 and the session object 1100 are identified. It shows how to exchange information.

まず、Webブラウザ1021が、初回アクセス、すなわち、1画面目(生年月日入力画面101)のHTTPリクエストをAPサーバ1011に送信する(ステップS3501)。APサーバ1011は、そのHTTPリクエストを受信して、HTTPリクエストの内容に対応するWebアプリケーション1014を呼び出す(ステップS3502)。Webアプリケーション1014では、ビジネスロジック1015として和暦→西暦変換プログラム102を実行する(ステップS3503)。その中でセッションオブジェクト1100への書き込みが行われる。セッションオブジェクト1100への書き込みは以下の手順で行われる。   First, the Web browser 1021 transmits an HTTP request for the first access, that is, the first screen (birth date input screen 101) to the AP server 1011 (step S3501). The AP server 1011 receives the HTTP request and calls the Web application 1014 corresponding to the content of the HTTP request (step S3502). The Web application 1014 executes the Japanese calendar → Western calendar conversion program 102 as the business logic 1015 (step S3503). In this process, writing to the session object 1100 is performed. Writing to the session object 1100 is performed according to the following procedure.

Webアプリケーション1014はAPサーバ1011に対してセッションオブジェクト1100の取得要求を行う(ステップS3504)。APサーバ1011はこの取得要求に応答するため、まずそのセッションに対するセッションオブジェクト1100が既に存在するかどうかを検索する(ステップS3505)。セッションオブジェクト1100が見つかれば、APサーバ1011はそのセッションオブジェクト1100への参照をWebアプリケーション1014に返却する(ステップS3506)。   The Web application 1014 makes an acquisition request for the session object 1100 to the AP server 1011 (step S3504). In order to respond to this acquisition request, the AP server 1011 first searches whether the session object 1100 for the session already exists (step S3505). If the session object 1100 is found, the AP server 1011 returns a reference to the session object 1100 to the Web application 1014 (step S3506).

セッションオブジェクト1100が見つからなければ、セッションオブジェクト1100のコンストラクタを呼び出してセッションオブジェクト1100を作成する(ステップS3505)。セッションオブジェクト1100はコンストラクタが呼び出されたので実行する(ステップS3507)。そして、セッションオブジェクト1100のメソッドを呼び出して必要な情報を格納した後に、そのセッションオブジェクト1100への参照をWebアプリケーション1014に返却する(ステップS3506)。   If the session object 1100 is not found, the session object 1100 constructor is called to create the session object 1100 (step S3505). The session object 1100 is executed because the constructor has been called (step S3507). Then, after calling the method of the session object 1100 and storing necessary information, a reference to the session object 1100 is returned to the Web application 1014 (step S3506).

これにより、Webアプリケーション1014はセッションオブジェクト1100を取得し、その内部へのアクセスができるようになる(ステップS3508)。つぎに、Webアプリケーション1014は、セッション書き込み要求をおこなう(ステップS3509)。具体的には、セッションオブジェクト1100のsetAttributeメソッドを呼び出して、セッションオブジェクト1100に情報を書き込む(ステップS3510)。   As a result, the Web application 1014 acquires the session object 1100 and can access the session object 1100 (step S3508). Next, the Web application 1014 makes a session write request (step S3509). Specifically, the setAttribute method of the session object 1100 is called to write information into the session object 1100 (step S3510).

最後にWebアプリケーション1014はレスポンスHTMLを作成し、APサーバ1011に通知する(ステップS3511)。APサーバ1011はこのレスポンスHTMLをセッション情報取得エンジン1018に渡して、レスポンスHTMLの末尾にセッションHTMLコメントを付加した後に、セッション情報付きレスポンスHTMLをWebブラウザ1021に返却する(ステップS3512)。Webブラウザ1021はレスポンスHTMLを解析し、クライアント302の画面上に表示する(ステップS3513)。   Finally, the Web application 1014 creates a response HTML and notifies the AP server 1011 (step S3511). The AP server 1011 passes this response HTML to the session information acquisition engine 1018, adds a session HTML comment to the end of the response HTML, and then returns the response HTML with session information to the Web browser 1021 (step S3512). The web browser 1021 analyzes the response HTML and displays it on the screen of the client 302 (step S3513).

2画面目以降も同様の動作が行われる。図36において、まず、性別入力画面103において性別を入力したあと、厄年計算ボタンをクリックすることで、そのHTTPリクエストをAPサーバ1011に送信する(ステップS3601)。APサーバ1011は、そのHTTPリクエストを受信して、HTTPリクエストの内容に対応するWebアプリケーション1014を呼び出す(ステップS3602)。Webアプリケーション1014では、ビジネスロジック1015として厄年計算プログラム104を実行する(ステップS3603)。   The same operation is performed for the second and subsequent screens. In FIG. 36, first, after entering the gender on the gender input screen 103, clicking the troublesome year calculation button transmits the HTTP request to the AP server 1011 (step S3601). The AP server 1011 receives the HTTP request and calls the Web application 1014 corresponding to the content of the HTTP request (step S3602). The Web application 1014 executes the troubled year calculation program 104 as the business logic 1015 (step S3603).

2画面目以降では、セッションオブジェクト1100は既に作成済みの状態のため、Webアプリケーション1014がセッションの取得要求をすると(ステップS3604)、APサーバ1011は新規にセッションオブジェクト1100を作成することなく、既存のセッションオブジェクト1100への参照を返却する(ステップS3605)。   In the second and subsequent screens, since the session object 1100 has already been created, when the Web application 1014 makes a session acquisition request (step S3604), the AP server 1011 creates an existing session object 1100 without creating a new session object 1100. A reference to the session object 1100 is returned (step S3605).

これにより、Webアプリケーション1014はセッションオブジェクト1100を取得し、その内部へのアクセスができるようになる(ステップS3606)。つぎに、Webアプリケーション1014は、セッションオブジェクト1100からの情報取得をおこなう(ステップS3607)。具体的には、Webアプリケーション1014はセッションオブジェクト1100のgetAttributeメソッドを呼び出してセッション情報にアクセスして情報を取り出す(ステップS3608)。Webアプリケーション1014は、セッションオブジェクト1100から取得した情報に基づいてビジネスロジック1015(厄年計算プログラム104)による厄年計算を実行する(ステップS3609)。   As a result, the Web application 1014 acquires the session object 1100 and can access the session object 1100 (step S3606). Next, the Web application 1014 acquires information from the session object 1100 (step S3607). Specifically, the web application 1014 accesses the session information by calling the getAttribute method of the session object 1100 and retrieves the information (step S3608). The Web application 1014 executes a bad year calculation by the business logic 1015 (the bad year calculation program 104) based on the information acquired from the session object 1100 (step S3609).

最後にWebアプリケーション1014はレスポンスHTMLを作成し、APサーバ1011に返却する(ステップS3610)。APサーバ1011はこのレスポンスHTMLをセッション情報取得エンジン1018に渡して、レスポンスHTMLの末尾にセッションHTMLコメントを付加した後に、セッション情報付きレスポンスHTMLをWebブラウザ1021に返却する(ステップS3611)。Webブラウザ1021はレスポンスHTMLを解析し、厄年表示画面105をクライアント302の画面上に表示する(ステップS3612)。   Finally, the Web application 1014 creates a response HTML and returns it to the AP server 1011 (step S3610). The AP server 1011 passes this response HTML to the session information acquisition engine 1018, adds a session HTML comment to the end of the response HTML, and then returns the response HTML with session information to the Web browser 1021 (step S3611). The Web browser 1021 analyzes the response HTML and displays the troubled year display screen 105 on the screen of the client 302 (step S3612).

実施の形態3では、上記の動作をする際におけるセッションオブジェクト1100への書き込みを行うメソッドであるsetAttributeメソッドの実行前後にアスペクトを織り込むことにより、セッションオブジェクト1100の振る舞いを変更し、セッションオブジェクト1100の内容が変更されるタイミングを特定する。この織り込まれるアスペクトの動作について、詳細に説明する。   In the third embodiment, the behavior of the session object 1100 is changed by incorporating the aspect before and after the execution of the setAttribute method, which is a method for writing to the session object 1100 when performing the above-described operation, and the contents of the session object 1100 Specify when to change. The operation of this woven aspect will be described in detail.

アスペクトは、セッションオブジェクト1100のクラスであるHttpSessionクラスのsetAttributeメソッドが呼び出される際に織り込まれる。アスペクトとは、メソッド呼び出し等特定のプログラムコードの前後に別のロジックを自動的に加える処理のことを指し、ここではsetAttributeメソッドが呼び出される前に、別の処理を追加している。setAttributeメソッドは、1回の画面処理(APサーバ1011がHTTPリクエストを受信してレスポンスHTMLを返却するまでの間を指す)の中で複数回の呼び出しが行われる可能性がある。アスペクトは、Java言語の場合AspectJ等のツールにより織り込みを行うことが可能である。   The aspect is woven when the setAttribute method of the HttpSession class that is a class of the session object 1100 is called. An aspect refers to a process of automatically adding another logic before and after a specific program code such as a method call. Here, another process is added before the setAttribute method is called. The setAttribute method may be called a plurality of times in one screen process (refers to the period from when the AP server 1011 receives an HTTP request and returns a response HTML). The aspect can be woven by a tool such as AspectJ in the case of Java language.

アスペクトは、具体的には、以下の機能を有する。
・各画面の呼出しごとの初期化(1画面の処理で得られる呼び出し情報だけを記録)。
・setAttribute()の呼出元のクラス名、メソッド名の取得。
・setAttribute()を呼出元のプログラム上の行番号の取得。
・setAttribute()の第1引数、第2引数の取得。第2引数に対してはtoString()を呼び出してString型表記に変換。
・上記全情報を格納する属性情報オブジェクト(List<SetAttributeInfo>型)を作成。この属性情報オブジェクトもHttpSessionの属性をして記憶。
・setAttribute()が複数回呼び出される場合には、各情報を直列情報(Listの各要素)として時系列に記憶。
Specifically, the aspect has the following functions.
• Initialization for each call of each screen (records only the call information obtained by processing of one screen).
-Acquisition of the class name and method name of the caller of setAttribute ().
-Get the line number on the program that called setAttribute ().
-Acquisition of the first argument and the second argument of setAttribute (). Call toString () for the second argument to convert it to String type notation.
Create an attribute information object (List <SetAttributeInfo> type) that stores all the above information. This attribute information object is also stored with an attribute of HttpSession.
When setAttribute () is called multiple times, each information is stored in time series as serial information (each element of List).

図37は、アスペクトの動作処理手順を示すフローチャートである。まず、setAttributeメソッドの呼び出しが検出されるのを待ち受け(ステップS3701:No)、検出された場合(ステップS3701:Yes)、書込データリストをクリアする(ステップS3702)。   FIG. 37 is a flowchart showing an aspect operation processing procedure. First, it waits for the call of the setAttribute method to be detected (step S3701: No). If it is detected (step S3701: YES), the write data list is cleared (step S3702).

書込データリストとは、1回の画面処理の中で行われるセッションオブジェクト1100への書き込み処理を管理するためのオブジェクトであり、リストとして複数のセッション書込情報を記憶することができる。これは1画面分のセッションオブジェクト1100へのセッション書込情報のみを取り出し、テスト仕様書DB310に格納するためである。   The write data list is an object for managing a write process to the session object 1100 performed in one screen process, and a plurality of session write information can be stored as a list. This is because only the session writing information for the session object 1100 for one screen is taken out and stored in the test specification DB 310.

そして、setAttributeメソッドの呼び出し元プログラムのクラス名、メソッド名、行番号を取得する(ステップS3703)。また、setAttributeメソッドの第1引数、第2引数の値を取得し、それぞれ文字列型への変換を行う(ステップS3704)。   Then, the class name, method name, and line number of the call source program of the setAttribute method are acquired (step S3703). Also, the values of the first argument and the second argument of the setAttribute method are acquired and converted into character string types, respectively (step S3704).

つぎに、アスペクトは書込データリストに取り出したすべてのセッション書込情報(クラス名、メソッド名、行番号、第1引数、第2引数)を追記的に記録する(ステップS3705)。また、書込データリストもまたセッションオブジェクト1100への属性として記録する(ステップS3706)。そして、ステップS3701に戻る。   Next, the aspect additionally records all the session writing information (class name, method name, line number, first argument, second argument) extracted in the write data list (step S3705). The write data list is also recorded as an attribute to the session object 1100 (step S3706). Then, the process returns to step S3701.

また、実施の形態3では、セッション情報取得エンジン1018は、この属性情報オブジェクトをHTMLのコメントとして出力する。出力形式としては、HttpSessionオブジェクトの属性単位で、実施の形態1で出力するセッション情報に対する付随情報として出力する。   In the third embodiment, the session information acquisition engine 1018 outputs the attribute information object as an HTML comment. As an output format, it is output as accompanying information for the session information output in the first embodiment in attribute units of the HTTP Session object.

具体的には、たとえば、setAttribute()の第1引数をキーとして得られる位置に出力する。1個のセッション情報に対して複数のセッション書込情報がある場合には時系列でカンマ区切りとする。各セッション書込情報のフォーマットはsetAttributeInfo=“クラス名#属性名():行番号:第2引数のString表現”とする。   Specifically, for example, the first argument of setAttribute () is output to a position obtained using the key. If there is a plurality of pieces of session writing information for one session information, they are separated in commas in time series. The format of each session writing information is setAttributeInfo = “class name # attribute name (): line number: string expression of second argument”.

図38は、実施の形態3にかかるセッション情報付きレスポンスHTMLの一例を示す説明図である。このセッション情報付きレスポンスHTML3800では、Erachangeクラスのinitメソッドで初期化(nullをセット)し、executeメソッドで値を書き込んでいる。   FIG. 38 is an explanatory diagram of an example of a response HTML with session information according to the third embodiment. In response HTML 3800 with session information, initialization is performed (set null) with the init method of the E-change class, and a value is written with the execute method.

図39は、実施の形態3にかかるセッション情報取得エンジン1018によるセッション情報取得処理手順を示すフローチャート(その1)である。なお、図16に示したフローチャートと同一処理については同一ステップ番号を付し、その説明を省略する。   FIG. 39 is a flowchart (part 1) illustrating a session information acquisition processing procedure by the session information acquisition engine 1018 according to the third embodiment. The same processes as those in the flowchart shown in FIG. 16 are denoted by the same step numbers, and the description thereof is omitted.

図39において、セッションオブジェクト1100を取得したあと(ステップS1602)、セッションオブジェクト1100から書込データリストを抽出する(ステップS3901)。そして、未選択の属性があるか否かを判断する(ステップS1603)。また、ステップS1605において、選択属性の文字列表現を抽出したあと、書込データリストから選択属性のセッション書込情報(クラス名、メソッド名、行番号、第1引数、第2引数)を抽出する(ステップS3902)。そして、セッション情報およびセッション書込情報を含むセッションHTMLコメント文字列を、レスポンスHTMLにコメント文として埋め込む(ステップS3903)。そして、ステップS1603に戻る。   In FIG. 39, after acquiring the session object 1100 (step S1602), a write data list is extracted from the session object 1100 (step S3901). Then, it is determined whether there is an unselected attribute (step S1603). In step S1605, after extracting the character string representation of the selection attribute, session writing information (class name, method name, line number, first argument, second argument) of the selection attribute is extracted from the write data list. (Step S3902). Then, the session HTML comment character string including the session information and the session writing information is embedded as a comment sentence in the response HTML (step S3903). Then, the process returns to step S1603.

図40および図41は、実施の形態3にかかるセッション情報取得エンジン1018によるセッション情報取得処理手順を示すフローチャート(その2)である。なお、図33および図34に示したフローチャートと同一処理については同一ステップ番号を付し、その説明を省略する。   40 and 41 are flowcharts (part 2) illustrating the session information acquisition processing procedure by the session information acquisition engine 1018 according to the third embodiment. The same processes as those in the flowcharts shown in FIGS. 33 and 34 are denoted by the same step numbers, and the description thereof is omitted.

図40において、セッションオブジェクト1100を取得したあと(ステップS1602)、セッションオブジェクト1100から書込データリストを抽出する(ステップS4001)。そして、未選択の属性があるか否かを判断する(ステップS1603)。また、ステップS1605において、選択属性の文字列表現を抽出したあと、書込データリストから選択属性のセッション書込情報(クラス名、メソッド名、行番号、第1引数、第2引数)を抽出する(ステップS4002)。   In FIG. 40, after acquiring the session object 1100 (step S1602), a write data list is extracted from the session object 1100 (step S4001). Then, it is determined whether there is an unselected attribute (step S1603). In step S1605, after extracting the character string representation of the selection attribute, session writing information (class name, method name, line number, first argument, second argument) of the selection attribute is extracted from the write data list. (Step S4002).

そして、セッション情報およびセッション書込情報を含むセッションHTMLコメント文字列を、レスポンスHTMLにコメント文として埋め込む(ステップS4003)。そして、ステップS1603に戻る。   Then, the session HTML comment character string including the session information and the session writing information is embedded as a comment sentence in the response HTML (step S4003). Then, the process returns to step S1603.

また、図41において、選択プロパティの文字列表現を抽出したあと(ステップS3404)、書込データリストから選択属性のセッション書込情報(クラス名、メソッド名、行番号、第1引数、第2引数)を抽出する(ステップS4101)。そして、セッション情報およびセッション書込情報を含むセッションHTMLコメント文字列を、レスポンスHTMLにコメント文として埋め込む(ステップS4102)。そして、ステップS3401に戻る。   Also, in FIG. 41, after extracting the character string representation of the selected property (step S3404), the session writing information (class name, method name, line number, first argument, second argument) of the selected attribute from the write data list. ) Is extracted (step S4101). Then, the session HTML comment character string including the session information and the session writing information is embedded as a comment sentence in the response HTML (step S4102). Then, the process returns to step S3401.

(初回テスト用のテスト仕様書データのデータ構造)
図42は、実施の形態3にかかる初回テスト用のテスト仕様書データのデータ構造を示す説明図である。図42は、初回テスト用のテスト仕様書データD31であり、初回テスト前のため、期待値情報内のセルは空欄である。実施の形態1,2で用いたテスト仕様書データD1との違いは、期待値情報として、セッション書込情報が追加された点である。セッション書込情報には、クラス、メソッド、行番号、および第2引数が埋め込まれているため、これらを初回テスト実行時に書き込むこととなる。
(Data structure of test specification data for initial test)
FIG. 42 is an explanatory diagram of the data structure of the test specification data for the initial test according to the third embodiment. FIG. 42 shows the test specification data D31 for the initial test, and the cell in the expected value information is blank because it is before the initial test. The difference from the test specification data D1 used in the first and second embodiments is that session writing information is added as expected value information. Since the class, method, line number, and second argument are embedded in the session write information, these are written when the first test is executed.

図43は、実施の形態3にかかる初回テスト実行済みのテスト仕様書データD31のデータ構造を示す説明図である。初回テスト実行済みであるため、期待値情報内のセルには情報が書き込まれている。   FIG. 43 is an explanatory diagram of a data structure of the test specification data D31 that has been subjected to the initial test according to the third embodiment. Since the initial test has been executed, information is written in the cells in the expected value information.

(期待値情報抽出処理)
図44は、実施の形態3にかかる期待値情報抽出処理の詳細な処理手順を示すフローチャートである。なお、図20に示した処理と同一処理には同一ステップ番号を付し、その説明を省略する。ステップS2005において同定をおこなったあと、「setAttributeInfo=」の後の部分を解析し、クラス名、メソッド名、行番号、第2引数に分割する(ステップS4400)。これにより、ステップS1905において、画面項目期待値とセッション期待値とセッション書込情報がテスト仕様書データD31に書き込まれる。
(Expected value information extraction process)
FIG. 44 is a flowchart of a detailed processing procedure of expected value information extraction processing according to the third embodiment. The same processes as those shown in FIG. 20 are denoted by the same step numbers and description thereof is omitted. After identification in step S2005, the part after “setAttributeInfo =” is analyzed and divided into a class name, a method name, a line number, and a second argument (step S4400). Thereby, in step S1905, the screen item expected value, the session expected value, and the session writing information are written in the test specification data D31.

図38の場合、1番目のセッション書込情報については、クラス名が「EraChanger」、メソッド名が「init」、行番号が「123」、第2引数が「null」となる。また、2番目のセッション書込情報については、クラス名が「EraChanger」、メソッド名が「execute」、行番号が「234」、第2引数が「2001年10月25日」となる。この期待値情報抽出処理により、図43に示したようなデータ構造となる。   In the case of FIG. 38, for the first session writing information, the class name is “EraChanger”, the method name is “init”, the line number is “123”, and the second argument is “null”. For the second session write information, the class name is “EraChanger”, the method name is “execute”, the line number is “234”, and the second argument is “October 25, 2001”. By this expected value information extraction process, the data structure as shown in FIG. 43 is obtained.

(リグレッションテスト用のテスト仕様書データのデータ構造)
図45は、実施の形態3にかかるリグレッションテスト用のテスト仕様書データのデータ構造を示す説明図である。図45は、リグレッションテスト用のテスト仕様書データD32であり、リグレッションテスト前のため、実績値情報内のセルは空欄である。実施の形態1,2で用いたテスト仕様書データD2との違いは、実績値情報として、セッション書込情報が追加された点である。セッション書込情報には、クラス、メソッド、行番号、および第2引数が埋め込まれているため、これらをリグレッションテスト実行時に書き込むこととなる。
(Data structure of test specification data for regression testing)
FIG. 45 is an explanatory diagram of a data structure of test specification data for a regression test according to the third embodiment. FIG. 45 shows the test specification data D32 for the regression test, and since the regression test is performed, the cells in the actual value information are blank. The difference from the test specification data D2 used in the first and second embodiments is that session writing information is added as actual value information. Since the class, method, line number, and second argument are embedded in the session write information, these are written when the regression test is executed.

図46は、実施の形態3にかかるリグレッションテスト実行済みのテスト仕様書データD32のデータ構造を示す説明図である。初回テスト実行済みであるため、実績値情報内のセルには情報が書き込まれている。   FIG. 46 is an explanatory diagram of a data structure of the test specification data D32 that has been subjected to the regression test according to the third embodiment. Since the first test has been executed, information is written in the cells in the actual value information.

(実績値情報抽出処理)
図47は、実施の形態3にかかる実績値情報抽出処理の詳細な処理手順を示すフローチャートである。なお、図25に示した処理と同一処理には同一ステップ番号を付し、その説明を省略する。ステップS2505において同定をおこなったあと、「setAttributeInfo=」の後の部分を解析し、クラス名、メソッド名、行番号、第2引数に分割する(ステップS4700)。これにより、ステップS2405において、画面項目実績値とセッション実績値とセッション書込情報がテスト仕様書データD32に書き込まれる。
(Actual value information extraction processing)
FIG. 47 is a flowchart of a detailed processing procedure of performance value information extraction processing according to the third embodiment. The same processes as those shown in FIG. 25 are denoted by the same step numbers and description thereof is omitted. After identification in step S2505, the part after “setAttributeInfo =” is analyzed and divided into a class name, a method name, a line number, and a second argument (step S4700). Thereby, in step S2405, the screen item result value, the session result value, and the session writing information are written in the test specification data D32.

(バグ位置特定処理)
図48は、実施の形態3にかかるバグ位置特定処理手順を示すフローチャートである。なお、図27に示した処理と同一処理には同一ステップ番号を付し、その説明を省略する。また、ここでは、図27では、テスト仕様書データD1,D2を用いたが、ここでは、テスト仕様書データD31,D32を用いるものとする。
(Bug location processing)
FIG. 48 is a flowchart of a bug position specifying process procedure according to the third embodiment. The same steps as those shown in FIG. 27 are denoted by the same step numbers and description thereof is omitted. In FIG. 27, the test specification data D1 and D2 are used here. However, here, the test specification data D31 and D32 are used.

ステップS2707において、セッション不一致である場合(ステップS2707:No)、セッション実績値とセッション書込情報を強調表示する(ステップS4800)。そして、ステップS2709に移行する。これにより、セッション書込情報も強調表示することができ、バグを有するプログラムにより呼び出された画面を特定できるとともに、その呼び出し元プログラムのクラス名、メソッド名、行番号、第2引数も特定することができる。   If the session does not match in step S2707 (step S2707: No), the session result value and the session writing information are highlighted (step S4800). Then, control goes to a step S2709. As a result, the session writing information can be highlighted, the screen called by the program having the bug can be specified, and the class name, method name, line number, and second argument of the calling source program can also be specified. Can do.

図49は、バグ位置特定処理後のテスト仕様書データD32のデータ構造を示す説明図である。テストケースTC1の性別入力画面103では、EraChangerクラス、initメソッドの123行目で属性値がnullに設定され、EraChangerクラス、executeメソッドの234行目で「2000年10月25日」に設定されたという履歴を確認することができる。   FIG. 49 is an explanatory diagram showing the data structure of the test specification data D32 after the bug position specifying process. On the sex input screen 103 of the test case TC1, the attribute value is set to null in the 123rd line of the EraChanger class and init method, and “October 25, 2000” is set in the 234th line of the EraChanger class and execute method. Can be confirmed.

一方、図43で示したテスト仕様書データD31において、セッション期待値は「2001年10月25日」であり、セッション書込情報は、EraChangerクラス、initメソッドの123行目がnullであり、EraChangerクラス、executeメソッドの234行目が「2001年10月25日」である。これらと比較すると、EraChangerクラス、executeメソッドの234行目でバグが埋め込まれたと判断することができる。   On the other hand, in the test specification data D31 shown in FIG. 43, the expected session value is “October 25, 2001”, the session writing information is EraChanger class, the 123rd line of the init method is null, and EraChanger The 234th line of the class and execute method is “October 25, 2001”. Compared to these, it can be determined that the bug is embedded in the 234th line of the EraChanger class and execute method.

このように実施の形態3では、バグが存在する位置を画面単位ではなく、プログラムの具体的な位置まで特定することが可能となり、より精度の高いバグ位置の特定が可能となる。   As described above, according to the third embodiment, it is possible to specify the position where the bug exists, not to the screen unit, but to the specific position of the program, and it is possible to specify the bug position with higher accuracy.

(静的解析との組み合わせ)
図50は、静的解析との組み合わせを説明するためのプログラムのソースコードを示す説明図である。実施の形態3では、セッション書込情報は、プログラム上の別の場所で処理されて、変数等に格納された最終形が見えている可能性がある。
(Combination with static analysis)
FIG. 50 is an explanatory diagram showing a source code of a program for explaining a combination with static analysis. In the third embodiment, there is a possibility that the session writing information is processed at another place on the program and the final form stored in a variable or the like is visible.

例えば、図50のようなソースコード5000の場合、実施の形態3の適用だけだと5行目だけがバグ位置として特定されるが、このbirthday変数を実際に処理しているのは図50のアンダーラインの行すべてが関連している。すなわち、9行目で処理されて得られたyear変数の内容が、関数呼び出し、返却等を経て、セッションオブジェクト1100に書き込まれる。   For example, in the case of the source code 5000 as shown in FIG. 50, if only the application of the third embodiment is applied, only the fifth line is specified as the bug position, but the factday variable is actually processed as shown in FIG. All underlined lines are relevant. That is, the content of the year variable obtained by processing in the ninth line is written into the session object 1100 through function call, return, and the like.

このような場合に、checkstyleやFindbugs等の既に提案されているソースプログラムの静的解析ツール等と組み合わせることにより、バグが発生したと考えられるコードと関連する変数への代入位置を特定することができるため、より詳細にバグの位置を特定、推量することができる。   In such a case, by combining with a static analysis tool of a source program that has already been proposed such as checkstyle or Findbugs, it is possible to specify the assignment position to a variable associated with a code considered to have a bug. Because it is possible, the location of the bug can be specified and guessed in more detail.

図51は、静的解析を適用した場合のバグ位置特定処理手順を示すフローチャートである。図48に示した実行結果から、障害発生原因のクラス名と行番号を取得する(ステップS5101)。つぎに、取得クラス名のクラスのソースコードを取得する(ステップS5102)。上記の例では、図50のソースコードの5行目を取得することとなる。そして、静的解析により、取得行番号と関連するソースコードとその行番号を取得する(ステップS5103)。上記の例では、図50のソースコードの4、5行目、9〜12行目を取得する。そして、取得ソースコードのプログラム名と行番号を出力する(ステップS5104)。これにより、テスト実施者に通知される。   FIG. 51 is a flowchart showing a bug position specifying process procedure when static analysis is applied. From the execution result shown in FIG. 48, the class name and line number causing the failure are acquired (step S5101). Next, the source code of the class having the acquired class name is acquired (step S5102). In the above example, the fifth line of the source code in FIG. 50 is acquired. Then, the source code associated with the acquired line number and the line number are acquired by static analysis (step S5103). In the above example, the fourth, fifth and ninth to twelfth lines of the source code in FIG. 50 are acquired. Then, the program name and line number of the acquired source code are output (step S5104). As a result, the tester is notified.

<Webアプリケーション1014検査システムの機能的構成>
つぎに、上述した実施の形態1〜3にかかるWebアプリケーション検査システム300の機能的構成について説明する。図52は、実施の形態1〜3にかかるWebアプリケーション検査システム300の機能的構成を示すブロック図である。各ブロックは、具体的には、たとえば、図4に示したROM402、RAM403、磁気ディスク405、光ディスク407などの記憶領域に記憶されたプログラムをCPU401に実行させることにより、または、I/F409により、その機能を実現する。
<Functional configuration of Web application 1014 inspection system>
Next, a functional configuration of the Web application inspection system 300 according to the first to third embodiments will be described. FIG. 52 is a block diagram of a functional configuration of the Web application inspection system 300 according to the first to third embodiments. Specifically, for example, each block is executed by causing the CPU 401 to execute a program stored in a storage area such as the ROM 402, the RAM 403, the magnetic disk 405, and the optical disk 407 shown in FIG. 4 or by the I / F 409. Realize its function.

まず、Webサーバ301から説明する。Webサーバ301は、通信部5201と、実行部5202と、保存部5203と、生成部5204と、挿入部5205と、を含む構成である。通信部5201は、Webアプリケーション1014のテストケースに含まれている一連の画面遷移仕様の中から選ばれた画面遷移仕様のWeb画面を要求するリクエストをクライアント302から受信する機能を有する。具体的には、クライアント302からHTTPリクエストを受信する。たとえば、クライアント302のWebブラウザ1021において生年月日入力画面101が表示されている場合、その遷移先のWeb画面である性別入力画面103を要求するHTTPリクエストを受信する。   First, the Web server 301 will be described. The Web server 301 includes a communication unit 5201, an execution unit 5202, a storage unit 5203, a generation unit 5204, and an insertion unit 5205. The communication unit 5201 has a function of receiving, from the client 302, a request for requesting a Web screen having a screen transition specification selected from a series of screen transition specifications included in the test case of the Web application 1014. Specifically, an HTTP request is received from the client 302. For example, when the date of birth input screen 101 is displayed on the Web browser 1021 of the client 302, an HTTP request for requesting the sex input screen 103, which is the Web screen of the transition destination, is received.

また、通信部5201は、Web画面に関するレスポンスをクライアント302に送信する機能を有する。具体的には、クライアント302からのHTTPリクエストに対するレスポンスHTMLを送信する。たとえば、性別入力画面103を要求するHTTPリクエストを受信した場合、性別入力画面103のレスポンスHTMLを送信する。送信されるレスポンスHTMLは、セッション情報付きレスポンスHTMLとなる。なお、この通信部5201は、図10に示したAPサーバ1011に相当する。   The communication unit 5201 has a function of transmitting a response related to the Web screen to the client 302. Specifically, a response HTML for the HTTP request from the client 302 is transmitted. For example, when an HTTP request for requesting the gender input screen 103 is received, a response HTML of the gender input screen 103 is transmitted. The response HTML to be transmitted is a response HTML with session information. The communication unit 5201 corresponds to the AP server 1011 illustrated in FIG.

実行部5202は、通信部5201によって受信されたリクエストに基づいて、プログラム群のうちWeb画面を呼び出すプログラムを実行して、Web画面に表示させる画面項目に関する出力値とプログラムに関する出力値およびその属性とを出力する機能を有する。具体的には、実行部5202は、受信されたリクエストを解析し、要求されたWeb画面を呼び出すプログラムを特定する。そして、その特定されたプログラムを実行する。   Based on the request received by the communication unit 5201, the execution unit 5202 executes a program that calls a Web screen in the program group, and outputs an output value related to a screen item to be displayed on the Web screen, an output value related to the program, and an attribute thereof. Has a function of outputting. Specifically, the execution unit 5202 analyzes the received request and specifies a program that calls the requested Web screen. Then, the specified program is executed.

また、Web画面に表示させる画面項目に関する出力値とは、上述した画面項目期待値または画面項目実績値である。また、プログラムに関する出力値およびその属性とは、上述したセッション情報の属性値(セッション期待値またはセッション実績値)とその属性である。   The output value related to the screen item displayed on the Web screen is the above-described expected screen item value or actual screen item value. Further, the output value related to the program and its attribute are the attribute value (session expected value or session result value) of the session information described above and its attribute.

たとえば、性別入力画面103を要求するHTTPリクエストである場合、性別入力画面103を呼び出す和暦→西暦変換プログラム102を呼び出し、HTTPに含まれている値(年号「平成」、年「13」、月「10」、日「25」)を与えて実行する。そして、性別入力画面103を呼び出す。そして、Web画面に表示させる画面項目に関する出力値として、「平成13年10月25日」を出力するとともに、セッション情報の属性値とその属性として、「西暦の生年月日(属性)=2001年10月25日(属性値)」を出力する。この実行部5202は、Webアプリケーション1014をコンパイラによりコンパイルして実行するAPサーバ1011に相当する。   For example, in the case of an HTTP request for requesting the gender input screen 103, the Japanese calendar → Western calendar conversion program 102 that calls the gender input screen 103 is called and values included in the HTTP (year “Heisei”, year “13”, Month "10", day "25"). Then, the gender input screen 103 is called. Then, “October 25, 2001” is output as the output value for the screen item to be displayed on the Web screen, and the attribute value of the session information and its attribute are “birth date of the year (attribute) = 2001”. “October 25 (attribute value)” is output. The execution unit 5202 corresponds to the AP server 1011 that compiles and executes the Web application 1014 using a compiler.

保存部5203は、実行部5202によって出力されたプログラムに関する出力値およびその属性をセッション情報として記憶領域に保存する機能を有する。具体的には、たとえば、セッション情報を上述したセッションオブジェクト1100に保存する。上述した例では、セッション情報の属性値とその属性として出力された「西暦の生年月日(属性)=2001年10月25日(属性値)」をセッション情報として保存する。   The storage unit 5203 has a function of storing an output value related to the program output by the execution unit 5202 and its attribute as session information in a storage area. Specifically, for example, the session information is stored in the session object 1100 described above. In the above-described example, the attribute value of the session information and “date of birth (attribute) = October 25, 2001 (attribute value)” output as the attribute are stored as the session information.

この保存されたセッション情報は、つぎに実行されるプログラムの入力情報として用いられる。たとえば、上述した例では、セッション情報である「西暦の生年月日(属性)=2001年10月25日(属性値)」は、和暦→西暦変換プログラム102のつぎに呼び出される厄年計算プログラム104の入力情報として用いられる。   The stored session information is used as input information for a program to be executed next. For example, in the above-described example, “date of birth (attribute) = October 25, 2001 (attribute value)” which is session information is a troubled year calculation program 104 called next to the Japanese calendar → West calendar conversion program 102. Used as input information.

また、保存部5203は、プログラム中の実行位置を特定する情報(セッション書込情報)をプログラムに関する出力値およびその属性とともにセッション情報として記憶領域に保存する。具体的には、たとえば、実施の形態3で説明したように、セッション書込情報として、実行中のプログラムのクラス名、メソッド名、行番号、第2引数のうち少なくとも1つとして保存する。この保存部5203は、Webアプリケーション1014に応じてセッションオブジェクト1100に保存するAPサーバ1011に相当する。   Further, the storage unit 5203 stores information (session writing information) for specifying an execution position in the program in the storage area as session information together with an output value related to the program and its attribute. Specifically, for example, as described in the third embodiment, the session writing information is stored as at least one of the class name, method name, line number, and second argument of the program being executed. The storage unit 5203 corresponds to the AP server 1011 that stores the session object 1100 according to the Web application 1014.

生成部5204は、実行部5202によって出力された画面項目に関する出力値が埋め込まれたWeb画面に関するレスポンスを生成する機能を有する。具体的には、実行部5202によって実行中のプログラムが呼び出したWeb画面に関するレスポンスHTMLを生成する。このレスポンスHTMLには、Web画面に表示させる画面項目に関する出力値(上述した例では、「平成13年10月25日」)が埋め込まれる。   The generation unit 5204 has a function of generating a response regarding the Web screen in which the output value regarding the screen item output by the execution unit 5202 is embedded. Specifically, the execution unit 5202 generates a response HTML related to the Web screen called by the program being executed. In this response HTML, an output value related to a screen item to be displayed on the Web screen (in the above example, “October 25, 2001”) is embedded.

また、生成部5204は、図12〜図15に示したように、メタ情報挿入エンジン1017、テンプレートファイル1016、プリプロセッサ1012、コンパイラ1013により、Web画面に表示させる画面項目に関する出力値の出力位置を特定して、レスポンスHTMLを生成する。この生成部5204は、テンプレートファイル1016を実行するAPサーバ1011、プリプロセッサ1012、メタ情報挿入エンジン1017に相当する。   Further, as illustrated in FIGS. 12 to 15, the generation unit 5204 specifies the output position of the output value related to the screen item to be displayed on the Web screen by the meta information insertion engine 1017, the template file 1016, the preprocessor 1012, and the compiler 1013. Then, a response HTML is generated. The generation unit 5204 corresponds to the AP server 1011 that executes the template file 1016, the preprocessor 1012, and the meta information insertion engine 1017.

挿入部5205は、生成部5204によって生成されたWeb画面に関するレスポンスに、保存部5203によって記憶領域に保存されたセッション情報を挿入する機能を有する。具体的には、上述した図16や図39に示したセッション情報取得処理(ステップS1206)を実行する。上述した例では、セッションオブジェクト1100に保存されたセッション情報「西暦の生年月日(属性)=2001年10月25日(属性値)」を、生成された性別入力画面103のレスポンスHTMLの末尾にコメント文として埋め込む。このようにコメント文として埋め込むことにより、クライアント302のWebブラウザ1021では表示されないが、クライアント302の実行ナビゲータ1022では、解析対象とすることができる。   The insertion unit 5205 has a function of inserting the session information stored in the storage area by the storage unit 5203 into the response related to the Web screen generated by the generation unit 5204. Specifically, the session information acquisition process (step S1206) shown in FIGS. 16 and 39 described above is executed. In the above-described example, the session information “date of birth (attribute) = October 25, 2001 (attribute value)” stored in the session object 1100 is added to the end of the response HTML of the generated gender input screen 103. Embed as comment text. By embedding it as a comment sentence in this way, it is not displayed on the Web browser 1021 of the client 302, but can be analyzed in the execution navigator 1022 of the client 302.

また、実施の形態2(図33および図34)や実施の形態3(図40および図41)で説明したように、属性をJavaBeanで表現する場合、セッション期待値やセッション実績値として記録したくないプロパティの前に「@Ignore」というアノテーションを付加する。そして、挿入部5205では、このアノテーションが付加されているか否かを判定する。アノテーションが付加されていれば、そのプロパティのセッション期待値(またはセッション実績値)をセッションオブジェクト1100に保存しない。   Also, as described in the second embodiment (FIGS. 33 and 34) and the third embodiment (FIGS. 40 and 41), when the attribute is expressed in JavaBean, it is desired to record it as a session expected value or a session actual value. Annotation “@Ignore” is added before a property that does not exist. The inserting unit 5205 determines whether or not this annotation is added. If an annotation is added, the expected session value (or actual session value) of the property is not stored in the session object 1100.

これにより、アクセス日などのように、テストする都度必然的に変化するセッション情報どうしの比較をおこなわないようにすることで、バグの誤検出を防止することができる。また、そのようなセッション情報はテスト仕様書データD1,D2に反映されないため、テスト対象にはならない。したがって、テスト時間の短縮化を図ることができる。   Thereby, it is possible to prevent erroneous detection of bugs by not comparing session information that inevitably changes every time a test is performed, such as an access date. Further, since such session information is not reflected in the test specification data D1 and D2, it is not a test target. Accordingly, the test time can be shortened.

つぎに、クライアント302について説明する。クライアント302は、受付部5211と、取得部5212と、抽出部5213と、書き込み部5214と、読み込み部5215と、特定部5216と、判断部5217と、設定部5218と、出力部5219と、決定部5220と、を含む構成である。これらは実行ナビゲータ1022に相当する機能である。   Next, the client 302 will be described. The client 302 includes a reception unit 5211, an acquisition unit 5212, an extraction unit 5213, a writing unit 5214, a reading unit 5215, a specifying unit 5216, a determination unit 5217, a setting unit 5218, and an output unit 5219. Part 5220. These are functions corresponding to the execution navigator 1022.

受付部5211は、Webサーバ301にインストールされるWebアプリケーション1014のテストケースに含まれている一連の画面遷移仕様が記述されたテスト仕様書データを受け付ける機能を有する。具体的には、たとえば、図5に示したテスト仕様書データを読み込む。   The reception unit 5211 has a function of receiving test specification data in which a series of screen transition specifications included in a test case of the Web application 1014 installed in the Web server 301 is described. Specifically, for example, the test specification data shown in FIG. 5 is read.

取得部5212は、任意の画面遷移仕様のWeb画面を要求するリクエストをWebサーバ301に送信する機能を有する。このリクエストは、具体的には、図5に示したテスト仕様書データの一連の画面遷移仕様の中から選ばれた画面遷移仕様のWeb画面を要求するリクエストである。そして、このリクエストをWebサーバ301に送信することにより、セッション情報付きレスポンスHTMLを受信する。   The acquisition unit 5212 has a function of transmitting a request for requesting a Web screen having an arbitrary screen transition specification to the Web server 301. Specifically, this request is a request for requesting a Web screen of a screen transition specification selected from the series of screen transition specifications of the test specification data shown in FIG. Then, by transmitting this request to the Web server 301, a response HTML with session information is received.

また、抽出部5213は、取得部5212によって取得されたWeb画面に関するレスポンスの中から、期待値情報や実績値情報を抽出する機能を有する。具体的には、レスポンスHTMLにメタ情報が含まれている場合には、メタ情報を抽出する。また、画面項目に関する出力値が含まれている場合には、その画面項目に関する出力値を抽出する。さらに、セッション情報が含まれている場合には、そのセッション情報も抽出する。   The extraction unit 5213 has a function of extracting expected value information and actual value information from the response regarding the Web screen acquired by the acquisition unit 5212. Specifically, when meta information is included in the response HTML, the meta information is extracted. If the output value related to the screen item is included, the output value related to the screen item is extracted. Further, if session information is included, the session information is also extracted.

たとえば、初回テストのテストケースTC1において、性別入力画面103に関するレスポンスHTMLを受信した場合、その中から、画面項目期待値として年号「平成」、年「13」、月「10」、日「25」を抽出する。同様に、セッション情報として「西暦の生年月日(属性)=2001年10月25日(セッション期待値)」を抽出する。   For example, when the response HTML related to the gender input screen 103 is received in the test case TC1 of the initial test, the year “Heisei”, the year “13”, the month “10”, the day “25” are displayed as expected values of the screen items. Is extracted. Similarly, “date of birth (attribute) = October 25, 2001 (expected session value)” is extracted as session information.

また、リグレッションテストのテストケースTC1において、性別入力画面103に関するレスポンスHTMLを受信した場合、その中から、画面項目実績値として年号「平成」、年「13」、月「10」、日「25」を抽出する。同様に、セッション情報として「西暦の生年月日(属性)=2001年10月25日(セッション実績値)」を抽出する。なお、この抽出部5213は、実行ナビゲータ1022に相当する。   Further, in the test case TC1 of the regression test, when the response HTML related to the gender input screen 103 is received, the year “Heisei”, the year “13”, the month “10”, the day “25” are displayed as the screen item actual values. Is extracted. Similarly, “date of birth (attribute) = October 25, 2001 (session result value)” is extracted as session information. The extraction unit 5213 corresponds to the execution navigator 1022.

また、書き込み部5214は、抽出部5213によって抽出された期待値情報や実績値情報を画面遷移仕様に関連付けて、受付部5211によって受け付けられたテスト仕様書データへ書き込む。具体的には、たとえば、図9に示したように、初回テストのテストケースTC1において、画面項目期待値として年号「平成」、年「13」、月「10」、日「25」を抽出した場合、テストケースTC1のレスポンスHTMLに相当する性別入力画面103の画面項目期待値に、年号「平成」、年「13」、月「10」、日「25」を書き込む。   In addition, the writing unit 5214 associates the expected value information and the actual value information extracted by the extracting unit 5213 with the screen transition specification and writes the test specification data received by the receiving unit 5211. Specifically, for example, as shown in FIG. 9, in the test case TC1 of the initial test, the year name “Heisei”, the year “13”, the month “10”, and the day “25” are extracted as the expected values of the screen items. In this case, the year “Heisei”, the year “13”, the month “10”, and the day “25” are written in the expected values of the gender input screen 103 corresponding to the response HTML of the test case TC1.

同様に、セッション情報として「西暦の生年月日(属性)=2001年10月25日(セッション期待値)」を書き込む。これにより、テストケースTC1の性別入力画面103のレコードを参照すると、画面項目期待値とセッション情報(属性およびセッション期待値)とが当該レコードに書き込まれる。したがって、両者が関連付けられることとなる。   Similarly, “date of birth of the year (attribute) = October 25, 2001 (expected value of session)” is written as the session information. Thereby, when the record of the sex input screen 103 of the test case TC1 is referred to, the screen item expected value and the session information (attribute and session expected value) are written in the record. Therefore, both will be associated.

同様に、図22に示したように、リグレッションテストのテストケースTC1において、画面項目期待値として年号「平成」、年「13」、月「10」、日「25」を抽出した場合、テストケースTC1のレスポンスHTMLに相当する性別入力画面103の画面項目実績値に、年号「平成」、年「13」、月「10」、日「25」を書き込む。   Similarly, as shown in FIG. 22, in the test case TC1 of the regression test, when the year “Heisei”, the year “13”, the month “10”, and the day “25” are extracted as the expected values of the screen items, The year “Heisei”, the year “13”, the month “10”, and the day “25” are written in the screen item actual values of the gender input screen 103 corresponding to the response HTML of the case TC1.

同様に、セッション情報として「西暦の生年月日(属性)=2000年10月25日(セッション実績値)」を書き込む。これにより、テストケースTC1の性別入力画面103のレコードを参照すると、画面項目実績値とセッション情報(属性およびセッション実績値)とが当該レコードに書き込まれる。したがって、両者が関連付けられることとなる。   Similarly, “date of birth (attribute) = October 25, 2000 (session result value)” is written as session information. Thereby, when the record of the sex input screen 103 of the test case TC1 is referred to, the screen item actual value and the session information (attribute and session actual value) are written in the record. Therefore, both will be associated.

読み込み部5215は、Webアプリケーション1014に関する第1のテストについて書き込み部5214によって書き込まれた第1のテスト仕様書データと第1のテストのあとの第2のテストについて書き込み部5214によって書き込まれた第2のテスト仕様書データとを読み込む機能を有する。具体的には、たとえば、書き込み部5214による作成済みのテスト仕様書データD1,D2(図9および図22を参照)を読み込む。また、書き込み部5214による作成済みのテスト仕様書データD31,D32(図43および図46を参照)を読み込んでもよい。   The reading unit 5215 writes the first test specification data written by the writing unit 5214 for the first test related to the Web application 1014 and the second test written by the writing unit 5214 for the second test after the first test. The test specification data is read. Specifically, for example, test specification data D1 and D2 (see FIGS. 9 and 22) created by the writing unit 5214 are read. In addition, test specification data D31 and D32 (see FIGS. 43 and 46) created by the writing unit 5214 may be read.

特定部5216は、読み込み部5215によって読み込まれた第1および第2のテスト仕様書データ内のWeb画面ごとに、当該Web画面に関連付けられているセッション情報を特定する機能を有する。具体的には、たとえば、各テスト仕様書データD1,D2(D31,D32)において、同一テストケースTCiの同一Web画面のレコードにおけるセッション情報を特定する。また、特定部5216は、同一テストケースTCiの同一Web画面において、当該Web画面ごとに、テスト仕様書データD1の画面項目期待値とテスト仕様書データD2の画面項目実績値とを特定する。   The specifying unit 5216 has a function of specifying session information associated with the Web screen for each Web screen in the first and second test specification data read by the reading unit 5215. Specifically, for example, in each test specification data D1, D2 (D31, D32), the session information in the record of the same Web screen of the same test case TCi is specified. Further, the specifying unit 5216 specifies the expected screen item value of the test specification data D1 and the actual screen item value of the test specification data D2 for each Web screen on the same Web screen of the same test case TCi.

判断部5217は、特定部5216によって特定されたセッション情報が、第1および第2のテスト仕様書データで一致するか否かを判断する機能を有する。具体的には、たとえば、特定されたセッション情報ごとに、テスト仕様書データD1(D31)において特定されたセッション情報とテスト仕様書データD2(D32)において特定されたセッション情報とが一致するか否かを判断する。一致する場合は、初回テストのセッション期待値とリグレッションテストのセッション実績値とが一致することとなるため、そのWeb画面を呼び出すプログラム(ビジネスロジック1015)は正常(バグなし)であると判断される。   The determination unit 5217 has a function of determining whether or not the session information specified by the specification unit 5216 matches between the first and second test specification data. Specifically, for example, for each specified session information, whether the session information specified in the test specification data D1 (D31) matches the session information specified in the test specification data D2 (D32). Determine whether. If they match, the expected session value of the initial test and the session result value of the regression test match, so the program that calls the Web screen (business logic 1015) is determined to be normal (no bugs). .

また、判断部5217は、同一テストケースTCiの同一Web画面において、当該Web画面ごとに、テスト仕様書データD1(D31)の画面項目期待値とテスト仕様書データD2(D32)の画面項目実績値とが特定された場合、画面項目期待値と画面項目実績値との一致判断をおこなってもよい。一致する場合は、そのWeb画面を呼び出すプログラム(ビジネスロジック1015)はバグを表示していないと判断される。   The determination unit 5217 also displays the expected screen item value of the test specification data D1 (D31) and the actual screen item value of the test specification data D2 (D32) for each Web screen on the same Web screen of the same test case TCi. May be determined to match the expected value of the screen item and the actual value of the screen item. If they match, it is determined that the program that calls the Web screen (business logic 1015) does not display a bug.

設定部5218は、判断部5217によって不一致と判断された場合、テスト仕様書データD1,D2(D31,D32)内のそのセッション情報を強調表示する設定をおこなう機能を有する。具体的には、たとえば、そのセッション情報の文字サイズや色、フォントを他の一致する情報とは異なるようにタグに指定する。また、画面項目期待値と画面項目実績値とが不一致である場合も同様に強調表示設定することとしてもよい。なお、テスト仕様書データD1,D2のうち少なくともいずれか一方に対して強調表示設定すればよい。   The setting unit 5218 has a function of performing a setting to highlight the session information in the test specification data D1, D2 (D31, D32) when the determination unit 5217 determines that there is a mismatch. Specifically, for example, the character size, color, and font of the session information are specified in the tag so as to be different from other matching information. Further, when the screen item expected value and the screen item actual value do not coincide with each other, the highlighting may be set similarly. Note that highlighting may be set for at least one of the test specification data D1 and D2.

出力部5219は、設定部5218によって設定された第1または/および第2のテスト仕様書データを出力する機能を有する。具体的には、たとえば、セッション情報や画面項目期待値、画面項目実績値に対して強調表示設定されたテスト仕様書データD1,D2(D31,D32)を画面に表示したり、印刷出力したり、他の装置に送信したりする。   The output unit 5219 has a function of outputting the first or / and second test specification data set by the setting unit 5218. Specifically, for example, the test specification data D1, D2 (D31, D32) highlighted for the session information, the expected screen item value, and the actual screen item value are displayed on the screen or printed out. Or send to other devices.

また、決定部5220は、判断部5217によって判断された判断結果に基づいて、セッション情報に関連付けられているWeb画面をバグ位置に決定する機能を有する。具体的には、たとえば、テスト仕様書データD1(D31)において特定されたセッション情報とテスト仕様書データD2(D32)において特定されたセッション情報が一致する場合、そのセッション情報に関連付けられているWeb画面を呼び出すプログラム(ビジネスロジック1015)には、バグがないこととなる。   The determination unit 5220 has a function of determining the Web screen associated with the session information as a bug position based on the determination result determined by the determination unit 5217. Specifically, for example, when the session information specified in the test specification data D1 (D31) matches the session information specified in the test specification data D2 (D32), the Web associated with the session information The program that calls the screen (business logic 1015) has no bug.

一方、不一致の場合、そのセッション情報に関連付けられているWeb画面を呼び出すプログラム(ビジネスロジック1015)には、バグがあるか、それ以前に実行されるプログラムに影響されている可能性がある。したがって、不一致と判断された一連のWeb画面群のうち最初に呼び出されるWeb画面をバグ位置に決定する。これにより、バグ位置に決定されたWeb画面を呼び出すプログラム(ビジネスロジック1015)にバグがあることがわかる。   On the other hand, if they do not match, the program (business logic 1015) that calls the Web screen associated with the session information may have a bug or be affected by a program executed before that. Therefore, the web screen that is first called out of the series of web screen groups determined to be inconsistent is determined as the bug position. Thereby, it can be seen that there is a bug in the program (business logic 1015) that calls the Web screen determined at the bug position.

たとえば、図9のテスト仕様書データD1(D31)と図22のテスト仕様書データD2(D32)を比較すると、テストケースTC1において、セッション期待値とセッション実績値とが不一致なWeb画面は、性別入力画面103と厄年表示画面105である。このWeb画面群のうち最初に呼び出されるWeb画面は、性別入力画面103であるため、性別入力画面103がバグ位置に決定される。したがって、性別入力画面103を呼び出す和暦→西暦変換プログラム102にバグがあることがわかる。   For example, when the test specification data D1 (D31) in FIG. 9 and the test specification data D2 (D32) in FIG. 22 are compared, in the test case TC1, the Web screen in which the session expected value and the session actual value do not match is An input screen 103 and a troubled year display screen 105. Since the first web screen called out of the web screen group is the gender input screen 103, the gender input screen 103 is determined as the bug position. Therefore, it can be seen that there is a bug in the Japanese calendar → Western calendar conversion program 102 that calls the gender input screen 103.

また、同一テストケースTCiの同一Web画面におけるテスト仕様書データD1(D31)の画面項目期待値とテスト仕様書データD2(D32)の画面項目実績値とが不一致である場合、そのWeb画面が、不一致と判断された一連のWeb画面群のうち最初に呼び出されるWeb画面と同一画面であるか否かを判断する。そして、同一画面でない場合、テスト仕様書データD1(D31)の画面項目期待値とテスト仕様書データD2(D32)の画面項目実績値とが不一致となったWeb画面をバグ表示位置に決定する。   When the expected screen item value of the test specification data D1 (D31) and the actual screen item value of the test specification data D2 (D32) on the same Web screen of the same test case TCi do not match, It is determined whether or not it is the same screen as the Web screen that is first called out of a series of Web screen groups determined to be inconsistent. If the screens are not the same, the Web screen in which the expected screen item value of the test specification data D1 (D31) and the actual screen item value of the test specification data D2 (D32) do not match is determined as the bug display position.

たとえば、図9のテスト仕様書データD1(D31)と図22のテスト仕様書データD2(D32)を比較すると、テストケースTC1において、画面項目期待値と画面項目実績値とが不一致なWeb画面は、厄年表示画面105である。一方、セッション期待値とセッション実績値とが不一致なWeb画面は、性別入力画面103と厄年表示画面105である。このWeb画面群のうち最初に呼び出されるWeb画面は、性別入力画面103であるため、厄年表示画面105と一致しない。したがって、厄年表示画面105がバグ表示位置に決定される。   For example, when the test specification data D1 (D31) in FIG. 9 and the test specification data D2 (D32) in FIG. 22 are compared, in the test case TC1, the Web screen in which the expected screen item value and the actual screen item value do not match. This is a troubled year display screen 105. On the other hand, the web screen in which the session expected value and the session actual value do not match is the gender input screen 103 and the troubled year display screen 105. The web screen that is called first in the web screen group is the gender input screen 103 and therefore does not match the troubled year display screen 105. Therefore, the bad year display screen 105 is determined as the bug display position.

具体的には、たとえば、バグ位置やバグ表示位置に決定されたWeb画面をWebブラウザ1021を介して表示する。また、上述した設定部5218により、テスト仕様書データD1において、バグ位置に決定された画面項目期待値やセッション情報を強調表示設定することとしてもよい。また、テスト仕様書データD2(D32)において、バグ位置に決定された画面項目実績値やセッション情報を強調表示設定することとしてもよい。   Specifically, for example, a Web screen determined as a bug position or a bug display position is displayed via the Web browser 1021. Further, the setting unit 5218 described above may highlight and set the expected screen item value or session information determined at the bug position in the test specification data D1. Further, in the test specification data D2 (D32), the screen item result value or the session information determined at the bug position may be highlighted and set.

この場合、出力部5219は、決定部5220による決定結果を出力する。具体的には、たとえば、バグ位置に決定されたWeb画面を表示したり、印刷出力したり、他の装置に送信したりする。また、強調表示設定された場合、セッション情報や画面項目期待値、画面項目実績値に対して強調表示設定されたテスト仕様書データD1,D2(D31,D32)を画面に表示したり、印刷出力したり、他の装置に送信したりする。   In this case, the output unit 5219 outputs the determination result by the determination unit 5220. Specifically, for example, a Web screen determined as a bug position is displayed, printed out, or transmitted to another device. When the highlighting is set, the test specification data D1, D2 (D31, D32) highlighted for the session information, the screen item expected value, and the screen item actual value are displayed on the screen or printed out. Or send to other devices.

以上のことから、実施の形態1によれば、バグを検出した際のプログラム上のバグ発生箇所の発見時間を短縮することができる。したがって、バグの修正にかかる全体の時間も短縮することができ、開発サイクルの短縮化やソフトウェア開発全般の工期工数の低減を図ることができる。また、実施の形態2によれば、バグとは無関係のプログラム(ビジネスロジック1015)をバグと診断してしまう誤診断を防止することができ、診断精度の向上を図ることができる。また、実施の形態3によれば、バグの位置をより詳細に特定することができるため、バグの修正にかかる時間をさらに短縮することができる。   From the above, according to the first embodiment, it is possible to reduce the time for finding a bug occurrence location on a program when a bug is detected. Therefore, it is possible to shorten the overall time required for bug correction, shorten the development cycle, and reduce the work period for the entire software development. Further, according to the second embodiment, it is possible to prevent a misdiagnosis that diagnoses a program (business logic 1015) unrelated to a bug as a bug, and to improve the diagnosis accuracy. Further, according to the third embodiment, since the position of the bug can be specified in more detail, the time required for correcting the bug can be further shortened.

なお、本実施の形態で説明したコンピュータ方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な媒体であってもよい。   The computer method described in this embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation. This program is recorded on a computer-readable recording medium such as a hard disk, a flexible disk, a CD-ROM, an MO, and a DVD, and is executed by being read from the recording medium by the computer. The program may be a medium that can be distributed through a network such as the Internet.

上述した実施の形態に関し、さらに以下の付記を開示する。   The following additional notes are disclosed with respect to the embodiment described above.

(付記1)一連のプログラム群を含むWebアプリケーションがインストールされているWebサーバを、
前記Webアプリケーションのテストケースに含まれている一連の画面遷移仕様の中から選ばれた画面遷移仕様のWeb画面を要求するリクエストをクライアントから受信する受信手段、
前記受信手段によって受信されたリクエストに基づいて、前記プログラム群のうち前記Web画面を呼び出すプログラムを実行して、前記Web画面に表示させる画面項目に関する出力値と前記プログラムに関する出力値およびその属性とを出力する実行手段、
前記実行手段によって出力された前記プログラムに関する出力値およびその属性をセッション情報として記憶領域に保存する保存手段、
前記実行手段によって出力された画面項目に関する出力値が埋め込まれた前記Web画面に関するレスポンスを生成する生成手段、
前記生成手段によって生成された前記Web画面に関するレスポンスに、前記保存手段によって前記記憶領域に保存されたセッション情報を挿入する挿入手段、
前記挿入手段によって前記セッション情報が挿入された前記Web画面に関するレスポンスを前記クライアントに送信する送信手段、
として機能させることを特徴とするWebアプリケーション検査プログラム。
(Supplementary note 1) A Web server on which a Web application including a series of programs is installed.
Receiving means for receiving a request for requesting a Web screen of a screen transition specification selected from a series of screen transition specifications included in a test case of the Web application from a client;
Based on the request received by the receiving means, a program that calls the Web screen in the program group is executed, an output value related to a screen item to be displayed on the Web screen, an output value related to the program, and an attribute thereof Execution means to output,
A storage unit that stores an output value related to the program output by the execution unit and its attribute in a storage area as session information;
Generating means for generating a response relating to the Web screen in which an output value relating to the screen item output by the executing means is embedded;
Inserting means for inserting the session information stored in the storage area by the storing means into the response relating to the Web screen generated by the generating means;
Transmitting means for transmitting a response regarding the Web screen into which the session information has been inserted by the inserting means to the client;
Web application inspection program characterized by causing it to function as

(付記2)前記保存手段は、
前記プログラムに関する出力値を、前記プログラムのつぎに実行されるプログラムに入力されるセッション情報として前記記憶領域に保存することを特徴とする付記1に記載のWebアプリケーション検査プログラム。
(Appendix 2) The storage means includes
The Web application inspection program according to appendix 1, wherein an output value related to the program is stored in the storage area as session information input to a program executed next to the program.

(付記3)前記保存手段は、
前記プログラム中の実行位置を特定する情報を前記プログラムに関する出力値およびその属性とともに前記セッション情報として前記記憶領域に保存することを特徴とする付記1または2に記載のWebアプリケーション検査プログラム。
(Supplementary Note 3) The storage means includes
The Web application inspection program according to appendix 1 or 2, wherein information for specifying an execution position in the program is stored in the storage area as the session information together with an output value and an attribute related to the program.

(付記4)前記挿入手段は、
前記クライアントのWebブラウザにおいて前記Web画面に表示不能な形式で前記セッション情報を前記Web画面に関するレスポンスに挿入することを特徴とする付記1〜3のいずれか一つに記載のWebアプリケーション検査プログラム。
(Supplementary Note 4) The insertion means includes
The Web application inspection program according to any one of appendices 1 to 3, wherein the session information is inserted into a response related to the Web screen in a format that cannot be displayed on the Web screen in the Web browser of the client.

(付記5)前記Webサーバを、
前記セッション情報の前記Web画面に関するレスポンスへの挿入の可否を判定する判定手段として機能させ、
前記挿入手段は、
前記判定手段によって判定された判定結果に基づいて、前記Web画面に関するレスポンスに前記セッション情報を挿入することを特徴とする付記1〜4のいずれか一つに記載のWebアプリケーション検査プログラム。
(Supplementary note 5)
Function as a determination unit that determines whether or not the session information can be inserted into a response related to the Web screen;
The insertion means includes
The Web application inspection program according to any one of Supplementary notes 1 to 4, wherein the session information is inserted into a response related to the Web screen based on a determination result determined by the determination unit.

(付記6)一連のプログラム群を含むWebアプリケーションがインストールされているテスト実行装置であって、
前記Webアプリケーションのテストケースに含まれている一連の画面遷移仕様の中から選ばれた画面遷移仕様のWeb画面を要求するリクエストをクライアントから受信する受信手段と、
前記受信手段によって受信されたリクエストに基づいて、前記プログラム群のうち前記Web画面を呼び出すプログラムを実行して、前記Web画面に表示させる画面項目に関する出力値と前記プログラムに関する出力値およびその属性とを出力する実行手段と、
前記実行手段によって出力された前記プログラムに関する出力値およびその属性をセッション情報として記憶領域に保存する保存手段と、
前記実行手段によって出力された画面項目に関する出力値が埋め込まれた前記Web画面に関するレスポンスを生成する生成手段と、
前記生成手段によって生成された前記Web画面に関するレスポンスに、前記保存手段によって前記記憶領域に保存されたセッション情報を挿入する挿入手段と、
前記挿入手段によって前記セッション情報が挿入された前記Web画面に関するレスポンスを前記クライアントに送信する送信手段と、
を備えることを特徴とするテスト実行装置。
(付記7)一連のプログラム群を含むWebアプリケーションがインストールされているWebサーバが、
前記Webアプリケーションのテストケースに含まれている一連の画面遷移仕様の中から選ばれた画面遷移仕様のWeb画面を要求するリクエストをクライアントから受信する受信工程と、
前記受信工程によって受信されたリクエストに基づいて、前記プログラム群のうち前記Web画面を呼び出すプログラムを実行して、前記Web画面に表示させる画面項目に関する出力値と前記プログラムに関する出力値およびその属性とを出力する実行工程と、
前記実行工程によって出力された前記プログラムに関する出力値およびその属性をセッション情報として記憶領域に保存する保存工程と、
前記実行工程によって出力された画面項目に関する出力値が埋め込まれた前記Web画面に関するレスポンスを生成する生成工程と、
前記生成工程によって生成された前記Web画面に関するレスポンスに、前記保存工程によって前記記憶領域に保存されたセッション情報を挿入する挿入工程と、
前記挿入工程によって前記セッション情報が挿入された前記Web画面に関するレスポンスを前記クライアントに送信する送信工程と、
を実行することを特徴とするテスト実行方法。
(Supplementary Note 6) A test execution apparatus in which a Web application including a series of programs is installed,
Receiving means for receiving a request for requesting a Web screen of a screen transition specification selected from a series of screen transition specifications included in a test case of the Web application from a client;
Based on the request received by the receiving means, a program that calls the Web screen in the program group is executed, an output value related to a screen item to be displayed on the Web screen, an output value related to the program, and an attribute thereof Execution means for outputting;
A storage unit that stores an output value related to the program output by the execution unit and its attribute in a storage area as session information;
Generating means for generating a response related to the Web screen in which an output value related to the screen item output by the executing means is embedded;
Inserting means for inserting session information stored in the storage area by the storing means into the response relating to the Web screen generated by the generating means;
Transmitting means for transmitting a response regarding the Web screen in which the session information is inserted by the inserting means to the client;
A test execution device comprising:
(Appendix 7) A web server on which a web application including a series of programs is installed is
A receiving step of receiving, from a client, a request for requesting a Web screen of a screen transition specification selected from a series of screen transition specifications included in the test case of the Web application;
Based on the request received by the receiving step, the program that calls the Web screen in the program group is executed, and an output value related to a screen item to be displayed on the Web screen, an output value related to the program, and an attribute thereof are displayed. Execution process to output;
A storage step of storing the output value and the attribute of the program output by the execution step in a storage area as session information;
A generation step of generating a response related to the Web screen in which an output value related to the screen item output in the execution step is embedded;
An insertion step of inserting the session information stored in the storage area by the storage step into the response relating to the Web screen generated by the generation step;
A transmission step of transmitting a response related to the Web screen into which the session information has been inserted by the insertion step to the client;
The test execution method characterized by performing.

厄年表示プログラムの画面および処理の遷移を示す画面処理遷移図である。It is a screen process transition diagram which shows the transition of the screen of a bad year display program, and a process. 厄年表示プログラムのソースコードを示す説明図である。It is explanatory drawing which shows the source code of a bad year display program. 実施の形態1にかかるWebアプリケーション検査システムの概略構成を示す説明図である。1 is an explanatory diagram illustrating a schematic configuration of a Web application inspection system according to a first embodiment; 実施の形態1にかかるコンピュータ装置のハードウェア構成を示すブロック図である。1 is a block diagram illustrating a hardware configuration of a computer device according to a first embodiment; 初回テスト用のテスト仕様書データのデータ構造を示す説明図である。It is explanatory drawing which shows the data structure of the test specification data for initial tests. 生年月日入力画面の画面例を示す説明図である。It is explanatory drawing which shows the example of a screen of a birth date input screen. 性別入力画面の画面例を示す説明図である。It is explanatory drawing which shows the example of a screen of a sex input screen. 厄年表示画面の画面例を示す説明図である。It is explanatory drawing which shows the example of a screen of a bad year display screen. 初回テスト済みのテスト仕様書データを示す説明図である。It is explanatory drawing which shows the test specification data after the first test. 各コンピュータ装置の詳細な内部構成を示すブロック図である。It is a block diagram which shows the detailed internal structure of each computer apparatus. セッションオブジェクトを示す説明図である。It is explanatory drawing which shows a session object. Webサーバのシーケンスを示すシーケンス図である。It is a sequence diagram which shows the sequence of a web server. WebサーバによるWebアプリケーション実行処理内容(その1)を示す説明図である。It is explanatory drawing which shows the web application execution processing content (the 1) by a web server. WebサーバによるWebアプリケーション実行処理内容(その2)を示す説明図である。It is explanatory drawing which shows the web application execution processing content (the 2) by a web server. Webアプリケーションの実行結果を示す説明図である。It is explanatory drawing which shows the execution result of a Web application. セッション情報取得処理の詳細な処理手順を示すフローチャートである。It is a flowchart which shows the detailed process sequence of a session information acquisition process. セッション情報付きレスポンスHTMLの一例を示す説明図である。It is explanatory drawing which shows an example of the response HTML with session information. クライアントによる初回テスト時におけるテスト仕様書作成処理手順を示すフローチャートである。It is a flowchart which shows the test specification creation process procedure at the time of the first test by a client. テストケースの期待値情報書き込み処理の具体的な処理手順を示すフローチャートである。It is a flowchart which shows the specific process sequence of the expected value information write process of a test case. 期待値情報抽出処理の詳細な処理手順を示すフローチャートである。It is a flowchart which shows the detailed process sequence of an expected value information extraction process. リグレッションテスト用のテスト仕様書データを示す説明図である。It is explanatory drawing which shows the test specification data for a regression test. リグレッションテスト時における自動作成後のテスト仕様書データを示す説明図である。It is explanatory drawing which shows the test specification data after the automatic preparation at the time of a regression test. クライアントによるリグレッションテスト時におけるテスト仕様書作成処理手順を示すフローチャートである。It is a flowchart which shows the test specification creation process procedure at the time of the regression test by a client. テストケースの実績値情報書き込み処理の具体的な処理手順を示すフローチャートである。It is a flowchart which shows the specific process sequence of the performance value information write-in process of a test case. 実績値情報抽出処理の詳細な処理手順を示すフローチャートである。It is a flowchart which shows the detailed process sequence of a performance value information extraction process. 初回テスト用のテスト仕様書データとの比較後のリグレッションテスト用のテスト仕様書データを示す説明図である。It is explanatory drawing which shows the test specification data for a regression test after the comparison with the test specification data for initial tests. バグ位置特定処理手順(その1)を示すフローチャートである。It is a flowchart which shows a bug position specific process procedure (the 1). バグ位置特定処理手順(その2)を示すフローチャート(前半)である。It is a flowchart (the first half) which shows a bug position specific process procedure (the 2). バグ位置特定処理手順(その2)を示すフローチャート(後半)である。It is a flowchart (second half) which shows a bug position specific process procedure (the 2). セッションオブジェクトに情報を記録するためのプログラムを示す説明図である。It is explanatory drawing which shows the program for recording information on a session object. JavaBeanのソースコード例(その1)を示す説明図である。It is explanatory drawing which shows the source code example (the 1) of JavaBean. JavaBeanのソースコード例(その2)を示す説明図である。It is explanatory drawing which shows the source code example (the 2) of JavaBean. 実施の形態2にかかるセッション情報取得エンジンによるセッション情報取得処理手順(前半)を示すフローチャートである。10 is a flowchart showing a session information acquisition processing procedure (first half) by the session information acquisition engine according to the second embodiment; 実施の形態2にかかるセッション情報取得エンジンによるセッション情報取得処理手順(後半)を示すフローチャートである。10 is a flowchart showing a session information acquisition processing procedure (second half) by the session information acquisition engine according to the second embodiment; Webアプリケーションを実行する際のシーケンス図である。It is a sequence diagram at the time of executing a Web application. Webアプリケーションを実行する際のシーケンス図である。It is a sequence diagram at the time of executing a Web application. アスペクトの動作処理手順を示すフローチャートである。It is a flowchart which shows the operation processing procedure of an aspect. 実施の形態3にかかるセッション情報付きレスポンスHTMLの一例を示す説明図である。It is explanatory drawing which shows an example of the response HTML with session information concerning Embodiment 3. FIG. 実施の形態3にかかるセッション情報取得エンジンによるセッション情報取得処理手順を示すフローチャートである。10 is a flowchart showing a session information acquisition processing procedure by the session information acquisition engine according to the third embodiment; 実施の形態3にかかるセッション情報取得エンジンによるセッション情報取得処理手順(前半)を示すフローチャートである。10 is a flowchart showing a session information acquisition processing procedure (first half) by a session information acquisition engine according to a third embodiment; 実施の形態3にかかるセッション情報取得エンジンによるセッション情報取得処理手順(後半)を示すフローチャートである。14 is a flowchart showing a session information acquisition processing procedure (second half) by the session information acquisition engine according to the third embodiment; 実施の形態3にかかる初回テスト用のテスト仕様書データのデータ構造を示す説明図である。FIG. 10 is an explanatory diagram showing a data structure of test specification data for an initial test according to a third embodiment; 実施の形態3にかかる初回テスト実行済みのテスト仕様書データのデータ構造を示す説明図である。FIG. 10 is an explanatory diagram illustrating a data structure of test specification data that has been subjected to an initial test according to a third embodiment; 実施の形態3にかかる期待値情報抽出処理の詳細な処理手順を示すフローチャートである。10 is a flowchart illustrating a detailed processing procedure of expected value information extraction processing according to the third exemplary embodiment; 実施の形態3にかかるリグレッションテスト用のテスト仕様書データのデータ構造を示す説明図である。FIG. 10 is an explanatory diagram showing a data structure of test specification data for a regression test according to a third embodiment; 実施の形態3にかかるリグレッションテスト実行済みのテスト仕様書データD32のデータ構造を示す説明図である。It is explanatory drawing which shows the data structure of the test specification data D32 which has been subjected to the regression test concerning Embodiment 3. 実施の形態3にかかる実績値情報抽出処理の詳細な処理手順を示すフローチャートである。14 is a flowchart showing a detailed processing procedure of performance value information extraction processing according to the third exemplary embodiment; 実施の形態3にかかるバグ位置特定処理手順を示すフローチャートである。10 is a flowchart showing a bug position specifying process procedure according to the third embodiment; バグ位置特定処理後のテスト仕様書データのデータ構造を示す説明図である。It is explanatory drawing which shows the data structure of the test specification data after a bug position specific process. 静的解析との組み合わせを説明するためのプログラムのソースコードを示す説明図である。It is explanatory drawing which shows the source code of the program for demonstrating the combination with a static analysis. 静的解析を適用した場合のバグ位置特定処理手順を示すフローチャートである。It is a flowchart which shows the bug position specific process sequence at the time of applying a static analysis. 実施の形態1〜3にかかるWebアプリケーション検査システムの機能的構成を示すブロック図である。It is a block diagram which shows the functional structure of the Web application inspection system concerning Embodiment 1-3.

符号の説明Explanation of symbols

100 厄年表示プログラム
101 生年月日入力画面
102 和暦→西暦変換プログラム
103 性別入力画面
104 厄年計算プログラム
105 厄年表示画面
300 Webアプリケーション検査システム
301 Webサーバ
302 クライアント
1018 セッション情報取得エンジン
1100 セッションオブジェクト
D1,D2,D31,D32 テスト仕様書データ
1700,3800 セッション情報付きレスポンスHTML
5201 通信部
5202 実行部
5203 保存部
5204 生成部
5205 挿入部
5211 受付部
5212 取得部
5213 抽出部
5214 書き込み部
5215 読み込み部
5216 特定部
5217 判断部
5218 設定部
5219 出力部
5220 決定部
DESCRIPTION OF SYMBOLS 100 Bad year display program 101 Date of birth input screen 102 Japanese calendar-to-West calendar conversion program 103 Gender input screen 104 Bad year calculation program 105 Bad year display screen 300 Web application inspection system 301 Web server 302 Client 1018 Session information acquisition engine 1100 Session object D1, D2 , D31, D32 Test specification data 1700, 3800 Response HTML with session information
5201 Communication unit 5202 Execution unit 5203 Storage unit 5204 Generation unit 5205 Insertion unit 5211 Reception unit 5212 Acquisition unit 5213 Extraction unit 5214 Writing unit 5215 Reading unit 5216 Determination unit 5217 Determination unit 5218 Setting unit 5219 Output unit 5220 Determination unit

Claims (5)

一連のプログラム群を含むWebアプリケーションがインストールされているWebサーバを、
前記Webアプリケーションのテストケースに含まれている一連の画面遷移仕様の中から選ばれた画面遷移仕様のWeb画面を要求するリクエストをクライアントから受信する受信手段、
前記受信手段によって受信されたリクエストに基づいて、前記プログラム群のうち前記Web画面を呼び出すプログラムを実行して、前記Web画面に表示させる画面項目に関する出力値と前記プログラムに関する出力値およびその属性とを出力する実行手段、
前記実行手段によって出力された前記プログラムに関する出力値およびその属性と、前記プログラム中の実行位置を特定する情報と、をセッション情報として記憶領域に保存する保存手段、
前記実行手段によって出力された画面項目に関する出力値が埋め込まれた前記Web画面に関するレスポンスを生成する生成手段、
前記生成手段によって生成された前記Web画面に関するレスポンスに、前記保存手段によって前記記憶領域に保存されたセッション情報を挿入する挿入手段、
前記挿入手段によって前記セッション情報が挿入された前記Web画面に関するレスポンスを前記クライアントに送信する送信手段、
として機能させることを特徴とするWebアプリケーション検査プログラム。
A web server on which a web application including a series of programs is installed
Receiving means for receiving a request for requesting a Web screen of a screen transition specification selected from a series of screen transition specifications included in a test case of the Web application from a client;
Based on the request received by the receiving means, a program that calls the Web screen in the program group is executed, an output value related to a screen item to be displayed on the Web screen, an output value related to the program, and an attribute thereof Execution means to output,
Storage means for storing , as session information , an output value and its attribute relating to the program output by the execution means and information for specifying an execution position in the program ;
Generating means for generating a response relating to the Web screen in which an output value relating to the screen item output by the executing means is embedded;
Inserting means for inserting the session information stored in the storage area by the storing means into the response relating to the Web screen generated by the generating means;
Transmitting means for transmitting a response regarding the Web screen into which the session information has been inserted by the inserting means to the client;
Web application inspection program characterized by causing it to function as
前記保存手段は、
前記プログラムに関する出力値を、前記プログラムのつぎに実行されるプログラムに入力されるセッション情報として前記記憶領域に保存することを特徴とする請求項1に記載のWebアプリケーション検査プログラム。
The storage means includes
The Web application inspection program according to claim 1, wherein an output value related to the program is stored in the storage area as session information input to a program executed next to the program.
前記挿入手段は、
前記クライアントのWebブラウザにおいて前記Web画面に表示不能な形式で前記セッション情報を前記Web画面に関するレスポンスに挿入することを特徴とする請求項1または2に記載のWebアプリケーション検査プログラム。
The insertion means includes
3. The Web application inspection program according to claim 1, wherein the session information is inserted into a response relating to the Web screen in a format that cannot be displayed on the Web screen in the Web browser of the client.
一連のプログラム群を含むWebアプリケーションがインストールされているテスト実行装置であって、
前記Webアプリケーションのテストケースに含まれている一連の画面遷移仕様の中から選ばれた画面遷移仕様のWeb画面を要求するリクエストをクライアントから受信する受信手段と、
前記受信手段によって受信されたリクエストに基づいて、前記プログラム群のうち前記Web画面を呼び出すプログラムを実行して、前記Web画面に表示させる画面項目に関する出力値と前記プログラムに関する出力値およびその属性とを出力する実行手段と、
前記実行手段によって出力された前記プログラムに関する出力値およびその属性と、前記プログラム中の実行位置を特定する情報と、をセッション情報として記憶領域に保存する保存手段と、
前記実行手段によって出力された画面項目に関する出力値が埋め込まれた前記Web画面に関するレスポンスを生成する生成手段と、
前記生成手段によって生成された前記Web画面に関するレスポンスに、前記保存手段によって前記記憶領域に保存されたセッション情報を挿入する挿入手段と、
前記挿入手段によって前記セッション情報が挿入された前記Web画面に関するレスポンスを前記クライアントに送信する送信手段と、
を備えることを特徴とするテスト実行装置。
A test execution device in which a web application including a series of programs is installed,
Receiving means for receiving a request for requesting a Web screen of a screen transition specification selected from a series of screen transition specifications included in a test case of the Web application from a client;
Based on the request received by the receiving means, a program that calls the Web screen in the program group is executed, an output value related to a screen item to be displayed on the Web screen, an output value related to the program, and an attribute thereof Execution means for outputting;
Storage means for storing in the storage area as session information , an output value related to the program output by the execution means and its attributes, and information for specifying an execution position in the program ;
Generating means for generating a response related to the Web screen in which an output value related to the screen item output by the executing means is embedded;
Inserting means for inserting session information stored in the storage area by the storing means into the response relating to the Web screen generated by the generating means;
Transmitting means for transmitting a response regarding the Web screen in which the session information is inserted by the inserting means to the client;
A test execution device comprising:
一連のプログラム群を含むWebアプリケーションがインストールされているWebサーバが、
前記Webアプリケーションのテストケースに含まれている一連の画面遷移仕様の中から選ばれた画面遷移仕様のWeb画面を要求するリクエストをクライアントから受信する受信工程と、
前記受信工程によって受信されたリクエストに基づいて、前記プログラム群のうち前記Web画面を呼び出すプログラムを実行して、前記Web画面に表示させる画面項目に関する出力値と前記プログラムに関する出力値およびその属性とを出力する実行工程と、
前記実行工程によって出力された前記プログラムに関する出力値およびその属性と、前記プログラム中の実行位置を特定する情報と、をセッション情報として記憶領域に保存する保存工程と、
前記実行工程によって出力された画面項目に関する出力値が埋め込まれた前記Web画面に関するレスポンスを生成する生成工程と、
前記生成工程によって生成された前記Web画面に関するレスポンスに、前記保存工程によって前記記憶領域に保存されたセッション情報を挿入する挿入工程と、
前記挿入工程によって前記セッション情報が挿入された前記Web画面に関するレスポンスを前記クライアントに送信する送信工程と、
を実行することを特徴とするテスト実行方法。
A web server on which a web application including a series of programs is installed is
A receiving step of receiving, from a client, a request for requesting a Web screen of a screen transition specification selected from a series of screen transition specifications included in the test case of the Web application;
Based on the request received by the receiving step, the program that calls the Web screen in the program group is executed, and an output value related to a screen item to be displayed on the Web screen, an output value related to the program, and an attribute thereof are displayed. Execution process to output;
An output value related to the program output by the execution step and the attribute thereof, information for specifying an execution position in the program, and a storage step for storing the session information as a storage area;
A generation step of generating a response related to the Web screen in which an output value related to the screen item output in the execution step is embedded;
An insertion step of inserting the session information stored in the storage area by the storage step into the response relating to the Web screen generated by the generation step;
A transmission step of transmitting a response related to the Web screen into which the session information has been inserted by the insertion step to the client;
The test execution method characterized by performing.
JP2008184120A 2008-07-15 2008-07-15 Web application inspection program, test execution device, and test execution method Expired - Fee Related JP5200719B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008184120A JP5200719B2 (en) 2008-07-15 2008-07-15 Web application inspection program, test execution device, and test execution method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008184120A JP5200719B2 (en) 2008-07-15 2008-07-15 Web application inspection program, test execution device, and test execution method

Publications (2)

Publication Number Publication Date
JP2010026600A JP2010026600A (en) 2010-02-04
JP5200719B2 true JP5200719B2 (en) 2013-06-05

Family

ID=41732406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008184120A Expired - Fee Related JP5200719B2 (en) 2008-07-15 2008-07-15 Web application inspection program, test execution device, and test execution method

Country Status (1)

Country Link
JP (1) JP5200719B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6224022B2 (en) * 2015-03-25 2017-11-01 ビッグローブ株式会社 Security diagnostic apparatus, system, method and program
US10133657B2 (en) * 2016-02-23 2018-11-20 Fujitsu Limited Textual similarity based software program repair

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003150549A (en) * 2001-11-14 2003-05-23 Nippon Telegraph & Telephone East Corp Trace information acquisition display / verification system and method
JP4488700B2 (en) * 2003-08-22 2010-06-23 キヤノンソフトウェア株式会社 PROGRAM GENERATION DEVICE, PROGRAM GENERATION METHOD, AND PROGRAM
JP2007213510A (en) * 2006-02-13 2007-08-23 Canon Inc Client device and interface presentation method
JP2007272689A (en) * 2006-03-31 2007-10-18 Softbank Telecom Corp Online storage authentication system, online storage authentication method, and online storage authentication program
JP4961949B2 (en) * 2006-10-30 2012-06-27 富士通株式会社 Generation program, inspection program, generation apparatus, and generation method

Also Published As

Publication number Publication date
JP2010026600A (en) 2010-02-04

Similar Documents

Publication Publication Date Title
Leotta et al. ROBULA+: An algorithm for generating robust XPath locators for web testing
US7069501B2 (en) Structured document processing system and structured document processing method
JP4899971B2 (en) Test specification creation program, test specification creation device, and test specification creation method
US8219901B2 (en) Method and device for filtering elements of a structured document on the basis of an expression
JP4951416B2 (en) Program verification method and program verification apparatus
JP7551203B1 (en) Information processing device, information processing method, and information processing program
Abowd et al. MORALE. Mission ORiented Architectural Legacy Evolution
CN117724686B (en) Visual generation method and device for XML-based design verification code
JP5067317B2 (en) Verification support program, verification support apparatus, and verification support method
Quéval et al. Extracting the architecture of microservices: An approach for explainability and traceability
JP5200719B2 (en) Web application inspection program, test execution device, and test execution method
Kanagal LLM-Powered EDA Log Analysis for Effective Design Debugging
JP5576570B2 (en) Method, program and system for generating a workflow from business specifications
CN118760581A (en) Link detection method, link detection device, equipment and medium
Xiong et al. TableCanoniser: Interactive Grammar-Powered Transformation of Messy, Non-Relational Tables to Canonical Tables
CN115470152A (en) Test code generation method, test code generation device, and storage medium
CN120123213B (en) A browser page compatibility testing system based on DOM tree
CN119336408B (en) Interface configuration method, device and storage medium
Simko et al. Verifying temporal properties of use-cases in natural language
Filipovikj Automated approaches for formal verification of embedded systems artifacts
EP3657761A1 (en) Testing of web-based processes
Havelund et al. On monitoring linear temporal properties
Holmbäck Accurately extracting information from a finite set of different report categories and formats
Granda et al. A metrics-driven inspection framework for model transformations
CN121277503A (en) Rendering method and system of Web page server

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110418

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121016

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121217

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130128

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160222

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees