JP5304449B2 - シナリオ作成プログラム、シナリオ作成装置およびシナリオ作成方法 - Google Patents

シナリオ作成プログラム、シナリオ作成装置およびシナリオ作成方法 Download PDF

Info

Publication number
JP5304449B2
JP5304449B2 JP2009132957A JP2009132957A JP5304449B2 JP 5304449 B2 JP5304449 B2 JP 5304449B2 JP 2009132957 A JP2009132957 A JP 2009132957A JP 2009132957 A JP2009132957 A JP 2009132957A JP 5304449 B2 JP5304449 B2 JP 5304449B2
Authority
JP
Japan
Prior art keywords
business model
unit
scenario
business
procedure
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
JP2009132957A
Other languages
English (en)
Other versions
JP2010282266A (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.)
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 JP2009132957A priority Critical patent/JP5304449B2/ja
Priority to US12/791,265 priority patent/US8307245B2/en
Publication of JP2010282266A publication Critical patent/JP2010282266A/ja
Application granted granted Critical
Publication of JP5304449B2 publication Critical patent/JP5304449B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Description

本発明は、シナリオ作成プログラム、シナリオ作成装置およびシナリオ作成方法に関する。
情報処理システムのテスト担当者などは、例えば、情報処理システムのバグが修正された場合や、情報処理システムに新しい機能が追加された場合に、修正や追加されたアプリが他のアプリに影響を与えていないことを検証するためにテストを行う。このため、テスト担当者は、情報処理システムが改修されるたびに同じようなテストを行うことになる。このようなテストは、「再帰テスト」、「回帰テスト」、「リグレッションテスト」などと呼ばれている。
ここで、図23を用いて従来のテスト手法の一例について説明する。図23は、従来のテスト手法の一例を説明するための図である。図23に示した例において、情報処理システム9は、Webサーバ13と、AP(Application)サーバ14と、DB(Data Base)サーバ15とを有する。また、情報処理システム9は、ネットワーク31を介して、テスト端末11と接続されている。
図23に示した例において、テスト担当者H1は、テストを実施する場合に、テスト端末11に対して、予め決められている操作を行う。例えば、テスト担当者H1は、Webブラウザを開いて、Webブラウザ上に、テスト仕様書において定められている情報を入力する。
テスト端末11は、テスト担当者H1による操作に応じて、HTTP(HyperText Transfer Protocol)リクエスト等をWebサーバ13へ送信する。HTTPリクエスト等を受け付けたWebサーバ13は、APサーバ14との間でリクエストやレスポンスを送受する。また、その間に、APサーバ14は、DBサーバ15との間でリクエストやレスポンスを送受する。なお、以下では、リクエストとレスポンスとを総称して「メッセージ」と呼ぶことがある。
そして、テスト端末11は、例えば、Webサーバ13からレスポンスを受信し、受信したレスポンスに応じた情報をWebブラウザ上に出力する。そして、テスト担当者H1は、Webブラウザ上に出力された情報を確認することにより、テストの合否を判定する。
このようにして、テスト担当者H1は、情報処理システム9のテストを行う。そして、テスト担当者H1は、再帰テストを行う場合、以前に行った操作と同様の操作を行い、以前に行った確認と同様の確認を行う。なお、図23では、1人のテスト担当者によってテストが行われる例を示したが、一般に、このようなテストは複数のテスト担当者によって行われる。
近年では、再帰テストにかかる工数を低減することを目的として、再帰テストの一部を自動的に実施する自動テスト技術が提案されている。かかる自動テスト技術について、図23に示した例を用いて説明する。ここでは、テスト端末11に自動テスト技術が適用されているものとする。かかる場合、テスト端末11は、例えば、テスト担当者H1によって行われた操作手順と、Webサーバ13から受信したレスポンスとを含む情報(以下、「テストデータ」と言う)を生成する。
そして、テスト担当者H1は、再帰テストを行う場合、例えば、DBサーバ15が保持する各種データベースを初期化した後に、テストデータを読み出す操作を行う。テスト端末11は、読み出し操作が行われた場合に、テストデータに含まれる操作手順を実行して、Webサーバ13へリクエストを送信する。そして、テスト端末11は、Webサーバ13からレスポンスを受信し、受信したレスポンスと、テストデータに含まれるレスポンスとが一致するか否かを判定することによりテストの合否判定を行う。このように、テスト担当者H1は、自動テスト技術を用いることにより、予め決められている操作手順を行うことなく、再帰テストを行う。
特開平11−184900号公報 特開2007−264810号公報
しかしながら、上述した従来の自動テスト技術には、テストの合否判定を正しく行えない場合があるという問題があった。図24を用いて具体的に説明する。図24は、従来のテスト手法における問題点を説明するための図である。
図24では、2人のテスト担当者H11およびH12によってテストが行われる例を示している。なお、図24において、実線の矢印は、テスト担当者H11によってテストが行われた場合にサーバ間で送受されるメッセージを示し、破線の矢印は、テスト担当者H12によってテストが行われた場合にサーバ間で送受されるメッセージを示している。
具体的には、図24に示した例において、テスト担当者H11によってテストT11が行われた場合、テスト端末は、時刻t11にWebサーバ13へリクエストを送信している(ステップS11)。その後、Webサーバ13は、時刻t12にAPサーバ14へリクエストを送信し(ステップS12)、APサーバ14は、時刻t17にDBサーバ15へリクエストを送信している(ステップS17)。そして、DBサーバ15は、APサーバ14から受信したリクエストに応答してデータベースを参照または更新し、参照結果や更新結果をAPサーバ14へ送信する。図24に示した例では、DBサーバ15は、時刻t18に参照結果や更新結果を含むレスポンスをAPサーバ14へ送信している(ステップS18)。そして、APサーバ14は、時刻t21にWebサーバ13へレスポンスを送信し(ステップS21)、Webサーバ13は、時刻t22にテスト端末へレスポンスを送信している(ステップS22)。
また、図24に示した例において、テスト担当者H12によってテストT12が実施された場合、テスト端末は、時刻t13にWebサーバ13へリクエストを送信している(ステップS13)。その後、Webサーバ13は、時刻t14にAPサーバ14へリクエストを送信し(ステップS14)、APサーバ14は、時刻t15にDBサーバ15へリクエストを送信している(ステップS15)。そして、DBサーバ15は、時刻t16にAPサーバ14へレスポンスを送信し(ステップS16)、APサーバ14は、時刻t19にWebサーバ13へレスポンスを送信している(ステップS19)。その後、Webサーバ13は、時刻t20にテスト端末へレスポンスを送信している(ステップS20)。
図24に示した例において、上述した従来の自動テスト技術がテスト端末に適用されている場合、テスト端末は、テストT11に対応するテストデータD11と、テストT12に対応するテストデータD12とを生成することになる。ここで、テスト担当者は、テストデータD11を用いて再帰テストを行う場合、DBサーバ15の状態を、テストT11およびT12が実施される前の状態に戻す。
ここで、図24に示すように、テストT11では、テストT12においてDBサーバ15へアクセスされた後に、DBサーバ15へアクセスする処理が行われる。このとき、テストT12によってDBサーバ15のデータが更新される可能性がある。すなわち、テストT11では、テストT12において更新されたテーブルにアクセスする可能性がある。このため、テストT12においてDBサーバ15が更新された場合、テストT11には、更新後のDBサーバ15に対してアクセスすることが求められる。
しかし、テストデータD11を用いてテストT11を実行した場合、テストT12において更新されたDBサーバ15に対してアクセスすることができない。このため、テスト端末は、テストデータD11に含まれるレスポンスと異なるレスポンスをWebサーバ13から受信するおそれがある。このことは、情報処理システムが正常に動作しているにも関わらず、テストの合否判定を正しく行えないという問題を招く。
なお、テストデータD11およびD12の生成時と同様の順序でテストT11およびT12を実行することにより、図24に示した各サーバの動作を再現できるとも考えられる。しかし、各サーバ間でメッセージが送受される順序は、サーバの状況やネットワークの状況によって変動するため、各サーバの動作を再現できるとは限らない。このため、テストデータの生成時と同様の順序でテストを実行した場合であっても、テストの合否判定を正しく行えない場合がある。
上述したように、情報処理システムの分野では、再帰テストが行われることが多いため、再帰テストにかかる工数は増大している。このような状況下で、テストの合否判定を正しく行うことができるテストデータをいかにして作成するかが課題となっていた。
開示の技術は、上記に鑑みてなされたものであって、テストの合否判定を正しく行うことができるテストデータを作成するシナリオ作成プログラム、シナリオ作成装置およびシナリオ作成方法を提供することを目的とする。
本願の開示するシナリオ作成プログラムは、一つの態様において、データベースサーバを含む複数のサーバが接続された情報処理システムの動作を検証するためのシナリオを作成するシナリオ作成プログラムであって、動作検証を行う端末装置によって前記情報処理システムの動作検証が行われている場合に、前記複数のサーバ間で送受されるメッセージを収集する収集手順と、前記収集手順によって収集されたメッセージを関連付ける関連付け手順と、前記関連付け手順によって関連付けられたメッセージ群である業務モデルを、前記データベースサーバにアクセスした時刻の昇順にソートするソート手順と、前記ソート手順によってソートされた業務モデルに基づいてシナリオを作成するシナリオ作成手順とをコンピュータに実行させる。
本願の開示するシナリオ作成プログラムの一つの態様によれば、テストの合否判定を正しく行うことが可能になるシナリオを作成することができるという効果を奏する。
図1は、実施例1における情報処理システムの構成例を示す図である。 図2は、実施例1に係るシナリオ作成装置の構成例を示す図である。 図3は、収集部によるメッセージ収集処理の一例を示す図である。 図4は、収集部によって収集されるメッセージの一例を示す図である。 図5は、関連付け部による関連付け処理の一例を示す図である。 図6は、関連付け部による関連付け処理の一例を示す図である。 図7−1は、更新処理時の排他制御を説明するための図である。 図7−2は、共有ロックを伴う参照処理時の排他制御を説明するための図である。 図7−3は、共有ロックを伴わない参照処理時の排他制御を説明するための図である。 図8−1は、ソート部によるソート処理の一例を示す図である。 図8−2は、ソート部によるソート処理の一例を示す図である。 図9は、入替部によって業務モデルが入れ替えられる条件を示す図である。 図10は、入替部による入替処理の一例を示す図である。 図11は、多重化部によって業務モデルが多重化される条件を示す図である。 図12−1は、多重化部による多重化処理の一例を示す図である。 図12−2は、多重化部による同期情報付与処理の一例を示す図である。 図13は、シナリオ作成装置によるシナリオ作成処理手順を示すフローチャートである。 図14は、ソート部によるソート処理手順を示すフローチャートである。 図15は、入替部による入替処理手順を示すフローチャートである。 図16は、入替部による入替判定処理手順を示すフローチャートである。 図17は、多重化部による多重化処理手順を示すフローチャートである。 図18−1は、多重化部による多重化処理の一例を説明するための図である。 図18−2は、多重化部による多重化処理の一例を説明するための図である。 図18−3は、多重化部による多重化処理の一例を説明するための図である。 図18−4は、多重化部による多重化処理の一例を説明するための図である。 図19は、多重化部による初期化処理手順を示すフローチャートである。 図20は、多重化部による多重化判定処理手順を示すフローチャートである。 図21は、多重化部による同期設定処理手順を示すフローチャートである。 図22は、シナリオ作成プログラムを実行するコンピュータを示す図である。 図23は、従来のテスト手法の一例を説明するための図である。 図24は、従来のテスト手法における問題点を説明するための図である。
以下に、本願の開示するシナリオ作成プログラム、シナリオ作成装置およびシナリオ作成方法の実施例を図面に基づいて詳細に説明する。なお、この実施例により本願の開示するシナリオ作成プログラム、シナリオ作成装置およびシナリオ作成方法が限定されるものではない。
[実施例1における情報処理システムの構成]
まず、図1を用いて、実施例1に係るシナリオ作成装置100を含む情報処理システム1の構成について説明する。図1は、実施例1における情報処理システム1の構成例を示す図である。図1に示した例において、情報処理システム1は、負荷分散装置12と、Webサーバ13と、APサーバ14と、DBサーバ15とを有する。なお、図1に示した例において、Webサーバ13は、複数台存在するものとする。
図1に示すように、負荷分散装置12、Webサーバ13、APサーバ14、DBサーバ15は、それぞれルータ22〜25を介して接続されている。また、図1に示した例において、Webサーバ13とAPサーバ14との間に、ファイアーウォール32が設置されている。また、図1に示した例において、テスト端末11は、ルータ21およびネットワーク31を介して負荷分散装置12と接続されている。また、図1に示した例において、シナリオ作成装置100は、APサーバ14および負荷分散装置12と接続されている。
テスト端末11は、テスト担当者によって操作されるパーソナルコンピュータ等の端末装置である。負荷分散装置12は、テスト端末11からリクエストを受信し、受信したリクエストをWebサーバ13へ転送する。例えば、負荷分散装置12は、複数のWebサーバ13の負荷が均等になるようにリクエストを転送する。Webサーバ13は、テスト端末11からのリクエストに応じて、HTML(HyperText Markup Language)データや画像データなどを含むレスポンスをテスト端末11へ送信する。
APサーバ14は、情報処理システム1によって提供される各種サービスを実現するためのアプリケーションを有する。図1に示した例において、APサーバ14は、Webサーバ13からリクエストを受信し、受信したリクエストに応じて各種処理を行う。具体的には、APサーバ14は、DBサーバ15へリクエストを送信することにより、DBサーバ15から各種データを取得したり、DBサーバ15に保持されている各種データを更新したりする。
DBサーバ15は、各種情報を記憶する。図1に示した例において、DBサーバ15は、APサーバ14からデータベースへのアクセス要求を受信し、データベースへのアクセスを制御する。具体的には、DBサーバ15は、APサーバ14から受信したリクエストに応じて、データベースを参照または更新し、参照結果や更新結果を含むレスポンスをAPサーバ14へ送信する。
このような構成の下、実施例1に係るシナリオ作成装置100は、テスト担当者によって情報処理システム1のテストが実施された場合に、かかるテストを再現するためのテスト用のシナリオを作成する。
具体的には、シナリオ作成装置100は、テスト担当者によって情報処理システム1のテストが実施された場合に、テスト端末11や各サーバ間で送受される各種メッセージを収集する。図1に示した例では、シナリオ作成装置100は、負荷分散装置12が接続されているルータ22からポートモニタリング(キャプチャと表現される場合もある)機能を利用して、テスト端末11と負荷分散装置12との間で送受されるメッセージや、負荷分散装置12とWebサーバ13との間で送受されるメッセージを収集する。また、シナリオ作成装置100は、APサーバ14が接続されているルータ24からポートモニタリング機能を利用して、Webサーバ13とAPサーバ14との間で送受されるメッセージや、APサーバ14とDBサーバ15との間で送受されるメッセージを収集する。
続いて、シナリオ作成装置100は、収集したメッセージのうち、関連するメッセージを関連付けて記憶する。ここで言う「関連するメッセージ」とは、所定のリクエストやレスポンスに応じて各サーバ間で送受されたリクエストやレスポンスを示す。
例えば、負荷分散装置12からWebサーバ13へリクエストReq1が送信され、かかるリクエストReq1に応じてWebサーバ13からAPサーバ14へリクエストReq2が送信された場合、リクエストReq1およびReq2は関連する。また、リクエストReq2に応じてAPサーバ14からDBサーバ15へリクエストReq3が送信され、かかるリクエストReq3に応じてDBサーバ15からAPサーバ14へレスポンスRes1が送信されたものとする。かかる場合、リクエストReq1およびReq2およびReq3、レスポンスRes1は関連する。
なお、以下では、テスト端末11から負荷分散装置12へリクエストが送信されてから、かかるリクエストに応じて負荷分散装置12からテスト端末11へレスポンスが送信されるまでの間を「トランザクション」と呼ぶこととする。また、以下では、シナリオ作成装置100によって関連付けされた同一トランザクション内のメッセージ群を「業務モデル」と呼ぶこととする。
続いて、シナリオ作成装置100は、生成した業務モデルを、DBサーバ15へアクセスを開始した時刻の昇順にソートする。そして、シナリオ作成装置100は、ソートした業務モデルに基づいてシナリオを作成する。
図24に示した例を用いて説明すると、シナリオ作成装置100は、テストT11が実施された場合に、ステップS11、S12、S17、S18、S21、S22において送受されたメッセージを収集する。そして、シナリオ作成装置100は、収集したメッセージを関連付けて業務モデルM1を生成する。また、シナリオ作成装置100は、テストT12が実施された場合に、ステップS13、S14、S15、S16、S19、S20において送受されたメッセージを収集し、業務モデルM2を生成する。
そして、シナリオ作成装置100は、テストT11よりもテストT12の方が先にDBサーバ15にアクセスを開始しているので、業務モデルM2、業務モデルM1の順にソートする。そして、シナリオ作成装置100は、ソートした業務モデルM2、M1に基づいてシナリオを作成する。
このようにして作成されたシナリオは、テストT11、テストT12の順にテストを実施するテストデータとなる。具体的には、テスト端末11によって上記シナリオが実行された場合、まず、業務モデルM2が実行され、続いて、業務モデルM1が実行される。すなわち、業務モデルM1は、業務モデルM2によってDBサーバ15にアクセスされた後に、DBサーバ15にアクセスすることになる。このため、テスト端末11は、情報処理システム1が正常に動作している場合に上記シナリオを実行すると、テストT11およびT12が行われた際に受信したレスポンスと同一のレスポンスをWebサーバ13から受信することができる。このため、テスト端末11は、シナリオ作成装置100によって生成されたシナリオを用いて、テストの合否判定を正しく行うことができる。
このように、実施例1に係るシナリオ作成装置100は、各サーバ間で送受されるメッセージを収集し、同一のトランザクション内で送受されたメッセージを関連付けて業務モデルを生成する。そして、シナリオ作成装置100は、生成した業務モデルを、DBサーバ15へのアクセス開始時刻の昇順にソートすることによりシナリオを作成する。
すなわち、シナリオ作成装置100は、テスト担当者によるテスト実施時におけるDBサーバ15へのアクセス順序と、シナリオ実行時におけるDBサーバ15へのアクセス順序とが同一になるように、シナリオを生成する。これにより、シナリオ作成装置100によって生成されたシナリオは、テストの合否判定を正しく行うことができる。
なお、実施例1に係るシナリオ作成装置100は、上述した処理以外にも種々の処理を行う。例えば、シナリオ作成装置100は、業務モデルをソートした後に、並行して実施しても問題が発生しない業務モデルを多重化してシナリオを作成する。一例を挙げて説明すると、図24に示した例において、テストT11においてアクセスされるデータベースのテーブルと、テストT12においてアクセスされるテーブルとが異なる場合、テストT11とテストT12とは、並行して実施されても問題ない。かかる場合、シナリオ作成装置100は、テストT11に対応する業務モデルと、テストT12に対応する業務モデルとを多重化してシナリオを作成する。以下に、シナリオ作成装置100の構成を説明するとともに、かかる多重化処理等を含めた各種処理について具体的に説明する。
[実施例1に係るシナリオ作成装置の構成]
次に、図2を用いて、実施例1に係るシナリオ作成装置100の構成について説明する。図2は、実施例1に係るシナリオ作成装置100の構成例を示す図である。図2に示した例において、シナリオ作成装置100は、インタフェース(以下、「IF」と言う)部110と、入力部120と、出力部130と、制御部140と、業務モデル記憶部151と、シナリオ記憶部152とを有する。
IF部110は、外部装置との間で各種データを送受する。図1に示した例では、シナリオ作成装置100のIF部110は、負荷分散装置12が接続されているルータ22およびAPサーバ14が接続されているルータ24からポートモニタリング機能を利用して、各サーバ間で送受されるメッセージを受信する。
入力部120は、各種情報や操作指示を入力するための入力デバイスであり、例えば、キーボードやマウスである。テスト担当者は、入力部120を操作することにより、テストを行う。出力部130は、各種情報を出力する出力デバイスであり、例えば、液晶ディスプレイやスピーカである。テスト担当者は、例えば、出力部130に表示される情報を確認することで、テストの合否判定を行う。
制御部140は、制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、シナリオ作成装置100を全体制御する。実施例1における制御部140は、図2に示した例のように、収集部141と、関連付け部142と、ソート部143と、入替部144と、多重化部145と、シナリオ作成部146とを有する。
収集部141は、テスト担当者によって情報処理システム1の動作検証が行われている場合に、各サーバ間で送受されるメッセージを収集する。具体的には、収集部141は、テスト端末11によって負荷分散装置12へリクエストが送信された場合に、負荷分散装置12やWebサーバ13などのサーバ間で送受される各種メッセージを、IF部110を介して収集する。
図3を用いて、収集部141によるメッセージ収集処理を説明する。図3は、収集部141によるメッセージ収集処理の一例を示す図である。図3に示した例では、テスト端末11a〜11cを用いてテストが行われている。図3に示すように、テスト端末11a〜11cを用いてテストが行われている場合、テスト端末11a〜11cから負荷分散装置12へリクエストが送信される。これにより、負荷分散装置12とWebサーバ13との間や、Webサーバ13とAPサーバ14との間や、APサーバ14とDBサーバ15との間において、リクエストやレスポンスが送受される。収集部141は、各サーバ間で送受されるリクエストやレスポンスを収集し、キャプチャデータとして保持する。
ここで、図4を用いて、収集部141によって収集されるメッセージについて説明する。図4は、収集部141によって収集されるメッセージの一例を示す図である。図4に示した例のように、収集部141は、負荷分散装置12からWebサーバ13へ送信されるリクエストとして、例えば、HTTPリクエストや、HTTPリクエストが送信された時刻(タイムスタンプ)などを収集する。また、収集部141は、Webサーバ13から負荷分散装置12へ送信されるレスポンスとして、例えば、HTTPレスポンスや、HTTPレスポンスが送信されたタイムスタンプ、HTTPステータスコードなどを収集する。
また、図4に示すように、収集部141は、Webサーバ13からAPサーバ14へ送信されるリクエストとして、例えば、アプリケーションを識別する情報を含むメッセージや、タイムスタンプなどを収集する。また、収集部141は、APサーバ14からWebサーバ13へ送信されるレスポンスとして、例えば、戻り値や、タイムスタンプなどを収集する。
また、図4に示すように、収集部141は、APサーバ14からDBサーバ15へ送信されるリクエストとして、例えば、SQL文や、制御文、タイムスタンプなどを収集する。また、収集部141は、DBサーバ15からAPサーバ14へ送信されるレスポンスとして、例えば、SQLの実行結果や、戻り値、タイムスタンプなどを収集する。
図2の説明に戻って、関連付け部142は、収集部141によって収集されたメッセージのうち、同一トランザクション内で送受されたメッセージを関連付けて業務モデルを生成する。また、関連付け部142は、生成した業務モデルに対して、DBサーバ15への処理態様を識別するための属性を付与する。そして、関連付け部142は、属性を付与した業務モデルを業務モデル記憶部151に記憶させる。
図5および図6を用いて、関連付け部142による関連付け処理について説明する。図5および図6は、関連付け部142による関連付け処理の一例を示す図である。図5に例示した各メッセージは、同一トランザクション内で送受されたものとする。かかる場合、関連付け部142は、負荷分散装置12とWebサーバ13との間で送受されたメッセージと、Webサーバ13とAPサーバ14との間で送受されたメッセージと、APサーバ14とDBサーバ15との間で送受されたメッセージとを関連付ける。
図6に示した例を用いて説明する。図6に示した例では、テスト端末11は、負荷分散装置12を介して、Webサーバ13へリクエストReq11を送信している。また、Webサーバ13は、負荷分散装置12を介して、テスト端末11へレスポンスRes11を送信している。図6に示した例では、テスト端末11からリクエストReq11が送信されてから、テスト端末11へレスポンスRes11が送信されるまでの間が1個のトランザクションとなる。
かかる場合に、関連付け部142は、図6に示したリクエストReq11〜Req16と、レスポンスRes11〜Res16を関連付けて業務モデルを生成する。そして、関連付け部142は、生成した業務モデルに属性を付与して業務モデル記憶部151に記憶させる。
ここで、業務モデルに付与される属性について補足説明する。実施例1において、関連付け部142は、DBサーバ15に対して更新処理を行う業務モデルに対して、属性「更新系」を付与する。また、関連付け部142は、DBサーバ15に対して更新処理を行わず、かつ、共有ロックを伴う参照処理を行う業務モデルに対して、属性「参照系(共有)」を付与する。また、関連付け部142は、DBサーバ15に対して共有ロックを伴わない参照処理だけを行う業務モデルに対して、属性「参照系(ロックなし)」を付与する。
例えば、業務モデルM3において更新処理と参照処理とが行われる場合、関連付け部142は、業務モデルM3に属性「更新系」を付与する。また、例えば、業務モデルM4において共有ロックを伴う参照処理と、共有ロックを伴わない参照処理とが行われる場合、関連付け部142は、業務モデルM4に属性「参照系(共有)」を付与する。また、例えば、業務モデルM5において共有ロックを伴わない参照処理だけが行われる場合、関連付け部142は、業務モデルM5に属性「参照系(ロックなし)」を付与する。
図7−1〜図7−3を用いて、上述した「更新系」、「参照系(共有ロック)」、「参照系(ロックなし)」について簡単に説明する。図7−1は、更新処理時の排他制御を説明するための図である。また、図7−2は、共有ロックを伴う参照処理時の排他制御を説明するための図である。また、図7−3は、共有ロックを伴わない参照処理時の排他制御を説明するための図である。
図7−1に示すように、任意のトランザクションは、テーブルに対して更新処理を行う場合、排他ロック(EXCLUSIVE LOCK)を取得する。実施例1では、任意のトランザクションによって排他ロックが取得されている場合、他のトランザクションは、同一のテーブルに対して、参照処理および更新処理を行うことができないものとする。
また、図7−2に示すように、任意のトランザクションは、テーブルに対して参照処理を行う場合、共有ロック(SHARED LOCK)を取得することができる。実施例1では、任意のトランザクションによって共有ロックが取得されている場合、他のトランザクショは、同一のテーブルに対して、参照処理を行うことができるが、更新処理を行うことができないものとする。
また、図7−3に示すように、任意のトランザクションは、テーブルに対して参照処理を行う場合、ロックを取得しないこともできる。実施例1では、任意のトランザクションによってロックが取得されずに参照処理が行われている場合、他のトランザクションは、同一のテーブルに対して、参照処理および更新処理を行うことができるものとする。
図2の説明に戻って、ソート部143は、関連付け部142によって生成された業務モデルを、DBサーバ15へのアクセスを開始した時刻の昇順にソートする。具体的には、ソート部143は、業務モデル記憶部151から業務モデルを取得して、取得した業務モデルを結合する。そして、ソート部143は、結合した業務モデルを、DBサーバ15へのアクセス開始時刻の昇順にソートする。
図8−1および図8−2を用いて、ソート部143によるソート処理について説明する。図8−1および図8−2は、ソート部143によるソート処理の一例を示す図である。図8−1の上段は、3個の業務モデルM11〜M13を示している。これは、1回のテストにおいて3個のトランザクションが発生した例を示している。また、図8−1の下段は、2個の業務モデルM21およびM22を示している。これは、1回のテストにおいて2個のトランザクションが発生した例を示している。
なお、図8−1に示した例において、業務モデルの矩形内に示した「(X表更新)」は、業務モデルにおいて、テーブルXに対して更新処理が行われることを示している。また、業務モデルの矩形内に示した「(X表共有)」は、業務モデルにおいて、テーブルXに対して共有ロックを伴う参照処理が行われることを示している。また、業務モデルの矩形内に示した「(X表参照)」は、業務モデルにおいて、テーブルXに対して共有ロックを伴わない参照処理が行われることを示している。また、業務モデルの矩形内に示した「開始」よりも後の部分に示した数値は、DBサーバ15へのアクセスを開始した時刻を示し、「終了」よりも後の部分に示した数値は、DBサーバ15へのアクセスを終了した時刻を示す。
すなわち、図8−1に示した業務モデルM11は、テーブルAに対して参照処理を行い、「12時00分00秒」にDBサーバ15へのアクセスを開始し、「12時00分01秒」にDBサーバ15へのアクセスを終了したことを示している。また、図8−1に示した業務モデルM12は、テーブルBに対して更新処理を行い、「12時02分00秒」にDBサーバ15へのアクセスを開始し、「12時02分01秒」にDBサーバ15へのアクセスを終了したことを示している。
ここで、業務モデル記憶部151に、図8−1に示した業務モデルM11〜M13、M21およびM22が記憶されているものとする。かかる場合に、ソート部143は、図8−2に示す例のように、業務モデル記憶部151から取得した業務モデルM11〜M13、M21およびM22をマージした後に、業務モデルM11、M12、M21、M22、M13の順にソートする。これにより、業務モデルM11、M12、M21、M22、M13は、DBサーバ15へのアクセス開始時刻の昇順に並び替えられる。
図2の説明に戻って、入替部144は、後述する多重化部145によって多重化処理が効率的に行われることを目的として、属性が同一である業務モデル同士が隣接するように、ソート部143によってソートされた業務モデルの順序を入れ替える。具体的には、入替部144は、参照系の業務モデル同士を隣接させ、かつ、更新系の業務モデル同士を隣接させる。このとき、入替部144は、更新系の業務モデルの後に、かかる更新系の業務モデルによって更新されるテーブルを参照する参照系の業務モデルが配置されている場合には、更新系の業務モデルと参照系の業務モデルとの順序を入れ替えない。
実施例1において、入替部144は、隣接交換法を用いて、隣り合う2個の業務モデルを比較しながら、業務モデルの順序を入れ替える。具体的には、入替部144は、アクセス開始時刻が現在時刻に近い業務モデルから入替処理を行うものとする。例えば、入替部144は、図8−2に示した業務モデルに対して入替処理を行う場合、まず、最後尾に配置されている業務モデルM13と、最後から2番目に配置されている業務モデルM22とを比較する。続いて、入替部144は、最後から2番目と3番目に配置されている業務モデルを比較し、続いて、最後から3番目と4番目に配置されている業務モデルを比較する。
図9に、入替部144によって業務モデルが入れ替えられる条件を示す。図9の例は、参照系の業務モデルを、更新系の業務モデルよりも前に配置する条件を示している。図9に示した例において、「現在の業務モデル」は、比較対象の2個の業務モデルのうち、後方に配置されている業務モデルを示し、「直前の業務モデル」は、比較対象の2個の業務モデルのうち、前方に配置されている業務モデルを示す。言い換えれば、「現在の業務モデル」は、比較対象の2個の業務モデルのうち、現在時刻に近い業務モデルを示す。また、図9に示した例において、「参照先/更新先テーブル」は、「現在の業務モデル」と、「直前の業務モデル」とにおいて参照または更新されるテーブルが同一であるか否かを示す。
例えば、入替部144は、図9に示すように、現在の業務モデルの属性が「更新系」である場合、直前の業務モデルの属性に関わらず、比較対象の業務モデルを入れ替えない。これは、上述したように、図9に示した例は、参照系の業務モデルを、更新系の業務モデルよりも前に配置するための条件であるからである。
また、例えば、入替部144は、図9に示すように、現在の業務モデルの属性が「参照系」であり、直前の業務モデルの属性が「更新系」である場合、双方の業務モデルの「参照先/更新先テーブル」が同一であるか否かを判定する。そして、双方の業務モデルの更新先テーブルが同一である場合、入替部144は、双方の業務モデルを入れ替えない。
これは、同一のテーブルに対してアクセスする業務モデルが「更新系、参照系」の順に整列している場合、双方の業務モデルは、かかる順に処理することが求められるからである。例えば、テーブルAに対して更新処理を行う業務モデルM6の後に、テーブルAに対して参照処理を行う業務モデルM7が配置されている場合、業務モデルM7は、業務モデルM6によってテーブルAが更新された後に実行されることが求められる。したがって、入替部144は、上記例の場合には、業務モデルM6およびM7の順序を入れ替えない。
一方、上記例において、双方の業務モデルの「参照先/更新先テーブル」が異なる場合、入替部144は、双方の業務モデルを入れ替える。これは、上述したように、実施例1における入替部144は、参照系の業務モデルを、更新系の業務モデルよりも前に配置するからである。
ここで、図10を用いて、入替部144による入替処理について説明する。図10は、入替部144による入替処理の一例を示す図である。図10の上段は、ソート部143によってソートされた業務モデルの例を示す。なお、図10の上段に示した業務モデルは、図8−2に示した業務モデルと同様である。入替部144は、図10の上段に例示した業務モデルを、図9に示した条件にしたがって入れ替える。具体的には、入替部144は、図10の下段に示すように、業務モデルM11、M21、M12、M22、M13の順に入れ替える。このように、入替部144は、図9に示した条件にしたがって、ソート部143によってソートされた業務モデルの順序を入れ替える。
図2の説明に戻って、多重化部145は、入替部144によって入替処理が行われた業務モデルを多重化する。具体的には、多重化部145は、入替部144によって入替処理が行われた業務モデルのうち、並行して実行してもよい業務モデルを並列に並び替える。実施例1において、多重化部145は、隣接交換法を用いて、隣り合う2個の業務モデルを比較しながら、業務モデルの順序を入れ替える。具体的には、多重化部145は、入替部144によって入替処理が行われた業務モデルのうち、後方に配置されている業務モデルから多重化処理を行う。
図11に、多重化部145によって業務モデルが多重化される条件を示す。多重化部145は、図11に示した条件にしたがって、入替部144によって入れ替えされた業務モデルを多重化する。
例えば、多重化部145は、図11に示すように、比較対象の2個の業務モデルの「参照先/更新先テーブル」が異なる場合に、かかる2個の業務モデルを並列に並び替える。これは、2個の業務モデルの「参照先/更新先テーブル」が異なる場合、かかる2個の業務モデルを並行して実行してもよいからである。
また、多重化部145は、図11に示すように、比較対象の2個の業務モデルが共に「参照系」である場合に、「参照先/更新先テーブル」が同一であるか否かに関わらず、比較対象の2個の業務モデルを並列に並び替える。これは、2個の業務モデルが「参照系」である場合、「参照先/更新先テーブル」が同一であるか否かに関わらず、かかる2個の業務モデルを並行して実行してもよいからである。
ここで、図12−1を用いて、多重化部145による多重化処理について説明する。図12−1は、多重化部145による多重化処理の一例を示す図である。図12−1の上段は、入替部144によって入替処理が行われた業務モデルの例を示す。なお、図12−1の上段に示した業務モデルは、図10の下段に示した業務モデルと同様である。
多重化部145は、図12−1の上段に例示した業務モデルを、図11に示した条件にしたがって入れ替える。具体的には、多重化部145は、図12−1の下段に示すように、業務モデルM11、M21およびM12を並列に並び替え、また、業務モデルM22およびM13を並列に並び替える。図12−1の下段に示した業務モデルは、業務モデルM11、M21およびM12が並行に実行され、業務モデルM22およびM13が並行に実行されることを示している。
また、多重化部145は、上述した多重化処理の他に、同期処理を行うことを示す情報(以下、「同期情報」と言う)を付与する処理を行う。具体的には、多重化部145は、図11の備考に示した条件を満たす場合に、同期情報を付与する処理を行う。
かかる処理について例を挙げて説明する。例えば、隣接する2個の業務モデルが、「業務モデルM8、業務モデルM9」の順に配置されているものとする。そして、業務モデルM8が参照系であり、業務モデルM9が更新系であるものとする。かかる場合に、多重化部145は、業務モデルM8の実行が終了した後に、業務モデルM9が実行されるように、業務モデルM8と業務モデルM9との間に、同期情報を付与する。これは、参照系の業務モデルM8が実行されている途中で、業務モデルM9が実行されることを防止するためである。
図12−2を用いて、多重化部145による同期情報付与処理について説明する。図12−2は、多重化部145による同期情報付与処理の一例を示す図である。図12−2の上段は、入替部144によって入替処理が行われた業務モデルの例を示す。なお、図12−2に示した業務モデルのうち、業務モデルM31〜M37およびM39は、全て同一のテーブルに対して参照または更新を行うものとする。また、すなわち、図12−2に示した業務モデルのうち、業務モデルM38は、業務モデルM31〜M37およびM39と異なるテーブルに対して更新処理を行う。
かかる場合に、多重化部145は、図11に示した条件にしたがって、図12−2の上段に例示した業務モデルを、図12−2の下段に示すように、業務モデルを並び替える。そして、多重化部145は、業務モデルM31〜M33と、業務モデルM34との間に、同期情報を付与する。すなわち、多重化部145は、業務モデルM31〜M33の実行が終了するまで、業務モデルM34を実行させないことを示す同期情報を付与する。これにより、多重化部145は、業務モデルM31〜M33の実行が終了する前に、業務モデルM34が実行されることを防止することができる。
また、多重化部145は、業務モデルM35およびM36と、業務モデルM37およびM38との間に、同期情報を付与する。これにより、多重化部145は、業務モデルM35およびM36の実行が終了する前に、業務モデルM37およびM38が実行されることを防止することができる。
図2の説明に戻って、シナリオ作成部146は、多重化部145によって多重化処理が行われた業務モデルに基づいてシナリオを作成し、作成したシナリオをシナリオ記憶部152に格納する。シナリオ作成部146によって作成されたシナリオは、テスト担当者によってテストが行われた際にDBサーバ15へアクセスされた順序と同一の順序でDBサーバ15へアクセスを行う。このため、シナリオ作成部146によって作成されたシナリオは、テストの合否判定を正しく行うことができる。また、シナリオ作成部146によって作成されたシナリオは、図11に示した条件を満たす業務モデルが並行して実行される。このため、シナリオ作成部146によって作成されたシナリオは、テストを実行する時間を短くすることができる。
なお、シナリオ作成部146は、テストを実行する時間を短くすることが求められていない場合などには、ソート部143によってソートされた業務モデルに基づいてシナリオを作成してもよい。
[シナリオ作成処理手順]
次に、図13を用いて、シナリオ作成装置100によるシナリオ作成処理の手順について説明する。図13は、シナリオ作成装置100によるシナリオ作成処理手順を示すフローチャートである。
図13に示すように、テスト担当者によって情報処理システム1の動作検証が行われている場合に(ステップS11肯定)、シナリオ作成装置100の収集部141は、各サーバ間で送受されるメッセージを収集する(ステップS12)。
続いて、関連付け部142は、収集部141によって収集されたメッセージのうち、同一トランザクション内で送受されたメッセージを関連付けて業務モデルを生成する(ステップS13)。
続いて、ソート部143は、ソート処理を行う(ステップS14)。具体的には、ソート部143は、関連付け部142によって生成された業務モデルを、DBサーバ15へのアクセスを開始した時刻の昇順にソートする。なお、ソート部143によるソート処理については、図14を用いて後述する。
続いて、入替部144は、入替処理を行う(ステップS15)。具体的には、入替部144は、属性が同一である業務モデル同士が隣接するように、ソート部143によってソートされた業務モデルの順序を入れ替える。なお、入替部144による入替処理については、図15および図16を用いて後述する。
続いて、多重化部145は、多重化処理を行う(ステップS16)。具体的には、多重化部145は、入替部144によって入替処理が行われた業務モデルを多重化する。なお、多重化部145による多重化処理については、図17〜図21を用いて後述する。
そして、シナリオ作成部146は、多重化部145によって多重化処理が行われた業務モデルに基づいてシナリオを作成し、作成したシナリオをシナリオ記憶部152に格納する(ステップS17)。
[ソート処理手順]
次に、図14を用いて、図13のステップS14に示したソート処理の手順について説明する。図14は、ソート部143によるソート処理手順を示すフローチャートである。なお、以下では、図8−1および図8−2に示した例を用いながら説明する。
まず、図14に示した例において、ソート部143は、業務モデル記憶部151に記憶されている業務モデルを結合した後に、結合した業務モデルを配列Z(i)に代入する。例えば、業務モデル記憶部151が図8−1に示した状態である場合、ソート部143は、Z(1)〜Z(5)に、それぞれ業務モデルM22、M21、M13、M12、M11を代入する。
そして、ソート部143は、図14に示すように、変数nに要素数を代入する(ステップS101)。ここで言う「要素数」とは、業務モデル記憶部151に記憶されている業務モデルの数を示す。例えば、業務モデル記憶部151が図8−1に示した状態である場合、業務モデルの数は「5」であるので、ソート部143は、nに「5」を代入する。
続いて、ソート部143は、条件「n≦1」が満たされるまで、ステップS102〜S110における処理手順を繰り返し行う。ここでは、「n=5」であるため、条件「n≦1」を満たしていない。したがって、ソート部143は、変数iに「1」を代入する(ステップS103)。
そして、ソート部143は、条件「i=n」が満たされるまで、ステップS104〜S108における処理手順を繰り返し行う。ここでは、「n=5」、かつ、「i=1」であるので、条件「i=n」を満たしていない。したがって、ソート部143は、Z(i)の業務モデルにおけるDBサーバ15へのアクセス開始時刻と、Z(i+1)の業務モデルにおけるDBサーバ15へのアクセス開始時刻とを比較する(ステップS105)。
そして、Z(i)におけるアクセス開始時刻が、Z(i+1)におけるアクセス開始時刻以下である場合、ソート部143は、Z(i)に代入されている業務モデルと、Z(i+1)に代入されている業務モデルとを入れ替える(ステップS106)。具体的には、ソート部143は、図14に示すように、Z(i)に代入されている業務モデルを、ワーク変数wに代入した後に、Z(i+1)に代入されている業務モデルをZ(i)に代入し、ワーク変数wに代入した業務モデルをZ(i+1)に代入する。
なお、本明細書において、「時刻Aが時刻Bよりも大きい」と表記する場合、時刻Aが時刻Bよりも現在時刻に近い時刻であることを示すものとする。言い換えれば、「時刻Aが時刻Bよりも小さい」と表記する場合、時刻Aが時刻Bよりも過去であることを示す。
一方、Z(i)におけるアクセス開始時刻が、Z(i+1)におけるアクセス開始時刻よりも大きい場合、ソート部143は、Z(i)に代入されている業務モデルと、Z(i+1)に代入されている業務モデルとを入れ替えない。
ここでは、「i=1」であるので、ソート部143は、Z(1)とZ(2)とを比較する。すなわち、上記例の場合、ソート部143は、業務モデルM22のアクセス開始時刻と、業務モデルM21のアクセス開始時刻とを比較する。図8−1に示すように、業務モデルM22のアクセス開始時刻は、業務モデルM21のアクセス開始時刻よりも大きいので、ソート部143は、業務モデルM22と、業務モデルM21との順序を入れ替えない。
続いて、ソート部143は、変数iをインクリメントする(ステップS107)。ここでは、ソート部143は、変数iを「2」に更新する。すなわち、「n=5」、かつ、「i=2」であるので、ステップS104における条件「i=n」を満たしていない。したがって、ソート部143は、ステップS105〜S107における処理を行う。具体的には、ソート部143は、Z(2)とZ(3)とを比較する。
すなわち、上記例の場合、ソート部143は、業務モデルM21のアクセス開始時刻と、業務モデルM13のアクセス開始時刻とを比較する。図8−1に示すように、業務モデルM21のアクセス開始時刻は、業務モデルM13のアクセス開始時刻以下であるので、ソート部143は、業務モデルM21と、業務モデルM13との順序を入れ替える。
このように、ソート部143は、ステップS104における条件「i=n」が満たされるまで、ステップS104〜S108における処理手順を繰り返し行う。そして、条件「i=n」を満たした場合、ソート部143は、変数nをデクリメントする(ステップS109)。そして、ソート部143は、ステップS102における条件「n≦1」が満たされるまで、ステップS102〜S110における処理手順を繰り返し行う。
[入替処理手順]
次に、図15を用いて、図13のステップS15に示した入替処理の手順について説明する。図15は、入替部144による入替処理手順を示すフローチャートである。なお、図15では、図10に示した例を用いながら説明する。また、図15において、配列Z(i)には、図14に示した処理手順が実行された後の業務モデルが代入されているものとする。すなわち、ここでは、Z(1)〜Z(5)には、それぞれ業務モデルM13、M22、M21、M12、M11が代入されている。
まず、入替部144は、図15に示すように、変数nに要素数を代入する(ステップS201)。上記例の場合、業務モデルの数は「5」であるので、入替部144は、nに「5」を代入する。
続いて、入替部144は、条件「n≦1」が満たされるまで、ステップS202〜S211における処理手順を繰り返し行う。ここでは、「n=5」であるため、条件「n≦1」を満たしていない。したがって、入替部144は、変数iに「1」を代入する(ステップS203)。
そして、入替部144は、条件「i=n」が満たされるまで、ステップS204〜S209における処理手順を繰り返し行う。ここでは、「n=5」、かつ、「i=1」であるので、条件「i=n」を満たしていない。したがって、入替部144は、Z(i)とZ(i+1)とを比較して入替判定処理を行う(ステップS205)。なお、入替部144により入替判定処理については図16を用いて後述する。
入替判定処理の結果、「入替処理を行う」と判定した場合(ステップS206肯定)、入替部144は、Z(i)に代入されている業務モデルと、Z(i+1)に代入されている業務モデルとを入れ替える(ステップS207)。具体的には、入替部144は、図15に示すように、Z(i)に代入されている業務モデルを、ワーク変数wに代入した後に、Z(i+1)に代入されている業務モデルをZ(i)に代入し、ワーク変数wに代入した業務モデルをZ(i+1)に代入する。
入替判定処理の結果、「入替処理を行わない」と判定した場合(ステップS206否定)、入替部144は、Z(i)に代入されている業務モデルと、Z(i+1)に代入されている業務モデルとを入れ替えない。
続いて、入替部144は、変数iをインクリメントする(ステップS208)。ここでは、入替部144は、変数iを「2」に更新する。すなわち、「n=5」、かつ、「i=2」であるので、ステップS204における条件「i=n」を満たしていない。したがって、入替部144は、ステップS205〜S208における処理を行う。
このように、入替部144は、ステップS204における条件「i=n」が満たされるまで、ステップS204〜S208における処理手順を繰り返し行う。そして、条件「i=n」を満たした場合、入替部144は、変数nをデクリメントする(ステップS210)。そして、入替部144は、ステップS202における条件「n≦1」が満たされるまで、ステップS202〜S211における処理手順を繰り返し行う。
[入替処理手順]
次に、図16を用いて、図15のステップS205に示した入替判定処理の手順について説明する。図16は、入替部144による入替判定処理手順を示すフローチャートである。なお、図16では、図15に示した例と同様に、配列Z(i)には、図14に示した処理手順が実行された後の業務モデルが代入されているものとする。
入替部144は、入替判定処理を行う場合、まず、Z(i)の業務モデルにおいて参照または更新されるテーブルの名称を変数ZT(i)に代入する(ステップS301)。また、入替部144は、Z(i+1)の業務モデルにおいて参照または更新されるテーブルの名称を変数ZT(i+1)に代入する(ステップS301)。
続いて、入替部144は、Z(i)の業務モデルが「更新系」である場合(ステップS302肯定)、「入替処理を行わない」と判定する(ステップS303)。具体的には、入替部144は、Z(i)とZ(i+1)とを入れ替える処理を行わないと判定する。これは、図9に示した条件のうち、「現在の業務モデルの属性」が「更新系」である場合を示している。
一方、Z(i)の業務モデルが「更新系」でない場合(ステップS302否定)、入替部144は、ZT(i)とZT(i+1)とが等しいか否かを判定する(ステップS304)。そして、ZT(i)とZT(i+1)とが等しい場合(ステップS304肯定)、入替部144は、「入替処理を行わない」と判定する(ステップS305)。これは、図9に示した条件のうち、「現在の業務モデルの属性」が「参照系(共有)」または「参照系(ロックなし)」であり、かつ、「参照先/更新先テーブル」が「同一」である場合を示している。
一方、ZT(i)とZT(i+1)とが異なる場合(ステップS304否定)、入替部144は、「入替処理を行う」と判定する(ステップS306)。これは、図9に示した条件のうち、「現在の業務モデルの属性」が「参照系(共有)」または「参照系(ロックなし)」であり、かつ、「参照先/更新先テーブル」が「相違」である場合を示している。
上記例を用いて説明すると、「i=1」である場合、Z(i)=Z(1)の業務モデルは、業務モデルM13であり、Z(i+1)=Z(2)の業務モデルは、業務モデルM22である。図10に示すように、業務モデルM13の属性は、参照系(共有)である(ステップS302否定)。また、図10に示すように、業務モデルM13と業務モデルM22の「参照先/更新先テーブル」は、テーブルBであるので、「同一」である(ステップS304肯定)。したがって、「i=1」である場合、入替部144は、業務モデルM13と業務モデルM22とを入れ替える処理を行わないと判定する。
[多重化処理手順]
次に、図17および図18−1〜図18−4を用いて、図13のステップS16に示した多重化処理の手順について説明する。図17は、多重化部145による多重化処理手順を示すフローチャートである。図18−1〜図18−4は、多重化部145による多重化処理の一例を説明するための図である。
図18−1には、多重化処理対象の業務モデルM101〜M121を示す。図18−1に例示した業務モデルM101〜M121は、入替部144によって入替処理が行われており、それぞれZ(1)〜Z(21)に代入されている。
また、図18−2には、多重化部145によって多重化処理が行われる場合に用いられる配列Y(j、k)を示す。多重化部145は、配列Z(i)に代入されている業務モデルを、配列Y(j、k)に代入することにより多重化処理を行う。ここで、配列Y(j、k)のうち、同一の行(j)に代入された業務モデルは、並行して実行されることを示す。
また、図18−3には、配列X(j)を示す。かかる配列X(j)は、配列Y(j、k)のうち、行(j)に格納されている業務モデルの数を示す。また、図18−4には、配列W(j)を示す。かかる配列W(j)は、配列Y(j、k)のうち、行(j)において同期処理を行うか否かを示す。
なお、図18−2に示した配列Y(j、k)、図18−3に示した配列X(j)、図18−4に示した配列W(j)は、多重化部145によって多重化処理が行われた後の状態を示している。
以下に、図18−1〜図18−4に示した例を用いながら、図17に示した処理手順について説明する。なお、初期状態において、配列Y(j、k)には、空であるものとする。
まず、図17に示すように、多重化部145は、初期化処理を行う(ステップS401)。具体的には、多重化部145は、配列X(j)および配列W(j)に「0」を代入する。なお、多重化部145による初期化処理については、図19を用いて後述する。
続いて、多重化部145は、変数nに要素数を代入し、変数iに「1」を代入する(ステップS402)。図18−1に示した例では、業務モデルの数は「21」であるので、多重化部145は、nに「21」を代入する。
続いて、多重化部145は、条件「n≦1」が満たされるまで、ステップS403〜S417における処理手順を繰り返し行う。ここでは、「n=21」であるので、条件「n≦1」を満たしていない。したがって、多重化部145は、変数jにiを代入する(ステップS404)。ここでは、「i=1」であるので、多重化部145は、変数jに「1」を代入する。
続いて、多重化部145は、条件「j<1」が満たされるまで、ステップS405〜S413における処理手順を繰り返し行う。ここでは、「j=1」であるので、条件「j<1」を満たしていない。したがって、多重化部145は、変数kにX(j)を代入する(ステップS406)。ここでは、「j=1」であり、「X(1)=0」であるので、多重化部145は、変数kに「0」を代入する。
続いて、多重化部145は、条件「k<1」が満たされるまで、ステップS407〜S411における処理手順を繰り返し行う。ここでは、「k=0」であるので、条件「k<1」を満たしている。したがって、多重化部145は、変数jをデクリメントする(ステップS412)。ここでは、「j=1」であるので、多重化部145は、変数jを、「1」から「1」を減算した値「0」に更新する。
続いて、多重化部145は、ステップS405における条件「j<1」を満たしているか否かを判定する。ここでは、「j=0」であるので、条件「j<1」を満たしている。したがって、多重化部145は、ステップS414における処理手順を行う。
具体的には、多重化部145は、変数jを「0」から「1」に更新する。また、多重化部145は、X(j)に「X(j)+1」を代入する。ここでは、「j=1」であり、「X(1)=0」であるので、X(1)に「0+1」を代入する。また、多重化部145は、変数kにX(j)を代入する。ここでは、「X(1)=1」であるので、多重化部145は、変数kに「1」を代入する。また、多重化部145は、Y(j、k)にZ(i)を代入する。ここでは、「i=1」であり、「j=1」であり、「k=1」であり、Z(1)には、業務モデルM101が代入されているので、多重化部145は、図18−2に示したように、Y(1、1)に業務モデルM101を代入する。
続いて、多重化部145は、同期設定処理を行う(ステップS415)。なお、多重化部145による同期設定処理については、図21を用いて後述する。続いて、多重化部145は、変数nをデクリメントし、変数iをインクリメントする。ここでは、多重化部145は、変数nを「21」から「20」に更新し、変数iを「1」から「2」に更新する。
続いて、多重化部145は、ステップS403における条件「n≦1」を満たしているか否かを判定する。ここでは、「n=20」であるので、条件「n≦1」を満たしていない。したがって、多重化部145は、変数jにiを代入する(ステップS404)。ここでは、「i=2」であるので、多重化部145は、変数jに「2」を代入する。
続いて、多重化部145は、ステップS405における条件「j<1」を満たしているか否かを判定する。ここでは、「j=2」であるので、条件「j<1」を満たしていない。したがって、多重化部145は、変数kにX(j)を代入する(ステップS406)。ここでは、「j=2」であり、「X(2)=0」であるので、多重化部145は、変数kに「0」を代入する。
続いて、多重化部145は、ステップS407における条件「k<1」を満たしているか否かを判定する。ここでは、「k=0」であるので、条件「k<1」を満たしている。したがって、多重化部145は、変数jを、「2」から「1」に更新する(ステップS412)。
続いて、多重化部145は、ステップS405における条件「j<1」を満たしているか否かを判定する。ここでは、「j=1」であるので、条件「j<1」を満たしていない。したがって、多重化部145は、変数kにX(j)を代入する(ステップS406)。ここでは、「j=1」であり、「X(1)=1」であるので、多重化部145は、変数kに「1」を代入する。
続いて、多重化部145は、ステップS407における条件「k<1」を満たしているか否かを判定する。ここでは、「k=1」であるので、条件「k<1」を満たしていない。したがって、多重化部145は、多重化判定処理を行う(ステップS408)。なお、多重化部145により多重化判定処理については、図20を用いて後述する。
多重化判定処理の結果、多重化を行うことを決定した場合、多重化部145は、変数kをデクリメントする(ステップS410)。一方、多重化を行わないことを決定した場合、多重化部145は、ステップS414における処理手順を行う。
なお、ここでは、多重化部145は、多重化を行わないことを決定するので、ステップS414における処理手順を行う。具体的には、多重化部145は、変数jを「1」から「2」に更新する。また、多重化部145は、X(j)に「X(j)+1」を代入する。ここでは、「j=2」であり、「X(2)=0」であるので、X(2)に「0+1」を代入する。また、多重化部145は、変数kにX(j)を代入する。ここでは、「X(2)=1」であるので、多重化部145は、変数kに「1」を代入する。また、多重化部145は、Y(j、k)にZ(i)を代入する。ここでは、「i=2」であり、「j=2」であり、「k=1」であり、Z(2)には、業務モデルM102が代入されているので、多重化部145は、図18−2に示したように、Y(2、1)に業務モデルM102を代入する。
このようにして、多重化部145は、ステップS403における条件「n≦1」を満たすまで、上述した処理手順を行う。これにより、図18−1に示した配列Z(i)に代入されている業務モデルM101〜M121は、図18−2に示したように、配列Y(j、k)に代入される。図18−2に示した例では、同一の行(j)に代入されている業務モデルが多重化されていることを示している。例えば、業務モデルM101およびM103が多重化されていることを示している。そして、図18−2に示した例では、業務モデルM101およびM103が並行して実行された後に、業務モデルM102、M105、M107が並行して実行されることを示している。そして、最後に、図18−2に示した例では、業務モデルM118およびM120が実行されることを示している。
[初期化処理手順]
次に、図19を用いて、図17のステップS401に示した初期化処理の手順について説明する。図19は、多重化部145による初期化処理手順を示すフローチャートである。
図19に示すように、多重化部145は、まず、変数nに要素数を代入する(ステップS501)。続いて、多重化部145は、条件「n≦1」が満たされるまで、ステップS502〜S505における処理手順を繰り返し行う。
具体的には、多重化部145は、配列X(n)および配列W(n)に「0」を代入する(ステップS503)。続いて、多重化部145は、変数nをデクリメントする(ステップS504)。すなわち、多重化部145は、配列X(n)の要素(1)〜X(n)と、配列W(n)の要素W(1)〜W(n)に、「0」を代入する。
[多重化判定処理手順]
次に、図20を用いて、図17のステップS408に示した多重化判定処理の手順について説明する。図20は、多重化部145による多重化判定処理手順を示すフローチャートである。
多重化部145は、多重化判定処理を行う場合、まず、Z(i)の業務モデルにおいて参照または更新されるテーブルの名称を変数ZT(i)に代入する(ステップS601)。また、多重化部145は、Y(j、k)の業務モデルにおいて参照または更新されるテーブルの名称を変数YT(j、k)に代入する(ステップS601)。
続いて、多重化部145は、Z(i)の業務モデルが「更新系」であり(ステップS602肯定)、かつ、ZT(i)とYT(j、k)とが等しい場合(ステップS603肯定)、「多重化処理を行わない」と判定する(ステップS604)。
一方、多重化部145は、Z(i)に代入されている業務モデルが「更新系」であり(ステップS602肯定)、かつ、ZT(i)とYT(j、k)とが異なる場合(ステップS603否定)、「多重化処理を行う」と判定する(ステップS605)。
また、多重化部145は、Z(i)に代入されている業務モデルが「更新系」でない場合(ステップS602否定)、Y(j、k)に代入されている業務モデルが「更新系」であるか否かを判定する(ステップS606)。
そして、多重化部145は、Y(j、k)に代入されている業務モデルが「更新系」であり(ステップS606肯定)、かつ、ZT(i)とYT(j、k)とが等しい場合(ステップS607肯定)、「多重化処理を行わない」と判定する(ステップS608)。
一方、Y(j、k)に代入されている業務モデルが「更新系」であり(ステップS606肯定)、かつ、ZT(i)とYT(j、k)とが異なる場合(ステップS607否定)、多重化部145は、「多重化処理を行う」と判定する(ステップS609)。
また、多重化部145は、Y(j、k)に代入されている業務モデルが「更新系」でない(ステップS606否定)、「多重化処理を行う」と判定する(ステップS610)。このように、多重化部145は、図11に示した条件に従って、多重化処理を行うか否かを決定する。
[同期設定処理手順]
次に、図21を用いて、図17のステップS415に示した同期設定処理の手順について説明する。図21は、多重化部145による同期設定処理手順を示すフローチャートである。
図21に示すように、多重化部145は、同期設定処理を行う場合、まず、変数jをデクリメントする(ステップS701)。続いて、多重化部145は、変数jが「1」よりも小さいか否かを判定する(ステップS702)。
そして、多重化部145は、変数jが「1」よりも小さい場合、処理を終了する。一方、多重化部145は、変数jが「1」以上である場合、X(j)の値を変数kに代入する(ステップS703)。
続いて、多重化部145は、条件「k≦1」が満たされるまで、ステップS704〜S708における処理手順を繰り返し行う。具体的には、多重化部145は、Z(i)とY(j、k)とを比較し、Z(i)が更新系、かつ、Y(j、k)が参照系である場合、同期設定は不要であると判定する(ステップS705)。そして、多重化部145は、変数kをデクリメントする(ステップS706)。
一方、多重化部145は、Z(i)が更新系でないか、または、Y(j、k)が参照系でない場合、同期設定が必要であると判定する(ステップS705)。そして、多重化部145は、変数jをインクリメントするとともに、W(j)に「1」を代入する(ステップS707)。
例えば、多重化部145は、図18−1に示した業務モデルM101〜M121に対して多重化処理を行った場合、配列W(j)に図18−4に示した値を代入する。これは、配列Y(j、k)のうち、「j=3〜6」の行において、同期情報を付与していることを示す。
[実施例1の効果]
上述してきたように、実施例1に係るシナリオ作成装置100は、各サーバ間で送受されるメッセージを収集し、同一のトランザクション内に送受されたメッセージを関連付けて業務モデルを生成する。そして、シナリオ作成装置100は、生成した業務モデルを、DBサーバ15へのアクセスを開始した時刻の昇順にソートすることによりシナリオを作成する。これにより、シナリオ作成装置100は、テストの合否判定を正しく行うことができるシナリオを作成することができる。
また、実施例1に係るシナリオ作成装置100は、DBサーバ15へのアクセスを開始した時刻の昇順にソートした業務モデルを多重化するので、テストの実行時間が短いシナリオを作成することができる。
さらに、シナリオ作成装置100によって生成されたシナリオは、多重化されているので、負荷テストに用いることもできる。また、シナリオ作成装置100によって生成されたシナリオは、各サーバ間で送受されたメッセージを保持しているので、テストの検証結果がNGになった場合に、どのサーバ間でエラーが発生したかを特定することができる。これにより、シナリオ作成装置100によって生成されたシナリオを用いると、容易かつ短時間でエラー箇所を特定することができる。
ところで、本願の開示するシナリオ作成装置等は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例2では、本願の開示するシナリオ作成装置等の他の実施例について説明する。
[業務モデルの属性]
上記実施例1では、図9や図11に示したように、隣接する2個の業務モデルについて、「参照先/更新先テーブル」が同一であるか否かを判定する例を示した。ここで、1個の業務モデルによって複数のテーブルに参照処理や更新処理が行われることも考えられる。かかる場合、入替部144や多重化部145は、比較対象の2個の業務モデルによって参照処理や更新処理が行われるテーブルが1個でも重複する場合に、「参照先/更新先テーブル」が「同一」であると判定する。言い換えれば、入替部144や多重化部145は、比較対象の2個の業務モデルによって参照処理や更新処理が行われるテーブルが全て異なる場合に、「参照先/更新先テーブル」が「相違」であると判定する。
例えば、現在の業務モデルがテーブルA、B、Cに対して更新処理を行い、直前の業務モデルがテーブルC、D、Eに対して参照処理を行う場合、入替部144や多重化部145は、現在の業務モデルと、直前の業務モデルとの「参照先/更新先テーブル」が「同一」であると判定する。これは、双方の業務モデルがテーブルCに対して参照処理または更新処理を行うからである。
また、例えば、現在の業務モデルがテーブルA、B、Cに対して更新処理を行い、直前の業務モデルがテーブルD、Eに対して参照処理を行う場合、入替部144や多重化部145は、現在の業務モデルと、直前の業務モデルとの「参照先/更新先テーブル」が「相違」であると判定する。これは、双方の業務モデルが全て異なるテーブルに対して参照処理または更新処理を行うからである。
[プログラム]
上記実施例1で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図22を用いて、上記の実施例1におけるシナリオ作成装置100と同様の機能を有するシナリオ作成プログラムを実行するコンピュータの一例を説明する。
図22は、シナリオ作成プログラムを実行するコンピュータを示す図である。図22に示すように、コンピュータ1000は、RAM(Random Access Memory)1010と、キャッシュ1020と、HDD1030と、ROM(Read Only Memory)1040と、CPU(Central Processing Unit)1050とを有する。RAM1010、キャッシュ1020、HDD1030、ROM1040、CPU1050は、バス1060によって接続されている。
ROM1040には、上記の実施例1におけるシナリオ作成装置100と同様の機能を発揮するシナリオ作成プログラムが予め記憶されている。具体的には、ROM1040には、収集プログラム1041と、関連付けプログラム1042と、ソートプログラム1043と、入替プログラム1044と、多重化プログラム1045と、シナリオ作成プログラム1046とが記憶されている。
そして、CPU1050は、これらの収集プログラム1041と、関連付けプログラム1042と、ソートプログラム1043と、入替プログラム1044と、多重化プログラム1045と、シナリオ作成プログラム1046とを読み出して実行する。これにより、図22に示すように、収集プログラム1041は、収集プロセス1051になり、関連付けプログラム1042は、関連付けプロセス1052になり、ソートプログラム1043は、ソートプロセス1053になる。また、入替プログラム1044は、入替プロセス1054になり、多重化プログラム1045は、多重化プロセス1055になり、シナリオ作成プログラム1046は、シナリオ作成プロセス1056になる。
なお、収集プロセス1051は、図2に示した収集部141に対応し、関連付けプロセス1052は、図2に示した関連付け部142に対応し、ソートプロセス1053は、図2に示したソート部143に対応する。また、入替プロセス1054は、図2に示した入替部144に対応し、多重化プロセス1055は、図2に示した多重化部145に対応し、シナリオ作成プロセス1056は、図2に示したシナリオ作成部146に対応する。
また、HDD1030には、図22に示すように、シナリオ作成関連データ1031が設けられる。かかるシナリオ作成関連データ1031は、図2に示した業務モデル記憶部151やシナリオ記憶部152に対応する。
なお、上記した各プログラム1041〜1046については、必ずしもROM1040に記憶させなくてもよい。例えば、コンピュータ1000に挿入されるフレキシブルディスク(FD)、CD−ROM、MOディスク、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラム1041〜1046を記憶させてもよい。または、コンピュータ1000の内外に備えられるハードディスクドライブ(HDD)などの「固定用の物理媒体」にプログラム1041〜1046を記憶させてもよい。または、公衆回線、インターネット、LAN、WANなどを介してコンピュータ1000に接続される「他のコンピュータ(またはサーバ)」にプログラム1041〜1046を記憶させてもよい。そして、コンピュータ1000は、上述したフレキシブルディスク等から各プログラムを読み出して実行するようにしてもよい。
1 情報処理システム
9 情報処理システム
11 テスト端末
12 負荷分散装置
13 Webサーバ
14 APサーバ
15 DBサーバ
21〜26 ルータ
31 ネットワーク
32 ファイアーウォール
100 シナリオ作成装置
110 IF部
120 入力部
130 出力部
140 制御部
141 収集部
142 関連付け部
143 ソート部
144 入替部
145 多重化部
146 シナリオ作成部
151 業務モデル記憶部
152 シナリオ記憶部
1000 コンピュータ
1010 RAM
1020 キャッシュ
1030 HDD
1031 シナリオ作成関連データ
1040 ROM
1041 収集プログラム
1042 関連付けプログラム
1043 ソートプログラム
1044 入替プログラム
1045 多重化プログラム
1046 シナリオ作成プログラム
1050 CPU
1051 収集プロセス
1052 関連付けプロセス
1053 ソートプロセス
1054 入替プロセス
1055 多重化プロセス
1056 シナリオ作成プロセス
1060 バス

Claims (8)

  1. データベースサーバを含む複数のサーバが接続された情報処理システムの動作を検証するためのシナリオを作成するシナリオ作成プログラムであって、
    動作検証を行う端末装置によって前記情報処理システムの動作検証が行われている場合に、前記複数のサーバ間で送受されるメッセージを収集する収集手順と、
    前記収集手順によって収集されたメッセージを関連付ける関連付け手順と、
    前記関連付け手順によって関連付けられたメッセージ群である業務モデルを、前記データベースサーバにアクセスした時刻の昇順にソートするソート手順と、
    前記ソート手順によってソートされた業務モデルに基づいてシナリオを作成するシナリオ作成手順と
    をコンピュータに実行させることを特徴とするシナリオ作成プログラム。
  2. 前記ソート手順によってソートされた業務モデルのうち、隣接する業務モデルによってアクセスされる前記データベースサーバのテーブルが異なる場合に、該隣接する業務モデルを並列に並び替える多重化手順をさらにコンピュータに実行させ、
    前記シナリオ作成手順は、前記多重化手順によって並び替えられた業務モデルに基づいてシナリオを作成することを特徴とする請求項1に記載のシナリオ作成プログラム。
  3. 前記多重化手順は、前記ソート手順によってソートされた業務モデルのうち、隣接する業務モデルの双方が前記データベースサーバへ参照処理だけを行う場合に、該隣接する業務モデルを並列に並び替えることを特徴とする請求項2に記載のシナリオ作成プログラム。
  4. 前記データベースサーバに対して更新処理を行う業務モデルである更新系の業務モデル同士が隣接し、かつ、前記データベースサーバに対して参照処理を行う業務モデル同士が隣接するように、前記ソート手順によってソートされた業務モデルの順序を入れ替える入替手順をさらにコンピュータに実行させ、
    前記多重化手順は、前記入替手順によって入れ替えられた業務モデルを並列に並び替えることを特徴とする請求項2または3に記載のシナリオ作成プログラム。
  5. 前記入替手順は、更新系の業務モデルの後に、参照系の業務モデルが配置されており、かつ、該更新系の業務モデルと該参照系の業務モデルによってアクセスされるテーブルが同一である場合には、該参照系の業務モデルと該更新系の業務モデルとの順序を維持し、更新系の業務モデルの後に、参照系の業務モデルが配置されており、かつ、該更新系の業務モデルと該参照系の業務モデルによってアクセスされるテーブルが異なる場合には、該参照系の業務モデルと該更新系の業務モデルとの順序を入れ替えることを特徴とする請求項4に記載のシナリオ作成プログラム。
  6. 前記入替手順は、参照系の業務モデルの後に、参照系の業務モデルが配置されており、かつ、双方の業務モデルによってアクセスされるテーブルが異なる場合には、双方の業務モデルの順序を入れ替えることを特徴とする請求項4または5に記載のシナリオ作成プログラム。
  7. データベースサーバを含む複数のサーバが接続された情報処理システムの動作を検証するためのシナリオを作成するシナリオ作成装置であって、
    動作検証を行う端末装置によって前記情報処理システムの動作検証が行われている場合に、前記複数のサーバ間で送受されるメッセージを収集する収集部と、
    前記収集部によって収集されたメッセージを関連付ける関連付け部と、
    前記関連付け部によって関連付けられたメッセージ群である業務モデルを、前記データベースサーバにアクセスした時刻の昇順にソートするソート部と、
    前記ソート部によってソートされた業務モデルに基づいてシナリオを作成するシナリオ作成部と
    を備えたことを特徴とするシナリオ作成装置。
  8. データベースサーバを含む複数のサーバが接続された情報処理システムの動作を検証するためのシナリオを作成するシナリオ作成装置によるシナリオ作成方法であって、
    前記シナリオ作成装置が、
    動作検証を行う端末装置によって前記情報処理システムの動作検証が行われている場合に、前記複数のサーバ間で送受されるメッセージを収集する収集ステップと、
    前記収集ステップによって収集されたメッセージを関連付ける関連付けステップと、
    前記関連付けステップによって関連付けられたメッセージ群である業務モデルを、前記データベースサーバにアクセスした時刻の昇順にソートするソートステップと、
    前記ソートステップによってソートされた業務モデルに基づいてシナリオを作成するシナリオ作成ステップと
    を含んだことを特徴とするシナリオ作成方法。
JP2009132957A 2009-06-02 2009-06-02 シナリオ作成プログラム、シナリオ作成装置およびシナリオ作成方法 Expired - Fee Related JP5304449B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009132957A JP5304449B2 (ja) 2009-06-02 2009-06-02 シナリオ作成プログラム、シナリオ作成装置およびシナリオ作成方法
US12/791,265 US8307245B2 (en) 2009-06-02 2010-06-01 Scenario creating apparatus, scenario creating method, and storage medium storing scenario creating program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009132957A JP5304449B2 (ja) 2009-06-02 2009-06-02 シナリオ作成プログラム、シナリオ作成装置およびシナリオ作成方法

Publications (2)

Publication Number Publication Date
JP2010282266A JP2010282266A (ja) 2010-12-16
JP5304449B2 true JP5304449B2 (ja) 2013-10-02

Family

ID=43221654

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009132957A Expired - Fee Related JP5304449B2 (ja) 2009-06-02 2009-06-02 シナリオ作成プログラム、シナリオ作成装置およびシナリオ作成方法

Country Status (2)

Country Link
US (1) US8307245B2 (ja)
JP (1) JP5304449B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856211B1 (en) * 2010-09-30 2014-10-07 Amazon Technologies, Inc. Flexible network testing
US9282051B2 (en) * 2013-06-26 2016-03-08 Netronome Systems, Inc. Credit-based resource allocator circuit
WO2017094845A1 (ja) * 2015-12-04 2017-06-08 日本電気株式会社 ファイル情報収集システム、方法および記憶媒体
US10282283B2 (en) * 2016-01-28 2019-05-07 Accenture Global Solutions Limited Orchestrating and providing a regression test
US10747632B2 (en) * 2017-08-11 2020-08-18 T-Mobile Usa, Inc. Data redundancy and allocation system
US10534698B2 (en) * 2017-08-24 2020-01-14 Salesforce.Com, Inc. Stateless self-sufficient test agents
US10810110B1 (en) * 2018-01-25 2020-10-20 Intuit Inc. Methods, systems, and articles of manufacture for testing web services using a behavior-driven development domain specific language framework

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4803683A (en) * 1985-08-30 1989-02-07 Hitachi, Ltd. Method and apparatus for testing a distributed computer system
JPH09114693A (ja) * 1995-10-13 1997-05-02 Toshiba Corp プログラム開発支援装置及びプログラム実行装置
JPH09212385A (ja) * 1996-02-02 1997-08-15 Mitsubishi Electric Corp 並列プログラムデバッグ装置
JP3395163B2 (ja) 1997-12-08 2003-04-07 沖電気工業株式会社 通信ソフトウェアの自動検証装置及び方法
JP3594471B2 (ja) 1997-12-19 2004-12-02 株式会社日立製作所 シナリオ表示装置および方法
JP2000222228A (ja) * 1999-01-29 2000-08-11 Hitachi Ltd リソース占有順序の検証によるデッドロック防止方法
US7082552B2 (en) * 2000-02-08 2006-07-25 Mips Tech Inc Functional validation of a packet management unit
US7168093B2 (en) * 2001-01-25 2007-01-23 Solutionary, Inc. Method and apparatus for verifying the integrity and security of computer networks and implementation of counter measures
DE10335811A1 (de) * 2003-08-05 2005-03-03 Rohde & Schwarz Gmbh & Co. Kg Nachrichtenanalyseeinrichtung und Verfahren zum Analysieren
JP4610240B2 (ja) 2004-06-24 2011-01-12 富士通株式会社 分析プログラム、分析方法及び分析装置
JP4549231B2 (ja) 2005-05-17 2010-09-22 富士通株式会社 サービス処理状況分析プログラム、サービス処理状況分析方法、およびサービス処理状況分析装置
JP4804978B2 (ja) 2006-03-27 2011-11-02 富士通株式会社 負荷試験プログラム
JP4918805B2 (ja) 2006-03-31 2012-04-18 富士通株式会社 システム分析プログラム、システム分析方法およびシステム分析装置
US7747740B2 (en) * 2007-10-30 2010-06-29 Cisco Technology, Inc. Troubleshooting of Wireless Client Connectivity Problems in Wireless Networks
US20110030059A1 (en) * 2009-07-30 2011-02-03 Greenwald Lloyd G Method for testing the security posture of a system
US7996723B2 (en) * 2009-12-22 2011-08-09 Xerox Corporation Continuous, automated discovery of bugs in released software

Also Published As

Publication number Publication date
US20100306595A1 (en) 2010-12-02
US8307245B2 (en) 2012-11-06
JP2010282266A (ja) 2010-12-16

Similar Documents

Publication Publication Date Title
JP5304449B2 (ja) シナリオ作成プログラム、シナリオ作成装置およびシナリオ作成方法
JP5903822B2 (ja) 設定制御装置、設定制御方法および設定制御プログラム
TW201015364A (en) Method and apparatus for merging EDA coverage logs of coverage data
TW201019149A (en) Method and apparatus for merging EDA coverage logs of coverage data
EP2095236A2 (en) Method, system and computer program for testing software applications based on multiple data sources
CN111563218B (zh) 一种页面的修复方法及装置
CN106712981A (zh) 一种节点变更通知方法及装置
JP5463717B2 (ja) アプリケーションテスト生成プログラム、アプリケーションテスト生成方法及びアプリケーションテスト装置
JP5708078B2 (ja) 検証装置、検証方法および検証プログラム
WO2022171001A1 (zh) 一种存储系统的gc性能预测方法、系统、介质及设备
JP7100563B2 (ja) 匿名化システムおよび匿名化方法
JPWO2007007410A1 (ja) メッセージ解析装置、制御方法および制御プログラム
CN107436814A (zh) 一种资源编排模板的生成方法及装置
CN101802791B (zh) 动态地址跟踪
Hierons et al. Scenarios‐based testing of systems with distributed ports
US20060122818A1 (en) Method, system and program product for defining and recording threshold-qualified count events of a simulation by testcases
WO2021151314A1 (zh) Dns自动化性能测试方法、装置、设备及可读存储介质
CN111651235A (zh) 一种虚拟机组任务管理方法及装置
TWI544342B (zh) 伺服器品質驗證方法及其系統
US20090083747A1 (en) Method for managing application programs by utilizing redundancy and load balance
US8825843B2 (en) System and methods for monitoring a geographic information system
US8160092B1 (en) Transforming a declarative description of a packet processor
JP2003228497A (ja) 障害通知システムおよび障害通知プログラム
US20060041416A1 (en) Circuit design simulation
CN114143182B (zh) 一种配置分布式搜索引擎集群的节点的方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130515

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130610

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5304449

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees