JP6367721B2 - テストシナリオを用いたテスト装置および方法 - Google Patents

テストシナリオを用いたテスト装置および方法 Download PDF

Info

Publication number
JP6367721B2
JP6367721B2 JP2015008683A JP2015008683A JP6367721B2 JP 6367721 B2 JP6367721 B2 JP 6367721B2 JP 2015008683 A JP2015008683 A JP 2015008683A JP 2015008683 A JP2015008683 A JP 2015008683A JP 6367721 B2 JP6367721 B2 JP 6367721B2
Authority
JP
Japan
Prior art keywords
test
information
input
http request
input 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
JP2015008683A
Other languages
English (en)
Other versions
JP2016134020A (ja
Inventor
大二郎 村田
大二郎 村田
昭裕 長井
昭裕 長井
前岡 淳
淳 前岡
三部 良太
良太 三部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2015008683A priority Critical patent/JP6367721B2/ja
Publication of JP2016134020A publication Critical patent/JP2016134020A/ja
Application granted granted Critical
Publication of JP6367721B2 publication Critical patent/JP6367721B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、バージョンアップした情報システムをテストする、テストシナリオを用いたテスト装置および方法に関する。
クライアントとサーバとをネットワークを介して接続した情報システムのバージョンアップが頻繁に実施されている。バージョンアップした情報システムのテスト用サーバのテストのために、バージョンアップ前の実運用サーバから、テスト用サーバに実運用のhttpリクエストを転送する技術が特許文献1に開示されている。
特許第5308196号公報
特許文献1の技術は、テスト用サーバが実運用のhttpリクエストに対応した負荷テストを実行するので、テスト用のhttpリクエストを用意する必要がない。しかしながら、負荷テストに用いるhttpリクエストの種類や頻度は実運用の範囲内である。
テスト用サーバのバージョンアップに対しては、負荷テストに限らず、情報処理システムに課せられた処理の正しさも保証する必要がある。たとえば、テスト用サーバのある処理において、1〜5のいずれかの一つの数値入力を許容するとき、許容範囲外の6がクライアントから入力された場合に、入力誤りや再入力を促すメッセージなどをクライアントに画面出力する必要がある。実運用の範囲内のhttpリクエストを用いると、許容範囲外の入力が偶然にはあり得るが、明確な形(確実にテストケースとして実行し、その結果が情報システムの仕様に則していたという確認)のテストの実行とは言えない。すなわち、実運用の範囲外も含めたhttpリクエストをテストのために用意する必要が生じる。
開示するテストシナリオを用いたテスト装置は、入力装置からの入力情報をフックし、フックした入力情報を送信する入力情報処理部、及び、入力装置からの入力情報に対応したhttpリクエストを送信する運用Webブラウザを有するクライアント、並びに、クライアントからのhttpリクエストを受信し、所定のデータフォーマットに変換して、運用されている情報処理を実行するアプリケーションに出力するWebサーバ、Webサーバが受信したhttpリクエストをフックし、httpリクエスト情報としてhttpリクエストファイルに格納するhttpリクエスト記録部、クライアントの入力情報処理部からの入力情報を受信し、受信した入力情報を入力情報ファイルに格納する入力情報記録部、httpリクエストファイルに格納されているhttpリクエスト情報と入力情報ファイルに格納されている入力情報を対応付け、対応付け結果を対応情報として対応情報ファイルに格納する対応情報生成部、及び、入力情報ファイルに格納されている入力情報を参照して、入力情報に対応させたテストシナリオを生成し、テスト仕様に従って修正される、生成したテストシナリオをテストシナリオファイルに格納するテストシナリオ生成部を有するサーバを含み、クライアントは、さらに、テストシナリオファイル、テストシナリオファイルおよび対応情報ファイルを用いて、テスト仕様およびテスト実行条件に基づいて、前記サーバが運用中の前記第1の情報処理内容からバージョンアップされた、第2の情報処理内容をテストするテスト実行部を有する。
開示するテストシナリオを用いたテスト装置によれば、情報処理システムのバージョンアップに対して、情報処理システムに課せられた処理の性能や機能を検証できる。
テストシナリオを用いたテスト装置を含む情報システムの構成例である。 テストに注目した情報システムの構成例である。 HTML画面情報の例である。 発注入力画面の例である。 入力情報の例である。 httpリクエストの例である。 httpリクエスト情報の例である。 httpリクエスト情報と入力情報との対応情報の例である。 対応情報生成部の処理フローチャートである。 スクリプトとしてのテストシナリオの例である。 テスト実行画面の例である。 繰り返しテスト実行画面の例である。 入力範囲テスト実行画面の例である。 テスト実行部の処理フローチャートである。 テスト実行部の処理フローチャートである。 httpリクエスト選択部の処理フローチャートである。 修正されたテストシナリオである。 修正されたhttpリクエストである。
図1は、テストシナリオを用いたテスト装置を含む情報システムの構成例である。情報システムは、運用クライアント1、運用サーバ2、テストクライアント(テスト対象のクライアント)3、およびテストサーバ(テスト対象のサーバ)4の各コンピュータが、互いにネットワーク5を介して接続されている。テスト装置で用いるテストシナリオを記録するテストシナリオ記録装置は、運用中のhttpリクエストを元にテストシナリオを作成するために、運用クライアント1及び運用サーバ2を含む運用中のクライアント‐サーバシステムに構築される。テストクライアント3およびテストサーバ4は、テストシナリオ記録装置が作成したテストシナリオを用いた、テスト装置によるテストの実行について後述するためにネットワーク5に接続している。
運用されている情報処理は、運用クライアント1が入力に対応したhttpリクエストを運用サーバ2に送信し、運用サーバ2が受信したhttpリクエストに対応した処理を実行するものである。以下の説明では、説明を簡単にするために、発注処理や顧客管理などのような、運用されている情報処理に関しては簡単な例示にとどめ、情報処理内容の詳細の説明を省略する。
更新された情報処理は、テストクライアント3がテスト入力に対応したhttpリクエストをテストサーバ4に送信し、テストサーバ4が受信したhttpリクエストに対応した処理を実行するものである。更新された情報処理は、テストクライアント3とテストサーバ4との少なくとも一方で実行される処理内容が、運用されている情報処理から更新されている。以下の説明では、運用されている情報処理と同様に、説明を簡単にするために、発注処理や顧客管理などのような、更新された情報処理内容に関しては詳細の説明を省略する。
運用クライアント1は、入力装置16および出力装置17を有し、入力情報処理部10および運用Webブラウザ11を含む。入力情報処理部10は、入力装置16から運用Webブラウザ11への入力情報をフックし(取り込み)、運用サーバ2へ送信する。運用Webブラウザ11は、入力装置16からの入力情報に対応したhttpリクエストを運用サーバ2へ送信する。入力情報処理部10からの入力情報は、運用Webブラウザ11を介して送信してもよいが、運用中の情報処理の性能低下を招く可能性があるので、運用クライアント1と運用サーバ2との専用の通信回線を用いることが望ましい。
運用サーバ2は、Webサーバ20、httpリクエスト記録部21、入力情報記録部22、対応情報生成部23、及びテストシナリオ生成部24の各処理部、並びに、httpリクエストファイル25、入力情報ファイル26、対応情報ファイル27、及びテストシナリオファイル28の各記憶部を含む。
Webサーバ20は、運用クライアント1からのhttpリクエストを受信し、所定のデータフォーマットに変換して、運用されている情報処理を実行するアプリケーションまたはアプリケーションサーバに出力する。
httpリクエスト記録部21は、Webサーバ20が受信したhttpリクエストをフックし(取り込み)、httpリクエスト情報としてhttpリクエストファイル25に格納する。入力情報記録部22は、運用クライアント1からの入力情報を受信し、入力情報ファイル26に格納する。対応情報生成部23は、httpリクエストファイル25に格納されているhttpリクエスト情報と入力情報ファイル26に格納されている入力情報とを対応付け、対応付け結果を対応情報として対応情報ファイル27に格納する。テストシナリオ生成部24は、入力情報ファイル26に格納されている入力情報を参照して、入力情報に対応させたテストシナリオを生成し、生成したテストシナリオをテストシナリオファイル28に格納する。
図2は、テストシナリオに基づいたテストサーバ4のテストに注目した情報システムの構成例である。テストクライアント3は、入力装置36および出力装置37を有し、テスト実行部30、httpリクエスト選択部31およびテストWebブラウザ32の各処理部、並びに、テストシナリオファイル33、対応情報ファイル34およびhttpリクエストファイル35の各記憶部を含む。テストシナリオファイル33、対応情報ファイル34およびhttpリクエストファイル35は、テストの実行に先立ち、運用サーバ2に含まれるテストシナリオファイル28、対応情報ファイル27およびhttpリクエストファイル25が転送されたファイルである。したがって、後述のテスト実行の説明では、転送前のファイルの符号を用いて説明する場合がある。
テスト実行部30は、入力装置36から指定されたテスト仕様に基づいて、httpリクエスト選択部31およびテストWebブラウザ32を選択的に用いて、テストサーバ4へhttpリクエストの送信を制御する。テスト実行部30は、httpリクエスト選択部31を用いることによりテストサーバ4をテストし、テストWebブラウザ32を用いることによりテストWebブラウザ32およびテストサーバ4をテストする。したがって、テストWebブラウザ32がバージョンアップされずに、運用Webブラウザ11と同じである場合は、テスト実行部30はhttpリクエスト選択部31およびテストWebブラウザ32のいずれか一方を用いる。一方、テストWebブラウザ32が運用Webブラウザ11からバージョンアップされている場合は、テスト実行部30は、httpリクエスト選択部31を用いてテストサーバ4のテストを完了した後に、テストWebブラウザ32を用いることによりバージョンアップされたテストWebブラウザ32をテストする。
httpリクエスト選択部31は、対応情報を参照して、テスト実行部30から指定されたテストシナリオに対応するhttpリクエストを選択し、選択したhttpリクエストをテストサーバ4へ送信する。
テストWebブラウザ32は、テスト実行部30から入力されたテストシナリオを、入力装置36から入力された入力情報とみなし、テストシナリオに対応するhttpリクエストをテストサーバ4に送信する。
テストサーバ4は、テストクライアント3からのhttpリクエストを処理するWebサーバ40有し、図示を省略する、テストされる情報処理を実行する処理部を含む。テストされる情報処理は、発注処理や顧客管理などのような、運用されている情報処理と同様の処理であるが、機能変更やユーザによる使い勝手向上などのために、情報処理を実行する処理部がバージョンアップされている。
テストクライアント3は、運用クライアント1がテストのために時間が空いている(使用時間が少なく、負荷が低い)場合は、運用クライアント1をテストクライアント3として用いてもよい。ただし、運用されている情報処理と同様に、ユーザによる使い勝手向上などのためにWebブラウザもバージョンアップされていることが多い。したがって、ここではテストクライアント3を、運用クライアント1とは別に設ける構成として説明する。
以下、運用されている情報処理として発注処理を例に挙げ、詳細に説明する。
図3は、運用クライアント1の運用Webブラウザ11が出力装置17に発注入力画面を出力するためのHTML画面情報6の例である。HTML画面情報6は、発注入力画面のタイトル61、製品コード62、製品個数63、及びOKボタン64の画面情報を含む。
図4は、運用クライアント1の出力装置17に運用Webブラウザ11により出力される、HTML画面情報6に対応した製品の発注入力画面7の例である。発注入力画面7は、発注する製品の製品コード71の入力欄、発注する製品個数72の入力欄、及びOKボタン73を有する。運用Webブラウザ11は、OKボタン63の押下に応答して、入力情報(製品個数71および製品コード72)に対応したhttpリクエストを運用サーバ2へ送信する。
図5は、入力情報処理部10がフックした、入力装置16から運用Webブラウザ11への入力情報8の例であり、入力情報処理部10は入力情報8を運用サーバ2へ送信する。運用サーバ2では、入力情報記録部22が受信した入力情報8を入力情報ファイル26に格納する。入力情報8は、入力情報ID81、時刻82、画面83、属性名84、名称85、および値86を含む。
入力情報ID81は、フックした入力情報8に含まれる属性(ここでは、製品コード71および製品個数73)に対応して、入力情報8を識別する識別子である。したがって、入力情報8が複数の属性を持つ、すなわち複数種別の入力項目を持つならば、それらの入力項目に応じて入力情報ID81が割り当てられる。
時刻82は、入力情報処理部10が入力情報8をフックした時刻である。画面83は入力画面であり、ここでは発注入力画面7である。属性名84は、発注入力画面7を表示するためのHTML画面情報6から取得したinput nameであり、名称85は、発注入力画面7に表示された属性の名称である。値86は、発注入力画面7に表示された属性の名称に対応して、入力された値である。
入力情報8の一例を説明する。図5の1行目は、入力情報ID81が「1」に対応して、時刻82「2014/7/11 12:00:00.00」に入力情報処理部10がフックした入力情報を示している。入力情報処理部10がフックした入力情報は、画面83「発注入力画面」からフックした属性名84「code」、名称85「製品コード」、および値86「001」である。
図6は、運用Webブラウザ11が、発注入力画面7のOKボタン63の押下に応答して、運用サーバ2へ送信するhttpリクエスト9の例である。httpリクエスト9は、発注入力画面7の入力情報(製品個数71および製品コード72)に対応した「code=001&num=1」を含んでいる。
図7は、httpリクエスト記録部21が、Webサーバ20が運用クライアント1から受信したhttpリクエストをフックし(取り込み)、httpリクエストファイル25に格納するhttpリクエスト情報10の例である。httpリクエスト情報10は、リクエスト要素ID101、時刻102、属性名103、値104、httpリクエストID105、行106、および文字107を含む。なお、httpリクエスト情報10は、httpリクエストファイル25に格納する際に、対応するhttpリクエスト9も格納し、対応付けておく。
リクエスト要素ID101は、フックしたhttpリクエスト9に含まれる属性(ここでは、codとnumとの各々)に対応して、httpリクエスト9の要素(属性)を識別する識別子である。したがって、httpリクエスト9が複数の属性を持つ、すなわち複数種別の要素を持つならば、それらの要素に応じてリクエスト要素ID101が割り当てられる。
時刻102は、httpリクエスト記録部21がhttpリクエスト9をフックした時刻である。属性名103は、httpリクエスト9に含まれる属性(ここでは、codまたはnum)である。値104は、属性名103に対応した属性の値である。httpリクエストID105は、httpリクエスト9を識別する識別子である。したがって、httpリクエスト9が複数の属性を持つならば、それらの属性を示すリクエスト要素ID101に同じhttpリクエストID105が割り当てられる。行106および文字107は、httpリクエスト9に含まれるリクエスト要素ID101に対応する属性名103および値104の位置(何行目の万文字目から何文字目までか)を表す。
図8は、対応情報生成部23が、httpリクエストファイル25に格納されているhttpリクエスト情報10と入力情報ファイル26に格納されている入力情報8とを対応付け、対応付けた結果を対応情報生成部23が対応情報ファイル27に格納した対応情報11の例である。対応情報11は、リクエスト要素ID101と入力情報ID81の対応関係を表し、この対応関係をリクエスト要素ID111と入力情報ID112とする。
図9は、対応情報生成部23の処理フローチャートである。対応情報生成部23は、httpリクエストファイル25に格納されている、httpリクエスト情報10のリクエスト要素ID101で識別される一つのhttpリクエスト情報10を選択する(ステップ231)。対応情報生成部23は、選択したhttpリクエスト情報10の時刻102以前で、時刻102から所定時間内の時刻82の入力情報8を取得する(ステップ232)。所定時間は、運用Webブラウザ11の入力タイムアウト時間(Webブラウザ11による入力画面7を表示からOKボタン73までのタイムアウト時間)より前の入力情報8はhttpリクエスト情報10に対応することはないので、入力タイムアウト時間とする。
図7および図5を参照し、所定時間を10分とし、ステップ231〜232を実行する例を説明する。リクエスト要素ID101が「1」のhttpリクエスト情報10を選択すると、その時刻102は「2014/7/11 12:00:00.50」であるので、時刻82が「2014/7/11 11:50:00.50」から「2014/7/11 12:00:00.50」に含まれる入力情報ID81が「1」と「2」との入力情報8が取得される。
対応情報生成部23は、選択したhttpリクエスト情報10の属性名103に一致する属性名84を持つ入力情報8を選択する(ステップ233)。このステップの実行は、Webブラウザに非同期通信の仕掛け(AJAX)がある場合、ユーザによる入力と無関係にhttp通信が行われる場合があるので、誤った対応付けを防止するためである。
上記の例では、入力情報ID81が「1」と「2」との入力情報8が取得されたので、httpリクエスト情報10のリクエスト要素ID101が「1」の属性名103は「code」であるので、属性名84が「code」である入力情報ID81が「1」の入力情報8が選択される。
この例では、一つの入力情報ID81が「1」の入力情報8が選択されるが、複数の入力情報ID81に対応する入力情報8が選択される場合がある。このような場合、対応情報生成部23は、選択された複数の入力情報ID81に対応する入力情報8から、時刻82が最も早い入力情報8を選択する(ステップ234)。
対応情報生成部23は、選択したhttpリクエスト情報10のリクエスト要素ID101と選択した入力情報8の入力情報ID81を対応付け、リクエスト要素ID111と入力情報ID112として対応情報ファイル27に格納する(ステップ235)。
図9を用いて、リクエスト要素ID101で識別される一つのhttpリクエスト情報10について説明したが、対応情報生成部23は、httpリクエスト記録部21に格納されている各リクエスト要素ID101で識別される一つのhttpリクエスト情報10について処理を繰り返し実行する。
テストシナリオ生成部24は、入力情報ファイル26に格納されている入力情報8に対応させたテストシナリオを生成し、生成したテストシナリオに入力情報ID81を対応付けてテストシナリオファイル28に格納する。図10は、図5に示した入力情報8の例に対応する、スクリプトとしてのテストシナリオ12の例である。このスクリプトは、予め定めた所定のフォーマットに、入力情報8の画面83、名称85、および値86を挿入することにより生成される。テストシナリオ12に対応付ける入力情報ID81が複数あれば、複数の入力情報ID81をテストシナリオ12に対応付ける。テストシナリオ12を文字列によるスクリプトとするのは、運用Webブラウザ11がテストWebブラウザ32にバージョンアップされた場合でも、テストシナリオがブラウザに依存しないようにするためである。
図2の構成におけるテストの実行について説明する。前述のように、テストシナリオファイル33および対応情報ファイル34は、テストの実行に先立ち、運用サーバ2に含まれるテストシナリオファイル28および対応情報ファイル27が転送されたファイルである。したって、テストシナリオファイル28には12が格納され、対応情報ファイル27には対応情報11が格納されている。
更新(バージョンアップ)された情報処理の運用されている情報処理からの更新に伴うテストには、更新部分に限らず、更新されていない部分への影響も考慮する必要があり、多様なテストモードがある。テストモードには、性能テストとしてのテストサーバ4からの応答時間がユーザの許容範囲内かをテストする応答時間テスト、機能テストとしての伝票作成のための積和演算結果を検証する演算テストなどがある。ここでは、テストモードとして、単位時間当たりの処理件数が仕様を満足するかを検証するための繰り返しテスト、および、更新された情報処理が許容する入力範囲内外の入力に対する処理結果を検証するための入力範囲テストを例に説明する。
テスト実行部30が出力装置37に出力する画面の例を説明する。図11は、テスト仕様を入力するためのテスト実行画面13の例である。図12は、繰り返しテストの実行条件を入力するための繰り返しテスト実行画面14の例である。図13は、入力範囲テストの実行条件を入力するための入力範囲テスト実行画面15の例である。
テスト実行画面13は、テストシナリオ131、テスト対象132、およびテストモード133の各入力内容を、OKボタン134の押下に応答して入力するための画面である。繰り返しテスト実行画面14は、テストシナリオ131、テスト対象132、繰り返し周期141、およびテスト時間142の各入力内容を、OKボタン134の押下に応答して入力するための画面である。入力範囲テスト実行画面15は、テストシナリオ131、テスト対象132、入力指定範囲151、および増分の各入力内容を、OKボタン134の押下に応答して入力するための画面である。テストシナリオ131、テスト対象132、およびOKボタン134に関して、図11〜図13に共通の符号を付しているのは、テスト実行画面13での入力を、繰り返しテスト実行画面14または入力範囲テスト実行画面15で保持(出力を継続)し、ユーザによる同じ内容の入力の繰り返しを避けることを意味している。
図14および図15は、テスト実行部30の処理フローチャートである。テスト実行部30は、テスト実行画面13を出力装置37に出力し、OKボタン134の押下に応答して、前述の各入力内容を入力する(ステップ301)。テスト実行部30は、入力したテスト対象132を判定し(ステップ302)、サーバならばステップ303に移り、ブラウザならばステップ315に移る。
更新された情報処理は、テストクライアント3とテストサーバ4との少なくとも一方で実行される処理内容が、運用されている情報処理から更新されている。したがって、テストクライアント3とテストサーバ4の双方の処理内容が更新されている場合、テストクライアント3の処理内容が更新されている場合、およびテストサーバ4の処理内容が更新されている場合の3通りがある。テストクライアント3とテストサーバ4の双方の処理内容が更新されている場合は、更新された情報処理の仕様に合わないテスト結果が得られると、その原因がテストクライアント3とテストサーバ4のいずれにあるのかが判別できない場合が生じる。この状況の発生を避けるために、テストクライアント3とテストサーバ4の双方の処理内容が更新されている場合は、テスト対象132をサーバとしてテストサーバ4を先にテストし、そのテスト結果を確認した後にテスト対象132をブラウザとしてテストクライアント3とテストサーバ4とを組み合わせたテストを実行する。換言すると、
テスト対象132をサーバとすると、テストサーバ4単独のテストであり、テスト対象132をブラウザとすると、テストクライアント3とテストサーバ4との組み合わせテストを実行する。組み合わせテストを先に実行した場合の不具合(仕様を満足しないテスト結果)が得られた場合の、原因がテストサーバ4およびテストクライアント3のいずれにあるかが判別できない状況を回避できる。ブラウザが更新され、サーバは更新されない場合も多いが、その場合は、ブラウザが更新されたテストクライアント3と更新されていないテストサーバ4との組み合わせテストを実行することになる。
テスト実行部30は、入力したテストモード133を判定し(ステップ303)、「繰り返し」ならばステップ304に移り、「入力範囲」ならばステップ310に移る。
テスト実行部30は、繰り返しテスト実行画面14を出力装置37に出力し、OKボタン134の押下に応答して、前述の各入力内容を入力する(ステップ304)。テスト実行部30は、入力したテストシナリオ131を、httpリクエスト選択部31を動作させるパラメータ(引数)として設定する(ステップ305)。テスト実行部30は、入力した繰り返し周期141毎に(ステップ306)、httpリクエスト選択部31を実行する(ステップ307)。httpリクエスト選択部31の処理は後述する。テスト実行部30は、テスト時間142が経過したかを判定し(ステップ308)、未達(経過していない)ならばステップ306に戻り、経過したならば、ステップ309に移る。なお、テスト時間142の経過判定は、図示を省略しているが、ステップ305においてテスト時間142を減算タイマにセットし、残時間が0か否かを判定すればよい。
テスト実行部30は、テスト結果を出力装置37に出力し、ユーザによるテスト結果の確認を得て(ステップ309)、処理を終了する。テスト結果の詳細説明を省略するが、この繰り返しテストの場合、横軸に1秒ごとのhttpリクエストのテストサーバ4への送信順序(送信時刻)、縦軸にhttpリクエストの応答時間を表示すると、仕様で定める所定の応答時間内に応答が得られる、テスト開始からの時間を評価することができる。
テスト実行部30は、入力範囲テスト実行画面15を出力装置37に出力し、OKボタン134の押下に応答して、前述の各入力内容を入力する(ステップ310)。テスト実行部30は、入力したテストシナリオ131と入力指定範囲151の初期値(図13の例では0)を、httpリクエスト選択部31を動作させるパラメータ(引数)として設定する(ステップ311)。テスト実行部30は、httpリクエスト選択部31を実行し(ステップ312)、入力指定範囲151の値を入力した増分152で更新する(ステップ313)。ここでは、入力指定範囲151の値は、0、1、2、・・・となる。テスト実行部30は、入力指定範囲151の値が指定範囲外かを判定し(ステップ314)、指定範囲内ならばステップ312に戻り、指定範囲外ならば、ステップ309に移る。
テスト実行部30は、テスト結果を出力装置37に出力し、ユーザによるテスト結果の確認を得て、処理を終了する。この入力範囲テストの場合のテスト結果は、たとえば次のようになる。更新されたテストサーバ4が許容する(仕様で定められた)入力範囲を1〜8とし、入力指定範囲151を0〜9とすると、入力が1〜8の場合に正常に処理され、入力が0または9の場合に「入力エラー」などのメッセージが得られたかなどを評価することができる。
テスト実行部30は、テスト対象が132がブラウザのとき、ステップ315〜ステップ326を実行する。ステップ315〜ステップ326は、説明したステップ303〜ステップ314と同様であり、異なるのはステップ319およびステップ324で、httpリクエスト選択部31ではなく、テストWebブラウザ32を実行する点である。したがって、テストWebブラウザ32を実行させる処理に関して後述し、他の説明は省略する。
図16は、httpリクエスト選択部31の処理フローチャートである。httpリクエスト選択部31は、設定されたテストシナリオをテストシナリオファイル33から取得する(ステップ351)。httpリクエスト選択部31は、パラメータ(引数)が設定されているかを判定し(ステップ352)、設定されているならばステップ353へ移り、設定されなければステップ353をスキップする。パラメータ(引数)は、たとえばテスト実行部30のステップ311で設定されたり、ステップ325で更新されたりする入力指定範囲152内の設定値である。パラメータ(引数)が設定されているならば、httpリクエスト選択部31は、取得したテストシナリオのパラメータを修正する(ステップ353)。取得したテストシナリオを図10に示したテストシナリオ12とし、製品個数2が入力指定範囲152の設定値として設定されると、テストシナリオ10のスクリプト中の製品個数を2に修正する。図17は、製品個数が2に修正されたテストシナリオ16である。
取得したテストシナリオ12には、テストシナリオファイル33中で入力情報IDと対応付けられている(テストシナリオ生成部24により入力情報ID81が対応付けられている)ので、httpリクエスト選択部31は、対応情報ファイル34を参照して、その入力情報ID111に対応するリクエスト要素ID112を取得する(ステップ354)。取得したリクエスト要素ID112(図7のリクエスト要素ID101)は、httpリクエストファイル35の中でhttpリクエストID105に対応付けられ、さらにhttpリクエスト9も対応付けられているので、httpリクエスト選択部31は、対応するhttpリクエスト9を取得する(ステップ355)。httpリクエスト選択部31は、取得または修正したテストシナリオに対応するように、取得したhttpリクエスト9を修正する(ステップ356)。
図18は、httpリクエスト9が修正されたhttpリクエスト17である。httpリクエスト17は、テストシナリオ16に対応させるために、httpリクエスト9の「code=001&num=1」の部分が「code=001&num=2」に修正されている。
httpリクエスト選択部31は、httpリクエスト17をテストサーバ4へ送信し(ステップ357)、処理を終了する。テストサーバ4では、Webサーバ40がhttpリクエスト17を受信し、httpリクエスト17に対応する処理を実行するアプリケーション(サーバ)に、httpリクエスト17に含まれるコードや個数などのパラメータを出力する。httpリクエスト選択部31は、httpリクエスト17に対するテストサーバ4からの応答を受信する処理も実行するが、説明を省略する。
以上のように、httpリクエスト選択部31は、テストWebブラウザ32がバージョンアップされている場合に、テストWebブラウザ32に代わって実行される。
テスト実行部30とテストWebブラウザ32とのインタフェイスについて簡単に説明する。図15では省略しているが、テスト実行部30がテストWebブラウザ32を実行させるとテストWebブラウザ32が入力画面を開くので、テスト実行部30がテストシナリオにしたがって、入力画面の入力内容を入力する。この場合はテストWebブラウザ32を改変することなく使用できる。テストWebブラウザ32の改変が許容される場合は、テスト実行部30がテストシナリオをパラメータとしてテストWebブラウザ32に渡し、テストWebブラウザ32は受け取ったテストシナリオに基づいてhttpリクエストを生成する。この場合は、テストWebブラウザ32は入力画面を開く方法に比べて高速に動作するので、httpリクエストの送信周期を短くした(例えば100m秒周期)性能テストなどに適している。
説明したテスト装置によれば、情報処理システムのバージョンアップに対して、情報処理システムに課せられた処理の性能や機能を検証できる。
1:運用クライアント、2:運用サーバ、3:テストクライアント、4:テストサーバ、5:ネットワーク、10:入力情報処理部、11:運用Webブラウザ、16:入力装置、17:出力装置、20:Webサーバ、21:httpリクエスト記録部、22:入力情報記録部、23:対応情報生成部、24:テストシナリオ生成部、25:httpリクエストファイル、26:入力情報ファイル、27:対応情報ファイル、28:テストシナリオファイル、30:テスト実行部30、31:httpリクエスト選択部、32:テストWebブラウザ、33:テストシナリオファイル、34:対応情報ファイル34、35:httpリクエストファイル、36:入力装置、37:出力装置、40:Webサーバ。

Claims (6)

  1. 入力装置からの入力情報をフックし、フックした前記入力情報を送信する入力情報処理部、及び、前記入力装置からの前記入力情報に対応したhttpリクエストを送信する運用Webブラウザを有するクライアント、並びに
    前記クライアントからの前記httpリクエストを受信し、所定のデータフォーマットに変換して、運用されている第1の情報処理を実行するアプリケーションに出力するWebサーバ、前記Webサーバが受信した前記httpリクエストをフックし、httpリクエスト情報としてhttpリクエストファイルに格納するhttpリクエスト記録部、前記クライアントの前記入力情報処理部からの前記入力情報を受信し、受信した前記入力情報を入力情報ファイルに格納する入力情報記録部、前記httpリクエストファイルに格納されている前記httpリクエスト情報と前記入力情報ファイルに格納されている前記入力情報とを対応付け、対応付け結果を対応情報として対応情報ファイルに格納する対応情報生成部、及び、前記入力情報ファイルに格納されている前記入力情報を参照して、前記入力情報に対応させたテストシナリオを生成し、テスト仕様およびテスト実行条件に従って修正される、生成した前記テストシナリオをテストシナリオファイルに格納するテストシナリオ生成部を有するサーバを含み、
    前記クライアントは、前記httpリクエストファイル、前記テストシナリオファイルおよび前記対応情報ファイルを用いて、前記入力装置からの前記テスト仕様および前記テスト実行条件に基づいて、前記サーバが運用中の前記第1の情報処理からバージョンアップされた、第2の情報処理の内容をテストするテスト実行部をさらに有することを特徴とするテストシナリオを用いたテスト装置。
  2. 前記入力情報は、前記入力情報の入力項目を識別する入力情報IDを付して前記入力情報ファイルに格納され、前記httpリクエスト情報は、前記httpリクエスト情報の前記入力項目に対応する属性名を識別するリクエスト要素IDを付して前記httpリクエストファイルに格納され、前記対応情報ファイルに格納される前記対応情報は、前記リクエスト要素IDと前記入力情報IDの対応を示すことを特徴とする請求項1記載のテストシナリオを用いたテスト装置。
  3. 前記テストシナリオ生成部は、前記テストシナリオをスクリプトとして生成することを特徴とする請求項1記載のテストシナリオを用いたテスト装置。
  4. クライアントおよびサーバを含むテスト装置における、テストシナリオを用いたテスト方法であって、
    前記クライアントは、入力装置からの入力情報をフックし、フックした前記入力情報を送信し、前記入力装置からの前記入力情報に対応したhttpリクエストを送信し、
    前記サーバは、前記クライアントからの前記httpリクエストを受信し、所定のデータフォーマットに変換して、運用中の第1の情報処理を実行するアプリケーションに出力し、受信した前記httpリクエストをフックし、httpリクエスト情報としてhttpリクエストファイルに格納し、前記クライアントからの前記入力情報を受信し、受信した前記入力情報を入力情報ファイルに格納し、前記httpリクエストファイルに格納されている前記httpリクエスト情報と前記入力情報ファイルに格納されている前記入力情報とを対応付け、対応付け結果を対応情報として対応情報ファイルに格納し、前記入力情報ファイルに格納されている前記入力情報を参照して、前記入力情報に対応させたテストシナリオを生成し、テスト仕様およびテスト実行条件に従って修正される、生成した前記テストシナリオをテストシナリオファイルに格納し、
    前記クライアントは、さらに、前記httpリクエストファイル、前記テストシナリオファイルおよび前記対応情報ファイルを用いて、前記入力装置からの前記テスト仕様および前記テスト実行条件に基づいて、前記サーバが運用中の前記第1の情報処理からバージョンアップされた、第2の情報処理の内容をテストすることを特徴とするテストシナリオを用いたテスト方法。
  5. 前記入力情報は、前記入力情報の入力項目を識別する入力情報IDを付して前記入力情報ファイルに格納され、前記httpリクエスト情報は、前記httpリクエスト情報の前記入力項目に対応する属性名を識別するリクエスト要素IDを付して前記httpリクエストファイルに格納され、前記対応情報ファイルに格納される前記対応情報は、前記リクエスト要素IDと前記入力情報IDの対応を示すことを特徴とする請求項4記載のテストシナリオを用いたテスト方法。
  6. 前記サーバは、前記テストシナリオをスクリプトとして生成することを特徴とする請求項4記載のテストシナリオを用いたテスト方法。
JP2015008683A 2015-01-20 2015-01-20 テストシナリオを用いたテスト装置および方法 Expired - Fee Related JP6367721B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015008683A JP6367721B2 (ja) 2015-01-20 2015-01-20 テストシナリオを用いたテスト装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015008683A JP6367721B2 (ja) 2015-01-20 2015-01-20 テストシナリオを用いたテスト装置および方法

Publications (2)

Publication Number Publication Date
JP2016134020A JP2016134020A (ja) 2016-07-25
JP6367721B2 true JP6367721B2 (ja) 2018-08-01

Family

ID=56434702

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015008683A Expired - Fee Related JP6367721B2 (ja) 2015-01-20 2015-01-20 テストシナリオを用いたテスト装置および方法

Country Status (1)

Country Link
JP (1) JP6367721B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG11201908755XA (en) * 2017-03-31 2019-10-30 Velocity Technology Solutions Inc Methods and systems for testing web applications
CN113515453B (zh) * 2021-06-24 2021-12-07 航天中认软件测评科技(北京)有限责任公司 网页测试系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4874010B2 (ja) * 2006-06-19 2012-02-08 株式会社リコー テストシナリオ作成方法及びシステム、並びにテストシナリオ作成用プログラム及び記録媒体
JP2014010581A (ja) * 2012-06-28 2014-01-20 Toshiba Corp テスト装置、テストシステム、テスト方法、及びプログラム
JP5737249B2 (ja) * 2012-09-19 2015-06-17 富士通株式会社 負荷シミュレーション装置、シミュレーション装置、負荷シミュレーション方法、シミュレーション方法及びプログラム

Also Published As

Publication number Publication date
JP2016134020A (ja) 2016-07-25

Similar Documents

Publication Publication Date Title
US20150128103A1 (en) System and method for automating application programming interface integration
CN110050237B (zh) 数据收集装置、数据收集方法及记录介质
CN106815031B (zh) 内核模块加载方法和装置
US20130191814A1 (en) Test scenario generation method, test scenario generation system, and test scenario generation program
CN104683303B (zh) App管理方法
CN109815256A (zh) 一种数据处理方法、装置、电子设备和存储介质
US20190188010A1 (en) Remote Component Loader
JP6367721B2 (ja) テストシナリオを用いたテスト装置および方法
US10466761B2 (en) Power system monitoring and control system
US20200326952A1 (en) Modification procedure generation device, modification procedure generation method and storage medium for storing modification procedure generation program
US9612805B2 (en) Rapid mobile app generator
US11422680B1 (en) Workflow execution framework
JP5758544B2 (ja) 画面情報収集計算機、画面情報収集方法及び計算機読み取り可能な記憶媒体
JP6672958B2 (ja) 作業逸脱防止装置、作業逸脱防止システム、作業逸脱防止方法及びプログラム。
JP7230951B2 (ja) 携帯端末、情報処理システム、制御方法、及びプログラム
WO2013031129A1 (ja) 情報処理装置、情報処理方法、及びプログラム
US9621630B2 (en) Distribution method, distribution apparatus, and terminal apparatus
JP6438842B2 (ja) 管理装置、管理システムおよび管理プログラム
US9525754B1 (en) Task-based approach to execution, monitoring and execution control of actions
JP6261244B2 (ja) Webアプリケーションテスト装置およびそのプログラム
JP6590753B2 (ja) 簡易OpS装置、制御方法および制御プログラム
JP6728840B2 (ja) 画像処理サーバ、振分装置及びプログラム
JP6734689B2 (ja) システム管理支援装置、システム管理支援方法、及びプログラム
CN104423973B (zh) 浮动框架页面加载信息的处理方法、装置及系统
CN113094211B (zh) 一种备份数据处理的方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170314

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180329

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180705

R150 Certificate of patent or registration of utility model

Ref document number: 6367721

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees