JP6903533B2 - Debug support device, debug support program - Google Patents

Debug support device, debug support program Download PDF

Info

Publication number
JP6903533B2
JP6903533B2 JP2017180869A JP2017180869A JP6903533B2 JP 6903533 B2 JP6903533 B2 JP 6903533B2 JP 2017180869 A JP2017180869 A JP 2017180869A JP 2017180869 A JP2017180869 A JP 2017180869A JP 6903533 B2 JP6903533 B2 JP 6903533B2
Authority
JP
Japan
Prior art keywords
test
small difference
source code
list
small
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017180869A
Other languages
Japanese (ja)
Other versions
JP2019057118A (en
Inventor
鈴木 賢
賢 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Digital Solutions 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 Toshiba Corp, Toshiba Digital Solutions Corp filed Critical Toshiba Corp
Priority to JP2017180869A priority Critical patent/JP6903533B2/en
Publication of JP2019057118A publication Critical patent/JP2019057118A/en
Application granted granted Critical
Publication of JP6903533B2 publication Critical patent/JP6903533B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は、ソフトウェア開発等において使用されるデバッグ支援装置、デバッグ支援プログラムに関する。 The present invention relates to a debug support device and a debug support program used in software development and the like.

バージョン管理システムにおいて、特定のバージョンAで試験合格になった後の別のバージョンBで試験不合格になるデグレードの場合に、AB間の各バージョンに対して試験合格不合格を二分探索することにより、試験合格から不合格への変化点であるコミットを特定するデバッグ支援機能がある。 In a version control system, in the case of a debug that passes the test in one version A and then fails the test in another version B, by binary search for the pass / fail test for each version between AB. , There is a debug support function to identify the commit that is the change point from passing the exam to failing the exam.

特開平6−35754号公報Japanese Unexamined Patent Publication No. 6-355754

しかしながら、従来のデバッグ支援機能においては、デグレード点をコミットの単位で特定しているため、該当コミットに含まれる差分が大きい場合には、開発担当者の技能、知識や経験則に基づいて差分の中から試験合格不合格の変化要因を解析してデグレード要因箇所を特定する必要があった。 However, in the conventional debug support function, the degradation point is specified in units of commits, so if the difference included in the commit is large, the difference will be based on the skill, knowledge, and rules of thumb of the person in charge of development. It was necessary to analyze the factors that changed the pass / fail of the test and identify the location of the degradation factor.

特にブランチ間のマージを行う際には、該当コミットに含まれるソースコード差分が大きくなりやすくデグレードも起こりやすいため、開発担当者がデグレード要因を解析してソースコードの該当箇所を特定する必要のあることが多かった。 Especially when merging between branches, the source code difference included in the commit is likely to be large and degradation is likely to occur, so it is necessary for the developer to analyze the degradation factor and identify the relevant part of the source code. There were many things.

また、テスト用データファイルを拡充する際には、拡充前データファイルが考慮していなかったコーナーケースを追加することによりプログラムの潜在欠陥が表れやすいが、どの追加データで潜在欠陥が表れるのかをテストケースによって完全に明らかにするのは難しいため、開発担当者が潜在欠陥を解析して当該データを特定する必要があった。 In addition, when expanding the test data file, latent defects in the program are likely to appear by adding corner cases that were not considered in the data file before expansion, but it is tested which additional data the latent defects appear in. Since it is difficult to clarify completely in some cases, it was necessary for developers to analyze potential defects to identify the data.

そのため、技能、知識や経験則を備えた開発担当者でなければソースコードおよびデータファイルの試験不合格要因箇所を特定するのが難しく、工数がかかるという問題があった。 Therefore, there is a problem that it is difficult to identify the cause of the test failure of the source code and the data file unless the person in charge of development has skills, knowledge, and empirical rules, and it takes man-hours.

本発明は上記の課題を解決するためになされたものであり、効率的にソースコードまたはデータファイルの試験不合格要因箇所を特定することを可能とするデバッグ支援装置、デバッグ支援プログラムを提供することを目的とする。 The present invention has been made to solve the above problems, and provides a debug support device and a debug support program that can efficiently identify the test failure factor part of the source code or the data file. With the goal.

実施形態によれば、デバッグ支援装置は、小差分リスト初期化部と小差分リスト探索部を有する。小差分リスト初期化部は、第1記憶部に記憶された第1試験合格ソースコードおよびデータファイルの第1データテーブルと、第2記憶部に記憶された試験不合格ソースコードおよびデータファイルの第2データテーブルとの差分を抽出して細分化した小差分のリストを作成して第3記憶部に記憶させる。小差分リスト探索部は、前記第1試験合格ソースコードおよびデータファイルに前記リストに含まれる小差分の組合せを適用して試験を実施することを繰り返し、試験に不合格となる小差分の組合せを探索して出力する。 According to the embodiment, the debug support device has a small difference list initialization unit and a small difference list search unit. The small difference list initialization unit is the first data table of the first test pass source code and data file stored in the first storage unit, and the test failure source code and data file stored in the second storage unit. 2 Extract the difference from the data table, create a subdivided list of small differences, and store it in the third storage unit. The small difference list search unit repeatedly performs the test by applying the combination of the small differences included in the list to the source code and the data file that passed the first test, and selects the combination of the small differences that fails the test. Search and output.

本実施形態におけるデバッグ支援装置の構成を示すブロック図。The block diagram which shows the structure of the debug support apparatus in this embodiment. 本実施形態におけるデバッグ支援装置において実現される機能構成を示すブロック図。The block diagram which shows the functional structure realized in the debug support apparatus in this embodiment. 第1実施形態の小差分リスト初期化部の処理を説明するフローチャート。The flowchart explaining the process of the small difference list initialization part of 1st Embodiment. 第1実施形態の試験合格中間ソースコードおよびデータファイル初期化部の処理を説明するフローチャート。The flowchart explaining the process of the test-passing intermediate source code and the data file initialization part of 1st Embodiment. 第1実施形態の試験不合格小差分リスト探索部の処理を説明するフローチャート。The flowchart explaining the process of the test failure small difference list search part of 1st Embodiment. 試験合格ソースコードおよびデータファイルのデータテーブルの一例を示す図。The figure which shows an example of the data table of a test passing source code and a data file. 試験不合格ソースコードおよびデータファイルのデータテーブルの一例を示す図。The figure which shows an example of the data table of the test failure source code and a data file. 小差分リストのデータテーブルの一例を示す図。The figure which shows an example of the data table of a small difference list. 小差分組合せ選択候補リストのデータテーブルの一例を示す図。The figure which shows an example of the data table of the small difference combination selection candidate list. 選択対象小差分組合せのデータテーブルの一例を示す図。The figure which shows an example of the data table of the small difference combination to be selected. 試験合格中間ソースコードおよびデータファイルのデータテーブルの一例を示す図。The figure which shows an example of the data table of the test passing intermediate source code and a data file. 更新試験合格中間ソースコードおよびデータファイルのデータテーブルの一例を示す図。The figure which shows an example of the data table of the intermediate source code and a data file which passed the update test. 更新小差分リストのデータテーブルの一例を示す図。The figure which shows an example of the data table of the update small difference list. 終了時小差分リストのデータテーブルの一例を示す図。The figure which shows an example of the data table of the small difference list at the end. 終了時試験合格中間ソースコードおよびデータファイルのデータテーブルの一例を示す図。The figure which shows an example of the data table of the intermediate source code and the data file which passed the examination at the end. 第2実施形態のデバッグ支援装置の構成を示すブロック図。The block diagram which shows the structure of the debug support apparatus of 2nd Embodiment. 第3実施形態の小差分組合せ選択候補リストのデータテーブルの一例を示す図。The figure which shows an example of the data table of the small difference combination selection candidate list of 3rd Embodiment.

以下、実施形態について図面を参照して説明する。
(第1実施形態)
第1実施形態のデバッグ支援装置及びデバッグ支援プログラムは、プログラムが試験で合格になったバージョンAのソースコードおよびデータファイルと不合格になったバージョンBのソースコードおよびデータファイルとの差分を抽出して細分化した小差分のリストを作成し、試験で合格になったソースコードおよびデータファイルに前記の小差分リストから取り出した小差分の組合せを適用して試験を実施することを繰返し、合格になった小差分組合せを用いて小差分のリストと試験で合格になったソースコードおよびデータファイルを更新することで、枝刈りをしながら試験不合格になる小差分の組合せで最小のものを探索する。
Hereinafter, embodiments will be described with reference to the drawings.
(First Embodiment)
The debug support device and the debug support program of the first embodiment extract the difference between the version A source code and data file in which the program passed the test and the version B source code and data file in which the program failed. Create a subdivided list of small differences, apply the combination of small differences extracted from the above small difference list to the source code and data files that passed the test, and repeat the test to pass. By updating the list of small differences and the source code and data files that passed the test using the small difference combination that became, search for the smallest combination of small differences that fails the test while pruning. To do.

これにより、開発担当者の技能、知識や経験則に基づく必要なく、自動的かつ効率的にソースコードまたはデータファイルの試験不合格要因箇所を特定することを可能にする。 This makes it possible to automatically and efficiently identify the factors that cause the source code or data file to fail the test, without the need to rely on the skills, knowledge, and rules of thumb of the developer.

図1は、第1実施形態におけるデバッグ支援装置1の構成を示すブロック図である。デバッグ支援装置1は、例えばパーソナルコンピュータによって実現される。デバッグ支援装置1は、プロセッサ2、メモリ3、記憶装置4、入力装置5、および表示装置6を有する。 FIG. 1 is a block diagram showing a configuration of the debug support device 1 according to the first embodiment. The debug support device 1 is realized by, for example, a personal computer. The debug support device 1 includes a processor 2, a memory 3, a storage device 4, an input device 5, and a display device 6.

プロセッサ2は、メモリ3に記憶された基本プログラム(OS)やアプリケーションプログラムを実行して、各種の機能を実現する。例えば、プロセッサ2は、デバッグ支援プログラムを実行することで、パーソナルコンピュータをデバッグ支援装置1として動作させる。プロセッサ2は、本実施形態におけるデバッグ支援プログラムを実行することにより、デバッグ支援処理を実行して、パーソナルコンピュータをデバッグ支援装置1として動作させる。 The processor 2 executes a basic program (OS) or an application program stored in the memory 3 to realize various functions. For example, the processor 2 operates the personal computer as the debug support device 1 by executing the debug support program. The processor 2 executes the debug support process by executing the debug support program according to the present embodiment, and operates the personal computer as the debug support device 1.

メモリ3は、プロセッサ2により実行されるプログラムや一時的なデータ等が記憶される。例えば、メモリ3には、記憶装置4から読み出されるデバッグ支援プログラム4Aなどの各種プログラムの他、各種処理で使用されるデータが記憶される。 The memory 3 stores a program executed by the processor 2, temporary data, and the like. For example, the memory 3 stores various programs such as the debug support program 4A read from the storage device 4, as well as data used in various processes.

記憶装置4は、各種のプログラムや各種データが記憶される。記憶装置4に記憶されるプログラムには、デバッグ支援プログラム4Aが含まれる。また、記憶装置4には、デバッグ支援プログラム4Aに基づくテスト支援処理で使用されるデータを記憶する記憶部10が設けられる。 The storage device 4 stores various programs and various data. The program stored in the storage device 4 includes the debug support program 4A. Further, the storage device 4 is provided with a storage unit 10 for storing data used in the test support process based on the debug support program 4A.

表示装置6は、LCD(Liquid Crystal Display)などであり、プロセッサ2の処理に応じた画面を表示させる。入力装置5は、キーボードやポインティングデバイスなどであり、作業者等により操作される。 The display device 6 is an LCD (Liquid Crystal Display) or the like, and displays a screen corresponding to the processing of the processor 2. The input device 5 is a keyboard, a pointing device, or the like, and is operated by an operator or the like.

図2は、本実施形態におけるデバッグ支援装置1において、プロセッサ2によりデバッグ支援プログラム4Aを実行することにより実現される機能構成を示すブロック図である。デバッグ支援装置1は、記憶部10とデバッグ支援処理部20とを備える。 FIG. 2 is a block diagram showing a functional configuration realized by executing the debug support program 4A by the processor 2 in the debug support device 1 in the present embodiment. The debug support device 1 includes a storage unit 10 and a debug support processing unit 20.

記憶部10は、試験合格ソースコードおよびデータファイル記憶部11、試験不合格ソースコードおよびデータファイル記憶部12、試験合格ソースコードおよびデータファイル記憶部13、及び小差分リスト記憶部14とを備える。 The storage unit 10 includes a test pass source code and data file storage unit 11, a test fail source code and data file storage unit 12, a test pass source code and data file storage unit 13, and a small difference list storage unit 14.

デバッグ支援処理部20は、小差分リスト初期化部21、試験合格中間ソースコードおよびデータファイル初期化部22、及び試験不合格小差分リスト探索部23を備える。 The debug support processing unit 20 includes a small difference list initialization unit 21, a test pass intermediate source code and data file initialization unit 22, and a test fail small difference list search unit 23.

試験合格ソースコードおよびデータファイル記憶部11は、試験合格になった特定のバージョンのソースコードおよびデータファイルとして、試験合格ソースコードおよびデータファイルのデータテーブル111を記憶する。 The test-passing source code and data file storage unit 11 stores the data table 111 of the test-passing source code and data file as the source code and data file of a specific version that has passed the test.

試験不合格ソースコードおよびデータファイル記憶部12は、試験不合格になった別のバージョンのソースコードおよびデータファイルとして、試験不合格ソースコードおよびデータファイルのデータテーブル121を記憶する。 The test-failed source code and data file storage unit 12 stores the data table 121 of the test-failed source code and data file as another version of the source code and data file that failed the test.

試験合格中間ソースコードおよびデータファイル記憶部13は、試験不合格になる小差分の組合せを探索する途中で、試験合格になった中間ソースコードおよびデータファイルとして、試験合格中間ソースコードおよびデータファイルのデータテーブル131を記憶する。 The intermediate source code and data file that passed the test The storage unit 13 used the intermediate source code and data file that passed the test as the intermediate source code and data file that passed the test while searching for a combination of small differences that failed the test. The data table 131 is stored.

小差分リスト記憶部14は、試験不合格になる小差分の組合せを探索する途中で、試験合格中間ソースコードおよびデータファイルのデータテーブル131と試験不合格ソースコードおよびデータファイルのデータテーブル121との差分を細分化した小差分リストとして、小差分リストのデータテーブル141を記憶する。 The small difference list storage unit 14 is in the process of searching for a combination of small differences that fails the test, and sets the data table 131 of the intermediate source code and data file that passed the test and the data table 121 of the source code and data file that failed the test. The data table 141 of the small difference list is stored as the small difference list in which the differences are subdivided.

小差分リスト初期化部21は、試験合格ソースコードおよびデータファイル記憶部11から試験合格ソースコードおよびデータファイルのデータテーブル111を取得し、試験不合格ソースコードおよびデータファイル記憶部12から試験不合格ソースコードおよびデータファイルのデータテーブル121を取得し、両者の差分を抽出して細分化した小差分リストを作成して、小差分リストのデータテーブル141の初期状態として小差分リスト記憶部14に保存する。 The small difference list initialization unit 21 acquires the data table 111 of the test pass source code and data file from the test pass source code and data file storage unit 11, and fails the test from the test fail source code and data file storage unit 12. The data table 121 of the source code and the data file is acquired, the difference between the two is extracted to create a subdivided small difference list, and the data table 141 of the small difference list is stored in the small difference list storage unit 14 as the initial state. To do.

試験合格中間ソースコードおよびデータファイル初期化部22は、試験合格ソースコードおよびデータファイル記憶部11から試験合格ソースコードおよびデータファイルのデータテーブル111を取得し、試験合格中間ソースコードおよびデータファイルのデータテーブル131の初期状態として試験合格中間ソースコードおよびデータファイル記憶部13に保存する。 The test pass intermediate source code and data file initialization unit 22 acquires the test pass source code and data file data table 111 from the test pass source code and data file storage unit 11, and the test pass intermediate source code and data file data. As the initial state of the table 131, the test-passed intermediate source code and the data file storage unit 13 are stored.

試験不合格小差分リスト探索部23は、試験合格中間ソースコードおよびデータファイル記憶部13から試験合格中間ソースコードおよびデータファイルのデータテーブル131を取得し、小差分リスト記憶部14から小差分リストのデータテーブル141と小差分組合せ選択候補リストのデータテーブル142を取得して小差分組合せ143を選択し、試験実行処理の結果に基づいて、更新小差分リストのデータテーブル144により小差分リスト記憶部14を、また更新試験合格中間ソースコードおよびデータファイルのデータテーブル132により試験合格中間ソースコードおよびデータファイル記憶部13を、それぞれ繰り返し更新することにより、終了時小差分リストのデータテーブル145および終了時試験合格ソースコードおよびデータファイルのデータテーブル133を出力する。 The test-failed small difference list search unit 23 acquires the data table 131 of the test-passed intermediate source code and data file from the test-passed intermediate source code and data file storage unit 13, and from the small-difference list storage unit 14 of the small-difference list. The data table 141 and the data table 142 of the small difference combination selection candidate list are acquired, the small difference combination 143 is selected, and based on the result of the test execution process, the data table 144 of the updated small difference list is used to store the small difference list storage unit 14. By repeatedly updating the data table 132 of the intermediate source code and the data file that passed the update test, the data table 145 and the test at the end of the small difference list at the end were repeatedly updated. The data table 133 of the pass source code and the data file is output.

終了時小差分リストのデータテーブル145は、探索目的である試験不合格になる小差分の組合せで最小のものである。 The data table 145 of the end small difference list is the smallest combination of small differences that fails the test, which is the purpose of the search.

終了時試験合格ソースコードおよびデータファイルのデータテーブル133は、試験不合格になる小差分の組合せで最小のものに対応した、試験合格になる小差分の組合せで最大のものを適用したソースコードおよびデータファイルである。 The data table 133 of the source code and data file that passed the test at the end corresponds to the smallest combination of small differences that pass the test, and the source code that applies the largest combination of small differences that pass the test. It is a data file.

なお、第1実施形態では、試験合格になる小差分の組合せを探索しているが、例えば予め決められた数以下となる小差分の組合せを探索するようにしても良い。 In the first embodiment, the combination of small differences that passes the test is searched for, but for example, the combination of small differences that is less than or equal to a predetermined number may be searched.

次に、第1実施形態のデバッグ支援装置1の動作について、図3、図4及び図5に示すフローチャートを参照しながら説明する。
図3は、第1実施形態の小差分リスト初期化部21の処理を説明するフローチャートである。小差分リスト初期化部21は、差分算出処理(ステップ211)と、細分化処理(ステップ212)とを実行する。
Next, the operation of the debug support device 1 of the first embodiment will be described with reference to the flowcharts shown in FIGS. 3, 4, and 5.
FIG. 3 is a flowchart illustrating the processing of the small difference list initialization unit 21 of the first embodiment. The small difference list initialization unit 21 executes the difference calculation process (step 211) and the subdivision process (step 212).

まず、小差分リスト初期化部21による差分算出処理(ステップ211)について説明する。
小差分リスト初期化部21は、試験合格ソースコードおよびデータファイル記憶部11から試験合格ソースコードおよびデータファイルのデータテーブル111を取得し、試験不合格ソースコードおよびデータファイル記憶部12から試験不合格ソースコードおよびデータファイルのデータテーブル121を取得する。また、小差分リスト初期化部21は、データファイルのデータテーブル111と試験不合格ソースコードおよびデータファイルのデータテーブル121との差分を算出する。その際、差分算出処理211は、例えば一般に利用される差分算出法であるWuのアルゴリズムや動的計画法など、またはそれらを実装したdiffツールなどを用いることができる。
First, the difference calculation process (step 211) by the small difference list initialization unit 21 will be described.
The small difference list initialization unit 21 acquires the data table 111 of the test pass source code and data file from the test pass source code and data file storage unit 11, and fails the test from the test fail source code and data file storage unit 12. Acquire the data table 121 of the source code and the data file. Further, the small difference list initialization unit 21 calculates the difference between the data table 111 of the data file and the test-failed source code and the data table 121 of the data file. At that time, for the difference calculation process 211, for example, a Wu algorithm or a dynamic programming method, which is a commonly used difference calculation method, or a diff tool that implements them can be used.

図6は、試験合格ソースコードおよびデータファイルのデータテーブル111の一例を示す図である。試験合格ソースコードおよびデータファイルのデータテーブル111には、ファイルパス(ファイル名)と、当該ファイル内容とが格納されている。 FIG. 6 is a diagram showing an example of a data table 111 of a test-passing source code and a data file. The file path (file name) and the contents of the file are stored in the data table 111 of the test-passing source code and the data file.

図7は、試験不合格ソースコードおよびデータファイルのデータテーブル121の一例を示す図である。試験不合格ソースコードおよびデータファイルのデータテーブル121は、ファイルパス(ファイル名)と、当該ファイル内容とが格納されている。 FIG. 7 is a diagram showing an example of the data table 121 of the test-failed source code and the data file. The data table 121 of the test-failed source code and the data file stores the file path (file name) and the contents of the file.

次に、小差分リスト初期化部21による細分化処理(ステップ212)について説明する。
小差分リスト初期化部21は、差分算出処理により算出した差分を小差分に細分化し、小差分リストのデータテーブル141の初期状態として小差分リスト記憶部14に保存する。小差分に細分化する単位は、例えば、差分のうち1行を1小差分とする、または差分のうち連続する行を1小差分とする。図6及び図7に示すデータテーブル111,121の場合、例えば、ファイル名が「family.txt」のデータファイルについては差分のうち1行を1小差分とし、ファイル名が「discount.c」のソースコードについては差分のうち連続する行を1小差分とする。
Next, the subdivision process (step 212) by the small difference list initialization unit 21 will be described.
The small difference list initialization unit 21 subdivides the difference calculated by the difference calculation process into small differences, and stores the difference as the initial state of the data table 141 of the small difference list in the small difference list storage unit 14. As the unit for subdividing into small differences, for example, one line of the differences is defined as one small difference, or consecutive lines of the differences are defined as one small difference. In the case of the data tables 111 and 121 shown in FIGS. 6 and 7, for example, for a data file whose file name is "family.txt", one line of the difference is set as one minor difference, and the file name is "discount.c". For the source code, the continuous line of the difference is set as one small difference.

差分のうち1行を1小差分とする場合、行単位で最小の試験不合格になる小差分の組合せを算出できる代わりに、探索対象となる小差分の組合せが後者よりも多いために処理時間が長くなる。差分のうち連続する行を1小差分とする場合、探索対象となる小差分の組合せが前者よりも少ないために処理時間が短くなる代わりに、連続する行単位で最小の試験不合格になる小差分の組合せまでしか算出できず、1小差分が行単位で最小の試験不合格になる小差分の組合せより大きい、あるいは同じとなる。 When one line of the difference is one small difference, the combination of small differences that fails the minimum test can be calculated for each line, but the processing time is larger than the latter because there are more combinations of small differences to be searched. Becomes longer. When consecutive lines of the difference are set as one small difference, the number of combinations of small differences to be searched is smaller than that of the former, so that the processing time is shortened. Only the combination of differences can be calculated, and one small difference is larger than or the same as the combination of small differences that causes the minimum test failure in line units.

なお、前述した小差分リスト初期化部21による細分化処理では、データファイルについては差分のうち1行を1小差分として、ソースコードについては差分のうち連続する行を1小差分としているが、これに限定されるものではない。 In the subdivision processing by the small difference list initialization unit 21 described above, one line of the difference is set as one small difference for the data file, and one continuous line of the difference is set as one small difference for the source code. It is not limited to this.

図8は、小差分リストのデータテーブル141の一例を示す図である。小差分リストのデータテーブル141は、小差分毎に付される通番IDと、ファイルパス(ファイル名)と、操作種別(挿入、削除、置換)と、合格側行範囲と、不合格側行範囲と、差分の不合格側の内容とが格納されている。 FIG. 8 is a diagram showing an example of the data table 141 of the small difference list. The data table 141 of the small difference list contains a serial number ID assigned to each small difference, a file path (file name), an operation type (insert, delete, replace), a pass side line range, and a fail side line range. And the contents of the failing side of the difference are stored.

図4は、第1実施形態の試験合格中間ソースコードおよびデータファイル初期化部22の処理を説明するフローチャートである。試験合格中間ソースコードおよびデータファイル初期化部22は、コピー処理(ステップ221)を実行する。 FIG. 4 is a flowchart illustrating the processing of the test-passing intermediate source code and the data file initialization unit 22 of the first embodiment. The test-passing intermediate source code and data file initialization unit 22 executes a copy process (step 221).

試験合格中間ソースコードおよびデータファイル初期化部22は、コピー処理により、試験合格ソースコードおよびデータファイル記憶部11から試験合格ソースコードおよびデータファイルのデータテーブル111を取得し、このデータテーブル111を試験合格中間ソースコードおよびデータファイルのデータテーブル131の初期状態として試験合格中間ソースコードおよびデータファイル記憶部13に保存する。 The test pass intermediate source code and data file initialization unit 22 acquires the test pass source code and data file data table 111 from the test pass source code and data file storage unit 11 by copy processing, and tests this data table 111. The pass intermediate source code and data file are stored in the test pass intermediate source code and data file storage unit 13 as the initial state of the data table 131 of the pass intermediate source code and data file.

図11は、試験合格中間ソースコードおよびデータファイルのデータテーブル131の一例を示す図である。試験合格中間ソースコードおよびデータファイルのデータテーブル131は、ファイルパス(ファイル名)と、当該ファイル内容とが格納されている。 FIG. 11 is a diagram showing an example of the data table 131 of the test-passing intermediate source code and the data file. The data table 131 of the intermediate source code and the data file that passed the test stores the file path (file name) and the contents of the file.

図5は、第1実施形態の試験不合格小差分リスト探索部23の処理を説明するフローチャートである。試験不合格小差分リスト探索部23は、小差分組合せループ処理(ステップ231)、小差分組合せ取得処理(ステップ232)、差分適用処理(ステップ233)、試験実行処理(ステップ234)、試験合格中間ソースコードおよびデータファイル更新処理(ステップ235)、小差分リスト更新処理(ステップ236)、小差分組合せループ終端(ステップ237)、及び合格判定処理(ステップ238)を実行する。 FIG. 5 is a flowchart illustrating the processing of the test failure small difference list search unit 23 of the first embodiment. The test failure small difference list search unit 23 includes a small difference combination loop process (step 231), a small difference combination acquisition process (step 232), a difference application process (step 233), a test execution process (step 234), and an intermediate test pass. The source code and data file update process (step 235), the small difference list update process (step 236), the end of the small difference combination loop (step 237), and the pass determination process (step 238) are executed.

試験不合格小差分リスト探索部23は、小差分組合せループ処理(ステップ231)により、小差分組合せ選択候補リストのデータテーブル142を取得し、リストの各行を順番に選択して小差分組合せ取得処理(ステップ232)以降を実行する。 The test failure small difference list search unit 23 acquires the data table 142 of the small difference combination selection candidate list by the small difference combination loop processing (step 231), selects each row of the list in order, and performs the small difference combination acquisition processing. (Step 232) and subsequent steps are executed.

図9は、小差分組合せ選択候補リストのデータテーブル142の一例を示す図である。小差分組合せ選択候補リストのデータテーブル142は、小差分リストのデータテーブル141の通番IDの全ての組合せを漏れなくリストアップしたものが格納されている。すなわち、小差分組合せ選択候補リストのデータテーブル142には、全ての小差分の組合せが定義される。 FIG. 9 is a diagram showing an example of the data table 142 of the small difference combination selection candidate list. The data table 142 of the small difference combination selection candidate list stores a list of all combinations of serial number IDs of the data table 141 of the small difference list without omission. That is, all the combinations of small differences are defined in the data table 142 of the small difference combination selection candidate list.

試験不合格小差分リスト探索部23は、小差分組合せ取得処理(ステップ232)により、小差分組合せ選択候補リストのデータテーブル142のうちで小差分組合せループ処理231で選択された行に対応する小差分リストのデータテーブル141の行を、選択対象小差分組合せのデータテーブル143として取得する。 The test-failed small difference list search unit 23 uses the small difference combination acquisition process (step 232) to correspond to the row selected in the small difference combination loop process 231 in the data table 142 of the small difference combination selection candidate list. The row of the data table 141 of the difference list is acquired as the data table 143 of the selected small difference combination.

図10は、選択対象小差分組合せのデータテーブル143の一例を示す図である。選択対象小差分組合せのデータテーブル143は、通番IDと、ファイルパス(ファイル名)と、操作種別(挿入、削除、置換)と、合格側行範囲と、不合格側行範囲と、差分の不合格側の内容とが格納されている。図10は、図9に示すID組合せ「1」に対応する行に対応する選択対象小差分組合せのデータテーブル143である。例えば、図9に示すID組合せ「1,2,3」に対応する選択対象小差分組合せのデータテーブル143では、通番ID「1,2,3」のデータが含まれる。 FIG. 10 is a diagram showing an example of the data table 143 of the selection target small difference combination. In the data table 143 of the small difference combination to be selected, the serial number ID, the file path (file name), the operation type (insert, delete, replace), the pass side line range, the fail side line range, and the difference are not found. The contents of the passing side are stored. FIG. 10 is a data table 143 of the selection target small difference combination corresponding to the row corresponding to the ID combination “1” shown in FIG. For example, in the data table 143 of the selection target small difference combination corresponding to the ID combination “1, 2, 3” shown in FIG. 9, the data of the serial number ID “1, 2, 3” is included.

試験不合格小差分リスト探索部23は、差分適用処理(ステップ233)により、試験合格中間ソースコードおよびデータファイルのデータテーブル131に対して、選択対象小差分組合せのデータテーブル143の内容(小差分)を適用して、試験対象とするソースコードおよびデータファイルを生成する。試験不合格小差分リスト探索部23は、選択対象小差分組合せのデータテーブル143の操作種別が「挿入」の場合には該当行に差分の不合格側の内容を挿入し、操作種別が「削除」の場合には該当行を削除し、操作種別が「置換」の場合には該当行を差分の不合格側の内容で置換する。その際には一般に利用されるpatchツールを用いることができる。 The test-failed small-difference list search unit 23 uses the difference application process (step 233) to refer to the data table 131 of the test-passed intermediate source code and data file with the contents (small difference) of the data table 143 of the selected small difference combination. ) Is applied to generate the source code and data file to be tested. When the operation type of the data table 143 of the selected small difference combination is "insert", the test-failed small difference list search unit 23 inserts the contents of the failing side of the difference in the corresponding line, and the operation type is "delete". In the case of "", the corresponding line is deleted, and in the case of the operation type "Replace", the corresponding line is replaced with the contents of the failing side of the difference. In that case, a commonly used patch tool can be used.

試験不合格小差分リスト探索部23は、試験実行処理(ステップ234)により、差分適用後のソースコードおよびデータファイルの試験を実施する。試験不合格小差分リスト探索部23は、差分適用後のソースコードおよびデータファイルについて試験を実施した結果、試験合格あるいは試験不合格を判定する(ステップ238)。試験合格と判定される場合、試験不合格小差分リスト探索部23は、試験合格中間ソースコードおよびデータファイル更新処理(ステップ235)と小差分リスト更新処理(ステップ236)を実行する。 The test failure small difference list search unit 23 tests the source code and the data file after applying the difference by the test execution process (step 234). The test-failed small difference list search unit 23 determines whether the test has passed or failed as a result of conducting the test on the source code and the data file after applying the difference (step 238). When it is determined that the test has passed, the test-failed small difference list search unit 23 executes the test-passed intermediate source code and data file update process (step 235) and the small difference list update process (step 236).

試験不合格小差分リスト探索部23は、試験合格中間ソースコードおよびデータファイル更新処理(ステップ235)により、差分適用後のソースコードおよびデータファイルである、更新試験合格中間ソースコードおよびデータファイルのデータテーブル132で試験合格中間ソースコードおよびデータファイルのデータテーブル131を更新する。 The test-failed small difference list search unit 23 uses the test-passed intermediate source code and data file update process (step 235) to update the data of the updated test-passed intermediate source code and data file, which are the source code and data file after applying the difference. Update the data table 131 of the test pass intermediate source code and data file in table 132.

図12は、更新試験合格中間ソースコードおよびデータファイルのデータテーブル132の一例を示す図である。更新試験合格中間ソースコードおよびデータファイルのデータテーブル132は、ファイルパスと、当該ファイル内容とが格納されている。図12に示すデータテーブル132は、図11に示す試験合格中間ソースコードおよびデータファイルのデータテーブル131に対して、図10に示す選択対象小差分組合せのデータテーブル143の内容が適用されたことにより、ファイル名が「discount.c」のソースコードの2行目「#include<stdio.h>」が削除されている。 FIG. 12 is a diagram showing an example of the data table 132 of the intermediate source code and the data file that passed the update test. The data table 132 of the intermediate source code and the data file that passed the update test stores the file path and the contents of the file. The data table 132 shown in FIG. 12 is obtained by applying the contents of the data table 143 of the selection target small difference combination shown in FIG. 10 to the data table 131 of the test-passing intermediate source code and the data file shown in FIG. , The second line "#include <stdio.h>" of the source code whose file name is "discount.c" has been deleted.

また、試験不合格小差分リスト探索部23は、小差分リスト更新処理(ステップ236)により、試験合格の場合に小差分リストのデータテーブル141から当該小差分の組合せを削除し、合格側行を更新試験合格中間ソースコードおよびデータファイルのデータテーブル132に対応したものに更新した、更新小差分リストのデータテーブル144で小差分リストのデータテーブル141を更新する。 Further, the test-failed small-difference list search unit 23 deletes the combination of the small-differences from the data table 141 of the small-difference list when the test is passed by the small-difference list update process (step 236), and sets the pass side row. The data table 141 of the small difference list is updated with the data table 144 of the updated small difference list, which has been updated to correspond to the data table 132 of the intermediate source code and the data file that passed the update test.

試験不合格小差分リスト探索部23は、小差分リストのデータテーブル141および試験合格中間ソースコードおよびデータファイル131を更新した後、小差分組合せループ処理231の最初からループ処理を実行する。このとき、前回の小差分組合せループ処理231の開始時と比べて小差分リストのデータテーブル141の要素数が一つ以上減っており、小差分組合せループ処理231が終了するまでの繰り返し回数の期待値は減っている。 The test-failed small-difference list search unit 23 updates the data table 141 of the small-difference list, the test-passed intermediate source code, and the data file 131, and then executes the loop processing from the beginning of the small-difference combination loop processing 231. At this time, the number of elements in the data table 141 of the small difference list is reduced by one or more compared to the start of the previous small difference combination loop process 231, and the expected number of repetitions until the small difference combination loop process 231 ends is expected. The value is decreasing.

図13は、更新小差分リストのデータテーブル144の一例を示す図である。更新小差分リストのデータテーブル144は、通番IDと、ファイルパス(ファイル名)と、操作種別(挿入、削除、置換)と、合格側行範囲と、不合格側行範囲と、差分の不合格側の内容とが格納されている。 FIG. 13 is a diagram showing an example of the data table 144 of the update small difference list. The data table 144 of the update small difference list shows the serial number ID, the file path (file name), the operation type (insert, delete, replace), the pass side line range, the fail side line range, and the difference failure. The contents of the side are stored.

一方、試験不合格小差分リスト探索部23は、差分適用後のソースコードおよびデータファイルについて試験を実施した結果、試験不合格と判定される場合(ステップ238、不合格)、小差分組合せループ終端(ステップ237)において、試験不合格で小差分の組合せに残りがある場合には次の組合せを選択して小差分組合せループ処理231以降の処理を再開する。試験不合格小差分リスト探索部23は、試験不合格で小差分組合せ選択候補リストのデータテーブル142に残りの小差分の組合せがない場合には処理を終了する。 On the other hand, when the test failure small difference list search unit 23 determines that the test fails as a result of conducting the test on the source code and the data file after applying the difference (step 238, fails), the small difference combination loop termination. In (step 237), if the test fails and there is a remaining small difference combination, the next combination is selected and the processing after the small difference combination loop processing 231 is restarted. The test failure small difference list search unit 23 ends the process when the test fails and there is no remaining small difference combination in the data table 142 of the small difference combination selection candidate list.

試験不合格小差分リスト探索部23は、処理終了時、小差分リストのデータテーブル141を終了時小差分リストのデータテーブル145として出力し、試験合格中間ソースコードおよびデータファイルのデータテーブル131を終了時試験合格中間ソースコードおよびデータファイルのデータテーブル133として出力する。 At the end of processing, the test-failed small-difference list search unit 23 outputs the data table 141 of the small-difference list as the data table 145 of the small-difference list at the end, and ends the data table 131 of the test-passed intermediate source code and data file. When the test is passed, it is output as the data table 133 of the intermediate source code and the data file.

図14は、終了時小差分リストのデータテーブル145の一例を示す図である。終了時小差分リストのデータテーブル145は、通番IDと、ファイルパス(ファイル名)と、操作種別(挿入、削除、置換)と、合格側行範囲と、不合格側行範囲と、差分の不合格側の内容とが格納されている。終了時小差分リストのデータテーブル145の項目は、小差分単位での試験不合格の真因箇所、および真因箇所に依存する箇所によって構成されている。 FIG. 14 is a diagram showing an example of the data table 145 of the end small difference list. The data table 145 of the small difference list at the end shows the serial number ID, the file path (file name), the operation type (insert, delete, replace), the pass side line range, the fail side line range, and the difference. The contents of the passing side are stored. The items in the data table 145 of the small difference list at the end are composed of the root cause part of the test failure in the small difference unit and the part depending on the root cause part.

図14に示すように、終了時小差分リストのデータテーブル145から、ファイル名「discount.c」のソースコードの合格側行範囲「15」、不合格側行範囲「15」の内容と、ファイル名「family.txt」のデータファイルの合格側行範囲「13」、不合格側行範囲「14」の内容がデグレード要因箇所であることが特定できる。 As shown in FIG. 14, from the data table 145 of the small difference list at the end, the contents of the pass side line range “15” and the fail side line range “15” of the source code of the file name “discount.c” and the file. It can be identified that the contents of the pass side line range "13" and the fail side line range "14" of the data file with the name "family.txt" are the degradation factor points.

図15は、終了時試験合格中間ソースコードおよびデータファイルのデータテーブル133の一例を示す図である。終了時試験合格中間ソースコードおよびデータファイルのデータテーブル133は、ファイルパスと、当該ファイル内容とが格納されている。 FIG. 15 is a diagram showing an example of data table 133 of the intermediate source code and the data file that passed the final test. The data table 133 of the intermediate source code and the data file that passed the test at the end stores the file path and the contents of the file.

終了時試験合格中間ソースコードおよびデータファイルのデータテーブル133では、図14に示す終了時小差分リストのデータテーブル145の内容を含まない、試験合格になる小差分の組合せにより構成されている。 The data table 133 of the intermediate source code and the data file that passed the test at the end is composed of a combination of small differences that pass the test, not including the contents of the data table 145 of the small difference list at the end shown in FIG.

このようにして、第1実施形態のデバッグ支援装置1では、プログラムが試験で合格になったバージョンAのソースコードおよびデータファイル(試験合格ソースコードおよびデータファイルのデータテーブル111)と、不合格になったバージョンBのソースコードおよびデータファイル(試験不合格ソースコードおよびデータファイルのデータテーブル121)との差分を抽出して細分化した小差分のリスト(小差分リストのデータテーブル141)を作成し、試験で合格になったソースコードおよびデータファイルに小差分リストから取り出した小差分の組合せを適用して試験を実施することを繰返し、合格になった小差分組合せを用いて小差分のリストと試験で合格になったソースコードおよびデータファイルを更新することで枝刈り(不要な探索の打ち切り)をしながら不合格になる小差分の組合せで最小のものを探索することができる。すなわち、デグレード点をソースコードおよびデータファイルに対するコミットの単位で特定するのではなく、コミットを構成する小差分組合せの単位で特定することにより、開発担当者の技能、知識や経験則に基づいて差分の中から試験合格不合格の変化要因を解析する必要がなく、自動的かつ効率的にソースコードまたはデータファイルの試験不合格要因箇所を特定することが可能となる。 In this way, in the debug support device 1 of the first embodiment, the version A source code and data file (test pass source code and data file data table 111) in which the program passed the test are rejected. A subdivided list of small differences (data table 141 of the small difference list) is created by extracting the differences from the version B source code and data file (data table 121 of the test-failed source code and data file). , Repeat the test by applying the combination of small differences extracted from the small difference list to the source code and data file that passed the test, and use the small difference combination that passed the test to create a list of small differences. By updating the source code and data file that passed the test, it is possible to search for the smallest combination of small differences that fail while pruning (discontinuing unnecessary searches). That is, by specifying the degradation point not in units of commits to source code and data files, but in units of small difference combinations that make up commits, differences are based on the skills, knowledge, and rules of thumb of developers. It is not necessary to analyze the factors that change the pass / fail of the test, and it is possible to automatically and efficiently identify the factors that cause the test to fail in the source code or data file.

(第2実施形態)
次に、第2実施形態のデバッグ支援装置1Bについて説明する。
図16は、第2実施形態のデバッグ支援装置1Bの構成を示すブロック図である。第2実施形態のデバッグ支援装置1Bは、記憶部10と、デバッグ支援処理部20Aと、デバッグ支援処理部20Bとを備える。なお、デバッグ支援装置1Bは、基本的に第1実施形態のデバッグ支援装置1と同様に構成されるものとし、同じ名称を付した構成部については第1実施形態と同じものとして詳細な説明を省略する。
(Second Embodiment)
Next, the debug support device 1B of the second embodiment will be described.
FIG. 16 is a block diagram showing a configuration of the debug support device 1B of the second embodiment. The debug support device 1B of the second embodiment includes a storage unit 10, a debug support processing unit 20A, and a debug support processing unit 20B. The debug support device 1B is basically configured in the same manner as the debug support device 1 of the first embodiment, and the components with the same names are described in detail as the same as those of the first embodiment. Omit.

記憶部10は、試験合格ソースコードおよびデータファイル記憶部11と、試験不合格ソースコードおよびデータファイル記憶部12と、試験合格ソースコードおよびデータファイル記憶部13と、小差分リスト記憶部14とを備える。 The storage unit 10 includes a test pass source code and data file storage unit 11, a test fail source code and data file storage unit 12, a test pass source code and data file storage unit 13, and a small difference list storage unit 14. Be prepared.

デバッグ支援処理部20Aは、小差分リスト初期化部21と、試験合格中間ソースコードおよびデータファイル初期化部22とを備える。 The debug support processing unit 20A includes a small difference list initialization unit 21 and a test-passing intermediate source code and data file initialization unit 22.

デバッグ支援処理部20Bは、複数の試験不合格小差分リスト探索部23(23−3,23−2,23−3)を備える。複数の試験不合格小差分リスト探索部23は、小差分組合せ選択候補リストのデータテーブル142からそれぞれ異なる小差分組合せを選択して、並列に、それぞれ第1実施形態の試験不合格小差分リスト探索部23と同様に処理を実行する。 The debug support processing unit 20B includes a plurality of test-failed small difference list search units 23 (23-3, 23-2, 23-3). The plurality of test-failed small-difference list search units 23 select different small-difference combinations from the data table 142 of the small-difference combination selection candidate list, and search for the test-failed small-difference list of the first embodiment in parallel. The process is executed in the same manner as in the part 23.

このように、第2実施形態のデバッグ支援装置1Bによれば、複数の試験不合格小差分リスト探索部23を複数並列に配置したことにより、それぞれの試験不合格小差分リスト探索部23が異なる小差分の組合せを選択して同時並列に探索することが可能になるため、処理時間を短くすることができる。小差分組合せ選択候補リストのデータテーブル142にある小差分の組合せの全てに対して総当たりで探索すると、小差分の数が増えるほど組合せ数が増大して、試験不合格小差分リスト探索部23における処理の繰り返し回数がきわめて多くなるが、試験不合格小差分リスト探索部23を複数設けて平行に処理することで、探索が終了するまでにかかる時間を現実的な範囲に収めることが可能となる。 As described above, according to the debug support device 1B of the second embodiment, since a plurality of test-failed small difference list search units 23 are arranged in parallel, each test-failed small difference list search unit 23 is different. Since it is possible to select a combination of small differences and search in parallel at the same time, the processing time can be shortened. When a round-robin search is performed for all the small difference combinations in the data table 142 of the small difference combination selection candidate list, the number of combinations increases as the number of small differences increases, and the test failure small difference list search unit 23 Although the number of repetitions of the process in is extremely large, it is possible to keep the time required for the search to be completed within a realistic range by providing a plurality of test-failed small difference list search units 23 and processing in parallel. Become.

なお、図16に示すデバッグ支援装置1Bでは、3つの試験不合格小差分リスト探索部23−3,23−2,23−3が設けられているが、3つに限らない。 The debug support device 1B shown in FIG. 16 is provided with three test-failed small difference list search units 23-3, 23-2, and 23-3, but the number is not limited to three.

(第3実施形態)
次に、第3実施形態について説明する。第3実施形態は、第1実施形態のデバッグ支援装置1および第2実施形態のデバッグ支援装置1Bの試験不合格小差分リスト探索部23における小差分組合せループ処理(ステップ231)を変更する。
(Third Embodiment)
Next, the third embodiment will be described. The third embodiment changes the small difference combination loop processing (step 231) in the test failure small difference list search unit 23 of the debug support device 1 of the first embodiment and the debug support device 1B of the second embodiment.

第3実施形態の小差分組合せループ処理(ステップ231B)では、小差分組合せ選択候補リストのデータテーブル142Bを取得し、リストの各行を順番に選択して小差分組合せ取得処理(ステップ232)以降を実行する。 In the small difference combination loop processing (step 231B) of the third embodiment, the data table 142B of the small difference combination selection candidate list is acquired, each row of the list is selected in order, and the small difference combination acquisition processing (step 232) and subsequent steps are performed. Execute.

第3実施形態の小差分組合せ選択候補リストのデータテーブル142Bは、第1実施形態において説明した図9に示す小差分の組合せ(通番IDの全ての組合せ)を、小差分組合せ選択候補リストのデータテーブル142Bに関する事前情報に基づいて、試験に合格する蓋然性が高い順に並べ替えられている。 In the data table 142B of the small difference combination selection candidate list of the third embodiment, the small difference combinations (all combinations of serial number IDs) shown in FIG. 9 described in the first embodiment are used as the data of the small difference combination selection candidate list. They are sorted in descending order of probability of passing the exam based on prior information about Table 142B.

小差分の組合せの並べ替えは、例えば次のようにして実行することができる。 The rearrangement of the combination of small differences can be executed, for example, as follows.

小差分組合せ選択候補リストのデータテーブル142Bに関する事前情報の例の一つとして、もし小差分組合せの一つA1が他の小差分A2に依存することが構文解析などにより明らかであれば、A2を含まないA1は必ず不合格になるというものがある。他の小差分組合せに依存しないと思われる小差分組合せを前に、他の小差分組合せに明らかに依存する小差分組合せを後に並べる。 As one of the examples of prior information regarding the data table 142B of the small difference combination selection candidate list, if it is clear from parsing or the like that one of the small difference combinations A1 depends on the other small difference A2, A2 is used. There is a thing that A1 that does not include is always rejected. The small difference combinations that do not seem to depend on other small difference combinations are listed first, and the small difference combinations that clearly depend on other small difference combinations are listed later.

小差分組合せ選択候補リストのデータテーブル142Bに関する事前情報の例の一つとして、もし小差分組合せの一つB1が不合格ならばB1が依存しない小差分B2を追加しても必ず不合格であるが、B1が合格ならば小差分B3を追加すると不合格になる可能性があるため、組合せに含まれる小差分の数が少ないほど試験に合格する蓋然性が高いというものがある。小差分組合せ選択候補リストのデータテーブル142の例のように、組合せに含まれる小差分の数が少ないものから順に並べる。 As one of the examples of the prior information regarding the data table 142B of the small difference combination selection candidate list, if one of the small difference combinations B1 fails, even if the small difference B2 that B1 does not depend on is added, it always fails. However, if B1 passes, adding the small difference B3 may result in failure. Therefore, the smaller the number of small differences included in the combination, the higher the probability of passing the test. As in the example of the data table 142 of the small difference combination selection candidate list, the combinations are arranged in order from the one with the smallest number of small differences.

小差分組合せ選択候補リストのデータテーブル142Bに関する事前情報の例の一つとして、もし小差分組合せの一つC1が前回のループで不合格ならばC1が前回の更新小差分組合せC2に依存していなければ必ず今回のループでも不合格になるため、前回のループで不合格になった小差分組合せよりも試験していない小差分組合せの方が試験に合格する蓋然性が高いというものがある。前回のループで試験していない小差分組合せを前に、前回のループで不合格になった小差分組合せを後に並べる。 As an example of prior information about the data table 142B of the small difference combination selection candidate list, if one of the small difference combinations C1 fails in the previous loop, C1 depends on the last updated small difference combination C2. Otherwise, the loop will always fail, so there is a higher probability that the untested small difference combination will pass the test than the small difference combination that failed in the previous loop. The small difference combinations that have not been tested in the previous loop are listed first, and the small difference combinations that failed in the previous loop are listed later.

図17(A)は、試験に合格する蓋然性が高い順に小差分組合せを並べた小差分組合せ選択候補リストのデータテーブル142Bの一例を示す図である。なお、図17(B)には、図17(A)に示す各小差分組合せに対する並べ替えをした理由を示している。 FIG. 17A is a diagram showing an example of the data table 142B of the small difference combination selection candidate list in which the small difference combinations are arranged in descending order of probability of passing the test. Note that FIG. 17B shows the reason for rearranging each small difference combination shown in FIG. 17A.

例えば、図17(A)に示す通番ID「2」の小差分組合せについては、定数定義の挿入を、意味解析を伴わない構文解析により識別でき、なおかつ、他小差分に依存する見込みが低いと想定できるため、小差分組合せの前の方に並べている。同様に、通番ID「4」〜「8」の小差分組合せについては、データ定義の挿入が他小差分に依存する見込みが低いと想定できるため、小差分組合せの前の方に並べている。 For example, regarding the small difference combination of the serial number ID "2" shown in FIG. 17 (A), the insertion of the constant definition can be identified by parsing without semantic analysis, and it is unlikely that it depends on other small differences. Since it can be assumed, it is arranged in the front of the small difference combination. Similarly, the small difference combinations of the serial number IDs "4" to "8" are arranged in the front of the small difference combinations because it can be assumed that the insertion of the data definition is unlikely to depend on other small differences.

また、小差分の数が少ない組合せほど他小差分に依存する見込みが低いと想定できるため、小差分の数が一つの組合せ(通番ID「1」〜「8」)を列挙した後に、小差分の数が二つの組合せ(通番ID「2,4」「2,5」…)を列挙するように並べている。 Further, since it can be assumed that the combination with a smaller number of small differences is less likely to depend on other small differences, after enumerating the combinations with one small difference (serial number IDs "1" to "8"), the small difference The numbers are arranged so as to enumerate combinations of two (serial number IDs "2, 4", "2, 5" ...).

なお、小差分組合せ選択候補リストのデータテーブル142Bは、小差分リスト初期化部21が生成しても良いし、試験不合格小差分リスト探索部23が小差分組合せループ処理231において小差分組合せ選択候補リストのデータテーブル142をもとに生成しても良い。 The data table 142B of the small difference combination selection candidate list may be generated by the small difference list initialization unit 21, or the test failure small difference list search unit 23 selects the small difference combination in the small difference combination loop processing 231. It may be generated based on the data table 142 of the candidate list.

このようにして、第3実施形態のデバッグ支援装置1またはデバッグ支援装置1Bでは、小差分組合せ選択候補リストのデータテーブル142Bにおいて、試験に合格する蓋然性が高い小差分組合せから順に並べることにより、小差分リストのデータテーブル141および小差分組合せ選択候補リストのデータテーブル142を更新するまでの探索回数の期待値を減らすことが可能になる。このため、小差分組合せ選択候補リストのデータテーブル142Bに関する事前情報を利用することで、処理時間を短くすることができる。 In this way, in the debug support device 1 or the debug support device 1B of the third embodiment, the small difference combinations are arranged in order from the small difference combination having a high probability of passing the test in the data table 142B of the small difference combination selection candidate list. It is possible to reduce the expected value of the number of searches until the data table 141 of the difference list and the data table 142 of the small difference combination selection candidate list are updated. Therefore, the processing time can be shortened by using the prior information regarding the data table 142B of the small difference combination selection candidate list.

(第4実施形態)
次に、第4実施形態について説明する。第4実施形態は、第1実施形態のデバッグ支援装置1および第2実施形態のデバッグ支援装置1Bの試験不合格小差分リスト探索部23における小差分組合せループ処理(ステップ231)変更する。
(Fourth Embodiment)
Next, the fourth embodiment will be described. The fourth embodiment changes the small difference combination loop processing (step 231) in the test failure small difference list search unit 23 of the debug support device 1 of the first embodiment and the debug support device 1B of the second embodiment.

第4実施形態の小差分組合せループ処理(ステップ231C)は、小差分組合せ選択候補リストのデータテーブル142を取得し、リストの各行を順番に選択して小差分組合せ取得処理232以降を実行する。このとき小差分組合せ選択候補リストのデータテーブル142は、組合せに含まれる小差分の数(小差分の組合せ数)が一定の打ち切り値を越える選択候補を除外し、小差分の数が打ち切り値を越えない選択候補のみを残すものとする。 The small difference combination loop process (step 231C) of the fourth embodiment acquires the data table 142 of the small difference combination selection candidate list, selects each row of the list in order, and executes the small difference combination acquisition process 232 and subsequent steps. At this time, the data table 142 of the small difference combination selection candidate list excludes selection candidates whose number of small differences included in the combination (number of combinations of small differences) exceeds a certain cutoff value, and the number of small differences sets the cutoff value. Only the selection candidates that do not exceed shall be left.

例えば、小差分の数(組合せ数)が4つの小差分組合せについて試験実行処理(ステップ234)を実行した結果、試験不合格となる場合には、5つ以降の小差分組合せについても試験不合格となる可能性が高い。従って、組合せに含まれる小差分の数が一定(この場合、3つ、あるいは4つの小差分の数)を越える選択候補を除外することで、実効性のない処理が実行されないようにする。 For example, if the test execution process (step 234) is performed on a small difference combination having four small difference combinations (number of combinations) and the test fails, the test fails on five or more small difference combinations. Is likely to be. Therefore, by excluding the selection candidates in which the number of small differences included in the combination exceeds a certain number (in this case, the number of three or four small differences), ineffective processing is prevented from being executed.

このようにして、第4実施形態のデバッグ支援装置1またはデバッグ支援装置1Bでは、小差分組合せ選択候補リストのデータテーブル142の選択候補から打ち切り値を越える選択候補を除外したことにより、選択候補を減らすことが可能になるから、探索精度が低下する代わりに処理時間を短くすることができる。 In this way, in the debug support device 1 or the debug support device 1B of the fourth embodiment, the selection candidates that exceed the cutoff value are excluded from the selection candidates of the data table 142 of the small difference combination selection candidate list, so that the selection candidates are selected. Since it is possible to reduce the number, the processing time can be shortened at the cost of lowering the search accuracy.

なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フレキシブルディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。 The methods described in each of the above embodiments include magnetic disks (flexible disks, hard disks, etc.), optical disks (CD-ROM, DVD, etc.), optical magnetic disks (MO), and so on, as programs that can be executed by a computer. It can also be stored and distributed in a storage medium such as a semiconductor memory.

また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。 Further, the storage medium may be in any form as long as it is a storage medium capable of storing a program and readable by a computer.

また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。 Further, in order for the OS (operating system) running on the computer, the database management software, the MW (middleware) such as the network software, etc. to realize the above embodiment based on the instruction of the program installed on the computer from the storage medium. You may execute a part of each process of.

さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。 Further, the storage medium in each embodiment is not limited to a medium independent of the computer, but also includes a storage medium in which a program transmitted by a LAN, the Internet, or the like is downloaded and stored or temporarily stored.

また、記憶媒体は1つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。 Further, the storage medium is not limited to one, and the case where the processing in each of the above embodiments is executed from a plurality of media is also included in the storage medium in the present invention, and the medium configuration may be any configuration.

なお、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パーソナルコンピュータ等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。 The computer in each embodiment executes each process in each of the above embodiments based on the program stored in the storage medium, and is composed of one device such as a personal computer and a plurality of devices in a network. Any configuration such as a connected system may be used.

また、各実施形態におけるコンピュータとは、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。 Further, the computer in each embodiment is a general term for a device and a device capable of realizing the function of the present invention by a program, including an arithmetic processing device, a microcomputer and the like included in the information processing device.

なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although some embodiments of the present invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other embodiments, and various omissions, replacements, and changes can be made without departing from the gist of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are also included in the scope of the invention described in the claims and the equivalent scope thereof.

1…デバッグ支援装置、2…プロセッサ、3…メモリ、4…記憶装置、4A…デバッグ支援プログラム、10…記憶部、11…試験合格ソースコードおよびデータファイル記憶部、12…試験不合格ソースコードおよびデータファイル記憶部、13…試験合格ソースコードおよびデータファイル記憶部、14…小差分リスト記憶部、20,20A,20B…デバッグ支援処理部、21…小差分リスト初期化部、22…試験合格中間ソースコードおよびデータファイル初期化部、23,23−1,23−2,23−3…試験不合格小差分リスト探索部。 1 ... Debug support device, 2 ... Processor, 3 ... Memory, 4 ... Storage device, 4A ... Debug support program, 10 ... Storage unit, 11 ... Test pass source code and data file storage unit, 12 ... Test failure source code and Data file storage unit, 13 ... Test pass source code and data file storage unit, 14 ... Small difference list storage unit, 20, 20A, 20B ... Debug support processing unit, 21 ... Small difference list initialization unit, 22 ... Test pass intermediate Source code and data file initialization unit, 23,23-1,23-2,23-3 ... Test failure small difference list search unit.

Claims (7)

第1記憶部に記憶された第1試験合格ソースコードおよびデータファイルの第1データテーブルと、第2記憶部に記憶された試験不合格ソースコードおよびデータファイルの第2データテーブルとの差分を抽出して細分化した小差分のリストを作成して第3記憶部に記憶させる小差分リスト初期化部と、
前記第1試験合格ソースコードおよびデータファイルに前記リストに含まれる小差分の組合せを適用して試験を実施することを繰り返し、試験に不合格となる小差分の組合せを探索して出力する小差分リスト探索部とを有するデバッグ支援装置。
Extract the difference between the first data table of the first test pass source code and data file stored in the first storage unit and the second data table of the test failure source code and data file stored in the second storage unit. A small difference list initialization unit that creates a subdivided list of small differences and stores it in the third storage unit,
The test is repeated by applying the combination of small differences included in the list to the source code and data file that passed the first test, and the combination of small differences that fails the test is searched for and output. A debug support device that has a list search unit.
前記小差分リスト探索部は、試験に不合格となる最小の組合せを探索する請求項1記載のデバッグ支援装置。 The debug support device according to claim 1, wherein the small difference list search unit searches for the minimum combination that fails the test. 前記小差分リスト探索部は、試験に合格となる小差分の組合せをもとに、第2試験合格ソースコードおよびデータファイルを作成する請求項1または請求項2記載のデバッグ支援装置。 The debug support device according to claim 1 or 2, wherein the small difference list search unit creates a second test pass source code and a data file based on a combination of small differences that pass the test. 前記小差分リスト探索部を複数設け、それぞれ異なる前記リストに含まれる小差分の組合せをもとに、並列に試験を実施する請求項1乃至3記載の何れかに記載のデバッグ支援装置。 The debug support device according to any one of claims 1 to 3, wherein a plurality of small difference list search units are provided, and tests are performed in parallel based on different combinations of small differences included in the list. 前記小差分リスト探索部は、前記リストに含まれる複数の小差分の組合せを、試験に合格する蓋然性についての事前情報をもとに並べ替えた、試験に合格する蓋然性が高い小差分の組合せの順に、前記第1試験合格ソースコードおよびデータファイルに適用して試験を実施する請求項1乃至4の何れかに記載のデバッグ支援装置。 The small difference list search unit rearranges a plurality of combinations of small differences included in the list based on prior information about the probability of passing the test, and is a combination of small differences having a high probability of passing the test. The debug support device according to any one of claims 1 to 4, wherein the test is performed by applying the first test pass source code and the data file in order. 前記小差分リスト探索部は、前記リストに含まれる小差分の組合せのうち、小差分の組合せ数が一定数を越える小差分の組合せを除外して、前記第1試験合格ソースコードおよびデータファイルに適用して試験を実施する請求項1乃至5の何れかに記載のデバッグ支援装置。 The small difference list search unit excludes the small difference combinations in which the number of small difference combinations exceeds a certain number from the small difference combinations included in the list, and obtains the source code and data file that passed the first test. The debug support device according to any one of claims 1 to 5, wherein the test is applied and tested. コンピュータを、
第1記憶部に記憶された第1試験合格ソースコードおよびデータファイルの第1データテーブルと、第2記憶部に記憶された試験不合格ソースコードおよびデータファイルの第2データテーブルとの差分を抽出して細分化した小差分のリストを作成して第3記憶部に記憶させる小差分リスト初期化部と、
前記第1試験合格ソースコードおよびデータファイルに前記リストに含まれる小差分の組合せを適用して試験を実施することを繰り返し、試験に不合格となる小差分の組合せを探索して出力する小差分リスト探索部として機能させるためのデバッグ支援プログラム。
Computer,
Extract the difference between the first data table of the first test pass source code and data file stored in the first storage unit and the second data table of the test failure source code and data file stored in the second storage unit. A small difference list initialization unit that creates a subdivided list of small differences and stores it in the third storage unit,
The test is repeated by applying the combination of small differences included in the list to the source code and data file that passed the first test, and the combination of small differences that fails the test is searched for and output. A debug support program to function as a list search unit.
JP2017180869A 2017-09-21 2017-09-21 Debug support device, debug support program Active JP6903533B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017180869A JP6903533B2 (en) 2017-09-21 2017-09-21 Debug support device, debug support program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017180869A JP6903533B2 (en) 2017-09-21 2017-09-21 Debug support device, debug support program

Publications (2)

Publication Number Publication Date
JP2019057118A JP2019057118A (en) 2019-04-11
JP6903533B2 true JP6903533B2 (en) 2021-07-14

Family

ID=66107530

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017180869A Active JP6903533B2 (en) 2017-09-21 2017-09-21 Debug support device, debug support program

Country Status (1)

Country Link
JP (1) JP6903533B2 (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005309800A (en) * 2004-04-22 2005-11-04 Matsushita Electric Ind Co Ltd Software verification method and method for forming verification data
JP2009104252A (en) * 2007-10-19 2009-05-14 Toshiba Corp Debugging support device and debugging support method
JP2014126900A (en) * 2012-12-25 2014-07-07 Nec Corp Program analysis device, program analysis method, and program analysis program
JP2015011372A (en) * 2013-06-26 2015-01-19 日本電気株式会社 Debug support system, method, program, and recording medium
JP2016164727A (en) * 2015-03-06 2016-09-08 株式会社 日立産業制御ソリューションズ Test case selection device
US10296446B2 (en) * 2015-11-18 2019-05-21 International Business Machines Corporation Proactive and selective regression testing based on historic test results

Also Published As

Publication number Publication date
JP2019057118A (en) 2019-04-11

Similar Documents

Publication Publication Date Title
US9652226B2 (en) Transitive source code violation matching and attribution
US9176828B2 (en) System and method for merging results from multiple runs based on run inputs
US9811332B2 (en) Deploying incremental scripts
JP2017525039A (en) System information management
US11481440B2 (en) System and method for processing metadata to determine an object sequence
US20210334292A1 (en) System and method for reconciliation of data in multiple systems using permutation matching
JP2017041171A (en) Test scenario generation support device and test scenario generation support method
JP2008204405A (en) Software regression test system, regression test program and regression test method
US20180165273A1 (en) Universal lexical analyzers
Martinez et al. Feature location benchmark for software families using eclipse community releases
US9727635B2 (en) Combined code searching and automatic code navigation
JP6903533B2 (en) Debug support device, debug support program
JP6512032B2 (en) Stub target determination apparatus, method, and program
US20150178075A1 (en) Enhancing understandability of code using code clones
US20200174760A1 (en) Automatic code generation
US20150199183A1 (en) Program analysis apparatus and program analysis method
US20110145295A1 (en) Representation of a set of numeric values in a computerized environment
JP5578625B2 (en) Program analysis apparatus, program analysis method, and program
JP6217440B2 (en) Symbolic execution program, symbolic execution method, and symbolic execution device
JP2013149094A (en) Extraction system, extraction method and program
US9665454B2 (en) Extracting test model from textual test suite
Guilardi et al. AndroidPropTracker: mining lifetime properties of Android projects
Handrizal et al. Implementation and Analysis Zhu-Takaoka Algorithm and Knuth-Morris-Pratt Algorithm for Dictionary of Computer Application Based on Android
JP4782315B2 (en) Impact analysis apparatus and method, recording medium, and program
JP7456843B2 (en) Program modification device, program modification method, and program modification program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200529

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210514

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210623

R150 Certificate of patent or registration of utility model

Ref document number: 6903533

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250