JP6248425B2 - Program, process selection method, and information processing apparatus - Google Patents
Program, process selection method, and information processing apparatus Download PDFInfo
- Publication number
- JP6248425B2 JP6248425B2 JP2013124319A JP2013124319A JP6248425B2 JP 6248425 B2 JP6248425 B2 JP 6248425B2 JP 2013124319 A JP2013124319 A JP 2013124319A JP 2013124319 A JP2013124319 A JP 2013124319A JP 6248425 B2 JP6248425 B2 JP 6248425B2
- Authority
- JP
- Japan
- Prior art keywords
- test
- information
- software
- information collection
- item
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
本発明はプログラム、プロセス選択方法および情報処理装置に関する。 The present invention relates to a program, a process selection method, and an information processing apparatus.
現在、ソフトウェア開発では、ソフトウェアの品質向上を図るためにソフトウェアの動作を確認するテストが行われている。テストでは、例えばテスト対象のソフトウェアをコンピュータなどの情報処理装置に実行させる。そして、予定される入力に対し、ソフトウェアが設計された動作を適正に行えるかを確認する。動作が不正(エラー)であれば、当該エラーに関連する情報を採取して、当該情報からエラーの原因を分析し、対策し得る。 Currently, in software development, tests are performed to confirm the operation of software in order to improve the quality of software. In the test, for example, software to be tested is executed by an information processing apparatus such as a computer. Then, it is checked whether the software can properly perform the designed operation for the planned input. If the operation is invalid (error), information related to the error can be collected, the cause of the error can be analyzed from the information, and countermeasures can be taken.
例えば、エラーの種別ごとにどのような情報があれば原因究明に役立つかを予め設定しておき、この設定に基づいて主メモリ上に採取された障害調査情報を磁気ディスク装置などの記憶媒体に出力することで、当該障害調査情報を容易に得る方法が提案されている。この提案では、障害調査情報として、エラー時におけるハードウェア、ソフトウェアの状態を示すログや各種プログラムの走行内容やその動作に関連して変化するハードウェアおよびソフトウェア資源の状態を動的・連続的に採取したトレース情報が挙げられている。 For example, what kind of information is useful for investigating the cause for each error type is set in advance, and failure investigation information collected in the main memory based on this setting is stored in a storage medium such as a magnetic disk device. There has been proposed a method for easily obtaining the trouble investigation information by outputting. In this proposal, as fault investigation information, logs indicating the status of hardware and software at the time of error, running contents of various programs and the status of hardware and software resources that change in relation to the operation are dynamically and continuously Collected trace information is listed.
ところで、ソフトウェアの実行状態は情報処理装置上でプロセスと呼ばれる単位で管理され得る。そこで、エラー時に採取対象とする情報を、当該プロセスの情報に基づいて指定することが考えられる。例えば、テストに関連するプロセスを予め指定して採取する情報を絞り込めば、余計な情報を採取するよりも、原因究明の分析作業を効率化し得る。 By the way, the execution state of software can be managed in units called processes on the information processing apparatus. Therefore, it is conceivable to specify information to be collected at the time of error based on the information of the process. For example, by narrowing down information to be collected by specifying processes related to the test in advance, it is possible to make the analysis work for finding the cause more efficient than collecting unnecessary information.
しかし、情報処理装置上ではテスト対象のソフトウェアに関連して動作するソフトウェアのみが実行されているとは限らない。テスト対象のソフトウェアとは無関係なソフトウェアも実行され得る。そこで、多数存在するソフトウェアのプロセスの中から、テスト時に情報収集の対象とするプロセスをどのようにして効率的に選択するかが問題となる。 However, only software that operates in association with software to be tested is not always executed on the information processing apparatus. Software unrelated to the software under test can also be executed. Thus, there is a problem of how to efficiently select a process for collecting information at the time of testing from among a large number of existing software processes.
1つの側面では、本発明は、テストの効率化を図れるプログラム、プロセス選択方法および情報処理装置を提供することを目的とする。 In one aspect, an object of the present invention is to provide a program, a process selection method, and an information processing apparatus that can improve test efficiency.
1つの態様では、複数のプロセスを実行可能なコンピュータによって実行されるプログラムが提供される。このプログラムは、コンピュータに、ソフトウェアのテストを開始する際に、存在しているプロセスごとに、実行された累積の時間を示す第1の情報を取得し、ソフトウェアのテストを終了する際に、存在しているプロセスごとに、実行された累積の時間を示す第2の情報を取得し、プロセスごとに取得された第1および第2の情報に基づいて、ソフトウェアのテストを再び行う際に情報収集の対象とするプロセスを選択し、情報収集の対象とした第1のプロセスに関するテスト中の履歴に、第1のプロセスと通信する第2のプロセスの異常が記録されている場合、第2のプロセスを情報収集の対象とする、処理を実行させる。 In one aspect, a program executed by a computer capable of executing a plurality of processes is provided. This program obtains first information indicating the accumulated time executed for each existing process when starting a software test on the computer, and exists when the software test ends. For each process, the second information indicating the accumulated time of execution is acquired, and information is collected when the software is tested again based on the first and second information acquired for each process. of selecting a process of interest, the first history during the test on the process intended for information gathering, when an abnormality of the second process communicating with the first process is recorded, a second process Execute the process that targets information collection .
また、1つの態様では、複数のプロセスを実行可能な情報処理装置が実行するプロセス選択方法が提供される。このプロセス選択方法では、情報処理装置が、ソフトウェアのテストを開始する際に、存在しているプロセスごとに、実行された累積の時間を示す第1の情報を取得し、ソフトウェアのテストを終了する際に、存在しているプロセスごとに、実行された累積の時間を示す第2の情報を取得し、プロセスごとに取得された第1および第2の情報に基づいて、ソフトウェアのテストを再び行う際に情報収集の対象とするプロセスを選択し、情報収集の対象とした第1のプロセスに関するテスト中の履歴に、第1のプロセスと通信する第2のプロセスの異常が記録されている場合、第2のプロセスを情報収集の対象とする。 Further, in one aspect, a process selection method executed by an information processing apparatus that can execute a plurality of processes is provided. In this process selection method, when the information processing apparatus starts a software test, the information processing apparatus acquires first information indicating the accumulated time for each existing process, and ends the software test. In this case, for each existing process, the second information indicating the accumulated time of execution is acquired, and the software test is performed again based on the first and second information acquired for each process. When a process to be collected information is selected and an abnormality of the second process communicating with the first process is recorded in the history of the test related to the first process to be collected information, The second process is the target of information collection .
また、1つの態様では、複数のプロセスを実行可能な情報処理装置が提供される。この情報処理装置は、記憶部と演算部とを有する。記憶部は、現存しているプロセスごとに、実行された累積の時間を記憶する。演算部は、ソフトウェアのテストを開始する際に、記憶部を参照して、存在しているプロセスごとに、実行された累積の時間を示す第1の情報を取得し、ソフトウェアのテストを終了する際に、記憶部を参照して、存在しているプロセスごとに、実行された累積の時間を示す第2の情報を取得し、プロセスごとに取得された第1および第2の情報に基づいて、ソフトウェアのテストを再び行う際に情報収集の対象とするプロセスを選択し、情報収集の対象とした第1のプロセスに関するテスト中の履歴に、第1のプロセスと通信する第2のプロセスの異常が記録されている場合、第2のプロセスを情報収集の対象とする。 In one aspect, an information processing apparatus capable of executing a plurality of processes is provided. This information processing apparatus includes a storage unit and a calculation unit. The storage unit stores the accumulated time for each existing process. When starting the software test, the arithmetic unit refers to the storage unit, obtains first information indicating the accumulated time for each existing process, and ends the software test. At the time, referring to the storage unit, the second information indicating the accumulated execution time is obtained for each existing process, and based on the first and second information obtained for each process. When the software test is performed again, the process to be collected information is selected , and the abnormality in the second process communicating with the first process is recorded in the history of the test related to the first process to be collected. Is recorded, the second process is the target of information collection .
1つの側面では、テストの効率化を図れる。 In one aspect, testing can be made more efficient.
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理装置を示す図である。情報処理装置1は、テスト対象のソフトウェアを実行し、当該ソフトウェアの動作テストを行う。情報処理装置1は、複数のプロセスを実行可能である。プロセスは情報処理装置1により実行される種々のソフトウェアのプログラムの実行単位の1つである。例えば、情報処理装置1により実行されるオペレーティングシステム(OS:Operating System)が、各ソフトウェアのプロセスの生成・実行待ち・実行・終了などを管理する。
Hereinafter, the present embodiment will be described with reference to the drawings.
[First Embodiment]
FIG. 1 is a diagram illustrating the information processing apparatus according to the first embodiment. The
情報処理装置1は、記憶部1aおよび演算部1bを有する。記憶部1aは、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。演算部1bは、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。演算部1bは、プログラムを実行するプロセッサであってもよい。“プロセッサ”には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。第1の実施の形態の情報処理は、演算部1bが記憶部1aに記憶されたプログラムを実行することで実現されてもよい。
The
記憶部1aは、現存しているプロセスごとの実行された累積の時間(累積実行時間ということがある)を示す管理情報2を記憶する。例えば、情報処理装置1により実行されるOSが、現時点において存在しているプロセスごとに実行された累積の時間を管理情報2に記録する。存在しているプロセスとは、生成済のプロセスである。存在しているプロセスは、OSによるプロセッサやRAMなどのリソースの割当てがあるプロセスともいえる。存在していないプロセスとは、過去に存在していたが、現在は終了して消去されたプロセスである。存在していないプロセスは、OSにより割当てられていたリソースが解放されたプロセスともいえる。実行された累積の時間は、該当のプロセスが実行状態であった時間の累積である。
The
演算部1bは、テスト対象のソフトウェアのテストを開始する際に、存在しているプロセスごとに、実行された累積の時間を示す第1の情報を取得する。演算部1bは、記憶部1aを参照して、当該テスト開始時に存在しているプロセスごとの第1の情報を取得し得る。例えば、演算部1bは、取得した第1の情報をプロセスに対応付けて記憶部1aに格納された記録情報3に登録する。
When starting the test of the software to be tested, the
演算部1bは、テスト対象のソフトウェアのテストを終了する際に、存在しているプロセスごとに、実行された累積の時間を示す第2の情報を取得する。演算部1bは、記憶部1aを参照して、当該テスト終了時に存在しているプロセスごとの第2の情報を取得し得る。例えば、演算部1bは、取得した第2の情報をプロセスに対応付けて記録情報3に登録する。
When completing the test of the software to be tested, the
演算部1bは、プロセスごとに取得された第1および第2の情報に基づいて、テスト対象のソフトウェアのテストを行う際に情報収集の対象とするプロセスを選択する。
ここで、図1の管理情報2および記録情報3では、あるソフトウェアのテストを行った後、所定時間が経過した時点の登録内容を例示している。例えば、当該時点において、管理情報2には各プロセスに対して次の累積実行時間が登録されている。プロセスA1の累積実行時間t12。プロセスA2の累積実行時間t22。プロセスA4の累積実行時間t42。プロセスA5の累積実行時間t52。
Based on the first and second information acquired for each process, the
Here, the
また、例えば記録情報3には、テスト開始時に存在していたプロセスに対して次のようにテスト開始時の累積実行時間が登録されている。登録なし(ハイフン“−”を表記)は、当該時点において存在していなかったため、累積実行時間を取得できなかったことを示す。プロセスA1の累積実行時間t10。プロセスA2の累積実行時間t20。プロセスA3の累積実行時間t30。同様に、テスト終了時に存在していたプロセスに対して次のようにテスト終了時の累積実行時間が登録されている。プロセスA1の累積実行時間t11。プロセスA2の累積実行時間t20。プロセスA4の累積実行時間t41。
Further, for example, in the
例えば、演算部1bは、記録情報3を参照して、プロセスごとにテスト開始時の累積実行時間(第1の情報)とテスト終了時の累積実行時間(第2の情報)とを比較する。例えば、演算部1bは、テスト開始時の累積実行時間(第1の情報)とテスト終了時の累積実行時間(第2の情報)とが異なるプロセスを、情報収集の対象として選択する。テスト期間中に累積実行時間が変動していれば、当該プロセスは、テスト中のソフトウェアの処理に関連して実行された可能性が高いからである。
For example, the
記録情報3の例でいえば、プロセスA1はテスト開始時とテスト終了時とで累積実行時間が異なっている。よって、演算部1bはプロセスA1を情報収集の対象とする。一方、演算部1bはテスト開始時およびテスト終了時の累積実行時間が同じであるプロセスA2を情報収集の対象としない。
In the example of the
演算部1bは、第1および第2の情報のうちの何れか一方のみが取得されているプロセスをソフトウェアの情報収集の対象として選択してもよい。例えば、テスト開始時には存在しておらず、テスト終了時には存在していたプロセスA4は、テスト中のソフトウェアの処理に関連して生成された可能性があるからである。また、テスト開始時には存在しており、テスト終了時には存在していなかったプロセスA3は、テスト中のソフトウェアの処理に関連して終了された可能性があるからである。よって、演算部1bはプロセスA3,A4を情報収集の対象とする。
The
情報処理装置1によれば、演算部1bにより、ソフトウェアのテストが開始される際に、存在しているプロセスごとに、実行された累積の時間を示す第1の情報が取得される。演算部1bにより、ソフトウェアのテストを終了する際に、存在しているプロセスごとに、実行された累積の時間を示す第2の情報が取得される。演算部1bにより、プロセスごとに取得された第1および第2の情報に基づいて、情報収集の対象とするプロセスが選択される。
According to the
これにより、テストの効率化を図れる。ここで、例えば、情報収集の対象とするプロセスを選択して、エラー時に採取する情報を予め絞り込めば、余計な(ソフトウェアのテストとは明らかに関連のない)プロセスの情報を採取するよりも、原因究明の分析作業を効率化し得る。そこで、ソフトウェアのテストでは、情報処理装置1上に多数存在するソフトウェアのプロセスの中から、情報収集の対象とするプロセスをどのようにして効率的に選択するかが問題となる。
This can improve the efficiency of the test. Here, for example, if you select the process for which information is to be collected and narrow down the information to be collected in the event of an error in advance, it will be better than collecting information on the extra process (which is not clearly related to software testing). , Analysis of cause investigation can be made more efficient. Therefore, in the software test, there is a problem of how to efficiently select a process as an information collection target from among many software processes existing on the
例えば、ソフトウェアのテストを行っている最中に、存在している全プロセスについてログやトレースデータなどの情報を網羅的に取得し、取得した情報を分析してテストと関連して実行されたプロセスを選択することも考えられる。しかし、網羅的に情報を取得しようとすると、当該情報を取得する処理に伴う情報処理装置1の負荷が問題となる。情報処理装置1の負荷が増大すると、テスト対象のソフトウェアの処理が適正に行われなくなるおそれがある。また、網羅的に情報を取得すると、取得される情報の情報量も増大し得る。分析対象の情報量が増大すると、分析作業におけるユーザの負担が過大となるおそれもある。
For example, during software testing, processes such as logs and trace data are comprehensively acquired for all existing processes, and the acquired information is analyzed and executed in connection with the tests. It is also possible to select. However, when trying to acquire information comprehensively, the load on the
そこで、情報処理装置1では、テスト開始時およびテスト終了時に各プロセスの累積実行時間を取得し、当該累積実行時間に基づいて、情報収集の対象とするプロセスを選択する。取得した累積実行時間の変化は、プロセスが実行された実績を示すから、テスト中に累積実行時間に変化があったプロセスは、テストに関連して実行されたプロセスであると推測できる。よって、累積実行時間に基づいてプロセスを選択し、情報収集すれば、明らかにテストと関係ないと考えられるプロセスを情報収集の対象から除外できる。
Therefore, the
また、例えば、累積実行時間は、情報処理装置1上のオペレーティングシステムにより、プロセスごとに記憶部1aに格納される情報である。演算部1bは、累積実行時間を取得するために、記憶部1aから該当のプロセスの累積実行時間を読み出せばよい。このため、上記のように網羅的に情報を取得しなくてよく、プロセス選択用の情報の取得に伴う負荷を比較的小さく抑えられる。よって、情報処理装置1の負荷がテストに与える影響を軽減できる。また、テスト開始時およびテスト終了時の各プロセスの累積実行時間に基づいて、情報収集の対象とするプロセスを選択するので、ユーザに対して当該プロセスを選択する作業を強いずに済む。よって、ユーザの作業の省力化を図れる。
Further, for example, the cumulative execution time is information stored in the
特に、テスト対象のソフトウェアが他のソフトウェアと連携して所定の機能を実現する場合、当該連携が適正に行われるかをテストすることもある(システムテストと呼ばれることがある)。システムテストでは、他のソフトウェアとの連携で生ずるエラーの分析が行われる。しかし、他のソフトウェアは、自身とは異なる開発者、ベンダなどにより作成されたものである場合もある。このため、他のソフトウェアがブラックボックス化されていると、どのようなプロセスが実行されるのかを事前に把握することは容易でない。したがって、このような場合には、テスト対象のソフトウェアを実際に動かしてみて他のソフトウェアとの連携を確認することが多い。情報処理装置1によれば、このようなブラックボックステストを行う場合にも、情報収集の対象とするプロセスを効率的に選択でき、テストの効率化を図れる。
In particular, when the software to be tested realizes a predetermined function in cooperation with other software, it may be tested whether the cooperation is properly performed (sometimes called a system test). In the system test, an error generated in cooperation with other software is analyzed. However, other software may be created by a developer or vendor different from itself. For this reason, if other software is black-boxed, it is not easy to know in advance what process will be executed. Therefore, in such a case, it is often the case that the software to be tested is actually moved to confirm the cooperation with other software. According to the
また、情報処理装置1は、テスト対象のソフトウェアのテストを再び行う際に、選択したプロセスを指定して、トレースログやメモリダンプなどの情報を収集し得る。すなわち、情報の収集範囲を、選択したプロセスに絞り込める。このため、当該情報収集に要する負荷を軽減できる。よって、当該テスト中にも情報処理装置1の負荷がテストに与える影響を軽減できる。また、ソフトウェアのテストとは明らかに関連しないプロセスに関する情報(余計な情報)を収集しない。よって、分析対象とする情報量を低減でき、分析作業の省力化を図れる。
The
[第2の実施の形態]
図2は、第2の実施の形態のテスト装置のハードウェア例を示す図である。テスト装置100は、テスト対象のソフトウェアに関するテストを行うコンピュータである。第2の実施の形態では、当該ソフトウェアに対するシステムテストを想定する。システムテストでは、例えば、テスト対象のソフトウェアと他のソフトウェア(OSやデバイスドライバなどを含む)とが連携して、設計された機能を実現できることを確認する。ただし、以下に示す機能をシステムテスト以外に適用することを妨げるものではない。例えば、単体テストや結合テストなどにも適用し得る。
[Second Embodiment]
FIG. 2 is a diagram illustrating a hardware example of the test apparatus according to the second embodiment. The
テスト装置100は、プロセッサ101、RAM102、HDD103、通信部104、画像信号処理部105、入力信号処理部106、ディスクドライブ107および機器接続部108を有する。各ユニットはテスト装置100のバスに接続されている。
The
プロセッサ101は、テスト装置100の情報処理を制御する。プロセッサ101は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、CPU、DSP、ASICまたはFPGAのうちの2以上の要素の組合せであってもよい。
The
RAM102は、テスト装置100の主記憶装置である。RAM102は、プロセッサ101に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、プロセッサ101による処理に用いる各種データを記憶する。
The
HDD103は、テスト装置100の補助記憶装置である。HDD103は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。テスト装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
The
通信部104は、ネットワーク10を介して他のコンピュータと無線通信を行えるインタフェースである。通信部104は、有線インタフェースでもよい。
画像信号処理部105は、プロセッサ101からの命令に従って、テスト装置100に接続されたディスプレイ11に画像を出力する。ディスプレイ11としては、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。
The
The image
入力信号処理部106は、テスト装置100に接続された入力デバイス12から入力信号を取得し、プロセッサ101に出力する。入力デバイス12としては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
The input
ディスクドライブ107は、レーザ光などを利用して、光ディスク13に記録されたプログラムやデータを読み取る駆動装置である。光ディスク13として、例えば、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などを使用できる。ディスクドライブ107は、例えば、プロセッサ101からの命令に従って、光ディスク13から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
The
機器接続部108は、テスト装置100に周辺機器を接続するための通信インタフェースである。例えば、機器接続部108にはメモリ装置14やリーダライタ装置15を接続できる。メモリ装置14は、機器接続部108との通信機能を搭載した記録媒体である。リーダライタ装置15は、メモリカード16へのデータの書き込み、またはメモリカード16からのデータの読み出しを行う装置である。メモリカード16は、カード型の記録媒体である。機器接続部108は、例えば、プロセッサ101からの命令に従って、メモリ装置14またはメモリカード16から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
The
図3は、テスト装置の機能例を示す図である。テスト装置100は、記憶部110、OS120、テスト処理部130、情報収集部140、テスト対象ソフトウェア150およびソフトウェア群160を有する。記憶部110は、RAM102やHDD103の所定の記憶領域を用いて実現できる。テスト処理部130および情報収集部140は、プロセッサ101によって実行されるプログラムのモジュールであってもよい。
FIG. 3 is a diagram illustrating an example of functions of the test apparatus. The
記憶部110は、テスト装置100の各部の処理に用いられる情報を記憶する。記憶部110は、現時点において存在しているプロセスごとに実行された累積の時間(累積実行時間)を記憶する。記憶部110が記憶する情報には、テスト管理テーブル、開始テーブルおよび終了テーブルが含まれる。
The
テスト管理テーブルは、テスト対象のソフトウェアとテスト内容との対応関係を示すテーブルである。テスト内容は、1以上のテスト項目と各テスト項目の実行順とを含む。開始テーブルおよび終了テーブルはプロセスごとの累積実行時間を記録するために用いられるテーブルである。 The test management table is a table showing the correspondence between the software to be tested and the test contents. The test content includes one or more test items and the execution order of each test item. The start table and the end table are tables used for recording the accumulated execution time for each process.
OS120は、各種ソフトウェアの実行を管理する基本ソフトウェアである。例えば、OS120は、各ソフトウェアのプロセスの生成・実行待ち・実行・終了などを管理する。プロセスは、ソフトウェアに含まれるプログラムのOS120による実行単位の1つである。また、OS120は、現時点において存在しているプロセスごとの累積実行時間を記憶部110に格納する。OS120は、現存するプロセスの累積実行時間を常時計測し、記憶部110に記録された累積実行時間を更新する。
The
例えば、OS120として、Unix(登録商標)やLinux(登録商標)およびWindows(登録商標)などを利用できる。
テスト処理部130は、テスト管理テーブルを参照して、テスト対象ソフトウェア150に応じたテストを実行する。例えば、テスト処理部130は、テスト対象ソフトウェア150に対して所定のデータを入力し、テスト対象ソフトウェア150やソフトウェア群160から出力を得ることで、テスト管理テーブルに登録されたテスト項目を順次実行する。テスト処理部130は、入力に対する出力が適正か否かを判定することで、テストの成否を決定する。テスト処理部130は、次のようにテストを進める。まず、情報収集対象のプロセスを選択するためのテストを行う(1回目)。次に、選択されたプロセスについて情報収集を行うためのテストを行う(2回目以降)。
For example, Unix (registered trademark), Linux (registered trademark), Windows (registered trademark), or the like can be used as the
The
情報収集部140は、テスト処理部130による1回目のテストの際に、テスト項目ごとに情報収集の対象とするプロセスを選択する。具体的には、情報収集部140は、テスト項目ごとに、テスト開始時に存在していたプロセスに対し、累積実行時間を取得する。情報収集部140は、テスト開始時点のプロセスごとの累積実行時間を記憶部110に記憶された開始テーブルに記録する。情報収集部140は、テスト項目ごとに、テスト終了時に存在していたプロセスに対し、累積実行時間を取得する。情報収集部140は、テスト終了時点のプロセスごとの累積実行時間を記憶部110に記憶された終了テーブルに記録する。
In the first test by the
各プロセスの各時点における累積実行時間は、前述のようにOS120により記憶部110に格納されている。例えば、情報収集部140は、各時点において、OS120に対してプロセスを指定した所定のコマンドを発行することで、当該プロセスの累積実行時間を取得し得る。例えば、OS120がUnixやLinuxであれば、psコマンドを用いてプロセスごとの累積実行時間を取得してもよい。あるいは、OS120がWindowsであれば、GetProcessTimesコマンドを用いてプロセスごとの累積実行時間を取得してもよい。
The accumulated execution time at each time point of each process is stored in the
情報収集部140は、プロセスごとのテスト開始時およびテスト終了時の累積実行時間に基づいて、テスト項目ごとに情報収集の対象とするプロセスを選択する。
情報収集部140は、テスト処理部130による2回目以降のテストの際に、テスト項目ごとに、選択したプロセスについて、エラー分析用の情報を収集する。具体的には、情報収集部140は、エラー分析用の情報として、プロセスごとのメモリダンプ(RAM102上の任意領域をHDD103上にファイル出力したもの)やトレースデータを収集する。例えば、OS120がUnixであれば、trussコマンドを用いてプロセスごとのトレースデータを取得してもよい。あるいは、OS120がLinuxであれば、straceコマンドを用いてプロセスごとのトレースデータを取得してもよい。
The
The
テスト対象ソフトウェア150は、テストの対象とするソフトウェアである。テスト対象ソフトウェア150は、OS120やソフトウェア群160と連携して、所定の機能を実現する。
The
ソフトウェア群160は、OS120上で実行される、テスト対象ソフトウェア150以外のソフトウェアの集合である。ソフトウェア群160は、テスト装置100のハードウェアを制御する各種のデバイスドライバを含む。ソフトウェア群160は、テスト対象ソフトウェア150を実行するための基盤となるミドルウェアを含む。ソフトウェア群160は、テスト対象ソフトウェア150と通信する他のアプリケーションを含む。
The
図4は、プロセスの状態遷移を示す図である。プロセスの状態は、OS120により次のように管理される。例えば、プロセスの状態は、実行中状態21(Running)、ブロック状態22(Blocked)および実行可能状態23(Ready)を含む。実行中状態21は、当該プロセスがプロセッサ101により実行されている状態である。ブロック状態22は、所定の外部イベントが発生するまで当該プロセスが実行不可となっている状態である。実行可能状態23は、プロセスに対してスケジューリングされたプロセッサ101の割当て時間を待機している状態である。ただし、上記の状態の他、プロセスは仮想メモリにスワップされることもある。
FIG. 4 is a diagram showing process state transitions. The state of the process is managed by the
例えば、(1)プロセスの一連のステップにおいて、所定の外部イベント(リソースの確保や他のプロセスからの入力など)の発生を待つ段階になれば、実行中状態21からブロック状態22に遷移する。(2)第1のプロセスが実行中状態21のときに、第2のプロセスのプロセッサ割当て時間になれば、第1のプロセスは実行可能状態23に遷移する。(3)実行可能状態23であった第2のプロセスは実行中状態21に遷移する。(4)ブロック状態22にあるプロセスは、所定の外部イベントが発生すれば、ブロック状態22から実行可能状態23に遷移する。
For example, (1) in a series of steps of a process, when it becomes a stage waiting for occurrence of a predetermined external event (resource reservation, input from another process, etc.), a transition is made from the running
例えば、生成されたプロセスは実行可能状態23となる。プロセスの一連のステップが終了すれば、当該プロセスに対するプロセッサ101、RAM102およびHDD103などのリソースは解放され、当該プロセスは消滅する。
For example, the generated process is in an
ブロック状態22、実行可能状態23およびスワップされた状態は、プロセスとしてRAM102やHDD103上に存在するが、実行を待っている状態といえる。例えば、前述の累積実行時間は、各プロセスが実行中状態21であった時間でもよい。あるいは、累積実行時間は、実行中状態21および実行可能状態23であった時間の和でもよい。
The
図5は、テスト時におけるプロセスの実行パターンの例を示す図である。図5において、実線は、プロセスが継続的に、または、断続的に実行された(実行中状態21であった)ことを示している。破線は、プロセスが実行されていない(実行中状態21とならなかった)ことを示している。
FIG. 5 is a diagram illustrating an example of a process execution pattern during a test. In FIG. 5, the solid line indicates that the process has been executed continuously or intermittently (it was in the running state 21). A broken line indicates that the process is not being executed (the
実行パターンP1は、テスト開始時からテスト終了時までの間にプロセスが実行されるパターンである。実行パターンP1のプロセスは、テスト対象ソフトウェア150のテストに関連して実行された可能性が高いと判断できる。
The execution pattern P1 is a pattern in which a process is executed from the start of the test to the end of the test. It can be determined that the process of the execution pattern P1 is highly likely to have been executed in connection with the test of the
実行パターンP2は、テスト開始時からテスト途中のある時点までにプロセスが実行されるが、テスト終了時までに当該プロセスが終了されるパターンである。実行パターンP2のプロセスはテスト対象ソフトウェア150のテストに関連して終了された可能性がある。
The execution pattern P2 is a pattern in which a process is executed from the start of the test to a certain point in the middle of the test, but the process is ended by the end of the test. The process of the execution pattern P <b> 2 may have been terminated in connection with the test of the
実行パターンP3は、テスト開始時には存在しておらず、テスト途中のある時点にプロセスが生成され、テスト終了時までの間に当該プロセスが実行されるパターンである。実行パターンP3のプロセスはテスト対象ソフトウェア150のテストに関連して生成され、実行された可能性がある。
The execution pattern P3 is a pattern that does not exist at the start of the test, a process is generated at a certain point during the test, and the process is executed until the end of the test. The process of the execution pattern P3 may have been generated and executed in connection with the test of the
実行パターンP4は、テスト開始時およびテスト終了時には存在しておらず、テスト途中で生成され、テスト終了時までに終了するパターンである。実行パターンP4のプロセスはテスト対象ソフトウェア150のテストに関連して生成され、実行された可能性がある。
The execution pattern P4 does not exist at the start of the test and at the end of the test, is a pattern that is generated during the test and ends by the end of the test. The process of the execution pattern P4 may have been generated and executed in connection with the test of the
実行パターンP5は、テスト開始時からテスト終了時の間に当該プロセスが実行されていないパターンである。実行パターンP5のプロセスは、テスト対象ソフトウェア150のテストに関連して実行されるものではないと判断できる。
The execution pattern P5 is a pattern in which the process is not executed between the start of the test and the end of the test. It can be determined that the process of the execution pattern P5 is not executed in relation to the test of the
図6は、候補プロセステーブルの例を示す図である。候補プロセステーブル111は、情報収集の対象とするプロセスの候補をテスト対象のソフトウェアごとに登録した情報である。例えば、ユーザは、情報収集の対象とするプロセスの候補を指定したい場合、候補プロセステーブル111に登録する。候補プロセステーブル111は、記憶部110に予め格納される。候補プロセステーブル111は、ソフトウェア名およびプロセス名の項目を含む。
FIG. 6 is a diagram illustrating an example of a candidate process table. The candidate process table 111 is information in which process candidates for information collection are registered for each software to be tested. For example, when the user wants to specify a candidate process for which information is to be collected, the user registers it in the candidate process table 111. Candidate process table 111 is stored in
ソフトウェア名の項目にはテスト対象のソフトウェアの名称が登録される。プロセス名の項目には情報収集の対象候補とするプロセスの名称が登録される。
例えば、候補プロセステーブル111には、ソフトウェア名が“SW1”、プロセス名が“smss、providerMGR、providermonit、stubprovider、ccSvcHst、printMGR、・・・”という情報が登録されている。これは、テスト対象ソフトウェア150が“SW1”である場合、情報収集の対象候補のプロセスは“smss、providerMGR、providermonit、stubprovider、ccSvcHst、printMGR、・・・”であることを示す。ここで、ソフトウェア名“SW1”は、テスト対象ソフトウェア150のソフトウェア名である。
The name of the software to be tested is registered in the software name item. In the process name item, the name of a process as a candidate for information collection is registered.
For example, in the candidate process table 111, information that the software name is “SW1” and the process name is “smss, providerMGR, providermonitor, subscriber, ccSvcHst, printMGR,...” Is registered. This indicates that when the
図7は、除外プロセステーブルの例を示す図である。除外プロセステーブル112は、情報収集の対象外とするプロセスの候補をテスト対象のソフトウェアごとに登録した情報である。例えば、ユーザは、情報収集の対象外とするプロセスの候補を指定したい場合、除外プロセステーブル112に登録する。除外プロセステーブル112は、記憶部110に予め格納される。除外プロセステーブル112は、ソフトウェア名およびプロセス名の項目を含む。
FIG. 7 is a diagram illustrating an example of the exclusion process table. The excluded process table 112 is information in which process candidates to be excluded from information collection are registered for each piece of software to be tested. For example, the user registers in the excluded process table 112 when he / she wants to designate a process candidate to be excluded from information collection. The exclusion process table 112 is stored in the
ソフトウェア名の項目にはテスト対象のソフトウェアの名称が登録される。プロセス名の項目には情報収集の対象外するプロセスの名称が登録される。
例えば、除外プロセステーブル112には、ソフトウェア名が“SW1”、プロセス名が“System Idle Process、System、svchost、・・・”という情報が登録されている。これは、テスト対象ソフトウェア150が“SW1”である場合、情報収集の対象外のプロセスは“System Idle Process、System、svchost、System、svchost、・・・”であることを示す。
The name of the software to be tested is registered in the software name item. In the process name field, the name of a process that is not subject to information collection is registered.
For example, in the excluded process table 112, information that the software name is “SW1” and the process name is “System Idle Process, System, svhost,...” Is registered. This indicates that when the
図8は、テスト管理テーブルの例を示す図である。テスト管理テーブル113は、テスト対象のソフトウェアごとのテスト項目およびテスト項目で用いられる情報の対応関係を示す情報である。テスト管理テーブル113は、記憶部110に予め格納される。テスト管理テーブル113は、ソフトウェア名、テスト項目およびテスト情報の項目を含む。
FIG. 8 is a diagram illustrating an example of a test management table. The test management table 113 is information indicating a correspondence relationship between test items for each software to be tested and information used in the test items. The test management table 113 is stored in the
ソフトウェア名の項目には、テスト対象のソフトウェア名が登録される。テスト項目の項目には、テスト項目の識別情報が登録される。テスト情報の項目には、当該テスト項目において用いられる入力データ、イベントを発生用の情報およびテスト成否の判定用の情報などが登録される。 In the software name item, the name of the software to be tested is registered. Identification information of the test item is registered in the item of the test item. In the test information item, input data used in the test item, information for generating an event, information for determining whether or not the test is successful, and the like are registered.
例えば、テスト管理テーブル113には、ソフトウェア名が“SW1”、テスト項目が“T1”、テスト情報が“test1”という情報が登録されている。また、ソフトウェア名が“SW1”、テスト項目が“T2”、テスト情報が“test2”という情報が登録されている。これは、テスト対象ソフトウェア150について、テスト項目“T1”およびテスト項目“T2”を順にテストすることを示している。また、テスト項目“T1”のテストを行う場合、テスト情報として“test1”を用いることを示す。テスト項目“T2”のテストを行う場合、テスト情報として“test2”を用いることを示す。
For example, in the test management table 113, information that the software name is “SW1”, the test item is “T1”, and the test information is “test1” is registered. In addition, information that the software name is “SW1”, the test item is “T2”, and the test information is “test2” is registered. This indicates that the test item “T1” and the test item “T2” are sequentially tested for the
図9は、開始テーブルの例を示す図である。開始テーブル114は、テスト開始時のプロセスごとの累積実行時間の記録に用いられる。開始テーブル114は、記憶部110に格納される。開始テーブル114は、ソフトウェア名、テスト項目、プロセス名および累積実行時間の項目を含む。
FIG. 9 is a diagram illustrating an example of the start table. The start table 114 is used for recording the accumulated execution time for each process at the start of the test. The start table 114 is stored in the
ソフトウェア名の項目には、テスト対象のソフトウェアの名称が登録される。テスト項目の項目には、テスト項目の識別情報が登録される。プロセス名の項目には、累積実行時間の取得対象のプロセス名が登録される。累積実行時間の項目には、テスト開始時に取得された累積実行時間が登録される。 The name of the software to be tested is registered in the software name item. Identification information of the test item is registered in the item of the test item. In the process name item, the process name for which the cumulative execution time is to be acquired is registered. The accumulated execution time acquired at the start of the test is registered in the item of accumulated execution time.
例えば、開始テーブル114には、ソフトウェア名が“SW1”、テスト項目が“T1”、プロセス名が“smss”、累積実行時間が“00:05:45.126”という情報が登録されている。これは、テスト対象ソフトウェア150のテスト項目“T1”のテスト開始時におけるプロセス“smss”の累積実行時間が、“00:05:45.126”であったことを示す。
For example, in the start table 114, information that the software name is “SW1”, the test item is “T1”, the process name is “smss”, and the cumulative execution time is “00: 05: 45.126” is registered. This indicates that the cumulative execution time of the process “smss” at the start of the test of the test item “T1” of the
図10は、終了テーブルの例を示す図である。終了テーブル115は、テスト終了時のプロセスごとの累積実行時間の記録に用いられる。終了テーブル115は、記憶部110に格納される。終了テーブル115は、ソフトウェア名、テスト項目、プロセス名および累積実行時間の項目を含む。
FIG. 10 is a diagram illustrating an example of the end table. The end table 115 is used to record the accumulated execution time for each process at the end of the test. The end table 115 is stored in the
ソフトウェア名の項目には、テスト対象のソフトウェアの名称が登録される。テスト項目の項目には、テスト項目の識別情報が登録される。プロセス名の項目には、累積実行時間の取得対象のプロセス名が登録される。累積実行時間の項目には、テスト終了時に取得された累積実行時間が登録される。 The name of the software to be tested is registered in the software name item. Identification information of the test item is registered in the item of the test item. In the process name item, the process name for which the cumulative execution time is to be acquired is registered. The accumulated execution time acquired at the end of the test is registered in the item of accumulated execution time.
例えば、終了テーブル115には、ソフトウェア名が“SW1”、テスト項目が“T1”、プロセス名が“smss”、累積実行時間が“00:12:45.877”という情報が登録されている。これは、テスト対象ソフトウェア150のテスト項目“T1”のテスト終了時におけるプロセス“smss”の累積実行時間が、“00:12:45.877”であったことを示す。
For example, information indicating that the software name is “SW1”, the test item is “T1”, the process name is “smss”, and the cumulative execution time is “00: 12: 45.877” is registered in the end table 115. This indicates that the accumulated execution time of the process “smss” at the end of the test of the test item “T1” of the
図11は、比較テーブルの例を示す図である。比較テーブル116は、開始テーブル114および終了テーブル115を合わせた情報であり両者の比較用に用いられる。比較テーブル116は、記憶部110に格納される。比較テーブル116は、ソフトウェア名、テスト項目、プロセス名および累積実行時間(開始時および終了時)の項目を含む。
FIG. 11 is a diagram illustrating an example of a comparison table. The comparison table 116 is information that combines the start table 114 and the end table 115, and is used for comparison between the two. The comparison table 116 is stored in the
ソフトウェア名の項目には、テスト対象のソフトウェアの名称が登録される。テスト項目の項目には、テスト項目の識別情報が登録される。プロセス名の項目には、累積実行時間が取得されたプロセス名が登録される。累積実行時間(開始時)の項目には、テスト開始時に取得された累積実行時間が登録される。累積実行時間(終了時)の項目には、テスト終了時に取得された累積実行時間が登録される。 The name of the software to be tested is registered in the software name item. Identification information of the test item is registered in the item of the test item. In the process name item, the process name for which the accumulated execution time is acquired is registered. In the item of accumulated execution time (at the start), the accumulated execution time acquired at the start of the test is registered. The accumulated execution time acquired at the end of the test is registered in the item of accumulated execution time (at the end).
例えば、比較テーブル116には、ソフトウェア名が“SW1”、テスト項目が“T1”、プロセス名が“smss”、累積実行時間の開始時が“00:05:45.126”、累積実行時間の終了時が“00:12:45.877”という情報が登録されている。これは、テスト対象ソフトウェア150のテスト項目“T1”のテストを行ったときのプロセス“smss”のテスト開始時の累積実行時間が“00:05:45.126”、テスト終了時の累積実行時間が“00:12:45.877”であったことを示す。テスト開始時の累積実行時間とテスト終了時の累積実行時間が異なるので、プロセス“smss”はテスト中に実行されたことが分かる。すなわち、プロセス“smss”は実行パターンP1のプロセスである。
For example, in the comparison table 116, the software name is “SW1”, the test item is “T1”, the process name is “smss”, the start time of the cumulative execution time is “00: 05: 45.126”, and the cumulative execution time is Information that the end time is “00: 12: 45.877” is registered. This is because the accumulated execution time at the start of the test of the process “smss” when the test of the test item “T1” of the
また、例えば、比較テーブル116には、ソフトウェア名が“SW1”、テスト項目が“T1”、プロセス名が“providerMGR”、累積実行時間の開始時が“00:01:12.122”、累積実行時間の終了時が登録なし(“−(ハイフン)”)という情報が登録されている。これは、テスト対象ソフトウェア150のテスト項目“T1”のテストを行ったときのプロセス“providerMGR”のテスト開始時の累積実行時間が“00:01:12.122”であったことを示す。また、テスト終了時にプロセス“providerMGR”が終了していた(存在していなかった)ため、情報収集部140は累積実行時間を取得できなかったことを示す。プロセス“providerMGR”は、テスト開始時には実行されていたが、テスト途中に当該プロセスは終了していたと判断できる。すなわち、プロセス“providerMGR”は実行パターンP2のプロセスである。
Further, for example, in the comparison table 116, the software name is “SW1”, the test item is “T1”, the process name is “providerMGR”, the cumulative execution time starts at “00: 01: 12.122”, and the cumulative execution Information indicating that there is no registration at the end of the time ("-(hyphen)") is registered. This indicates that the cumulative execution time at the start of the test of the process “providerMGR” when the test of the test item “T1” of the
また、例えば、比較テーブル116には、ソフトウェア名が“SW1”、テスト項目が“T1”、プロセス名が“providermonit”、累積実行時間の開始時が登録なし、累積実行時間の終了時が“00:00:00.098”という情報が登録されている。これは、テスト対象ソフトウェア150のテスト項目“T1”のテストを行ったときのプロセス“providermonit”のテスト終了時の累積実行時間が“00:00:00.098”であったことを示す。また、テスト開始時にプロセス“providermonit”が生成されていなかった(存在していなかった)ため、情報収集部140は累積実行時間を取得できなかったことを示す。プロセス“providermonit”は、テスト開始時には生成されていなかったが、テスト途中に生成され、実行されたと判断できる。すなわち、プロセス“providermonit”は、実行パターンP3のプロセスである。
Further, for example, in the comparison table 116, the software name is “SW1”, the test item is “T1”, the process name is “providermonitor”, the cumulative execution time start time is not registered, and the cumulative execution time end time is “00”. : 00: 00.098 "is registered. This indicates that the accumulated execution time at the end of the test of the process “providermonitor” when the test of the test item “T1” of the
また、例えば、比較テーブル116には、ソフトウェア名が“SW1”、テスト項目が“T1”、プロセス名が“ccSvcHst”、累積実行時間の開始時が“00:00:08.356”、累積実行時間の終了時が“00:00:08.356”という情報が登録されている。これは、テスト対象ソフトウェア150のテスト項目“T1”のテストを行ったときのプロセス“ccSvcHst”のテスト開始時の累積実行時間が“00:00:08.356”、テスト終了時の累積実行時間が“00:00:08.356”であったことを示す。テスト開始時の累積実行時間とテスト終了時の累積実行時間が同じなので、プロセス“ccSvcHst”は、テスト時に実行されなかったと判断できる。すなわち、プロセス“ccSvcHst”は、実行パターンP5のプロセスである。
Further, for example, in the comparison table 116, the software name is “SW1”, the test item is “T1”, the process name is “ccSvcHst”, and the start time of the cumulative execution time is “00: 00: 08.356”. Information that the time ends is “00: 00: 08.356” is registered. This is because the accumulated execution time at the start of the test of the process “ccSvcHst” when the test of the test item “T1” of the
図12は、プロセス履歴テーブルの例を示す図である。プロセス履歴テーブル117は、記憶部110に格納される。プロセス履歴テーブル117は、プロセス名、ログID(IDentifier)、ログ生成時刻、種別および詳細情報の項目を含む。
FIG. 12 is a diagram illustrating an example of a process history table. The process history table 117 is stored in the
プロセス名の項目には、プロセスの名称が登録される。ログIDの項目には、ログのIDが登録される。ログ生成時刻の項目には、ログの生成時刻が登録される。種別の項目には、ログの種別が登録される。例えば、プロセスの生成を示す場合、種別は“生成”となる。プロセスに関するエラーを示す場合、種別は“エラー”となる。プロセスの終了を示す場合、種別は“終了”となる。詳細情報の項目には、生成されたプロセスと通信する他のプロセスが異常を生じさせた場合にその内容を示す情報が登録される。 In the process name item, the name of the process is registered. In the log ID item, a log ID is registered. The log generation time is registered in the log generation time item. A log type is registered in the type item. For example, when process generation is indicated, the type is “generation”. When indicating an error relating to a process, the type is “error”. When indicating the end of the process, the type is “End”. In the detailed information item, information indicating the contents when other processes communicating with the generated process cause an abnormality is registered.
詳細情報には、エラーコード、関連プロセスID、関連プロセス名および検出箇所コードが含まれる。エラーコードは、異常内容を識別するための情報である。関連プロセスIDは、当該他のプロセスのプロセスIDである。関連プロセス名は、当該プロセスIDに対応するプロセス名である。検出箇所コードは、当該他のプロセスにおいて異常が検出されたステップを示す情報である。 The detailed information includes an error code, a related process ID, a related process name, and a detection location code. The error code is information for identifying the abnormal content. The related process ID is the process ID of the other process. The related process name is a process name corresponding to the process ID. The detection location code is information indicating a step in which an abnormality is detected in the other process.
例えば、プロセス履歴テーブル117には、プロセス名が“stubprovider”、ログIDが“L1”、ログ生成時刻が“15:16:17.203”、種別が“生成”という情報が登録されている。これは、時刻“15:16:17.203”にプロセス名“stubprovider”のプロセスが生成されたことを示す。 For example, in the process history table 117, information that the process name is “stubprovider”, the log ID is “L1”, the log generation time is “15: 16: 17.203”, and the type is “generation” is registered. This indicates that a process with the process name “stubprovider” is generated at time “15: 16: 17.203”.
また、例えば、プロセス履歴テーブル117には、プロセス名が“stubprovider”、ログIDが“L2”、ログ生成時刻が“15:16:18.358”、種別が“エラー”、エラーコードが“1275”、関連プロセスIDが“1054”、関連プロセス名“rcvy”、検出箇所コード“3388”という情報が登録されている。 Further, for example, in the process history table 117, the process name is “stubprovider”, the log ID is “L2”, the log generation time is “15: 16: 18.358”, the type is “error”, and the error code is “1275”. ", The information that the related process ID is" 1054 ", the related process name" rcvy ", and the detection location code" 3388 "is registered.
これは、プロセス名“stubprovider”のプロセスで、時刻“15:16:18.358”にエラーが発生したことを示す。また、当該エラーでは、当該プロセス“stubprovider”と通信するプロセス“rcvy”がエラーコード“1275”で示される異常を生じさせたこと、当該異常のあったステップが“3388”で示される箇所であることを示す。 This indicates that an error occurred at the time “15: 16: 18.358” in the process with the process name “stubprovider”. Further, in the error, the process “rcvy” communicating with the process “stubprovider” has caused an abnormality indicated by the error code “1275”, and the step having the abnormality is indicated by “3388”. It shows that.
なお、プロセス履歴テーブル117に記録されるログは、情報収集部140により生成されるものでもよいし、OS120や他のソフトウェアが出力したログを収集したものでもよい。
The log recorded in the process history table 117 may be generated by the
図13は、プロセステーブルの例を示す図である。プロセステーブル118は、情報収集対象として選択されたプロセスを登録するテーブルである。プロセステーブル118は、記憶部110に格納される。プロセステーブル118は、項番、テスト開始時間、テスト終了時間、ソフトウェア名、テスト項目およびプロセス名の項目を含む。
FIG. 13 is a diagram illustrating an example of a process table. The process table 118 is a table for registering a process selected as an information collection target. The process table 118 is stored in the
項番の項目には、レコードを識別するための番号が登録される。テスト開始時間の項目には、該当のテスト項目のテストを開始した時間が登録される。テスト終了時間の項目には、該当のテスト項目のテストを終了した時間が登録される。テスト開始時間やテスト終了時間として時分秒を記録するものとするが、年月日などを記録してもよい。ソフトウェア名の項目には、テスト対象のソフトウェアの名称が登録される。テスト項目の項目には、テスト項目の識別情報が登録される。プロセス名の項目には、情報収集の対象とするプロセスの名称が登録される。 In the item number item, a number for identifying the record is registered. In the test start time item, the time when the test of the corresponding test item is started is registered. In the test end time item, the time when the test of the corresponding test item is ended is registered. Although the hour, minute, and second are recorded as the test start time and the test end time, the date may be recorded. The name of the software to be tested is registered in the software name item. Identification information of the test item is registered in the item of the test item. In the process name item, the name of the process whose information is to be collected is registered.
例えば、プロセステーブル118には、項番が“1”、テスト開始時間が“15:16:16”、テスト終了時間が“15:19:17”、ソフトウェア名が“SW1”、テスト項目が“T1”、プロセス名が“smss、providerMGR、providermonit、stubprovider、rcvy、・・・”という情報が登録されている。 For example, in the process table 118, the item number is “1”, the test start time is “15:16:16”, the test end time is “15:19:17”, the software name is “SW1”, and the test item is “ Information of “T1” and process names “smss, providerMGR, providermonitor, stubprovider, rcvy,...” Is registered.
これは、時間“15:16:16〜15:19:17”に行われたテスト対象ソフトウェア150のテスト項目“T1”のテストにおいて、情報収集対象のプロセスとして“smss、providerMGR、providermonit、stubprovider、rcvy、・・・”が選択されたことを示す。
This is because, in the test of the test item “T1” of the
図14は、ソフトウェアのテストの処理例を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
(ステップS11)テスト処理部130は、テスト対象としてテスト対象ソフトウェア150の指定を受け付ける。例えば、テスト対象のソフトウェアは、ユーザによって指定される。
FIG. 14 is a flowchart illustrating an example of a software test process. In the following, the process illustrated in FIG. 14 will be described in order of step number.
(Step S11) The
(ステップS12)情報収集部140は、プロセス選択モードの指定を受け付ける。プロセス選択モードは、情報収集対象のプロセスを選択する方法を示す。プロセス選択モードには、“プロセス指定”および“全プロセス指定”の2種類がある。“プロセス指定”は、ユーザにより指定された候補プロセス(候補プロセステーブル111)の中から、プロセスを絞り込むことで情報収集対象のプロセスを選択するモードである。“全プロセス指定”は、あらゆるプロセスの中からテストに関連して実行されたと推測されるプロセスを全て選択するモードである。“全プロセス指定”では、除外プロセステーブル112により、情報収集の対象外とするプロセスを設定できる。ユーザは、テストに応じて何れかの方法を選択できる。
(Step S12) The
(ステップS13)テスト処理部130は、テスト対象ソフトウェア150に対して1回目のテストを行う。情報収集部140は、プロセス選択処理を行う。プロセス選択処理では、以降のステップにおいて情報収集の対象とするプロセスを選択する。
(Step S <b> 13) The
(ステップS14)テスト処理部130は、テスト対象ソフトウェア150に対して2回目のテストを行う。情報収集部140は、ステップS13で選択されたプロセスについてメモリダンプを取得する。
(Step S14) The
(ステップS15)テスト処理部130は、テスト対象ソフトウェア150に対して3回目のテストを行う。情報収集部140は、ステップS13で選択されたプロセスについて、トレースデータを取得する。
(Step S15) The
次に、ステップS13のプロセス選択処理の手順を説明する。
図15は、プロセス選択処理の例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
Next, the procedure of the process selection process in step S13 will be described.
FIG. 15 is a flowchart illustrating an example of process selection processing. In the following, the process illustrated in FIG. 15 will be described in order of step number.
(ステップS21)テスト処理部130は、変数nに1を代入する。
(ステップS22)テスト処理部130は、記憶部110に記憶されたテスト管理テーブル113を参照し、テスト項目Tnのテスト情報を取得する。例えば、テスト対象ソフトウェア150(“SW1”)のテスト項目“T1”であれば、テスト情報“test1”を取得する。
(Step S21) The
(Step S22) The
(ステップS23)テスト処理部130は、テスト対象ソフトウェア150に対するテスト項目Tnのテスト開始を情報収集部140に通知する。
(ステップS24)情報収集部140は、テスト開始時処理を行う。詳細は後述する。情報収集部140は、記憶部110に記憶されたプロセステーブル118にテスト開始時間、ソフトウェア名およびテスト項目を登録しておく。
(Step S <b> 23) The
(Step S24) The
(ステップS25)テスト処理部130は、ステップS22で取得したテスト情報を用いて、テスト対象ソフトウェア150に対するテスト項目Tnのテストを行う。
(ステップS26)情報収集部140は、テスト時に生成、エラー、終了となったプロセスのログを収集し、記憶部110に記憶されたプロセス履歴テーブル117に記録する。情報収集部140は、当該ログをソフトウェア名やテスト項目に対応付けて、プロセス履歴テーブル117に記録してもよい。
(Step S25) The
(Step S <b> 26) The
(ステップS27)テスト処理部130は、テスト対象ソフトウェア150に対するテスト項目Tnのテストを終了する。テスト処理部130は、情報収集部140にテスト項目Tnのテスト終了を通知する。
(Step S27) The
(ステップS28)情報収集部140は、テスト終了時処理を行う。詳細は後述する。情報収集部140は、プロセステーブル118に当該テストのテスト終了時間を登録しておく。
(Step S28) The
(ステップS29)情報収集部140は、ステップS24,S28で取得されたプロセスごとの累積実行時間の比較処理を行う。詳細は後述する。
(ステップS30)テスト処理部130は、テスト管理テーブル113を参照し、全てのテスト項目がテスト済みであるか判定する。全てテスト済みの場合、処理を終了する。未実行のテストがある場合、処理をステップS31に進める。例えば、テスト対象ソフトウェア150(“SW1”)の場合、テスト管理テーブル113を参照し、テスト項目“T1”および“T2”の両方をテスト済みなら全てテスト済みである。
(Step S29) The
(Step S30) The
(ステップS31)テスト処理部130は、変数nに1を加算する。そして、処理をステップS22に進める。
次に、ステップS24のテスト開始時処理の手順を説明する。
(Step S31) The
Next, the procedure of the test start process in step S24 will be described.
図16は、テスト開始時処理の例を示すフローチャートである。以下、図16に示す処理をステップ番号に沿って説明する。
(ステップS41)情報収集部140は、ステップS41の時点で存在しているプロセスを取得する。例えば、情報収集部140は、OS120に対して所定のコマンドを発行することで、現存しているプロセスのプロセスIDやプロセス名を取得できる。
FIG. 16 is a flowchart illustrating an example of a test start process. In the following, the process illustrated in FIG. 16 will be described in order of step number.
(Step S41) The
(ステップS42)情報収集部140は、プロセス選択モードを判定する。“プロセス指定”の場合、処理をステップS43に進める。“全プロセス指定”の場合、処理をステップS44に進める。
(Step S42) The
(ステップS43)情報収集部140は、記憶部110に記憶された候補プロセステーブル111を参照し、テスト対象のソフトウェアに対応するプロセスを取得する。情報収集部140は、ステップS41で取得したプロセスと候補プロセステーブル111から取得したプロセスの両方に存在するプロセスに絞り込む。例えば、ステップS41で取得されたプロセスが、プロセス“smss、providerMGR、ccSvcHst、・・・”であるとする。候補プロセステーブル111によれば、ソフトウェア名“SW1”に対応する候補プロセスは“smss、providerMGR、providermonit、stubprovider、ccSvcHst、printMGR、・・・”である。よって、情報収集部140は、両方に存在するプロセス“smss、providerMGR、ccSvcHst、・・・”に絞り込む。そして、処理をステップS45に進める。
(Step S43) The
(ステップS44)情報収集部140は、記憶部110に記憶された除外プロセステーブル112を参照し、除外対象のプロセスを取得する。情報収集部140は、ステップS41で特定したプロセスから除外対象のプロセスを除くことで、プロセスを絞り込む。除外プロセステーブル112によれば、ソフトウェア名“SW1”に対応する除外プロセスは、“System Idle Process、System、svchost、・・・”である。よって、情報収集部140は、ステップS41で取得されたプロセスから当該除外プロセスを除外する。そして、処理をステップS45に進める。
(Step S44) The
(ステップS45)情報収集部140は、ステップS43またはステップS44で絞り込んだプロセスを、記憶部110に記憶された開始テーブル114に登録する。
(ステップS46)情報収集部140は、ステップS45で開始テーブル114に登録したプロセスごとに、累積実行時間を取得し、開始テーブル114に登録する。OS120は、現存するプロセスの累積実行時間を記憶部110に格納している。情報収集部140は、記憶部110を参照することで、プロセスごとの累積実行時間を取得できる。情報収集部140は、前述のようにOS120に対して所定のコマンドを発行することで、プロセスごとの累積実行時間を取得してもよい。
(Step S45) The
(Step S46) The
次に図15のステップS28のテスト終了時処理の手順を説明する。
図17は、テスト終了時処理の例を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。
Next, the procedure of the test end process in step S28 of FIG. 15 will be described.
FIG. 17 is a flowchart illustrating an example of test end processing. In the following, the process illustrated in FIG. 17 will be described in order of step number.
(ステップS51)情報収集部140は、ステップS51の時点で存在しているプロセスを取得する。例えば、情報収集部140は、OS120に対して所定のコマンドを発行することで、現存しているプロセスのプロセスIDやプロセス名を取得できる。
(Step S51) The
(ステップS52)情報収集部140は、プロセス選択モードを判定する。“プロセス指定”の場合、処理をステップS53に進める。“全プロセス指定”の場合、処理をステップS54に進める。
(Step S52) The
(ステップS53)情報収集部140は、記憶部110に記憶された候補プロセステーブル111を参照し、テスト対象のソフトウェアに対応するプロセスを取得する。情報収集部140は、ステップS51で取得したプロセスと候補プロセステーブル111から取得したプロセスの両方に存在するプロセスに絞り込む。具体的な方法は、ステップS43と同様である。そして、処理をステップS55に進める。
(Step S53) The
(ステップS54)情報収集部140は、記憶部110に記憶された除外プロセステーブル112を参照し、除外対象のプロセスを取得する。情報収集部140は、ステップS51で特定したプロセスから除外対象のプロセスを除くことで、プロセスを絞り込む。具体的な方法は、ステップS44と同様である。そして、処理をステップS55に進める。
(Step S <b> 54) The
(ステップS55)情報収集部140は、ステップS53またはステップS54で絞り込んだプロセスを、記憶部110に記憶された終了テーブル115に登録する。
(ステップS56)情報収集部140は、ステップS55で終了テーブル115に登録したプロセスごとに、累積実行時間を取得し、終了テーブル115に登録する。OS120は、現存するプロセスの累積実行時間を記憶部110に格納している。情報収集部140は、記憶部110を参照することで、プロセスごとの累積実行時間を取得できる。情報収集部140は、前述のようにOS120に対して所定のコマンドを発行することで、プロセスごとの累積実行時間を取得してもよい。
(Step S55) The
(Step S56) The
次に、図15のステップS29の比較処理の手順を説明する。
図18は、比較処理の例を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。
Next, the comparison processing procedure in step S29 in FIG. 15 will be described.
FIG. 18 is a flowchart illustrating an example of comparison processing. Hereinafter, the process illustrated in FIG. 18 will be described in order of step number.
(ステップS61)情報収集部140は、開始テーブル114および終了テーブル115に基づいて比較テーブル116を作成する。
(ステップS62)情報収集部140は、比較テーブル116からプロセスを1つ抽出する。
(Step S61) The
(Step S <b> 62) The
(ステップS63)情報収集部140は、抽出したプロセスについて、テスト開始時およびテスト終了時の両方に累積実行時間が登録されているか判定する。登録されている場合、処理をステップS64に進める。登録されていない場合、処理をステップS65に進める。
(Step S63) The
(ステップS64)情報収集部140は、テスト開始時点およびテスト終了時点の累積実行時間は同じであるか判定する。同じである場合、処理をステップS66に進める。同じでない場合、処理をステップS65に進める。
(Step S64) The
(ステップS65)情報収集部140は、ステップS62で抽出したプロセスをプロセステーブル118に登録する。ステップS65では、実行パターンP1,P2,P3のプロセスが登録され得る。
(Step S65) The
(ステップS66)情報収集部140は、テスト対象ソフトウェア150のテスト項目Tnの現テストについて、比較テーブル116の全てのプロセスを確認済みであるか判定する。確認済みの場合、処理をステップS67に進める。確認済みでない場合、処理をステップS62に進める。
(Step S66) The
(ステップS67)情報収集部140は、プロセス履歴テーブル117を参照し、テスト中に生成されたプロセスのログがあるか否か判定する。プロセス生成のログがある場合、処理をステップS68に進める。ログがない場合、処理を終了する。なお、“プロセス指定”モードの場合、テスト中に生成されたプロセスが候補プロセスにもなっている(候補プロセステーブル111に登録されている)場合に、ステップS68に進める(候補プロセスでなければ、処理を終了する)。また、“全プロセス指定”モードの場合、テスト中に生成されたプロセスが除外プロセスになっていない(除外プロセステーブル112に登録されていない)場合に、ステップS68に進める(除外プロセスであれば処理を終了する)。なお、テスト中の時間帯はプロセステーブル118に登録されている。
(Step S67) The
(ステップS68)情報収集部140は、ステップS67で特定したプロセス(テスト中に生成されたプロセス)をプロセステーブル118に登録する。ステップS68では、実行パターンP4のプロセスが登録される。
(Step S68) The
(ステップS69)情報収集部140は、プロセス履歴テーブル117を参照し、プロセステーブル118に登録されたプロセスのうち、テスト中にエラーとなったプロセスを特定する。情報収集部140は、特定したプロセスのログの詳細情報に関連プロセスの登録があるか否かを判定する。登録がある場合、処理をステップS70に進める。登録がない場合、処理を終了する。
(Step S <b> 69) The
(ステップS70)情報収集部140は、ステップS69で特定した関連プロセスをプロセステーブル118に登録する。
次に、図14のステップS14のメモリダンプ取得処理の手順を説明する。
(Step S70) The
Next, the procedure of the memory dump acquisition process in step S14 in FIG. 14 will be described.
図19は、メモリダンプ取得処理の例を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。
(ステップS71)テスト処理部130は、変数nに1を代入する。
FIG. 19 is a flowchart illustrating an example of a memory dump acquisition process. In the following, the process illustrated in FIG. 19 will be described in order of step number.
(Step S71) The
(ステップS72)テスト処理部130は、記憶部110に記憶されたテスト管理テーブル113を参照し、テスト項目Tnのテスト情報を取得する。
(ステップS73)テスト処理部130は、テスト対象ソフトウェア150に対して、テスト項目Tnのテストを開始する。
(Step S <b> 72) The
(Step S <b> 73) The
(ステップS74)テスト処理部130は、テスト対象ソフトウェア150に対するテスト項目Tnのテストを終了する。
(ステップS75)テスト処理部130は、ステップS72で取得したテスト情報に基づいてテスト結果が不正(エラー)であるか否かを判定する。テスト結果が不正である場合、その旨を情報収集部140に通知して、処理をステップS76に進める。テスト結果が適正である場合、処理をステップS77に進める。
(Step S74) The
(Step S75) The
(ステップS76)情報収集部140は、プロセステーブル118を参照し、テスト対象ソフトウェア150(“SW1”)に対応するテスト項目Tnのプロセスを特定する。情報収集部140は、特定したプロセスに関するメモリダンプをHDD103の所定の記憶領域にファイルとして出力する。
(Step S76) The
(ステップS77)テスト処理部130は、テスト管理テーブル113を参照し、全てのテスト項目がテスト済みであるか判定する。全てテスト済みの場合、処理を終了する。未実行のテストがある場合、処理をステップS78に進める。
(Step S77) The
(ステップS78)テスト処理部130は、変数nに1を加算する。そして、処理をステップS72に進める。
次に、図14のステップS15のトレースデータ取得処理の手順を説明する。
(Step S78) The
Next, the procedure of the trace data acquisition process in step S15 in FIG. 14 will be described.
図20は、トレースデータ取得処理の例を示すフローチャートである。以下、図20に示す処理をステップ番号に沿って説明する。
(ステップS81)テスト処理部130は、変数nに1を代入する。
FIG. 20 is a flowchart illustrating an example of the trace data acquisition process. In the following, the process illustrated in FIG. 20 will be described in order of step number.
(Step S81) The
(ステップS82)テスト処理部130は、記憶部110に記憶されたテスト管理テーブル113を参照し、テスト項目Tnのテスト情報を取得する。
(ステップS83)テスト処理部130は、テスト対象ソフトウェア150のテスト項目Tnについてトレースデータの取得開始を情報収集部140に指示する。情報収集部140は、プロセステーブル118を参照し、テスト対象ソフトウェア150(“SW1”)に対応するテスト項目Tnのプロセスを特定する。情報収集部140は、特定したプロセスについて、トレースデータの取得を開始する。
(Step S82) The
(Step S83) The
(ステップS84)テスト処理部130は、テスト対象ソフトウェア150に対して、テスト項目Tnのテストを開始する。
(ステップS85)テスト処理部130は、テスト対象ソフトウェア150に対して、テスト項目Tnのテストを終了する。
(Step S84) The
(Step S85) The
(ステップS86)テスト処理部130は、トレースデータの取得終了を情報収集部140に指示する。情報収集部140は、トレースデータの取得を終了する。
(ステップS87)テスト処理部130は、ステップS82で取得したテスト情報に基づいてテスト結果が不正(エラー)であるか否かを判定する。テスト結果が不正である場合、その旨を情報収集部140に通知して、処理をステップS88に進める。テスト結果が適正である場合、処理をステップS89に進める。
(Step S86) The
(Step S87) The
(ステップS88)情報収集部140は、ステップS83〜S86の間に取得されたプログラムごとのトレースデータをHDD103の所定の記憶領域にファイルとして出力する。
(Step S88) The
(ステップS89)テスト処理部130は、テスト管理テーブル113を参照し、全てのテスト項目がテスト済みであるか判定する。全てテスト済みの場合、処理を終了する。未実行のテストがある場合、処理をステップS90に進める。
(Step S89) The
(ステップS90)テスト処理部130は、変数nに1を加算する。そして、処理をステップS82に進める。
図21は、プロセス選択処理の具体例を示すシーケンス図である。以下、図21に示す処理をステップ番号に沿って説明する。
(Step S90) The
FIG. 21 is a sequence diagram illustrating a specific example of the process selection process. In the following, the process illustrated in FIG. 21 will be described in order of step number.
(ステップST101)テスト処理部130は、情報収集部140にテスト項目T1のテスト開始を通知する。情報収集部140は、当該テスト開始の通知を受け付ける。
(ステップST102)情報収集部140は、テスト開始時処理を行う。具体的には、当該時点において存在しているプロセスについて、累積実行時間を取得する。
(Step ST101) The
(Step ST102) The
(ステップST103)テスト処理部130は、テスト対象ソフトウェア150に対して、テスト項目T1のテストを開始する。
(ステップST104)テスト処理部130は、テスト対象ソフトウェア150に対して、テスト項目T1のテストを終了する。
(Step ST103) The
(Step ST104) The
(ステップST105)テスト処理部130は、情報収集部140にテスト項目T1のテスト終了通知を行う。情報収集部140は、当該テスト終了の通知を受け付ける。
(ステップST106)情報収集部140は、テスト終了時処理を行う。具体的には、当該時点において存在しているプロセスについて、累積実行時間を取得する。
(Step ST105) The
(Step ST106) The
(ステップST107)情報収集部140は、比較処理を行う。具体的には、ステップST102,ST106で取得したプロセスごとの累積実行時間に基づいて、テスト対象ソフトウェア150のテスト項目T1のテストの際に、情報収集の対象とするプロセスを選択する。
(Step ST107) The
(ステップST108)テスト処理部130は、情報収集部140にテスト項目T2のテスト開始通知を行う。
そして、テスト装置100は、全てのテスト項目が終了するまで、ステップST101からステップST107までの処理を繰り返す。こうして、テスト項目ごとに情報収集の対象とするプロセスが選択される。
(Step ST108) The
Then, the
図22は、プロセス選択の具体例を示す図である。図22では、テスト項目T1に対してプロセステーブル118に登録されたプロセスを例示している。情報収集部140は、開始テーブル114、終了テーブル115およびプロセス履歴テーブル117に登録された情報に基づいて、図18の手順を実行することでテスト対象ソフトウェア150のテスト項目T1について、情報収集の対象とするプロセスを得る。
FIG. 22 is a diagram illustrating a specific example of process selection. FIG. 22 illustrates a process registered in the process table 118 for the test item T1. The
例えば、プロセス“smss”の累積実行時間は、テスト開始時とテスト終了時で異なる。すなわち、プロセス“smss”は実行パターンP1のプロセスである。よって、情報収集部140は、プロセス“smss”を情報収集の対象として選択する。
For example, the cumulative execution time of the process “smss” is different at the test start time and test end time. That is, the process “smss” is a process of the execution pattern P1. Therefore, the
また、プロセス“providerMGR”について、テスト開始時の累積実行時間は取得されているが、テスト終了時の累積実行時間は取得されていない。これは、テスト開始時からテスト終了時までの間にプロセス“providerMGR”が実行され、終了したことを示す。すなわち、プロセス“providerMGR”は、実行パターンP2のプロセスである。よって、情報収集部140は、プロセス“providerMGR”を情報収集の対象として選択する。
For the process “providerMGR”, the accumulated execution time at the start of the test is acquired, but the accumulated execution time at the end of the test is not acquired. This indicates that the process “providerMGR” was executed and ended from the test start time to the test end time. That is, the process “providerMGR” is a process of the execution pattern P2. Therefore, the
また、プロセス“providermonit”について、テスト開始時の累積実行時間は取得されていないが、テスト終了時の累積実行時間は取得されている。これは、テスト開始時からテスト終了時までの間にプロセス“providermonit”が生成され、実行されたことを示す。すなわち、プロセス“providermonit”は、実行パターンP3のプロセスである。よって、情報収集部140は、プロセス“providermonit”を情報収集の対象として選択する。
For the process “providermonitor”, the accumulated execution time at the start of the test is not acquired, but the accumulated execution time at the end of the test is acquired. This indicates that the process “providermonitor” is generated and executed between the test start time and the test end time. That is, the process “providermonitor” is a process of the execution pattern P3. Therefore, the
また、プロセス“ccSvcHst”の累積実行時間はテスト開始時とテスト終了時で同じであるため、プロセス“ccSvcHst”はテスト中に実行されなかったことを示す。すなわち、プロセス“ccSvcHst”は、実行パターンP5のプロセスである。よって、情報収集部140は、プロセス“ccSvcHst”を情報収集の対象としない。
Further, since the accumulated execution time of the process “ccSvcHst” is the same at the start of the test and at the end of the test, it indicates that the process “ccSvcHst” has not been executed during the test. That is, the process “ccSvcHst” is a process of the execution pattern P5. Therefore, the
更に、情報収集部140は、プロセス履歴テーブル117を参照し、テスト時に生成されたプロセス“stubprovider”を特定する。プロセス“stubprovider”は、テスト開始時およびテスト終了時に存在していなかったため、開始テーブル114および終了テーブル115に登録されていない。これは、テスト開始時からテスト終了時までの間にプロセス“providermonit”が生成され、実行され、終了されたことを示す。すなわち、プロセス“providermonit”は、実行パターンP4のプロセスである。よって、情報収集部140は、プロセス“stubprovider”を情報収集の対象として選択する。
Furthermore, the
また、情報収集部140は、プロセス履歴テーブル117を参照し、プロセス“stubprovider”に関連するプロセスがテスト中に異常を生じさせたことを特定する。情報収集部140は、当該関連するプロセス“rcvy”を情報収集の対象として選択する。
Further, the
情報収集部140は、以上のようにして情報収集の対象とするプロセス“smss、providerMGR、providermonit、stubprovider、rcvy”を選択し、プロセステーブル118に登録する。情報収集部140は、このようにして、テスト対象のソフトウェアごと、テスト項目ごとに情報収集の対象とするプロセスを選択する。そして、情報収集部140は、選択したプロセスについて情報収集を行う。
The
図23は、情報収集処理の具体例を示すシーケンス図である。以下、図23に示す処理をステップ番号に沿って説明する。
(ステップST111)テスト処理部130は、テスト対象ソフトウェア150に対して、テスト項目T1のテストを開始する。
FIG. 23 is a sequence diagram illustrating a specific example of information collection processing. In the following, the process illustrated in FIG. 23 will be described in order of step number.
(Step ST111) The
(ステップST112)テスト処理部130は、テスト対象ソフトウェア150に対して、テスト項目T1のテストを終了する。
(ステップST113)テスト処理部130は、テスト項目T1のテスト結果が不正であると判断する。
(Step ST112) The
(Step ST113) The
(ステップST114)テスト処理部130は、メモリダンプの出力を情報収集部140に指示する。情報収集部140は、当該指示を受け付ける。
(ステップST115)情報収集部140は、テスト対象ソフトウェア150のテスト項目T1に対して情報収集の対象として選択済のプロセスに関するメモリダンプを、HDD103にファイルとして出力する。情報収集部140は、出力したファイルがテスト対象ソフトウェア150のテスト項目T1に対して取得されたものであることが分かるように識別情報をファイルに付与する。
(Step ST114) The
(Step ST115) The
(ステップST116)テスト処理部130は、テスト対象ソフトウェア150に対して、テスト項目T2のテストを開始する。
そして、全てのテスト項目が終了するまで、ステップST111からステップST115までの処理を繰り返す。
(Step ST116) The
Then, the processes from step ST111 to step ST115 are repeated until all test items are completed.
(ステップST117)テスト処理部130は、テスト対象ソフトウェア150のテスト項目T1について、トレースデータの取得開始を情報収集部140に指示する。情報収集部140は、テスト対象ソフトウェア150のテスト項目T1について、情報収集の対象として選択済のプロセスに関してトレースデータの取得を開始する。
(Step ST117) The
(ステップST118)テスト処理部130は、テスト対象ソフトウェア150に対して、テスト項目T1のテストを開始する。
(ステップST119)テスト処理部130は、テスト対象ソフトウェア150に対して、テスト項目T1のテストを終了する。
(Step ST118) The
(Step ST119) The
(ステップST120)テスト処理部130は、情報収集部140にトレースデータの取得終了を情報収集部140に指示する。情報収集部140は、トレースデータの取得を終了する。
(Step ST120) The
(ステップST121)テスト処理部130は、テスト項目T1のテスト結果が不正であると判断する。
(ステップST122)テスト処理部130は、トレースデータの出力を情報収集部140に指示する。情報収集部140は、当該指示を受け付ける。
(Step ST121) The
(Step ST122) The
(ステップST123)情報収集部140は、ステップST117〜ST120の間に取得したトレースデータを、HDD103にファイルとして出力する。情報収集部140は、出力したファイルがテスト対象ソフトウェア150のテスト項目T1に対して取得されたものであることが分かるように識別情報をファイルに付与する。
(Step ST123) The
(ステップST124)テスト処理部130は、テスト対象ソフトウェア150のテスト項目T2について、トレースデータの取得開始を情報収集部140に指示する。
そして、全てのテスト項目が終了するまで、ステップST117からステップST123までの処理を繰り返す。
(Step ST124) The
Then, the processes from step ST117 to step ST123 are repeated until all the test items are completed.
ここで、例えば、情報収集の対象とするプロセスを選択して、エラー時に採取する情報を予め絞り込めば、余計な(ソフトウェアのテストとは関連のない)プロセスの情報を採取するよりも、原因究明の分析作業を効率化し得る。そこで、ソフトウェアのテストでは、テスト装置100上に多数存在するソフトウェアのプロセスの中から、情報収集の対象とするプロセスをどのようにして効率的に選択するかが問題となる。
Here, for example, if you select a process to collect information and narrow down the information to be collected in the event of an error, the cause is more than the collection of unnecessary process information (which is not related to software testing). The analysis work of investigation can be made efficient. Therefore, in the software test, there is a problem of how to efficiently select a process as an information collection target from among many software processes existing on the
例えば、ソフトウェアのテストを行っている最中に、存在している全プロセスについてログやトレースデータなどの情報を網羅的に取得し、取得した情報を分析してテストと関連したプロセスを特定することも考えられる。しかし、網羅的に情報を取得しようとすると、当該情報の取得の処理に伴うテスト装置100の負荷が問題となる。テスト装置100の負荷が増大すると、テスト対象のソフトウェアの処理が適正に行われなくなるおそれがある。また、網羅的に情報を取得すると、その情報量も増大し得る。このため、分析作業におけるユーザの負担が過大となるおそれもある。
For example, during software testing, comprehensively acquire information such as logs and trace data for all existing processes, and analyze the acquired information to identify the process related to the test. Is also possible. However, when trying to acquire information comprehensively, the load on the
そこで、テスト装置100では、テスト開始時およびテスト終了時に各プロセスの累積実行時間を取得し、当該累積実行時間に基づいて、ソフトウェアのテストに関連するプロセスを選択する。このため、全てのプロセスについて網羅的に情報を取得しなくてよく、プロセス選択用の情報の取得に伴う負荷を比較的小さく抑えられる。よって、テスト装置100の負荷がテストに与える影響を軽減できる。また、テスト開始時およびテスト終了時の各プロセスの累積実行時間に基づいて、情報収集の対象とするプロセスを選択するので、ユーザに対して当該プロセスを特定する作業を強いずに済む。よって、ユーザの作業の省力化を図れる。
Therefore, the
例えば、テスト装置100は、当該テストを再実行する際に、選択したプロセスを指定して、トレースログやメモリダンプなどの情報を収集し得る。このとき、情報の収集範囲を選択したプロセスに絞り込めるので、当該情報収集に要する負荷を軽減できる。
For example, when the
また、ソフトウェアのテストが成功しなかった場合、原因を特定し、テストが成功するまでテスト環境を保持しておくことが多い。テスト環境に用いるリソースを有効活用したい場合は、短期間でテストを終了して、当該リソースを解放することが求められる。この点、第2の実施の形態を用いることで、原因分析の負担を軽減できるため、短い期間でテストを終了できる可能性も高まる。 Also, if the software test is not successful, the cause is identified and the test environment is often maintained until the test is successful. When it is desired to effectively use a resource used in the test environment, it is required to finish the test in a short period of time and release the resource. In this regard, by using the second embodiment, the burden of cause analysis can be reduced, so that the possibility that the test can be completed in a short period increases.
また、前述のように、情報収集部140は、OS120が提供するAPI(Application Programming Interface)を利用して、テスト開始時およびテスト終了時の累積実行時間を取得してもよい。そうすれば、情報収集部140(または、OS120)は、例えばRAM102上の所定の領域を参照してプロセスごとの累積実行時間を取得できるので、プロセス選択用の情報を取得するための負荷を比較的小さくできる。すなわち、テスト中の余計な負荷を軽減し、テストのための本来の処理に対する影響を抑制できる。
Further, as described above, the
以上のように、テスト装置100によれば、テストの効率化を図れる。
次に、プロセステーブル118の他の利用例を説明する。プロセステーブル118には、テスト対象のソフトウェアごとに情報収集の対象とするプロセスが登録されている。同じソフトウェアについてあるテスト項目を複数回実行した場合に、同じプロセスが複数回選択されていれば、プログラム走行時に同じルートで処理が実行された可能性が高い。このようなテスト項目は、テスト実行時のリソース利用に関して再現性が高く、有効性の高いテスト項目であるといえる。ブラックボックステストにおいて、リソース利用の再現性を確保できなければ、ソフトウェアのエラーに対して原因となる証拠を得るのが難しくなり、的確な分析を行えないからである。
As described above, according to the
Next, another usage example of the process table 118 will be described. In the process table 118, processes for which information is collected are registered for each software to be tested. If a test item for the same software is executed a plurality of times and the same process is selected a plurality of times, there is a high possibility that the processing is executed by the same route during the program running. Such a test item is a highly reproducible test item with high reproducibility regarding the use of resources during test execution. This is because if the reproducibility of resource usage cannot be ensured in the black box test, it will be difficult to obtain evidence that causes software errors, and accurate analysis will not be possible.
有効性の高いテスト項目を抽出できれば、テストの効率化を図れる。例えば、ソフトウェア改版に伴うリグレッションテスト(Regression Test)を行う場合である。改版前のソフトウェアのテスト結果に基づいて、有効性の高いテスト項目に絞って改版後のソフトウェアのテストを行うことが考えられる。そこで、プロセステーブル118に基づく、テスト項目の有効性の検証機能を提供する。 If test items with high effectiveness can be extracted, testing efficiency can be improved. For example, a regression test accompanying a software revision is performed. Based on the test results of the software before the revision, it is conceivable to test the software after the revision focusing on highly effective test items. Therefore, a test item validity verification function based on the process table 118 is provided.
図24は、テスト項目の有効性の検証例を示すフローチャートである。以下、図24に示す処理をステップ番号に沿って説明する。
(ステップS91)情報収集部140は、ユーザの入力により検証対象のソフトウェアおよびテスト項目の指定を受け付ける。例えば、ソフトウェア名“SW2”およびテスト項目“T1”が指定される。
FIG. 24 is a flowchart illustrating an example of verifying the effectiveness of a test item. In the following, the process illustrated in FIG. 24 will be described in order of step number.
(Step S <b> 91) The
(ステップS92)情報収集部140は、プロセステーブル118を参照し、指定を受けたソフトウェアとテスト項目を特定する。
(ステップS93)情報収集部140は、情報収集の対象とするプロセスが一致するかを判定する。例えば、プロセステーブル118によれば、項番“3”、“4”のそれぞれのレコードに含まれるプロセスが一致するか否かを判定する。
(Step S92) The
(Step S <b> 93) The
(ステップS94)情報収集部140は、判定結果をディスプレイ11に出力する。そして、処理を終了する。情報収集部140は、一致するプロセスまたは不一致のプロセスを出力してもよい。例えば、情報収集部140は、全てのプロセスが一致する場合に、当該テスト項目を有効と評価し、当該テスト項目をリグレッションテストに採用すると決定してもよい。情報収集部140は、何れかのプロセスが一致しない場合に、当該テスト項目を有効でないと評価し、当該テスト項目をリグレッションテストに採用しないと決定してもよい。
(Step S <b> 94) The
このように、情報収集部140は、テスト対象ソフトウェア150のテスト項目を複数回テストし、各回で選択されたプロセスが一致する割合に基づいて、当該テスト項目が有効であるか否かを評価する。例えば、各回で選択されたプロセスが一致する割合を次のようにして求めることが考えられる。第1には、あるテスト項目に対して今回選択されたプロセスのうち前回も選択されていたプロセスの数を、今回選択されたプロセスの総数で割ることで求めてもよい。第2には、各回で選択されたプロセスが一致する割合を、あるテスト項目に対して今回選択されたプロセスのうち前回までに選択されたことがあるプロセスの数を、今回選択されたプロセスの総数で割ることで求めてもよい。例えば、完全一致の場合に有効と判断する以外にも、所定の割合(例えば、90%、95%など)以上で一致する場合に有効と判断してもよい。
As described above, the
これにより、テスト項目数の肥大化を抑制し、かつ、より有効性の高いテスト項目に絞れる。よって、リグレッションテスト時に、改版後のソフトウェアのテストを効率的に行えるようになる。 As a result, the increase in the number of test items can be suppressed and the test items can be narrowed down to more effective items. Therefore, the software after the revision can be efficiently tested during the regression test.
また、ソフトウェア改版時のリグレッションテストでは、ソフトウェアに不具合がないかをテストすることもある。例えば、プロセステーブル118をリグレッションテスト時のテスト項目の抽出に用いることも考えられる。 In addition, a regression test at the time of software revision may test whether the software is defective. For example, it is conceivable to use the process table 118 for extracting test items during a regression test.
図25は、テスト項目の抽出処理の例を示すフローチャートである。以下、図25に示す処理をステップ番号に沿って説明する。
(ステップS101)情報収集部140は、ユーザの入力によりテスト対象のソフトウェアおよびプロセスの指定を受ける。プロセスの指定は複数であってもよい。例えば、情報収集部140は、ソフトウェア“SW1”およびプロセス“smss”の指定を受け付ける。
FIG. 25 is a flowchart illustrating an example of test item extraction processing. In the following, the process illustrated in FIG. 25 will be described in order of step number.
(Step S <b> 101) The
(ステップS102)情報収集部140は、プロセステーブル118を参照し、ユーザから指定されたソフトウェアおよびプロセスを基にテスト項目を特定する。情報収集部140は、プロセステーブル118を参照する。情報収集部140は、ソフトウェア“SW1”でプロセス“smss”が登録されたテスト項目“T1”および“T2”を特定する。
(Step S <b> 102) The
(ステップS103)情報収集部140は、特定したテスト項目をディスプレイ11に出力する。そして、処理を終了する。
このように、プロセステーブル118を利用して、実行されるプロセスのテスト項目を容易に抽出できる。リグレッションテスト時には、ソフトウェアの改版前後で同じプロセスが実行され得る。よって、上記のようにテスト対象のソフトウェアとプロセスとを指定して改版前のテスト時のテスト項目を抽出することで、改版後のテスト項目を効率的に作成できる。情報収集部140は、抽出したテスト項目に基づいて、リグレッションテスト時のテスト項目を生成し、テスト管理テーブル113に登録してもよい。このようにすれば、ユーザによるテスト項目の作成作業の負担を軽減することができる。
(Step S <b> 103) The
Thus, using the process table 118, test items for the process to be executed can be easily extracted. During regression testing, the same process can be performed before and after software revisions. Therefore, by specifying the test target software and process and extracting the test items at the time of the test before the revision as described above, the test item after the revision can be efficiently created. The
以上のように、テスト装置100によればテストの効率化を図れる。
なお、前述のように、第1の実施の形態の情報処理は、演算部1bにプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、プロセッサ101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体(例えば、光ディスク、メモリ装置およびメモリカードなど)に記録できる。
As described above, according to the
As described above, the information processing of the first embodiment can be realized by causing the
プログラムを流通させる場合、例えば、当該プログラムを記録した可搬記録媒体が提供される。また、プログラムを他のコンピュータの記憶装置に格納しておき、ネットワーク経由でプログラムを配布することもできる。コンピュータは、例えば、可搬記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、記憶装置に格納し、当該記憶装置からプログラムを読み込んで実行する。ただし、可搬記録媒体から読み込んだプログラムを直接実行してもよく、他のコンピュータからネットワークを介して受信したプログラムを直接実行してもよい。 When distributing the program, for example, a portable recording medium in which the program is recorded is provided. It is also possible to store the program in a storage device of another computer and distribute the program via a network. The computer stores, for example, a program recorded on a portable recording medium or a program received from another computer in a storage device, and reads and executes the program from the storage device. However, a program read from a portable recording medium may be directly executed, or a program received from another computer via a network may be directly executed.
また、上記の情報処理の少なくとも一部を、DSP、ASIC、PLD(Programmable Logic Device)などの電子回路で実現することもできる。 In addition, at least a part of the information processing described above can be realized by an electronic circuit such as a DSP, ASIC, or PLD (Programmable Logic Device).
1 情報処理装置
1a 記憶部
1b 演算部
2 管理情報
3 記録情報
DESCRIPTION OF
Claims (8)
ソフトウェアのテストを開始する際に、存在しているプロセスごとに、実行された累積の時間を示す第1の情報を取得し、
前記ソフトウェアの前記テストを終了する際に、存在しているプロセスごとに、実行された累積の時間を示す第2の情報を取得し、
プロセスごとに取得された第1および第2の情報に基づいて、前記ソフトウェアの前記テストを再び行う際に情報収集の対象とするプロセスを選択し、
情報収集の対象とした第1のプロセスに関するテスト中の履歴に、前記第1のプロセスと通信する第2のプロセスの異常が記録されている場合、前記第2のプロセスを情報収集の対象とする、
処理を実行させるプログラム。 On a computer that can run multiple processes,
When starting a software test, for each existing process, obtain first information indicating the accumulated time executed,
Upon completion of the test of the software, for each existing process, obtain second information indicating the accumulated time executed,
Based on the first and second information obtained in each process, select the process to be subjected to information collection when again performing the test of the software,
When an abnormality of the second process communicating with the first process is recorded in the history of the test related to the first process that is the target of information collection, the second process is the target of information collection. ,
A program that executes processing.
ソフトウェアのテストを開始する際に、存在しているプロセスごとに、実行された累積の時間を示す第1の情報を取得し、
前記ソフトウェアの前記テストを終了する際に、存在しているプロセスごとに、実行された累積の時間を示す第2の情報を取得し、
プロセスごとに取得された第1および第2の情報に基づいて、前記ソフトウェアの前記テストを再び行う際に情報収集の対象とするプロセスを選択し、
情報収集の対象とした第1のプロセスに関するテスト中の履歴に、前記第1のプロセスと通信する第2のプロセスの異常が記録されている場合、前記第2のプロセスを情報収集の対象とする、
プロセス選択方法。 An information processing apparatus capable of executing a plurality of processes
When starting a software test, for each existing process, obtain first information indicating the accumulated time executed,
Upon completion of the test of the software, for each existing process, obtain second information indicating the accumulated time executed,
Based on the first and second information obtained in each process, select the process to be subjected to information collection when again performing the test of the software,
When an abnormality of the second process communicating with the first process is recorded in the history of the test related to the first process that is the target of information collection, the second process is the target of information collection. ,
Process selection method.
現存しているプロセスごとに、実行された累積の時間を記憶する記憶部と、
ソフトウェアのテストを開始する際に、前記記憶部を参照して、存在しているプロセスごとに、実行された累積の時間を示す第1の情報を取得し、
前記ソフトウェアの前記テストを終了する際に、前記記憶部を参照して、存在しているプロセスごとに、実行された累積の時間を示す第2の情報を取得し、
プロセスごとに取得された第1および第2の情報に基づいて、前記ソフトウェアの前記テストを再び行う際に情報収集の対象とするプロセスを選択し、
情報収集の対象とした第1のプロセスに関するテスト中の履歴に、前記第1のプロセスと通信する第2のプロセスの異常が記録されている場合、前記第2のプロセスを情報収集の対象とする、演算部と、
を有する情報処理装置。
An information processing apparatus capable of executing a plurality of processes,
For each existing process, a storage unit that stores the cumulative time that was executed;
When starting a software test, referring to the storage unit, for each existing process, obtain first information indicating the accumulated time of execution,
When ending the test of the software, referring to the storage unit, for each existing process, to obtain second information indicating the accumulated time of execution,
Based on the first and second information obtained in each process, select the process to be subjected to information collection when again performing the test of the software,
When an abnormality of the second process communicating with the first process is recorded in the history of the test related to the first process that is the target of information collection, the second process is the target of information collection. , Arithmetic unit,
An information processing apparatus.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013124319A JP6248425B2 (en) | 2013-06-13 | 2013-06-13 | Program, process selection method, and information processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013124319A JP6248425B2 (en) | 2013-06-13 | 2013-06-13 | Program, process selection method, and information processing apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015001755A JP2015001755A (en) | 2015-01-05 |
JP6248425B2 true JP6248425B2 (en) | 2017-12-20 |
Family
ID=52296274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013124319A Active JP6248425B2 (en) | 2013-06-13 | 2013-06-13 | Program, process selection method, and information processing apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6248425B2 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2595733B2 (en) * | 1989-11-30 | 1997-04-02 | 富士通株式会社 | Task error detection method |
JP2008234354A (en) * | 2007-03-20 | 2008-10-02 | Toshiba Corp | Cpu load analysis device and program |
JP2011118596A (en) * | 2009-12-02 | 2011-06-16 | Fujitsu Semiconductor Ltd | Information-processing device and profiling method |
-
2013
- 2013-06-13 JP JP2013124319A patent/JP6248425B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2015001755A (en) | 2015-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8141053B2 (en) | Call stack sampling using a virtual machine | |
US8589884B2 (en) | Method and system for identifying regression test cases for a software | |
KR101881804B1 (en) | Method and apparatus for automating game test | |
US9612837B2 (en) | Trace method and information processing apparatus | |
US9619373B2 (en) | Method and apparatus to semantically connect independent build and test processes | |
US20080163003A1 (en) | Method and System for Autonomic Target Testing | |
JP5102823B2 (en) | Test support apparatus, test apparatus, test support method, and computer program for optimizing test scenario so as to minimize total test time | |
CN111026601A (en) | Monitoring method and device for Java application system, electronic equipment and storage medium | |
US20150006961A1 (en) | Capturing trace information using annotated trace output | |
US11422920B2 (en) | Debugging multiple instances of code using thread patterns | |
US20100082378A1 (en) | Business Process Optimization And Problem Resolution | |
CN111240974B (en) | Log output method and device, electronic equipment and medium | |
CN106980572B (en) | Online debugging method and system for distributed system | |
CN110580220B (en) | Method for measuring code segment execution time and terminal equipment | |
JP6615071B2 (en) | Computer system and test case management method | |
US20160217017A1 (en) | Determining workflow completion state | |
JP6248425B2 (en) | Program, process selection method, and information processing apparatus | |
CN112988503A (en) | Analysis method, analysis device, electronic device, and storage medium | |
CN109358813B (en) | Capacity expansion method and device for distributed storage system | |
CN107992420B (en) | Management method and system for test item | |
JP6336919B2 (en) | Source code review method and system | |
CN110442370B (en) | Test case query method and device | |
CN111143229A (en) | Software testing method and device, computer equipment and computer readable storage medium | |
JP4253056B2 (en) | Test device, test case evaluation device, and test result analysis device | |
US20240160518A1 (en) | Dynamic registration of software components for diagnosis of root cause of failure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160310 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170126 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170207 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170406 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20170613 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170908 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20170919 |
|
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: 20171024 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171106 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6248425 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |