JP2014182646A - ソフトウェアの実行を監視する装置、方法およびプログラム - Google Patents

ソフトウェアの実行を監視する装置、方法およびプログラム Download PDF

Info

Publication number
JP2014182646A
JP2014182646A JP2013057283A JP2013057283A JP2014182646A JP 2014182646 A JP2014182646 A JP 2014182646A JP 2013057283 A JP2013057283 A JP 2013057283A JP 2013057283 A JP2013057283 A JP 2013057283A JP 2014182646 A JP2014182646 A JP 2014182646A
Authority
JP
Japan
Prior art keywords
software
peripheral information
image data
acquired
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013057283A
Other languages
English (en)
Other versions
JP6238221B2 (ja
Inventor
Masaru Kumagai
賢 熊谷
Mayumi Goto
真由美 後藤
Tadahiko Nakamura
忠彦 中村
Hirotaka Matsumoto
博隆 松本
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2013057283A priority Critical patent/JP6238221B2/ja
Priority to US14/196,054 priority patent/US9047408B2/en
Publication of JP2014182646A publication Critical patent/JP2014182646A/ja
Application granted granted Critical
Publication of JP6238221B2 publication Critical patent/JP6238221B2/ja
Active 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/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】問題個所の特定および問題報告の作成が容易であり、問題報告の閲覧者が問題個所を直観的かつ容易に把握できる問題報告の作成を実現する。
【解決手段】ソフトウェア実行部100と、このソフトウェア実行部100によるソフトウェアの実行を監視するソフトウェア監視部200と、を備え、ソフトウェア監視部200は、ソフトウェア実行部100がソフトウェアを実行することにより表示装置400に表示される画面の画像データを取得する画像取得部220と、この画像取得部220により画像データが取得された時点におけるソフトウェアおよびハードウェアの状態に関する情報である周辺情報を取得する周辺情報取得部230と、画像取得部220により取得された画像データに基づく画像と共に周辺情報取得部230により取得された周辺情報の内容が表示されるように、周辺情報を画像データに付加する保存画像処理部250と、を備える。
【選択図】図1

Description

本発明は、ソフトウェアの実行を監視するツールに関し、監視対象のソフトウェアの実行に伴って表示される画像を保存(screen capturing)する装置、方法およびプログラムに関する。
ソフトウェアの開発においては、ソフトウェアが提供する機能やユーザ・インターフェイス等についての様々なテストが行われる。そして、テストにおいて問題が発見された場合には、ソフトウェアの開発担当者(プログラマ等)等がテスト結果を解析し、解決策を講じ、必要に応じてソフトウェアの修正や改変等が行われる。したがって、ソフトウェアのテストにおいて問題が発見された際には、そのテストが行われた状況に関する情報を収集し、テスト結果の解析者に提供することが望ましい。
例えば、特許文献1に開示される従来技術は、ソフトウェアの評価処理においてエラーが発生した場合に、エラーについての詳細情報、ソースファイル識別子を記載したエラー報告メールを作成して、ソース管理者の電子メールアドレス宛に送信することが開示されている。また、特許文献2に開示される従来技術は、ソフトウェアのテストを対象とするものではないが、システムの動作に関する履歴情報から障害の解析に必要な情報を取得し、取得した情報に基づいて障害の発生の有無を解析することが開示されている。
特開2003−91432号公報 特開2011−199507号公報
ソフトウェアのテストに伴う問題報告において、問題が発生した場面を特定する手段の一つとして、ソフトウェアの実行中に表示装置に表示されるGUI(Graphical User Interface)等による画面(以下、表示画面)を対象として、問題が発生した時点の表示画面の画像データを保存(screen capturing)することが、一般的に行われる。
しかし、問題が発生した時点の表示画面のみでは、その問題が発生した際の周辺情報(ソフトウェアの実行環境や問題発生に至るプロセス等)が不足しているため、発生した問題の適切な解析を行うことが難しかった。この場合、テスト結果の解析者がテストの実施者に依頼して同じ問題が発生する状況を再現し、周辺情報を取得することが考えられる。しかし、発生した問題によっては、全く同じ状況を再現することが困難な場合がある。また、同じ状況を再現できる場合であっても、周辺情報を取得するために再度、問題を発生させるようにソフトウェアを実行させることは、テストの実施者にとって、言わば二度手間であり、作業効率が良くない。
本発明は、このような課題に鑑み、ソフトウェアを実行した際の特定の場面に関して、その場面を特定する情報と共に、その場面における周辺情報を容易に取得可能とすることを目的とする。
上記の目的を達成するため、本発明は、次のような装置として実現される。この装置は、ソフトウェアの実行を監視する装置であって、監視対象のソフトウェアを実行する実行部と、この実行部による監視対象のソフトウェアの実行を監視する監視部と、を備える。そして、監視部は、実行部がソフトウェアを実行することにより表示装置に表示される画面の画像データを取得する画像取得部と、この画像取得部により画像データが取得された時点におけるソフトウェアおよびソフトウェアが実行されているハードウェアの状態に関する情報である周辺情報を取得する周辺情報取得部と、画像取得部により取得された画像データに基づく画像を表示装置に表示させた場合に、この画像と共に周辺情報取得部により取得された周辺情報の内容が表示されるように、周辺情報を画像データに付加する保存画像処理部と、を備える。
より好ましくは、周辺情報取得部は、画像取得部により画像データが取得された時点で、実行部によるソフトウェアの実行中にエラーが発生していた場合、このエラーの種類に基づき、その種類のエラーが発生した場合に取得する周辺情報として予め定められた情報を取得する。
また、上記の装置において、監視部が、ユーザによるソフトウェアの実行に関わる操作の履歴情報を取得する操作履歴取得部をさらに備える構成としても良い。そして、周辺情報取得部は、操作履歴取得部により取得された履歴情報に基づき、画像取得部により画像データが取得される前の所定期間に特定の操作が行われたと判断される場合に、この特定の操作が行われた場合に取得する周辺情報として予め定められた情報を取得する。
また、より詳しくは、保存画像処理部は、画像データのファイル・フォーマットがテキストを記憶する領域を有する場合に、この領域に周辺情報を記述することにより、画像データに周辺情報を付加する。
あるいは、保存画像処理部は、周辺情報を示す画像を画像データに基づく画像に埋め込むことにより、画像データに周辺情報を付加する。
また、本発明は、次のような方法としても実現される。この方法は、コンピュータが、ソフトウェアを実行すると共に、その実行を監視する方法であって、監視対象のソフトウェアを実行することにより表示装置に表示される画面の画像データを取得するステップと、画像データが取得された時点におけるソフトウェアおよびソフトウェアが実行されているハードウェアの状態に関する情報である周辺情報を取得するステップと、画像データに基づく画像を表示装置に表示させた場合に、この画像と共に周辺情報取得部により取得された周辺情報の内容が表示されるように、周辺情報を画像データに付加し、当該周辺情報が付加された当該画像データを記憶装置に格納するステップと、を含む。
さらにまた、本発明は、コンピュータを制御して上述した装置の各機能を実現するプログラム、あるいは、コンピュータに上記の各ステップに対応する処理を実行させるプログラムとしても実現される。このプログラムは、磁気ディスクや光ディスク、半導体メモリ、その他の記録媒体に格納して配布したり、ネットワークを介して配信したりすることにより、提供することができる。
本発明によれば、ソフトウェアを実行した際における問題発生時などの特定の場面に関して、その場面を特定する情報と共に、その場面における周辺情報を容易に取得することが可能となる。
本実施形態が適用されるコンピュータ・システムの機能構成の一例を示す図である。 キー・テーブルの構成例を示す図である。 操作テーブルの構成例を示す図である。 周辺情報テーブルの構成例を示す図である。 周辺情報定義テーブルの構成例を示す図である。 ソフトウェア監視部の動作を示すフローチャートである。 JPEGのテキスト・フィールドの記述例を示す図である。 周辺情報取得部の動作例を示すフローチャートである。 本実施形態による監視情報の例を示す図である。 本実施形態のコンピュータ・システムを構成するのに好適なハードウェア構成例を示す図である。
以下、添付図面を参照して、本発明の実施形態について詳細に説明する。
<システム構成>
図1は、本実施形態が適用されるコンピュータ・システムの機能構成の一例を示す図である。
図1に示すシステムは、テスト対象であるシステムを実現するソフトウェア(アプリケーション・プログラム、以下、対象ソフトウェアと記す)を実行するソフトウェア実行部100と、この対象ソフトウェアの実行状態を監視するソフトウェア監視部200と、ソフトウェア監視部200による監視結果の情報を保持する監視情報保持部300を備える。また、図1に示すように、本システムには、ソフトウェア実行部100が対象ソフトウェアを実行することによって生成される画面を表示するための表示装置400が接続されている。本実施形態では、監視情報保持部300に保持される監視情報として、ソフトウェア実行部100により表示装置400に表示された画面を保存(screen capturing)して取得される画像データ(キャプチャ画像)に基づく情報が作成される。
ソフトウェア実行部100は、対象ソフトウェアを実行する。この対象ソフトウェアの実行は、対象ソフトウェアのユーザが実際に対象ソフトウェアを使用する場合と同様の実行環境で行われる。ただし、本実施形態においてソフトウェア実行部100は、ソフトウェア監視部200が動作し、ソフトウェア実行部100による動作を監視している環境下で、対象ソフトウェアを実行する。
ソフトウェア監視部200は、図1に示すように、操作履歴取得部210と、画像取得部220と、周辺情報取得部230と、周辺情報データベース(DB)240と、保存画像処理部250とを備える。そして、ソフトウェア実行部100による対象ソフトウェアの実行状態を監視し、監視情報を作成して監視情報保持部300に格納する。
操作履歴取得部210は、ソフトウェア監視部200による監視下で実行される、ソフトウェア実行部100による対象ソフトウェアの実行に関するユーザの操作の履歴情報を取得し保存する。履歴として保存される対象となる操作は、対象ソフトウェアの種類やテストの内容に応じて設定される。具体的には、例えば、キーボードによるキー入力操作やマウス等のポインティング・デバイスを用いた操作等が対象となる。
画像取得部220は、監視情報保持部300に格納する監視情報を作成するために、ソフトウェア実行部100による対象ソフトウェアの実行に伴って表示装置400に表示された画面の画像データを取得する。画像取得部220による画像データの取得は、ユーザの操作にしたがって行われる。また、対象ソフトウェアの実行中にエラーが発生した場合等のように、監視情報を取得することが望ましい何らかのイベントが発生した場合には、その発生を契機として自動的に画像データの取得を行うようにしても良い。画像データを取得する範囲は、対象ソフトウェアによる表示画面のみであっても良いし、本実施形態が適用されたコンピュータがいわゆるマルチウィンドウの表示機能を有する場合は、対象ソフトウェアによる表示画面を表示したウィンドウを含む画面全体であっても良い。
周辺情報取得部230は、画像取得部220によりソフトウェア実行部100による表示画面の画像データが取得された際に、その時点での周辺情報を取得する。ここで、周辺情報とは、画像取得部220により画像データが取得された時点における対象ソフトウェアおよびハードウェアの状態に関する情報である。例えば、画像データが取得された時点までの対象ソフトウェアに基づく処理の履歴、対象ソフトウェアから呼び出そうとする資源(リソース)、メモリの空き容量、CPUの使用率などの情報が周辺情報とされる。なお、具体的にいずれの周辺情報を取得するかについては、対象ソフトウェアの種類やテストの内容、画像データが取得された際の状況等に応じて設定することができる。周辺情報取得部230の具体的な動作の内容については後述する。
周辺情報DB240は、周辺情報取得部230が周辺情報を取得するために参照するテーブルを格納している。図1に示す例では、周辺情報DB240には、キー・テーブル241、操作テーブル242、周辺情報テーブル243、周辺情報定義テーブル244が設定されている。これらのテーブルの詳細については後述する。
保存画像処理部250は、画像取得部220により取得された画像データに、周辺情報取得部230により取得された周辺情報を付加する。本実施形態では、画像データに基づく画像を表示装置400に表示させた場合に、この画像と共に周辺情報の内容が表示されるように、周辺情報を画像データに付加する。これにより、ソフトウェア監視部200による監視結果を閲覧したり解析したりする際には、画像データに基づく画像を表示させることにより、その画像データが取得された際の周辺情報も参照することが可能となる。画像データに周辺情報を付加するための具体的な手法については後述する。
監視情報保持部300は、ソフトウェア監視部200による監視結果として、保存画像処理部250により作成された、周辺情報が付加された画像データを保持する。表示装置400は、液晶ディスプレイ等のディスプレイ装置により実現され、対象ソフトウェアを実行することにより生成される表示画面を表示する。
<周辺情報DBの構成例>
図2〜図5を参照して、周辺情報DB240を構成するテーブルについて説明する。
上記のように、本実施形態において、周辺情報DB240は、キー・テーブル241、操作テーブル242、周辺情報テーブル243、周辺情報定義テーブル244の4種類のテーブルを持つものとする。
図2は、キー・テーブル241の構成例を示す図である。
図2に示すように、キー・テーブル241には、レコードID、エラーID、操作IDの各ID(識別情報)が登録される。エラーIDは、対象ソフトウェアを実行中に発生したエラーを特定するIDである。例えば、エラーが発生したことに応じて監視情報が作成される場合は、発生したエラーを特定するために、このエラーIDが用いられる。操作IDは、監視情報が作成する際に行われたユーザによる操作を特定するIDである。レコードIDは、キー・テーブル241の各レコードを示すIDである。キー・テーブル241の各レコードには、エラーIDのみが登録されているレコード、エラーIDと操作IDの両方が登録されているレコード、操作IDのみが登録されているレコードの三つのパターンがある。
図3は、操作テーブル242の構成例を示す図である。
図3に示すように、操作テーブル242には、操作IDと、各操作IDに対応付けられた操作の内容とが登録される。操作IDにより特定される操作は、単一の操作である場合もあるし、複数の操作が所定の順番で行われたことを表す操作列(シーケンス)である場合もある。また、登録される操作の内容は、何らかの操作が行われたこと(肯定的内容)を特定するものと、行われるべき何らかの操作が行われなかったこと(否定的内容)を特定するものとがある。
図4は、周辺情報テーブル243の構成例を示す図である。
図4に示すように、周辺情報テーブル243には、レコードID、周辺情報IDの各IDが登録される。レコードIDは、図2に示したキー・テーブル241に登録されたレコードIDである。周辺情報IDは、取得すべき周辺情報を特定するIDである。ここで、キー・テーブル241においてエラーIDのみが登録されたレコード(レコードR1とする)と、エラーIDと操作IDとが登録されたレコード(レコードR2とする)とを考える。この場合、前者のレコードR1のレコードIDに対応する周辺情報IDとしては、キー・テーブル241のレコードR1に登録されたエラーIDにより特定されるエラー(エラーEr1−R1とする)の発生に関係する一つまたは複数の周辺情報(周辺情報P1−R1とする)のIDが登録される。
また、後者のレコードR2のレコードIDに対応する周辺情報IDとしては、キー・テーブル241のレコードR2に登録されたエラーIDにより特定されるエラー(エラーEr1−R2とする)の発生と、キー・テーブル241のレコードR2に登録された操作IDにより特定される操作(操作Op1−R2とする)の両方に関係する一つまたは複数の周辺情報(周辺情報P1−R2とする)のIDが登録される。
ここで、周辺情報P1−R2は、エラー(Er1−R2)が発生し、かつ特定の操作(Op1−R2)が行われた場合に取得されるべき周辺情報のうち、エラー(Er1−R2)の発生のみに関係する周辺情報を除いた差分に相当する。したがって、実際に周辺情報を取得する際には、周辺情報P1−R2とエラー(Er1−R2)の発生のみに関係する周辺情報とを取得する必要がある。例えば、エラー(Er1−R1)とエラー(Er1−R2)とが同一であった場合は、周辺情報P1−R1と周辺情報P1−R2の両方を取得することが必要である。
図5は、周辺情報定義テーブル244の構成例を示す図である。
図5に示すように、周辺情報定義テーブル244には、周辺情報IDと、周辺情報IDごとの周辺情報名、取得方法および表示場所とが登録される。取得方法には、周辺情報ごとの取得方法(ソフトウェア実行部100やOS(Operating System)に要求して取得する等)が記録される。表示場所は、保存画像処理部250により処理された画像データを表示装置400に表示した際に周辺情報の内容が表示される場所を指定する情報が記録される。例えば、対象ソフトウェアによる表示画面に表示される特定のオブジェクトに関連する周辺情報であれば、その特定のオブジェクトの近傍等が指定される。また、メモリ容量等のように特定のオブジェクトに関連しない周辺情報であれば、表示画面上の特定の位置(右上隅や対象ソフトウェアによる表示画面を表示したウィンドウの枠外等)が指定される。
<ソフトウェア監視部の動作>
図6は、ソフトウェア監視部200の動作を示すフローチャートである。
まず、ソフトウェア監視部200の監視下でソフトウェア実行部100が対象ソフトウェアの実行を開始する(ステップ601)。ここでは、ソフトウェア実行部100による対象ソフトの実行をソフトウェア監視部200が監視できれば良いので、ソフトウェア実行部100およびソフトウェア監視部200の実行を開始する順序等については特に限定しない。
この状態で、テストケースとして用意された操作手順に基づいて、テスト実施者による操作が実行され(ステップ602)、ソフトウェア監視部200の操作履歴取得部210が、実行された操作の履歴情報を取得し保存する(ステップ603)。
この操作の実行中に、テスト実施者は、必要に応じて、対象ソフトウェアの実行に伴って表示装置400に表示された画面を保存する操作を行い(ステップ604)、この操作に応じて、画像取得部220が、表示画面の画像データを取得する(ステップ605)。ここで、画像データの取得は、例えば、対象ソフトウェアの実行中にエラーが発生した場合や、明示的なエラーは発生していないが、ソフトウェア実行部100が異常な動作をしている場合などに行われる。エラーが発生していないが異常な動作をしている場合としては、例えば、リクエストに対するレスポンスが長時間にわたって帰らない場合や、処理速度が通常と比べて極端に遅くなった場合等が考えられる。なお、これらの明瞭に異常な動作が起きている場合に限らず、テスト実施者が所望する対象ソフトウェアの実行中の任意の時点において、テスト実施者の操作に基づき、画像データの取得を行うことが可能である。
画像取得部220により画像データが取得されると、次に、周辺情報取得部230が、画像データが取得された時点における周辺情報を取得する(ステップ606)。このときに周辺情報を取得するための具体的な動作手順は、画像データが取得された時点におけるソフトウェア実行部100の状態に応じて異なるので、その詳細については後述する。
周辺情報取得部230により周辺情報が取得されると、次に、保存画像処理部250が、取得された周辺情報を画像取得部220により取得された画像データに付加する(ステップ607)。周辺情報が付加された画像データは、監視情報として、監視情報保持部300に格納される。本実施形態では、このようにして周辺情報を付加された画像データを表示装置400に表示した際に画像データに付加されている周辺情報が表示されれば良く、周辺情報を画像データに付加するための具体的な手法については特に限定しない。ただし、周辺情報を表す文字列を画像として埋め込む処理は負荷が大きいため、画像に埋め込むテキスト・データをデータ・ファイルに記録する手段がある場合には、この手段を用いても良い。例えば、JPEGのファイル・フォーマットには、画像上に表示するテキストを記述するための領域(テキスト・フィールド)を設けることができる。この場合、このテキスト・フィールドを用いて周辺情報を付加することができる。
図7は、JPEGのテキスト・フィールドの記述例を示す図である。
図7に示す例では、取得された周辺情報ごとに「周辺情報ID」、「取得結果」、「表示場所」の各情報が、これらの情報を連結した形式で記述されている。ここで、「取得結果」は、周辺情報取得部230が取得した周辺情報そのものである。「表示場所」は、表示装置400に画像データを表示した際に、テキスト・フィールドに記述された「取得結果」を表示する場所を示す情報であり、図5に例示した周辺情報定義テーブル244から得られる。
なお、上記のJPEGにおけるテキスト・フィールドのような記録手段を用いる場合、「取得結果」の内容は、テキスト・フィールドに直接記述しても良いし、所定の記憶装置に格納しておき、テキスト・フィールドにはこの記憶装置に格納された「取得結果」の内容情報へのリンクを張って、画像データから参照できるように構成としても良い。
<周辺情報取得部の動作例>
図8は、周辺情報取得部230の動作例を示すフローチャートである。
図8に示すように、対象ソフトウェアによる表示画面の画像データが画像取得部220により取得されると、周辺情報取得部230は、まず、エラーIDの取得処理を行う(ステップ801)。通常、ソフトウェアの実行時にエラーが発生した場合、表示画面上にエラーが発生したことを示す表示(エラー表示)が行われる。そこで、ソフトウェア実行部100におけるこの画面の表示情報から発生したエラーのエラーIDを取得することができる。また、エラー表示が行われない場合(例えば、警告音や音声メッセージの出力のみである場合)であっても、ソフトウェア実行部100から発生したエラーのエラーIDを取得することができる。
次に、周辺情報取得部230は、操作IDの取得処理を行う(ステップ802)。具体的には、周辺情報取得部230は、操作履歴取得部210により取得された操作履歴に基づき、画像取得部220により画像データが取得される前の所定期間に行われた操作に着目する。そして、着目した操作が操作テーブル242に登録された操作または操作列に該当するか否かを判断する。操作テーブル242に該当する操作または操作列が登録されているならば、その操作または操作列に対応付けられた操作IDを操作テーブル242から取得する。
なお、ステップ801において、周辺情報取得部230は、エラーIDを、取得できる場合と取得できない場合とがある。明示的なエラーが発生していない状態で画像取得部220により画像データが取得され、周辺情報取得部230が周辺情報を取得しようとする場合、エラーが発生していないためにエラーIDを取得することができない。また、ステップ802において、周辺情報取得部230は、操作IDを、取得できる場合と取得できない場合とがある。すなわち、操作履歴取得部210から得られた画像データの取得直前の操作が操作テーブル242に登録されていない場合、操作IDを取得することができない。また、発生したエラーの種類によっては、操作内容が問題とならないために操作IDを取得する必要がない場合もある。したがって、上記ステップ801およびステップ802の各処理を経過すると、エラーIDのみを取得した状態と、エラーIDおよび操作IDの両方を取得した状態と、操作IDのみを取得した状態と、エラーIDおよび操作IDのいずれも取得していない状態のいずれかとなる。
エラーIDのみを取得した場合(ステップ803でYes、ステップ804でNo)、次に周辺情報取得部230は、キー・テーブル241を参照し、取得したエラーIDが登録されたレコードのレコードIDを取得する(ステップ805)。そして、周辺情報テーブル243を参照し、ステップ805で取得したレコードIDに対応する周辺情報IDを取得する(ステップ806)。そして、周辺情報定義テーブル244を参照し、ステップ806で取得した周辺情報IDに対応付けて登録された周辺情報の取得方法に基づいて、周辺情報を取得する(ステップ807)。
以上の動作によって取得される周辺情報は、例えば、エラーが発生したプログラム・モジュールにアクセスしているプロセスの一覧、このプログラム・モジュールのバージョン情報、このプログラム・モジュールおよびこのプログラム・モジュールが存在するディレクトリへのアクセス権の情報、メモリの空き容量、CPUの使用率などである。
また、エラーIDおよび操作IDの両方を取得した場合(ステップ803でYes、ステップ804でYes)、次に周辺情報取得部230は、キー・テーブル241を参照し、取得したエラーIDおよび操作IDが登録されたレコードのレコードIDを取得する(ステップ808)。そして、周辺情報テーブル243を参照し、ステップ808で取得したレコードIDに対応する周辺情報IDを取得する(ステップ809)。そして、周辺情報定義テーブル244を参照し、ステップ809で取得した周辺情報IDに対応付けて登録された周辺情報の取得方法に基づいて、周辺情報を取得する(ステップ810)。
次に周辺情報取得部230は、キー・テーブル241を参照し、取得したエラーIDのみが登録されたレコードのレコードIDを取得する(ステップ805)。そして、周辺情報テーブル243を参照し、ステップ805で取得したレコードIDに対応する周辺情報IDを取得する(ステップ806)。そして、周辺情報定義テーブル244を参照し、ステップ806で取得した周辺情報IDに対応付けて登録された周辺情報の取得方法に基づいて、周辺情報を取得する(ステップ807)。
なお、上記の動作例では、エラーIDおよび操作IDに基づいて周辺情報を取得する一連の動作(ステップ808〜810)の後に、エラーIDのみに基づいて周辺情報を取得する一連の動作(ステップ805〜807)を行うものとして説明したが、実際の処理手順は、上記の手順に限定しない。すなわち、エラーIDおよび操作IDに基づく周辺情報とエラーIDのみに基づく周辺情報の両方を取得できれば良いので、エラーIDのみに基づく周辺情報を先に取得しても良いし、二つの動作を並行して行っても良い。
ここで、操作IDにより特定される操作の具体例として、
・操作:項目「データベースにDB2を使います」のチェックボックスをチェック。
という操作が行われた場合を考える。この場合、上記の動作によって取得される周辺情報は、エラーIDおよび操作IDに基づく周辺情報としては、例えば、DB2のトランザクション・ログ、DB2のテーブルのスキーマ、DB2のバージョン情報などである。また、エラーIDのみに基づく周辺情報としては、例えば、エラーが発生したプログラム・モジュールにアクセスしているプロセスの一覧、このプログラム・モジュールのバージョン情報、このプログラム・モジュールおよびこのプログラム・モジュールが存在するディレクトリへのアクセス権の情報、メモリの空き容量、CPUの使用率などである。
ところで、発生したエラーが同一であっても、エラー発生前(画像取得部220による画像データの取得前)に行われた操作が異なっている場合があり得る。例えば、上記の場合と同一のエラーが発生し、エラー発生前に行われた操作が、
・操作1:項目「データベースにDB2を使います」のチェックボックスをチェック。
・操作2:パスワード・フィールドに入力しなかった。
であった場合を考える。ここで、操作2は、否定的内容を示している。したがって、パスワード・フィールドへの入力という操作が行われた場合には、周辺情報取得部230の処理対象としては着目されず、入力という操作が行われなかった場合に操作2として着目される。
この場合、図8に示したステップ808〜810の動作では、エラーIDおよび操作1の操作IDに基づく周辺情報の取得と、エラーIDおよび操作2の操作IDに基づく周辺情報の取得とが行われる。したがって、取得される周辺情報は、エラーIDおよび操作1の操作IDに基づく周辺情報としては、例えば、DB2のトランザクション・ログ、DB2のテーブルのスキーマ、DB2のバージョン情報などである。また、エラーIDおよび操作2の操作IDに基づく周辺情報としては、例えば、パスワード・フィールドの値などである。また、エラーIDのみに基づく周辺情報としては、例えば、エラーが発生したプログラム・モジュールにアクセスしているプロセスの一覧、このプログラム・モジュールのバージョン情報、このプログラム・モジュールおよびこのプログラム・モジュールが存在するディレクトリへのアクセス権の情報、メモリの空き容量、CPUの使用率などである。
また、図8において、操作IDのみを取得した場合(ステップ803でNo、ステップ811でYes)、次に周辺情報取得部230は、キー・テーブル241を参照し、取得した操作IDが登録されたレコードのレコードIDを取得する(ステップ812)。そして、周辺情報テーブル243を参照し、ステップ812で取得したレコードIDに対応する周辺情報IDを取得する(ステップ813)。そして、周辺情報定義テーブル244を参照し、ステップ813で取得した周辺情報IDに対応付けて登録された周辺情報の取得方法に基づいて、周辺情報を取得する(ステップ814)。
ここで、操作IDにより特定される操作の具体例として、
・操作:プログラムAが表示するOKボタン・オブジェクトをクリック。
という操作が行われた場合を考える。この場合、上記の動作によって取得される周辺情報は、例えば、プログラムAのログ、プログラムAにおいて実行された全てのプロセス、メモリの空き容量、CPUの使用率などである。
また、図8において、エラーIDおよび操作IDのいずれも取得しなかった場合(ステップ803でNo、ステップ811でNo)は、取得するべき周辺情報が無いため、周辺情報が取得されることなく周辺情報取得部230による処理が終了する。
以上のようにして取得された周辺情報は、保存画像処理部250により、画像取得部220により取得された画像データに付加される。そして、周辺情報が付加された画像データは、監視情報保持部300に格納される。なお、周辺情報取得部230により周辺情報が取得されなかった場合(図8において、ステップ803、811で共にNoの場合)は、保存画像処理部250による処理は行われず、周辺情報が付加されていない画像データが監視情報保持部300に格納される。
テスト結果の解析者がテスト結果を解析するために監視情報を閲覧する場合、解析対象のソフトウェアに関する監視情報として、監視情報保持部300から周辺情報が付加された画像データが読み出され、表示装置400に表示される。このとき、表示装置400に表示される画像は、ソフトウェアの実行に伴って表示される画面を保存して得られた画像に周辺情報が表示されたものである。
図9は、監視情報の例を示す図である。
図9(a)は、画像取得部220により保存された画面の例を示す図、図9(b)は、周辺情報が付加された画像の例を示す図である。図9(b)に示す例では、対象ソフトウェアによる表示画面が表示されたウィンドウ910上のエラー・メッセージ911の下方に、周辺情報としてのモジュールに関する情報が記述されたテキスト・ボックス921が表示されている。また、ウィンドウ910自体の右横に、ハードウェアの情報であるメモリの空き容量およびCPUの使用率が記述されたテキスト・ボックス922が表示されている。
<ハードウェア構成例>
図10は、本実施形態のコンピュータ・システムを構成するのに好適なハードウェア構成例を示す図である。
図10に示すコンピュータは、演算手段であるCPU(Central Processing Unit)10aと、主記憶手段であるメモリ10cを備える。また、外部デバイスとして、磁気ディスク装置(HDD:Hard Disk Drive)10g、ネットワーク・インターフェイス10f、表示機構10d、音声機構10h、キーボードやマウス等の入力デバイス10i等を備える。
図10に示す構成例では、メモリ10cおよび表示機構10dは、システム・コントローラ10bを介してCPU10aに接続されている。また、ネットワーク・インターフェイス10f、磁気ディスク装置10g、音声機構10hおよび入力デバイス10iは、I/Oコントローラ10eを介してシステム・コントローラ10bと接続されている。各構成要素は、システム・バスや入出力バス等の各種のバスによって接続される。
なお、図10は、本実施形態が適用されるのに好適なコンピュータのハードウェア構成を例示するに過ぎない。本実施形態は、対象ソフトウェアの動作を監視し、特定の時点における周辺情報を取得して保持するシステムに広く適用できるものであり、図示の構成においてのみ本実施例が実現されるのではない。
図10において、磁気ディスク装置10gにはOSやアプリケーション・ソフトのプログラムが格納されている。そして、これらのプログラムがメモリ10cに読み込まれてCPU10aに実行されることにより、本実施形態におけるソフトウェア実行部100やソフトウェア監視部200の各機能が実現される。また、周辺情報DB240および監視情報保持部300は、メモリ10cや磁気ディスク装置10g等の記憶手段により実現される。対象プログラムの操作履歴も、メモリ10c等に保持される。また、表示装置400は、表示機構10dの一部として構成される。
100…ソフトウェア実行部、200…ソフトウェア監視部、210…操作履歴取得部、220…画像取得部、230…周辺情報取得部、240…周辺情報データベース(DB)、250…保存画像処理部、300…監視情報保持部、400…表示装置

Claims (8)

  1. ソフトウェアの実行を監視する装置であって、
    監視対象のソフトウェアを実行する実行部と、
    前記実行部による監視対象の前記ソフトウェアの実行を監視する監視部と、を備え、
    前記監視部は、
    前記実行部が前記ソフトウェアを実行することにより表示装置に表示される画面の画像データを取得する画像取得部と、
    前記画像取得部により画像データが取得された時点における前記ソフトウェアおよび当該ソフトウェアが実行されているハードウェアの状態に関する情報である周辺情報を取得する周辺情報取得部と、
    前記画像取得部により取得された前記画像データに基づく画像を表示装置に表示させた場合に当該画像と共に前記周辺情報取得部により取得された前記周辺情報の内容が表示されるように、当該周辺情報を当該画像データに付加する保存画像処理部と、
    を備える、装置。
  2. 前記周辺情報取得部は、前記画像取得部により画像データが取得された時点で、前記実行部による前記ソフトウェアの実行中にエラーが発生していた場合、当該エラーの種類に基づき、その種類のエラーが発生した場合に取得する周辺情報として予め定められた情報を取得する、請求項1に記載の装置。
  3. ユーザによる前記ソフトウェアの実行に関わる操作の履歴情報を取得する操作履歴取得部をさらに備え、
    前記周辺情報取得部は、前記操作履歴取得部により取得された履歴情報に基づき、前記画像取得部により画像データが取得される前の所定期間に特定の操作が行われたと判断される場合に、当該特定の操作が行われた場合に取得する周辺情報として予め定められた情報を取得する、請求項1または請求項2に記載の装置。
  4. 前記保存画像処理部は、前記画像データのファイル・フォーマットがテキストを記憶する領域を有する場合に、当該領域に前記周辺情報を記述することにより、当該画像データに当該周辺情報を付加する、請求項1乃至請求項3のいずれかに記載の装置。
  5. 前記保存画像処理部は、前記周辺情報を示す画像を前記画像データに基づく画像に埋め込むことにより、当該画像データに当該周辺情報を付加する、請求項1乃至請求項3のいずれかに記載の装置。
  6. ソフトウェアの実行を監視する装置であって、
    監視対象のソフトウェアを実行する実行部と、
    前記実行部による監視対象の前記ソフトウェアの実行を監視する監視部と、を備え、
    前記監視部は、
    ユーザによる前記ソフトウェアの実行に関わる操作の履歴情報を取得する操作履歴取得部と、
    前記実行部が前記ソフトウェアを実行することにより表示装置に表示される画面の画像データを取得する画像取得部と、
    前記画像取得部により画像データが取得された時点における前記ソフトウェアおよび当該ソフトウェアが実行されているハードウェアの状態に関する情報である周辺情報を取得する周辺情報取得部と、
    前記画像取得部により取得された前記画像データに基づく画像を表示装置に表示させた場合に当該画像と共に前記周辺情報取得部により取得された前記周辺情報の内容が表示されるように、当該周辺情報を当該画像データに付加する保存画像処理部と、を備え、
    前記周辺情報取得部は、
    前記画像取得部により画像データが取得された時点で、前記実行部による前記ソフトウェアの実行中にエラーが発生していた場合、当該エラーの種類に基づき、その種類のエラーが発生した場合に取得する周辺情報として予め定められた情報を取得し、
    前記操作履歴取得部により取得された履歴情報に基づき、前記画像取得部により画像データが取得される前の所定期間に特定の操作が行われたと判断される場合に、当該特定の操作が行われた場合に取得する周辺情報として予め定められた情報を取得する、装置。
  7. コンピュータが、ソフトウェアを実行すると共に、その実行を監視する方法であって、
    監視対象のソフトウェアを実行することにより表示装置に表示される画面の画像データを取得するステップと、
    前記画像データが取得された時点における前記ソフトウェアおよび当該ソフトウェアが実行されているハードウェアの状態に関する情報である周辺情報を取得するステップと、
    前記画像データに基づく画像を表示装置に表示させた場合に当該画像と共に取得された前記周辺情報の内容が表示されるように、当該周辺情報を当該画像データに付加し、当該周辺情報が付加された当該画像データを記憶装置に格納するステップと、
    を含む、方法。
  8. コンピュータを、
    監視対象のソフトウェアを実行する実行手段と、
    前記実行手段による監視対象の前記ソフトウェアの実行を監視する監視手段として機能させ、
    前記監視手段の機能として、前記コンピュータに、
    前記実行手段が前記ソフトウェアを実行することにより表示装置に表示される画面の画像データを取得する機能と、
    前記画像データが取得された時点における前記ソフトウェアおよび当該ソフトウェアが実行されているハードウェアの状態に関する情報である周辺情報を取得する機能と、
    前記画像データに基づく画像を表示装置に表示させた場合に当該画像と共に取得された前記周辺情報の内容が表示されるように、当該周辺情報を当該画像データに付加する機能と、
    を実現させる、プログラム。
JP2013057283A 2013-03-19 2013-03-19 ソフトウェアの実行を監視する装置、方法およびプログラム Active JP6238221B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013057283A JP6238221B2 (ja) 2013-03-19 2013-03-19 ソフトウェアの実行を監視する装置、方法およびプログラム
US14/196,054 US9047408B2 (en) 2013-03-19 2014-03-04 Monitoring software execution

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013057283A JP6238221B2 (ja) 2013-03-19 2013-03-19 ソフトウェアの実行を監視する装置、方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2014182646A true JP2014182646A (ja) 2014-09-29
JP6238221B2 JP6238221B2 (ja) 2017-11-29

Family

ID=51570129

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013057283A Active JP6238221B2 (ja) 2013-03-19 2013-03-19 ソフトウェアの実行を監視する装置、方法およびプログラム

Country Status (2)

Country Link
US (1) US9047408B2 (ja)
JP (1) JP6238221B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019133557A (ja) * 2018-02-02 2019-08-08 富士通株式会社 エラー対応支援プログラム、エラー対応支援装置及びエラー対応支援方法
US20220214958A1 (en) * 2019-05-23 2022-07-07 Connectfree Corporation Programming assist system and programming assist method

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10158549B2 (en) 2015-09-18 2018-12-18 Fmr Llc Real-time monitoring of computer system processor and transaction performance during an ongoing performance test
US11249872B1 (en) * 2020-06-26 2022-02-15 Xilinx, Inc. Governor circuit for system-on-chip
CN113282506A (zh) * 2021-06-11 2021-08-20 中国农业银行股份有限公司 测试数据获取方法、装置、设备及计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10260861A (ja) * 1997-03-17 1998-09-29 Fujitsu Ltd 障害調査情報装置
JP2003044320A (ja) * 2001-07-31 2003-02-14 Pfu Ltd 教育システム
JP2004139500A (ja) * 2002-10-21 2004-05-13 Iyo Engineering:Kk ソフトウェア障害解決支援プログラム及びシステム並びにコンピュータ
JP2009110318A (ja) * 2007-10-31 2009-05-21 Nec Corp 障害情報出力制御装置及びそれらに用いる障害情報出力制御方法並びにそのプログラム
JP2010117763A (ja) * 2008-11-11 2010-05-27 Kyocera Mita Corp 電子機器

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313616A (en) * 1990-09-18 1994-05-17 88Open Consortium, Ltd. Method for analyzing calls of application program by inserting monitoring routines into the executable version and redirecting calls to the monitoring routines
US5852720A (en) 1996-08-16 1998-12-22 Compaq Computer Corp. System for storing display data during first time period prior to failure of computer and during second time period after reset of the computer
JPH1079735A (ja) 1996-09-02 1998-03-24 Hitachi Ltd 障害対策会議支援システム
US6539501B1 (en) * 1999-12-16 2003-03-25 International Business Machines Corporation Method, system, and program for logging statements to monitor execution of a program
EP1249002B1 (en) 2000-01-13 2011-03-16 Digimarc Corporation Authenticating metadata and embedding metadata in watermarks of media signals
US7116807B1 (en) 2000-09-22 2006-10-03 Ge Medical Systems Global Technology Company, Llc Method and apparatus for linking images and reports at remote view station
US7389204B2 (en) 2001-03-01 2008-06-17 Fisher-Rosemount Systems, Inc. Data presentation system for abnormal situation prevention in a process plant
JP2003091432A (ja) 2001-09-19 2003-03-28 Nec Corp ソフトウェア評価システム、ソフトウェア評価ツール
JP2003108403A (ja) 2001-09-27 2003-04-11 Victor Co Of Japan Ltd ソフトウェアデバッグシステム及びコンピュータプログラム
JP4123914B2 (ja) * 2002-11-26 2008-07-23 株式会社日立製作所 プログラムの動作状態の監視方法及び監視プログラム
JP4353051B2 (ja) 2004-09-30 2009-10-28 ブラザー工業株式会社 ログ管理プログラム、ログ管理サーバ、及び、ログ管理システム
US7620940B2 (en) * 2004-11-23 2009-11-17 International Business Machines Corporation Methods and apparatus for monitoring program execution
JP4309385B2 (ja) 2005-09-08 2009-08-05 Necフィールディング株式会社 コンピュータ装置の障害復旧支援システム及び方法
JP4172807B2 (ja) 2006-09-08 2008-10-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 障害発生の原因箇所の発見を支援する技術
JP4973205B2 (ja) 2007-01-16 2012-07-11 日本電気株式会社 情報処理装置及びログ取得方法並びにプログラム
JP2010244439A (ja) 2009-04-09 2010-10-28 Nec System Technologies Ltd チェックリスト生成装置、チェックリスト生成方法及びチェックリスト生成プログラム
JP2011118695A (ja) 2009-12-03 2011-06-16 Hitachi Ltd 情報処理システム、情報処理装置、及び管理コンピュータ
JP5568344B2 (ja) 2010-03-18 2014-08-06 株式会社ラック 攻撃検出装置、攻撃検出方法、及びプログラム
US20130290934A1 (en) * 2012-04-30 2013-10-31 Gregory Simon Monitoring applications executing on a computer device using programmatic triggers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10260861A (ja) * 1997-03-17 1998-09-29 Fujitsu Ltd 障害調査情報装置
JP2003044320A (ja) * 2001-07-31 2003-02-14 Pfu Ltd 教育システム
JP2004139500A (ja) * 2002-10-21 2004-05-13 Iyo Engineering:Kk ソフトウェア障害解決支援プログラム及びシステム並びにコンピュータ
JP2009110318A (ja) * 2007-10-31 2009-05-21 Nec Corp 障害情報出力制御装置及びそれらに用いる障害情報出力制御方法並びにそのプログラム
JP2010117763A (ja) * 2008-11-11 2010-05-27 Kyocera Mita Corp 電子機器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
昌達K’Z: "Exifフォーマットを知る", C MAGAZINE, vol. 第18巻,第4号, JPN6017004400, 1 April 2006 (2006-04-01), JP, pages 118 - 123, ISSN: 0003498293 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019133557A (ja) * 2018-02-02 2019-08-08 富士通株式会社 エラー対応支援プログラム、エラー対応支援装置及びエラー対応支援方法
US20220214958A1 (en) * 2019-05-23 2022-07-07 Connectfree Corporation Programming assist system and programming assist method

Also Published As

Publication number Publication date
JP6238221B2 (ja) 2017-11-29
US20140289710A1 (en) 2014-09-25
US9047408B2 (en) 2015-06-02

Similar Documents

Publication Publication Date Title
US11240126B2 (en) Distributed tracing for application performance monitoring
US10810074B2 (en) Unified error monitoring, alerting, and debugging of distributed systems
US9471474B2 (en) Cloud deployment infrastructure validation engine
US9009544B2 (en) User operation history for web application diagnostics
US20200233736A1 (en) Enabling symptom verification
TWI533123B (zh) 自動化測試及結果比對方法及系統
US20070203973A1 (en) Fuzzing Requests And Responses Using A Proxy
US11789760B2 (en) Alerting, diagnosing, and transmitting computer issues to a technical resource in response to an indication of occurrence by an end user
US8607152B2 (en) Management of test artifacts using cascading snapshot mechanism
JP6238221B2 (ja) ソフトウェアの実行を監視する装置、方法およびプログラム
US20160274997A1 (en) End user monitoring to automate issue tracking
US11580294B2 (en) Techniques for web framework detection
JPWO2012032705A1 (ja) 表示処理装置、表示処理方法およびプログラム
CA2811617C (en) Commit sensitive tests
US9195562B2 (en) Recording external processes
CN107451056B (zh) 监听接口测试结果的方法及装置
JP5545761B2 (ja) 障害解析支援システム、障害解析支援方法、および障害解析支援プログラム
JP6198206B2 (ja) ソフトウェアをテストする装置およびプログラム
CN112988503A (zh) 分析方法、分析装置、电子装置和存储介质
US20180121472A1 (en) Method and Apparatus of Collecting and Reporting Database Application Incompatibilities
CN111309606A (zh) 页面异常处理方法、装置、计算机设备及存储介质
US20160275002A1 (en) Image capture in application lifecycle management for documentation and support
JP2009134535A (ja) ソフトウェア開発支援装置、ソフトウェア開発支援方法及びソフトウェア開発支援プログラム
JP7037514B2 (ja) プラント監視システムおよびプラント監視方法
JP6586844B2 (ja) 情報処理装置、情報処理システム、情報処理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160301

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170501

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20171003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171024

R150 Certificate of patent or registration of utility model

Ref document number: 6238221

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150