JP6439309B2 - データ処理システム、データ処理方法およびデータ処理プログラム - Google Patents

データ処理システム、データ処理方法およびデータ処理プログラム Download PDF

Info

Publication number
JP6439309B2
JP6439309B2 JP2014155631A JP2014155631A JP6439309B2 JP 6439309 B2 JP6439309 B2 JP 6439309B2 JP 2014155631 A JP2014155631 A JP 2014155631A JP 2014155631 A JP2014155631 A JP 2014155631A JP 6439309 B2 JP6439309 B2 JP 6439309B2
Authority
JP
Japan
Prior art keywords
test
message
input
output
input message
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.)
Active
Application number
JP2014155631A
Other languages
English (en)
Other versions
JP2016033697A (ja
Inventor
秀昭 笹倉
秀昭 笹倉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2014155631A priority Critical patent/JP6439309B2/ja
Publication of JP2016033697A publication Critical patent/JP2016033697A/ja
Application granted granted Critical
Publication of JP6439309B2 publication Critical patent/JP6439309B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、ソフトウェアのテストデータを生成するデータ処理システム、データ処理方法およびデータ処理プログラムに関する。特に、リグレッションテストの自動化を実現するデータ処理システム、データ処理方法およびデータ処理プログラムに関する。
近年、ソフトウェア開発において、開発と運用との連携・協力を深め、より高品質なソフトウェアを確実かつ迅速に構築することを重視するDevOpsが着目されている(DevOps:DevelomentとOperationsとを基に作成された造語)。DevOpsを実現するためには、テスト工程におけるテスト中であっても、リグレッションテストの自動化が重要である。
これまでは、基盤となるアプリケーションサーバやアプリケーション、OSのモジュールを置換する際などに、ユーザアプリケーションの動作が変わらないことを手動のリグレッションテストで証明していた(OS:Operating System)。しかしながら、ビックデータのように莫大な量のデータを取り扱うアプリケーションにおいては、手動のレグレションテストを適用し続けるのには限界がある。自動化されたリグレッションテストを提供している製品もあるが、テストパターンは限られており、最適化・効率化されたテストを自動で実施することができないのが現状である。
特許文献1には、テスト入力データと出力データとを記録し、記録したテスト入力データを基に何度でも同じテストを自動で実行することができるソフトウェアのテスト方法について開示されている。特許文献1のテスト方法においては、当初のソフトウェアに対して行ったテスト内容を電子ファイルとして格納しておく。そして、ソフトウェアがバージョンアップされた際に、格納したテスト内容を使って、バージョンアップされたソフトウェアに対して同様のテストを自動的に行う。しかしながら、特許文献1では、一度行ったテストを自動化することについては開示されているが、テスト入力データを増やす仕組みについては開示されていない。
特許文献2には、手動で入力された入力データを基にテストケース(既存テストケース)を生成し、既存テストケースのテスト入力データから生成させた新たなテスト入力データを用いて新たなるテストケースを生成するテストデータ生成装置が開示されている。特許文献2によれば、テストを自動化するだけではなく、テストケース自体を自動的に増やす仕組みが提供される。すなわち、特許文献2は、特許文献1では開示されていなかったテストケース自体を自動的に増やす仕組みについて開示されている。
特許文献3には、アクセスの都度受け付けるパラメータの名前が変化するWebアプリケーションに対するテストを自動化するテスト基盤装置が開示されている。特許文献3のテスト基盤装置は、アプリケーションからのレスポンスに含まれるパラメータの名前と値を抽出すると、置換対象と判断されたパラメータの名前を任意の名前と値に置換して保持するとともに、置換されたパラメータをテストツールに送信する。次に、テスト基盤装置は、テストツールからのリクエストに含まれるパラメータのうち置換対象と判断されたものに対し、保持されたパラメータの置換前後の名前と値に基づいて、パラメータの名前および値もしくは名前を復元する。そして、テスト基盤装置は、復元されたパラメータの名前と値をアプリケーションに送信する。
特許文献4には、ウェブ・アプリケーションのソフトウェアテストにおけるテストケースを自動的に生成する情報処理装置について開示されている。特許文献4の情報処理装置は、ウェブ・アプリケーションのサーバ・コードを解析し、サーバ・コードから抽出されたリソース識別子パターンに適合するイベント・シーケンスの発見を試みる。そして、情報処理装置は、イベント・シーケンスが見つかると、クライアント・コードから構築されるクライアント状態を取り込み、全てのクライアント状態上でイベント・シーケンスを実行し、リソース識別子を含むテストケースを生成する。
特開平08−212108号公報 特開2009−163609号公報 特開2010−113380号公報 特開2011−233077号公報
特許文献2のテストデータ生成装置では、実使用環境で起こりうるエラーを想定したテストを実行しているのではないため、テストを効率化することはできないという問題点がある。なぜならば、特許文献2のテストデータ生成装置は、実データに基づくテストケースを生成するのではなく、テスト入力データから生成可能な範囲においてテストケースを増やし、テストのバリエーションを増やしているだけだからである。
引用文献3および引用文献4によれば、実データに基づいてテストケースを自動的に生成することが可能となる。しかしながら、引用文献3および引用文献4の手法では、データの蓄積に応じて変化するアプリケーションの使用環境に対応するように、テスト装置自体が成長していくシステムを構築することはできない。
本発明の目的は、実データに基づいたテストパターンを自律学習により増加させ、運用を続けるほどテスト網羅度を向上させることができるデータ処理システムを提供することである。
本発明のデータ処理システムは、入力電文を用いてアプリケーションの処理を実行することによって入力電文に対応する出力電文を生成し、入力電文と出力電文とを出力する処理手段と、処理手段から取得した入力電文を蓄積するとともに、処理手段から取得した出力電文を対応する入力電文と紐付けて蓄積するデータ格納手段と、データ格納手段から入力電文を取得し、取得した入力電文を用いてテスト入力電文を自律的に生成し、生成したテスト入力電文を処理手段に出力する自律学習型テスト手段とを備え、処理手段は、自律学習型テスト手段から取得したテスト入力電文を用いてアプリケーションの処理を実行することによってテスト入力電文に対応するテスト出力電文を生成し、生成したテスト出力電文とテスト入力電文とをデータ格納手段に出力し、データ格納手段は、処理手段から取得したテスト出力電文と、テスト出力電文に対応する入力電文とを紐付けて蓄積する。
本発明のデータ処理方法においては、入力電文を用いてアプリケーションの処理を実行することによって入力電文に対応する出力電文を生成し、入力電文とともに、出力電文を対応する入力電文と紐付けて蓄積し、入力電文を用いてテスト入力電文を自律的に生成し、テスト入力電文を用いてアプリケーションの処理を実行することによってテスト入力電文に対応するテスト出力電文を生成し、生成したテスト出力電文と、テスト出力電文に対応する入力電文とを紐付けて蓄積する。
本発明のデータ処理プログラムは、入力電文を用いてアプリケーションの処理を実行することによって入力電文に対応する出力電文を生成する処理と、入力電文とともに、出力電文を対応する入力電文と紐付けて蓄積する処理と、入力電文を用いてテスト入力電文を自律的に生成する処理と、テスト入力電文を用いてアプリケーションの処理を実行することによってテスト入力電文に対応するテスト出力電文を生成する処理と、生成されたテスト出力電文と、テスト出力電文に対応する入力電文とを紐付けて蓄積する処理とをコンピュータに実行させる。
本発明によれば、実データに基づいたテストパターンを自律学習により増加させ、運用を続けるほどテスト網羅度を向上させるデータ処理システムを提供することが可能になる。
本発明の実施形態に係るテスト環境の概要を示す概念図である。 本発明の実施形態に係るデータ処理システムの機能構成を示すブロック図である。 本発明の実施形態に係るデータ処理システムの機能構成を示すブロック図である。 本発明の実施形態に係るデータ処理システムの通信制御手段の機能構成を示すブロック図である。 本発明の実施形態に係るデータ処理システムのクライアント端末の機能構成を示すブロック図である。 本発明の実施形態に係るデータ処理システムの入力電文蓄積手段の機能構成を示すブロック図である。 本発明の実施形態に係るデータ処理システムの出力電文蓄積手段の機能構成を示すブロック図である。 本発明の実施形態に係るデータ処理システムのテスト出力結果記録手段の機能構成を示すブロック図である。 本発明の実施形態に係るデータ処理システムのテスト結果比較手段の機能構成を示すブロック図である。 本発明の実施形態に係るデータ処理システムにおける入力電文および出力電文の蓄積に関する動作を説明するためのフローチャートである。 本発明の実施形態に係るデータ処理システムにおける入力電文の蓄積に関する動作を説明するためのフローチャートである。 本発明の実施形態に係るデータ処理システムの自律学習型テスト手段の動作を説明するためのフローチャートである。 本発明の実施形態に係るデータ処理システムのテスト結果比較手段の動作を説明するためのフローチャートである。 本発明の実施例1において、テスト優先度テーブルを作成するプロセスを説明するための概念図である。 本発明の実施例1において、判定結果テーブルを作成するプロセスを説明するための概念図である。
以下に、本発明を実施するための形態について図面を用いて説明する。ただし、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。
(実施形態)
まず、図1を参照しながら、本発明の実施形態に係るデータ処理システムのテスト環境について説明する。なお、本実施形態においては、任意のアプリケーションを対象として、リグレッションテストを実施することを想定する。
図1は、本発明の実施形態に係るデータ処理システムを含むように構成されるテスト環境1の概略図である。図1を参照すると、テスト環境1は、クライアント側のコンピュータ2やアプリケーション側のサーバ3、ストレージ7などの構成がネットワーク9を介して接続されて構成される。本実施形態に係るデータ処理システムの構成は、テスト環境1の構成のいずれかに搭載される。なお、図1のテスト環境1は、本実施形態に係るデータ処理システムによるリグレッションテストを実行する環境の一例である。そのため、テスト環境1の構成の全てが揃ってない状況であっても、本実施形態に係るデータ処理システムを実現できることができる。
コンピュータ2は、クライアントとなるユーザの操作を受け付ける端末として構築する。コンピュータ2は、パーソナルコンピュータやワークステーションなどのコンピュータ装置として実現される。コンピュータ2は、例えば、中央演算処理装置や主記憶装置、キャッシュ・メモリ、ROM(Read Only Memory)、RAM(Random Access Memory)、ネットワークインターフェース、補助記憶装置などのハードウェアを有する。また、コンピュータ2には、ユーザの操作を受け付けるキーボードやタッチパネル、マウスなどの入力機器、操作画面を表示するためのディスプレイなどの表示機器といった周辺機器が接続される。コンピュータ2は、適切なオペレーティングシステムの制御によって動作する。
サーバ3は、テスト対象のアプリケーションを含むアプリケーションサーバとして構築される。サーバ3は、データセンターなどに配置されたパーソナルコンピュータやワークステーション、ラックマウント型やブレード型サーバなどのコンピュータ装置として実現される。サーバ3は、例えば、中央演算処理装置や主記憶装置、キャッシュ・メモリ、ROM、RAM、ネットワークインターフェース、補助記憶装置などのハードウェアを有する。サーバ3は、適切なオペレーティングシステムの制御によって動作する。
ストレージ7は、アプリケーションやテストの処理結果を格納するデータベースとして構築される。ストレージ7は、例えば、サーバ3やコンピュータ2の内部の補助記憶装置、サーバ3やコンピュータ2の外部のネットワークストレージ機器などとして実現される。なお、サーバ3やコンピュータ2の内部の補助記憶装置としてストレージ7を実現する場合、サーバ3もしくはコンピュータ2とストレージ7とは、ネットワーク9を介さずに、内部バスや接続コードなどによって直接接続される。
ネットワーク9は、例えば、LAN(Local Area Network)やVPN(Virtual Private Network)、WAN(Wide Area Network)、インターネットなどを含むように構成される。実際には、LANやVPN、WANといった内部ネットワークが各構成要素と接続される。そして、各構成要素は、内部ネットワークからインターネット経由させて互いに接続される。なお、テスト環境1を構成する各構成要素は、インターネットを介さずに、内部ネットワークを介して接続されるように構成されてもよい。また、各構成要素が直接に接続されるように構成してもよい。また、サーバ3やコンピュータ2の補助記憶装置としてストレージ7を構成する場合は、内部バスや接続コードをネットワーク9の一形態とみなす。
本実施形態において、テスト対象のアプリケーションは、通常、サーバ3上に配置される。なお、テスト対象のアプリケーションがコンピュータ2上に配置されていてもよい。
テスト対象のアプリケ−ションは、適切なサーバ・プログラムを実装し、HTTP(Hypertext Transfer Protocol)を用いて、コンピュータ2からのHTTPリクエストを処理するように構成される。テスト対象のアプリケーションは、コンピュータ2からのHTTPリクエストに応答し、ソース・コードに従って、クライアント・コードを生成し、HTTPレスポンスを返す。なお、クライアント・コードには、HTML(HyperText Markup Language)データやXML(Extensible Markup Language)データなどが含まれる。また、クライアント・コードは、サーバ・プログラムと、テスト対象のアプリケーションに接続されるストレージ7やインターネット上の他のアプリケーションなどとが連携することによって提供される情報から生成されてもよい。
(構成)
次に、図2〜図9を参照しながら、本発明の実施形態に係るデータ処理システム10の構成について説明する。
図2を参照すると、本実施形態に係るデータ処理システム10は、処理手段30、自律学習型テスト手段50、データ格納手段70およびテスト結果比較手段80を備える。なお、データ処理システム10を構成する各構成要素は、図示しないネットワーク等を介して互いに接続される。また、テストデータを蓄積していく段階においては、テスト結果比較手段80の機能は必須ではない。
処理手段30は、クライアントからの要求(入力電文)を受信してアプリケーションの処理を実行し、クライアントに応答(出力電文)としてアプリケーションの処理結果を送信する。すなわち、処理手段30は、入力電文を用いてアプリケーションの処理を実行することによって入力電文に対応する出力電文を生成し、生成した入力電文と出力電文とを出力する。また、処理手段30は、自律学習型テスト手段50から取得したテスト入力電文を用いてアプリケーションの処理を実行してテスト入力電文に対応するテスト出力電文を生成し、生成したテスト出力電文とテスト入力電文とをデータ格納手段70に出力する。
自律学習型テスト手段50は、データ格納手段70から入力電文を取得し、取得した入力電文を用いてテスト入力電文を自律的に生成し、生成したテスト入力電文を処理手段30に出力する。
データ格納手段70は、処理手段30から取得した入力電文を蓄積するとともに、処理手段30から取得した出力電文を対応する入力電文と紐付けて蓄積する。また、データ格納手段70は、処理手段30から取得したテスト出力電文と、テスト出力電文に対応する入力電文とを紐付けて蓄積する。
テスト結果比較手段80は、同一の電文に対応する出力電文およびテスト出力電文をデータ格納手段70から取得し、取得した出力電文とテスト出力電文とを比較する。テスト結果比較手段80は、アプリケーションのテストにおいて、比較した出力電文とテスト出力電文とが一致した場合、テストが正常終了したものと判定する。一方、テスト結果比較手段80は、アプリケーションのテストにおいて、比較した出力電文とテスト出力電文とが一致しなかった場合、テストにエラーがあったものと判定する。
さらに、図3のように、本実施形態に係るデータ処理システム10は、クライアントとして機能するクライアント端末20を備える構成とすることもできる。クライアント端末20は、アプリケーションで処理するための電文(入力電文)を要求として処理手段30に送信し、入力電文を用いて実行されたアプリケーションの処理結果(出力電文)を応答として受信する。
また、図3のように、本実施形態に係るデータ処理システム10のデータ格納手段70は、入力電文蓄積手段71、出力電文蓄積手段73およびテスト出力結果記録手段75に機能分割してもよい。入力電文蓄積手段71、出力電文蓄積手段73およびテスト出力結果記録手段75は、データ格納手段70に含まれる構成である。入力電文蓄積手段71、出力電文蓄積手段73およびテスト出力結果記録手段75は、それぞれ別々のハードウェアに実装してもよいし、同一のハードウェアに実装してもよい。
<自律学習型テスト手段>
図3を参照すると、自律学習型テスト手段50は、抽出期間指定手段51、第1テスト電文生成手段52、順位付け手段53、上位ランキングテスト抽出手段54、第2テスト電文生成手段55、送信手段56を有する。
抽出期間指定手段51は、入力電文蓄積手段71に蓄積された入力電文を抽出する期間を指定するとともに、指定した期間に蓄積された入力電文を抽出する機能をもつ。抽出期間指定手段51によって指定される期間は、例えば、実際にシステムが運用された期間のうちから選択すればよい。
第1テスト電文生成手段52は、指定された期間において抽出された入力電文からテスト電文(以下、テスト入力電文)を生成する機能をもつ。
順位付け手段53は、入力電文蓄積手段71に蓄積された全ての入力電文または抽出期間指定手段51が抽出した一部データを基に、入力電文の類似性を調べる機能をもつ。さらに、順位付け手段53は、類似している電文に対しては同じアプリケーションが実行されたものと判断して同じテストパターンとみなし、同じとみなしたテストパターンの受信回数を記録して回数の多い順にテストパターンを並び替える機能をもつ。
上位ランキングテスト抽出手段54は、受信回数で順位づけされた入力電文のうち、何位までの入力電文に対してテストを実行するのかを設定する機能をもつ。
第2テスト電文生成手段55は、上位ランキングテスト抽出手段54が抽出した入力電文からテスト入力電文を生成する機能をもつ。
送信手段56は、第1テスト電文生成手段52および第2テスト電文生成手段55が生成したテスト入力電文を通信制御手段31に対して送信する機能をもつ。
自律学習型テスト手段50は、例えば、図1のサーバ3に搭載することができる。その場合、自律学習型テスト手段50は、処理手段30と同じサーバ3に搭載すればよい。
また、サーバ3とは異なるサーバに自律学習型テスト手段50を搭載してもよい。その場合、サーバ3とネットワーク9との間や、ネットワーク9を介してサーバ3と接続されるように自律学習型テスト手段50を配置すればよい。また、自律学習型テスト手段50は、コンピュータ2に搭載させてもよい。さらに、自律学習型テスト手段50の各構成要素は、互いに異なるサーバやコンピュータに分散させるように配置してもよい。
<処理手段>
図3の通り、処理手段30は、通信制御手段31と、アプリケーション実行手段32とを有するアプリケーションサーバである。
図4には、通信制御手段31の機能ブロックを図示した。なお、図4には、通信制御手段31がアプリケーション実行手段32を取り囲むように描いているが、実際には、通信制御手段31がアプリケーション実行手段32を取り囲むように配置されるわけではない。
図4を参照すると、通信制御手段31は、リクエスト送信手段311、応答送信手段312、入力電文送信手段313、出力電文送信手段314、テスト電文受信手段315、テスト電文送信手段316、テスト結果出力手段317を有する。
リクエスト送信手段311は、クライアント端末20からリクエストを受けて、アプリケーション実行手段32に対してリクエストを送信する機能をもつ。
応答送信手段312は、アプリケーション実行手段32から応答電文を受けて、クライアント端末20に対して応答を送信する機能をもつ。
入力電文送信手段313は、クライアント端末20から受信した入力電文を入力電文蓄積手段71に対して送信する機能をもつ。
出力電文送信手段314は、アプリケーション実行手段32から受信した出力電文を出力電文蓄積手段73に対して送信する機能をもつ。
テスト電文受信手段315は、自律学習型テスト手段50が生成したテスト入力電文を受信する機能をもつ。
テスト電文送信手段316は、受信したテスト入力電文をアプリケーション実行手段32へ送信する機能をもつ。
テスト結果出力手段317は、アプリケーション実行手段32に送信したテスト入力電文に対する応答電文(テスト出力電文)をテスト出力結果記録手段75に対して出力する機能をもつ。
アプリケーション実行手段32は、テスト対象のアプリケーションの処理を実行する機能をもつ。
<クライアント端末>
図5には、クライアント端末20の機能ブロックを図示した。なお、図5においては、各機能ブロックの接続関係は省略している。
クライアント端末20は、電文(入力電文)を処理手段30に送信するとともに、送信した電文(入力電文)に対応する電文(出力電文)を処理手段30から受信する。なお、クライアント端末20が送受信する電文は、状況に応じてパケットや要求(リクエスト)、応答(レスポンス)などのデータとなる。また、クライアント端末20は、入力電文蓄積手段71や出力電文蓄積手段73、テスト出力結果記録手段75に格納されているデータをディスプレイ等に表示する機能をもつことが好ましい。
クライアント端末20は、電文送信手段21と電文受信手段22とを有する。
電文送信手段21は、処理手段30の通信制御手段31へ電文(入力電文)を送信する機能をもつ。
電文受信手段22は、処理手段30の通信制御手段31が送信した電文(出力電文)を受信する機能をもつ。
<入力電文蓄積手段>
図6には、入力電文蓄積手段71の機能ブロックを図示した。なお、図6においては、各機能ブロックの接続関係は省略している。
図6を参照すると、入力電文蓄積手段71は、タイマー設定手段711、入力電文格納手段712、判別手段713、電文受信回数記録・表示手段714、電文ソート手段715を有する。
タイマー設定手段711は、データ整理の時間間隔を決めるためにタイマーを設定する機能をもつ。ユーザは、タイマー設定手段711を介して、データ整理を実施する時間間隔を任意に設定できる。
入力電文格納手段712は、通信制御手段31から受信した入力電文を時系列で蓄積する機能をもつ。
判別手段713は、指定した期間に受信した入力電文に同じ電文が含まれるか否かを判別する機能をもつ。
電文受信回数記録・表示手段714は、指定した期間に同じ入力電文が存在する場合、同一とみなされた入力電文の受信回数を記録して表示する機能をもつ。
電文ソート手段715は、受信回数順に電文をソートする機能をもつ。
例えば、入力電文蓄積手段71は、ストレージ7(図1)上に構築することができる。また、入力電文蓄積手段71は、サーバ3(図1)に含まれる記憶装置上に構築してもよい。例えば、タイマー設定手段711、判別手段713、電文受信回数記録・表示手段714、電文ソート手段715についてはサーバ3側に搭載し、入力電文格納手段712のみをストレージ7に搭載することができる。さらには、入力電文蓄積手段71の構成要素のうちいずれかをコンピュータ2に搭載するように構成してもよい。
<出力電文蓄積手段>
図7には、出力電文蓄積手段73の機能ブロックを図示した。なお、図7においては、各機能ブロックの接続関係は省略している。
図7を参照すると、出力電文蓄積手段73は、出力電文格納手段731と、電文紐付け手段732とを有する。
出力電文格納手段731は、通信制御手段31から受信した出力電文を蓄積する機能をもつ。出力電文格納手段731は、入力電文と、対応する出力電文とを紐付けて蓄積する。
電文紐付け手段732は、入力電文蓄積手段71に記録された入力電文と出力電文とを紐付けする機能をもつ。
例えば、出力電文蓄積手段73は、ストレージ7(図1)上に構築することができる。また、出力電文蓄積手段73は、サーバ3(図1)に含まれる記憶装置上に構築してもよい。例えば、電文紐付け手段732をサーバ3側に搭載し、出力電文格納手段731をストレージ7に搭載することができる。さらには、出力電文蓄積手段73の構成要素のうちいずれかをコンピュータ2に搭載するように構成してもよい。
<テスト出力結果記録手段>
図8には、テスト出力結果記録手段75の機能ブロックを図示した。なお、図8においては、各機能ブロックの接続関係は省略している。
テスト出力結果記録手段75は、テスト結果記録手段751と、テスト電文紐付け手段752とを有する。
テスト結果記録手段751は、通信制御手段31から受信したテスト出力電文を記録する機能をもつ。
テスト電文紐付け手段752は、自律学習型テスト手段50が生成したテスト出力電文を、対応する電文(入力電文)に紐付けする機能をもつ。
例えば、テスト出力結果記録手段75は、ストレージ7(図1)上に構築することができる。また、テスト出力結果記録手段75は、サーバ3(図1)に含まれるように構築してもよい。例えば、テスト電文紐付け手段752をサーバ3側に搭載し、テスト結果記録手段751をストレージ7に搭載することができる。さらには、テスト出力結果記録手段75の構成要素のうちいずれかをコンピュータ2に搭載するように構成してもよい。
なお、図3、図4、図6〜図8には、入力電文蓄積手段71と、出力電文蓄積手段73と、テスト出力結果記録手段75とを異なるものとして図示しているが、同一のストレージ7(図1)上に構成してもよい。
<テスト結果比較手段>
図9には、テスト結果比較手段80内部の機能ブロックを図示した。なお、図9においては、各機能ブロック間の接続関係は省略している。
テスト結果比較手段80は、電文比較手段81と、比較結果出力手段82とを有する。
電文比較手段81は、共通の電文(入力電文)に対応する、出力電文蓄積手段73に記録された出力電文と、テスト出力結果記録手段75に記録されたテスト出力電文とを比較する機能をもつ。
比較結果出力手段82は、共通の入力電文に対応する出力電文とテスト出力電文との比較結果を出力する機能をもつ。
テスト結果比較手段80は、例えば、図1のコンピュータ2に搭載することができる。その場合、比較結果出力手段82は、比較結果をユーザに知らせる画面をコンピュータ2のディスプレイに表示させればよい。なお、比較結果出力手段82による出力結果は、ディスプレイ上の表示のみならず、警告音などの音、点滅光などの光、振動などの触覚等を利用して通知するように構成してもよい。
また、テスト結果比較手段80の電文比較手段81をサーバ3側に搭載させ、比較結果出力手段82をコンピュータ2に搭載させてもよい。その場合、処理手段30とは異なるサーバ環境を構築し、構築されたサーバ環境に電文比較手段81を搭載させてもよい。なお、電文比較手段81に加えて比較結果出力手段82もサーバ3側に搭載させ、比較結果出力手段82の出力結果のみをコンピュータ2のディスプレイに表示させるように構成してもよい。
以上が、本実施形態に係るデータ処理システムの構成に関する説明である。なお、本実施形態に係るデータ処理システムの構成に別の機能を追加した構成も、本発明の範囲に含まれるものである。また、本実施形態に係るデータ処理システムの構成の一部を削除し、替わりに別の機能を追加することによって同様の機能を発現する構成も、本発明の範囲に含まれるものである。
(動作)
次に、図10〜図13のフローチャートを用いて、本実施形態に係るデータ処理システム10の動作について説明する。なお、以下の説明においては、アプリケーション実行手段32が通常の業務を実行しながらテスト出力電文の蓄積や、テスト出力電文と出力電文との比較検証を行うことを想定する。
<電文蓄積処理>
まず、図10のフローチャートを参照して、入力電文および出力電文を蓄積する電文蓄積処理のフローを詳細に説明する。
まず、クライアント端末20は、アプリケーション実行手段32に対して、アプリケーションの処理の実行をリクエストする(ステップS11)。
処理手段30の通信制御手段31がリクエストを受け取ると、通信制御手段31はアプリケーション実行手段32にリクエストを送信する。同時に、通信制御手段31は、入力電文蓄積手段71に入力電文を送信する(ステップS12)。
アプリケーション実行手段32は、受信したリクエストに相当するアプリケーションの処理(業務)を実行し、応答としてアプリケーションの処理結果(出力電文)を通信制御手段31に返却する(ステップS13)。
通信制御手段31は、アプリケーション実行手段32から受信した応答電文(出力電文)をクライアント端末20へ返却する。同時に、通信制御手段31は、出力電文蓄積手段73に出力電文を送信する(ステップS14)。
以上が、電文蓄積処理のフローに関する説明である。
以上の電文蓄積処理によれば、業務の本番運用環境において、処理手段30上で動作するアプリケーション実行手段32へリクエストが送信されればされるほど、図10のステップS11〜ステップS14の操作が繰り返し実行される。その結果、入力電文蓄積手段71および出力電文蓄積手段73にデータが蓄積されていく。そして、入力電文蓄積手段71に入力電文が蓄積されるにつれて、自律学習型テスト手段50は、自律的にテストパターンを学習し、成長していく。
<入力電文蓄積処理>
次に、図11のフローチャートを参照して、入力電文蓄積手段71による入力電文蓄積処理のフローを詳細に説明する。
まず、タイマー時間を既定値から変更する場合、入力電文蓄積手段71のタイマー設定手段711は、データ整理用タイマーを設定する(ステップS21)。
入力電文蓄積手段71は、タイマー設定時間が経過するまでは動作せず、時間の経過を待つ(ステップS22)。
タイマー時間経過時点において、入力電文蓄積手段71は、通信制御手段31から新規の入力電文を受信しているか否かを確認する(ステップS23)。
新規の入力電文が存在しない場合(ステップS23でNo)、入力電文蓄積手段71は、ステップS22に戻り、再びタイマー設定時間が経過するのを待つ。
新規の入力電文が存在する場合(ステップS23でYes)、入力電文蓄積手段71の入力電文格納手段712は、時系列で入力電文を記録する(ステップS24)。
以上が、入力電文蓄積手段71による入力電文蓄積処理についての説明である。
<テスト電文生成処理>
次に、図12のフローチャートを参照して、自律学習型テスト手段50によるテスト電文生成処理のフローを詳細に説明する。
まず、自律学習型テスト手段50の抽出期間指定手段51は、入力電文蓄積手段71に蓄積されたデータのうち、テストの入力データとする期間を設定する(ステップS31)。すなわち、ユーザは、抽出期間指定手段51によって、入力電文蓄積手段71に蓄積されたデータの中から、テストの入力データとする期間を設定することができる。
ところで、テストの入力データとする期間とは、ユーザによって設定される任意の期間である。例えば、テストの入力データとする期間は、期間の起点と終点を指定することによって設定することができる。
なお、テストの入力データとする期間の既定値を全期間とする場合、期間を設定せずにステップS31をスキップしてもよい。
抽出期間指定手段51は、設定された期間に含まれる入力電文をテスト入力電文として抽出する(ステップS32)。ただし、設定された期間において格納された入力データは、上述の期間に含まれるものと判断される。
なお、ステップS31で期間が設定されなかった場合、ステップS32はスキップされる。
ここで、自律学習型テスト手段50は、ステップS32で抽出された入力電文の全てに対して、テストを実施するか否かを判断する(ステップS33)。
ステップS32で抽出された入力電文の全てに対してテストを実施する場合(ステップS33でYes)、第1テスト電文生成手段52は、元の入力電文の全てをそのままテスト入力電文とする(ステップS34)。
一方、ステップS32で抽出された入力電文の全てに対してテストを実施しない場合(ステップS33でNo)、順位付け手段53が抽出された入力電文に優先度をつけ、一部の入力電文のみに対して、第1テスト電文生成手段52がテストを実施する。
まず、順位付け手段53は、入力電文の類似性を調べる(ステップS35)。
具体的には、順位付け手段53は、入力電文からプロトコルヘッダ部分を取り除いてユーザデータ部分の電文のみを取り出し、ユーザデータ部分の電文のみを比較する。そして、順位付け手段53は、ユーザデータ電文の一部のみが異なる電文であると判定できた場合は、同じアプリケーションが実行されたと判断して同じテストパターンとする。電文一致の判定基準となる数値は、例えば、ユーザによって電文全体の何パーセントが一致するかを指定すればよい。順位付け手段53は、指定した数値を上回る類似性を検出した場合、比較し合ったテストパターン同士が同じものとしてカウントする。
順位付け手段53は、ステップS35で類似性があると判断された電文を同じテストパターンとしてまとめる。そして、順位付け手段53は、まとめた電文の数を記録するとともに、必要であればその数を表示する(ステップS36)。
さらに、順位付け手段53は、ステップS36で記録されたテストパターンの数が多い順にまとめたテストパターンをソートする(ステップS37)。
上位ランキングテスト抽出手段54は、ステップS37でソートされたテストパターンから指定された順位までのテストパターンを抽出する(ステップS38)。
第2テスト電文生成手段55は、ステップS38で抽出したテストパターンをそのままテスト入力電文とする(ステップS39)。
送信手段56は、ステップS34またはステップS39で生成されたテスト入力電文を順次通信制御手段31に送信する(ステップS40)。
以上が、自律学習型テスト手段50によるテスト電文生成処理のフローについての説明である。
なお、図12に従った上述のフローでは、上位何位までの評価を実施するかを設定する項目があるが、設定した評価時間内で実行可能な評価を優先度順に時間が許す限り実行するようにしてもよい。また、テストの優先度を自動で決めることが可能であるが、ユーザが優先度を手動で編集することも可能である。
<テスト結果比較処理>
次に、図13のフローチャートを参照して、テスト結果比較手段80によるテスト結果比較処理のフローを詳細に説明する。
まず、出力電文蓄積手段73は、入力電文と、その入力電文に対応する出力電文との一覧を記録する(ステップS41)。
テスト出力結果記録手段75は、テスト入力電文と、そのテスト入力電文に対応するテスト出力電文の一覧を記録する(ステップS42)。
なお、ステップS41とステップS42とは、並行して処理されてもよいし、連続して処理されてもよい。また、ステップS41およびステップS42の処理は、後続の処理に先立って事前に実行されていてもよい。
テスト結果比較手段80の電文比較手段81は、出力電文蓄積手段73およびテスト出力結果記録手段75の出力電文同士を比較する(ステップS43)。
そして、電文比較手段81は、出力電文蓄積手段73およびテスト出力結果記録手段75の出力電文同士について、一致の有無を判定する(ステップS44)。
ステップS44で出力電文が一致すると判定された場合(ステップS44でYes)、比較結果出力手段82は、テスト正常終了の記録を残す(ステップS45)。
ステップS44で出力電文が一致しないと判定された場合ステップS44でNo)、比較結果出力手段82は、不一致となった入力と出力をエラー表示する(ステップS46)。
以上が、テスト結果比較手段80によるテスト結果比較処理のフローについての説明である。
以上のように、本実施形態に係るデータ処理システムによれば、アプリケーションサーバ上で稼動しているアプリケーションのテストにおいて、リグレッションテスト項目を自動で生成および実行することが可能となる。
また、本実施形態に係るデータ処理システムでは、リグレッションテスト結果の正誤を自動で判定するだけではなく、テストパターンを自律的に学習して増加させることができる。例えば、入力可能な値のうち実際に入力された値がテストデータとして蓄積されていくとともに、テストの手動生成では想定していないような異常系の入力パターンについてもテストデータとして蓄積されていく。その結果、本番運用を長期間続けるほどテスト網羅度を自動で向上させることができる。
さらに、本実施形態に係るデータ処理システムによれば、頻繁に実行されるロジックを自動で判別することにより、短時間で効率的なリグレッションテストを実行可能とすることができる。
また、本実施形態に係るデータ処理システムは、アプリケーションサーバ上で動作するアプリケーションのリグレッションテストを想定して記載している。電文の入出力を記録できる仕組みがあれば、本実施形態の自律学習型テスト手段を利用することは可能である。
(効果)
以下に、本実施形態に係るデータ処理システムの具体的な効果についてまとめる。
第一の効果は、アプリケーションの置換などによるリグレッションテストが自動で最適化されているため、評価工数を大幅に削減できることである。
第二の効果は、テストが自動化されているため、評価漏れや評価ミスがないことである。
第三の効果は、安定稼働を望むユーザに対して、モジュール置換に対する抵抗を減らすことができることである。
第四の効果は、テストパターンが自動で最適化されて成長していくため、本番稼働時間が長ければ長いほど、最適化されたテストが提供されることである。
第五の効果は、自動で蓄積されたデータからテスト項目を自動生成することにより、これまでの関連技術では見落とされていたテスト内容を自動で補えるようになり、テスト網羅度が向上することである。
これまでは、リグレッションテストパターンを自律的に学習し、リグレッションテストの内容を自動で成長させていくような仕組みはなく、人手を一切介さない完全な自動化された製品は提供されてこなかった。
本実施形態に係るデータ処理システムでは、テストパターンを自律的に学習する方法として、テストパターンの入力に本番環境で実行されたアプリケーションの入力電文を用いる。そして、入力電文と、入力電文に対する応答である出力電文とを蓄積し、蓄積したデータをリグレッションテストの入力と出力データとする。その結果、リグレッションテストパターンを自律的に学習し、リグレッションテストの内容を自動で成長させていくことが可能となり、人手を介さない自動化された製品を提供することが可能となる。
また、これまでにも、入力電文をテストパターンの入力とする方法は行われている例はあったが、本番環境での出力電文を活用していく方法はなかった。
それに対し、本実施形態に係るデータ処理システムでは、本番環境における入力電文と出力電文とを蓄積することにより、リグレッションテストパターンを自律的に学習し、リグレッションテストの内容を自動で成長させていくことが可能となる。
また、本実施形態に係るデータ処理システムでは、蓄積したデータを解析することにより、頻繁に実行されているアプリケーションを特定し、特定されたアプリケーションで頻繁に利用される入力電文のテスト優先度を高く設定する。その結果、優先度順にリグレッションテストを実施することによって、短時間で効率的なリグレッションテストを実行可能となる。
さらに、本実施形態に係るデータ処理システムでは、自動的に蓄積されたデータからリグレッションテスト項目を自動生成する。その結果、これまでは見落とされていたリグレッションテスト内容を自動で補えるようになり、リグレッションテスト網羅度が向上される。なお、本実施形態に係るデータ処理システムにおいてリグレッションテストの内容を自動で成長させていくためには、本番環境で一定期間運用し、業務を実行し続けることが効果的である。
(具体例)
次に、本実施形態に係るデータ処理システムについて、具体例を挙げて説明する。
本番稼働しているアプリケーションサーバにおいては、入力電文と出力電文のログを記録する設定で運用する。すなわち、処理手段30は、クライアント端末20からリクエストを受信する度に、リクエストごとに入力電文と出力電文のログを記録していく。そのため、リクエストが増えれば増えるほど、入力電文と出力電文のログが蓄積されていく。
例えば、1秒当たり1件のリクエストがある場合、1時間で3600件、1日で86400件、1か月(30日)で295万件のデータが蓄積されることとなる。このような膨大なデータが自律学習型テスト手段50のテストパターンを形成する材料となる。
本番稼働しているアプリケーションにおいて、テストの再実行が必要となるのは、主にアプリケーションの修正や改修が入った場合である。
テストの再実行が必要となった際に、新規機能については手動でテストすることを想定しているが、リグレッションテストに代表される既存機能のテストについては、自動化されたテストを実施することが望ましい。なぜならば、テストが自動化されれば、テスト工数が削減されることによりリリースまでの期間を短くできたり、手動によるテストミスをなくすことにより品質を保証したりする効果があるからである。
ただし、既存機能全てに対してリグレッションテストを実施することは、時間の制約によって難しい場合がある。そこで、使用頻度の高い機能に優先度付けをするなどしてテストを実行することが望ましい。本実施形態に係るデータ処理システム10では、入力電文蓄積手段71によって、使用頻度を電文単位で記録し、使用頻度の高い順に順位付けをすることにより、テストの優先度を自動で決定する仕組みを提供している。
<テスト優先度作成方法>
ここで、図14を用いて、テストの優先度を記録するテスト優先度テーブル100を作成する例について説明する。図14に示した概念図は、入力電文1〜3を自律学習型テスト手段50で処理することによって、テスト優先度テーブル100が作成される様子を示す。各入力電文(入力電文1〜3)は、プロトコルヘッダとユーザデータとを含む。ユーザデータには、複数の入力項目に対する入力値が格納されている。
各入力電文において、「@」という記号は、次の数値が入力項目であることを示す。そして、「:」という記号は、入力項目と入力値とを区切る記号である。例えば、入力電文1のユーザデータは、入力項目1の入力値がAAA、入力項目2の入力値がBBB、入力項目3の入力値がCCC、入力項目4の入力値がDDD、入力項目5の入力値がEEE、・・・であることを示す。
テスト優先度テーブル100を作成するためには、入力電文のテストパターンを分析する必要がある。ここでは、入力電文のテストパターンを分析する手法として、以下の3つの方法を挙げる。
一つ目の方法は、入力項目ごとにキーワードを入力電文に埋め込んでおき、入力電文に埋め込まれたキーワードを元に入力電文を比較する方法である。
図14の例では、入力電文のユーザデータの先頭文字からキーワードとなる「@」を検索し、「@」が検索にかかったらその次の数値が入力項目となる。また、入力項目と入力値とは「:」で区切られているため、入力項目データを識別できる。入力項目と入力値とのペアを全て抽出し、他の電文と比較することによってテストパターンを分析することができる。
ただし、一つ目の方法の場合、キーワードを埋め込むことにより電文長が長くなるという欠点がある。
二つ目の方法は、キーワードを埋め込まず、ユーザデータの先頭文字から一文字ずつ各入力電文を比較していき、比較し合う電文間の類似性を検証する方法である。例えば、比較し合う電文の90%が一致するなど、高い類似性がある場合に同じテストパターンであると判断する。
二つ目の方法では、電文長が長くなるという欠点はなくなるが、全文の文字比較に多大な時間がかかる可能性がある。
三つ目の方法は、大量データに内在する多種多様なパターンや規則性を高速に自動抽出することを可能とするFAB(Factorized Asymptotic Bayesian)推論技術を利用する方法である。
FAB推論技術を利用すれば、一見不規則なパターンであると思われる多数の電文の中から規則性を見つけることが可能となる。また、パターンから著しく外れた電文を抽出することも可能となるため、効率的にテストパターンを自動生成することができる。
以上が、入力電文のテストパターンの分析方法についての説明である。
入力電文蓄積手段71のデータは、データ整理用タイマーの時間が経過するごとに更新される。そして、その更新されたデータを元にして、自律学習型テスト手段50はテストパターンと優先度を更新していく。このように、自動で最適なテストパターンを更新する仕組みによる自律学習によって、システムが成長していくことを可能とする。
<テスト結果比較方法>
ここで、図15を用いて、同一の入力電文に対応する出力電文とテスト出力電文とを比較する方法について説明する。図15は、出力電文蓄積手段73が格納する出力電文蓄積テーブル200と、テスト出力結果記録手段75が格納するテスト出力結果蓄積テーブル300の電文をテスト結果比較手段80によって比較し、判定結果を判定結果テーブル400として表示する例を示す。なお、判定結果テーブル400は、テスト結果比較手段80に格納される。
例えば、入力電文aaaに対応する出力電文がAAAとして出力電文蓄積手段73に記録されているものとする(出力電文蓄積テーブル200)。アプリケーション実行手段32が何らかの理由で置換され、リグレッションテストが必要となった場合、自律学習型テスト手段50は、入力電文aaaを通信制御手段31に送信する。通信制御手段31が受信した入力電文aaaをアプリケーション実行手段32に送信すると、アプリケーション実行手段32は、受信した入力電文aaaに対して処理を実行し、処理の実行結果をテスト出力結果記録手段75に出力する。その結果、テスト出力結果記録手段75にはテスト出力電文が記録される(テスト出力結果蓄積テーブル300)。
ここで、テスト出力結果記録手段75に記録されたテスト出力電文がAAAである場合、出力電文蓄積手段73に記録された出力結果と、テスト出力結果記録手段75に記録されたテスト出力電文とが同じ出力となる。すなわち、出力電文蓄積手段73に記録された出力結果(AAA)と、テスト出力結果記録手段75に記録されたテスト出力電文(AAA)とが同じとなる。その結果、テスト結果比較手段80は、リグレッションテストで問題なしと判断し、合格判定(OK)を表示する(判定結果テーブル400)。
仮に、テスト出力結果記録手段75に記録されたテスト出力電文がBBBである場合、出力電文蓄積手段73に記録された出力結果と、テスト出力結果記録手段75に記録されたテスト出力電文が違う出力となる。すなわち、テスト結果比較手段80は、出力結果が違うことからリグレッションテストで問題ありと判断し、入力電文と出力電文とを表示し、結果が異なっていることを示し、不合格判定(NG)を表示する。
図15の例では、入力電文bbbに対応する出力電文(BBB)とテスト出力電文(BBB)も一致しているため、合格判定(OK)が表示される(判定結果テーブル400)。
一方、入力電文cccに対応する出力電文(CCC)とテスト出力電文(DEF)とは異なる。そのため、テスト結果比較手段80は、入力電文cccに対しては不合格判定(NG)を表示する(判定結果テーブル400)。
以上が、同一の入力電文に対応する出力電文とテスト出力電文とを比較する方法についての説明である。
(関連技術)
これまでにも、リグレッションテストを自動化してリグレッションテスト工数を削減する製品は提供されてきた。例えば、アプリケーションサーバ上で稼動しているアプリケーションのリグレッションテストのテスト項目を自動で生成・実行し、テスト結果の正誤を自動で判定することにより、リグレッションテストを自動化することはできる。また、自動で生成したリグレッションテスト項目を手動で編集して別のテストパターンの評価をする仕組みは存在した。
しかしながら、これまでは、リグレッションテスト項目を自動で生成するために、手動で作成されたテスト仕様書などの入力データが必要であったため、自動で生成できるリグレッションテスト項目数は限られていた。すなわち、リグレッションテスト項目を増やすためには、手動での編集作業が必要であり、リグレッションテスト項目数を増やすのに多大な工数がかかっていた。
また、入力データの作成を手動で行う場合、テスト設計者が想定するテストケースしか作成することができず、本番環境で発生する想定外のテストを実施することはできなかった。
そのため、多数のリグレッションテスト項目を、手動ではなく、全て自動で作成することにより、リグレッションテスト項目を増やすのに必要だった工数を削減することが求められていた。また、本番環境で発生する想定外のテストケースを作成する方法の提供が求められていた。
本発明の実施形態に係るデータ処理システムは、多数のリグレッションテスト項目を自動で作成することができ、リグレッションテスト項目を増やすことに割く工数を削減することを可能とする。また、本番環境で運用しながらテストデータを蓄積していくことが可能となるため、本番環境で発生する想定外のテストケースを作成することが可能となる。
本発明の実施形態に係るデータ処理システムにおけるデータ処理方法に従った処理は、本実施形態に係る処理を実行するデータ処理プログラムを含むソフトウェアによって実現することが可能である。また、本発明の実施形態に係るデータ処理プログラムを格納したプログラム記録媒体も本発明の範囲に含まれる。プログラム記録媒体としては、ROM、RAM、フラッシュメモリ等の半導体記憶装置、光ディスク、磁気ディスク、光磁気ディスクなどを挙げることができる。
以上、実施形態を参照して本発明を説明してきたが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
1 テスト環境
2 コンピュータ
3 サーバ
7 ストレージ
9 ネットワーク
10 データ処理システム
20 クライアント端末
21 電文送信手段
22 電文受信手段
30 処理手段
31 通信制御手段
32 アプリケーション実行手段
50 自律学習型テスト手段
51 抽出期間指定手段
52 第1テスト電文生成手段
53 順位付け手段
54 上位ランキングテスト抽出手段
55 第2テスト電文生成手段
56 送信手段
71 入力電文蓄積手段
73 出力電文蓄積手段
75 テスト出力結果記録手段
80 テスト結果比較手段
81 電文比較手段
82 比較結果出力手段
100 テスト優先度テーブル
200 出力電文蓄積テーブル
300 テスト出力結果蓄積テーブル
400 判定結果テーブル
711 タイマー設定手段
712 入力電文格納手段
713 判別手段
714 電文受信回数記録・表示手段
715 電文ソート手段
731 出力電文格納手段
732 電文紐付け手段
751 テスト結果記録手段
752 テスト電文紐付け手段

Claims (9)

  1. クライアント端末からの要求として受信した入力電文を用いてアプリケーションの処理を実行することによって前記入力電文に対応する出力電文を生成し、生成した前記出力電文を前記クライアント端末に送信するとともに、前記入力電文と前記出力電文とを出力する処理手段と、
    前記処理手段から取得した前記入力電文を蓄積するとともに、前記処理手段から取得した前記出力電文を対応する前記入力電文と紐付けて蓄積するデータ格納手段と、
    前記データ格納手段から前記入力電文を取得し、取得した前記入力電文を用いてテスト入力電文を自律的に生成し、生成した前記テスト入力電文を前記処理手段に出力する自律学習型テスト手段とを備え、
    前記処理手段は、
    前記自律学習型テスト手段から取得した前記テスト入力電文を用いてアプリケーションの処理を実行することによって前記テスト入力電文に対応するテスト出力電文を生成し、生成した前記テスト出力電文と前記テスト入力電文とを前記データ格納手段に出力し、
    前記データ格納手段は、
    前記処理手段から取得した前記テスト出力電文と、前記テスト出力電文に対応する前記入力電文とを紐付けて蓄積するデータ処理システム。
  2. 同一の電文に対応する前記出力電文および前記テスト出力電文を前記データ格納手段から取得し、取得した前記出力電文と前記テスト出力電文とを比較するテスト結果比較手段を備え、
    前記テスト結果比較手段は、
    アプリケーションのテストにおいて、
    比較した前記出力電文と前記テスト出力電文とが一致した場合、前記テストが正常終了したものと判定し、
    比較した前記出力電文と前記テスト出力電文とが一致しなかった場合、前記テストにエラーがあったものと判定する請求項1に記載のデータ処理システム。
  3. 前記自律学習型テスト手段は、
    前記データ格納手段から前記入力電文を抽出する期間を指定するとともに、指定した期間に蓄積された前記入力電文を抽出する抽出期間指定手段と、
    前記抽出期間指定手段によって抽出された前記入力電文から前記テスト入力電文を生成する第1テスト電文生成手段と、
    前記データ格納手段に格納された全ての前記入力電文、または前記抽出期間指定手段によって抽出された前記入力電文を基に異なる前記入力電文同士の類似性を調べるとともに、前記入力電文のうち類似性を見出したものに対しては同じアプリケーションの処理が実行されたものと判断して同じテストパターンとみなし、同じとみなした前記テストパターンの受信回数を記録し、前記受信回数の多い順に前記テストパターンを並べる順位付け手段と、
    受信回数で順位づけされた前記入力電文のうち、上位何位までの入力電文に対して前記テストを実行するのかを設定する上位ランキングテスト抽出手段と、
    前記上位ランキングテスト抽出手段によって抽出された前記入力電文から前記テスト入力電文を生成する第2テスト電文生成手段と、
    前記第1テスト電文生成手段および前記第2テスト電文生成手段によって生成された前記テスト入力電文を前記処理手段に対して送信する送信手段とを有する請求項2に記載のデータ処理システム。
  4. 前記入力電文の処理を要求として前記処理手段に送信するクライアント端末を備える請求項1乃至3のいずれか一項に記載のデータ処理システム。
  5. 前記データ格納手段は、
    前記入力電文を格納する入力電文蓄積手段と、
    前記出力電文を対応する前記入力電文と紐付けて格納する出力電文蓄積手段と、
    前記テスト出力電文を対応する前記テスト入力電文と紐付けて記録するテスト出力結果記録手段とを有し、
    前記テスト結果比較手段は、
    前記出力電文蓄積手段および前記テスト出力結果記録手段を参照し、同じとみなされる前記入力電文に対応する前記出力電文および前記テスト出力電文を比較する請求項2または3に記載のデータ処理システム。
  6. 前記処理手段は、
    前記入力電文、前記出力電文、前記テスト入力電文および前記テスト出力電文を含む電文を送受信する通信制御手段と、
    前記電文を用いてアプリケーションの処理を実行するアプリケーション実行手段とを備え、
    前記通信制御手段は、
    前記クライアント端末から前記入力電文を受信し、受信した前記入力電文を前記アプリケーション実行手段に送信するリクエスト送信手段と、
    前記アプリケーション実行手段から受信した前記入力電文に対応する前記出力電文を受信し、前記クライアント端末に前記出力電文を送信する応答送信手段と、
    前記クライアント端末から受信した前記入力電文を前記データ格納手段に送信する入力電文送信手段と、
    前記アプリケーション実行手段から受信した前記出力電文を前記データ格納手段に送信する出力電文送信手段と、
    前記自律学習型テスト手段によって生成された前記テスト入力電文を受信するテスト電文受信手段と、
    受信した前記テスト入力電文を前記アプリケーション実行手段に送信するテスト電文送信手段と、
    前記アプリケーション実行手段から受信した前記テスト出力電文を前記データ格納手段に出力するテスト結果出力手段とを備える請求項4に記載のデータ処理システム。
  7. クライアント端末からの要求として入力電文を受信し、
    受信した前記入力電文を用いてアプリケーションの処理を実行することによって前記入力電文に対応する出力電文を生成し、
    生成した前記出力電文を前記クライアント端末に送信し、
    前記入力電文とともに、前記出力電文を対応する前記入力電文と紐付けて蓄積し、
    前記入力電文を用いてテスト入力電文を自律的に生成し、
    前記テスト入力電文を用いてアプリケーションの処理を実行することによって前記テスト入力電文に対応するテスト出力電文を生成し、
    生成した前記テスト出力電文と、前記テスト出力電文に対応する前記入力電文とを紐付けて蓄積するデータ処理方法。
  8. 同一の電文に対応する前記出力電文と前記テスト出力電文とを比較し、
    アプリケーションのテストにおいて、
    比較した前記出力電文と前記テスト出力電文とが一致した場合、前記テストが正常終了したものと判定し、
    比較した前記出力電文と前記テスト出力電文とが一致しなかった場合、前記テストにエラーがあったものと判定する請求項7に記載のデータ処理方法。
  9. クライアント端末からの要求として入力電文を受信する処理と、
    受信した前記入力電文を用いてアプリケーションの処理を実行することによって前記入力電文に対応する出力電文を生成する処理と、
    生成した前記出力電文を前記クライアント端末に送信する処理と、
    前記入力電文とともに、前記出力電文を対応する前記入力電文と紐付けて蓄積する処理と、
    前記入力電文を用いてテスト入力電文を自律的に生成する処理と、
    前記テスト入力電文を用いてアプリケーションの処理を実行することによって前記テスト入力電文に対応するテスト出力電文を生成する処理と、
    生成された前記テスト出力電文と、前記テスト出力電文に対応する前記入力電文とを紐付けて蓄積する処理とをコンピュータに実行させるデータ処理プログラム。
JP2014155631A 2014-07-31 2014-07-31 データ処理システム、データ処理方法およびデータ処理プログラム Active JP6439309B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014155631A JP6439309B2 (ja) 2014-07-31 2014-07-31 データ処理システム、データ処理方法およびデータ処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014155631A JP6439309B2 (ja) 2014-07-31 2014-07-31 データ処理システム、データ処理方法およびデータ処理プログラム

Publications (2)

Publication Number Publication Date
JP2016033697A JP2016033697A (ja) 2016-03-10
JP6439309B2 true JP6439309B2 (ja) 2018-12-19

Family

ID=55452576

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014155631A Active JP6439309B2 (ja) 2014-07-31 2014-07-31 データ処理システム、データ処理方法およびデータ処理プログラム

Country Status (1)

Country Link
JP (1) JP6439309B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3602282A4 (en) * 2017-03-31 2021-01-13 Velocity Technology Solutions, Inc. METHODS AND SYSTEMS FOR TESTING WEB APPLICATIONS

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08212108A (ja) * 1995-02-08 1996-08-20 Kokusai Electric Co Ltd ソフトウェアのテスト方法及び装置
JP4575811B2 (ja) * 2005-03-10 2010-11-04 株式会社野村総合研究所 電文処理システムのテストデータの生成装置、方法、及びプログラム
JP5670156B2 (ja) * 2010-11-01 2015-02-18 株式会社日立システムズ テスト結果照合システム、方法、及びプログラム
JP2013077124A (ja) * 2011-09-30 2013-04-25 Hitachi Ltd ソフトウェアテストケース生成装置

Also Published As

Publication number Publication date
JP2016033697A (ja) 2016-03-10

Similar Documents

Publication Publication Date Title
US10778712B2 (en) Displaying network security events and investigation activities across investigation timelines
KR102471165B1 (ko) 로그 파일들로부터 프로세스 흐름들을 식별하고 흐름을 시각화하기 위한 시스템들 및 방법들
US9363149B1 (en) Management console for network security investigations
US10254934B2 (en) Network security investigation workflow logging
US20200104401A1 (en) Real-Time Measurement And System Monitoring Based On Generated Dependency Graph Models Of System Components
CN107317724B (zh) 基于云计算技术的数据采集系统及方法
US20210081308A1 (en) Generating automated tests based on user interaction with an application
US20200065136A1 (en) Design-time information based on run-time artifacts in a distributed computing cluster
US20200228430A1 (en) Network event automatic remediation service
WO2014148176A1 (ja) 情報収集システム、情報収集方法、及び記憶媒体
CN103152229A (zh) 监控指标项动态配置方法
US20150088959A1 (en) Method and system for automated transaction analysis
JP6198224B2 (ja) 情報収集システム、情報収集方法、及び情報収集プログラム
WO2017023299A1 (en) Composing future tests
JP2012003406A (ja) 障害原因判定ルール検証装置及びプログラム
JP6439309B2 (ja) データ処理システム、データ処理方法およびデータ処理プログラム
US10644971B2 (en) Graph search in structured query language style query
JP2012208565A (ja) ログ管理方法、ログ管理装置、及びプログラム
CN110968475A (zh) 监控网页的方法、装置、电子设备及可读存储介质
JP2018081403A (ja) インシデント管理システム、インシデント管理方法およびコンピュータプログラム
Uytterhoeven et al. Zabbix 4 Network Monitoring: Monitor the performance of your network devices and applications using the all-new Zabbix 4.0
JP5668492B2 (ja) データ処理装置、コンピュータプログラム及びデータ処理方法
JP2011118575A (ja) 障害対策情報取得方法および管理サーバ
US11755453B1 (en) Performing iterative entity discovery and instrumentation
US20240143687A1 (en) System and method for managing information sourced by a primary server that is sent to other servers when a user interacts with a web page without distorting the other servers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180130

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180322

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180828

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180910

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20180918

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181105

R150 Certificate of patent or registration of utility model

Ref document number: 6439309

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150