JP6409599B2 - Program, information processing method and information processing apparatus - Google Patents
Program, information processing method and information processing apparatus Download PDFInfo
- 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
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.
従って、本発明の目的は、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に、本実施の形態における情報処理装置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
図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
なお、種々のプログラムに共通の特徴として、以下のようなディスクアクセスを行うことが挙げられる。(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
図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
次に、ロード処理において、ドライバ10におけるロード部103は、取得ポイントにおいてアクセスされるデータ301及び302をディスク装置12内の領域から読み出し、ワークデータ格納部11にコピーする。
Next, in the load process, the load unit 103 in the
そして、検証処理において、ドライバ10における検証部105は、取得ポイントにおいて実行時間をカーネル13から取得する。この際、ディスク装置12内の領域におけるデータ301及び302にはアクセスせず、ワークデータ格納部11にロードされたデータ301及び302にアクセスする。これにより、アクセスに要する時間を短縮できるので、短縮分の時間と実行時間の取得に要する時間とを相殺できるようになる。取得した実行時間及びディスクアクセスの際のアクセス先アドレスは、ディスク装置12に保存される。
In the verification process, the
本実施の形態においては、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
次に、図4乃至図36を用いて、情報処理装置1が実行する処理をより具体的に説明する。まず、図4乃至図8を用いて、事前の設定処理について説明する。本処理は、テストプログラム14毎に行われる。
Next, the processing executed by the
トレース処理部101は、各対象範囲の先頭アドレス及び最終アドレスの指定をユーザから受け付ける(図4:ステップS1)。対象範囲とは、図5に示すように、ディスク装置12における領域の範囲のことであり、対象プログラム15からアクセスされる領域の範囲である。
The
トレース処理部101は、開始ブロックを特定し、開始ブロックのブロック番号及びアドレスを、ワークデータ格納部11における範囲テーブルに格納する(ステップS3)。開始ブロックとは、対象範囲における最も若い(すなわち、アドレスを表す番号が最も小さい)アドレスをXとした場合において、アドレスXを含むブロックである。例えば図6の例であれば、矢印601が指し示すブロックが開始ブロックである。
The
トレース処理部101は、最終ブロックを特定し、最終ブロックのブロック番号及びアドレスを、ワークデータ格納部11における範囲テーブルに格納する(ステップS5)。最終ブロックとは、対象範囲において最も若くない(すなわち、アドレスを表す番号が最も大きい)アドレスをXとした場合において、アドレスXを含むブロックである。例えば図6の例であれば、矢印602が指し示すブロックが最終ブロックである。
The
図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
図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
以上のような処理を実行すれば、初期的な状態のアクセステーブルを用意することができるようになる。 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
まず、トレース処理部101は、実行が開始されるテストプログラム14のテストプログラム名に対応するアクセステーブルからデータを読み込む(図9:ステップS11)。
First, the
トレース処理部101は、ワークデータ格納部11におけるモード格納領域に格納された、モードを表す情報を「トレース」に設定する(ステップS13)。そして処理を終了する。モード格納領域には、例えば図10に示すような態様で、モードを表す情報が格納される。
The
以上のような処理を実行すれば、トレース処理部101がトレース処理を開始できるようになる。
By executing the processing as described above, the
次に、図11及び図12を用いて、トレース処理部101が実行するトレース処理について説明する。本処理は、ディスクアクセスが行われる度に実行される。なお、ディスクアクセスのパラメータは、アクセス先のアドレス(ここでは、アクセスされる領域における最も若いアドレス)及びアクセスされるデータのサイズである。
Next, trace processing executed by the
まず、トレース処理部101は、ワークデータ格納部11におけるモード格納領域に格納された、モードを表す情報が「検証」に設定されているか判断する(図11:ステップS21)。モードを表す情報が「検証」に設定されている場合(ステップS21:Yesルート)、処理は端子Aを介して図21のステップS101に移行する。ステップS101以降においては、トレース処理部101から呼び出された検証部105が検証処理を実行することになる。検証処理については後で説明する。
First, the
モードを表す情報が「検証」に設定されていない場合(ステップS21:Noルート)、トレース処理部101は、ワークデータ格納部11におけるモード格納領域に格納された、モードを表す情報が「トレース」に設定されているか判断する(ステップS23)。
When the information indicating the mode is not set to “verification” (step S21: No route), the
モードを表す情報が「トレース」に設定されていない場合(ステップ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
一方、モードを表す情報が「トレース」に設定されている場合(ステップ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
アクセス先のアドレスが、範囲フラグが「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
一方、アクセス先のアドレスが、範囲フラグが「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
トレース処理部101は、アクセス先のアドレスは、終端アドレスの次のアドレスであるか判断する(ステップS31)。ステップS31の処理によって、前回のディスクアクセスと今回のディスクアクセスとが一連のディスクアクセスであるかが判断される。なお、初回の処理の場合には終端アドレス格納領域に終端アドレスが格納されていないので、処理はステップS31のNoルートに進む。
The
アクセス先のアドレスは、終端アドレスの次のアドレスである場合(ステップ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
トレース処理部101は、ブロック番号nのブロックについてのアクセス数AN(n)を1インクリメントする(ステップS35)。
The
トレース処理部101は、今回のディスクアクセスの終端アドレスをアクセス先のアドレス及びサイズから特定し、終端アドレス格納領域に格納(ここでは、上書き)する(ステップS37)。そして処理を終了する。
The
以上のような処理を実行すれば、アクセス先のアドレスが不連続であるポイントについてアクセス数を計数できるようになる。 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
まず、トレース処理部101は、アクセスフラグ設定処理を実行する(ステップS41)。アクセスフラグ設定処理については、図14及び図15を用いて説明する。
First, the
トレース処理部101は、ブロック番号を表す変数jをj=0と設定する(図14:ステップS51)。
The
トレース処理部101は、ブロック番号jのブロックについてのアクセス数AN(j)が閾値より大きいか判断する(ステップS53)。閾値は、予めユーザによって設定される。AN(j)が閾値以下である場合(ステップS53:Noルート)、ステップS57の処理に移行する。
The
AN(j)が閾値より大きい場合(ステップS53:Yesルート)、トレース処理部101は、アクセステーブルに格納されたアクセスフラグのうち、ブロック番号jのブロックについてのアクセスフラグを「ON」に設定する(ステップS55)。
When AN (j) is larger than the threshold (step S53: Yes route), the
トレース処理部101は、変数jを1インクリメントし(ステップS57)、jが最終ブロック番号より大きいか判断する(ステップS59)。ステップS59において使用される最終ブロック番号は、範囲テーブル(図7)に格納された最終番号である。
The
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
図13の説明に戻り、トレース処理部101は、ワークデータ格納部11における終端アドレス格納領域における終端アドレスを削除する(ステップS43)。さらに、トレース処理部101は、ワークデータ格納部11におけるモード格納領域に格納された、モードを表す情報を「通常」に設定する(ステップS45)。そして処理を終了する。
Returning to the description of FIG. 13, the
以上のように取得ポイントを決定すれば、メモリにロードされるデータの量を抑制することができるようになる。図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
また、本実施の形態によれば、頻繁には発生しないディスクアクセスもメモリへのロードの対象から外される。さらに、対象プログラム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
まず、ロード部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
ロード部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
まず、検証部105は、ワークデータ格納部11におけるモード格納領域に格納された、モードを表す情報を「検証」に設定する(図19:ステップS81)。
First, the
検証部105は、マップテーブル内のデータを読み込む(ステップS83)。そして、検証部105は、テストの番号を表す変数TESTNUMをTESTNUM=0と設定する(ステップS85)。そして処理を終了する。
The
以上のような処理を実行すれば、テストプログラム14について検証処理を開始できるようになる。
If the above processing is executed, verification processing can be started for the
次に、図20を用いて、各テストを開始する際に検証部105が実行する処理について説明する。本処理は、テスト毎に行われる。
Next, processing executed by the
まず、検証部105は、テストの番号を表す変数TESTNUMを1インクリメントする(図20:ステップS91)。
First, the
検証部105は、取得ポイントの番号を表す変数COUNTをCOUNT=0と設定する(ステップS93)。そして処理を終了する。
The
以上のような処理を実行すれば、検証部105が各テストについて検証処理を開始できるようになる。
If the process as described above is executed, the
次に、図21乃至図24を用いて、検証部105が実行する検証処理について説明する。本処理は、ディスクアクセスが行われる度に実行される。なお、ディスクアクセスのパラメータは、アクセス先のアドレス(ここでは、アクセスされる領域における最も若いアドレス)及びアクセスされるデータのサイズである。
Next, verification processing executed by the
まず、トレース処理部101に呼び出された検証部105は、アクセス先のアドレスと、アクセスされるデータのサイズとに基づき、ディスク装置12内のアクセスされる領域に含まれるブロックのうち最初のブロックを特定する(図21:ステップS101)。
First, the
検証部105は、ディスク装置12におけるアクセステーブルに格納された範囲フラグのうち、ステップS101において特定されたブロックに対応する範囲フラグは「ON」であるか判断する(ステップS103)。
The
範囲フラグが「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
検証部105は、ステップS101において特定されたブロックに対応するアクセスフラグが「ON」であるか判断する(ステップS109)。アクセスフラグは「ON」ではない場合(ステップS109:Noルート)、今回のディスクアクセスは取得ポイントではない。従って、ドライバ10は、パラメータに従い、通常のディスクアクセスを実行する(ステップS105)。そして処理は端子Bを介して図23の処理に移行し終了する。
The
一方、ステップ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
検証部105は、アクセス先のアドレスとサイズとから、ディスクアクセスの分割数DNを算出する(ステップS113)。例えば、1回のディスクアクセスでアクセス可能なデータの量でサイズを割った値に1を加えることによって、ディスクアクセスの分割数DNが算出される。1回のディスクアクセスでアクセス可能なデータの量の算出にアクセス先のアドレスが必要である場合には、アクセス先のアドレスも使用される。
The
検証部105は、分割されたディスクアクセスの番号を表す変数iをi=1と設定する(ステップS115)。そして、検証部105は、アクセス先のアドレスに対応するメモリアドレスをマップテーブルから特定し、特定されたメモリアドレスが示すメモリ領域にアクセスを行う(ステップS117)。
The
検証部105は、ディスク装置12に対して、ダミーのアクセス要求を発行する(ステップS119)。そして、検証部105は、スリープ状態に移行する(ステップS121)。そして処理は端子Cを介して図23のステップS123に移行する。ステップS119及びS121の処理について、図22を用いて説明する。
The
ディスク装置12にアクセスする代わりにワークデータ格納部11にアクセスすると、通常はディスク装置12へのアクセスが発生した後に行われる、割り込みハンドラによる通知が行われなくなる。そのため、ドライバ10が割り込みハンドラからの通知の延長上で実行する処理を実行できなくなる。そこで本実施の形態においては、図22に示すような方法によって、割り込みハンドラからの通知が行われるようにする。図22に示すように、ドライバ10の検証部105が対象プログラム15からのディスクアクセスを検出すると、アクセス先のアドレスを調べることにより、取得ポイントであるか判断する。取得ポイントである場合、検証部105は、ディスク装置12に対してダミーのアクセス要求を発行し、スリープ状態に移行する。ダミーのアクセス要求は実際のアクセス要求とは異なり、データの読み書きは行われないが、カーネル13がディスクアクセスが発生したことを検出する。ディスクアクセスが発生したことをカーネル13から通知された割り込みハンドラは、ドライバ10に対して通知を行うことにより、検証部105のスリープ状態を解除する。
When the work
図23の説明に移行し、検証部105は、割り込みハンドラからの通知に従いスリープ状態を解除すると(ステップS123)、i=1が成立するか判断する(ステップS125)。i=1が成立しない場合(ステップS125:Noルート)、ドライバ10は、パラメータに従い、通常のディスクアクセスを実行する(ステップS127)。そしてステップS135の処理に移行する。
Shifting to the explanation of FIG. 23, the
一方、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
検証部105は、COUNT、アドレス格納領域に格納された最後のアドレス、及び実行時間を、ワークデータ格納部11における第1結果テーブルに追加する(ステップS133)。但し、該当するプロセスIDについて第1結果テーブルが存在しない場合(すなわち、COUNT=1である場合)には、ステップS133において、テストプログラムの識別子、プロセスID、TESTNUM、COUNT、アドレス、及び実行時間を含む第1結果テーブルが生成される。
The
図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
以上のような処理を実行すれば、各テストについて、各取得ポイントに到達するまでに要する時間と、アクセス先のアドレスを要素とするアドレス列とを記録できるようになる。本実施の形態によれば、ソースコードに改変を加えなくてもよいので、ソースコードが公開されていないような場合にも対処可能である。 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
まず、検証部105は、ワークデータ格納部11におけるアドレス格納領域に格納されたアドレスをディスク装置12に書き込む(図25:ステップS141)。また、検証部105は、ワークデータ格納部11における第1結果テーブルをディスク装置12に書き込む(ステップS143)。
First, the
そして、検証部105は、テストプログラム名、プロセスID、TESTNUM、及びテストの終了までに要する時間(すなわち、対象プログラム15の実行が終了するまでに要する時間。以下、トータルの実行時間と呼ぶ。)を、ディスク装置12に書き込む(ステップS145)。そして処理を終了する。
The
以上のような処理を実行すれば、ディスク装置12に格納したデータを後の処理に利用できるようになる。
By executing the processing as described above, the data stored in the
次に、図26を用いて、検証処理を終了する際に検証部105が実行する処理について説明する。本処理は、テストプログラム14毎に行われる。
Next, a process executed by the
まず、検証部105は、ワークデータ格納部11にロードされたデータをディスク装置12に書き戻し(図26:ステップS151)、データが格納されていた領域を解放する。
First, the
検証部105は、ワークデータ格納部11におけるモード格納領域に格納された、モードを表す情報を「通常」に設定する(ステップS153)。そして処理を終了する。
The
以上のような処理を実行すれば、テストプログラム14について検証処理を終了できるようになる。
If the above process is executed, the verification process for the
次に、図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
検証部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
検証部105は、特定されたプロセスIDについての第1結果テーブル内の結果を、ディスク装置12から読み出す(ステップS165)。
The
検証部105は、ステップS165において読み出した結果を、アドレス列の少なくとも一部が同じであるものが同じグループになるようにグループ化を実行する(ステップS167)。図28Aに、グループ化の一例を示す。図28Aの例においては、プロセスIDが「211」であるプロセスについての結果2801と、プロセスIDが「302」であるプロセスについての結果2802とが示されている。結果2801におけるアドレス列(0x01008800,0x0156ab10,0x0100A800)と、結果2802におけるアドレス列(0x01008800,0x0156ab10,0x0100A800)とは一致するので、両者は同じグループになるようにグループ化が行われる。
The
検証部105は、グループの番号を表す変数であるiをi=1と設定する(ステップS169)。そして、検証部105は、グループiに属する結果を集約し、グループiに属するプロセスIDをプロセスGID(Group IDentifier)で置換し、集約及び置換後の結果を第2結果テーブルとしてディスク装置12に格納する(ステップS171)。
The
図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
一方、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
図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
次に、図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
検証部105は、プロセスGIDをカウントするための変数iをi=1と設定する(ステップS183)。そして、検証部105は、ディスク装置12における結果テーブルに含まれるプロセスGIDのうち未処理のプロセスGIDを1つ特定し、特定されたプロセスGIDについての結果を、そのプロセスGIDに対応する第2結果テーブルから取得する(ステップS185)。
The
検証部105は、同じアドレスについての実行時間が同じカラムになるように、ステップS185において取得した結果の形式を変更する(ステップS187)。そして、検証部105は、形式変更後の結果を第3結果テーブルとしてディスク装置12に格納する(ステップS189)。
The
図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
以上のような処理を実行すれば、検証処理の結果がユーザにとってより把握しやすいような形式に変更されるようになる。なお、ステップ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
図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
図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
使用可能なメモリの量が少ない場合にトレース処理を実行し、取得ポイントを決定したとすると、図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
これに対し、使用可能なメモリの量が多い場合にトレース処理を実行し、取得ポイントを決定したとすると、図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
次に、図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
まず、検証部105は、ディスク装置12における第3結果テーブルからデータを読み出し(図36:ステップS201)、アドレス列に基づき、N回のテストについて第1のグループ分けを実行する(ステップS203)。第1のグループ分けにおいては、例えば、アドレス列が全く同じであるテストが同じグループに属するようにグループ分けが行われる。アドレス列が全く同じであるテストは、実行ルートが同じである可能性が高いと考えられるからである。
First, the
検証部105は、ステップS203におけるグループ分けの結果が所定の条件を満たす(すなわち、アドレス列のタイプが所定数に収斂する)か判断する(ステップS205)。ステップS205においては、例えば、グループに属するテストの数がテスト総数に占める割合が所定値以上である条件が各グループについて成立するか判断される。また、所定の条件は、グループの数が所定数(例えば2)以下であるという条件であってもよい。また、所定の条件は、或る1つ又は2つのグループに属するテストの数がテスト総数に占める割合が所定値以上であるという条件であってもよい。ステップS203におけるグループ分けの結果が所定の条件を満たさない場合(ステップS205:Noルート)、ステップS207の処理に移行する。
The
一方、ステップ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
検証部105は、ステップS209におけるグループ分けの結果が所定の条件を満たすか判断する(ステップS211)。ステップS209におけるグループ分けの結果が所定の条件を満たさない場合(ステップS211:Noルート)、ステップS207の処理に移行する。
The
一方、ステップ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
検証部105は、ステップS213におけるグループ分けの結果が所定の条件を満たすか判断する(ステップS215)。ステップS213におけるグループ分けの結果が所定の条件を満たさない場合(ステップS215:Noルート)、検証部105は、対象プログラム15の実行ルートが安定していないことを示すデータを生成する(ステップS207)。
The
一方、ステップ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
検証部105は、ステップS217又はS207において生成したデータを表示装置等に出力する(ステップS219)。そして処理を終了する。
The
以上のような処理を実行すれば、対象プログラム15の実行ルートの安定性を評価できるようになる。例えば、同じ入力でN回テストを実行したにも関わらず、実行ルートにばらつきがある場合には、対象プログラム15の実行ルートが安定していないとわかる。また、テストプログラム14の網羅性の確認することを目的として複数回のテストを実行したにも関わらず、特定の実行ルートしか通っていない場合には、ユーザはそれに応じてテストプログラム14を作り直すなどの対策を行えるようになる。
By executing the processing as described above, the stability of the execution route of the
また、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
また、上で説明したデータ保持構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。 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
以上述べた本発明の実施の形態をまとめると、以下のようになる。 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
(付記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
(付記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
(付記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
(付記7)
前記複数のポイントの各々においてアクセスされる領域は、前記特定のプログラムの実行によって所定回数以上アクセスされる領域であるという第1の条件を満たす
付記3記載の判定プログラム。
(Appendix 7)
The determination program according to
(付記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
(付記9)
前記実行時間は、CPU(Central Processing Unit)実行時間である
付記1記載の判定プログラム。
(Appendix 9)
The determination program according to
(付記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
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.
請求項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.
処理を実行させる請求項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.
請求項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.
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)
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 |
-
2015
- 2015-02-04 JP JP2015020036A patent/JP6409599B2/en active Active
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 |