JP6409599B2 - Program, information processing method and information processing apparatus - Google Patents

Program, information processing method and information processing apparatus Download PDF

Info

Publication number
JP6409599B2
JP6409599B2 JP2015020036A JP2015020036A JP6409599B2 JP 6409599 B2 JP6409599 B2 JP 6409599B2 JP 2015020036 A JP2015020036 A JP 2015020036A JP 2015020036 A JP2015020036 A JP 2015020036A JP 6409599 B2 JP6409599 B2 JP 6409599B2
Authority
JP
Japan
Prior art keywords
storage device
execution time
program
specific program
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015020036A
Other languages
Japanese (ja)
Other versions
JP2016143313A (en
Inventor
敬藏 小池
敬藏 小池
博明 松山
博明 松山
成道 中村
成道 中村
聡 尾上
聡 尾上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015020036A priority Critical patent/JP6409599B2/en
Publication of JP2016143313A publication Critical patent/JP2016143313A/en
Application granted granted Critical
Publication of JP6409599B2 publication Critical patent/JP6409599B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、ソフトウエアテストに関する。   The present invention relates to software testing.

ソフトウエアテストとは、プログラムが正しく動作するか、意図しない動作をしないか、或いは目標の品質に到達しているか等を確認する作業のことである。   The software test is an operation for confirming whether the program operates correctly, does not operate unintentionally, or reaches a target quality.

ソフトウエアテストを行う者が自ら開発したプログラムであれば、ソースコードに基づき、プログラムの実行ルートを網羅するためのテストセット(テストプログラムとも呼ばれる)を作成し、テストセットの有効性を確認することができる。このような、プログラムの内部構造を理解した上で行うソフトウエアテストは、ホワイトボックステストと呼ばれる。   If it is a program developed by the person who performs the software test, create a test set (also called a test program) to cover the execution route of the program based on the source code, and confirm the effectiveness of the test set. Can do. Such a software test performed after understanding the internal structure of the program is called a white box test.

一方、OEM(Original Equipment Manufacturer)やOSS(Open Source Software)を利用する場合には、自らがソースコードを作成することなくプログラムを開発することができる。通常、このような方法で作成されたプログラムのテストにはブラックボックステストが利用される。ブラックボックステストとは、プログラムの入力及び出力に着目し、様々な入力に対して仕様書通りの出力が得られるかどうかを確認するテストのことである。   On the other hand, when using OEM (Original Equipment Manufacturer) or OSS (Open Source Software), it is possible to develop a program without creating source code. Normally, a black box test is used to test a program created in this way. The black box test is a test for checking whether or not an output according to the specification can be obtained for various inputs by paying attention to the input and output of the program.

ところで、プログラムの実行ルートは、コンピュータ資源の状態または過去のアクセス履歴などの内部状態の違いが原因で、同じ入力であっても異なる実行ルートになることがある。プログラムのソースコードを理解している場合には、実行ルートを特定することは可能である。しかし、OEMやOSS等を利用して作成したプログラムの場合、内部状態を把握することが難しく、実行ルートの特定が困難である。従って、同じ入力について複数回のテストを実行した場合に実行ルートが安定しているかわからないという問題がある。   By the way, the execution route of a program may be a different execution route even for the same input due to the difference in the state of computer resources or the internal state such as past access history. If you understand the source code of the program, you can specify the execution route. However, in the case of a program created using OEM, OSS, or the like, it is difficult to grasp the internal state, and it is difficult to specify the execution route. Therefore, there is a problem that it is not known whether the execution route is stable when a plurality of tests are executed for the same input.

特開2012−133721号公報JP 2012-133721 A

従って、本発明の目的は、1つの側面では、プログラムの実行ルートの安定性を評価できるようにするための技術を提供することである。   Therefore, the objective of this invention is providing the technique for enabling the evaluation of the stability of the execution route of a program in one side.

本発明の1つの態様では、特定のプログラムが複数回実行される場合、複数回の実行の各々について、特定のプログラムの実行時間を記憶装置に記憶し、記憶装置に記憶された実行時間に応じて複数回の実行が分類された結果から算出される、分類により生成されたグループに属する実行の数が複数回の実行の総数に占める割合に応じて、特定のプログラムの実行ルートが安定しているか判定する処理を含む。   In one aspect of the present invention, when a specific program is executed a plurality of times, the execution time of the specific program is stored in the storage device for each of the executions of the plurality of times, and according to the execution time stored in the storage device The execution route of a specific program is stabilized according to the ratio of the number of executions belonging to the group generated by classification to the total number of executions calculated from the result of classification of multiple executions. It includes processing to determine whether or not.

1つの側面では、プログラムの実行ルートの安定性を評価することができる。   In one aspect, the stability of the program execution route can be evaluated.

図1は、情報処理装置の構成を示す図である。FIG. 1 is a diagram illustrating a configuration of the information processing apparatus. 図2は、ドライバの機能ブロック図である。FIG. 2 is a functional block diagram of the driver. 図3は、本実施の形態の概要について説明するための図である。FIG. 3 is a diagram for explaining the outline of the present embodiment. 図4は、事前の設定処理の処理フローを示す図である。FIG. 4 is a diagram illustrating a processing flow of the prior setting process. 図5は、対象範囲について説明するための図である。FIG. 5 is a diagram for explaining the target range. 図6は、開始ブロック及び終了ブロックについて説明するための図である。FIG. 6 is a diagram for explaining the start block and the end block. 図7は、範囲テーブルに格納されるデータの一例を示す図である。FIG. 7 is a diagram illustrating an example of data stored in the range table. 図8は、アクセステーブルに格納されるデータの一例を示す図である。FIG. 8 is a diagram illustrating an example of data stored in the access table. 図9は、テストプログラムの実行を開始する際にトレース処理部が実行する処理の処理フローを示す図である。FIG. 9 is a diagram showing a processing flow of processing executed by the trace processing unit when starting execution of the test program. 図10は、モード格納領域に格納されるデータの一例を示す図である。FIG. 10 is a diagram illustrating an example of data stored in the mode storage area. 図11は、トレース処理の処理フローを示す図である。FIG. 11 is a diagram illustrating a processing flow of the trace processing. 図12は、終端アドレス格納領域に格納されるデータの一例を示す図である。FIG. 12 is a diagram illustrating an example of data stored in the termination address storage area. 図13は、テストプログラムの実行を終了する際にトレース処理部が実行する処理の処理フローを示す図である。FIG. 13 is a diagram illustrating a processing flow of processing executed by the trace processing unit when the execution of the test program is finished. 図14は、アクセスフラグ設定処理の処理フローを示す図である。FIG. 14 is a diagram showing a processing flow of access flag setting processing. 図15は、アクセステーブルに格納されるデータの一例を示す図である。FIG. 15 is a diagram illustrating an example of data stored in the access table. 図16は、メモリにロードされるデータの量の抑制について説明するための図である。FIG. 16 is a diagram for explaining suppression of the amount of data loaded into the memory. 図17は、ロード部が実行する処理の処理フローを示す図である。FIG. 17 is a diagram illustrating a processing flow of processing executed by the loading unit. 図18は、マップテーブルに格納されるデータ及び確保されたメモリ領域の一例を示す図である。FIG. 18 is a diagram illustrating an example of data stored in the map table and a reserved memory area. 図19は、検証処理を開始する際に検証部が実行する処理の処理フローを示す図である。FIG. 19 is a diagram illustrating a processing flow of processing executed by the verification unit when starting verification processing. 図20は、各テストを開始する際に検証部が実行する処理の処理フローを示す図である。FIG. 20 is a diagram illustrating a processing flow of processing executed by the verification unit when starting each test. 図21は、検証処理の処理フローを示す図である。FIG. 21 is a diagram illustrating a processing flow of the verification processing. 図22は、ダミーのアクセス要求について説明するための図である。FIG. 22 is a diagram for explaining a dummy access request. 図23は、検証処理の処理フローを示す図である。FIG. 23 is a diagram illustrating a processing flow of verification processing. 図24は、第1結果テーブルに格納されるデータの一例を示す図である。FIG. 24 is a diagram illustrating an example of data stored in the first result table. 図25は、各テストを終了する際に検証部が実行する処理の処理フローを示す図である。FIG. 25 is a diagram illustrating a processing flow of processing executed by the verification unit when each test is completed. 図26は、検証処理を終了する際に検証部が実行する処理の処理フローを示す図である。FIG. 26 is a diagram illustrating a processing flow of processing executed by the verification unit when the verification processing ends. 図27は、検証処理の結果を集約する処理の処理フローを示す図である。FIG. 27 is a diagram illustrating a processing flow of processing for collecting the results of the verification processing. 図28Aは、プロセスGIDの付与について説明するための図である。FIG. 28A is a diagram for explaining the assignment of the process GID. 図28Bは、第2結果テーブルに格納されるデータの一例を示す図である。FIG. 28B is a diagram illustrating an example of data stored in the second result table. 図29は、トータルの実行時間の集約例を示す図である。FIG. 29 is a diagram showing an example of total execution time aggregation. 図30は、集約された結果を整形する処理の処理フローを示す図である。FIG. 30 is a diagram illustrating a processing flow of processing for shaping the aggregated results. 図31は、第3結果テーブルに格納されるデータの一例を示す図である。FIG. 31 is a diagram illustrating an example of data stored in the third result table. 図32は、使用可能なメモリの量が少ない場合におけるディスクアクセスの一例を示す図である。FIG. 32 is a diagram illustrating an example of disk access when the amount of usable memory is small. 図33は、使用可能なメモリの量が多い場合におけるディスクアクセスの一例を示す図である。FIG. 33 is a diagram illustrating an example of disk access when the amount of usable memory is large. 図34は、整形された結果の一例を示す図である。FIG. 34 is a diagram illustrating an example of the shaped result. 図35は、整形された結果の一例を示す図である。FIG. 35 is a diagram illustrating an example of the shaped result. 図36は、実行ルートの安定性を評価する処理の処理フローを示す図である。FIG. 36 is a diagram illustrating a processing flow of processing for evaluating the stability of the execution route. 図37は、コンピュータの機能ブロック図である。FIG. 37 is a functional block diagram of a computer.

図1に、本実施の形態における情報処理装置1の構成を示す。情報処理装置1は、メモリ(例えば主記憶)に設けられるワークデータ格納部11と、例えばHDD(Hard Disk Drive)であるディスク装置12とを有する。テストプログラム14は、ソフトウエアテストの対象のプログラムである対象プログラム15をN(Nは2以上の自然数)回呼び出し、N回のテストを実行する。各テストにおける入力値は同じである。OS(Operating System)におけるカーネル13のプログラム、テストプログラム14、対象プログラム15、及びドライバ10のプログラムは主記憶にロードされ、情報処理装置1におけるCPU(Central Processing Unit)に実行されることで、以下で説明するような各種機能を実現する。   FIG. 1 shows the configuration of the information processing apparatus 1 in the present embodiment. The information processing apparatus 1 includes a work data storage unit 11 provided in a memory (for example, main memory) and a disk device 12 that is, for example, an HDD (Hard Disk Drive). The test program 14 calls the target program 15, which is a target program for the software test, N times (N is a natural number of 2 or more) times, and executes N tests. Input values in each test are the same. The kernel 13 program, test program 14, target program 15, and driver 10 program in the OS (Operating System) are loaded into the main memory and executed by a CPU (Central Processing Unit) in the information processing apparatus 1, so that Various functions described in the above are realized.

図2に、ドライバ10の機能ブロック図を示す。ドライバ10は、トレース処理部101と、ロード部103と、検証部105とを有する。トレース処理部101は、ワークデータ格納部11に格納されたデータに基づきトレース処理を実行し、処理結果をディスク装置12に格納する。ロード部103は、ディスク装置12に格納された、対象プログラム15からアクセスされるデータを、ワークデータ格納部11にロードする。検証部105は、トレース処理部101によってディスク装置12に格納されたデータ及びワークデータ格納部11にロードされたデータに基づき検証処理を実行し、処理結果をディスク装置12に格納する。   FIG. 2 shows a functional block diagram of the driver 10. The driver 10 includes a trace processing unit 101, a load unit 103, and a verification unit 105. The trace processing unit 101 executes trace processing based on the data stored in the work data storage unit 11 and stores the processing result in the disk device 12. The load unit 103 loads data accessed from the target program 15 stored in the disk device 12 into the work data storage unit 11. The verification unit 105 executes verification processing based on the data stored in the disk device 12 by the trace processing unit 101 and the data loaded in the work data storage unit 11, and stores the processing result in the disk device 12.

なお、種々のプログラムに共通の特徴として、以下のようなディスクアクセスを行うことが挙げられる。(1)ディスク装置12上の動作環境ファイルから、プログラムの動作条件等を読み込む、(2)プログラムの動作条件に従い処理を実行し、処理結果に応じてディスク装置12上のデータの更新や追加を行う、(3)ディスク装置12上の領域を作業領域として使用する、(4)発生したエラーの内容や実行ログをディスク装置12に記録する。本実施の形態においては、このようなディスクアクセスに着目する。   In addition, as a feature common to various programs, the following disk access can be mentioned. (1) Read the operating conditions of the program from the operating environment file on the disk device 12, (2) execute processing according to the operating conditions of the program, and update or add data on the disk device 12 according to the processing result (3) Use the area on the disk device 12 as a work area. (4) Record the contents of the error and the execution log in the disk device 12. In the present embodiment, attention is paid to such disk access.

図3を用いて、本実施の形態において実行される処理の概要について説明する。図3にいて、対象プログラム15とドライバ10との間の矢印はディスクアクセスの実行指示及びディスクアクセスの結果の通知を表し、ドライバ10とディスク装置12との間の矢印はディスクアクセスを表す。本実施の形態においては、まずドライバ10におけるトレース処理部101が処理を実行する。トレース処理部101は、対象プログラム15によってアクセスされるディスク装置12の領域を調べ、対象プログラム15の実行時間(CPU時間或いはCPU実行時間とも呼ばれる。単位はms(ミリ秒)。)をカーネル13から取得するポイント(以下、取得ポイントと呼ぶ)を決定する。図3においては、データ301にアクセスする処理と、データ302にアクセスする処理とが取得ポイントである。なお、実行時間とは、対象プログラム15の実行を開始してから経過した時間である。   The outline of the processing executed in the present embodiment will be described with reference to FIG. In FIG. 3, an arrow between the target program 15 and the driver 10 represents a disk access execution instruction and a disk access result notification, and an arrow between the driver 10 and the disk device 12 represents disk access. In the present embodiment, first, the trace processing unit 101 in the driver 10 executes processing. The trace processing unit 101 checks the area of the disk device 12 accessed by the target program 15, and the execution time of the target program 15 (also called CPU time or CPU execution time. The unit is ms (millisecond)) from the kernel 13. A point to be acquired (hereinafter referred to as an acquisition point) is determined. In FIG. 3, the process of accessing the data 301 and the process of accessing the data 302 are acquisition points. The execution time is the time that has elapsed since the execution of the target program 15 was started.

次に、ロード処理において、ドライバ10におけるロード部103は、取得ポイントにおいてアクセスされるデータ301及び302をディスク装置12内の領域から読み出し、ワークデータ格納部11にコピーする。   Next, in the load process, the load unit 103 in the driver 10 reads the data 301 and 302 accessed at the acquisition point from the area in the disk device 12 and copies them to the work data storage unit 11.

そして、検証処理において、ドライバ10における検証部105は、取得ポイントにおいて実行時間をカーネル13から取得する。この際、ディスク装置12内の領域におけるデータ301及び302にはアクセスせず、ワークデータ格納部11にロードされたデータ301及び302にアクセスする。これにより、アクセスに要する時間を短縮できるので、短縮分の時間と実行時間の取得に要する時間とを相殺できるようになる。取得した実行時間及びディスクアクセスの際のアクセス先アドレスは、ディスク装置12に保存される。   In the verification process, the verification unit 105 in the driver 10 acquires the execution time from the kernel 13 at the acquisition point. At this time, the data 301 and 302 loaded in the work data storage unit 11 are accessed without accessing the data 301 and 302 in the area in the disk device 12. As a result, the time required for access can be shortened, so that the shortened time and the time required for obtaining the execution time can be offset. The acquired execution time and access destination address at the time of disk access are stored in the disk device 12.

本実施の形態においては、N回のテストの各々について検証処理が実行される。そして、検証処理において取得された、対象プログラム15の実行完了までに要する時間と、各取得ポイントに到達するまでに要する時間と、アクセス先のアドレスを要素とするアドレス列とに基づき、N回のテストがグループ化される。ユーザは、グループの数及び各グループに属するテストの数等に基づき、実行ルートのばらつきを確認できるので、対象プログラム15の実行ルートの安定性を評価できるようになる。   In the present embodiment, the verification process is executed for each of the N tests. Based on the time required to complete the execution of the target program 15 acquired in the verification process, the time required to reach each acquisition point, and the address string having the access destination address as an element, N times Tests are grouped. Since the user can check the variation of the execution route based on the number of groups and the number of tests belonging to each group, the stability of the execution route of the target program 15 can be evaluated.

次に、図4乃至図36を用いて、情報処理装置1が実行する処理をより具体的に説明する。まず、図4乃至図8を用いて、事前の設定処理について説明する。本処理は、テストプログラム14毎に行われる。   Next, the processing executed by the information processing apparatus 1 will be described more specifically with reference to FIGS. First, prior setting processing will be described with reference to FIGS. 4 to 8. This process is performed for each test program 14.

トレース処理部101は、各対象範囲の先頭アドレス及び最終アドレスの指定をユーザから受け付ける(図4:ステップS1)。対象範囲とは、図5に示すように、ディスク装置12における領域の範囲のことであり、対象プログラム15からアクセスされる領域の範囲である。   The trace processing unit 101 receives designation of the start address and the end address of each target range from the user (FIG. 4: step S1). As shown in FIG. 5, the target range is a range of areas in the disk device 12 and is a range of areas accessed from the target program 15.

トレース処理部101は、開始ブロックを特定し、開始ブロックのブロック番号及びアドレスを、ワークデータ格納部11における範囲テーブルに格納する(ステップS3)。開始ブロックとは、対象範囲における最も若い(すなわち、アドレスを表す番号が最も小さい)アドレスをXとした場合において、アドレスXを含むブロックである。例えば図6の例であれば、矢印601が指し示すブロックが開始ブロックである。   The trace processing unit 101 identifies the start block, and stores the block number and address of the start block in the range table in the work data storage unit 11 (step S3). The start block is a block including the address X, where X is the youngest address in the target range (that is, the smallest address number). For example, in the example of FIG. 6, the block indicated by the arrow 601 is the start block.

トレース処理部101は、最終ブロックを特定し、最終ブロックのブロック番号及びアドレスを、ワークデータ格納部11における範囲テーブルに格納する(ステップS5)。最終ブロックとは、対象範囲において最も若くない(すなわち、アドレスを表す番号が最も大きい)アドレスをXとした場合において、アドレスXを含むブロックである。例えば図6の例であれば、矢印602が指し示すブロックが最終ブロックである。   The trace processing unit 101 identifies the last block, and stores the block number and address of the last block in the range table in the work data storage unit 11 (step S5). The final block is a block that includes the address X, where X is the youngest address in the target range (that is, the largest address number). For example, in the example of FIG. 6, the block indicated by the arrow 602 is the final block.

図7に、範囲テーブルに格納されるデータの一例を示す。図7の例では、テストプログラム14の名前(以下、テストプログラム名と呼ぶ)と、開始ブロックのブロック番号と、開始ブロックのアドレスと、最終ブロックのブロック番号と、最終ブロックのアドレスとが格納される。   FIG. 7 shows an example of data stored in the range table. In the example of FIG. 7, the name of the test program 14 (hereinafter referred to as the test program name), the block number of the start block, the address of the start block, the block number of the last block, and the address of the last block are stored. The

図4の説明に戻り、トレース処理部101は、開始ブロックから最終ブロックまでの各ブロックについて、ワークデータ格納部11におけるアクセステーブルにエントリを生成する(ステップS7)。   Returning to the description of FIG. 4, the trace processing unit 101 generates an entry in the access table in the work data storage unit 11 for each block from the start block to the last block (step S <b> 7).

図8に、アクセステーブルに格納されるデータの一例を示す。図8の例では、テストプログラム名と、ブロック番号と、範囲フラグと、アクセスフラグとが格納される。範囲フラグ及びアクセスフラグは「ON」又は「OFF」に設定されるが、ステップS7の時点においては「OFF」に設定される。   FIG. 8 shows an example of data stored in the access table. In the example of FIG. 8, a test program name, a block number, a range flag, and an access flag are stored. The range flag and the access flag are set to “ON” or “OFF”, but are set to “OFF” at the time of step S7.

図4の説明に戻り、トレース処理部101は、アクセステーブルに格納された範囲フラグのうち、ステップS1において指定を受け付けた対象範囲に含まれるブロックの範囲フラグを「ON」に設定する(ステップS9)。そして処理を終了する。   Returning to the description of FIG. 4, the trace processing unit 101 sets the range flag of the block included in the target range for which designation is accepted in step S <b> 1 among the range flags stored in the access table to “ON” (step S <b> 9). ). Then, the process ends.

以上のような処理を実行すれば、初期的な状態のアクセステーブルを用意することができるようになる。   By executing the processing as described above, an access table in an initial state can be prepared.

次に、図9及び図10を用いて、トレース処理を開始する際にトレース処理部101が実行する処理について説明する。   Next, a process executed by the trace processing unit 101 when starting the trace process will be described with reference to FIGS. 9 and 10.

まず、トレース処理部101は、実行が開始されるテストプログラム14のテストプログラム名に対応するアクセステーブルからデータを読み込む(図9:ステップS11)。   First, the trace processing unit 101 reads data from the access table corresponding to the test program name of the test program 14 to be executed (FIG. 9: Step S11).

トレース処理部101は、ワークデータ格納部11におけるモード格納領域に格納された、モードを表す情報を「トレース」に設定する(ステップS13)。そして処理を終了する。モード格納領域には、例えば図10に示すような態様で、モードを表す情報が格納される。   The trace processing unit 101 sets the information indicating the mode stored in the mode storage area in the work data storage unit 11 to “trace” (step S13). Then, the process ends. In the mode storage area, information representing the mode is stored in a mode as shown in FIG. 10, for example.

以上のような処理を実行すれば、トレース処理部101がトレース処理を開始できるようになる。   By executing the processing as described above, the trace processing unit 101 can start the trace processing.

次に、図11及び図12を用いて、トレース処理部101が実行するトレース処理について説明する。本処理は、ディスクアクセスが行われる度に実行される。なお、ディスクアクセスのパラメータは、アクセス先のアドレス(ここでは、アクセスされる領域における最も若いアドレス)及びアクセスされるデータのサイズである。   Next, trace processing executed by the trace processing unit 101 will be described with reference to FIGS. 11 and 12. This process is executed every time a disk access is performed. The disk access parameters are the access destination address (here, the youngest address in the accessed area) and the size of the accessed data.

まず、トレース処理部101は、ワークデータ格納部11におけるモード格納領域に格納された、モードを表す情報が「検証」に設定されているか判断する(図11:ステップS21)。モードを表す情報が「検証」に設定されている場合(ステップS21:Yesルート)、処理は端子Aを介して図21のステップS101に移行する。ステップS101以降においては、トレース処理部101から呼び出された検証部105が検証処理を実行することになる。検証処理については後で説明する。   First, the trace processing unit 101 determines whether the information indicating the mode stored in the mode storage area in the work data storage unit 11 is set to “verification” (FIG. 11: step S21). When the information indicating the mode is set to “verification” (step S21: Yes route), the process proceeds to step S101 in FIG. After step S101, the verification unit 105 called from the trace processing unit 101 executes the verification process. The verification process will be described later.

モードを表す情報が「検証」に設定されていない場合(ステップS21:Noルート)、トレース処理部101は、ワークデータ格納部11におけるモード格納領域に格納された、モードを表す情報が「トレース」に設定されているか判断する(ステップS23)。   When the information indicating the mode is not set to “verification” (step S21: No route), the trace processing unit 101 stores the information indicating the mode stored in the mode storage area in the work data storage unit 11 as “trace”. Is set (step S23).

モードを表す情報が「トレース」に設定されていない場合(ステップS23:Noルート)、モードを表す情報は「通常」である。従って、ドライバ10は、パラメータに従い通常のディスクアクセスを実行する(ステップS25)。そして処理を終了する。   When the information indicating the mode is not set to “trace” (step S23: No route), the information indicating the mode is “normal”. Therefore, the driver 10 executes normal disk access according to the parameters (step S25). Then, the process ends.

一方、モードを表す情報が「トレース」に設定されている場合(ステップS23:Yesルート)、トレース処理部101は、アクセス先のアドレスが、範囲フラグが「ON」であるブロックに含まれるか判断する(ステップS27)。範囲フラグは、アクセステーブル(図8)に格納されるフラグである。   On the other hand, when the information indicating the mode is set to “trace” (step S23: Yes route), the trace processing unit 101 determines whether the access destination address is included in the block whose range flag is “ON”. (Step S27). The range flag is a flag stored in the access table (FIG. 8).

アクセス先のアドレスが、範囲フラグが「ON」であるブロックに含まれない場合(ステップS27:Noルート)、ドライバ10は、通常のディスクアクセスを実行する(ステップS25)。そして処理を終了する。   If the access destination address is not included in the block whose range flag is “ON” (step S27: No route), the driver 10 executes normal disk access (step S25). Then, the process ends.

一方、アクセス先のアドレスが、範囲フラグが「ON」であるブロックに含まれる場合(ステップS27:Yesルート)、トレース処理部101は、ワークデータ格納部11における終端アドレス格納領域に格納された終端アドレスと、アクセス先のアドレスとを比較する(ステップS29)。終端アドレス格納領域は、例えば図12に示すような態様で終端アドレスが格納される。終端アドレスとは、前回のディスクアクセスにおいてアクセスされる領域における最後の(すなわち、終端の)アドレスのことである。   On the other hand, when the access destination address is included in a block whose range flag is “ON” (step S27: Yes route), the trace processing unit 101 stores the end address stored in the end address storage area in the work data storage unit 11. The address is compared with the access destination address (step S29). In the end address storage area, for example, the end address is stored in a manner as shown in FIG. The end address is the last (that is, end) address in the area accessed in the previous disk access.

トレース処理部101は、アクセス先のアドレスは、終端アドレスの次のアドレスであるか判断する(ステップS31)。ステップS31の処理によって、前回のディスクアクセスと今回のディスクアクセスとが一連のディスクアクセスであるかが判断される。なお、初回の処理の場合には終端アドレス格納領域に終端アドレスが格納されていないので、処理はステップS31のNoルートに進む。   The trace processing unit 101 determines whether the access destination address is an address next to the end address (step S31). By the processing in step S31, it is determined whether the previous disk access and the current disk access are a series of disk accesses. In the case of the first process, since the end address is not stored in the end address storage area, the process proceeds to the No route in step S31.

アクセス先のアドレスは、終端アドレスの次のアドレスである場合(ステップS31:Yesルート)、ステップS37の処理に移行する。一方、アクセス先のアドレスは、終端アドレスの次のアドレスではない場合(ステップS31:Noルート)、トレース処理部101は、アクセス先のアドレスを含むブロックのブロック番号nを特定する(ステップS33)。   When the access destination address is the next address after the termination address (step S31: Yes route), the process proceeds to step S37. On the other hand, when the access destination address is not the address next to the end address (step S31: No route), the trace processing unit 101 identifies the block number n of the block including the access destination address (step S33).

トレース処理部101は、ブロック番号nのブロックについてのアクセス数AN(n)を1インクリメントする(ステップS35)。   The trace processing unit 101 increments the access number AN (n) for the block with the block number n by 1 (step S35).

トレース処理部101は、今回のディスクアクセスの終端アドレスをアクセス先のアドレス及びサイズから特定し、終端アドレス格納領域に格納(ここでは、上書き)する(ステップS37)。そして処理を終了する。   The trace processing unit 101 identifies the end address of the current disk access from the address and size of the access destination, and stores (overwrites here) in the end address storage area (step S37). Then, the process ends.

以上のような処理を実行すれば、アクセス先のアドレスが不連続であるポイントについてアクセス数を計数できるようになる。   By executing the processing as described above, the number of accesses can be counted for points at which the access destination addresses are discontinuous.

次に、図13乃至図16を用いて、トレース処理を終了する際にトレース処理部101が実行する処理について説明する。   Next, processing executed by the trace processing unit 101 when the trace processing is finished will be described with reference to FIGS.

まず、トレース処理部101は、アクセスフラグ設定処理を実行する(ステップS41)。アクセスフラグ設定処理については、図14及び図15を用いて説明する。   First, the trace processing unit 101 executes an access flag setting process (step S41). The access flag setting process will be described with reference to FIGS.

トレース処理部101は、ブロック番号を表す変数jをj=0と設定する(図14:ステップS51)。   The trace processing unit 101 sets a variable j representing the block number as j = 0 (FIG. 14: step S51).

トレース処理部101は、ブロック番号jのブロックについてのアクセス数AN(j)が閾値より大きいか判断する(ステップS53)。閾値は、予めユーザによって設定される。AN(j)が閾値以下である場合(ステップS53:Noルート)、ステップS57の処理に移行する。   The trace processing unit 101 determines whether the access number AN (j) for the block with the block number j is larger than the threshold (step S53). The threshold is set in advance by the user. If AN (j) is equal to or smaller than the threshold value (step S53: No route), the process proceeds to step S57.

AN(j)が閾値より大きい場合(ステップS53:Yesルート)、トレース処理部101は、アクセステーブルに格納されたアクセスフラグのうち、ブロック番号jのブロックについてのアクセスフラグを「ON」に設定する(ステップS55)。   When AN (j) is larger than the threshold (step S53: Yes route), the trace processing unit 101 sets the access flag for the block with the block number j among the access flags stored in the access table to “ON”. (Step S55).

トレース処理部101は、変数jを1インクリメントし(ステップS57)、jが最終ブロック番号より大きいか判断する(ステップS59)。ステップS59において使用される最終ブロック番号は、範囲テーブル(図7)に格納された最終番号である。   The trace processing unit 101 increments the variable j by 1 (step S57), and determines whether j is larger than the final block number (step S59). The final block number used in step S59 is the final number stored in the range table (FIG. 7).

jが最終ブロック番号以下である場合(ステップS59:Noルート)、次のjについて処理するため、ステップS53の処理に戻る。一方、jが最終ブロック番号より大きい場合(ステップS59:Yesルート)、トレース処理部101は、ワークデータ格納部11におけるアクセステーブルをディスク装置12にコピーする。そして呼び出し元の処理に戻る。アクセスフラグ設定処理により、アクセステーブルには、例えば図15に示すようなデータが格納されるようになる。図15に示すように、範囲フラグ及びアクセスフラグはON又はOFFに設定される。   If j is less than or equal to the last block number (step S59: No route), the process returns to step S53 to process the next j. On the other hand, when j is larger than the final block number (step S59: Yes route), the trace processing unit 101 copies the access table in the work data storage unit 11 to the disk device 12. Then, the process returns to the calling process. By the access flag setting process, data as shown in FIG. 15, for example, is stored in the access table. As shown in FIG. 15, the range flag and the access flag are set to ON or OFF.

図13の説明に戻り、トレース処理部101は、ワークデータ格納部11における終端アドレス格納領域における終端アドレスを削除する(ステップS43)。さらに、トレース処理部101は、ワークデータ格納部11におけるモード格納領域に格納された、モードを表す情報を「通常」に設定する(ステップS45)。そして処理を終了する。   Returning to the description of FIG. 13, the trace processing unit 101 deletes the end address in the end address storage area in the work data storage unit 11 (step S43). Further, the trace processing unit 101 sets the information indicating the mode stored in the mode storage area in the work data storage unit 11 to “normal” (step S45). Then, the process ends.

以上のように取得ポイントを決定すれば、メモリにロードされるデータの量を抑制することができるようになる。図16を用いて、メモリにロードされるデータの量の抑制について説明する。図16においては、対象プログラム15が「巨大なサイズのデータから条件を満たすレコードを抽出し、抽出したレコードの内容を解析し、解析の結果を出力する」という処理を実行するためのプログラムであるとする。本実施の形態によれば、巨大なサイズのデータ(ここでは、データ1601乃至1604)のうち、データ1601をメモリにロードし、データ1602乃至1604をメモリにロードしない。よって、メモリにデータをロードすることによって他の処理に影響が及ぶ(例えば、他の処理に遅延が発生する)ようなことが無くなる。   If the acquisition point is determined as described above, the amount of data loaded into the memory can be suppressed. The suppression of the amount of data loaded into the memory will be described with reference to FIG. In FIG. 16, the target program 15 is a program for executing a process of “extracting a record satisfying a condition from huge size data, analyzing the content of the extracted record, and outputting the analysis result”. And According to the present embodiment, of the huge size data (data 1601 to 1604 here), the data 1601 is loaded into the memory, and the data 1602 to 1604 is not loaded into the memory. Therefore, loading data into the memory does not affect other processes (for example, delays occur in other processes).

また、本実施の形態によれば、頻繁には発生しないディスクアクセスもメモリへのロードの対象から外される。さらに、対象プログラム15によるディスクアクセスとは関係が無いディスクアクセス(例えば、OSによる定期パトロール及びログの書き込みなど)も、メモリへのロードの対象から外される。これにより、対象となる領域をさらに絞り込むことができるようになる。   In addition, according to the present embodiment, disk access that does not occur frequently is also excluded from being loaded into the memory. Furthermore, disk accesses that are not related to disk access by the target program 15 (for example, regular patrol and log writing by the OS) are also excluded from being loaded into the memory. Thereby, it becomes possible to further narrow down the target area.

次に、図17及び図18を用いて、ロード部103が実行する処理について説明する。本処理は、テストプログラム14毎に実行される。   Next, processing executed by the load unit 103 will be described with reference to FIGS. 17 and 18. This process is executed for each test program 14.

まず、ロード部103は、ディスク装置12におけるアクセステーブル内のデータを読み込む(図17:ステップS71)。なお、ワークデータ格納部11にアクセステーブルが残っている場合には、ワークデータ格納部11におけるアクセステーブル内のデータを読み込むようにしてもよい。   First, the load unit 103 reads data in the access table in the disk device 12 (FIG. 17: step S71). When the access table remains in the work data storage unit 11, data in the access table in the work data storage unit 11 may be read.

ロード部103は、アクセステーブルに格納されたアクセスフラグが「ON」であるブロックの数bを計数する(ステップS73)。   The load unit 103 counts the number b of blocks whose access flag stored in the access table is “ON” (step S73).

ロード部103は、ブロック数b*ブロックサイズ分のメモリ領域をワークデータ格納部11内に確保する(ステップS75)。そして、ロード部103は、アクセスフラグが「ON」であるブロック内のデータを、ステップS75において確保したメモリ領域にコピーする(ステップS77)。   The load unit 103 secures a memory area corresponding to the number of blocks b * block size in the work data storage unit 11 (step S75). Then, the load unit 103 copies the data in the block whose access flag is “ON” to the memory area secured in step S75 (step S77).

ロード部103は、アクセスフラグが「ON」であるブロックのブロック番号と、そのブロック内のデータが格納されたメモリ上のアドレスとを対応付けて、ディスク装置12におけるマップテーブルに格納する(ステップS79)。そして処理を終了する。   The load unit 103 associates the block number of the block whose access flag is “ON” with the address on the memory where the data in the block is stored, and stores it in the map table in the disk device 12 (step S79). ). Then, the process ends.

以上のような処理を実行することで生成されるマップテーブルの一例を図18の下段に示す。図18の下段に示した例では、ブロック番号と、メモリ領域のアドレスとが対応付けて格納される。図18の上段は確保されたメモリ領域を表しており、ここでは、1ブロックのサイズが0x2000(=8192)(バイト)であるので、0x2000*b(バイト)のメモリ領域が確保されている。   An example of a map table generated by executing the above processing is shown in the lower part of FIG. In the example shown in the lower part of FIG. 18, the block number and the address of the memory area are stored in association with each other. The upper part of FIG. 18 shows the secured memory area. Here, since the size of one block is 0x2000 (= 8192) (bytes), a memory area of 0x2000 * b (bytes) is secured.

次に、図19を用いて、検証処理を開始する際に検証部105が実行する処理について説明する。本処理は、テストプログラム14毎に行われる。   Next, a process executed by the verification unit 105 when starting the verification process will be described with reference to FIG. This process is performed for each test program 14.

まず、検証部105は、ワークデータ格納部11におけるモード格納領域に格納された、モードを表す情報を「検証」に設定する(図19:ステップS81)。   First, the verification unit 105 sets the information indicating the mode stored in the mode storage area in the work data storage unit 11 to “verification” (FIG. 19: step S81).

検証部105は、マップテーブル内のデータを読み込む(ステップS83)。そして、検証部105は、テストの番号を表す変数TESTNUMをTESTNUM=0と設定する(ステップS85)。そして処理を終了する。   The verification unit 105 reads data in the map table (step S83). Then, the verification unit 105 sets the variable TESTNUM representing the test number as TESTNUM = 0 (step S85). Then, the process ends.

以上のような処理を実行すれば、テストプログラム14について検証処理を開始できるようになる。   If the above processing is executed, verification processing can be started for the test program 14.

次に、図20を用いて、各テストを開始する際に検証部105が実行する処理について説明する。本処理は、テスト毎に行われる。   Next, processing executed by the verification unit 105 when starting each test will be described with reference to FIG. This process is performed for each test.

まず、検証部105は、テストの番号を表す変数TESTNUMを1インクリメントする(図20:ステップS91)。   First, the verification unit 105 increments a variable TESTNUM that represents a test number by 1 (FIG. 20: step S91).

検証部105は、取得ポイントの番号を表す変数COUNTをCOUNT=0と設定する(ステップS93)。そして処理を終了する。   The verification unit 105 sets the variable COUNT representing the acquisition point number as COUNT = 0 (step S93). Then, the process ends.

以上のような処理を実行すれば、検証部105が各テストについて検証処理を開始できるようになる。   If the process as described above is executed, the verification unit 105 can start the verification process for each test.

次に、図21乃至図24を用いて、検証部105が実行する検証処理について説明する。本処理は、ディスクアクセスが行われる度に実行される。なお、ディスクアクセスのパラメータは、アクセス先のアドレス(ここでは、アクセスされる領域における最も若いアドレス)及びアクセスされるデータのサイズである。   Next, verification processing executed by the verification unit 105 will be described with reference to FIGS. This process is executed every time a disk access is performed. The disk access parameters are the access destination address (here, the youngest address in the accessed area) and the size of the accessed data.

まず、トレース処理部101に呼び出された検証部105は、アクセス先のアドレスと、アクセスされるデータのサイズとに基づき、ディスク装置12内のアクセスされる領域に含まれるブロックのうち最初のブロックを特定する(図21:ステップS101)。   First, the verification unit 105 called by the trace processing unit 101 selects the first block among the blocks included in the accessed area in the disk device 12 based on the access destination address and the size of the accessed data. It identifies (FIG. 21: step S101).

検証部105は、ディスク装置12におけるアクセステーブルに格納された範囲フラグのうち、ステップS101において特定されたブロックに対応する範囲フラグは「ON」であるか判断する(ステップS103)。   The verification unit 105 determines whether the range flag corresponding to the block identified in step S101 among the range flags stored in the access table in the disk device 12 is “ON” (step S103).

範囲フラグが「ON」ではない場合(ステップS103:Noルート)、ドライバ10は、パラメータに従い、通常のディスクアクセスを実行する(ステップS105)。そして処理は端子Bを介して図23の処理に移行し終了する。一方、範囲フラグが「ON」である場合(ステップS103:Yesルート)、検証部105は、アクセス先のアドレスを、ワークデータ格納部11におけるアドレス格納領域に追加する(ステップS107)。アドレス格納領域は、アクセス先のアドレスが蓄積される領域(例えばカーネル空間の領域)である。   If the range flag is not “ON” (step S103: No route), the driver 10 executes normal disk access according to the parameters (step S105). Then, the processing shifts to the processing in FIG. On the other hand, when the range flag is “ON” (step S103: Yes route), the verification unit 105 adds the access destination address to the address storage area in the work data storage unit 11 (step S107). The address storage area is an area (for example, an area in the kernel space) where an access destination address is accumulated.

検証部105は、ステップS101において特定されたブロックに対応するアクセスフラグが「ON」であるか判断する(ステップS109)。アクセスフラグは「ON」ではない場合(ステップS109:Noルート)、今回のディスクアクセスは取得ポイントではない。従って、ドライバ10は、パラメータに従い、通常のディスクアクセスを実行する(ステップS105)。そして処理は端子Bを介して図23の処理に移行し終了する。   The verification unit 105 determines whether the access flag corresponding to the block identified in step S101 is “ON” (step S109). If the access flag is not “ON” (step S109: No route), the current disk access is not an acquisition point. Therefore, the driver 10 executes normal disk access according to the parameters (step S105). Then, the processing shifts to the processing in FIG.

一方、ステップS101において特定されたブロックに対応するアクセスフラグが「ON」である場合(ステップS109:Yesルート)、検証部105は、取得ポイントの番号を表す変数COUNTを1インクリメントする(ステップS111)。   On the other hand, when the access flag corresponding to the block identified in step S101 is “ON” (step S109: Yes route), the verification unit 105 increments the variable COUNT representing the number of the acquisition point by 1 (step S111). .

検証部105は、アクセス先のアドレスとサイズとから、ディスクアクセスの分割数DNを算出する(ステップS113)。例えば、1回のディスクアクセスでアクセス可能なデータの量でサイズを割った値に1を加えることによって、ディスクアクセスの分割数DNが算出される。1回のディスクアクセスでアクセス可能なデータの量の算出にアクセス先のアドレスが必要である場合には、アクセス先のアドレスも使用される。   The verification unit 105 calculates the disk access division number DN from the address and size of the access destination (step S113). For example, the disk access division number DN is calculated by adding 1 to the value obtained by dividing the size by the amount of data accessible by one disk access. When an access destination address is required for calculating the amount of data accessible by one disk access, the access destination address is also used.

検証部105は、分割されたディスクアクセスの番号を表す変数iをi=1と設定する(ステップS115)。そして、検証部105は、アクセス先のアドレスに対応するメモリアドレスをマップテーブルから特定し、特定されたメモリアドレスが示すメモリ領域にアクセスを行う(ステップS117)。   The verification unit 105 sets a variable i representing the divided disk access number as i = 1 (step S115). Then, the verification unit 105 specifies a memory address corresponding to the access destination address from the map table, and accesses the memory area indicated by the specified memory address (step S117).

検証部105は、ディスク装置12に対して、ダミーのアクセス要求を発行する(ステップS119)。そして、検証部105は、スリープ状態に移行する(ステップS121)。そして処理は端子Cを介して図23のステップS123に移行する。ステップS119及びS121の処理について、図22を用いて説明する。   The verification unit 105 issues a dummy access request to the disk device 12 (step S119). And the verification part 105 transfers to a sleep state (step S121). Then, the process proceeds to step S123 in FIG. The processes in steps S119 and S121 will be described with reference to FIG.

ディスク装置12にアクセスする代わりにワークデータ格納部11にアクセスすると、通常はディスク装置12へのアクセスが発生した後に行われる、割り込みハンドラによる通知が行われなくなる。そのため、ドライバ10が割り込みハンドラからの通知の延長上で実行する処理を実行できなくなる。そこで本実施の形態においては、図22に示すような方法によって、割り込みハンドラからの通知が行われるようにする。図22に示すように、ドライバ10の検証部105が対象プログラム15からのディスクアクセスを検出すると、アクセス先のアドレスを調べることにより、取得ポイントであるか判断する。取得ポイントである場合、検証部105は、ディスク装置12に対してダミーのアクセス要求を発行し、スリープ状態に移行する。ダミーのアクセス要求は実際のアクセス要求とは異なり、データの読み書きは行われないが、カーネル13がディスクアクセスが発生したことを検出する。ディスクアクセスが発生したことをカーネル13から通知された割り込みハンドラは、ドライバ10に対して通知を行うことにより、検証部105のスリープ状態を解除する。   When the work data storage unit 11 is accessed instead of accessing the disk device 12, the notification by the interrupt handler, which is normally performed after the access to the disk device 12 is not generated, is not performed. For this reason, the driver 10 cannot execute a process executed on extension of the notification from the interrupt handler. Therefore, in this embodiment, notification from the interrupt handler is performed by the method shown in FIG. As illustrated in FIG. 22, when the verification unit 105 of the driver 10 detects a disk access from the target program 15, the access point address is checked to determine whether it is an acquisition point. If it is an acquisition point, the verification unit 105 issues a dummy access request to the disk device 12 and shifts to the sleep state. Unlike the actual access request, the dummy access request does not read or write data, but the kernel 13 detects that a disk access has occurred. The interrupt handler notified from the kernel 13 that the disk access has occurred releases the sleep state of the verification unit 105 by notifying the driver 10.

図23の説明に移行し、検証部105は、割り込みハンドラからの通知に従いスリープ状態を解除すると(ステップS123)、i=1が成立するか判断する(ステップS125)。i=1が成立しない場合(ステップS125:Noルート)、ドライバ10は、パラメータに従い、通常のディスクアクセスを実行する(ステップS127)。そしてステップS135の処理に移行する。   Shifting to the explanation of FIG. 23, the verification unit 105 cancels the sleep state according to the notification from the interrupt handler (step S123), and determines whether i = 1 is established (step S125). If i = 1 does not hold (step S125: No route), the driver 10 executes normal disk access according to the parameters (step S127). Then, the process proceeds to step S135.

一方、i=1が成立する場合(ステップS125:Yesルート)、検証部105は、対象プログラム15のプロセスのプロセスID(IDentifier)をOSのカーネル13から取得する(ステップS129)。また、検証部105は、ステップS129において取得したプロセスIDに対応する実行時間を、OSのカーネル13から取得する(ステップS131)。なお、実行時間は、プロセスの実行開始時点からステップS131の処理時点までの間の時間であるが、このような情報をカーネル13から取得できない場合もある。そのような場合には、プロセスの実行開始時点における時刻の情報をステップS93の処理の後に保存し、ステップS131においてカーネル13から取得した時刻との差を求めてもよい。   On the other hand, if i = 1 holds (step S125: Yes route), the verification unit 105 acquires the process ID (IDentifier) of the process of the target program 15 from the OS kernel 13 (step S129). Further, the verification unit 105 acquires the execution time corresponding to the process ID acquired in step S129 from the OS kernel 13 (step S131). The execution time is the time from the process execution start time to the processing time of step S131, but such information may not be acquired from the kernel 13. In such a case, the time information at the time of starting execution of the process may be stored after the process of step S93, and the difference from the time acquired from the kernel 13 in step S131 may be obtained.

検証部105は、COUNT、アドレス格納領域に格納された最後のアドレス、及び実行時間を、ワークデータ格納部11における第1結果テーブルに追加する(ステップS133)。但し、該当するプロセスIDについて第1結果テーブルが存在しない場合(すなわち、COUNT=1である場合)には、ステップS133において、テストプログラムの識別子、プロセスID、TESTNUM、COUNT、アドレス、及び実行時間を含む第1結果テーブルが生成される。   The verification unit 105 adds COUNT, the last address stored in the address storage area, and the execution time to the first result table in the work data storage unit 11 (step S133). However, when the first result table does not exist for the corresponding process ID (that is, when COUNT = 1), in step S133, the test program identifier, process ID, TESTNUM, COUNT, address, and execution time are set. A first result table containing is generated.

図24に、第1結果テーブルに格納されるデータの一例を示す。図24の例では、テストプログラム名(図24においては、テストプログラムA)と、プロセスID(図24においては、1001)と、TESTNUM(図24においては、No.1)と、COUNT(図24においては、「1」、「2」及び「3」)と、アクセス先のアドレスと、実行時間とが格納される。このように、第1結果テーブルはプロセスID毎に生成される。   FIG. 24 shows an example of data stored in the first result table. In the example of FIG. 24, the test program name (test program A in FIG. 24), process ID (1001 in FIG. 24), TESTNUM (No. 1 in FIG. 24), and COUNT (FIG. 24). , “1”, “2” and “3”), the address of the access destination, and the execution time are stored. Thus, the first result table is generated for each process ID.

図23の説明に戻り、検証部105は、iを1インクリメントし(ステップS135)、iがDNより大きいか判断する(ステップS137)。iがDN以下である場合(ステップS137:Noルート)、ステップS125の処理に戻る。一方、iがDNより大きい場合(ステップS137:Yesルート)、処理は終了する。   Returning to the description of FIG. 23, the verification unit 105 increments i by 1 (step S135), and determines whether i is greater than DN (step S137). If i is less than or equal to DN (step S137: No route), the process returns to step S125. On the other hand, when i is larger than DN (step S137: Yes route), the process ends.

以上のような処理を実行すれば、各テストについて、各取得ポイントに到達するまでに要する時間と、アクセス先のアドレスを要素とするアドレス列とを記録できるようになる。本実施の形態によれば、ソースコードに改変を加えなくてもよいので、ソースコードが公開されていないような場合にも対処可能である。   By executing the processing as described above, for each test, it is possible to record the time required to reach each acquisition point and the address string having the access destination address as an element. According to the present embodiment, since it is not necessary to modify the source code, it is possible to cope with a case where the source code is not disclosed.

次に、図25を用いて、各テストを終了する際に検証部105が実行する処理について説明する。本処理は、テスト毎に行われる。   Next, processing executed by the verification unit 105 when each test is completed will be described with reference to FIG. This process is performed for each test.

まず、検証部105は、ワークデータ格納部11におけるアドレス格納領域に格納されたアドレスをディスク装置12に書き込む(図25:ステップS141)。また、検証部105は、ワークデータ格納部11における第1結果テーブルをディスク装置12に書き込む(ステップS143)。   First, the verification unit 105 writes the address stored in the address storage area in the work data storage unit 11 to the disk device 12 (FIG. 25: step S141). Further, the verification unit 105 writes the first result table in the work data storage unit 11 into the disk device 12 (step S143).

そして、検証部105は、テストプログラム名、プロセスID、TESTNUM、及びテストの終了までに要する時間(すなわち、対象プログラム15の実行が終了するまでに要する時間。以下、トータルの実行時間と呼ぶ。)を、ディスク装置12に書き込む(ステップS145)。そして処理を終了する。   The verification unit 105 then tests the test program name, process ID, TESTNUM, and the time required to complete the test (ie, the time required to complete the execution of the target program 15; hereinafter referred to as the total execution time). Is written in the disk device 12 (step S145). Then, the process ends.

以上のような処理を実行すれば、ディスク装置12に格納したデータを後の処理に利用できるようになる。   By executing the processing as described above, the data stored in the disk device 12 can be used for subsequent processing.

次に、図26を用いて、検証処理を終了する際に検証部105が実行する処理について説明する。本処理は、テストプログラム14毎に行われる。   Next, a process executed by the verification unit 105 when the verification process is completed will be described with reference to FIG. This process is performed for each test program 14.

まず、検証部105は、ワークデータ格納部11にロードされたデータをディスク装置12に書き戻し(図26:ステップS151)、データが格納されていた領域を解放する。   First, the verification unit 105 writes back the data loaded in the work data storage unit 11 to the disk device 12 (FIG. 26: step S151), and releases the area in which the data was stored.

検証部105は、ワークデータ格納部11におけるモード格納領域に格納された、モードを表す情報を「通常」に設定する(ステップS153)。そして処理を終了する。   The verification unit 105 sets the information indicating the mode stored in the mode storage area in the work data storage unit 11 to “normal” (step S153). Then, the process ends.

以上のような処理を実行すれば、テストプログラム14について検証処理を終了できるようになる。   If the above process is executed, the verification process for the test program 14 can be completed.

次に、図27乃至図29を用いて、検証処理の結果を集約する処理について説明する。   Next, a process for collecting the results of the verification process will be described with reference to FIGS.

まず、検証部105は、情報処理装置1において現在存在するプロセスのプロセスIDをOSのカーネル13から取得し、プロセスIDリストを生成する(図27:ステップS161)。プロセスIDリストに含まれるプロセスIDは、常駐プロセスのプロセスIDと、非常駐プロセスのプロセスIDとを含む。ステップS161の実行時点においては対象プログラム15を実行していないので、対象プログラム15のプロセスIDはプロセスIDリストには含まれない。   First, the verification unit 105 acquires the process ID of a process that currently exists in the information processing apparatus 1 from the OS kernel 13 and generates a process ID list (FIG. 27: step S161). The process ID included in the process ID list includes a process ID of a resident process and a process ID of a non-resident process. Since the target program 15 is not executed at the time of execution of step S161, the process ID of the target program 15 is not included in the process ID list.

検証部105は、ディスク装置12における第1結果テーブル(すなわち、プロセスID毎に生成された第1結果テーブル)から、プロセスIDを抽出する。そして、第1結果テーブルから抽出されたプロセスIDのうち、プロセスIDリストに含まれないプロセスIDを特定する(ステップS163)。ステップS163において抽出されたプロセスIDは、対象プログラム15のプロセスIDを含む。従って、ステップS163において特定されるプロセスIDは、対象プログラム15のプロセスIDを含む。また、ステップS163において特定されるプロセスIDは、テストプログラム14の実行中には常駐していたがステップS161の処理時点においては常駐していないプロセスのプロセスID等をも含む。   The verification unit 105 extracts the process ID from the first result table (that is, the first result table generated for each process ID) in the disk device 12. Then, among the process IDs extracted from the first result table, process IDs not included in the process ID list are specified (step S163). The process ID extracted in step S163 includes the process ID of the target program 15. Therefore, the process ID specified in step S163 includes the process ID of the target program 15. The process ID specified in step S163 includes the process ID of a process that was resident during execution of the test program 14 but not resident at the time of processing in step S161.

検証部105は、特定されたプロセスIDについての第1結果テーブル内の結果を、ディスク装置12から読み出す(ステップS165)。   The verification unit 105 reads the result in the first result table for the identified process ID from the disk device 12 (step S165).

検証部105は、ステップS165において読み出した結果を、アドレス列の少なくとも一部が同じであるものが同じグループになるようにグループ化を実行する(ステップS167)。図28Aに、グループ化の一例を示す。図28Aの例においては、プロセスIDが「211」であるプロセスについての結果2801と、プロセスIDが「302」であるプロセスについての結果2802とが示されている。結果2801におけるアドレス列(0x01008800,0x0156ab10,0x0100A800)と、結果2802におけるアドレス列(0x01008800,0x0156ab10,0x0100A800)とは一致するので、両者は同じグループになるようにグループ化が行われる。   The verification unit 105 performs grouping on the result read in step S165 so that those having at least a part of the address string are in the same group (step S167). FIG. 28A shows an example of grouping. In the example of FIG. 28A, a result 2801 for a process whose process ID is “211” and a result 2802 for a process whose process ID is “302” are shown. Since the address string (0x01008800,0x0156ab10,0x0100A800) in the result 2801 and the address string (0x01008800,0x0156ab10,0x0100A800) in the result 2802 match, grouping is performed so that they are in the same group.

検証部105は、グループの番号を表す変数であるiをi=1と設定する(ステップS169)。そして、検証部105は、グループiに属する結果を集約し、グループiに属するプロセスIDをプロセスGID(Group IDentifier)で置換し、集約及び置換後の結果を第2結果テーブルとしてディスク装置12に格納する(ステップS171)。   The verification unit 105 sets i = 1 as a variable representing the group number (step S169). Then, the verification unit 105 aggregates the results belonging to the group i, replaces the process ID belonging to the group i with a process GID (Group IDentifier), and stores the result after aggregation and replacement in the disk device 12 as a second result table. (Step S171).

図28Bに、第2結果テーブルに格納されるデータの一例を示す。図28Bの例では、テストプログラムの識別子と、プロセスGIDと、取得ポイントを表す番号(すなわちCOUNT)と、アクセス先のアドレスと、実行時間とが格納される。なお、図28BにおいてはNo.1のアドレス列(0x01008800,0x0156ab10,0x0100A800)とNo.2のアドレス列(0x01008800,0x0156ab10,0x0100A800)とが完全に一致するが、ステップS171の処理においては、アドレス列の少なくとも一部が一致する場合であっても同じ第2結果テーブルに結果が格納される。   FIG. 28B shows an example of data stored in the second result table. In the example of FIG. 28B, the identifier of the test program, the process GID, the number indicating the acquisition point (that is, COUNT), the access destination address, and the execution time are stored. In FIG. 1 address string (0x01008800,0x0156ab10,0x0100A800) and No.1. 2 address strings (0x01008800, 0x0156ab10, 0x0100A800) completely match, but in the process of step S171, the result is stored in the same second result table even if at least part of the address strings match. The

検証部105は、iを1インクリメントし(ステップS173)、iがグループ数より大きいか判断する(ステップS175)。グループ数とは、ステップS167におけるグループ化によって生成されたグループの数である。iがグループ数以下である場合(ステップS175:Noルート)、次のグループについて処理するため、ステップS171の処理に戻る。   The verification unit 105 increments i by 1 (step S173), and determines whether i is larger than the number of groups (step S175). The number of groups is the number of groups generated by grouping in step S167. If i is equal to or less than the number of groups (step S175: No route), the process returns to step S171 to process the next group.

一方、iがグループ数より大きい場合(ステップS175:Yesルート)、検証部105は、ステップS145においてディスク装置12に格納されたトータルの実行時間を集約し(ステップS177)、集約結果をディスク装置12に格納する。そして処理を終了する。なお、ステップS177における集約は、ステップS167におけるグループ化の結果に基づいて行われる。   On the other hand, if i is larger than the number of groups (step S175: Yes route), the verification unit 105 aggregates the total execution time stored in the disk device 12 in step S145 (step S177), and displays the aggregation result as the disk device 12. To store. Then, the process ends. The aggregation in step S177 is performed based on the grouping result in step S167.

図29に、トータルの実行時間の集約例を示す。図29の例では、テストプログラムの識別子と、プロセスGIDと、各テストついてのトータルの実行時間とを含むデータを生成することで集約が行われる。   FIG. 29 shows an example of total execution time aggregation. In the example of FIG. 29, aggregation is performed by generating data including an identifier of a test program, a process GID, and a total execution time for each test.

対象プログラム15のプロセスは、テストプログラム14の実行によってN回生成されるが、各回のプロセスIDは異なっているため、プロセスIDを使用して結果を集約することは困難である。そこで、上で述べたようにアドレス列を使用すれば、対象プログラム15についての結果を集約することができるようになる。   The process of the target program 15 is generated N times by execution of the test program 14, but the process ID of each time is different, so it is difficult to aggregate the results using the process ID. Therefore, if the address string is used as described above, the results for the target program 15 can be aggregated.

次に、図30乃至図35を用いて、集約された結果を整形する処理について説明する。   Next, processing for shaping the aggregated result will be described with reference to FIGS. 30 to 35.

まず、検証部105は、ディスク装置12における第2結果テーブルに含まれるプロセスGIDの数Mを特定する(図30:ステップS181)。上で述べたように、第2結果テーブルはプロセスGID毎に生成されるので、Mは第2結果テーブルの数と同じである。   First, the verification unit 105 identifies the number M of process GIDs included in the second result table in the disk device 12 (FIG. 30: step S181). As described above, since the second result table is generated for each process GID, M is the same as the number of the second result table.

検証部105は、プロセスGIDをカウントするための変数iをi=1と設定する(ステップS183)。そして、検証部105は、ディスク装置12における結果テーブルに含まれるプロセスGIDのうち未処理のプロセスGIDを1つ特定し、特定されたプロセスGIDについての結果を、そのプロセスGIDに対応する第2結果テーブルから取得する(ステップS185)。   The verification unit 105 sets a variable i for counting the process GID as i = 1 (step S183). Then, the verification unit 105 identifies one unprocessed process GID among the process GIDs included in the result table in the disk device 12, and the result of the identified process GID is the second result corresponding to the process GID. Obtained from the table (step S185).

検証部105は、同じアドレスについての実行時間が同じカラムになるように、ステップS185において取得した結果の形式を変更する(ステップS187)。そして、検証部105は、形式変更後の結果を第3結果テーブルとしてディスク装置12に格納する(ステップS189)。   The verification unit 105 changes the format of the result acquired in step S185 so that the execution time for the same address is in the same column (step S187). Then, the verification unit 105 stores the result after the format change in the disk device 12 as a third result table (step S189).

図31に、第3結果テーブルに格納されるデータの一例を示す。図31の例では、テストプログラムの識別子と、プロセスGIDと、取得ポイントを表す番号と、アクセス先のアドレスと、テスト番号と、取得ポイントにおいて取得した実行時間とが格納される。図31の例では、アドレス列(0x01008800,0x0156ab10,0x0100A800,0x0156ab20,0x0100C800,0x0156ab30,0x0100E800,0x016100a0,0x015a0000)とアドレス列(0x01008800,0x016100a0,0x015a0000)が出現している。   FIG. 31 shows an example of data stored in the third result table. In the example of FIG. 31, the identifier of the test program, the process GID, the number indicating the acquisition point, the address of the access destination, the test number, and the execution time acquired at the acquisition point are stored. In the example of FIG. 31, an address string (0x01008800,0x0156ab10,0x0100A800,0x0156ab20,0x0100C800,0x0156ab30,0x0100E800,0x016100a0,0x015a0000) and an address string (0x01008800,0x016100a0,0x015a0000) appear.

図30の説明に戻り、検証部105は、iを1インクリメントし(ステップS191)、iがMより大きいか判断する(ステップS193)。iがM以下である場合(ステップS193:Noルート)、次のiについて処理するため、ステップS185の処理に戻る。一方、iがMより大きい場合(ステップS193:Yesルート)、処理は終了する。   Returning to the description of FIG. 30, the verification unit 105 increments i by 1 (step S191), and determines whether i is greater than M (step S193). If i is equal to or less than M (step S193: No route), the process returns to step S185 to process the next i. On the other hand, when i is larger than M (step S193: Yes route), the process ends.

以上のような処理を実行すれば、検証処理の結果がユーザにとってより把握しやすいような形式に変更されるようになる。なお、ステップS193が終了した後に、第3結果テーブルの内容を表示装置等に出力してもよい。   If the above processing is executed, the verification processing result is changed to a format that is easier for the user to grasp. Note that the contents of the third result table may be output to a display device or the like after step S193 is completed.

なお、背景技術の欄で述べたように、同じ対象プログラム15を実行したとしても、情報処理装置1における資源の状態等の違いによってプログラムの実行ルートが変わり、結果としてアドレス列も変わることがある。   As described in the background section, even if the same target program 15 is executed, the execution route of the program may change depending on the resource state or the like in the information processing apparatus 1, and the address string may change as a result. .

図32乃至図35を用いて、アドレス列のばらつきについて説明する。図32に、使用可能なメモリの量が少ない場合におけるディスクアクセスの一例を示す。図32の例においては、使用可能なメモリの量が少ないため、ディスク装置12におけるデータ321は、3回に分けてメモリに読み出される。それに伴い、メモリ上のデータの一部を廃棄するため、廃棄したことを記録するためのログ322に対してもアクセスが行われる。また、管理ファイル323と、終了したことを記録するためのログ324とにもアクセスが行われる。   The variation of the address string will be described with reference to FIGS. FIG. 32 shows an example of disk access when the amount of usable memory is small. In the example of FIG. 32, since the amount of usable memory is small, the data 321 in the disk device 12 is read into the memory in three steps. Accordingly, a part of the data on the memory is discarded, so that the log 322 for recording the discard is also accessed. Further, the management file 323 and the log 324 for recording the completion are also accessed.

図33に、使用可能なメモリの量が多い場合におけるディスクアクセスの一例を示す。図33の例においては、使用可能なメモリの量が多いため、ディスク装置12におけるデータ321は1回でメモリに読み出される。そのため、メモリ上のデータの一部を廃棄しないため、廃棄したことを記録するためのログ322に対してはアクセスが行われない。そして、図32の例と同様、管理ファイル323と、終了したことを記録するためのログ324とにもアクセスが行われる。   FIG. 33 shows an example of disk access when the amount of usable memory is large. In the example of FIG. 33, since the amount of usable memory is large, the data 321 in the disk device 12 is read into the memory once. Therefore, since a part of the data on the memory is not discarded, access to the log 322 for recording the discarding is not performed. Similarly to the example of FIG. 32, the management file 323 and the log 324 for recording the completion are also accessed.

使用可能なメモリの量が少ない場合にトレース処理を実行し、取得ポイントを決定したとすると、図30に示した処理によって、例えば図34に示すようなデータが生成される。図34に示した例では、7つの取得ポイントについて実行時間が示されている。テスト1及びテスト2は、使用可能なメモリの量が少ない状態において行われたテストであるため、7つの取得ポイントの全てについて実行時間が取得されている。これに対し、テスト3は、使用可能なメモリの量が多い状態において行われたテストであるため、データ321には1回しかアクセスされず且つログ322にはアクセスされないため、3つの取得ポイントについてのみ実行時間が取得されている。   If the trace process is executed when the amount of usable memory is small and the acquisition point is determined, the data shown in FIG. 34 is generated by the process shown in FIG. In the example shown in FIG. 34, execution times are shown for seven acquisition points. Since Test 1 and Test 2 are tests performed in a state where the amount of usable memory is small, execution times are acquired for all seven acquisition points. On the other hand, since the test 3 is performed in a state where the amount of usable memory is large, the data 321 is accessed only once and the log 322 is not accessed. Only the execution time has been acquired.

これに対し、使用可能なメモリの量が多い場合にトレース処理を実行し、取得ポイントを決定したとすると、図30に示した処理によって、例えば図35に示すようなデータが生成される。図35に示した例では、使用可能なメモリの量が少ない場合及び多い場合のいずれにおいても、3つの取得ポイントについて実行時間が示されている。テスト1及びテスト2においては、ログ322にアクセスする処理が行われるため、テスト1及びテスト2の実行時間はテスト3の実行時間より長い。この原因は、アドレス1についての取得ポイントからアドレス6についての取得ポイントまでの間に有ることがわかる。   On the other hand, if the trace processing is executed when the amount of usable memory is large and the acquisition point is determined, the data shown in FIG. 35 is generated by the processing shown in FIG. In the example shown in FIG. 35, the execution time is shown for three acquisition points regardless of whether the amount of usable memory is small or large. In Test 1 and Test 2, the process of accessing the log 322 is performed, so the execution time of Test 1 and Test 2 is longer than the execution time of Test 3. It can be seen that this cause is between the acquisition point for address 1 and the acquisition point for address 6.

次に、図36を用いて、実行ルートの安定性を評価する処理について説明する。ここでは、対象プログラム15についての第3結果テーブルに基づき、対象プログラム15についての実行ルートの安定性を評価する処理について説明する。   Next, processing for evaluating the stability of the execution route will be described with reference to FIG. Here, processing for evaluating the stability of the execution route for the target program 15 based on the third result table for the target program 15 will be described.

まず、検証部105は、ディスク装置12における第3結果テーブルからデータを読み出し(図36:ステップS201)、アドレス列に基づき、N回のテストについて第1のグループ分けを実行する(ステップS203)。第1のグループ分けにおいては、例えば、アドレス列が全く同じであるテストが同じグループに属するようにグループ分けが行われる。アドレス列が全く同じであるテストは、実行ルートが同じである可能性が高いと考えられるからである。   First, the verification unit 105 reads data from the third result table in the disk device 12 (FIG. 36: step S201), and executes the first grouping for N tests based on the address string (step S203). In the first grouping, for example, grouping is performed so that tests having the same address string belong to the same group. This is because tests with the same address string are likely to have the same execution route.

検証部105は、ステップS203におけるグループ分けの結果が所定の条件を満たす(すなわち、アドレス列のタイプが所定数に収斂する)か判断する(ステップS205)。ステップS205においては、例えば、グループに属するテストの数がテスト総数に占める割合が所定値以上である条件が各グループについて成立するか判断される。また、所定の条件は、グループの数が所定数(例えば2)以下であるという条件であってもよい。また、所定の条件は、或る1つ又は2つのグループに属するテストの数がテスト総数に占める割合が所定値以上であるという条件であってもよい。ステップS203におけるグループ分けの結果が所定の条件を満たさない場合(ステップS205:Noルート)、ステップS207の処理に移行する。   The verification unit 105 determines whether the grouping result in step S203 satisfies a predetermined condition (that is, the address string type converges to a predetermined number) (step S205). In step S205, for example, it is determined whether the condition that the ratio of the number of tests belonging to the group to the total number of tests is a predetermined value or more is satisfied for each group. The predetermined condition may be a condition that the number of groups is a predetermined number (for example, 2) or less. Further, the predetermined condition may be a condition that a ratio of the number of tests belonging to one or two groups to the total number of tests is equal to or greater than a predetermined value. When the grouping result in step S203 does not satisfy the predetermined condition (step S205: No route), the process proceeds to step S207.

一方、ステップS203におけるグループ分けの結果が所定の条件を満たす場合(ステップS205:Yesルート)、検証部105は、ステップS203において行われたグループ分けの結果に対して、トータルの実行時間に基づき第2のグループ分けを実行する(ステップS209)。ステップS209においては、ステップS177における集約の結果が利用される。第2のグループ分けにおいては、例えば、トータルの実行時間が同じである(ここでは、実行時間の差が所定時間より短い)テストが同じグループに属するようにグループ分けが行われる。トータルの実行時間が同じであるテストは、実行ルートが同じである可能性が高いと考えられるからである。   On the other hand, when the result of grouping in step S203 satisfies a predetermined condition (step S205: Yes route), the verification unit 105 determines the result of grouping performed in step S203 based on the total execution time. 2 grouping is executed (step S209). In step S209, the result of aggregation in step S177 is used. In the second grouping, for example, the grouping is performed so that tests having the same total execution time (here, the difference in execution time is shorter than a predetermined time) belong to the same group. This is because tests with the same total execution time are likely to have the same execution route.

検証部105は、ステップS209におけるグループ分けの結果が所定の条件を満たすか判断する(ステップS211)。ステップS209におけるグループ分けの結果が所定の条件を満たさない場合(ステップS211:Noルート)、ステップS207の処理に移行する。   The verification unit 105 determines whether the grouping result in step S209 satisfies a predetermined condition (step S211). When the grouping result in step S209 does not satisfy the predetermined condition (step S211: No route), the process proceeds to step S207.

一方、ステップS209におけるグループ分けの結果が所定の条件を満たす場合(ステップS211:Yesルート)、検証部105は、ステップS209において行われたグループ分けの結果に対して、各測定ポイントまでの実行時間に基づき第3のグループ分けを実行する(ステップS213)。ステップS213においては、各測定ポイントまでの実行時間が同じである(ここでは、実行時間の差が所定時間より短い)テストが同じグループに属するようにグループ分けが行われる。各測定ポイントまでの実行時間が同じであるテストは、実行ルートが同じである可能性が高いと考えられるからである。   On the other hand, when the grouping result in step S209 satisfies a predetermined condition (step S211: Yes route), the verification unit 105 executes the execution time to each measurement point with respect to the grouping result performed in step S209. Based on the above, the third grouping is executed (step S213). In step S213, grouping is performed so that tests having the same execution time to each measurement point (here, the difference in execution time is shorter than a predetermined time) belong to the same group. This is because a test with the same execution time to each measurement point is likely to have the same execution route.

検証部105は、ステップS213におけるグループ分けの結果が所定の条件を満たすか判断する(ステップS215)。ステップS213におけるグループ分けの結果が所定の条件を満たさない場合(ステップS215:Noルート)、検証部105は、対象プログラム15の実行ルートが安定していないことを示すデータを生成する(ステップS207)。   The verification unit 105 determines whether the grouping result in step S213 satisfies a predetermined condition (step S215). When the grouping result in step S213 does not satisfy the predetermined condition (step S215: No route), the verification unit 105 generates data indicating that the execution route of the target program 15 is not stable (step S207). .

一方、ステップS213におけるグループ分けの結果が所定の条件を満たす場合(ステップS215:Yesルート)、検証部105は、対象プログラム15の実行ルートが安定していることを示すデータを生成する(ステップS217)。   On the other hand, when the grouping result in step S213 satisfies the predetermined condition (step S215: Yes route), the verification unit 105 generates data indicating that the execution route of the target program 15 is stable (step S217). ).

検証部105は、ステップS217又はS207において生成したデータを表示装置等に出力する(ステップS219)。そして処理を終了する。   The verification unit 105 outputs the data generated in step S217 or S207 to a display device or the like (step S219). Then, the process ends.

以上のような処理を実行すれば、対象プログラム15の実行ルートの安定性を評価できるようになる。例えば、同じ入力でN回テストを実行したにも関わらず、実行ルートにばらつきがある場合には、対象プログラム15の実行ルートが安定していないとわかる。また、テストプログラム14の網羅性の確認することを目的として複数回のテストを実行したにも関わらず、特定の実行ルートしか通っていない場合には、ユーザはそれに応じてテストプログラム14を作り直すなどの対策を行えるようになる。   By executing the processing as described above, the stability of the execution route of the target program 15 can be evaluated. For example, if there are variations in the execution route even though the test is executed N times with the same input, it can be understood that the execution route of the target program 15 is not stable. In addition, when the test program 14 is executed a plurality of times for the purpose of confirming the completeness of the test program 14 and only a specific execution route passes, the user recreates the test program 14 accordingly. It becomes possible to take measures.

また、OS呼び出しの履歴を使用して実行ルートの状態を判定する方法においては、OS呼び出しの履歴を記録することに時間がかかるため、記録時の動作は実際の運用時の動作(すなわち、記録をしない場合の動作)とは異なることになる。また、履歴の量が大量になるため、履歴をメモリに保持できず、ディスクに履歴を保存することになるため、テストセットが終了するまでの時間が長くなるという問題がある。しかし、本実施の形態の方法であれば、これらの問題は生じない。   Further, in the method for determining the state of the execution route using the OS call history, it takes time to record the OS call history. Therefore, the operation at the time of recording is the operation at the time of actual operation (that is, recording). This is different from the operation when no operation is performed. In addition, since the amount of history becomes large, the history cannot be held in the memory, and the history is stored in the disk, so that there is a problem that it takes a long time to complete the test set. However, these problems do not occur with the method of the present embodiment.

以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したドライバ10の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。   Although one embodiment of the present invention has been described above, the present invention is not limited to this. For example, the functional block configuration of the driver 10 described above may not match the actual program module configuration.

また、上で説明したデータ保持構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。   In addition, the data holding configuration described above is an example, and the above configuration is not necessarily required. Further, in the processing flow, the processing order can be changed if the processing result does not change. Further, it may be executed in parallel.

また、ステップS205、S211、及びS215においては所定数を2としているが、所定数は2に限られるわけではない。   Further, although the predetermined number is 2 in steps S205, S211, and S215, the predetermined number is not limited to 2.

また、図36を用いて説明した処理においては、アドレス列、トータルの実行時間、及び各測定ポイントまでの実行時間に基づき判断を行っているが、これらのうちいずれかに基づき判断を行ってもよいし、いずれか2つに基づき判断を行ってもよい。   In the processing described with reference to FIG. 36, the determination is made based on the address string, the total execution time, and the execution time up to each measurement point. The determination may be made based on any two of them.

なお、上で述べた情報処理装置1は、コンピュータ装置であって、図37に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのプログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、上記プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するための上記プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び上記プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。   The information processing apparatus 1 described above is a computer apparatus, and as shown in FIG. 37, a memory 2501, a CPU (Central Processing Unit) 2503, a hard disk drive (HDD: Hard Disk Drive) 2505, and a display device. A display control unit 2507 connected to 2509, a drive device 2513 for the removable disk 2511, an input device 2515, and a communication control unit 2517 for connecting to a network are connected by a bus 2519. An operating system (OS) and a program for executing the processing in this embodiment are stored in the HDD 2505, and are read from the HDD 2505 to the memory 2501 when executed by the CPU 2503. The CPU 2503 controls the display control unit 2507, the communication control unit 2517, and the drive device 2513 according to the processing content of the program, and performs a predetermined operation. Further, data in the middle of processing is mainly stored in the memory 2501, but may be stored in the HDD 2505. In the embodiment of the present invention, the above-described program for executing the processing described above is stored in a computer-readable removable disk 2511 and distributed, and installed in the HDD 2505 from the drive device 2513. In some cases, the HDD 2505 may be installed via a network such as the Internet and the communication control unit 2517. Such a computer apparatus realizes various functions as described above by organically cooperating hardware such as the CPU 2503 and the memory 2501 described above with the OS and programs such as the above-described programs.

以上述べた本発明の実施の形態をまとめると、以下のようになる。   The embodiment of the present invention described above is summarized as follows.

本実施の形態に係る判定方法は、(A)特定のプログラムが複数回実行される場合、複数回の実行の各々について、特定のプログラムの実行時間を記憶装置に記憶し、(B)記憶装置に記憶された実行時間に応じた複数回の実行が分類された結果において、分類により生成されたグループに属する実行の数が複数回の実行の総数に占める割合が所定値以上である場合、特定のプログラムの実行ルートが安定していると判定する処理を含む。   In the determination method according to the present embodiment, (A) when a specific program is executed a plurality of times, the execution time of the specific program is stored in the storage device for each of the plurality of executions, and (B) the storage device If the ratio of the number of executions belonging to the group generated by the classification to the total number of multiple executions is greater than or equal to a predetermined value in the result of classification of multiple executions according to the execution time stored in Including a process for determining that the execution route of the program is stable.

特定のプログラムの実行ルートが複数存在する場合、実行時間は一定ではなく、実行時間に応じて複数回の実行を分類することができる。そこで、上で述べたようにすれば、実行ルートの安定性を評価できるようになる。   When there are a plurality of execution routes of a specific program, the execution time is not constant, and a plurality of executions can be classified according to the execution time. Therefore, if it is described above, the stability of the execution route can be evaluated.

また、特定のプログラムの実行時間を記憶装置に記憶する処理において、(a1)特定のプログラムの開始から終了までの時間である第1の実行時間を取得し、(a2)特定のプログラムにおける複数のポイントの各々について、特定のプログラムの開始から当該ポイントまでの時間である第2の実行時間を取得し、(a3)第1の実行時間と、複数のポイントの各々について取得した第2の実行時間とを記憶装置に記憶してもよい。このようにすれば、同じグループに属するか否かの判定をより高精度で行えるようになる。   In the process of storing the execution time of the specific program in the storage device, (a1) acquiring the first execution time that is the time from the start to the end of the specific program, and (a2) a plurality of the specific program For each point, a second execution time that is the time from the start of the specific program to the point is acquired. (A3) The first execution time and the second execution time acquired for each of the plurality of points May be stored in a storage device. In this way, it can be determined with higher accuracy whether or not they belong to the same group.

また、特定のプログラムの実行時間を記憶装置に記憶する処理において、(a4)複数のポイントの各々について、当該ポイントにおいてアクセスされる、第2の記憶装置における領域のアドレスを取得し、記憶装置に格納してもよい。そして、複数回の実行を分類する処理において、(b1)記憶装置に記憶された実行時間及びアドレスに基づき複数回の実行を分類してもよい。このようにすれば、実行時間は同じであるがアクセス先のアドレスが異なるような複数の実行を同じグループに分類することを防止できるようになる。   In the process of storing the execution time of the specific program in the storage device, (a4) for each of the plurality of points, the address of the area in the second storage device that is accessed at the point is acquired and stored in the storage device It may be stored. In the process of classifying a plurality of executions, (b1) the plurality of executions may be classified based on the execution time and address stored in the storage device. In this way, it is possible to prevent a plurality of executions having the same execution time but different access destination addresses from being classified into the same group.

また、上で述べた記憶装置はメモリであり、上で述べた第2の記憶装置はディスク装置であってもよい。そして、本判定方法は、(C)特定のプログラムを複数回実行する前に、複数のポイント各々について、当該ポイントにおいてアクセスされる、第2の記憶装置における領域のデータを記憶装置にコピーする処理をさらに含んでもよい。そして、特定のプログラムの実行時間を記憶装置に記憶する処理において、(b2)複数のポイントの各々において、記憶装置にコピーされたデータにアクセスしてもよい。上で述べたようにすれば、ディスク装置に対するアクセスを行わなくて済むので、特定のプログラムの実行に要する時間を短縮できる。これにより、実行時間の取得にかかる時間と、短縮分の時間とを相殺できるようになる。   The storage device described above may be a memory, and the second storage device described above may be a disk device. Then, this determination method is a process of (C) copying the data of the area in the second storage device that is accessed at each point for each of the plurality of points to the storage device before executing the specific program multiple times. May further be included. In the process of storing the execution time of the specific program in the storage device, (b2) data copied to the storage device may be accessed at each of the plurality of points. As described above, since it is not necessary to access the disk device, the time required to execute a specific program can be shortened. As a result, the time taken to acquire the execution time can be offset from the shortened time.

また、特定のプログラムの実行時間を記憶装置に記憶する処理において、(b3)複数のポイントの各々において、記憶装置にコピーされたデータにアクセスした場合に、第2の記憶装置に対してダミーのアクセス要求を発行してもよい。このようにすれば、割り込みハンドラからの通知によってスリープ状態を解除できるようになる。   Further, in the process of storing the execution time of the specific program in the storage device, (b3) when the data copied to the storage device is accessed at each of the plurality of points, a dummy is stored in the second storage device. An access request may be issued. In this way, the sleep state can be canceled by notification from the interrupt handler.

また、複数のポイントの各々においてアクセスされる領域は、特定のプログラムの実行によって所定回数以上アクセスされる領域であるという第1の条件を満たしてもよい。特定のプログラムの実行により発生する全てのアクセスについて実行時間を取得するのは現実的ではない。そこで、上で述べたようにすれば、ポイントの数を絞り込めるようになる。   Further, the first condition that the area accessed at each of the plurality of points is an area accessed a predetermined number of times or more by execution of a specific program may be satisfied. It is not realistic to obtain the execution time for all accesses that occur due to the execution of a specific program. So, as described above, you can narrow down the number of points.

また、複数のポイントの各々においてアクセスされる領域のアドレスは、当該ポイントの直前のポイントにおいてアクセスされる領域のアドレスと連続しないアドレスであるという第2の条件を満たしてもよい。アドレスが連続する場合には同じ処理が続くケースが多い。従って、上で述べたようにすれば、処理が切り替わるポイントで実行時間を取得できるようになる。   The address of the area accessed at each of the plurality of points may satisfy the second condition that the address is not continuous with the address of the area accessed at the point immediately before the point. When the addresses are continuous, the same processing often continues. Therefore, as described above, the execution time can be acquired at the point where the process is switched.

また、実行時間は、CPU(Central Processing Unit)実行時間であってもよい。   The execution time may be a CPU (Central Processing Unit) execution time.

なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。   A program for causing the processor to perform the processing according to the above method can be created, and the program can be a computer-readable storage medium such as a flexible disk, a CD-ROM, a magneto-optical disk, a semiconductor memory, a hard disk, or the like. It is stored in a storage device. The intermediate processing result is temporarily stored in a storage device such as a main memory.

以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。   The following supplementary notes are further disclosed with respect to the embodiments including the above examples.

(付記1)
コンピュータに、
特定のプログラムが複数回実行される場合、前記複数回の実行の各々について、前記特定のプログラムの実行時間を記憶装置に記憶し、
前記記憶装置に記憶された実行時間に応じて前記複数回の実行が分類された結果から算出される、分類により生成されたグループに属する実行の数が前記複数回の実行の総数に占める割合に応じて、前記特定のプログラムの実行ルートが安定しているか判定する、
処理を実行させる判定プログラム。
(Appendix 1)
On the computer,
When a specific program is executed a plurality of times, the execution time of the specific program is stored in a storage device for each of the plurality of executions,
The ratio of the number of executions belonging to the group generated by classification calculated from the result of classification of the plurality of executions according to the execution time stored in the storage device to the total number of the plurality of executions And determining whether the execution route of the specific program is stable,
Judgment program that executes processing.

(付記2)
前記特定のプログラムの実行ルートが安定しているか判定する処理において、
前記割合が所定値以上である場合、前記特定のプログラムの実行ルートが安定していると判定する、
付記1記載の判定プログラム。
(Appendix 2)
In the process of determining whether the execution route of the specific program is stable,
When the ratio is equal to or greater than a predetermined value, it is determined that the execution route of the specific program is stable.
The determination program according to attachment 1.

(付記3)
前記特定のプログラムの実行時間を前記記憶装置に記憶する処理において、
前記特定のプログラムの開始から終了までの時間である第1の実行時間を取得し、
前記特定のプログラムにおける複数のポイントの各々について、前記特定のプログラムの開始から当該ポイントまでの時間である第2の実行時間を取得し、
前記第1の実行時間と、前記複数のポイントの各々について取得した前記第2の実行時間とを前記記憶装置に記憶する、
処理を実行させる付記1又は2記載の判定プログラム。
(Appendix 3)
In the process of storing the execution time of the specific program in the storage device,
Obtaining a first execution time which is a time from the start to the end of the specific program;
For each of the plurality of points in the specific program, obtain a second execution time that is the time from the start of the specific program to the point,
Storing the first execution time and the second execution time acquired for each of the plurality of points in the storage device;
The determination program according to attachment 1 or 2, which causes the process to be executed.

(付記4)
前記特定のプログラムの実行時間を前記記憶装置に記憶する処理において、
前記複数のポイントの各々について、当該ポイントにおいてアクセスされる、第2の記憶装置における領域のアドレスを取得し、前記記憶装置に格納する、
処理を実行させ、
前記特定のプログラムの実行ルートが安定しているか判定する処理において、
前記記憶装置に記憶された実行時間及びアドレスに基づき前記複数回の実行を分類する、
処理を実行させる付記3記載の判定プログラム。
(Appendix 4)
In the process of storing the execution time of the specific program in the storage device,
For each of the plurality of points, an address of an area in the second storage device that is accessed at the point is acquired and stored in the storage device.
Let the process run,
In the process of determining whether the execution route of the specific program is stable,
Classifying the plurality of executions based on execution times and addresses stored in the storage device;
The determination program according to appendix 3, which causes the process to be executed.

(付記5)
前記記憶装置はメモリであり、
前記第2の記憶装置はディスク装置であり、
前記コンピュータに、
前記特定のプログラムを複数回実行する前に、前記複数のポイント各々について、当該ポイントにおいてアクセスされる、前記第2の記憶装置における領域のデータを前記記憶装置にコピーする、
処理をさらに実行させ、
前記特定のプログラムの実行時間を記憶装置に記憶する処理において、
前記複数のポイントの各々において、前記記憶装置にコピーされたデータにアクセスする、
処理を実行させる付記4記載の判定プログラム。
(Appendix 5)
The storage device is a memory;
The second storage device is a disk device;
In the computer,
Before executing the specific program a plurality of times, for each of the plurality of points, the area data in the second storage device accessed at the points is copied to the storage device.
Let the process run further,
In the process of storing the execution time of the specific program in the storage device,
Accessing the data copied to the storage device at each of the plurality of points;
The determination program according to appendix 4, which causes the process to be executed.

(付記6)
前記特定のプログラムの実行時間を記憶装置に記憶する処理において、
前記複数のポイントの各々において、前記記憶装置にコピーされたデータにアクセスした場合に、前記第2の記憶装置に対してダミーのアクセス要求を発行する、
処理を実行させる付記5記載の判定プログラム。
(Appendix 6)
In the process of storing the execution time of the specific program in the storage device,
Issuing a dummy access request to the second storage device when accessing the data copied to the storage device at each of the plurality of points;
The determination program according to appendix 5, which causes the process to be executed.

(付記7)
前記複数のポイントの各々においてアクセスされる領域は、前記特定のプログラムの実行によって所定回数以上アクセスされる領域であるという第1の条件を満たす
付記3記載の判定プログラム。
(Appendix 7)
The determination program according to claim 3, wherein an area accessed at each of the plurality of points satisfies a first condition that the area accessed is a predetermined number of times or more by execution of the specific program.

(付記8)
前記複数のポイントの各々においてアクセスされる領域のアドレスは、当該ポイントの直前のポイントにおいてアクセスされる領域のアドレスと連続しないアドレスであるという第2の条件を満たす、
処理を実行させる付記3記載の判定プログラム。
(Appendix 8)
The address of the area accessed at each of the plurality of points satisfies the second condition that it is an address that is not continuous with the address of the area accessed at the point immediately before the point,
The determination program according to appendix 3, which causes the process to be executed.

(付記9)
前記実行時間は、CPU(Central Processing Unit)実行時間である
付記1記載の判定プログラム。
(Appendix 9)
The determination program according to attachment 1, wherein the execution time is a CPU (Central Processing Unit) execution time.

(付記10)
コンピュータが、
特定のプログラムが複数回実行される場合、前記複数回の実行の各々について、前記特定のプログラムの実行時間を記憶装置に記憶し、
前記記憶装置に記憶された実行時間に応じて前記複数回の実行が分類された結果から算出される、分類により生成されたグループに属する実行の数が前記複数回の実行の総数に占める割合に応じて、前記特定のプログラムの実行ルートが安定しているか判定する、
処理を実行する判定方法。
(Appendix 10)
Computer
When a specific program is executed a plurality of times, the execution time of the specific program is stored in a storage device for each of the plurality of executions,
The ratio of the number of executions belonging to the group generated by classification calculated from the result of classification of the plurality of executions according to the execution time stored in the storage device to the total number of the plurality of executions And determining whether the execution route of the specific program is stable,
Judgment method to execute processing.

(付記11)
記憶装置と、
特定のプログラムが複数回実行される場合、前記複数回の実行の各々について、前記特定のプログラムの実行時間を前記記憶装置に記憶し、前記記憶装置に記憶された実行時間に応じて前記複数回の実行が分類された結果から算出される、分類により生成されたグループに属する実行の数が前記複数回の実行の総数に占める割合に応じて、前記特定のプログラムの実行ルートが安定しているか判定する判定部と、
を有する情報処理装置。
(Appendix 11)
A storage device;
When a specific program is executed a plurality of times, the execution time of the specific program is stored in the storage device for each of the executions of the plurality of times, and the plurality of times are executed according to the execution time stored in the storage device. Whether the execution route of the specific program is stable according to the ratio of the number of executions belonging to the group generated by classification to the total number of executions calculated from the result of classification of the execution of A determination unit for determining;
An information processing apparatus.

1 情報処理装置 10 ドライバ
11 ワークデータ格納部 12 ディスク装置
13 カーネル 14 テストプログラム
15 対象プログラム 101 トレース処理部
103 ロード部 105 検証部
DESCRIPTION OF SYMBOLS 1 Information processing apparatus 10 Driver 11 Work data storage part 12 Disk apparatus 13 Kernel 14 Test program 15 Target program 101 Trace processing part 103 Load part 105 Verification part

Claims (11)

コンピュータに、
特定のプログラムが複数回実行される場合、前記複数回の実行の各々について、前記特定のプログラムの実行時間を記憶装置に記憶し、
前記記憶装置に記憶された実行時間に応じて前記複数回の実行が分類された結果から算出される、分類により生成されたグループに属する実行の数が前記複数回の実行の総数に占める割合に応じて、前記特定のプログラムの実行ルートが安定しているか判定する、
処理を実行させる判定プログラム。
On the computer,
When a specific program is executed a plurality of times, the execution time of the specific program is stored in a storage device for each of the plurality of executions,
The ratio of the number of executions belonging to the group generated by classification calculated from the result of classification of the plurality of executions according to the execution time stored in the storage device to the total number of the plurality of executions And determining whether the execution route of the specific program is stable,
Judgment program that executes processing.
前記特定のプログラムの実行ルートが安定しているか判定する処理において、
前記割合が所定値以上である場合、前記特定のプログラムの実行ルートが安定していると判定する、
請求項1記載の判定プログラム。
In the process of determining whether the execution route of the specific program is stable,
When the ratio is equal to or greater than a predetermined value, it is determined that the execution route of the specific program is stable.
The determination program according to claim 1.
前記特定のプログラムの実行時間を前記記憶装置に記憶する処理において、
前記特定のプログラムの開始から終了までの時間である第1の実行時間を取得し、
前記特定のプログラムにおける複数のポイントの各々について、前記特定のプログラムの開始から当該ポイントまでの時間である第2の実行時間を取得し、
前記第1の実行時間と、前記複数のポイントの各々について取得した前記第2の実行時間とを前記記憶装置に記憶する、
処理を実行させる請求項1又は2記載の判定プログラム。
In the process of storing the execution time of the specific program in the storage device,
Obtaining a first execution time which is a time from the start to the end of the specific program;
For each of the plurality of points in the specific program, obtain a second execution time that is the time from the start of the specific program to the point,
Storing the first execution time and the second execution time acquired for each of the plurality of points in the storage device;
The determination program according to claim 1 or 2, wherein the process is executed.
前記特定のプログラムの実行時間を前記記憶装置に記憶する処理において、
前記複数のポイントの各々について、当該ポイントにおいてアクセスされる、第2の記憶装置における領域のアドレスを取得し、前記記憶装置に格納する、
処理を実行させ、
前記特定のプログラムの実行ルートが安定しているか判定する処理において、
前記記憶装置に記憶された実行時間及びアドレスに基づき前記複数回の実行を分類する、
処理を実行させる請求項3記載の判定プログラム。
In the process of storing the execution time of the specific program in the storage device,
For each of the plurality of points, an address of an area in the second storage device that is accessed at the point is acquired and stored in the storage device.
Let the process run,
In the process of determining whether the execution route of the specific program is stable,
Classifying the plurality of executions based on execution times and addresses stored in the storage device;
The determination program according to claim 3, wherein the process is executed.
前記記憶装置はメモリであり、
前記第2の記憶装置はディスク装置であり、
前記コンピュータに、
前記特定のプログラムを複数回実行する前に、前記複数のポイント各々について、当該ポイントにおいてアクセスされる、前記第2の記憶装置における領域のデータを前記記憶装置にコピーする、
処理をさらに実行させ、
前記特定のプログラムの実行時間を記憶装置に記憶する処理において、
前記複数のポイントの各々において、前記記憶装置にコピーされたデータにアクセスする、
処理を実行させる請求項4記載の判定プログラム。
The storage device is a memory;
The second storage device is a disk device;
In the computer,
Before executing the specific program a plurality of times, for each of the plurality of points, the area data in the second storage device accessed at the points is copied to the storage device.
Let the process run further,
In the process of storing the execution time of the specific program in the storage device,
Accessing the data copied to the storage device at each of the plurality of points;
The determination program according to claim 4, wherein the process is executed.
前記特定のプログラムの実行時間を記憶装置に記憶する処理において、
前記複数のポイントの各々において、前記記憶装置にコピーされたデータにアクセスした場合に、前記第2の記憶装置に対してダミーのアクセス要求を発行する、
処理を実行させる請求項5記載の判定プログラム。
In the process of storing the execution time of the specific program in the storage device,
Issuing a dummy access request to the second storage device when accessing the data copied to the storage device at each of the plurality of points;
The determination program according to claim 5, wherein the process is executed.
前記複数のポイントの各々においてアクセスされる領域は、前記特定のプログラムの実行によって所定回数以上アクセスされる領域であるという第1の条件を満たす
請求項3記載の判定プログラム。
The determination program according to claim 3, wherein an area accessed at each of the plurality of points satisfies a first condition that an area is accessed a predetermined number of times or more by execution of the specific program.
前記複数のポイントの各々においてアクセスされる領域のアドレスは、当該ポイントの直前のポイントにおいてアクセスされる領域のアドレスと連続しないアドレスであるという第2の条件を満たす、
処理を実行させる請求項3記載の判定プログラム。
The address of the area accessed at each of the plurality of points satisfies the second condition that it is an address that is not continuous with the address of the area accessed at the point immediately before the point,
The determination program according to claim 3, wherein the process is executed.
前記実行時間は、CPU(Central Processing Unit)実行時間である
請求項1記載の判定プログラム。
The determination program according to claim 1, wherein the execution time is a CPU (Central Processing Unit) execution time.
コンピュータが、
特定のプログラムが複数回実行される場合、前記複数回の実行の各々について、前記特定のプログラムの実行時間を記憶装置に記憶し、
前記記憶装置に記憶された実行時間に応じて前記複数回の実行が分類された結果から算出される、分類により生成されたグループに属する実行の数が前記複数回の実行の総数に占める割合に応じて、前記特定のプログラムの実行ルートが安定しているか判定する、
処理を実行する判定方法。
Computer
When a specific program is executed a plurality of times, the execution time of the specific program is stored in a storage device for each of the plurality of executions,
The ratio of the number of executions belonging to the group generated by classification calculated from the result of classification of the plurality of executions according to the execution time stored in the storage device to the total number of the plurality of executions And determining whether the execution route of the specific program is stable,
Judgment method to execute processing.
記憶装置と、
特定のプログラムが複数回実行される場合、前記複数回の実行の各々について、前記特定のプログラムの実行時間を前記記憶装置に記憶し、前記記憶装置に記憶された実行時間に応じて前記複数回の実行が分類された結果から算出される、分類により生成されたグループに属する実行の数が前記複数回の実行の総数に占める割合に応じて、前記特定のプログラムの実行ルートが安定しているか判定する判定部と、
を有する情報処理装置。
A storage device;
When a specific program is executed a plurality of times, the execution time of the specific program is stored in the storage device for each of the executions of the plurality of times, and the plurality of times are executed according to the execution time stored in the storage device. Whether the execution route of the specific program is stable according to the ratio of the number of executions belonging to the group generated by classification to the total number of executions calculated from the result of classification of the execution of A determination unit for determining;
An information processing apparatus.
JP2015020036A 2015-02-04 2015-02-04 Program, information processing method and information processing apparatus Active JP6409599B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015020036A JP6409599B2 (en) 2015-02-04 2015-02-04 Program, information processing method and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015020036A JP6409599B2 (en) 2015-02-04 2015-02-04 Program, information processing method and information processing apparatus

Publications (2)

Publication Number Publication Date
JP2016143313A JP2016143313A (en) 2016-08-08
JP6409599B2 true JP6409599B2 (en) 2018-10-24

Family

ID=56568727

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015020036A Active JP6409599B2 (en) 2015-02-04 2015-02-04 Program, information processing method and information processing apparatus

Country Status (1)

Country Link
JP (1) JP6409599B2 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271981B2 (en) * 2006-12-12 2012-09-18 International Business Machines Corporation Detecting an extraordinary behavior
US9122782B2 (en) * 2011-09-28 2015-09-01 International Business Machines Corporation Apparatus and computer program product for adaptively determining response time distribution of transactional workloads

Also Published As

Publication number Publication date
JP2016143313A (en) 2016-08-08

Similar Documents

Publication Publication Date Title
JP6349395B2 (en) Call path finder
JP5933762B2 (en) Code coverage rate determination method and system
US9639453B2 (en) Method and system for determining functional tests to execute based on code coverage
US9535823B2 (en) Method and apparatus for detecting software bugs
US8397104B2 (en) Creation of test plans
US8719789B2 (en) Measuring coupling between coverage tasks and use thereof
US11650905B2 (en) Testing source code changes
US9959197B2 (en) Automated bug detection with virtual machine forking
US20140173561A1 (en) Association of metadata with source code and applications and services premised thereon
US20200201689A1 (en) System and method for determining a process flow of a software application and for automatically generating application testing code
CN107102922B (en) Memory detection method and device and electronic equipment
US20140208297A1 (en) Validation of revised computer programs
JP2012150535A (en) Program verification method and program verification program
CN109558145B (en) Installation package volume optimization method and device for android application
CN108829575B (en) Test case recommendation method, electronic device and readable storage medium
JP6771413B2 (en) Software verification device and software verification program
JP2017045217A (en) Log management device, log management method, and log management program
JP2013218492A (en) Software test automatic evaluation device and method
JP6409599B2 (en) Program, information processing method and information processing apparatus
US10496524B2 (en) Separating test coverage in software processes using shared memory
CN109359093A (en) A kind of rule file update method and system
US9824175B1 (en) Method and system of evaluation of validity of a refinement rule for a hardware emulation
US8352234B2 (en) Model generation based on a constraint and an initial model
US8359456B2 (en) Generating random addresses for verification of distributed computerized devices
CN110471829B (en) Method and device for checking software code test coverage rate

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180815

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180910

R150 Certificate of patent or registration of utility model

Ref document number: 6409599

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150