JP2010237743A - System, method and program for detecting problematic point of data conflict - Google Patents

System, method and program for detecting problematic point of data conflict Download PDF

Info

Publication number
JP2010237743A
JP2010237743A JP2009081971A JP2009081971A JP2010237743A JP 2010237743 A JP2010237743 A JP 2010237743A JP 2009081971 A JP2009081971 A JP 2009081971A JP 2009081971 A JP2009081971 A JP 2009081971A JP 2010237743 A JP2010237743 A JP 2010237743A
Authority
JP
Japan
Prior art keywords
log
program
difference
thread
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.)
Withdrawn
Application number
JP2009081971A
Other languages
Japanese (ja)
Inventor
Tomohiro Kaizu
智宏 海津
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2009081971A priority Critical patent/JP2010237743A/en
Publication of JP2010237743A publication Critical patent/JP2010237743A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To detect a point to be corrected from a log at the time of data conflict. <P>SOLUTION: In the system for detecting a problematic point of data conflict of a program to be inspected, an information processor includes: a first log storage means which stores a log at the time of data conflict caused by the program to be inspected which executes parallel processing of processes or threads, as a first log; an individual execution means which individually and successively executes the processes or threads of the program to be inspected; a second log storage means which stores a log of the result of the individual execution means, as a second log; and a difference extraction means which compares the first log with the second log to extract a difference between the logs. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、データ競合の問題箇所検出システム、問題箇所検出方法および問題箇所検出用プログラムに関し、 特に問題発生時のログの中から修正すべき箇所を検出できる問題箇所検出システム、問題箇所検出方法および問題箇所検出用プログラムに関する。   TECHNICAL FIELD The present invention relates to a data conflict problem location detection system, a problem location detection method, and a problem location detection program, and in particular, a problem location detection system, a problem location detection method, and a problem location detection method capable of detecting a location to be corrected from a log when a problem occurs. The present invention relates to a problem location detection program.

複数のプロセスやスレッドを並行又は並行に動作させる情報処理システムでは、正しく排他制御を行わないとデータ競合の問題が発生する。   In an information processing system that operates a plurality of processes and threads in parallel or in parallel, a problem of data contention occurs unless exclusive control is performed correctly.

ソフトウェアのテスト中・シミュレーション中・運用中にデータ競合の不具合が発見された場合、一般的には人手でログを読んでプログラムの問題箇所を特定していた。ここで、プログラムの問題箇所とは、対象プログラム(対象ソースコード)のうち開発者の期待と異なる記述によって不具合を発生させている箇所であり、問題箇所を修正することで不具合は発生しなくなる。しかし、複数のプロセスやスレッドが影響しあって発生する不具合では、それぞれのプロセス・スレッドのログが混在して出力されるため、ログを解析して問題箇所を特定するのに知識や経験が必要であり、解析に時間がかかった。   When a data race failure is discovered during software testing, simulation, or operation, the problem location of a program is generally identified by manually reading a log. Here, the problem part of the program is a part in the target program (target source code) where a problem is caused by a description different from the developer's expectation, and the problem does not occur by correcting the problem part. However, in the case of problems that occur due to the influence of multiple processes and threads, the logs of each process and thread are output together, so knowledge and experience are required to analyze the logs and identify the problem location. It took a long time to analyze.

関連するプログラム検証システムの一例が、特許文献1に記載されている。図13に示すように、特許文献1に記載されたプログラム検証システムは、変更検出部と、ソースコード分類部と、モデル生成部と、検証部とから構成されている。このような構成を有するシステムは次のように動作する。すなわち、変更が施された関数と、変更の影響を受ける共有変数を用いた関数とを検出すると共に、変更の影響を受ける部分、制御構造部分、それ以外の部分を検出し、 検出結果に基づいてモデルを生成する。その後、変更前の検証対象プログラムのモデルと変更後の検証対象プログラムのモデルを比較することにより、変更後の検証対象プログラムの検証を行う。   An example of a related program verification system is described in Patent Document 1. As shown in FIG. 13, the program verification system described in Patent Literature 1 includes a change detection unit, a source code classification unit, a model generation unit, and a verification unit. The system having such a configuration operates as follows. In other words, the function that has been changed and the function that uses the shared variable that is affected by the change are detected, and the part that is affected by the change, the control structure part, and other parts are detected, and based on the detection results. To generate a model. Thereafter, the verification target program after the change is verified by comparing the model of the verification target program before the change with the model of the verification target program after the change.

しかし、特許文献1に記載された検証システムでは、検証において不具合が発見された場合、不具合の発生する実行順序を出力することはできるが、そのログを読んで実際の問題箇所を特定する作業は人間にまかされている。 これには知識や経験が必要であり、解析に時間がかかっていた。   However, in the verification system described in Patent Document 1, when a problem is found in the verification, the execution order in which the problem occurs can be output, but the work of reading the log and identifying the actual problem part is not It is left to humans. This required knowledge and experience and took time to analyze.

特開2007-11690号公報JP 2007-11690 A

特許文献1に記載された検証システムでは、結局、多くの経験及び知識を有する作業者が複数のプロセス・スレッドの動作を把握し、大量のログの中から問題箇所を探す必要がある。   In the verification system described in Patent Document 1, it is necessary for an operator having a lot of experience and knowledge to grasp the operation of a plurality of process threads and search for a problem location from a large number of logs.

複数のプロセスやスレッドが影響しあって発生するデータ競合の不具合では、それぞれのプロセス・スレッドのログが混在して出力されるため、容易にログの解析ができない。即ち、課題としては、パラレルコンピューティングにおけるデータ競合のログ解析に関して、問題箇所を特定するのに、多大な知識や経験を要し、且つ解析に多大な工数がかかる。   In the case of a data race defect caused by the influence of a plurality of processes and threads, the logs of the respective processes and threads are output in a mixed manner, so that the log cannot be easily analyzed. That is, as a problem, regarding log analysis of data competition in parallel computing, it takes a great deal of knowledge and experience to specify a problem part, and a lot of man-hours are required for the analysis.

本発明の目的は、データ競合したログを用い、修正すべきデータ競合の問題箇所を検出する問題箇所検出システム、問題箇所検出方法および問題箇所検出用プログラムを提供することにある。   An object of the present invention is to provide a problem location detection system, a problem location detection method, and a problem location detection program for detecting a problem location of a data conflict to be corrected using a data conflict log.

本発明の検査対象プログラムのデータ競合の問題箇所検出システムは、プロセス又はスレッドをパラレルに実行する検査対象プログラムを実行してデータ競合したときのログを、第1のログとして格納する第1のログ格納手段と、前記検査対象プログラムのプロセス又はスレッドを個別に逐次実行する個別実行手段と、前記個別実行手段の実行結果のログを、第2のログとして格納する第2のログ格納手段と、前記第1のログと前記第2のログを比較してログの差分を抽出する差分抽出手段とを備えたことを特徴とする。   A system for detecting a problem location of data conflict in a program to be inspected according to the present invention includes a first log that stores, as a first log, a log when a data conflict occurs by executing a program to be inspected that executes processes or threads in parallel. A storage unit, an individual execution unit that sequentially and sequentially executes a process or a thread of the inspection target program, a second log storage unit that stores a log of an execution result of the individual execution unit as a second log, A difference extraction unit that compares the first log with the second log and extracts a difference between the logs is provided.

また、本発明の検査対象プログラムのデータ競合の問題箇所検出方法は、情報処理装置に、プロセス又はスレッドをパラレルに実行するとデータ競合するプログラムである検査対象プログラムを格納し、前記検査対象プログラムのデータ競合したときのログを、第1のログとして格納し、前記検査対象プログラムのプロセス又はスレッドを個別に逐次実行して、実行結果のログを、第2のログとして格納し、情報処理装置を用いて、前記第1のログと前記第2のログを比較してログの差分を抽出し、 抽出したログの差分箇所を作業者に認知可能に提示することを特徴とする。   According to another aspect of the present invention, there is provided a method for detecting a problem location of a data conflict in a test target program, wherein the information processing apparatus stores a test target program that is a data conflict when executing processes or threads in parallel. A log at the time of contention is stored as a first log, the process or thread of the program to be inspected is individually and sequentially executed, a log of an execution result is stored as a second log, and an information processing apparatus is used. Then, the first log and the second log are compared to extract a log difference, and the difference part of the extracted log is presented to the operator so that the difference can be recognized.

また、本発明の検査対象プログラムのデータ競合の問題箇所検出用プログラムは、情報処理装置の制御部を、プロセス又はスレッドをパラレルに実行する検査対象プログラムを実行してデータ競合したときのログを、第1のログとして格納する第1のログ格納手段と、前記検査対象プログラムのプロセス又はスレッドを個別に逐次実行する個別実行手段と、前記個別実行手段の実行結果のログを、第2のログとして格納する第2のログ格納手段と、前記第1のログと前記第2のログを比較してログの差分を抽出する差分抽出手段として機能させることを特徴とする。   Further, the data conflict problem location detection program of the inspection target program of the present invention is a log when data conflict occurs by executing the inspection target program for executing the process or thread in parallel with the control unit of the information processing apparatus, First log storage means for storing as a first log, individual execution means for individually and sequentially executing processes or threads of the inspection target program, and a log of execution results of the individual execution means as a second log It functions as a second log storing means for storing, and a difference extracting means for comparing the first log and the second log to extract a log difference.

本発明によれば、データ競合したログの中から、修正すべきデータ競合の問題箇所を検出する問題箇所検出システム、問題箇所検出方法および問題箇所検出用プログラムを提供できる。   According to the present invention, it is possible to provide a problem location detection system, a problem location detection method, and a problem location detection program for detecting a problem location of data contention to be corrected from a data conflict log.

本発明の第1の実施形態の構成を示すブロック図である。It is a block diagram which shows the structure of the 1st Embodiment of this invention. 本発明の第1の実施形態の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of the 1st Embodiment of this invention. 本発明の第2の実施形態の構成を示すブロック図である。It is a block diagram which shows the structure of the 2nd Embodiment of this invention. 本発明の第2の実施形態の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of the 2nd Embodiment of this invention. 本発明の第3の実施形態の構成を示すブロック図である。It is a block diagram which shows the structure of the 3rd Embodiment of this invention. 本発明の第3の実施形態の動作を示すフローチャートである。It is a flowchart which shows the operation | movement of the 3rd Embodiment of this invention. 実施例における問題箇所検出システムの構成を示したブロック図である。It is the block diagram which showed the structure of the problem location detection system in an Example. 実施例における対照プログラムを例示する説明図である。It is explanatory drawing which illustrates the control | contrast program in an Example. 実施例における不具合発生時のログを例示する説明図である。It is explanatory drawing which illustrates the log at the time of the malfunction occurrence in an Example. 実施例におけるスレッドの逐次実施結果を例示する説明図である。It is explanatory drawing which illustrates the sequential execution result of the thread | sled in an Example. 実施例におけるスレッドの逐次実施結果を例示する説明図である。It is explanatory drawing which illustrates the sequential execution result of the thread | sled in an Example. 第1のログから第2のログと異なる箇所を抽出した結果を例示する説明図である。It is explanatory drawing which illustrates the result of having extracted the location different from a 2nd log from a 1st log. 特許文献1に記載されたプログラム検証システムを示すブロック図である。It is a block diagram which shows the program verification system described in patent document 1.

本発明の実施の形態を図1乃至図6に基づいて詳細に説明する。   Embodiments of the present invention will be described in detail with reference to FIGS.

図1を参照すると、本発明の第1の実施の形態は、対象となるソースコードを格納する対象プログラム格納手段110と、複数のプロセス・スレッドを個別に実行可能であるプログラム個別実行手段120と、プロセス・スレッドを並列に実行したときの第1のログを格納する第1のログ格納手段130と、プロセスを個別に実行したときの第2のログを格納する第2のログ格納手段140と、第1のログと第2のログを比較して差分を抽出する差分抽出手段150とから構成されている。   Referring to FIG. 1, the first embodiment of the present invention includes a target program storage means 110 for storing a target source code, and a program individual execution means 120 capable of individually executing a plurality of process threads. A first log storage means 130 for storing a first log when process threads are executed in parallel; a second log storage means 140 for storing a second log when processes are individually executed; , And a difference extracting means 150 for extracting a difference by comparing the first log and the second log.

これらの手段はそれぞれ概略つぎのように動作する。
プログラム個別実行手段120は、対象プログラム格納手段110から検査する対象のソースコードを取得し、ソースコード内に記述されたプロセス・スレッドを個別に分解(置換及び補充)して、分解後のプロセス・スレッドを逐次実行する。個別に逐次実行する順序は、予め定めておいても良いし、作業者が経験等によって指定できるようにしても良い。実行時に得られたログは、第2のログのログとして、第2のログ格納手段140に格納される。
Each of these means generally operates as follows.
The program individual execution means 120 acquires the source code to be inspected from the target program storage means 110, and individually decomposes (replaces and supplements) the process threads described in the source code, Run threads sequentially. The order in which each is sequentially executed may be determined in advance, or may be specified by an operator based on experience or the like. The log obtained at the time of execution is stored in the second log storage unit 140 as a log of the second log.

差分抽出手段150は、第1のログと第2のログを比較して差分箇所を抽出して記憶する。当該記憶された差分箇所は、差分箇所から想定されるデータ競合の問題箇所の候補として、作業者に認知可能に提示される。尚、差分箇所の提示は、差分抽出手段150が行なうこととしても良いし、他の提示手段で行なっても良い。
差分抽出手段150には、必要に応じて、抽出した差分箇所に対応するプロセス又はスレッド、及び抽出した差分箇所に対応するプロセス又はスレッドの該当位置を特定するプログラム特定手段と、抽出した差分箇所に対応するソースコード、及び抽出した差分箇所に対応するソースコード上での該当位置を特定するソースコード特定手段を設けても良い。
The difference extraction means 150 compares the first log and the second log to extract and store a difference portion. The stored difference portion is presented to the operator so as to be recognized as a candidate for a data conflict problem portion assumed from the difference portion. The difference portion may be presented by the difference extraction means 150 or by other presentation means.
The difference extraction means 150 includes, as necessary, a process or thread corresponding to the extracted difference portion, a program specifying means for specifying a corresponding position of the process or thread corresponding to the extracted difference portion, and an extracted difference portion. Source code specifying means for specifying the corresponding source code and the corresponding position on the source code corresponding to the extracted difference portion may be provided.

作業者への提示内容は、第1のログと第2のログとで経過及び結果の異なる差分箇所のログや、差分箇所のログに対応するプロセス及びプロセスの該当位置、差分箇所のログに対応するスレッド及びスレッドの該当位置、差分箇所のプロセス若しくはスレッド又はログに対応するソースコード及びソースコードの該当位置を、作業差の所望する表示形態にして、一つ又は複数の結果を順次切り替え可能に提示する。   The content presented to the worker corresponds to the log of the difference part where the progress and result differ between the first log and the second log, the process corresponding to the log of the difference part, the corresponding position of the process, and the log of the difference part Threads and corresponding positions of threads, processes or threads of differences, or corresponding positions of source codes and source codes corresponding to logs or logs can be displayed in a desired display format, and one or more results can be switched sequentially Present.

次に、図1及び図2のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。
あらかじめ、対象プログラム格納手段110には対象となるソースコードが格納され、第1のログ格納手段にはプロセスを並列(並行)に実行し不具合が発生した時のログが格納されているものとする。ここで、収集するログにはプロセスのID、実行している箇所に対応するソースコードの行番号、変数の値などを含める。また、同じソースコードを同じ実行順序で複数回動作させた場合には同一のログが出力されるものとする。そのため、不定な中間状態や時刻などの情報はログには含めないようにするか、差分抽出手段150で差分の抽出から除外するものとする。
Next, the overall operation of the present embodiment will be described in detail with reference to the flowcharts of FIGS.
It is assumed that the target source code is stored in advance in the target program storage unit 110, and the log when a failure occurs when processes are executed in parallel (in parallel) is stored in the first log storage unit. . Here, the collected log includes the process ID, the line number of the source code corresponding to the part being executed, the value of the variable, and the like. In addition, when the same source code is operated a plurality of times in the same execution order, the same log is output. For this reason, information such as an indeterminate intermediate state and time is not included in the log, or is excluded from the difference extraction by the difference extraction means 150.

まず、プログラム個別実行手段120は、対象プログラム格納手段110から対象のソースコードを取得する(図2のステップA1)。
次に、プログラム個別実行手段120は、プロセス及びスレッドを個別に実行し、得られたログを第2のログ格納手段140に格納する(ステップA2)。
次に、差分抽出手段150は、第1のログと第2のログを読み込む(ステップA3)。 次に、差分抽出手段150は、第1のログと第2のログを比較して差分を抽出する(ステップA4)。
最後に、差分抽出手段150は、得られた差分箇所から想定される問題箇所の候補を作業者に対して提示する(ステップA5)。
このときの提示内容は、第1のログと第2のログのいずれかのログの差分箇所であっても、差分箇所に対応するプロセスであっても、 差分箇所に対応するプロセスのソースコードに関する情報であってもよい。
First, the program individual execution means 120 acquires the target source code from the target program storage means 110 (step A1 in FIG. 2).
Next, the program individual execution unit 120 individually executes the process and the thread, and stores the obtained log in the second log storage unit 140 (step A2).
Next, the difference extraction means 150 reads the first log and the second log (step A3). Next, the difference extraction means 150 compares the first log and the second log and extracts a difference (step A4).
Finally, the difference extraction means 150 presents the candidate of the problem part assumed from the obtained difference part to an operator (step A5).
The presentation content at this time is related to the source code of the process corresponding to the difference part, whether it is the difference part of either the first log or the second log, or the process corresponding to the difference part. It may be information.

次に、本実施の形態の効果について説明する。本実施の形態では、プロセスを並列(並行)に実行したときの第1のログとプロセスを個別に実行したときの第2のログを読み込んで差分を抽出し、問題箇所の発見に使用可能な情報を提示するため、その箇所を中心にログを確認可能とでき、知識や経験の少ない作業者であっても、効果的に問題箇所の発見が可能となる。   Next, the effect of this embodiment will be described. In the present embodiment, the first log obtained when the processes are executed in parallel (in parallel) and the second log obtained when the processes are executed individually are read to extract a difference, which can be used for finding a problem location. Since the information is presented, the log can be confirmed centering on the location, and even a worker with little knowledge or experience can effectively find the problematic location.

次に、本発明の第2の実施形態について図面を参照して詳細に説明する。   Next, a second embodiment of the present invention will be described in detail with reference to the drawings.

本発明の第2の第2の実施形態は、対象プログラムをデータフロー解析して情報の受け渡し関係を解析するデータフロー解析手段を備える点が前述した第1実施形態と異なる。 具体的には、図3を参照すると、本発明の第2の実施の形態は、第1の実施の形態と同様の対象プログラム格納手段110と、 プログラム個別実行手段120と、第1のログ格納手段130と、第2のログ格納手段140と、差分抽出手段150と、ソースコードをデータフロー解析して情報の受け渡し関係を解析するデータフロー解析手段160 から構成されている。   The second embodiment of the present invention is different from the first embodiment described above in that it includes a data flow analysis means for analyzing the flow of information by analyzing the target program. Specifically, referring to FIG. 3, the second embodiment of the present invention is similar to the first embodiment in the target program storage means 110, the program individual execution means 120, and the first log storage. Means 130, second log storage means 140, difference extraction means 150, and data flow analysis means 160 for analyzing the flow of information by analyzing the source code data flow.

これらの手段はそれぞれ概略つぎのように動作する。
予め、対象プログラム格納手段110には対象となるソースコードが格納され、第1のログ格納手段にはプロセス・スレッドを並列に実行し不具合が発生した時のログが格納されているものとする。プログラム個別実行手段120は、対象プログラム格納手段110からソースコードを取得し、 ソースコード内に記述されたプロセス・スレッドを個別に実行する。実行時に得られたログは、第2のログ格納手段140に格納される。
Each of these means generally operates as follows.
It is assumed that the target source code is stored in advance in the target program storage unit 110, and the log when a failure occurs by executing a process thread in parallel is stored in the first log storage unit. The program individual execution means 120 acquires the source code from the target program storage means 110 and individually executes the process thread described in the source code. The log obtained at the time of execution is stored in the second log storage means 140.

データフロー解析手段160は、対象プログラム格納手段110から検査対象プログラム(ソースコード)を取得し、検査対象プログラムに含まれる変数・関数(情報)がプロセス・スレッドを実行した最終結果に作用するかどうかをソースコードのデータフロー解析で検査する。   The data flow analyzing unit 160 acquires the inspection target program (source code) from the target program storage unit 110, and whether or not the variable / function (information) included in the inspection target program affects the final result of executing the process / thread. Is checked by data flow analysis of the source code.

差分抽出手段150は、第1のログと第2のログを比較して差分を抽出し、得られた差分箇所から想定される問題箇所の候補を選択すると共に、データフロー解析の結果に基づいて実行した最終結果に作用しない変数の関する候補を除外して、問題箇所の候補を作業者に提示する。   The difference extraction unit 150 compares the first log and the second log to extract the difference, selects a candidate problem part from the obtained difference part, and based on the result of the data flow analysis Excludes candidates for variables that do not affect the final results that were executed, and presents candidate candidates for problems to the operator.

次に、図3及び図4のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。
まず、プログラム個別実行手段120は、対象プログラム格納手段110から対象のソースコードを取得し(図4のステップB1)、プログラムを個別に実行し、得られたログを第2のログ格納手段140に格納する(ステップB2)。
データフロー解析手段160は、対象プログラム格納手段110から対象のソースコードを取得し、所定の変数が実行した最終結果に作用するか否かをソースコードのデータフロー解析で検査する(ステップB3)。
次に、差分抽出手段150は、第1のログと第2のログとデータフロー解析の結果とを読み込み(ステップB4)、第1のログと第2のログを比較し、差分を抽出する(ステップB5)。この時、データフロー解析の結果を用い、実行した最終結果に作用しない変数は差分として認識しない。
Next, the overall operation of the present embodiment will be described in detail with reference to the flowcharts of FIGS.
First, the individual program execution unit 120 acquires the target source code from the target program storage unit 110 (step B1 in FIG. 4), executes the program individually, and stores the obtained log in the second log storage unit 140. Store (step B2).
The data flow analysis means 160 acquires the target source code from the target program storage means 110, and checks whether or not a predetermined variable affects the final result executed by the data flow analysis of the source code (step B3).
Next, the difference extraction means 150 reads the first log, the second log, and the data flow analysis result (step B4), compares the first log and the second log, and extracts the difference ( Step B5). At this time, using the result of the data flow analysis, a variable that does not affect the final result executed is not recognized as a difference.

最後に、差分抽出手段150は、得られた差分箇所から想定される問題箇所の候補を作業者に提示する(ステップB6)。   Finally, the difference extraction means 150 presents the candidate of the problem part assumed from the obtained difference part to an operator (step B6).

次に、本実施の形態の効果について説明する。本実施の形態では、第1の実施の形態での効果に加え、問題箇所の候補の提示にデータフロー解析の結果を用いることで、問題箇所の誤検出を低減できる。これは、最終結果に作用しない場合でも、計算の途中で一時的に第1のログと第2のログが異なる値をとることがあり、本実施の形態ではそのような差分を検出の対象から除外するためである。   Next, the effect of this embodiment will be described. In the present embodiment, in addition to the effects of the first embodiment, erroneous detection of a problem location can be reduced by using the result of data flow analysis for presenting a problem location candidate. Even if this does not affect the final result, the first log and the second log may take different values temporarily during the calculation. In this embodiment, such a difference is detected from the detection target. This is because it is excluded.

次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。 本発明の第3の実施の形態は、プロセス・スレッドを個別に実行するための実行順序を決定する実行順序決定手段170を備える点が前述した第1の実施の形態と異なる。具体的には、図5を参照すると、第3の実施の形態は、第1実施形態と同様の対象プログラム格納手段110と、プログラム個別実行手段120と、第1のログ格納手段130と、第2のログ格納手段140と、差分抽出手段150とプロセスを個別に実行するための実行順序を決定する実行順序決定手段170から構成されている。   Next, a third embodiment of the present invention will be described in detail with reference to the drawings. The third embodiment of the present invention is different from the first embodiment described above in that it includes an execution order determining unit 170 that determines an execution order for individually executing process threads. Specifically, referring to FIG. 5, the third embodiment is similar to the first embodiment in target program storage means 110, individual program execution means 120, first log storage means 130, 2 log storage means 140, difference extraction means 150, and execution order determination means 170 for determining the execution order for individually executing processes.

これらの手段はそれぞれ概略つぎのように動作する。
実行順序決定手段170は、対象プログラム格納手段110からソースコードを取得し、プロセス・スレッドの実行可能な全ての実行順序を決定する。
一例としては、実行順序決定手段170は、プロセス・スレッドの実行可能な順序をすべて洗い出し、プログラム個別実行手段120に渡す。実行順序の洗い出しは、例えば、X,Y,Zという3つのプロセスがある場合、「X→Y→Z」「X→Z→Y」「Y→X→Z」「Y→Z→X」「Z→X→Y」「Z→Y→X」の6種類のプロセス実行順を全て認知し、プログラム個別実行手段120に通知可能な情報として実行順序に関する情報として生成する。
また、他の例では、作業者に所定の作業時間(解析時間)を入力させ、その時間内で後述する処理を含めた全ての処理を実効可能な、できるだけ多くの組み合わせの実行順序を決定して、実行順序に関する情報としても良い。
Each of these means generally operates as follows.
The execution order determination unit 170 acquires the source code from the target program storage unit 110 and determines all execution orders that can be executed by the process thread.
As an example, the execution order determination unit 170 identifies all the process threads that can be executed and passes them to the program individual execution unit 120. For example, when there are three processes X, Y, and Z, “X → Y → Z” “X → Z → Y” “Y → X → Z” “Y → Z → X” “ All the six types of process execution order of “Z → X → Y” and “Z → Y → X” are recognized and generated as information related to the execution order as information that can be notified to the individual program execution means 120.
In another example, the operator inputs a predetermined work time (analysis time), and determines the execution order of as many combinations as possible that can execute all the processes including the processes described later within that time. Information regarding the execution order may be used.

プログラム個別実行手段120は、対象プログラム格納手段110からソースコードを取得し、実行順序決定手段170から決定された実行順序(実行順序に関する情報)を取得し、洗い出した実行順序に従ってソースコードに記述されたプロセス・スレッドを個別に逐次実行する。実行時に得られたログは、第2のログ格納手段140に格納される。
差分抽出手段150は第1のログと第2のログを比較して差分を抽出し、得られた差分箇所から想定される問題箇所の候補を表示する。
The individual program execution unit 120 acquires the source code from the target program storage unit 110, acquires the execution order (information on the execution order) determined from the execution order determination unit 170, and is described in the source code according to the extracted execution order. Process threads are executed individually and serially. The log obtained at the time of execution is stored in the second log storage means 140.
The difference extraction means 150 compares the first log and the second log, extracts the difference, and displays a candidate for a problem location assumed from the obtained difference location.

次に、図5及び図6のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。
まず、実行順序決定手段170は、対象プログラム格納手段110からソースコードを取得し、プロセス・スレッドの実行順序を決定する(図6のステップC1)。
Next, the overall operation of the present embodiment will be described in detail with reference to the flowcharts of FIGS.
First, the execution order determination unit 170 acquires the source code from the target program storage unit 110 and determines the execution order of process threads (step C1 in FIG. 6).

プログラム個別実行手段120は、対象プログラム格納手段110から対象のソースコードを取得し、 実行順序決定手段170から受け取った実行順序に従って、指示された実行順序の全てが完了するまで、ソースコードに記述されたプロセスを個別に実行し、 得られたログを第2のログ格納手段140に格納する(ステップC2)。
次に、差分抽出手段150は、第1のログと第2のログを読み込み(ステップC3)、第1のログと第2のログを比較し比較して差分を抽出する(ステップC4)。
The individual program execution means 120 acquires the target source code from the target program storage means 110, and is described in the source code until all of the instructed execution orders are completed according to the execution order received from the execution order determination means 170. The obtained process is individually executed, and the obtained log is stored in the second log storage means 140 (step C2).
Next, the difference extraction means 150 reads the first log and the second log (step C3), compares the first log and the second log, compares them, and extracts the difference (step C4).

最後に、差分抽出手段150は、得られた差分箇所から想定される問題箇所の候補を表示する(ステップC5)。   Finally, the difference extraction unit 150 displays a candidate for a problem portion assumed from the obtained difference portion (step C5).

次に、本実施の形態の効果について説明する。本実施の形態では、本実施の形態では、第1の実施の形態での効果に加え、実行順序決定手段170により、実行順序を指示して、個別にプロセス・スレッドを逐次実行することで、誤検出を低減できる。これは、プロセスの実行の前後関係によって中間状態が異なることがあり、そのような中間状態はどちらも正常な値であると考えられるからである。また、第1のログから、どの実行順序で実行した結果(第2のログ)とも異なるログのみを問題箇所の候補として抽出することで、精度の高い結果を得ることができる。   Next, the effect of this embodiment will be described. In the present embodiment, in addition to the effects of the first embodiment, in the present embodiment, the execution order is determined by the execution order determination unit 170 and the process threads are sequentially executed individually. False detection can be reduced. This is because the intermediate state may differ depending on the context of execution of the process, and both such intermediate states are considered to be normal values. Further, by extracting only the log different from the result (second log) executed in any execution order from the first log as a candidate for a problem location, a highly accurate result can be obtained.

次に、具体的な実施例を用いて第1の実施の形態を説明する。
実施例では、図7に示すように、一般的な情報処理装置(コンピュータ)200を用いて、データ競合に関するプログラムの問題箇所を検出するシステムを実現できる。図7に示された問題箇所検出システムは、補助記憶装置210に記憶された各種プログラムがRAMに展開されて制御部に読込まれることによって、補助記憶装置210に格納されている対象プログラム214の問題箇所を検出するシステムとして動作する。また、制御部は、RAMに読込まれた各種プログラムに基づいて、プログラム個別実行手段、差分抽出手段、プログラム特定手段、ソースコード特定手段などとして機能する。また、補助記憶装置210及びRAMは、対象プログラム格納手段、第1のログ格納手段、第2のログ格納手段として機能する。また、制御部をデータフロー解析手段、実行順序決定手段として、機能するように、プログラムを構成しても良い。
Next, the first embodiment will be described using a specific example.
In the embodiment, as shown in FIG. 7, a system that detects a problem portion of a program related to data conflict can be realized using a general information processing apparatus (computer) 200. In the problem location detection system shown in FIG. 7, various programs stored in the auxiliary storage device 210 are expanded in the RAM and read into the control unit, whereby the target program 214 stored in the auxiliary storage device 210 is read. Operates as a system to detect problem areas. The control unit functions as a program individual execution unit, a difference extraction unit, a program identification unit, a source code identification unit, and the like based on various programs read into the RAM. The auxiliary storage device 210 and the RAM function as target program storage means, first log storage means, and second log storage means. The program may be configured so that the control unit functions as a data flow analysis unit and an execution order determination unit.

ここで、対象プログラム214とは、作業者によって、ソフトウェアのテスト中・シミュレーション中・運用中にデータ競合の不具合が発見された、プロセスやスレッドが並列又は並行的に動作するプログラムであり、問題箇所の修正を要するプログラムである。対象プログラム214には、親ソースコード下に、多くの子ソースコードを有し、それぞれのソースコードに基づいて、情報処理装置の制御部がプロセスやスレッドを生成して演算処理する。   Here, the target program 214 is a program in which a process or thread operates in parallel or in parallel, in which a data race failure is discovered by an operator during software testing, simulation, or operation. It is a program that requires correction. The target program 214 has many child source codes under the parent source code, and based on each source code, the control unit of the information processing apparatus generates processes and threads and performs arithmetic processing.

問題箇所検出システムとして動作する情報処理装置200は、入力部やネットワークインタフェースを介して入力された作業者の指示(対象プログラム214の選択等)に基づいて、第1のログ及び第2のログを格納し、ログの差分を抽出して、作業者にとって重要であるだろうログの差分箇所から識別した情報を表示部に出力する。
換言すれば、情報処理装置200が、補助記憶装置210に記録された、制御部を差分抽出手段、プログラム特定手段及びソースコード特定手段として動作させる差分解析プログラム211、制御部を抽出したログの差分箇所を作業者に表示部に表示する提示手段として動作させる結果表示プログラム212、制御部をプログラム個別実行手段として動作させるログ収集プログラム213に基づいて動作することで、データ競合したログの中から、修正すべきデータ競合の問題箇所を検出可能としている。
The information processing apparatus 200 that operates as the problem location detection system stores the first log and the second log based on the operator's instruction (selection of the target program 214, etc.) input via the input unit or the network interface. Store and extract log differences and output to the display unit information identified from the log differences that would be important to the operator.
In other words, the information processing apparatus 200 stores the difference analysis program 211 recorded in the auxiliary storage device 210 to operate the control unit as the difference extraction unit, the program identification unit, and the source code identification unit, and the log difference obtained by extracting the control unit By operating based on the result display program 212 that operates as a presentation means for displaying the location on the display unit to the operator, and the log collection program 213 that operates the control unit as a program individual execution means, from among the data-competed logs, It is possible to detect the problem part of the data conflict that should be corrected.

次に、情報処理装置200の処理例を示し、本発明を説明する。
対象のソースコードの一例として図8を示す。当該対象プログラム(ソースコード)にはスレッドAとスレッドBがあり、変数X,Y,Zを使用する。このソースコードの動作では、データ競合に関する不具合が発生しており、不具合発生時のログは図9のようになっている。
Next, a processing example of the information processing apparatus 200 will be shown to describe the present invention.
FIG. 8 shows an example of the target source code. The target program (source code) includes a thread A and a thread B, and uses variables X, Y, and Z. In the operation of the source code, a problem relating to data conflict has occurred, and the log when the problem occurs is as shown in FIG.

次に、情報処理装置200の解析時の動作を説明する。
制御部は、補助記憶装置210に記録されている各種プログラムをRAMに展開して読み込み、プログラム個別実行手段を機能させ、対象プログラムから対象のソースコードを取得する(図2のステップA1に該当)。
Next, an operation at the time of analysis of the information processing apparatus 200 will be described.
The control unit expands and reads various programs recorded in the auxiliary storage device 210 into the RAM, causes the program individual execution means to function, and acquires the target source code from the target program (corresponding to step A1 in FIG. 2). .

次に、制御部は、プログラム個別実行手段を機能させ、プロセスやスレッドを個別に逐次実行し、得られたログを第2のとして補助記憶装置に記憶保持する(ステップA2に該当)。ここで、実行の際にスレッドA→スレッドBの順に実行した場合、図10のようなログが得られる。また、スレッドB→スレッドAの順に実行した場合、図11のようなログが得られる。なお、ここでは、ログの表記として、「:」の左側にスレッド名、「( )」内に変数の値を置いている。   Next, the control unit causes the program individual execution means to function, and sequentially executes processes and threads individually, and stores and holds the obtained log in the auxiliary storage device as the second (corresponding to step A2). Here, when execution is performed in the order of thread A → thread B, a log as shown in FIG. 10 is obtained. Further, when the processing is executed in the order of thread B → thread A, a log as shown in FIG. 11 is obtained. In this example, the log name is a thread name on the left side of “:” and a variable value in “()”.

次に、制御部は、差分抽出手段を機能させ、プロセスやスレッドを個別に実行したときのログ(第2のログ)と不具合発生時のログ(第1のログ)を読み込み(ステップA3に該当)、2種類のログを比較し、差分を抽出して記憶する(ステップA4に該当)。   Next, the control unit causes the difference extraction means to function, and reads a log (second log) when a process or thread is individually executed and a log (first log) when a failure occurs (corresponding to step A3). ) Compare two types of logs, extract the difference and store it (corresponding to step A4).

尚、図9のログと図10、図11のログを比較した場合、図10、図11のログでは2回目にXの値を取得する時の逐次実行した場合の変数の値は100もしくは-30だが、問題発生時には0となっていること、2回目にXの値を更新する時の逐次実行した場合の変数の値は70だが、問題発生時には-30となっていることがわかる。   When the log of FIG. 9 is compared with the logs of FIG. 10 and FIG. 11, the value of the variable when the X value is acquired for the second time is 100 or − in the logs of FIG. 10 and FIG. However, it is 30 when the problem occurs, and the value of the variable when the X value is updated for the second time is 70, but it is -30 when the problem occurs.

制御部は、記憶した差分箇所を用い、表示部に、想定される問題箇所の候補を表示する(ステップA5に該当)。   The control unit uses the stored difference portion and displays a possible problem portion candidate on the display unit (corresponding to step A5).

図12は、第1のログから第2のログと異なる箇所を抽出した結果を例示する説明図である。
作業者に提示される情報には、図12のように、問題が発生したログの中から、差分であるスレッド及び変数を取得して表示する。図12に示すように、差分を抽出することで、変数を更新する箇所の中から、問題のある可能性が高い箇所を抽出できたことがわかる。
図12を詳しく説明すると、図12(a)に示した結果からは、問題が発生した第1のログの中で、スレッドBが変数Xを取得・更新する箇所に問題がある可能性が高いことがわかり、図12(b)に示した結果からは、問題が発生した第1のログの中で、スレッドAが変数Xを取得・更新する箇所に問題がある可能性が高いことがわかる。このことから、正しく排他制御を行い、変数Xの取得・更新が同時に実行されないようにすることで、この第1のログの取得時に発生したデータ競合の問題は解決できる。尚、変数Y、変数Zは変更の必要がないこともわかる。
FIG. 12 is an explanatory diagram illustrating the result of extracting a portion different from the second log from the first log.
In the information presented to the worker, as shown in FIG. 12, a thread and a variable that are differences are acquired and displayed from a log in which a problem has occurred. As shown in FIG. 12, it can be seen that by extracting the difference, a portion having a high possibility of a problem can be extracted from the portions where the variable is updated.
12 will be described in detail. From the result shown in FIG. 12A, there is a high possibility that there is a problem in the location where the thread B acquires / updates the variable X in the first log where the problem has occurred. From the result shown in FIG. 12 (b), it is understood that there is a high possibility that there is a problem in the location where the thread A acquires / updates the variable X in the first log where the problem has occurred. . Thus, by performing the exclusive control correctly and preventing the acquisition / update of the variable X from being executed at the same time, the problem of data contention occurring at the time of acquiring the first log can be solved. It can also be seen that the variables Y and Z do not need to be changed.

本実施例では、第1の実施の形態を説明したが、第2及び第3の実施の形態も、同様に一般的な情報処理装置を用いて実現できる。この場合、データフロー解析手段及び実行順序決定手段は、ログ収集プログラムの一部として組み込んでも良いし、それぞれ別のプログラムとして準備しても良い。また、上述のプログラムを、データ競合の問題箇所検出用プログラムとして、一体的に作成しても良く、プログラムの分割及び結合は、作成者の任意でよい。   In the present embodiment, the first embodiment has been described. However, the second and third embodiments can be similarly realized using a general information processing apparatus. In this case, the data flow analysis means and the execution order determination means may be incorporated as part of the log collection program, or may be prepared as separate programs. Further, the above-described program may be integrally created as a program for detecting a problem location of data conflict, and the creator may arbitrarily divide and combine the programs.

以上説明したように、本発明によれば、プロセスやスレッドをパラレルに実行したときのログとプロセスを個別に実行したときのログの差分箇所が問題箇所である可能性が高く、 その箇所を中心にログを確認することで問題箇所を早期に発見でき、知識や経験の少ない作業者にとっても、効果的に問題箇所を発見できることとなる。   As described above, according to the present invention, there is a high possibility that the difference between the log when the process or thread is executed in parallel and the log when the process is executed individually is a problem location. By checking the log, the problem part can be found at an early stage, and the trouble part can be found effectively even for an operator having little knowledge and experience.

即ち、上記構成及び動作によって、ログの中から、修正すべきデータ競合の問題箇所を検出する問題箇所検出用プログラム及び問題箇所検出システムを提供でき、また、問題箇所の検出方法を実現できる。   That is, with the above-described configuration and operation, it is possible to provide a problem location detection program and a problem location detection system for detecting a problem location of data conflict to be corrected from a log, and to realize a problem location detection method.

尚、上記説明では、係数(関数)を用いて、データ競合の検出方法を説明したが、データ競合は係数(関数)のみでは無い。例えば、データ競合が、メモリリソースや共有メモリファイル等の競合であっても、本発明は適用できる。   In the above description, the data conflict detection method is described using the coefficient (function). However, the data conflict is not limited to the coefficient (function). For example, the present invention can be applied even when data contention is contention for a memory resource, a shared memory file, or the like.

尚、本発明は、上記実施の形態、実施例に限定されるものではない。本発明は、発明の要旨を逸脱しない範囲で、構成や動作の変更を行なっても、同様の効果を奏する。   In addition, this invention is not limited to the said embodiment and Example. The present invention achieves the same effect even if the configuration or operation is changed without departing from the gist of the invention.

本発明によれば、データ競合の問題が発生した場合に、問題箇所を発見して修正するといった用途に適用できる。また、データ競合の問題を検出するツールの検査結果表示機能といった用途にも適用可能である。   INDUSTRIAL APPLICABILITY According to the present invention, when a data conflict problem occurs, the present invention can be applied to the use of finding and correcting a problem location. Further, the present invention can be applied to an application such as a test result display function of a tool that detects a data conflict problem.

110 対象プログラム格納手段
120 プログラム個別実行手段
130 第1のログ格納手段
140 第2のログ格納手段
150 差分抽出手段
160 データフロー解析手段
170 実行順序決定手段
200 情報処理装置
210 補助記憶装置
211 差分解析プログラム(差分抽出手段)
212 結果表示プログラム(提示手段)
213 ログ収集プログラム(個別実行手段)
214 対象プログラム(ソースコード)
110 Target Program Storage Means 120 Program Individual Execution Means 130 First Log Storage Means 140 Second Log Storage Means 150 Difference Extraction Means 160 Data Flow Analysis Means 170 Execution Order Determination Means 200 Information Processing Device 210 Auxiliary Storage Device 211 Difference Analysis Program (Difference extraction means)
212 Result display program (presentation means)
213 Log collection program (individual execution means)
214 Target program (source code)

Claims (18)

プロセス又はスレッドをパラレルに実行する検査対象プログラムを実行してデータ競合したときのログを、第1のログとして格納する第1のログ格納手段と、
前記検査対象プログラムのプロセス又はスレッドを個別に逐次実行する個別実行手段と、
前記個別実行手段の実行結果のログを、第2のログとして格納する第2のログ格納手段と、
前記第1のログと前記第2のログを比較してログの差分を抽出する差分抽出手段と
を備えたことを特徴とする検査対象プログラムのデータ競合の問題箇所検出システム。
A first log storage unit that stores a log when a data conflict occurs by executing a test target program that executes processes or threads in parallel;
Individual execution means for individually and sequentially executing processes or threads of the inspection target program;
Second log storage means for storing a log of the execution result of the individual execution means as a second log;
A system for detecting a problem portion of a data conflict of a program to be inspected, comprising: difference extraction means for extracting a difference between logs by comparing the first log and the second log.
前記差分抽出手段は、抽出した差分箇所に対応するプロセス又はスレッド、及び抽出した差分箇所に対応する前記プロセス又はスレッドの該当位置を特定するプログラム特定手段を有することを特徴とする請求項1記載の問題箇所検出システム。   The said difference extraction means has a program specification means which specifies the process or thread | sled corresponding to the extracted difference location, and the applicable position of the said process or thread | sled corresponding to the extracted difference location. Problem detection system. 前記差分抽出手段は、抽出した差分箇所に対応するソースコード、及び抽出した差分箇所に対応するソースコード上での該当位置を特定するソースコード特定手段を有することを特徴とする請求項1又は2に記載の問題箇所検出システム。   The said difference extraction means has a source code specific | specification means which specifies the source code corresponding to the extracted difference location, and the applicable position on the source code corresponding to the extracted difference location. The problem location detection system described in 1. 前記検査対象プログラムをデータフロー解析して、プロセス又はスレッドを実行したときの変数情報の受け渡し関係を解析するデータフロー解析手段を更に有し、
前記検査対象プログラムの問題箇所の検査時に、
前記検査対象プログラムの変数情報毎に、プロセス又はスレッドを実行した最終結果に作用するか否かを解析し、
解析結果に基づいて、抽出した差分から、最終結果に作用しない変数情報に関する差分を除外する
ことを特徴とする請求項1ないし3の何れか一記載の問題箇所検出システム。
Data flow analysis is performed on the program to be inspected, and further includes data flow analysis means for analyzing a variable information passing relationship when a process or thread is executed,
When inspecting the problem part of the inspection target program,
Analyzing whether or not it affects the final result of executing a process or thread for each variable information of the program to be inspected,
The problem point detection system according to any one of claims 1 to 3, wherein a difference relating to variable information that does not affect the final result is excluded from the extracted difference based on the analysis result.
プロセス又はスレッドを実行する複数の順序の組合せを導き出す実行順序決定手段を更に有し、
前記実行順序決定手段の導き出した複数の実行順序に基づいて、前記検査対象プログラムに記述されたプロセス又はスレッドを逐次実行し、実行結果を前記第2のログ格納手段に格納する
ことを特徴とする請求項1ないし4の何れか一記載の問題箇所検出システム。
Execution order determining means for deriving a combination of a plurality of orders for executing processes or threads;
The process or thread described in the program to be inspected is sequentially executed based on a plurality of execution orders derived by the execution order determination unit, and the execution result is stored in the second log storage unit. The problem point detection system according to any one of claims 1 to 4.
抽出したログの差分箇所を作業者に認知可能に提示する提示手段を有し、
前記ログの差分箇所は、経過及び結果の異なるログ、前記ログに対応するプロセス及びプロセスの該当位置、前記ログに対応するスレッド及びスレッドの該当位置、前記プロセス若しくは前記スレッド又は前記ログに対応するソースコード及びソースコードの該当位置の何れか又は組み合わせである
ことを特徴とする請求項1ないし5の何れか一記載の問題箇所検出システム。
It has a presentation means to present the difference part of the extracted log to the worker so that it can be recognized,
The difference part of the log includes a log having a different process and result, a process corresponding to the log and a corresponding position of the process, a thread corresponding to the log and a corresponding position of the thread, the process or the thread or a source corresponding to the log. The problem location detection system according to any one of claims 1 to 5, wherein the system is one or a combination of corresponding positions of a code and a source code.
情報処理装置に、プロセス又はスレッドをパラレルに実行するとデータ競合するプログラムである検査対象プログラムを格納し、
前記検査対象プログラムのデータ競合したときのログを、第1のログとして格納し、
前記検査対象プログラムのプロセス又はスレッドを個別に逐次実行して、実行結果のログを、第2のログとして格納し、
情報処理装置を用いて、前記第1のログと前記第2のログを比較してログの差分を抽出し、
抽出したログの差分箇所を作業者に認知可能に提示する
ことを特徴とする検査対象プログラムのデータ競合の問題箇所検出方法。
In the information processing apparatus, a test target program that is a data conflicting program when executing processes or threads in parallel is stored,
A log when data conflict of the inspection target program is stored as a first log,
The process or thread of the program to be inspected is sequentially executed separately, and a log of the execution result is stored as a second log,
Using the information processing apparatus, the first log and the second log are compared to extract a log difference,
A method for detecting a problem portion of data conflict of a program to be inspected, characterized in that a difference portion of an extracted log is presented to a worker so as to be recognized.
前記ログの差分の抽出結果から、抽出した差分箇所に対応するプロセス又はスレッド、及び抽出した差分箇所に対応する前記プロセス又はスレッドの該当位置を特定し、
特定した結果を作業者に認知可能に提示する
ことを特徴とする請求項7記載の問題箇所検出方法。
From the log difference extraction results, identify the process or thread corresponding to the extracted difference location, and the corresponding position of the process or thread corresponding to the extracted difference location,
The problem location detection method according to claim 7, wherein the identified result is presented to an operator in a recognizable manner.
前記ログの差分の抽出結果から、抽出した差分箇所に対応するソースコード、及び抽出した差分箇所に対応するソースコード上での該当位置を特定し、
特定した結果を作業者に認知可能に提示する
ことを特徴とする請求項7又は8に記載の問題箇所検出方法。
From the extraction result of the log difference, identify the source code corresponding to the extracted difference location, and the corresponding position on the source code corresponding to the extracted difference location,
The problem location detection method according to claim 7 or 8, wherein the identified result is presented to an operator in a recognizable manner.
前記検査対象プログラムを情報処理装置を用いてデータフロー解析して、プロセス又はスレッドを実行したときの変数情報の受け渡し関係を解析し、
前記検査対象プログラムの変数情報毎に、プロセス又はスレッドを実行した最終結果に作用するか否かを解析し、
解析結果に基づいて、抽出した差分から、最終結果に作用しない変数情報に関する差分を除外する
ことを特徴とする請求項7ないし9の何れか一記載の問題箇所検出方法。
Analyzing data flow of the program to be inspected using an information processing device, analyzing the passing relationship of variable information when executing a process or thread,
Analyzing whether or not it affects the final result of executing a process or thread for each variable information of the program to be inspected,
10. The problem location detection method according to claim 7, wherein differences relating to variable information that does not act on the final result are excluded from the extracted differences based on the analysis results.
プロセス又はスレッドを実行する複数の順序の組合せを導き出し、
前記導き出した複数の実行順序に基づいて、前記検査対象プログラムに記述されたプロセス又はスレッドを逐次実行し、実行結果を前記第2のログとして格納する
ことを特徴とする請求項7ないし10の何れか一記載の問題箇所検出方法。
Deriving a combination of multiple sequences of executing processes or threads,
The process or thread described in the inspection target program is sequentially executed based on the plurality of derived execution orders, and the execution result is stored as the second log. The method for detecting a problem location according to any one of the above.
作業者に対するログの差分箇所の提示は、経過及び結果の異なるログ、前記ログに対応するプロセス及びプロセスの該当位置、前記ログに対応するスレッド及びスレッドの該当位置、前記プロセス若しくは前記スレッド又は前記ログに対応するソースコード及びソースコードの該当位置の何れか又は組み合わせである
ことを特徴とする請求項7ないし11の何れか一記載の問題箇所検出方法。
The log difference portion is presented to the worker by a log having a different process and result, a process corresponding to the log and a corresponding position of the process, a thread corresponding to the log and a corresponding position of the thread, the process or the thread or the log. 12. The problem location detection method according to claim 7, wherein the source code corresponds to any one of or a combination of the corresponding positions of the source code.
情報処理装置の制御部を、
プロセス又はスレッドをパラレルに実行する検査対象プログラムを実行してデータ競合したときのログを、第1のログとして格納する第1のログ格納手段と、
前記検査対象プログラムのプロセス又はスレッドを個別に逐次実行する個別実行手段と、
前記個別実行手段の実行結果のログを、第2のログとして格納する第2のログ格納手段と、
前記第1のログと前記第2のログを比較してログの差分を抽出する差分抽出手段として
機能させることを特徴とする検査対象プログラムのデータ競合の問題箇所検出用プログラム。
The control unit of the information processing device
A first log storage unit that stores a log when a data conflict occurs by executing a test target program that executes processes or threads in parallel;
Individual execution means for individually and sequentially executing processes or threads of the inspection target program;
Second log storage means for storing a log of the execution result of the individual execution means as a second log;
A program for detecting a problem location of a data conflict in a program to be inspected, which functions as a difference extraction unit that compares the first log and the second log and extracts a difference between the logs.
前記差分抽出手段は、抽出した差分箇所に対応するプロセス又はスレッド、及び抽出した差分箇所に対応する前記プロセス又はスレッドの該当位置を特定するプログラム特定手段を有することを特徴とする請求項13記載の問題箇所検出用プログラム。   The said difference extraction means has a program specification means which specifies the process or thread | sled corresponding to the extracted difference part, and the applicable position of the said process or thread | sled corresponding to the extracted difference part. Problem location detection program. 前記差分抽出手段は、抽出した差分箇所に対応するソースコード、及び抽出した差分箇所に対応するソースコード上での該当位置を特定するソースコード特定手段を有することを特徴とする請求項13又は14に記載の問題箇所検出用プログラム。   The said difference extraction means has a source code specific | specification means which specifies the applicable position on the source code corresponding to the extracted difference location, and the source code corresponding to the extracted difference location, characterized by the above-mentioned. The problem location detection program described in 1. 前記制御部を、前記検査対象プログラムをデータフロー解析して、プロセス又はスレッドを実行したときの変数情報の受け渡し関係を解析するデータフロー解析手段として機能させ、
前記検査対象プログラムの問題箇所の検査時に、
前記検査対象プログラムの変数情報毎に、プロセス又はスレッドを実行した最終結果に作用するか否かを解析し、
解析結果に基づいて、抽出した差分から、最終結果に作用しない変数情報に関する差分を除外する
ことを特徴とする請求項13ないし15の何れか一記載の問題箇所検出用プログラム。
The control unit performs a data flow analysis of the program to be inspected and functions as a data flow analysis unit that analyzes a variable information passing relationship when a process or thread is executed,
When inspecting the problem part of the inspection target program,
Analyzing whether or not it affects the final result of executing a process or thread for each variable information of the program to be inspected,
16. The problem location detection program according to claim 13, wherein differences relating to variable information that does not act on the final result are excluded from the extracted differences based on the analysis result.
前記制御部を、プロセス又はスレッドを実行する複数の順序の組合せを導き出す実行順序決定手段として機能させ、
前記実行順序決定手段の導き出した複数の実行順序に基づいて、前記検査対象プログラムに記述されたプロセス又はスレッドを逐次実行し、実行結果を前記第2のログ格納手段に格納する
ことを特徴とする請求項13ないし16の何れか一記載の問題箇所検出用プログラム。
Causing the control unit to function as an execution order determination unit that derives a combination of a plurality of orders for executing processes or threads;
The process or thread described in the program to be inspected is sequentially executed based on a plurality of execution orders derived by the execution order determination unit, and the execution result is stored in the second log storage unit. The problem part detection program according to any one of claims 13 to 16.
前記制御部を、抽出したログの差分箇所を作業者に認知可能に提示する提示手段として機能させ、
前記ログの差分箇所は、経過及び結果の異なるログ、前記ログに対応するプロセス及びプロセスの該当位置、前記ログに対応するスレッド及びスレッドの該当位置、前記プロセス若しくは前記スレッド又は前記ログに対応するソースコード及びソースコードの該当位置の何れか又は組み合わせである
ことを特徴とする請求項13ないし17の何れか一記載の問題箇所検出用プログラム。
The control unit functions as a presentation means for presenting the difference portion of the extracted log so as to be recognizable to the worker,
The difference part of the log includes a log having a different process and result, a process corresponding to the log and a corresponding position of the process, a thread corresponding to the log and a corresponding position of the thread, the process or the thread or a source corresponding to the log. The problem location detection program according to any one of claims 13 to 17, wherein the program is a corresponding position or a combination of a code and a source code.
JP2009081971A 2009-03-30 2009-03-30 System, method and program for detecting problematic point of data conflict Withdrawn JP2010237743A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009081971A JP2010237743A (en) 2009-03-30 2009-03-30 System, method and program for detecting problematic point of data conflict

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009081971A JP2010237743A (en) 2009-03-30 2009-03-30 System, method and program for detecting problematic point of data conflict

Publications (1)

Publication Number Publication Date
JP2010237743A true JP2010237743A (en) 2010-10-21

Family

ID=43092034

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009081971A Withdrawn JP2010237743A (en) 2009-03-30 2009-03-30 System, method and program for detecting problematic point of data conflict

Country Status (1)

Country Link
JP (1) JP2010237743A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017083979A (en) * 2015-10-26 2017-05-18 株式会社Screenホールディングス Log comparison method, log comparison program, and log comparison device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017083979A (en) * 2015-10-26 2017-05-18 株式会社Screenホールディングス Log comparison method, log comparison program, and log comparison device

Similar Documents

Publication Publication Date Title
US9342645B2 (en) Method for testing a computer program
EP2960799A1 (en) Defect localization in software integration tests
US10162739B2 (en) Test case generation system and recording medium wherein test case is recorded
CN111611154B (en) Regression testing method, device and equipment
CN113918465A (en) Compatibility testing method and device, electronic equipment and readable storage medium
JP2010122959A (en) Test support system, method, and program
JP6416588B2 (en) Source code verification system
JP2010237743A (en) System, method and program for detecting problematic point of data conflict
JP2009134360A (en) Model inspection system, model inspection method, and model inspection program
JP2001273169A (en) Device for generating program test specification
US10387532B2 (en) Manufacturing control system, manufacturing control method, and manufacturing control program
US20080195906A1 (en) Test pattern generation apparatus and test pattern generation method
JP2014059805A (en) Test case generation device and test case generation method for model-based control device
JP2007249765A (en) Program for detecting function call abnormal pattern in source program
JP2023047003A (en) Machine learning system, learning data collection method and learning data collection program
JP6723483B2 (en) Test case generation device, test case generation method, and test case generation program
JP5906965B2 (en) In-vehicle ECU evaluation system
JP5755861B2 (en) Test case generation apparatus, test case generation method, and test case generation program
JP2015197868A (en) Computer program checking apparatus
WO2014141352A1 (en) System controller
JP2016071774A (en) Verification support device, verification support method, and computer program
JP2010128513A (en) Model inspection device and model inspection method
JP2013008146A (en) Simple body program operation test device, method and program
JP2012247881A (en) Influence analysis method and influence analysis program
JP2015197869A (en) Computer program checking apparatus

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20120605