JP2015011372A - Debug support system, method, program, and recording medium - Google Patents
Debug support system, method, program, and recording medium Download PDFInfo
- Publication number
- JP2015011372A JP2015011372A JP2013133856A JP2013133856A JP2015011372A JP 2015011372 A JP2015011372 A JP 2015011372A JP 2013133856 A JP2013133856 A JP 2013133856A JP 2013133856 A JP2013133856 A JP 2013133856A JP 2015011372 A JP2015011372 A JP 2015011372A
- Authority
- JP
- Japan
- Prior art keywords
- source code
- test
- unit
- information
- difference information
- 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.)
- Pending
Links
Images
Abstract
Description
本発明は、デバッグ支援システム、方法、プログラム及び記録媒体に関する。 The present invention relates to a debugging support system, method, program, and recording medium.
近年、ソフトウェアの開発は、新規開発だけではなく、既存ソフトウェアの保守や改善に係る開発も多い。例えば、既存ソフトウェアの稼動後、ユーザのビジネス内容や用途、作業内容の変化等に伴い、ソフトウェアの機能を追加する要求、新しいバージョン等への仕様変更の要求等が発生し、また、動作中に不具合が見つかった場合にもそれらに応じてプログラムを修正する必要が発生する。 In recent years, software development includes not only new development but also development related to maintenance and improvement of existing software. For example, after operation of existing software, a request to add software functions, a specification change to a new version, etc. occurs due to changes in the user's business content, usage, work content, etc. Even when defects are found, it is necessary to correct the program accordingly.
それらの発生に伴い、前記修正された機能やプログラムに関係して、その影響を受ける他の既存の機能を有するプログラムについても修正が必要になる場合があり、その修正を実施しない場合、その機能は通常通りの動作を行わなくなるエラーとなる原因(デグレードバグ、以下はバグと称する)が発生する。 As a result of these occurrences, it may be necessary to modify a program having other existing functions that are affected by the modified function or program. Causes an error (degrade bug, hereinafter referred to as a bug) that causes an error that prevents normal operation.
従って、既存ソフトウェアの保守や改善等では、ソフトウェアを修正する際に、仕様が変わらない箇所が、修正後に修正前と同じ動作をすることを確認するために、修正前に実施したものと同じテスト項目の実施が行われる。このようなテストは回帰テスト(リグレッションテスト)と呼ばれる。 Therefore, in the maintenance and improvement of existing software, the same tests as those performed before the modification were performed to confirm that the parts whose specifications do not change when the software is modified perform the same operation as before the modification. Implementation of the item is performed. Such a test is called a regression test.
回帰テストは、一般にテスト支援ツール等を使うことにより自動化されることが多い。テスト結果を確認しながら、バグとなったコードを特定するには、テストを行うための入力内容や、バグの内容を調べ、テストデータを入力してから出力するまでのどの経路のどの処理においてバグが生じていたのかを割り出さなければならない作業(デバッグ作業)は人手で行う必要がある。 In general, the regression test is often automated by using a test support tool or the like. In order to identify the code that caused the bug while checking the test result, examine the input contents for testing and the contents of the bug, and in which process of which route from inputting test data to outputting it The work (debugging work) that has to find out if a bug has occurred must be done manually.
また、単純にテストによってバグと特定されたコードを修正するだけでなく、バグの原因となったコードをどういった経緯でプログラマがコーディングした原因を調査し、同じような問題が他に起きないか確認することも重要となる。 In addition to simply fixing the code identified as a bug by testing, we investigate the cause of the programmer's coding of the code that caused the bug, and no other similar problems occur. It is also important to confirm whether
通常、プログラムをデバッグする際には、対象となるプログラム全体を扱うため、プログラムが大きくなるとデバッグ時にはバグの原因の特定だけで時間がかかってしまい、このことがプログラム開発の効率を悪化させている。このため、様々なデバッグ支援技術の開発が進んでいる。 Normally, when debugging a program, the entire target program is handled, so if the program becomes large, it takes time to identify the cause of the bug when debugging, which deteriorates the efficiency of program development. . For this reason, various debugging support technologies are being developed.
これまでに、デバッグ支援技術として、例えば、特許文献1(特開2004−118443号公報)に記載された技術がある。特許文献1では、ハードウェア記述言語により設計されたLSI(large scale integration)回路の機能を検証するための設計データ及びテストベンチ(テストプログラム)を版数管理と差分チェックを行いながら、シミュレーション装置へ供給してシミュレーション及び再シミュレーションによるリグレッションテストを行うことにより、設計変更が起きるたびに、リグレッションテストを実行することができ、常に最新の設計データによるリグレッションテストを行うことができる。
So far, as a debugging support technique, for example, there is a technique described in Patent Document 1 (Japanese Patent Application Laid-Open No. 2004-118443). In
しかし、上記技術では、システムに既に登録済の設計データと新規入力の設計データとの間に差分がある場合、その差分に基づいて、リグレッションテストを実行すべきか否かを判断し、前記差分による影響範囲が特定できない場合、常に最新の設計データとテストベンチとを組にしてリグレッションテストを実行することができる。しかしながら、特許文献1には、前記差分がどのテスト項目にあったのか、バグとなったテスト項目に関係する部分だけを抽出し、関係する差分情報が、いつ作りこまれたかのかの情報を合わせて出力するという作業が必要となるという問題が残っている。
However, in the above technique, when there is a difference between the design data already registered in the system and the newly input design data, it is determined whether or not a regression test should be executed based on the difference, and based on the difference When the influence range cannot be specified, the regression test can always be executed by combining the latest design data and the test bench. However,
また、別のデバッグ支援技術として、特許文献2(特開2007−199800号公報)に記載された技術がある。特許文献2ではユーザの操作により指定された前記プログラムの修正前後のソースコードを比較して修正内容を含む修正対象を検出し、前記修正対象から線形的に前記修正対象の影響を受ける影響内容を含む影響対象を検出することができる。
As another debugging support technique, there is a technique described in Patent Document 2 (Japanese Patent Laid-Open No. 2007-199800). In
特許文献2によれば、プログラムの修正対象の影響範囲の調査漏れを効果的に防止し、高い信頼性で影響範囲での修正作業を支援することができる。しかしながら、特許文献2には、前記特許文献1と同様に、バグとなった修正対象に関係する部分だけを抽出し、関係する修正内容が、いつ作りこまれたかのかの情報を合わせて出力するという作業が必要となるという問題が未だ残っている。
According to
さらに、別のデバッグ支援技術として、特許文献3(特開2010−122959号公報)に記載された技術がある。特許文献3では、プログラムの詳細な解析を必要とせず、また、ユーザが変更箇所を指定しなくても、各テスト項目の通過モジュール情報と、修正前後で変更があったモジュールとに基づいて、回帰テストとして実行すべきテスト項目を抽出することができる。 Further, as another debugging support technique, there is a technique described in Patent Document 3 (Japanese Patent Laid-Open No. 2010-122959). In Patent Document 3, detailed analysis of the program is not required, and even if the user does not specify a change location, based on the passing module information of each test item and the module that has been changed before and after correction, Test items to be executed as a regression test can be extracted.
特許文献3によれば、プログラムを変更した場合は、変更後のプログラムの内に変更された部分のみ、即ち、プログラムの差分に着目して、変更後のプログラムの妥当性を検証することができれば、効率的である。しかしながら、特許文献3のテスト支援システムは、通過モジュール情報と、プログラム修正の前後で変更があったモジュールとを利用してテスト項目を抽出することはできる。しかしながら、修正前及び修正後のソースコードの差分がどのテスト項目にあったのか、当該差分がいつ作りこまれたかのかの情報を合わせて出力するという処理ができない。 According to Patent Document 3, if the program is changed, only the changed part of the changed program, that is, paying attention to the difference of the program, can verify the validity of the changed program. Is efficient. However, the test support system of Patent Literature 3 can extract test items using the passing module information and modules that have been changed before and after the program correction. However, it is not possible to perform processing for outputting information indicating which test item has the difference between the source code before and after the correction, and when the difference was created.
さらにまた、別のデバッグ支援技術として、特許文献4(特開2009−211264号公報)に記載された技術がある。特許文献4では、デグレード判定データベースに記憶している版数と、デグレードの可能性のあるテストの識別情報を示す判断対象テスト識別情報と、それらの組合せに対応した1又は2以上の修正位置を示す修正位置情報とに基づいて、リグレッションテストをする必要がある箇所を自動的に判別することを可能とする。 Furthermore, as another debugging support technique, there is a technique described in Patent Document 4 (Japanese Unexamined Patent Application Publication No. 2009-211124). In Patent Literature 4, the version number stored in the degradation determination database, the determination target test identification information indicating identification information of a test that may be degraded, and one or more correction positions corresponding to the combination thereof are provided. Based on the correction position information to be shown, it is possible to automatically determine a portion where a regression test is necessary.
特許文献4によれば、リグレッションテストをする必要があるテストを抽出し、障害検出から修正後のリグレッションテストまでテストを自動化することができる。しかしながら、前記特許文献3のテスト支援システムと同じように、障害検出前及び障害修正後のソースコードの差分がどのテスト項目にあったのか、当該差分がいつ作りこまれたかのかの情報を合わせて出力するという処理ができない。 According to Patent Document 4, it is possible to extract a test that requires a regression test, and to automate the test from failure detection to a corrected regression test. However, as in the test support system of Patent Document 3, the information on which test item the source code difference before and after the failure detection was in, and when the difference was created, was added. The process of outputting cannot be performed.
さらにまた、別のデバッグ支援技術として、特許文献5(特開2008−129661号公報)に記載された技術がある。特許文献5では、過去の修正により修正を行ったプログラムに含まれる複数の関数を特定する複数の関数識別子と、当該の関数識別子と新たな修正において修正を行ったプログラムに含まれる複数の関数を特定する複数の関数識別子のうち一致する関数識別子の数を求め、当該一致する関数識別子の数に基づいて、過去の修正により修正を行ったプログラムに含まれる関数の修正識別子により特定される修正(その過去の修正)をテストするテストケースの優先度を決定する。プログラムの開発者は、決定した優先度により、リストされるテストケースのうちどのテストケースが変更による再びエラーとなる可能性の高さを示す優先度を決定することができる。 Furthermore, as another debugging support technique, there is a technique described in Patent Document 5 (Japanese Patent Laid-Open No. 2008-129661). In Patent Document 5, a plurality of function identifiers that specify a plurality of functions included in a program that has been corrected by past correction, and a plurality of functions that are included in the program that has been corrected in the new correction and the function identifier. The number of function identifiers that match among a plurality of function identifiers to be identified is obtained, and based on the number of function identifiers that match, the modification identified by the modification identifier of the function included in the program that has been modified by past modifications ( Determine the priority of the test case to test its past modifications. The developer of the program can determine the priority indicating the high possibility that a test case among the listed test cases is likely to cause an error again due to the change according to the determined priority.
しかし、上記技術では、過去の修正に対して更に修正が必要となる場合のテストケースの優先度を決定するものであり、新規修正により再びバグとなる関数の特定、及びバグの原因となった修正箇所を特定するという作業が必要となるという問題が残っている。 However, in the above technology, the priority of the test case is determined when further corrections are required with respect to past corrections. The new corrections identified the functions that become bugs again and caused the bugs. There remains a problem that it is necessary to identify the correction part.
さらにまた、別のデバッグ支援技術として、特許文献6(特開2007−4255号公報)に記載された技術がある。特許文献6では、正常に動作していた時点のソースコードとバグとなった時点のソースコードの差分情報を提示することにより、バグの原因となった修正箇所を特定する作業の効率化を図っている。 Furthermore, as another debugging support technique, there is a technique described in Patent Document 6 (Japanese Patent Laid-Open No. 2007-4255). In Patent Document 6, by presenting the difference information between the source code at the time of normal operation and the source code at the time of the bug, the efficiency of the work for identifying the correction location causing the bug is improved. ing.
しかし、上記技術では差分情報にバグとなったテスト項目に存在する関係を有しない情報も含まれるため、バグとなったテスト項目が通過した経路に存在する関係を有する差分情報部分だけを抽出し、抽出した関係の差分情報が、いつ作りこまれたかのかの情報を出力することできない。 However, in the above technology, since the difference information includes information that does not have a relationship that exists in the test item that became a bug, only the difference information portion that has a relationship that exists in the path through which the test item that caused the bug has passed is extracted. The information on when the difference information of the extracted relationship was created cannot be output.
よって、デバッグ支援技術は数多く提案されているが、差分情報にバグとなったテスト項目が通過した経路に存在する関係の部分だけを抽出し、当該関係の差分情報が、いつ作りこまれたかのかの情報を合わせて出力するという作業が必要となるという課題がまだ残っている。 Therefore, many debugging support technologies have been proposed, but only the part of the relationship that exists in the path through which the test item that caused the bug in the difference information has been extracted, and when the difference information of the relationship was created. There is still a problem that it is necessary to output the information together.
本発明は、このような課題に鑑みてなされたものであり、ソフトウェアのデバッグ作業を効率化することができるデバッグ支援システム、方法、プログラム及び記録媒体を提供することを主たる目的とする。 The present invention has been made in view of such problems, and a main object of the present invention is to provide a debugging support system, method, program, and recording medium that can improve the efficiency of software debugging.
上記目的を達成するために、本発明のデバッグ支援システムは、第1のソースコードと、前記第1のソースコードに含まれるソースコードの少なくとも一部に修正又は変更が加えられた第2のソースコードとのソースコードの作成日時、変更日時、変更箇所及びソースコード作成時又は変更時のリビジョンなどの履歴情報の入出力を行うバージョン管理部と、
前記バージョン管理部から出力する前記第1のソースコード及び前記第2のソースコードとを比較し、差分情報を出力するソースコード比較部と、
前記第2のソースコードに対して複数のテスト項目のテストを実行した際に処理が通過する経路を、テスト項目と関連付けて記録するテスト項目実行部と、
前記テスト項目実行部が記録する実行経路を保存する実行経路情報保存部と、
前記実行経路情報保存部に保存する前記実行経路と前記ソースコード比較部が出力する前記差分情報とを参照し、前記差分情報に基づいてバグとなったテスト項目が通過した実行経路に存在する関係を有する差分情報を抽出する関係差分情報抽出部と、
前記抽出された関係を有する差分情報が発生したリビジョンを前記バージョン管理部から抽出する修正リビジョン抽出部とを備えることを特徴とする。
In order to achieve the above object, the debugging support system of the present invention includes a first source code and a second source in which at least a part of the source code included in the first source code is modified or changed. Version management unit that inputs / outputs history information such as source code creation date / time, modification date / time, modification location, and source code creation or revision, and
A source code comparison unit that compares the first source code and the second source code output from the version management unit and outputs difference information;
A test item execution unit that records a path through which a process passes when a test of a plurality of test items is executed on the second source code in association with the test item;
An execution path information storage unit that stores an execution path recorded by the test item execution unit;
A relationship in which a test item that becomes a bug based on the difference information exists in an execution path that passes through the execution path stored in the execution path information storage unit and the difference information output by the source code comparison unit. A relational difference information extraction unit for extracting difference information having
And a revision revision extracting unit that extracts a revision in which the difference information having the extracted relationship is generated from the version management unit.
また、本発明のデバッグ支援方法は、バージョン管理部から第1のソースコードと、前記第1のソースコードに含まれるソースコードの少なくとも一部に修正又は変更が加えられた第2のソースコードとを出力し、
前記バージョン管理部から出力する前記第1のソースコード及び前記第2のソースコードとを比較し、差分情報を出力し、
前記第2のソースコードに対して複数のテスト項目のテストを実行した際に処理が通過する経路を、テスト項目と対応付けて記録し、
前記テスト項目実行部が記録する実行経路を保存し、
前記実行経路情報保存部に保存する前記実行経路と前記ソースコード比較部が出力する前記差分情報とを参照し、前記差分情報からバグとなったテスト項目が通過した実行経路に存在する関係の差分情報のみを抽出し、
前記抽出された関係の差分情報が発生したリビジョンを前記バージョン管理部から抽出することを特徴とする。
The debugging support method of the present invention includes a first source code from the version management unit, and a second source code in which at least a part of the source code included in the first source code is modified or changed. Output
Compare the first source code and the second source code output from the version management unit, output the difference information,
A path through which the process passes when a test of a plurality of test items is executed on the second source code is recorded in association with the test item;
Save the execution path recorded by the test item execution unit,
Referencing the execution path stored in the execution path information storage unit and the difference information output by the source code comparison unit, the difference in the relationship existing in the execution path through which the test item that caused the bug has passed from the difference information Extract only information,
The revision in which the difference information of the extracted relationship has occurred is extracted from the version management unit.
更に、本発明は、バージョン管理部から第1のソースコードと、前記第1のソースコードに含まれるソースコードの少なくとも一部に修正又は変更が加えられた第2のソースコードとを出力する処理と、
前記バージョン管理部から出力する前記第1のソースコード及び前記第2のソースコードとを比較し、差分情報を出力する処理と、
前記第2のソースコードに対して複数のテスト項目のテストを実行した際に処理が通過する経路を、テスト項目と対応付けて記録する処理と、
前記テスト項目実行部が記録する実行経路を保存する処理と、
前記実行経路情報保存部に保存する前記実行経路と前記ソースコード比較部が出力する前記差分情報とを参照し、前記差分情報からバグとなったテスト項目が通過した実行経路に存在する関係の差分情報のみを抽出する処理と、
前記抽出された関係の差分情報が発生したリビジョンを前記バージョン管理部から抽出する処理とをコンピュターに実行させるデバッグ支援プログラムを提供する。
Furthermore, the present invention provides a process for outputting a first source code and a second source code in which at least a part of the source code included in the first source code is modified or changed from the version management unit. When,
A process of comparing the first source code and the second source code output from the version management unit and outputting difference information;
A process of recording a path through which a process passes when a test of a plurality of test items is executed on the second source code in association with a test item;
Processing for storing an execution path recorded by the test item execution unit;
Referencing the execution path stored in the execution path information storage unit and the difference information output by the source code comparison unit, the difference in the relationship existing in the execution path through which the test item that caused the bug has passed from the difference information A process to extract only information,
Provided is a debugging support program that causes a computer to execute a process of extracting a revision in which the extracted difference information of the extracted relationship is generated from the version management unit.
更にまた、本発明は、バージョン管理部から第1のソースコードと、前記第1のソースコードに含まれるソースコードの少なくとも一部に修正又は変更が加えられた第2のソースコードとを出力する処理と、
前記バージョン管理部から出力する前記第1のソースコード及び前記第2のソースコードとを比較し、差分情報を出力する処理と、
前記第2のソースコードに対して複数のテスト項目のテストを実行した際に処理が通過する経路を、テスト項目と対応付けて記録する処理と、
前記テスト項目実行部が記録する実行経路を保存する処理と、
前記実行経路情報保存部に保存する前記実行経路と前記ソースコード比較部が出力する前記差分情報とを参照し、前記差分情報からバグとなったテスト項目が通過した実行経路に存在する関係の差分情報のみを抽出する処理と、
前記抽出された関係の差分情報が発生したリビジョンを前記バージョン管理部から抽出する処理とをコンピュターに実行させるプログラムが記録された記録媒体を提供する。
Furthermore, the present invention outputs the first source code from the version management unit and the second source code in which at least a part of the source code included in the first source code is modified or changed. Processing,
A process of comparing the first source code and the second source code output from the version management unit and outputting difference information;
A process of recording a path through which a process passes when a test of a plurality of test items is executed on the second source code in association with a test item;
Processing for storing an execution path recorded by the test item execution unit;
Referencing the execution path stored in the execution path information storage unit and the difference information output by the source code comparison unit, the difference in the relationship existing in the execution path through which the test item that caused the bug has passed from the difference information A process to extract only information,
Provided is a recording medium on which is recorded a program that causes a computer to execute a process of extracting a revision in which the extracted difference information of the extracted relationship is generated from the version management unit.
本発明によれば、バグとなった原因の特定作業の効率化を図ることができるという効果がある。 According to the present invention, there is an effect that it is possible to improve the efficiency of specifying the cause of the bug.
以下、本発明の実施形態について図面を参照して詳細に説明する。
[第1の実施形態]
図1は、本実施形態に係るデバッグ支援システム100の構成図である。デバッグ支援システム100はバージョン管理部101、ソースコード比較部104、テスト項目実行部105、実行経路情報保存部106、関係差分情報抽出部107、修正リビジョン抽出部108、表示部109を有する。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[First Embodiment]
FIG. 1 is a configuration diagram of a debugging support system 100 according to the present embodiment. The debug support system 100 includes a version management unit 101, a source
以下、デバッグ支援システム100を構成する各部の機能について説明する。 Hereinafter, functions of each unit constituting the debug support system 100 will be described.
バージョン管理部101は、正常に動作していたときのソースコード(以下、正常動作時ソースコードと称する)を記憶する第1の記憶部102と、バグとなったときのソースコード(以下、エラー発生時ソースコードと称する)を記憶する第2の記憶部103とを備え、ソースコードの作成日時、変更日時、変更箇所、及びソースコード作成時、又は変更時の番号(リビジョン)などの履歴情報の記憶、変更及び入出力を行う。
The version management unit 101 includes a
前記第1の記憶部102と前記第2の記憶部103とは、HDD(ハードディスクドライブ)、SSD(ソリッドステートドライブ)、DRAM(Dynamic Random Access Memory)などを使用することができる。また、前記第1の記憶部102と前記第2の記憶部103とは一つの記憶部にしても良い。また、外部の記憶装置を利用しても良い。
As the
また、本実施形態のソースコードは、複数のモジュールを含む。モジュールは、ソースコード内で定義されたプログラムの論理的構成要素である。変更後のソースコードは、変更前のソースコードのモジュールの少なくとも一部が修正又は変更されている。 Further, the source code of this embodiment includes a plurality of modules. A module is a logical component of a program defined in source code. In the source code after the change, at least a part of the module of the source code before the change is modified or changed.
即ち、正常動作時ソースコードは、テストが正常に動作していた時点のソースコードを表す。エラー発生時ソースコードは、回帰テストでエラー発生時のソースコードを表す。エラー発生時のソースコードは、正常動作時のソースコードのモジュールの少なくとも一部が修正又は変更されている。 That is, the normal operation source code represents the source code at the time when the test was operating normally. The error source code represents the source code at the time of error occurrence in the regression test. As for the source code when an error occurs, at least a part of the module of the source code during normal operation is corrected or changed.
正常動作時ソースコードとエラー発生時ソースコードのそれぞれは、第1の記憶部102及び第2の記憶部103に記憶する。バージョン管理部101は、ソースコードの開発者、コミトメッセージ、作成日時、変更日時、変更箇所、及びソースコード作成時、又は変更時の番号(リビジョン)などの履歴情報の記憶、変更及び入出力を管理している。
ソースコード比較部104は、ユーザが回帰テストの開始を指示すると、バージョン管理部101に問い合わせることにより正常動作時ソースコードとエラー発生時ソースコードのそれぞれを取得することが可能である。
The source code during normal operation and the source code when an error occurs are stored in the
When the user instructs the start of the regression test, the source
ソースコード比較部104は、前記取得した正常動作時ソースコードと、エラー発生時ソースコードとを比較し、変更があった内容を特定して、特定した変更内容からプログラムの機能変更に関係する部分を差分情報として関係差分情報抽出部107に出力する。
The source
テスト項目実行部105は、修正後のソースコードのテストを実行したときに、テスト対象の各テスト項目がどのモジュール(以下は、経路を称する)を通過するかを示す経路情報を実行経路情報保存部106に保存する。
The test
また、テスト項目実行部105は、修正後のソースコードのテストを実行したときに、テスト対象のテスト項目からエラーなったテスト項目のみを抽出してエラーとなったテスト項目の情報を限定することにより、当該テスト項目がどの経路を通過するかを示す経路情報を実行経路情報保存部106に記録しても良い。
Further, the test
実行経路情報保存部106は、HDD(ハードディスクドライブ)、SSD(ソリッドステートドライブ)、DRAM(Dynamic Random Access Memory)などのような記憶装置を備えて、修正後のソースコードに対して複数のテスト項目のテストを実行した際に処理が通過する経路を、テスト項目と関連付けて保存する。
The execution path
また、実行経路情報保存部106は、修正後のソースコードに対して、各テスト項目のテストを実行するテスト項目実行部を兼ねていてもよい。その場合、テスト項目実行部(テスト項目実行部105に相当する)は、各テスト項目のテストを実行しつつ、そのテスト項目の実行経路情報を、前記記憶装置に記録する。当該記憶装置は、外部のものを利用して良い。
Further, the execution path
関係差分情報抽出部107は、実行経路情報保存部106が保存する各テスト項目の通過経路情報と、ソースコード比較部104が出力する差分情報とに基づいて、テストの結果、バグとなったテスト項目が通過した経路に存在する関係を有する差分情報を抽出して修正リビジョン抽出部108に出力する。尚、ここのテストの結果は、テスト項目実行部105から実行されたものである。
The relation difference
修正リビジョン抽出部108は、関係差分情報抽出部107が出力する関係の差分情報について、その差分が発生したリビジョン情報をバージョン管理部101に問合せて抽出して表示部109に出力する。
The revision revision extraction unit 108 inquires the version management unit 101 for the revision information in which the difference is generated, extracts the relation difference information output by the relation difference
表示部109は、表示装置であり、この場合は、ディスプレイーであり、関係差分情報抽出部107が出力する関係の差分情報と修正リビジョン抽出部108が出力するリビジョン情報を合わせて表示する。尚、この表示部は、外部の表示装置を利用しても良い。
<差分情報とリビジョン情報を抽出する動作の説明>
図2は、本発明の回帰テストにおける関係の差分情報とリビジョン情報を抽出する手順を示している。
The
<Description of operation for extracting difference information and revision information>
FIG. 2 shows a procedure for extracting relational difference information and revision information in the regression test of the present invention.
ユーザが回帰テストを指示すると、ソースコード比較部104は、バージョン管理部101より正常動作時ソースコード102とエラー発生時ソースコード103をそれぞれ取得し、両者を比較して、変更内容を特定する。
When the user instructs a regression test, the source
ここの変更内容は、開発者の名前、リビジョンやコミットメッセージの変更などのプログラムの機能が変わらないものや、プログラムの機能変更に伴いソースコードの軽微な変更などのものを含む。 Changes here include things such as the developer's name, revision and commit message changes that do not change the program's functions, and minor changes in the source code that accompany the program's function changes.
前記特定した変更内容から機能の変更に係るもののみ、例えば、クラス、メソッド名や関数などを抽出して差分情報として関係差分情報抽出部107に出力する(ステップS11)
また、テスト項目実行部105は、各テスト項目について実行経路を求め、実行経路情報保存部106に保存して関係差分情報抽出部107に出力する(ステップS12)。
次に、関係差分情報抽出部107は、ソースコード比較部104が出力する差分情報と実行経路情報保存部106が保存する実行経路情報とを照らし合わせ、バグとなったテスト項目が通過した経路に存在する関係の差分情報のみを抽出して修正リビジョン抽出部108に出力する(ステップS13)。
For example, a class, a method name, a function, and the like are extracted from the identified change contents, for example, and output to the related difference
In addition, the test
Next, the relationship difference
そして、修正リビジョン抽出部108が、関係差分情報抽出部107が出力する関係の差分情報について、その差分が発生したリビジョンをバージョン管理部101に問合せて取得して表示部109に出力する(ステップS14)。 Then, the revision revision extracting unit 108 inquires the version management unit 101 about the revision information in which the difference is output, and obtains the revision, and outputs it to the display unit 109 (step S14). ).
最後に、表示部109は、関係差分情報抽出部107が抽出した関係の差分情報とその差分が発生したリビジョン情報とを合わせて表示し、ユーザに提示する(ステップS15)。
(第1の実施例)
以下、具体例を用いて本発明の実施形態の動作を説明する。
Finally, the
(First embodiment)
Hereinafter, the operation of the embodiment of the present invention will be described using specific examples.
まず、図3は、修正前に記述のソースコードを示す。ソースコードの記述に、C言語などのプログラミング言語や、オブジェクト指向のプログラミング言語を用いることができる。ソースコードは、ソフトウェアプログラムのソースコードには限定されず、ハードウェア記述言語(HDL)などで記述されたハードウェアのソースコードであってもよい。また、修正前と修正後のソースコードの記述に用いられる言語は、共通の言語であってもよいし、別個の言語であってもよい。 First, FIG. 3 shows the source code described before correction. For the description of the source code, a programming language such as C language or an object-oriented programming language can be used. The source code is not limited to the source code of the software program, and may be a hardware source code described in a hardware description language (HDL) or the like. Further, the language used for the description of the source code before and after the correction may be a common language or a separate language.
この実施例の場合は、共通のJava(登録商標)言語を用いている。また、ソースコードはバージョン管理部で管理されているものとする。 In this embodiment, a common Java (registered trademark) language is used. The source code is assumed to be managed by the version management unit.
図3に示すように、登録者は、開発者Aであり、コミットメッセージは、“V1.0ソースコード登録”であり、ソースコードには、Main、SubA、SubBの3つのクラスが記述されており、登録されたリビジョンは1である。 As shown in FIG. 3, the registrant is developer A, the commit message is “V1.0 source code registration”, and the source code describes three classes, Main, SubA, and SubB. The registered revision is 1.
図4は、本実施例で回帰テストを実施する3つのテスト項目と想定される返り値(期待値)を示す。例えば、“テスト項目1”のテスト時は、Mainクラスのfuncメソッドを、引数=0で呼び出し、ソースコードに記述された処理を行う。
FIG. 4 shows three test items for which the regression test is performed in this embodiment and expected return values (expected values). For example, when testing “
また、“テスト項目2”のテスト時は、Mainクラスのfuncメソッドを、引数=1で呼び出し、ソースコードに記述された処理を行う。
When testing “
更に、“テスト項目3”のテスト時は、Mainクラスのfuncメソッドを、引数=−1で呼び出し、ソースコードに記述された処理を行う。 Further, when testing “test item 3”, the func method of the Main class is called with an argument = −1, and processing described in the source code is performed.
修正前のソースコードに対して、図4に示す3つのテスト項目のテストを行うと、全てのテスト項目が想定通りの結果を返す。 When the test of the three test items shown in FIG. 4 is performed on the source code before correction, all the test items return the expected results.
次に、図5と図6は、修正後に記述のソースコードを示す。図5には、登録者は、開発者Bであり、コミットメッセージは、“SubBのmメソッドの処理をユーティリティメソッドとして定義”であり、ソースコードには、Main、SubA、SubB、Utilの4つのクラスが記述されており、登録されたリビジョンは2である。 Next, FIG. 5 and FIG. 6 show the source code of the description after correction. In FIG. 5, the registrant is developer B, the commit message is “define SubB m method processing as a utility method”, and the source code includes Main, SubA, SubB, and Util. The class is described and the registered revision is 2.
図5に示すように“Main.func”メソッド、及び“SubA.m”メソッドが変更されておらず、“SubB.m”メソッドが変更され、新たにUtil.mメソッドを作成し、SubBのmメソッドの処理をユーティリティメソッドとして定義している。そして、SubBクラスからUtilクラスのメソッドを呼び出すよう変更されている。 As shown in FIG. 5, the “Main.func” method and the “SubA.m” method are not changed, the “SubB.m” method is changed, and a new Util. The m method is created, and the SubB m method processing is defined as a utility method. Then, the Util class method is called from the SubB class.
また、図6には、登録者は、開発者Cであり、コミットメッセージは、“SubAの処理をユーティリティメソッドを使用するよう修正”であり、ソースコードには、Main、SubA、SubB、Utilの4つのクラスが記述されており、登録されたリビジョンは3である。 In FIG. 6, the registrant is developer C, the commit message is “Modify SubA processing to use utility method”, and the source code includes Main, SubA, SubB, and Util. Four classes are described, and the registered revision is 3.
図6に示すように、“Main.func”メソッドが変更されておらず、“SubB.m”メソッドの変更に加えて、“SubA.m”メソッド“も変更され、新たにUtil.mメソッドを作成し、SubAのmメソッドの処理をユーティリティメソッドとして定義している。 As shown in FIG. 6, the “Main.func” method has not been changed, and in addition to the change of the “SubB.m” method, the “SubA.m” method has also been changed, and a new Util.m method has been changed. The process of the SubA m method is created as a utility method.
そして、ソースコードにはさらにSubAクラスからもUtilクラスのメソッドを呼び出すよう変更されている。 The source code is further changed to call the method of the Util class from the SubA class.
ユーザは、図6に示す修正後のソースコードに対して、プログラムの仕様が変更されていないことを確認するために、図4のテスト項目を利用して回帰テストを行う。 The user performs a regression test using the test items in FIG. 4 in order to confirm that the specification of the program has not been changed with respect to the modified source code shown in FIG.
この際、ソースコード比較部104は、図2のステップS11で、修正前のソースコード(図3に示すソースコード)と、修正後のソースコード(図6に示すソースコード)とを比較する。
At this time, the source
また、ソースコード比較部104は、ソースコードに記述されたテキストを比較することで、変更があった内容を特定する。
Further, the source
本実施形態では、前記特定した変更内容は、登録者、コミットメッセージ、リビジョン及び“SubA.mメソッド、SubB.mメソッドおよびUtil.m”を含む。 In the present embodiment, the specified change content includes a registrant, a commit message, a revision, and a “SubA.m method, SubB.m method, and Util.m”.
尚、プログラムの機能変更に係る変更内容は“SubA.mメソッド、SubB.mメソッドおよびUtil.m”であり、この変更情報を差分情報として抽出して関係差分情報抽出部107に出力する。
Note that the contents of the change related to the program function change are “SubA.m method, SubB.m method and Util.m”, and this change information is extracted as difference information and output to the related difference
また、図2のステップS12で、テスト項目実行部105は、各テスト項目を実行し、各テスト項目で通過する経路を、テスト項目ごとに、実行経路情報保存部106に保存する。図7に示すように、3つのテスト項目が通過した経路を示している。
Further, in step S12 of FIG. 2, the test
例えば、テスト項目1は、Mainクラスのfuncメソッドが引数=0で呼び出されるので、3行目の条件式(a>0)が負になり、SubB.mメソッドが引数=0で呼び出される。SubB.mメソッドでは、更にUtil.mメソッドが呼び出されるため、実行経路情報はMain.func、SubB.m、Util.mとなり、その情報を実行経路情報保存部106に保存する。
For example, in
テスト項目2は、Mainクラスのfuncメソッドが引数=1で呼び出されるので、3行目の条件式(a=1)が正になり、SubA.mメソッドが引数=1で呼び出される。SubA.mメソッドでは、更にUtil.mメソッドが呼び出されるため、実行経路情報はMain.func、SubA.m、Util.mとなり、その情報を実行経路情報保存部106に保存する。
In
テスト項目3は、Mainクラスのfuncメソッドが引数=−1で呼び出されるので、3行目の条件式(a=−1)が負になり、SubB.mメソッドが引数=−1で呼び出される。SubB.mメソッドでは、更にUtil.mメソッドが呼び出されるため、実行経路情報はMain.func、SubB.m、Util.mとなり、その情報を実行経路情報保存部106に保存する。
In test item 3, since the func method of the Main class is called with argument = -1, the conditional expression (a = -1) on the third line becomes negative, and SubB. The m method is called with argument = -1. SubB. In the m method, Util. Since the m method is called, the execution path information is Main. func, SubB. m, Util. m, and the information is stored in the execution path
すべてのテスト項目を実施した後、実行経路情報保存部106に保存される情報を図7に示す。本実施例では、実行経路情報として実行したメソッド名のみを保存しているが、より詳細に実行した行まで保存してもよい。
FIG. 7 shows information stored in the execution path
テスト項目実行部105の実行手段として、例えばJavaでJUnitを用いたテストであれば、jcoverageのようなカバレッジツールを用いてカバレッジ情報を取得するといった手段が考えられる。
As an execution means of the test
また、他の手段として、エラー発生時ソースコードに対し、例えばメソッドの開始、終了時にデバッグ文を追加するといった処理を実施後にテストを実行し、そのデバッグ文から実行したメソッド情報を取得するといった手段も考えられる。テスト項目実行部105にどの手段を用いてもよい。
As another means, for example, a test is executed on the source code when an error occurs, for example, a debug statement is added at the start or end of a method, and a test is executed, and the executed method information is acquired from the debug statement. Is also possible. Any means may be used for the test
さらに、テスト項目実行部105は、図8に示すように、3つのテスト項目の内、バグとなったテスト項目3が通過した経路のみを実行経路情報保存部106に保存する。
関係差分情報抽出部107は、ステップS13で、実行経路情報保存部106に保存された実行経路情報(図7)を参照し、回帰テストでNG(エラー)となったテスト項目3の実行経路情報である“Main.func、SubB.m、Util.m”を実行経路情報保存部106から取得する。
Further, as shown in FIG. 8, the test
In step S13, the relationship difference
また、関係差分情報抽出部107は、ソースコード比較部104から前記差分情報である“SubA.mメソッド、SubB.mメソッドおよびUtil.m”を受け取り、NGとなったテスト項目3の実行経路情報に存在する差分情報のみを抽出する。
Further, the relation difference
図7を参照すると、テスト項目3で実行される経路は“Main.func”、“SubB.m”、“Util.m”メソッドである。 Referring to FIG. 7, the paths executed in the test item 3 are “Main.func”, “SubB.m”, and “Util.m” methods.
一方、図2のステップS11で、ソースコード比較部104から取得した前記差分情報は、“SubA.mメソッド、SubB.mメソッドおよびUtil.m”であるため、関係の差分情報が“SubB.m”及び“Util.m”メソッドの2つであることがわかる。
On the other hand, since the difference information acquired from the source
そして、図2のステップS13で、関係差分情報抽出部107は、この関係の差分情報である“SubB.mメソッドおよびUtil.m”の2つを抽出する。
Then, in step S13 of FIG. 2, the relationship difference
修正リビジョン抽出部108は、ステップS14で、関係差分情報抽出部107により抽出されたSubB.mメソッドおよびUtil.mメソッドのそれぞれについて、修正されたリビジョンをバージョン管理部101に問い合わせる。 In step S14, the revision revision extracting unit 108 extracts the SubB. m method and Util. For each of the m methods, the version management unit 101 is inquired about a revised revision.
図5に示すように、SubB.mメソッドおよびUtil.mのどちらもリビジョン2で変更されているため、バージョン管理部101は、修正リビジョン抽出部108にそのリビジョン情報(この場合は、数字の2)を出力する。
As shown in FIG. m method and Util. Since both m have been changed in
表示部109は、ステップS15で、関係差分情報抽出部107で抽出された関係の差分情報(SubB.mメソッドおよびUtil.mメソッド)と修正リビジョン抽出部108で抽出された当該差分情報が発生したリビジョン情報(この場合は、数字の2)とを受け取り、修正後のソースコードの回帰テストでNGとなった原因の調査として、SubB.mメソッドおよびUtil.mメソッド、およびリビジョン2を確認すれば良い旨を表示する。
In step S15, the
表示部109では確認すべきクラスやメソッド名、および修正前のソースコードと修正後のソースコードの差分情報に、バグとなったテスト項目が通過した経路に存在する関係を有する差分情報と、その差分が発生したリビジョン情報を合わせて表示することとなっている。しかしながら、リビジョン情報はバージョン管理部への該当リビジョン情報へのリンクとしても良い。また、同一箇所への修正リビジョンが複数存在する場合、最新のリビジョン情報のみ表示しても全て表示してもどちらでも良い。それらは設定により切り替えられるものとする。
[第2の実施形態]
次に、本発明の第2の実施形態について図面を参照して詳細に説明する。なお、本実施形態の説明において、本発明の第2の実施形態に係るデバッグ支援システム800の入出力部、表示部及び送受信部の以外に、本発明の第1の実施形態に係るデバッグ支援システム100と同様なシステム構成や同様に動作するステップを有するため、それにおける詳細な説明を省略する。
In the
[Second Embodiment]
Next, a second embodiment of the present invention will be described in detail with reference to the drawings. In the description of the present embodiment, in addition to the input / output unit, the display unit, and the transmission / reception unit of the debug support system 800 according to the second embodiment of the present invention, the debug support system according to the first embodiment of the present invention. Since it has a system configuration similar to 100 and steps that operate in the same manner, detailed description thereof will be omitted.
即ち、本発明の第2の実施形態に係るデバッグ支援システム900の構成は、図9に示すように、デバッグ支援システム900は、キーボード902及びマウス903を有する入出力部901、ソースコード比較部904、テスト項目実行部905、関係差分情報抽出部906、修正リビジョン抽出部907、ディスプレイー909を有する表示部908及び送受信部910を備える。
That is, the configuration of the debug support system 900 according to the second embodiment of the present invention is as shown in FIG. 9. The debug support system 900 includes an input / output unit 901 having a
デバッグ支援システム900はネットワーク911を介して外部機器と接続している。 The debugging support system 900 is connected to an external device via a network 911.
前記入出力部901は、記憶装置912を備え、キーボード902とマウス903とが接続されて、キーボード902やマウス903から送られてくる信号を、バスを介して各部に転送する。
The input / output unit 901 includes a
ユーザが入出力部901を操作して、ネットワーク911を介して外部機器にアクセスし、例えば、CD−ROM等の外部記録媒体により入力されるまたはLANまたはインターネット等のネットワークを介して、ネットワークに通信可能に接続されたサーバ等からデバッグ作業に必要な各情報、例えば、正常動作時ソースコードと、エラー発生時ソースコードと、ソースコードの作成日時、変更日時、変更箇所点及びソースコード作成時、変更時の番号(リビジョン)などの履歴情報を、送受信部を介して前記記憶装置912に記憶する。
The user operates the input / output unit 901 to access an external device via the network 911 and, for example, is input via an external recording medium such as a CD-ROM or communicates with the network via a network such as a LAN or the Internet. Information necessary for debugging work from a server or the like that can be connected, for example, source code at normal operation, source code at the time of error occurrence, source code creation date / time, modification date / time, modification point and source code creation, History information such as the number (revision) at the time of change is stored in the
ソースコード比較部904は、前記送受信部から取得した正常動作時ソースコードと、エラー発生時ソースコードとを比較し、変更があった内容を特定する。特定した変更内容から機能の変更に係る変更内容を抽出して差分情報として関係差分情報抽出部906に出力する。
The source code comparison unit 904 compares the normal operation source code acquired from the transmission / reception unit with the error source code, and identifies the changed content. The change content related to the function change is extracted from the specified change content, and is output to the related difference
テスト項目実行部905は、修正後のソースコードのテストを実行したときに、テスト対象の各テスト項目がどの経路を通過するかを示す経路情報を抽出して関係差分情報抽出部906に渡す。
When executing the test of the modified source code, the test
関係差分情報抽出部906は、テスト項目実行部905から受け取った各テスト項目の通過経路情報と、ソースコード比較部904が出力する差分情報とに基づいて、バグとなったテスト項目が通過した経路に存在する関係の差分情報のみを抽出する。
The relationship difference
修正リビジョン抽出部907は、関係差分情報抽出部906が出力する関係の差分情報について、その差分が発生したリビジョン情報を前記記憶装置812に問合せて抽出する。
The revision revision extracting unit 907 inquires the storage device 812 and extracts the revision information in which the difference is generated, regarding the difference information of the relationship output by the relationship difference
表示部908は、外部の表示装置、例えば、ディスプレイー909と接続しており、関係差分情報抽出部906が出力する関係の差分情報と修正リビジョン抽出部907が出力するリビジョン情報を合わせてディスプレイー909に表示する。
The display unit 908 is connected to an external display device, for example, a display 909. The display unit 908 combines the relationship difference information output from the relationship difference
前記送信部910は、ユーザの指示があれば、前記表示部908に表示している関係の差分情報及びリビジョン情報を、ネットワーク911を介して外部機器に送信する。
If there is a user instruction, the
これにより、本発明の第2の実施形態としてのデバッグ支援システムにおいて、バグとなったテスト項目が通過した経路に存在する関係の差分情報と当該差分情報が発生したリビジョン情報を合わせてユーザに提示することができ、または、ユーザの指示により、外部機器にそれらの情報を送信することが可能となる。 As a result, in the debug support system as the second embodiment of the present invention, the difference information of the relationship existing in the path through which the test item that caused the bug has passed and the revision information in which the difference information has occurred are presented to the user together It is possible to transmit the information to an external device according to a user instruction.
前述したように、本発明の第1及び第2の実施形態によれば、回帰テストにおいて、バグとなったテスト項目が通過した経路に存在する関係の差分情報と当該差分情報が発生したリビジョン情報を合わせてユーザに提示することが可能となるため、ソフトウェアのデバッグ作業を効率化することができる。 As described above, according to the first and second embodiments of the present invention, in the regression test, the difference information on the relationship existing in the path through which the test item that caused the bug has passed and the revision information in which the difference information has occurred. Therefore, it is possible to improve the efficiency of software debugging.
また、上述した本発明の各実施形態において、各フローチャートを参照して説明した処理機能は、コンピュータによって実現することができる。その場合、デバッグ支援システムが有すべき機能の処理内容を記述したプログラムが提供される。 In the above-described embodiments of the present invention, the processing functions described with reference to the flowcharts can be realized by a computer. In that case, a program describing the processing contents of the functions that the debug support system should have is provided.
図10は、本発明の第1の実施形態または第2の実施形態としてのデバッグ支援システムのハードウェア構成の一例を示すブロック図である。 FIG. 10 is a block diagram illustrating an example of a hardware configuration of the debugging support system according to the first embodiment or the second embodiment of the present invention.
図10に示すように、本発明の第1の実施形態または第2の実施形態としてのデバッグ支援システムの処理機能は、ROM1003(Read Only Memory)又は記憶装置(HDD)1004に記憶されたコンピュータ・プログラムをCPU1001(Central Processing Unit)がRAM1002(Random Access Memory)に読み込んで実行することにより、上記処理機能がコンピュータ上で実現される。 As shown in FIG. 10, the processing functions of the debugging support system according to the first embodiment or the second embodiment of the present invention are a computer program stored in a ROM 1003 (Read Only Memory) or a storage device (HDD) 1004. The CPU 1001 (Central Processing Unit) reads the program into the RAM 1002 (Random Access Memory) and executes the program, thereby realizing the processing functions on the computer.
なお、上記のデバッグ支援システムの内部構成は一例である。デバッグ支援システムは
、CPU1001のみを備え、外部に備えられた、記憶装置1004、外部機器接続インタフェース1005、及びネットワークインタフェース1006を用いて動作してもよい。
The internal configuration of the debugging support system is an example. The debugging support system may include only the
また、前記処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体には、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。 Further, the program describing the processing contents can be recorded on a computer-readable recording medium. Examples of the computer-readable recording medium include a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory.
磁気記録装置には、HDD、フレキシブルディスク(FD)、磁気テープ(MT)などがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc - Read Only Memory)、CD−R(Recordable)/RW(Rewritable)などがある。光磁気記録媒体には、MO(Magneto - Optical disk)などがある。 Examples of the magnetic recording device include an HDD, a flexible disk (FD), and a magnetic tape (MT). Optical discs include DVD (Digital Versatile Disc), DVD-RAM, CD-ROM (Compact Disc-Read Only Memory), CD-R (Recordable) / RW (Rewritable), and the like. Magneto-optical recording media include MO (Magneto-Optical disk).
上記プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、
CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュー
タに格納しておき、ネットワークを通じて、サーバコンピュータから他のコンピュータに
そのプログラムを転送することもできる。
When distributing the above program, for example, a DVD on which the program is recorded,
Portable recording media such as CD-ROMs are sold. It is also possible to store the program in a server computer and transfer the program from the server computer to another computer via a network.
上記プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプロ
グラム若しくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納
する。
The computer that executes the program stores, for example, the program recorded on the portable recording medium or the program transferred from the server computer in its own storage device.
そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラム
に従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを
読み取り、そのプログラムに従った処理を実行することもできる。
Then, the computer reads the program from its own storage device and executes processing according to the program. The computer can also read the program directly from the portable recording medium and execute processing according to the program.
また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。 Further, each time the program is transferred from the server computer, the computer can sequentially execute processing according to the received program.
以上、本発明の実施の形態を説明したが、上記については単に本発明の原理を示すものである。本発明は上記に示して説明した構成および応用例に限定されるものではなく、さらに、多数の変形、変更が当業者にとって可能である。 Although the embodiment of the present invention has been described above, the above description merely shows the principle of the present invention. The present invention is not limited to the configurations and application examples shown and described above, and many variations and modifications can be made by those skilled in the art.
さらに、本発明に他の任意の構成物や工程が付加されてもよい。また、本発明は前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。 Furthermore, other arbitrary components and processes may be added to the present invention. Further, the present invention may be a combination of any two or more configurations (features) of the above-described embodiments.
本発明は、例えば、保守又は改善作業を含むソフトウェア開発全般に適用できる。 The present invention can be applied to software development in general including maintenance or improvement work, for example.
100 デバッグ支援システム
101 バージョン管理部
102 第1の記憶部
103 第2の記憶部
104 ソースコード比較部
105 テスト項目実行部
106 実行経路情報保存部
107 関係差分情報抽出部
108 修正リビジョン抽出部
109 表示部
900 デバッグ支援システム
901 入出力部
902 キーボード
903 マウス
904 ソースコード比較部
905 テスト項目実行部
906 関係差分情報抽出部
907 修正リビジョン抽出部
908 表示部
909 ディスプレイー
910 送受信部
911 ネットワーク
912 記憶装置
1001 CPU
1002 RAM
1003 ROM
1004 記憶装置
1005 外部機器接続インタフェース
1006 ネットワークインタフェース
DESCRIPTION OF SYMBOLS 100 Debug support system 101
1002 RAM
1003 ROM
1004
Claims (8)
前記バージョン管理部から出力する前記第1のソースコード及び前記第2のソースコードとを比較し、差分情報を出力するソースコード比較部と、
前記第2のソースコードに対して複数のテスト項目のテストを実行した際に処理が通過する経路を、テスト項目と関連付けて記録するテスト項目実行部と、
前記テスト項目実行部が記録する実行経路を保存する実行経路情報保存部と、
前記実行経路情報保存部に保存する前記実行経路と前記ソースコード比較部が出力する前記差分情報とを参照し、前記差分情報に基づいてバグとなったテスト項目が通過した実行経路に存在する関係を有する差分情報を抽出する関係差分情報抽出部と、
前記抽出された関係を有する差分情報が発生したリビジョンを前記バージョン管理部から抽出する修正リビジョン抽出部とを備えることを特徴とするデバッグ支援システム。 Creation date / time, change date / time, change location and source of source code between the first source code and the second source code in which at least part of the source code included in the first source code is modified or changed A version management unit that inputs and outputs history information such as revisions at the time of code creation or modification;
A source code comparison unit that compares the first source code and the second source code output from the version management unit and outputs difference information;
A test item execution unit that records a path through which a process passes when a test of a plurality of test items is executed on the second source code in association with the test item;
An execution path information storage unit that stores an execution path recorded by the test item execution unit;
A relationship in which a test item that becomes a bug based on the difference information exists in an execution path that passes through the execution path stored in the execution path information storage unit and the difference information output by the source code comparison unit. A relational difference information extraction unit for extracting difference information having
A debugging support system comprising: a revision revision extracting unit that extracts a revision in which difference information having the extracted relationship has occurred from the version management unit.
前記バージョン管理部から出力する前記第1のソースコード及び前記第2のソースコードとを比較し、差分情報を出力し、
前記第2のソースコードに対して複数のテスト項目のテストを実行した際に処理が通過する経路を、テスト項目と対応付けて記録し、
前記テスト項目実行部が記録する実行経路を保存し、
前記実行経路情報保存部に保存する前記実行経路と前記ソースコード比較部が出力する前記差分情報とを参照し、前記差分情報からバグとなったテスト項目が通過した実行経路に存在する関係の差分情報のみを抽出し、
前記抽出された関係の差分情報が発生したリビジョンを前記バージョン管理部から抽出することを特徴とするデバッグ支援方法。 Outputting a first source code from the version management unit and a second source code in which at least a part of the source code included in the first source code is modified or changed;
Compare the first source code and the second source code output from the version management unit, output the difference information,
A path through which the process passes when a test of a plurality of test items is executed on the second source code is recorded in association with the test item;
Save the execution path recorded by the test item execution unit,
Referencing the execution path stored in the execution path information storage unit and the difference information output by the source code comparison unit, the difference in the relationship existing in the execution path through which the test item that caused the bug has passed from the difference information Extract only information,
A debugging support method, comprising: extracting a revision in which the extracted difference information of the relationship has occurred from the version management unit.
前記バージョン管理部から出力する前記第1のソースコード及び前記第2のソースコードとを比較し、差分情報を出力する処理と、
前記第2のソースコードに対して複数のテスト項目のテストを実行した際に処理が通過する経路を、テスト項目と対応付けて記録する処理と、
前記テスト項目実行部が記録する実行経路を保存する処理と、
前記実行経路情報保存部に保存する前記実行経路と前記ソースコード比較部が出力する前記差分情報とを参照し、前記差分情報からバグとなったテスト項目が通過した実行経路に存在する関係の差分情報のみを抽出する処理と、
前記抽出された関係の差分情報が発生したリビジョンを前記バージョン管理部から抽出する処理とをコンピュターに実行させることを特徴とするデバッグ支援プログラム。 A process of outputting the first source code from the version management unit and the second source code in which at least a part of the source code included in the first source code is modified or changed;
A process of comparing the first source code and the second source code output from the version management unit and outputting difference information;
A process of recording a path through which a process passes when a test of a plurality of test items is executed on the second source code in association with a test item;
Processing for storing an execution path recorded by the test item execution unit;
Referencing the execution path stored in the execution path information storage unit and the difference information output by the source code comparison unit, the difference in the relationship existing in the execution path through which the test item that caused the bug has passed from the difference information A process to extract only information,
A debugging support program for causing a computer to execute a process of extracting a revision in which the extracted difference information of the extracted relationship is generated from the version management unit.
前記バージョン管理部から出力する前記第1のソースコード及び前記第2のソースコードとを比較し、差分情報を出力する処理と、
前記第2のソースコードに対して複数のテスト項目のテストを実行した際に処理が通過する経路を、テスト項目と対応付けて記録する処理と、
前記テスト項目実行部が記録する実行経路を保存する処理と、
前記実行経路情報保存部に保存する前記実行経路と前記ソースコード比較部が出力する前記差分情報とを参照し、前記差分情報からバグとなったテスト項目が通過した実行経路に存在する関係の差分情報のみを抽出する処理と、
前記抽出された関係の差分情報が発生したリビジョンを前記バージョン管理部から抽出する処理とをコンピュターに実行させるプログラムが記録された記録媒体。 A process of outputting the first source code from the version management unit and the second source code in which at least a part of the source code included in the first source code is modified or changed;
A process of comparing the first source code and the second source code output from the version management unit and outputting difference information;
A process of recording a path through which a process passes when a test of a plurality of test items is executed on the second source code in association with a test item;
Processing for storing an execution path recorded by the test item execution unit;
Referencing the execution path stored in the execution path information storage unit and the difference information output by the source code comparison unit, the difference in the relationship existing in the execution path through which the test item that caused the bug has passed from the difference information A process to extract only information,
A recording medium on which a program for causing a computer to execute a process of extracting the revision in which the extracted difference information of the extracted relationship is generated from the version management unit is recorded.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013133856A JP2015011372A (en) | 2013-06-26 | 2013-06-26 | Debug support system, method, program, and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013133856A JP2015011372A (en) | 2013-06-26 | 2013-06-26 | Debug support system, method, program, and recording medium |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015011372A true JP2015011372A (en) | 2015-01-19 |
Family
ID=52304516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013133856A Pending JP2015011372A (en) | 2013-06-26 | 2013-06-26 | Debug support system, method, program, and recording medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015011372A (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104765692A (en) * | 2015-04-29 | 2015-07-08 | 北京嘀嘀无限科技发展有限公司 | Method and equipment for automatically testing software |
CN108536600A (en) * | 2018-04-12 | 2018-09-14 | 平安普惠企业管理有限公司 | Regression testing method, unit and computer readable storage medium |
JP2019040280A (en) * | 2017-08-23 | 2019-03-14 | 富士通株式会社 | Output program, output method and information processing device |
JP2019057118A (en) * | 2017-09-21 | 2019-04-11 | 株式会社東芝 | Debug support device and debug support program |
US10613969B2 (en) | 2018-05-17 | 2020-04-07 | Red Hat Israel, Ltd. | Code coverage module with testing function identifier |
US11256602B2 (en) | 2020-01-30 | 2022-02-22 | Red Hat, Inc. | Source code file retrieval |
WO2022239549A1 (en) * | 2021-05-14 | 2022-11-17 | オムロン株式会社 | Version management method, version management program, and version management system |
WO2023199407A1 (en) * | 2022-04-12 | 2023-10-19 | 日本電信電話株式会社 | Maintenance work assistance device, maintenance work assistance method, and program |
-
2013
- 2013-06-26 JP JP2013133856A patent/JP2015011372A/en active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104765692A (en) * | 2015-04-29 | 2015-07-08 | 北京嘀嘀无限科技发展有限公司 | Method and equipment for automatically testing software |
JP2019040280A (en) * | 2017-08-23 | 2019-03-14 | 富士通株式会社 | Output program, output method and information processing device |
JP2019057118A (en) * | 2017-09-21 | 2019-04-11 | 株式会社東芝 | Debug support device and debug support program |
CN108536600A (en) * | 2018-04-12 | 2018-09-14 | 平安普惠企业管理有限公司 | Regression testing method, unit and computer readable storage medium |
US10613969B2 (en) | 2018-05-17 | 2020-04-07 | Red Hat Israel, Ltd. | Code coverage module with testing function identifier |
US11256602B2 (en) | 2020-01-30 | 2022-02-22 | Red Hat, Inc. | Source code file retrieval |
WO2022239549A1 (en) * | 2021-05-14 | 2022-11-17 | オムロン株式会社 | Version management method, version management program, and version management system |
WO2023199407A1 (en) * | 2022-04-12 | 2023-10-19 | 日本電信電話株式会社 | Maintenance work assistance device, maintenance work assistance method, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9753838B2 (en) | System and method to classify automated code inspection services defect output for defect analysis | |
US10552301B2 (en) | Completing functional testing | |
US10372594B2 (en) | Method and device for retrieving test case based on code coverage | |
US9898387B2 (en) | Development tools for logging and analyzing software bugs | |
JP2015011372A (en) | Debug support system, method, program, and recording medium | |
US8954930B2 (en) | System and method for reducing test effort by object risk analysis | |
US20060190770A1 (en) | Forward projection of correlated software failure information | |
US8621441B2 (en) | System and method for software immunization based on static and dynamic analysis | |
US8370816B2 (en) | Device, method and computer program product for evaluating a debugger script | |
US20170192880A1 (en) | Defect prediction | |
US8645761B2 (en) | Precise fault localization | |
US20110307502A1 (en) | Extensible event-driven log analysis framework | |
US10049031B2 (en) | Correlation of violating change sets in regression testing of computer software | |
US8302087B2 (en) | Quality assurance in software systems through autonomic reliability, availability and serviceability code generation | |
CN103186463B (en) | Determine the method and system of the test specification of software | |
CN110990289B (en) | Method and device for automatically submitting bug, electronic equipment and storage medium | |
US8762781B2 (en) | Method and apparatus useful in manufacturing test case operations | |
US8359579B2 (en) | Monitoring dynamic aspect oriented applications at execution time | |
CN110147313B (en) | Log output method and device | |
JP2011145824A (en) | Information processing apparatus, fault analysis method, and fault analysis program | |
CN115757099A (en) | Automatic test method and device for platform firmware protection recovery function | |
US10467131B1 (en) | Method and system for performance analysis by test automation frameworks | |
TW202311947A (en) | Device and method for re-executing of test cases in software application | |
KR20190020363A (en) | Method and apparatus for analyzing program by associating dynamic analysis with static analysis | |
US11392371B2 (en) | Identification of a partial code to be refactored within a source code |