[情報処理システムの構成]
図1は、情報処理システム10の構成を示す図である。図1に示す情報処理システム10は、情報処理装置1(以下、テスト支援装置1とも呼ぶ)と、記憶装置2とを有する。情報処理装置1は、インターネットやイントラネット等からなるネットワークNWを介して事業者端末3にアクセスすることが可能である。
情報処理装置1は、例えば、改修済プログラムの既存機能のテストを支援する処理(以下、テスト支援処理とも呼ぶ)を実行する。
記憶装置2は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)等からなる外部ディスク装置である。具体的に、記憶装置2は、例えば、情報処理装置1がテスト支援処理を実行する際に参照する各種情報を記憶する。記憶装置2は、情報処理装置1の内部に設けられたディスク装置であってもよい。
事業者端末3は、プログラムの各種テスト(単体テストやリグレッションテスト等)を行う際に、事業者が利用する端末である。以下、改修が行われる前のプログラム(以下、改修前プログラムとも呼ぶ)の動作の具体例について説明を行う。
[改修前プログラムの動作の具体例]
図2は、改修前プログラムの動作の具体例を説明する図である。図2に示す例において、情報処理装置1では、改修前プログラムが実行されることによって起動されるプロセスAと、他のプログラム(改修対象ではないプログラム)が実行されることによって起動されるプロセスBとが動作している。
具体的に、図2に示すプロセスAは、所定のタイミングでプロセスBに対して呼び出し(処理の実行依頼)を行う(S101)。その後、プロセスAは、プロセスBから実行結果の送信があるまで待機する(S102)。
一方、図2に示すプロセスBは、プロセスAから呼び出しがあった場合、呼び出しの受け付けを行い、受け付けた呼び出しに対応する処理を実行する(S111、S112)。この場合、プロセスBは、例えば、設定値に「ON」が設定されている場合に、処理の実行を開始する。その後、プロセスBは、所定の処理を実行した結果である実行結果を、プロセスAに対して送信する(S113)。そして、プロセスAは、プロセスBから実行結果の送信があったことに応じて、後続処理の実行を再開する(S103)。
[改修済プログラムの動作の具体例]
次に、改修済プログラムの具体例について説明を行う。図3は、改修済プログラムの動作の具体例を説明する図である。
事業者は、プログラム(例えば、図2で説明した改修前プログラム)の改修を行った場合、例えば、開発環境において改修済プログラムを動作についてのテストを実施する。そして、事業者は、プログラムの改修に伴う処理ルートの変更や共有資源の獲得競合の発生等に伴って、改修済プログラムの性能が改修前プログラムの性能と比較して劣化していないことの確認を行う。その後、事業者は、改修済プログラムの性能が劣化していないことを確認した場合、改修済プログラムを業務システム(図示しない)に導入する。
一方、改修済プログラムの性能が劣化することを確認した場合、事業者は、性能が劣化した原因の特定を行う。具体的に、事業者は、例えば、改修済プログラムを実行することにより起動するプロセスAの実行時間が、改修前プログラムを実行することにより起動するプロセスAの実行時間よりも所定時間以上長い場合に、改修済プログラムの性能が劣化したものと判定する。そして、事業者は、例えば、改修済プログラムの実行時にトレースを行うことにより、性能が劣化した原因の特定を行う。
具体的に、プロセスA(改修済プログラムを実行することにより起動するプロセスA)は、図3に示すように、プロセスBに対して呼び出しを行う(S121)。なお、図3に示す例におけるS121の処理の実行タイミングは、プログラムの改修が行われたことに伴って、図2で説明した例におけるS101の処理の実行タイミングと異なっている。そして、プロセスAは、図2で説明した場合と同様に、プロセスBから実行結果の送信があるまで待機する(S122)。
一方、プロセスBは、図3に示すように、プロセスAから呼び出しがあった場合、図2で説明した場合と同様に、呼び出しの受け付けを行う(S131)。しかしながら、S131の処理が行われた際の設定値には、「OFF」が設定されている。そのため、プロセスBは、この場合、設定値に「ON」が設定されるまでS132の処理の開始を待つ必要がある。すなわち、図3に示すS132の処理の実行タイミングは、プログラムの改修が行われたことにより、図2で説明したS112の処理の実行タイミングと異なる。そのため、図3に示す例において、S131の処理が行われた際の設定値は、図2で説明した場合と異なっている。
したがって、プロセスAでは、図3に示すように、例えば、プロセスBから実行結果の送信がないことによるタイムアウトが発生する(S123)。
その後、プロセスBは、設定値に「ON」が設定されたことに応じて処理の実行を行い、その処理結果をプロセスAに送信する(S132、S133)。そして、プロセスAは、例えば、プロセスBからの実行結果の送信が再待ち合わせ中に行われた場合、後続処理の実行を再開する(S124、S125)。
この場合、事業者は、例えば、改修済プログラムに対し、S121の処理が行われるタイミングを変えるための更なる改修を行う。これにより、事業者は、改修済プログラムの導入による既存機能の性能劣化を抑制することが可能になる。
しかしながら、改修済プログラムの実行時にトレースを行う場合、トレースを行う処理が実行されることにより、プロセスAがプロセスBを呼び出すタイミング等が更に変わる場合がある。そのため、改修済プログラムの実行時にトレースを行う場合、改修済プログラムにおける既存機能の性能劣化が再現しない場合がある。
また、事業者は、既存機能の性能劣化の原因を特定するために、例えば、改修済プログラムの実行時におけるメモリダンプや改修済プログラムのソースコードによる解析を行う。しかしながら、解析を行う対象が膨大である場合、事業者は、既存機能の性能が劣化した原因を容易に特定することができない。そのため、事業者は、この場合、プログラムの改修に伴うテストを効率的に行うことができない。
そこで、本実施の形態における情報処理装置1は、例えば、事業者によって指定されたプロセスや、事業者によるテストセット(テスト項目の集合体)の実行に伴って動作するプロセス(以下、特定のプロセスまたは測定対象プロセスとも呼ぶ)が起動時において動作を停止した時間(以下、休止時間とも呼ぶ)を算出する。具体的に、情報処理装置1は、起動中の各プロセスの動作状態についての履歴情報を、各プロセスに対応付けて記憶する記憶部を参照し、測定対象プロセスに対応する履歴情報に基づき、測定対象プロセスの休止時間を算出する。
その後、情報処理装置1は、呼び出し元のプロセスごとに、呼び出し先のプロセスの識別情報を、呼び出し先のプロセスの応答待ちに起因して呼び出し元のプロセスにおいてタイムアウトが生じるまでの応答待ち時間に対応付けて記憶する記憶部を参照する。そして、情報処理装置1は、算出した休止時間に応じた応答待ち時間に対応付けられた呼び出し先のプロセスを特定し、特定した呼び出し先のプロセスの識別情報を出力する。
すなわち、情報処理装置1は、業務システムを構成する各プログラムの実行に伴って起動するプロセスから他のプロセス(呼び出し先のプロセス)に対する呼び出しが行われた結果、タイムアウトが発生した場合における応答待ち時間を示す情報を予め取得する。その後、情報処理装置1は、例えば、測定対象プロセスの休止時間に応じた応答待ち時間(例えば、休止時間と一致する応答待ち時間)を特定する。そして、情報処理装置1は、測定対象プロセスの休止時間に応じた応答待ち時間が存在する場合、測定対象プロセスの起動中における休止時間の発生が、呼び出し先のプロセスの実行時間の遅延に伴うタイムアウトの発生によるものであると判定する。
これにより、情報処理装置1は、測定対象プロセスの起動時において休止時間が発生した場合、その休止時間の発生の原因が、呼び出し元のプロセスにおいて発生したタイムアウトであるか否かについて特定することが可能になる。そして、情報処理装置1は、測定対象プロセスの中から、タイムアウトの原因となった呼び出し先のプロセスを特定することが可能になる。すなわち、情報処理装置1は、測定対象プロセスのうち、タイムアウトを発生させる呼び出し元のプロセスが明らかでない場合であっても、タイムアウトが発生した場合におけるテストを行うことが可能になる。そのため、情報処理装置1は、改修済プログラムにおける既存機能の性能劣化が発生した場合、発生した性能劣化の原因を特定することが可能になる。
[情報処理装置のハードウエア構成]
次に、情報処理装置1のハードウエア構成について説明する。図4は、情報処理装置1のハードウエア構成を示す図である。
情報処理装置1は、プロセッサであるCPU101と、メモリ102と、外部インターフェース(I/Oユニット)103と、記憶媒体104とを有する。各部は、バス105を介して互いに接続される。
記憶媒体104は、例えば、テスト支援処理を行うためのプログラム110を記憶する。また、記憶媒体104は、例えば、テスト支援処理を行う際に用いられる情報を記憶する情報格納領域130(以下、記憶部130とも呼ぶ)を有する。なお、図1で説明した記憶装置2は、例えば、記憶媒体104に対応する。
CPU101は、図4に示すように、プログラム110の実行時に、プログラム110を記憶媒体104からメモリ102にロードし、プログラム110と協働してテスト支援処理を行う。
外部インターフェース103は、例えば、ネットワークNWを介して事業者端末3と通信を行う。
[情報処理装置の機能]
次に、情報処理装置1の機能について説明する。図5は、情報処理装置1の機能のブロック図である。また、図6は、情報格納領域130に記憶された情報のブロック図である。
CPU101は、図5に示すように、プログラム110と協働することにより、例えば、情報受付部111と、テスト実行部112と、休止時間算出部113と、プロセス特定部114として動作する。また、CPU101は、図5に示すように、プログラム110と協働することにより、例えば、情報出力部115と、履歴情報取得部116と、操作ログ取得部117と、応答待ち時間算出部118と、ダンプ取得部119として動作する。
また、情報格納領域130には、図6に示すように、例えば、各プロセスを起動させるための実行ファイル131と、履歴情報132と、操作ログ情報133と、応答待ち時間情報134と、テスト結果情報135とが記憶されている。
なお、以下、情報受付部111、テスト実行部112、休止時間算出部113、プロセス特定部114、情報出力部115、履歴情報取得部116、操作ログ取得部117、応答待ち時間算出部118及びダンプ取得部119を総称して、テスト支援部120とも呼ぶ。
情報受付部111は、例えば、プログラムの改修が行われたことに伴って事業者がリグレッションテストを実施するテストセットの指定を行った場合に、その指定を受け付ける。
テスト実行部112は、情報格納領域130に記憶された実行ファイル131を実行する。具体的に、テスト実行部112は、例えば、情報受付部111が指定を受け付けたテストセットを実行させるための実行ファイル131を実行する。
休止時間算出部113は、例えば、各プロセスの識別情報が対応付けられた情報であって、実行ファイル131の実行によって動作する各プロセスの動作状態を示す情報である履歴情報132を参照する。そして、休止時間算出部113は、情報受付部111が指定を受け付けたテストセットの実行に伴って動作する測定対象プロセスに対応する履歴情報132に基づき、測定対象プロセスの休止時間を算出する。
なお、情報受付部111は、測定対象プロセスの指定を直接受け付けるものであってもよい。そして、休止時間算出部113は、この場合、情報受付部111が指定を受け付けた測定対象プロセスの休止時間の算出を行うものであってよい。
プロセス特定部114は、呼び出し元のプロセスごとに、呼び出し先のプロセスの識別情報と、呼び出し先のプロセスの応答待ちに起因して呼び出し元のプロセスにおいてタイムアウトが生じるまでの応答待ち時間とを対応付けた応答待ち時間情報134を参照する。そして、プロセス特定部114は、休止時間算出部113が算出した休止時間に応じた応答待ち時間に対応付けられた呼び出し先のプロセスを特定する。呼び出し元のプロセスは、業務システム(図示しない)で動作する各プログラム(改修済プログラムを含む)に対応するプロセスのうち、起動中に他のプロセスの呼び出しを行うプロセスである。また、呼び出し先のプロセスは、呼び出し元のプロセスによって呼び出されるプロセスである。
情報出力部115は、プロセス特定部114が特定した呼び出し先のプロセスの識別情報を出力する。
履歴情報取得部116は、実行ファイル131の実行中における各プロセスの動作状態を示す情報である履歴情報132を取得する。具体的に、履歴情報取得部116は、例えば、オペレーティングシステム(OS:Operating System)が有する情報から、履歴情報132の取得を行う。
操作ログ取得部117は、事業者が事業者端末3において操作を行った内容に対応するログである操作ログ情報133を取得する。
応答待ち時間算出部118は、操作ログ取得部117が取得した操作ログ情報133を参照し、応答待ち時間情報134を作成する。
具体的に、応答待ち時間算出部118は、例えば、測定対象プロセスのリグレッションテストが実施される前に、改修済プログラムの改修が行われる前に実施されたテスト(例えば、改修済プログラムの単体テスト)における操作ログ情報133を参照する。そして、応答待ち時間算出部118は、業務システムを構成するプログラムの実行により起動するプロセスに含まれる呼び出し元のプロセスにおいて、呼び出し先のプロセスの応答待ちによるタイムアウトが発生した場合における応答待ち時間を含む応答待ち時間情報134を作成する。
これにより、プロセス特定部114は、測定対象プロセスのリグレッションテストが行われる際に、応答待ち時間情報134を参照することが可能になる。そして、プロセス特定部114は、休止時間算出部113が算出した休止時間に応じた応答待ち時間に対応するプロセスを、リグレッションテストの実行時において発生したタイムアウトの原因であるプロセス(呼び出し先のプロセス)として特定することが可能になる。
ダンプ取得部119は、例えば、呼び出し元のプロセスにおいてタイムアウトが発生する直前の呼び出し先のプロセスに関するメモリ102の状態を示すメモリダンプを取得する。
[第1の実施の形態]
次に、第1の実施の形態について説明する。図7は、第1の実施の形態におけるテスト支援処理の概略を説明するフローチャート図である。また、図8及び図9は、第1の実施の形態におけるテスト支援処理の概略を説明する図である。図8及び図9を参照しながら図7のテスト支援処理の概略について説明する。
情報処理装置1(テスト支援部120)は、図7に示すように、プロセス特定タイミングまで待機する(S1のNO)。プロセス特定タイミングは、例えば、事業者が情報処理装置1に対してテストセットの指定等を行ったタイミングである。
そして、プロセス特定タイミングになった場合(S1のYES)、情報処理装置1は、図8に示すように、履歴情報132が記憶された情報格納領域130を参照し、測定対象プロセスに対応する履歴情報132に基づき、測定対象プロセスの休止時間を算出する(S2)。
すなわち、事業者は、例えば、実行時間が所定時間以上遅延した測定対象プロセスが存在する場合、その原因を特定する必要がある。そのため、情報処理装置1は、測定対象プロセスの履歴情報132を参照することにより、測定対象プロセスの起動時における休止時間を算出する。
その後、情報処理装置1は、図9に示すように、応答待ち時間情報134が記憶された情報格納領域130を参照し、S2の処理で算出した休止時間に応じた応答待ち時間に対応付けられたプロセス(呼び出し先のプロセス)を特定する(S3)。そして、情報処理装置1は、S3の処理で特定した呼び出し先のプロセスの識別情報を出力する(S4)。
すなわち、S2の処理で算出した休止時間に対応する呼び出し元のプロセスにおいてタイムアウトが発生する場合のテストは、単体テスト等においても行われている可能性がある。そのため、情報処理装置1は、S3の処理において、例えば、測定対象プロセスの単体テストが行われる際の操作ログ情報133から作成された応答待ち時間情報134を参照する。そして、情報処理装置1は、応答待ち時間情報134において、S2の処理で算出した休止時間に応じた応答待ち時間に対応付けられたプロセスを、S2の処理で算出した休止時間の発生の原因である呼び出し先のプロセスとして特定する。
これにより、事業者は、例えば、測定対象プロセスにおいて休止時間が発生した理由が、S3の処理で特定した呼び出し先のプロセスの動作に起因したタイムアウトによるものであると特定することが可能になる。
このように、本実施の形態における情報処理装置1は、例えば、測定対象プロセスの起動時における休止時間を算出する。具体的に、情報処理装置1は、起動中の各プロセスの動作状態についての履歴情報を、各プロセスに対応付けて記憶する記憶部を参照し、測定対象プロセスに対応する履歴情報に基づき、測定対象プロセスの休止時間を算出する。
その後、情報処理装置1は、呼び出し元のプロセスごとに、呼び出し先のプロセスの識別情報を、呼び出し先のプロセスの応答待ちに起因して呼び出し元のプロセスにおいてタイムアウトが生じるまでの応答待ち時間に対応付けて記憶する記憶部を参照する。そして、情報処理装置1は、算出した休止時間に応じた応答待ち時間に対応付けられた呼び出し先のプロセスを特定し、特定した呼び出し先のプロセスの識別情報を出力する。
これにより、情報処理装置1は、測定対象プロセスの起動時において休止時間が発生した場合、その休止時間の発生の原因が、呼び出し元のプロセスにおいて発生したタイムアウトであるか否かについて特定することが可能になる。そして、情報処理装置1は、測定対象プロセスの中から、タイムアウトの原因となった呼び出し先のプロセスを特定することが可能になる。すなわち、情報処理装置1は、測定対象プロセスのうち、タイムアウトを発生させる呼び出し元のプロセスが明らかでない場合であっても、タイムアウトが発生した場合におけるテストを行うことが可能になる。そのため、情報処理装置1は、改修済プログラムにおける既存機能の性能劣化が発生した場合、発生した性能劣化の原因を特定することが可能になる。
[第1の実施の形態の詳細]
次に、第1の実施の形態の詳細について説明する。図10から図18は、第1の実施の形態におけるテスト支援処理の詳細を説明するフローチャート図である。また、図19から図30は、第1の実施の形態におけるテスト支援処理の詳細を説明する図である。図19から図30を参照しながら、図10から図18のテスト支援処理の詳細を説明する。
[単体テストの実施時における履歴情報取得処理]
初めに、第1の実施の形態におけるテスト支援処理のうち、リグレッションテストの前に実施される単体テストの実施時において履歴情報132を取得する処理(以下、履歴情報取得処理とも呼ぶ)について説明を行う。
履歴情報取得部116は、図10に示すように、履歴情報取得タイミングになるまで待機する(S11のNO)。履歴情報取得タイミングは、例えば、0.1(秒)間隔等、所定の時間間隔毎であってよい。そして、履歴情報取得タイミングになった場合(S11のYES)、履歴情報取得部116は、起動中のプロセスの動作状態を示す履歴情報132を作成する(S12)。具体的に、履歴情報取得部116は、OSが有する情報を取得することにより、履歴情報132の作成を行う。
その後、情報出力部115は、S12の処理で作成した履歴情報132を情報格納領域130に記憶する(S13)。以下、履歴情報132の具体例について説明を行う。
[履歴情報の具体例]
図20から図23は、履歴情報132の具体例を説明する図である。図20から図23は、履歴情報132に含まれる各情報を識別する「項番」と、プロセスを識別する「識別情報」と、プロセスの動作状態を示す「動作状態」と、履歴情報132が作成された時間を示す「タイムスタンプ」とを項目として有する。「動作状態」には、履歴情報132が前回作成されてから今回作成されるまでの間にプロセスが動作したことを示す「R(RUN)」が設定される。また、「動作状態」には、履歴情報132が前回作成されてから今回作成されるまでの間にプロセスが動作しなかったことを示す「S(SLEEP)」が設定される。なお、以下、履歴情報132が0.1(秒)毎に作成されるものとして説明を行う。
具体的に、図20に示す履歴情報132において、「項番」が「1」である情報には、「識別情報」として「A−1」が設定され、動作状態として「S」が設定され、「タイムスタンプ」として「11:11.16.100」が設定されている。すなわち、図20に示す履歴情報132は、「11:11.16.000」から「11:11.16.100」までの時間において、「識別情報」が「A−2」であるプロセスが動作しなかったことを示している。
そして、図21に示す履歴情報132は、図20に示す履歴情報132の次に作成された履歴情報132である。すなわち、図21に示す履歴情報132は、図20に示す履歴情報132よりも0.1(秒)後に作成された履歴情報132である。
具体的に、図21に示す履歴情報132において、図20に示す履歴情報132に対し、「項番」が「2」である情報の「動作状態」に設定された情報に「S」が設定されている。すなわち、図21に示す履歴情報132は、「11:11.16.100」から「11:11.16.200」までの時間において、「識別情報」が「A−2」であるプロセスが動作しなかったことを示している。また、図21に示す履歴情報132において、図20に示す履歴情報132に対し、「項番」が「3」である情報の「動作状態」に設定された情報に「R」が設定されている。すなわち、図21に示す履歴情報132は、「11:11.16.100」から「11:11.16.200」までの時間において、「識別情報」が「B−1」であるプロセスが動作したことを示している。
さらに、図22に示す履歴情報132は、図21に示す履歴情報132の次に作成された履歴情報132である。すなわち、図22に示す履歴情報132は、図21に示す履歴情報132よりも0.1(秒)後に作成された履歴情報132である。具体的に、図22に示す履歴情報132において、図21に示す履歴情報132に対し、「項番」が「3」である情報の「動作状態」に設定された情報に「S」が設定されている。
そして、図23に示す履歴情報132は、図22に示す履歴情報132に含まれる情報の更新が次に行われた場合における履歴情報132である。具体的に、図23に示す履歴情報132の「タイムスタンプ」には、「11:11.36.100」がそれぞれ設定されている。そして、図23に示す履歴情報132における「項番」が「2」である情報の「動作状態」には、「R」が設定されている。図20から図23に含まれる他の情報については説明を省略する。
[単体テストの実施時における操作ログ取得処理]
次に、第1の実施の形態におけるテスト支援処理のうち、単体テストの実施時において操作ログ情報133を取得する処理(以下、操作ログ取得処理とも呼ぶ)について説明を行う。
操作ログ取得部117は、図11に示すように、事業者端末3において事業者が操作を行ったことを検知するまで待機する(S21のNO)。そして、事業者端末3における操作を検知した場合(S21のYES)、操作ログ取得部117は、S21の処理で検知した操作に対応する操作ログ情報133を作成する(S22)。その後、情報出力部115は、S22の処理で作成した操作ログ情報133を情報格納領域130に記憶する(S23)。以下、操作ログ情報133の具体例について説明を行う。
[操作ログ情報の具体例]
図24及び図25は、操作ログ情報133の具体例を説明する図である。図24及び図25は、操作ログ情報133に含まれる各情報を識別する「項番」と、事業者端末3において操作が行われた時間を示す「タイムスタンプ」と、事業者端末3における操作の内容を示す「文字列」とを項目として有する。なお、図24及び図25に示す操作ログ情報133は、それぞれ「識別情報」が「A−2」及び「B−1」であるプロセス(以下、それぞれプロセスA−2、プロセスB−1とも呼ぶ)に対応する操作ログ情報133である。
具体的に、図24に示す操作ログ情報133において、「項番」が「1」である情報の「タイムスタンプ」には、「11:11.05.333」が設定されている。そして、「項番」が「1」である情報の「文字列」には、プロセスA−2のデバッグが開始されたことを示す「debug,A−2」が設定されている。
また、図24に示す操作ログ情報133において、「項番」が「2」である情報の「文字列」には、アドレスが「0x0022b00eo1212」及び「0x0022b8855ab00」である位置がブレイクポイントに設定されたことを示す「b,0x0022b00eo1212,0x0022b8855ab00」が設定されている。そして、図24に示す操作ログ情報133において、「項番」が「3」である情報の「文字列」には、設定されたブレイクポイントに到達したことによってプロセスA−2の動作が停止したことを示す「break,0x0022b00eo1212」が設定されている。
さらに、図24に示す操作ログ情報133において、「項番」が「4」である情報の「文字列」には、プロセスA−2を動作させたことを示す「go」が設定されている。そして、「項番」が「7」である情報の「文字列」には、設定されたブレイクポイントの設定を解除したことを示す「b,clear」が設定されている。
また、図24に示す操作ログ情報133において、「項番」が「8」である情報の「文字列」には、プロセスA−2のデバッグが終了したことを示す「end」が設定されている。図24及び図25に含まれる他の情報については説明を省略する。
なお、事業者は、プロセスAとプロセスBとを異なる事業者端末3において動作させるものであってもよい。そして、操作ログ取得部117は、プロセスAとプロセスBとがそれぞれ動作する事業者端末3から、図24及び図25で説明した操作ログ情報133をそれぞれ取得するものであってもよい。
[単体テストの実施時におけるテスト実行処理]
次に、第1の実施の形態におけるテスト支援処理のうち、タイムアウトが発生する場合の単体テストを実行する処理(以下、テスト実行処理とも呼ぶ)について説明を行う。
テスト実行部112は、図12に示すように、テスト実行タイミングまで待機する(S31のNO)。テスト実行タイミングは、例えば、事業者が情報処理装置1に単体テストを行う旨を入力したタイミングであってよい。そして、テスト実行タイミングになった場合(S31のYES)、テスト実行部112は、各プログラムを実行することにより、各プロセスを起動する(S32)。テスト実行部112は、S32の処理において、例えば、業務システムを構成する全てのプログラムを実行する。
その後、S32の処理で起動されたプロセスのうちのいずれかが他のプロセスの呼び出しを行った場合(S33のYES)、テスト実行部112は、呼び出し先のプロセスの動作を停止する(S34)。そして、全てのプロセスの実行が終了していない場合(S35のNO)、テスト実行部112は、S33以降の処理を再度実行する。
一方、全てのプロセスの実行が終了するまで他のプロセスの呼び出しが行われない場合(S33のNO、S35のYES)、テスト実行部112は、次のテスト実行タイミングまで待機する(S31のNO)。以下、S34の処理の具体例について説明を行う。
[S34の処理の具体例]
図19は、S34の処理の具体例を説明する図である。テスト実行部112は、図19に示すように、プロセスAがプロセスBを呼び出した後、プロセスBの動作を停止する。具体的に、テスト実行部112は、事業者によって予め設定されたブレイクポイントにプロセスBの処理が到達したことに応じて、プロセスBの動作を停止する。
これにより、テスト実行部112は、プロセスBの実行結果がプロセスAに送信されることを防ぐことが可能になる。そのため、テスト実行部112は、プロセスAにおいてタイムアウトを容易に発生させることが可能になる。
なお、以下、図12で説明したテスト実行処理が実行されたことに伴って、図20から図25で説明した履歴情報132及び操作ログ情報133が作成されたものとして説明を行う。
[応答待ち時間算出処理]
次に、第1の実施の形態におけるテスト支援処理のうち、応答待ち時間情報134を作成する処理(以下、応答待ち時間算出処理とも呼ぶ)について説明を行う。なお、応答待ち時間算出処理は、例えば、図12で説明したテスト実行処理の後であって、改修済プログラムの改修に伴ってリグレッションテストが行われる前に実行される処理である。
応答待ち時間算出部118は、図13に示すように、応答待ち時間算出タイミングまで待機する(S41のNO)。応答待ち時間算出タイミングは、例えば、テスト実行処理の後であって、改修済プログラムの改修に伴ってリグレッションテストが行われる前の所定のタイミングであってよい。また、応答待ち時間算出タイミングは、例えば、事業者が応答待ち時間情報134を作成する旨の入力を行ったタイミングであってよい。
そして、応答待ち時間算出タイミングになった場合(S41のYES)、応答待ち時間算出部118は、情報格納領域130に記憶された操作ログ情報133を参照し、各プロセスについてデバッグが行われていた時間(以下、デバッグ時間とも呼ぶ)を特定する(S42)。具体的に、応答待ち時間算出部118は、例えば、各プロセスについてのデバッグが開始した時間(以下、デバッグ開始時間とも呼ぶ)と、デバッグが終了した時間(以下、デバッグ終了時間とも呼ぶ)とを特定する。以下、デバッグ開始時間とデバッグ終了時間とを含むデバッグ時間情報134aの具体例について説明を行う。
[デバッグ時間情報の具体例]
図26は、デバッグ時間情報134aの具体例を説明する図である。図26に示すデバッグ時間情報134aは、デバッグ時間情報134aに含まれる各情報を識別する「項番」と、デバッグを行う各プロセスを特定する「識別情報」とを項目として有する。また、図26に示すデバッグ時間情報134aは、デバッグ開始時間が設定される「デバッグ開始時間」と、デバッグ終了時間が設定される「デバッグ終了時間」とを項目として有する。
具体的に、図24で説明したプロセスA−2に関する操作ログ情報133において、「文字列」に「debug」が含まれる情報の「タイムスタンプ」には、「11:11.05.333」が設定されている。また、図24で説明したプロセスA−2に関する操作ログ情報133において、「文字列」に「end」が含まれる情報の「タイムスタンプ」には、「12:08.20.668」が設定されている。すなわち、この場合、応答待ち時間算出部118は、デバッグ開始時間が「11:11.05.333」であり、デバッグ終了時間が「12:08.20.668」であると特定する。そのため、応答待ち時間算出部118は、図26に示すように、例えば、「項番」が「1」である情報の「識別情報」として「A−2」を設定し、「デバッグ開始時間」として「11:11.05.333」を設定し、「デバッグ終了時間」として「12:18.20.668」を設定する。図26に含まれる他の情報については説明を省略する。
図13に戻り、応答待ち時間算出部118は、デバッグ時間が包含関係にあるプロセスの組み合わせが存在するか否かを判定する(S43)。そして、デバッグ時間が包含関係にあるプロセスの組み合わせが存在すると判定した場合(S43のYES)、応答待ち時間算出部118は、S43の処理で存在したプロセスの組み合わせを、呼び出し元のプロセス及び呼び出し先のプロセスの組み合わせとして特定する(S44)。
具体的に、図26で説明したデバッグ時間情報134aにおいて、「識別情報」が「A−2」である情報には、「デバッグ開始時間」として「11:11.05.333」が設定され、「デバッグ終了時間」として「12:08.20.668」が設定されている。また、図26で説明したデバッグ時間情報134aにおいて、「識別情報」が「B−1」である情報には、「デバッグ開始時間」として「11:11.07.088」が設定され、「デバッグ終了時間」として「12:08.07.356」が設定されている。
すなわち、図26で説明したデバッグ時間情報134aにおいて、プロセスA−2のデバッグが行われていた時間には、プロセスB−1のデバッグが行われていた時間が包含されている。そのため、応答待ち時間算出部118は、プロセスA−2及びプロセスB−1が呼び出し元のプロセス及び呼び出し先のプロセスの関係にあるものと判定する。したがって、応答待ち時間算出部118は、この場合、S44の処理において、プロセスA−2及びプロセスB−1の組み合わせを、呼び出し元プロセス及び呼び出し先プロセスの組み合わせとして特定する。
その後、応答待ち時間算出部118は、情報格納領域130に記憶された操作ログ情報133を参照し、S44の処理で特定した組み合わせに含まれるプロセスの動作が停止した時間(以下、ブレイク時間とも呼ぶ)を特定する(S45)。具体的に、応答待ち時間算出部118は、S44の処理で特定した組み合わせに含まれる各プロセスがブレイクポイントに到達した時間をブレイク時間として特定する。
すなわち、業務システムを構成する各プログラムの単体テストの実行時において、ブレイクポイントが設定されることによる呼び出し先のプロセスの動作の停止には、呼び出し元のプロセスにおいてタイムアウトが発生させるために行われたプロセスの動作の停止が含まれている。そのため、応答待ち時間算出部118は、ブレイクポイントを設定することによって呼び出し先のプロセスの動作の停止が行われている場合、タイムアウトが発生した場合におけるテストが行われていた可能性があると判定することが可能になる。したがって、応答待ち時間算出部118は、ブレイクポイントが設定されたことに伴って呼び出し先のプロセスの動作が停止したブレイク時間を特定する。以下、ブレイク時間を含むブレイク時間情報134bの具体例について説明を行う。
[ブレイク情報の具体例]
図27は、ブレイク時間情報134bの具体例を説明する図である。図27に示すブレイク時間情報134bは、ブレイク時間情報134bに含まれる各情報を識別する「項番」と、呼び出し先のプロセスを識別する「識別情報」と、ブレイク時間が設定される「ブレイク時間」とを項目として有する。
具体的に、図24で説明したプロセスA−2に関する操作ログ情報133において、「文字列」に「break」を含む文字列が設定された情報の「タイムスタンプ」には、「11:11.10.121」及び「11:11.36.075」が設定されている。そのため、応答待ち時間算出部118は、図27に示すように、「項番」が「1」及び「2」である情報の「識別情報」として「A−2」を設定し、「ブレイク時間」として「11:11.10.121」及び「11:11.36.075」をそれぞれ設定する。
また、図25で説明したプロセスB−1に関する操作ログ情報133において、「文字列」に「break」を含む文字列が設定された情報の「タイムスタンプ」には、「11:11.16.162」が設定されている。そのため、応答待ち時間算出部118は、図27に示すように、「項番」が「3」である情報の「識別情報」として「B−1」を設定し、「ブレイク時間」として「11:11.16.162」を設定する。
図13に戻り、応答待ち時間算出部118は、情報格納領域130に記憶され履歴情報132を参照し、S45の処理で特定したブレイク時間から、S44の処理で特定した組み合わせに含まれる呼び出し元のプロセスの動作の停止時間及び再開時間を特定する(S46)。
具体的に、応答待ち時間算出部118は、S46の処理において、図20等で説明した履歴情報132のうち、図27で説明したブレイク時間情報134bの「ブレイク時間」に設定された時間の前後の情報を参照する。
ここで、呼び出し元のプロセスにおいてタイムアウトが発生する場合、呼び出し元のプロセス及び呼び出し先のプロセスの「動作状態」に「S」が設定されている状態が連続する。そして、この場合、呼び出し元のプロセスの「動作状態」が先に「R」に更新される。そのため、応答待ち時間算出部118は、図20等で説明した履歴情報132を参照し、プロセスA−2及びプロセスB−1の「動作状態」が「S」である状態が連続した後、いずれかの「動作状態」が「R」に更新されている情報を特定する。
具体的に、図22で説明した履歴情報132において、「識別情報」が「A−2」である情報には、「動作状態」として「S」が設定され、「識別情報」が「B−1」である情報には、「動作状態」として「S」が設定されている。また、図23で説明した履歴情報132において、「識別情報」が「A−2」である情報には、「動作状態」として「R」が設定され、「識別情報」が「B−1」である情報には、「動作状態」として「S」が設定されている。そして、図23で説明した履歴情報132は、図22で説明した履歴情報132の次に内容が更新された情報であり、図22で説明した履歴情報132の約20秒後に取得された情報である。すなわち、図23で説明した履歴情報132において、プロセスA−2の「動作状態」は、プロセスA−2及びプロセスB−1の「動作状態」が「S」である状態が連続した後に、「R」に更新されている。
そのため、応答待ち時間算出部118は、この場合、「動作状態」が「S」である状態が連続した後に、最初に動作を再開したプロセスであるプロセスA−2を、呼び出し元のプロセスとして特定する。また、応答待ち時間算出部118は、プロセスA−2及びプロセスB−1のうち、呼び出し元のプロセスとして特定されなかったプロセスB−1を、呼び出し先のプロセスとして特定する。
そして、応答待ち時間算出部118は、図23で説明した履歴情報132を参照し、「11:11.36.000」から「11:11.36.100」までの時間内に、プロセスA−2がプロセスB−1を呼び出したと特定する。そのため、応答待ち時間算出部118は、S46の処理において、例えば、「タイムスタンプ」が「11:11:36.100」である時間を、呼び出し元のプロセスであるプロセスA−2の再開時間として仮定する。
さらに、呼び出し元のプロセスが呼び出し先にプロセスを呼び出した場合、呼び出し元のプロセスの動作は停止する。そのため、応答待ち時間算出部118は、呼び出し元のプロセスの「動作状態」が「S」である状態が連続する前であって、最後に「動作状態」が「R」である履歴情報132に対応する時間を、呼び出し元のプロセスが呼び出し先にプロセスを呼び出した時間として特定する。
具体的に、図21で説明した履歴情報132において、「識別情報」が「A−2」である情報には、「動作状態」として「S」が設定されている。一方、図20で説明した履歴情報132において、「識別情報」が「A−2」である情報には、「動作状態」として「R」が設定されている。そのため、応答待ち時間算出部118は、「11:11.16.000」から「11:11.16.100」までの時間内に、プロセスA−2がプロセスB−1を呼び出したと特定する。そのため、応答待ち時間算出部118は、S46の処理において、例えば、「タイムスタンプ」が「11:11.16.100」である時間を、呼び出し元のプロセスであるプロセスA−2の停止時間として仮定する。
その後、応答待ち時間算出部118は、図14に示すように、S46の処理で特定した停止時間と再開時間との時間差を、応答待ち時間として算出する(S51)。
具体的に、応答待ち時間算出部118は、停止時間である「11:11.16.100」から、再開時間である「11:11.36.100」までの20(秒)を、プロセスB−1を呼び出した後にタイムアウトが発生する場合におけるプロセスA−2の応答待ち時間として特定する。
そして、情報出力部115は、S51の処理で算出した応答待ち時間と、呼び出し元のプロセス及び呼び出し先のプロセスの識別情報とを対応付けた情報を、応答待ち時間情報134として情報格納領域130に記憶する(S52)。以下、応答待ち時間情報134の具体例について説明を行う。
[応答待ち時間情報の具体例]
図28は、応答待ち時間情報134の具体例を説明する図である。図28に示す応答待ち時間情報134は、応答待ち時間情報134に含まれる各情報を識別する「項番」と、呼び出し元のプロセスの識別情報が設定される「呼び出し元の識別情報」とを項目として有する。また、図28に示す応答待ち時間情報134は、呼び出し先のプロセスの識別情報が設定される「呼び出し先の識別情報」と、S51の処理で算出された応答待ち時間が設定される「応答待ち時間」とを項目として有する。
具体的に、図28に示す応答待ち時間情報134において、「項番」が「1」である情報には、「呼び出し元の識別情報」として「A−2」が設定され、「呼び出し元の識別情報」として「B−1」が設定され、「応答待ち時間」として「20(秒)」が設定される。図28に含まれる他の情報については説明を省略する。
[リグレッションテストの実施時における履歴情報取得処理]
次に、第1の実施の形態におけるテスト支援処理のうち、リグレッションテストの実施時における履歴情報取得処理(改修済プログラムの改修が行われた後に実施される履歴情報取得処理)について説明を行う。
履歴情報取得部116は、図15に示すように、履歴情報取得タイミングになるまで待機する(S61のNO)。そして、履歴情報取得タイミングになった場合(S61のYES)、履歴情報取得部116は、例えば、S46の処理で特定した呼び出し元のプロセス及び呼び出し先のプロセスの動作状態を示す履歴情報132を作成する(S62)。その後、情報出力部115は、図10で説明した場合と同様に、S62の処理で作成した履歴情報132を情報格納領域130に記憶する(S63)。
[リグレッションテストの実施時におけるテスト実行処理]
次に、第1の実施の形態におけるテスト支援処理のうち、リグレッションテストの実施時におけるテスト実行処理(改修済プログラムの改修が行われた後に実施されるテスト実行処理)について説明を行う。
テスト実行部112は、図16に示すように、テスト実行タイミングまで待機する(S71のNO)。テスト実行タイミングは、例えば、事業者が情報処理装置1にリグレッションテストを行う旨を入力したタイミングであってよい。そして、テスト実行タイミングになった場合(S71のYES)、テスト実行部112は、例えば、情報受付部111が指定を受け付けたテストセットを実行する(S72)。具体的に、テスト実行部112は、例えば、改修済プログラム及び改修済プログラムの改修に伴って影響が生じる可能性があるプログラムに対するテスト項目を含むテストセットを実行する。すなわち、テスト実行部112は、改修済プロセス等に対して測定対象プロセスを動作させる。その後、テストセットの実行が終了した場合(S73のYES)、テスト実行部112は、測定対象プロセスのうち、今回及び過去の実行時間の差が所定時間以上であるプロセスが存在するか否かを判定する(S74)。具体的に、テスト実行部112は、例えば、過去の実行時(例えば、単体テストにおける実行時を含む)における各プロセスの実行時間を含む実行時間情報(図示しない)を参照するものであってよい。そして、テスト実行部112は、測定対象プロセスのうち、今回の実行時間が過去の実行時間よりも所定時間以上遅延しているプロセスが存在するか否かを判定するものであってよい。
その結果、今回及び過去の実行時間の差が所定時間以上であるプロセスが存在すると判定した場合(S74のYES)、プロセス特定部114は、図17に示すように、プロセス特定タイミングになるまで待機する(S81のNO)。すなわち、測定対象プロセスの実行時間が遅延していると判定した場合、プロセス特定部114は、測定対象プロセスの実行時間が遅延した原因を特定するための処理を行う。
そして、プロセス特定タイミングになった場合(S81のYES)、プロセス特定部114は、情報格納領域130に記憶された履歴情報132を参照し、S74の処理で存在したプロセス(測定対象プロセス)の動作の停止時間と再開時間とを特定する(S82)。さらに、プロセス特定部114は、S82の処理で特定した停止時間と再開時間との時間差を、休止時間として算出する(S83)。
続いて、プロセス特定部114は、テスト結果情報135を参照し、S83の処理で算出した休止時間のうち、過去に存在しなかった休止時間が存在するか否かを判定する(S84)。
すなわち、同一の改修済プログラムに対する改修が複数回行われる場合がある。そのため、プロセス特定部114は、S83の処理で算出した休止時間に、前回行われたリグレッションテストの際に存在しなかった休止時間が存在するか否かを判定する。その結果、前回行われたリグレッションテストの際に存在しなかった休止時間が存在する場合、プロセス特定部114は、存在した休止時間を、改修済プログラムに対する今回の改修によって発生した休止時間であると特定する。これにより、プロセス特定部114は、改修済プログラムに対する今回の改修によって発生した休止時間を特定することが可能になる。そして、プロセス特定部114は、今回の改修によって発生した休止時間についてのみ、後述する処理を行うことが可能になる。
そのため、プロセス特定部114は、後述するように、リグレッションテストが行われる毎に、S83の処理で算出された休止時間を含むテスト結果情報135を蓄積する。そして、プロセス特定部114は、S84の処理において、過去にリグレッションテストが行われる際に算出された休止時間を含むテスト結果情報135を参照し、改修済プログラムに対する今回の改修によって発生した休止時間が存在するか否かを判定する。以下、前回のテスト結果情報135の具体例について説明を行う。
[前回のテスト結果情報の具体例]
図29は、前回のテスト結果情報135の具体例を説明する図である。図29に示すテスト結果情報135は、テスト結果情報135に含まれる各情報を識別する「項番」と、呼び出し元のプロセスの識別情報が設定される「呼び出し元の識別情報」とを項目として有している。また、図29に示すテスト結果情報135は、S83の処理で算出した休止時間が設定される「休止時間」を項目として有している。
具体的に、図29に示すテスト結果情報135において、「項番」が「1」である情報には、「呼び出し元の識別情報」として「A−1」が設定され、「休止時間」として「15(秒)」が設定されている。
ここで、呼び出し元のプロセスがプロセスA−2であり、S83の処理で算出された休止時間が「20(秒)」である場合、テスト結果情報135には、「呼び出し元の識別情報」に「A−2」が設定され、「休止時間」に「20(秒)」が設定されている情報が含まれていない。そのため、プロセス特定部114は、この場合、S84の処理において、S83の処理で算出した休止時間のうち、過去に存在しなかった休止時間が存在すると判定する。図29に含まれる他の情報については説明を省略する。
図17に戻り、S83の処理で算出した休止時間のうち、過去に存在しなかった休止時間が存在すると判定した場合(S84のYES)、プロセス特定部114は、図18に示すように、応答待ち時間情報134を参照する。そして、プロセス特定部114は、応答待ち時間情報134において、S84の処理で存在すると判定した休止時間に応じた応答待ち時間に対応付けられた呼び出し先のプロセスを特定する(S91)。
具体的に、プロセス特定部114は、例えば、図28で説明した応答待ち時間情報134を参照し、「呼び出し元の識別情報」が「A−2」であって、「応答待ち時間」が「20(秒)」である情報を特定する。そして、プロセス特定部114は、特定した情報の「呼び出し先の識別情報」に設定された情報である「B−1」を、S83の処理で特定した休止時間に応じた応答待ち時間に対応付けられた呼び出し先のプロセスとして特定する。
これにより、プロセス特定部114は、測定対象プロセスの動作時において休止時間が発生した場合、その休止時間の発生の原因が、呼び出し先のプロセスに起因したタイムアウトであるか否かについて特定することが可能になる。また、プロセス特定部114は、測定対象プロセスにおける休止時間の発生の原因がタイムアウトである場合に、タイムアウトの原因となった呼び出し先のプロセスを特定することが可能になる。
なお、S84の処理において、情報格納領域130にテスト結果情報135がまだ記憶されていない場合、プロセス特定部114は、S83の処理で算出された全ての休止時間について、S91以降の処理を実行するものであってよい。
その後、S83の処理で算出した休止時間と、S91の処理で特定した呼び出し先のプロセスの識別情報とを対応付けた情報を、今回のテスト結果情報135として情報格納領域130に記憶する(S92)。以下、今回のテスト結果情報135の具体例について説明を行う。
[今回のテスト結果情報の具体例]
図30は、今回のテスト結果情報135の具体例を説明する図である。図30に示すテスト結果情報135は、図29で説明したテスト結果情報135と同じ項目を有している。具体的に、プロセス特定部114は、図30に示すように、図29で説明したテスト結果情報135に対し、「呼び出し元の識別情報」が「A−2」であり、「休止時間」が「20(秒)」である情報(「項番」が「4」である情報)を追加して設定する。図30に含まれる他の情報については説明を省略する。
これにより、プロセス特定部114は、改修済プログラムに対する改修が再度行われる場合であっても、図30に示すテスト結果情報135を参照することにより、再度行われた改修に伴って発生した休止時間を特定することが可能になる。そのため、事業者は、この場合、再度行われた改修に伴って発生した休止時間についての解析のみを行うことが可能になる。
図18に戻り、テスト実行部112は、S72の処理で実行したテストセットを再度実行する(S93)。そして、ダンプ取得部119は、S91の処理で特定した呼び出し先のプロセスの起動中におけるメモリダンプを取得する(S94)。
すなわち、S82の処理において、測定対象プロセスの動作の停止時間と再開時間が算出されている。そのため、ダンプ取得部119は、S82の処理において算出された停止時間と再開時間とを参照することで、例えば、測定対象プロセスにおいてタイムアウトが発生する直前におけるメモリダンプを作成することが可能になる。これにより、事業者は、異常が発生したと考えられる時間帯における各プロセスの動作状態の解析を行うことが可能になる。
なお、S74の処理において、今回及び過去の実行時間の差が所定時間以上であるプロセスが存在すると判定しないと場合(S74のNO)、プロセス特定部114は、テスト実行処理を終了する。すなわち、測定対象プロセスの実行時間が遅延していないと判定した場合とは、改修済プログラムに対するリグレッションテストの結果、異常が検知されなかった場合である。そのため、プロセス特定部114は、この場合、さらなる処理を行う必要がない。
また、S84の処理において、S83の処理で算出した休止時間のうち、過去に存在しなかった休止時間が存在しないと判定した場合についても同様に(S84のNO)、プロセス特定部114は、テスト実行処理を終了する。
このように、本実施の形態における情報処理装置1は、例えば、測定対象プロセスの起動時における休止時間を算出する。具体的に、情報処理装置1は、起動中の各プロセスの動作状態についての履歴情報を、各プロセスに対応付けて記憶する記憶部を参照し、測定対象プロセスに対応する履歴情報に基づき、測定対象プロセスの休止時間を算出する。
その後、情報処理装置1は、呼び出し元のプロセスごとに、呼び出し先のプロセスの識別情報を、呼び出し先のプロセスの応答待ちに起因して呼び出し元のプロセスにおいてタイムアウトが生じるまでの応答待ち時間に対応付けて記憶する記憶部を参照する。そして、情報処理装置1は、算出した休止時間に応じた応答待ち時間に対応付けられた呼び出し先のプロセスを特定し、特定した呼び出し先のプロセスの識別情報を出力する。
これにより、情報処理装置1は、測定対象プロセスの起動時において休止時間が発生した場合、その休止時間の発生の原因が、呼び出し先のプロセスに起因したタイムアウトであるか否かについて特定することが可能になる。また、情報処理装置1は、特定のプロセスにおける休止時間の発生の原因がタイムアウトである場合に、タイムアウトの原因となった呼び出し先のプロセスを特定することが可能になる。そのため、情報処理装置1は、改修済プログラムにおける既存機能の性能劣化が発生した場合、発生した性能劣化の原因を特定することが可能になる。
以上の実施の形態をまとめると、以下の付記のとおりである。
(付記1)
コンピュータに、
起動中の各プロセスの動作状態についての履歴情報を、各プロセスに対応付けて記憶する記憶部を参照し、特定のプロセスに対応する履歴情報に基づき、前記特定のプロセスの休止時間を算出し、
呼び出し元のプロセスごとに、呼び出し先のプロセスの識別情報を、該呼び出し先のプロセスの応答待ちに起因して前記呼び出し元のプロセスにおいてタイムアウトが生じるまでの応答待ち時間に対応付けて記憶する記憶部を参照して、算出した前記休止時間に応じた前記応答待ち時間に対応付けられた前記呼び出し先のプロセスを特定し、
特定した前記呼び出し先のプロセスの識別情報を出力する、
処理を実行させることを特徴とするテスト支援プログラム。
(付記2)
付記1において、さらに、
前記休止時間を算出する処理の前に、各プロセスに対応する前記履歴情報を取得して記憶部に記憶する、
ことを特徴とするテスト支援プログラム。
(付記3)
付記1において、
前記履歴情報は、各プロセスによる処理の停止時間と再開時間とを含み、
前記休止時間を算出する処理では、前記特定のプロセスに対応する前記停止時間と前記再開時間との時間差を、前記休止時間として算出する、
ことを特徴とするテスト支援プログラム。
(付記4)
付記1において、さらに、
前記休止時間を算出する処理の前に、前記呼び出し元のプロセスをそれぞれ起動し、
起動中の前記呼び出し元のプロセスによって前記呼び出し先のプロセスに対する処理要求が行われたことに応じて、前記呼び出し先のプロセスが前記呼び出し元のプロセスに対して前記処理要求に対する処理結果を送信する前に、前記呼び出し先のプロセスによる処理を停止し、
前記処理要求が行われたことに伴う前記呼び出し元のプロセスによる処理の停止時間と、前記処理結果の送信待ちに起因する前記呼び出し元のプロセスにおけるタイムアウトの発生時間との時間差を、前記応答待ち時間として算出する、
ことを特徴とするテスト支援プログラム。
(付記5)
付記1において、さらに、
前記識別情報を出力する処理の後、前記特定のプロセスを再度起動し、
前記タイムアウトが生じる際の前記処理要求が行われた前記呼び出し先のプロセスのメモリダンプを取得する、
ことを特徴とするテスト支援プログラム。
(付記6)
付記1において、
前記呼び出し先のプロセスを特定する処理では、特定した前記呼び出し先のプロセスの識別情報に、前記休止時間に応じた前記応答待ち時間を対応付けて記憶部に記憶し、さらに、
前記呼び出し先のプロセスを特定する処理の後、前記特定のプロセスの休止時間を再度算出し、
再度算出した前記休止時間に応じた前記応答待ち時間に対応付けられた前記呼び出し先のプロセスを再度特定し、
再度特定した前記呼び出し先のプロセスの識別情報が、再度算出した前記休止時間に応じた前記応答待ち時間に対応付けられて記憶部に記憶されていない場合、再度特定した前記呼び出し先のプロセスの識別情報を出力する、
処理をコンピュータに実行させることを特徴とするテストプログラム。
(付記7)
起動中の各プロセスの動作状態についての履歴情報を、各プロセスに対応付けて記憶する記憶部を参照し、特定のプロセスに対応する履歴情報に基づき、前記特定のプロセスの休止時間を算出する休止時間算出部と、
呼び出し元のプロセスごとに、呼び出し先のプロセスの識別情報を、該呼び出し先のプロセスの応答待ちに起因して前記呼び出し元のプロセスにおいてタイムアウトが生じるまでの応答待ち時間に対応付けて記憶する記憶部を参照して、算出した前記休止時間に応じた前記応答待ち時間に対応付けられた前記呼び出し先のプロセスを特定するプロセス特定部と、
特定した前記呼び出し先のプロセスの識別情報を出力する情報出力部と、を有する、
ことを特徴とするテスト支援装置。
(付記8)
付記7において、
前記履歴情報は、各プロセスによる処理の停止時間と再開時間とを含み、
前記休止時間算出部は、前記特定のプロセスに対応する前記停止時間と前記再開時間との時間差を、前記休止時間として算出する、
ことを特徴とするテスト支援装置。
(付記9)
起動中の各プロセスの動作状態についての履歴情報を、各プロセスに対応付けて記憶する記憶部を参照し、特定のプロセスに対応する履歴情報に基づき、前記特定のプロセスの休止時間を算出し、
呼び出し元のプロセスごとに、呼び出し先のプロセスの識別情報を、該呼び出し先のプロセスの応答待ちに起因して前記呼び出し元のプロセスにおいてタイムアウトが生じるまでの応答待ち時間に対応付けて記憶する記憶部を参照して、算出した前記休止時間に応じた前記応答待ち時間に対応付けられた前記呼び出し先のプロセスを特定し、
特定した前記呼び出し先のプロセスの識別情報を出力する、
ことを特徴とするテスト支援方法。
(付記10)
付記9において、
前記履歴情報は、各プロセスによる処理の停止時間と再開時間とを含み、
前記休止時間を算出する処理では、前記特定のプロセスに対応する前記停止時間と前記再開時間との時間差を、前記休止時間として算出する、
ことを特徴とするテスト支援方法。