JP7504775B2 - Computer system, program, and program correction method - Google Patents
Computer system, program, and program correction method Download PDFInfo
- Publication number
- JP7504775B2 JP7504775B2 JP2020189291A JP2020189291A JP7504775B2 JP 7504775 B2 JP7504775 B2 JP 7504775B2 JP 2020189291 A JP2020189291 A JP 2020189291A JP 2020189291 A JP2020189291 A JP 2020189291A JP 7504775 B2 JP7504775 B2 JP 7504775B2
- Authority
- JP
- Japan
- Prior art keywords
- correction
- acquisition range
- management information
- computer
- defect
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 87
- 238000012937 correction Methods 0.000 claims description 179
- 239000012634 fragment Substances 0.000 claims description 100
- 230000007547 defect Effects 0.000 claims description 77
- 239000000463 material Substances 0.000 claims description 71
- 238000012360 testing method Methods 0.000 claims description 50
- 230000008569 process Effects 0.000 claims description 38
- 230000004048 modification Effects 0.000 claims description 30
- 238000012986 modification Methods 0.000 claims description 26
- 230000014509 gene expression Effects 0.000 claims description 12
- 238000007689 inspection Methods 0.000 description 18
- 238000010998 test method Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 10
- 230000002950 deficient Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000007257 malfunction Effects 0.000 description 5
- 238000002715 modification method Methods 0.000 description 5
- 206010042635 Suspiciousness Diseases 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
本発明は、ソースファイルに含まれる不具合を修正する技術に関する。 The present invention relates to a technique for correcting defects contained in source files.
ソフトウェア開発において、プログラムに故障(開発者の意図と異なる動作)が発生した場合、開発者は当該故障が発生しないようにプログラムを修正する。プログラムの故障を引き起こす原因を不具合(欠陥及びバグ等)と呼ぶ。プログラムのソースファイルから不具合を含む箇所を特定し、当該箇所を改変することで不具合を取り除く作業をデバッグと呼ぶ。デバッグには、開発者の意図する動作を表したテストファイルを用いることが多い。 In software development, if a program malfunctions (behavior different from what the developer intended), the developer modifies the program to prevent the malfunction from occurring. The cause of a program malfunction is called a defect (flaw, bug, etc.). The process of identifying the part of the program source file that contains the malfunction and removing the malfunction by modifying that part is called debugging. Debugging often involves using test files that represent the behavior intended by the developer.
通常、開発者は手作業でデバッグを行うため、デバッグには長い時間を要するという問題がある。そこで、非特許文献1には、デバッグを自動化する技術が開示されている。
Normally, developers perform debugging manually, which can take a long time. Therefore, Non-Patent
非特許文献1に記載された技術は、ソースファイルから不具合を含む箇所を特定し(fault localization)、当該箇所を書き換える(patch generation)ことで、不具合を修正する技術である。この技術は、修正パターン(fix pattern)に従い、不具合を含む箇所のコード片を、デバッグ対象のソースファイル中の別の箇所に存在する正しい素材コード片(donor code)に変更するものである。
The technology described in Non-Patent
非特許文献1に記載された技術では、正しい素材コード片がデバッグ対象のソースファイルに存在しない場合、不具合を含む箇所を正しく書き換えることができず、不具合を取り除くことができない。
In the technology described in Non-Patent
また、デバッグ対象のソースファイルとは異なるソースファイル及びテストファイルから素材コード片を抽出した場合、抽出された素材コード片はデバッグ対象のソースファイルには適合しないことが多い。そのため、単に、不具合を取り除けない不正解の素材コード片が増えるだけで、デバッグの効率化に寄与せず、むしろ不正解の素材コード片を除外するための時間を要してしまう。 In addition, if raw code fragments are extracted from source files and test files that are different from the source file to be debugged, the extracted raw code fragments often do not match the source file to be debugged. As a result, the number of incorrect raw code fragments that cannot remove defects simply increases, which does not contribute to the efficiency of debugging, and instead takes time to remove the incorrect raw code fragments.
すなわち、素材コード片の取得範囲が狭いと、不具合を取り除ける可能性が低いという問題があり、素材コード片の取得範囲が広いと、不正解の素材コード片が増え、デバッグの効率化が低くなるという問題がある。従って、デバッグの精度及び効率の両方を向上させること難しい。 In other words, if the range of source code fragments is narrow, there is a problem that the possibility of eliminating the defect is low, and if the range of source code fragments is wide, there is a problem that the number of incorrect source code fragments increases, resulting in low debugging efficiency. Therefore, it is difficult to improve both the accuracy and efficiency of debugging.
本発明は、高い精度でかつ効率的なデバッグを実現することを目的とする。 The purpose of the present invention is to achieve highly accurate and efficient debugging.
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、プロセッサ及び前記プロセッサに接続される記憶装置を有する計算機を少なくとも一つ備える計算機システムであって、複数のソースファイル、前記ソースファイルを検査するために用いる、複数のテストファイル、及び、前記ソースファイルに含まれる不具合の修正方法を定義した修正パターンを管理する修正パターン管理情報と、前記修正パターンの識別情報、及び当該修正パターンに対して指定された取得範囲を対応づけたデータを格納する取得範囲管理情報と、を管理し、前記少なくとも一つの計算機は、ターゲットソースファイル及び当該ターゲットソースファイルに対応する前記テストファイルを用いて、前記ターゲットソースファイルの不具合が含まれる可能性がある箇所を特定する第1処理と、指定された取得範囲に基づいて、前記複数のソースファイル及び前記複数のテストファイルから素材コード片を取得し、前記記憶装置に格納する第2処理と、前記修正パターン及び前記素材コード片に基づいて、前記不具合を取り除くための改変内容を示す修正候補を生成し、前記修正候補を前記記憶装置に格納する第3処理と、を実行し、前記少なくとも一つの計算機は、前記第2処理において、前記修正パターン管理情報から前記修正パターンを選択し、前記取得範囲管理情報を参照して、前記選択された修正パターンに対応付けられる前記取得範囲に基づいて、前記複数のソースファイル及び前記複数のテストファイルから、命令及び式を前記素材コード片として取得する。 A representative example of the invention disclosed in the present application is as follows: That is, a computer system including at least one computer having a processor and a storage device connected to the processor manages a plurality of source files, a plurality of test files used to check the source files, and modification pattern management information for managing modification patterns defining a method of correcting defects contained in the source files , and acquisition range management information for storing identification information of the modification patterns and data correlating the acquisition ranges specified for the modification patterns, and the at least one computer detects a portion of the target source file that may contain a defect using a target source file and the test file corresponding to the target source file. a first process of identifying a defect, a second process of acquiring material code fragments from the plurality of source files and the plurality of test files based on a specified acquisition range and storing them in the storage device, and a third process of generating correction candidates indicating modifications to be made to remove the defect based on the correction pattern and the material code fragments and storing the correction candidates in the storage device , wherein in the second process, the at least one computer selects the correction pattern from the correction pattern management information, and, with reference to the acquisition range management information, acquires instructions and expressions as the material code fragments from the plurality of source files and the plurality of test files based on the acquisition range associated with the selected correction pattern .
本発明によれば、高い精度でかつ効率的なデバッグを実現できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。 The present invention makes it possible to achieve highly accurate and efficient debugging. Problems, configurations, and advantages other than those described above will become clear from the description of the following embodiments.
以下、図面を参照しつつ、本実施例について説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。 The present embodiment will be described below with reference to the drawings. However, the present invention should not be interpreted as being limited to the description of the embodiment shown below. It will be easily understood by those skilled in the art that the specific configuration can be changed without departing from the concept or purpose of the present invention.
以下の説明において、同一の又は類似する構成について同一の符号を付して、重複した説明を省略することがある。 In the following description, identical or similar components will be given the same reference symbols, and duplicate descriptions may be omitted.
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。 The terms "first," "second," "third," and the like used in this specification are used to identify components and do not necessarily limit the number or order.
図1は、実施例1のプログラム修正装置のハードウェア構成の一例を示す図である。 Figure 1 is a diagram showing an example of the hardware configuration of a program correction device according to the first embodiment.
プログラム修正装置100は、プロセッサ110、主記憶装置120、補助記憶装置130、入力装置140、出力装置150、及び通信装置160を備える。これらは図示しないバス等の通信手段を介して互いに通信可能に接続されている。
The
プロセッサ110は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等を用いて構成される。プロセッサ110は、主記憶装置120に格納されているプログラムを読み出して実行する。プロセッサ110がプログラムに従って処理を実行することによって、特定の機能を実現する機能部として動作する。以下の説明では、機能部を主語に処理を説明する場合、プロセッサ110が機能部を実現するプログラムを実行していることを示す。
The processor 110 is configured using, for example, a CPU (Central Processing Unit) or an MPU (Micro Processing Unit). The processor 110 reads and executes a program stored in the
主記憶装置120は、プロセッサ110が実行するプログラム及びプログラムが使用するデータを記憶する記憶装置であり、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)、不揮発性半導体メモリ(Non Volatile RAM)等である。主記憶装置120に格納されるプログラムについては図2を用いて説明する。
The
補助記憶装置130は、永続的にデータを記憶する大容量の記憶装置であり、例えば、ハードディスクドライブ、SSD(Solid State Drive)、CD(Compact Disc)及びDVD(Digital Versatile Disc)等の光学式記憶装置、並びに、ICカード、SDメモリカード、及び光学式記録媒体等の記録媒体の読取/書込装置等である。補助記憶装置130に格納されているプログラム及びデータは主記憶装置120に随時読み込まれる。なお、外部に接続されるストレージシステム及びクラウドサーバにより提供される記憶領域等を補助記憶装置130の代わりに用いてもよい。
The
入力装置140は、ユーザからの各種情報の入力を受け付けるインタフェースであり、例えば、キーボード、マウス、タッチパネル、カードリーダ、及び音声入力装置等である。出力装置150は、ユーザに処理経過及び処理結果等の各種情報を提供するユーザインタフェースであり、例えば、液晶モニタ、LCD(Liquid Crystal Display)、及びグラフィックカード等の画面表示装置、スピーカ等の音声出力装置、並びに印字装置等である。なお、プログラム修正装置100が通信装置160を介して他の装置との間で情報の入力や出力を行う構成としてもよい。
The
通信装置160は、LAN(Local Area Network)及びインターネット等の通信ネットワークを介して他の装置との間の通信を実現する有線方式又は無線方式の通信インタフェースであり、例えば、NIC(Network Interface Card)、無線通信モジュール、USB(Universal Serial Interface)モジュール、及びシリアル通信モジュール等である。
The
ここで、本実施例で使用する用語を定義する。 Here we define the terms used in this example.
「ソースコード」は、ソフトウェア開発の対象となるプログラムである。ソースコードには、開発者の意図と異なる動作を引き起こす不具合を含む場合がある。 "Source code" is the program that is the subject of software development. Source code may contain defects that cause the software to behave differently than the developer intended.
「メソッド」は、ソースコードをまとまった処理の単位で分割したものである。ソースコードは、1つ以上のメソッドを含む。メソッドは、1つ以上の命令(Statement)を含む。命令は、0以上の式(Expression)を含む。命令及び式をあわせて「コード片」と呼ぶ。 A "method" is a division of source code into a unit of processing. Source code contains one or more methods. A method contains one or more instructions (Statement). An instruction contains zero or more expressions (Expression). Instructions and expressions together are called a "piece of code."
「テストコード」は、ソースコードの動作を検査するプログラムである。テストコードは、開発者が意図するソースコードの動作を含む。 "Test code" is a program that checks the behavior of source code. Test code contains the behavior of the source code intended by the developer.
「テストメソッド」は、テストコードをまとまった処理の単位で分割したものである。テストメソッドは1つのメソッドの動作を検査するプログラムである。テストコードは、1つ以上のテストメソッドを含む。あるメソッドを検査するテストメソッドを、そのメソッドの「対応テストメソッド」と呼ぶ。1つのメソッドに2つ以上の対応テストメソッドが存在してもよい。 A "test method" is test code divided into units of coherent processing. A test method is a program that checks the behavior of a single method. Test code contains one or more test methods. A test method that checks a certain method is called the "corresponding test method" of that method. A single method may have two or more corresponding test methods.
「素材コード片」は、ソースコード及びテストコードのいずれかから取得したコード片である。実施例1では、ソースコードの不具合を含む可能性がある箇所(行)を、素材コード片を用いて改変することによってプログラムの修正を図る。このとき、正解の素材コード片を用いて改変することができればプログラムを修正できる。 A "raw code fragment" is a fragment of code obtained from either the source code or the test code. In the first embodiment, the program is corrected by modifying a portion (line) of the source code that may contain a defect using the raw code fragment. At this time, if the modification can be performed using the correct raw code fragment, the program can be corrected.
本明細書では、不具合を含む可能性がある箇所を不具合箇所候補と記載する。 In this specification, areas that may contain defects are referred to as potential defect areas.
図2は、実施例1のプログラム修正装置の機能構成の一例を示す図である。 Figure 2 is a diagram showing an example of the functional configuration of the program correction device of Example 1.
プログラム修正装置100は、不具合箇所特定部210、素材コード片取得部220、修正候補生成部230、及び修正候補検査部240を備える。プロセッサ110は、主記憶装置120に格納されるプログラム(プログラム修正プログラム)を実行することによって、各機能部として動作する。各機能部の具体的な処理については図11を用いて説明する。
The
また、プログラム修正装置100は情報記憶部290を備える。情報記憶部290は、補助記憶装置130により実現される。
The
情報記憶部290は、ソースファイル管理情報291、テストファイル管理情報292、不具合箇所候補管理情報293、修正パターン管理情報294、取得範囲管理情報295、素材コード片管理情報296、修正候補管理情報297、及び修正結果298を記憶する。情報記憶部290に記憶される各種情報の詳細については図3から図10を用いて説明する。
The
図3は、実施例1のソースファイル管理情報291の一例を示す図である。
Figure 3 shows an example of source
ソースファイル管理情報291は、1つ以上のソースフォルダ310を含む。ソースフォルダ310は、1つ以上のソースファイル320を含む。ソースファイル320は、1つ以上の行から構成されるソースコードを含む。
The source
図3には、ファイル名が「File1」であるソースファイル320を含む、フォルダ名が「dir1」であるソースフォルダ310を示している。ソースファイル320は、7行から構成され、1行目から7行目に「create」という名前のメソッドを含む。
Figure 3 shows a
なお、ソースフォルダ310は、1つ以上の他のソースフォルダ310を含んでもよい。
Note that a
なお、ソースコードは、Java(登録商標、以下同じ)及びC++等のプログラミング言語、又は、その他の任意のプログラミング言語を用いて記述される。 The source code is written in a programming language such as Java (registered trademark, the same applies below) or C++, or any other programming language.
図3に示すソースファイル320のソースコードは5行目に不具合を含む。当該不具合を取り除くためには、5行目に命令「createDirs(name);」を挿入すればよい。
The source code of source file 320 shown in FIG. 3 contains a defect on
図4は、実施例1のテストファイル管理情報292の一例を示す図である。
Figure 4 shows an example of test
テストファイル管理情報292は、1つ以上のテストフォルダ410を含む。テストフォルダ410は、1以上のテストファイル420を含む。テストファイル420は、1つ以上の行から構成されるテストコードを含む。
The test
図4には、ファイル名が「FileTest」であるテストファイル420を含む、フォルダ名が「dir1」であるテストフォルダ410を示している。テストファイル420は、14行から構成され、1行目から5行目に「testCreate1」という名前のテストメソッドを含み、7行目から14行目に「testCreate2」という名前のテストメソッドを含む。テストメソッド「testCreate1」及びテストメソッド「testCreate2」は共に、ソースファイル320に含まれるメソッド「create」の対応テストメソッドである。
Figure 4 shows a
テストファイル420のテストコードの9行目から11行目には、ソースファイル320に含まれるメソッド「create」が命令「createDirs(name);」を実行する、という開発者の意図が含まれる。
図5は、実施例1の不具合箇所候補管理情報293の一例を示す図である。
Figure 5 shows an example of defect
不具合箇所特定部210は、ソースファイル管理情報291及びテストファイル管理情報292を入力として受け付け、不具合箇所候補管理情報293を出力する。
The defect
不具合箇所候補管理情報293は、ファイル名501、行番号502、及び疑わしさ503から構成されるエントリを1つ以上含む。1つのエントリは1つの不具合箇所候補に対応する。
The defect
ファイル名501は、不具合を含む可能性のあるソースファイル320のファイル名を格納するカラムである。
行番号502は、ソースファイル320の不具合箇所候補を表す行の番号を格納するカラムである。
疑わしさ503は、不具合を含む可能性を示す値を格納するカラムである。本実施例では、0から1までの間の実数が疑わしさ503に格納される。値が1に近いほど、不具合を含む可能性が高いことを示す。
エントリの各カラムに格納される値は、ソースファイル320の不具合箇所候補を特定するための情報である。
The values stored in each column of an entry are information for identifying potential defect locations in
なお、不具合箇所が一意に特定できるならば、エントリは、ファイル名501、行番号502、及び疑わしさ503の全てを含まなくてもよい。
Note that if the defective location can be uniquely identified, the entry does not need to include all of the
図6は、実施例1の修正パターン管理情報294の一例を示す図である。
Figure 6 is a diagram showing an example of correction
修正パターン管理情報294は、修正パターンを管理するための情報である。ここで、修正パターンは、不具合を含むソースファイル320から修正候補を作成するための方法を示す情報である。
The correction
修正パターン管理情報294は、修正パターンID601及び修正方法602から構成されるエントリを1つ以上含む。1つのエントリは1つの修正パターンに対応する。
The correction
修正パターンID601は、修正パターンを一意に識別するためのIDを格納するカラムである。
修正方法602は、修正方法を格納するカラムである。例えば、修正パターンID601が「1」のエントリの修正方法602には、不具合箇所候補に含まれる任意の式を、別の式に書き換える修正方法が格納される。また、修正パターンID601が「2」のエントリの修正方法602には、不具合箇所候補に、別の命令を挿入する修正方法が格納される。
The
修正パターン管理情報294は、人手によって生成されてもよいし、過去のデバッグにおける修正方法の履歴情報から機械的に生成されてもよい。
The correction
なお、図6の修正パターン管理情報294の修正方法602に含まれる「$exp」は、ソースコードに含まれる任意の式を表すプレースホルダであり、「$exp」以外の文字列を用いてもよい。また、図6の修正パターン管理情報294の修正方法602に含まれる「$newExp」は、任意の素材コード片の式を表すプレースホルダであり、「$newExp」以外の文字列を用いてもよい。また、図6の修正パターン管理情報294の修正方法602に含まれる「$newStmt」は、任意の素材コード片の命令を表すプレースホルダであり、「$newStmt」以外の文字列を用いてもよい。
Note that "$exp" included in the
図7は、実施例1の取得範囲管理情報295の一例を示す図である。
Figure 7 is a diagram showing an example of acquisition
取得範囲管理情報295は、素材コード片の取得範囲を定義した情報である。修正パターンID701、取得範囲702、及び優先度703から構成されるエントリを1つ以上含む。1つのエントリは1つの取得範囲に対応する。
The acquisition
修正パターンID701は修正パターンID601と同一のカラムである。
取得範囲702は、素材コード片を取得する取得範囲を示す値を格納するカラムである。実施例1の取得範囲702には、「同一メソッド」、「同一ファイル」、及び「対応テストメソッド」のいずれかが格納される。「同一メソッド」は不具合箇所候補を含むメソッドを表し、「同一ファイル」は不具合箇所候補を含むソースファイル320を表し、「対応テストメソッド」は不具合箇所候補を含むメソッドの対応テストメソッドを表す。
優先度703は、任意の修正方法に使用する素材コード片の取得範囲の優先順位を示す値(優先度)を格納するカラムである。実施例1では、正解の素材コード片が含まれる可能性が高い取得範囲には大きい優先度が設定され、優先度が大きい順に素材コード片が使用される。各エントリの優先度703には、例えば、初期値として「0」が設定される。
なお、取得範囲702には、「同一メソッド」、「同一ファイル」、及び「対応テストメソッド」以外の取得範囲を示す値が格納されてもよい。例えば、不具合箇所を含むソースファイル320を含むソースフォルダ310の他のソースファイル320が指定範囲として指定されてもよい。
In addition, the
図8は、実施例1の素材コード片管理情報296の一例を示す図である。
Figure 8 shows an example of material code
素材コード片取得部220は、ソースファイル管理情報291、テストファイル管理情報292、及び不具合箇所候補管理情報293を入力として受け付け、素材コード片管理情報296を出力する。
The material code
素材コード片管理情報296は、素材コード片801及び取得範囲802から構成されるエントリを1つ以上含む。1つのエントリは1つの素材コード片に対応する。
The material code
素材コード片801は、ソースファイル管理情報291及びテストファイル管理情報292のいずれかから取得された素材コード片を格納するカラムである。
取得範囲802は取得範囲702と同一のカラムである。
図9は、実施例1の修正候補管理情報297の一例を示す図である。
Figure 9 shows an example of correction
修正候補生成部230は、ソースファイル管理情報291、不具合箇所候補管理情報293、修正パターン管理情報294、及び素材コード片管理情報296を入力として受け付け、修正候補管理情報297を出力する。
The correction
修正候補管理情報297は、修正候補901、修正パターンID902、及び取得範囲903から構成されるエントリを1つ以上含む。1つのエントリは1つの修正候補に対応する。
The correction
修正候補901は、修正パターン及び素材コード片に基づいて、不具合箇所候補の書き換え内容等を示すデータ、すなわち、修正候補を格納するカラムである。改変が行われたソースコード全体を修正候補としてもよいし、改変が行われたソースコードの改変部分のみを修正候補としてもよい。図9の修正候補管理情報297には、ファイル名「File1」のソースファイル320の5行目の不具合を取り除くための修正候補に対応するエントリ911、912、913が格納される。
修正パターンID902及び取得範囲903は、修正パターンID701及び取得範囲702と同一のカラムである。
図10は、実施例1の修正結果298の一例を示す図である。
Figure 10 shows an example of the
修正候補検査部240は、テストファイル管理情報292及び修正候補管理情報297を入力として受け付け、修正結果298を出力する。
The correction
修正結果298は、修正候補管理情報297に格納される修正候補を検査した結果、不具合が取り除かれたことが確認された修正候補である。
The
図10に示す修正結果298は、図3に示すソースファイル320の5行目に命令「createDirs(name);」が挿入されたソースコードである。
The modified
図11は、実施例1のプログラム修正装置100が実行するプログラム修正処理を説明するフローチャートである。
Figure 11 is a flowchart illustrating the program correction process executed by the
プログラム修正装置100は、例えば、ユーザからの指示を受信した場合にプログラム修正処理を開始してもよいし、また、スケジュールされたタイミングでバッチ処理等により自動的にプログラム修正処理を開始してもよい。以下において、符号の前に付している文字「S」は処理ステップを意味する。
The
不具合箇所特定部210は、情報記憶部290に記憶されるソースファイル管理情報291及びテストファイル管理情報292に基づいて、ターゲットソースファイル320の不具合箇所候補を特定し、不具合箇所候補管理情報293を出力する(ステップS101)。
The
例えば、不具合箇所特定部210は、静的解析又は欠陥限局(fault localization)を用いて、不具合箇所候補を特定する。
For example, the fault
次に、素材コード片取得部220は、不具合箇所候補管理情報293を参照し、処理する不具合箇所候補を選択する(ステップS102)。
Next, the material code
具体的には、素材コード片取得部220は、不具合箇所候補管理情報293のエントリを1つ選択する。実施例1では、疑わしさ503の値が1に近い順にエントリが選択されるものとする。以下の説明では、選択されたエントリに対応する不具合箇所候補を選択箇所とも記載する。
Specifically, the material code
次に、素材コード片取得部220は、修正パターン管理情報294を参照し、修正パターンを選択する(ステップS103)。
Next, the material code
具体的には、素材コード片取得部220は、修正パターン管理情報294のエントリを1つ選択する。
Specifically, the material code
次に、素材コード片取得部220は、ターゲットソースファイル320及び取得範囲管理情報295に基づいて、素材コード片の取得先となる取得範囲を選択する(ステップS104)。
Next, the material code
具体的には、素材コード片取得部220は、優先度に基づいて、取得範囲管理情報295のエントリを1つ以上選択する。実施例1では優先度の高い順に取得範囲が1つ選択されるものとする。不必要な素材コード片の生成を抑制でき、また、不具合が取り除ける可能性が高い素材コード片を取得することができる。これによって、デバッグの精度が向上し、かつ、デバッグの効率化を実現できる。
Specifically, the material code
なお、素材コード片取得部220は、閾値より高い優先度の取得範囲を選択してもよい。閾値は予め設定されてもよいし、ユーザが指定してもよい。
The material code
次に、素材コード片取得部220は、選択箇所を基準として、選択した取得範囲から素材コード片を取得する(ステップS105)。
Next, the material code
このとき、素材コード片取得部220は、素材コード片管理情報296に、取得した素材コード片と同数のエントリを生成し、生成された各エントリの素材コード片801に取得した素材コード片を格納する。また、素材コード片取得部220は、各エントリの取得範囲802に選択した取得範囲の値を設定する。
At this time, the material code
例えば、図7の取得範囲管理情報295の1番目のエントリが選択されている場合、素材コード片取得部220は、選択箇所が含まれるメソッドから素材コード片を取得する。ファイル名「File1」の5行目が選択箇所として選択された場合、図8の1番目及び2番目のエントリが追加される。
For example, when the first entry in the acquisition
例えば、図7の取得範囲管理情報295の2番目のエントリが選択されている場合、素材コード片取得部220は、選択箇所が含まれるターゲットソースファイル320から素材コード片を取得する。ファイル名「File1」の5行目が選択箇所として選択された場合、図8の3番目のエントリが追加される。
For example, when the second entry in the acquisition
例えば、図7の取得範囲管理情報295の4番目のエントリが選択されている場合、素材コード片取得部220は、選択箇所が含まれるターゲットソースファイル320に対応するテストファイル420の、選択箇所の対応テストメソッドから素材コード片を取得する。ファイル名「File1」の5行目が選択箇所として選択された場合、図8の4番目のエントリが追加される。
For example, when the fourth entry in the acquisition
次に、素材コード片取得部220は、全ての修正方法について処理が完了したか否かを判定する(ステップS106)。
Next, the material code
全ての修正方法について処理が完了していない場合、素材コード片取得部220はステップS103に戻り、同様の処理を実行する。
If processing has not been completed for all correction methods, the material code
全ての修正方法について処理が完了した場合、修正候補生成部230は、素材コード片及び修正方法に基づいて、修正候補を生成する(ステップS107)。
When processing has been completed for all correction methods, the correction
具体的には、修正候補生成部230は、素材コード片を用いて、各修正方法に従って、選択箇所に対する改変を行うことによって修正候補を生成する。例えば、修正候補生成部230は、素材コード片を用いて選択箇所を書き換えることによって、修正候補を生成する。このとき、修正候補生成部230は、修正候補管理情報297に、生成された修正候補と同数のエントリを生成し、生成された各エントリの修正候補901に修正候補を格納する。また、修正候補生成部230は、追加された各エントリの修正パターンID902に、使用した修正方法のIDを格納し、取得範囲903に、使用した素材コード片の取得範囲の値を格納する。
Specifically, the correction
図9の修正候補管理情報297には、ファイル名「File1」の5行目が選択箇所として選択された場合に生成される修正候補を示している。1番目のエントリには、修正パターンID601が「1」の修正方法に従って、選択箇所に含まれる式「name」が同一メソッドから取得された素材コード片「null」に書き換えられた修正候補が格納される。3番目のエントリには、修正パターンID601が「2」の修正方法に従って、選択箇所に、対応テストメソッドから取得された素材コード片「createDirs(name);」が追加された修正候補が格納される。
The correction
なお、修正候補生成部230は、選択した修正方法に従ってターゲットソースファイル320を改変するとき、改変前のコード片と型が合わない素材コード片は使用しないようにしてもよい。
When modifying the target source file 320 according to the selected modification method, the modification
なお、修正候補生成部230は、選択した修正方法に従ってターゲットソースファイル320を改変するとき、修正方法の取得範囲として指定されていない取得範囲から取得された素材コード片を使用しないようにしてもよい。例えば、修正パターンID601が「1」の修正方法が選択された場合、図8の素材コード片管理情報296の4番目のエントリを除外する。これによって、修正方法ごとに使用する素材コード片を制限でき、生成される修正候補の数を減らすことができる。従って、ソースファイル320の不具合を効率よく取り除くことができる。
When modifying the target source file 320 according to the selected correction method, the correction
なお、修正候補生成部230は、優先度703の値に基づいて、使用する修正方法を選択してもよい。例えば、修正候補生成部230は、優先度が閾値より大きい修正方法を選択する。これによって、生成される修正候補の数が削減できるため、ソースファイル320の不具合を効率よく取り除くことができる。
The correction
なお、修正候補生成部230は、改変された行を含む、改変後のソースファイル320の一部を修正候補として生成してもよい。
The
次に、修正候補検査部240は、ターゲットソースファイル320に対応するテストファイル420を用いて修正候補を検査する(ステップS108)。修正候補の検査は、例えば、静的解析及びテストコードを用いる方法が考えられる。
Next, the correction
修正候補検査部240は、検査の結果、不具合が取り除かれた修正候補が存在するか否かを判定する(ステップS109)。
The correction
不具合が取り除かれた修正候補が存在しない場合、修正候補検査部240は、優先度を変更できるか否かを判定する(ステップS110)。
If there is no correction candidate that removes the defect, the correction
例えば、修正候補検査部240は、現在の優先度を下げることができるか否かを判定する。
For example, the correction
優先度を変更できない場合、修正候補検査部240は、素材コード片取得部220を呼び出し、ステップS102に戻る。
If the priority cannot be changed, the correction
このとき、修正候補検査部240は、素材コード片管理情報296及び修正候補管理情報297を初期化する。なお、素材コード片管理情報296は初期化されなくてもよい。
At this time, the correction
これは、別の不具合箇所候補を改変することによって、不具合を取り除くことができる可能性があるためである。 This is because it may be possible to eliminate the defect by modifying another potential defect location.
優先度を変更できる場合、修正候補検査部240は、優先度を変更し(ステップS111)、素材コード片取得部220を呼び出し、ステップS103に戻る。
If the priority can be changed, the correction
このとき、修正候補検査部240は、素材コード片管理情報296及び修正候補管理情報297を初期化する。なお、素材コード片管理情報296は初期化されなくてもよい。
At this time, the correction
例えば、修正候補検査部240は現在の優先度を下げる。任意の優先度の取得範囲から取得された素材コード片では不具合を取り除くことができない場合、他の優先度の取得範囲から素材コード片を取得することによって、新たな修正候補を生成できる。このように、修正候補を効率的に生成しつつ、精度よく不具合を取り除くことができる。
For example, the correction
ステップS109において、不具合が取り除かれた修正候補が存在する場合、修正候補検査部240は、当該修正候補を修正結果298として出力する。その後、プログラム修正装置100はプログラム修正処理を終了する(ステップS112)。
In step S109, if a correction candidate that removes the defect is present, the correction
このとき、修正候補検査部240は、取得範囲管理情報295の優先度703を更新してもよい。具体的には、修正候補検査部240は、修正パターンID701及び取得範囲702の値の組合せが、不具合が取り除かれた修正候補に対応するエントリの修正パターンID902及び取得範囲903の組合せと一致するエントリを検索する。修正候補検査部240は、検索されたエントリの優先度703の値に1を加算する。なお、加算する値は任意に設定できる。
At this time, the correction
修正結果298に応じて優先度を更新することによって、各修正方法について、効率的に素材コード片を取得できる取得範囲を特定できる。これによって、人手により優先度を指定する手間を削減でき、効率よく不具合を取り除くことができる。
By updating the priority according to the
なお、優先度703は更新されなくてもよい。
Note that
以上説明したように、実施例1に係るプログラム修正装置100は、不具合を含むソースファイル320だけでなく、他のソースファイル320及びテストファイル420から素材コード片を取得する。これによって、不具合を取り除く可能性を高めることができる。
As described above, the
また、実施例1に係るプログラム修正装置100は、取得範囲管理情報295を用いて、修正方法毎に素材コード片を取得する取得範囲を制御する。これによって、不具合を取り除く可能性が高い素材コード片を用いた修正候補を効率的に生成できる。
The
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。 The present invention is not limited to the above-described embodiments, but includes various modified examples. For example, the above-described embodiments are provided to explain the present invention in detail, and are not necessarily limited to those including all of the described configurations. In addition, it is possible to add, delete, or replace part of the configuration of each embodiment with another configuration.
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。 The above-mentioned configurations, functions, processing units, processing means, etc. may be realized in part or in whole by hardware, for example by designing them as integrated circuits. The present invention can also be realized by software program code that realizes the functions of the embodiments. In this case, a storage medium on which the program code is recorded is provided to a computer, and a processor included in the computer reads the program code stored in the storage medium. In this case, the program code itself read from the storage medium realizes the functions of the above-mentioned embodiments, and the program code itself and the storage medium on which it is stored constitute the present invention. Examples of storage media for supplying such program code include flexible disks, CD-ROMs, DVD-ROMs, hard disks, SSDs (Solid State Drives), optical disks, magneto-optical disks, CD-Rs, magnetic tapes, non-volatile memory cards, ROMs, etc.
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java等の広範囲のプログラム又はスクリプト言語で実装できる。 In addition, the program code that realizes the functions described in this embodiment can be implemented in a wide range of program or script languages, such as assembler, C/C++, perl, Shell, PHP, Python, Java, etc.
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。 Furthermore, the program code of the software that realizes the functions of the embodiment may be distributed over a network and stored in a storage means such as a computer's hard disk or memory, or in a storage medium such as a CD-RW or CD-R, and the processor of the computer may read and execute the program code stored in the storage means or storage medium.
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。 In the above examples, the control lines and information lines are those that are considered necessary for the explanation, and not all control lines and information lines in the product are necessarily shown. All components may be interconnected.
100 プログラム修正装置
110 プロセッサ
120 主記憶装置
130 補助記憶装置
140 入力装置
150 出力装置
160 通信装置
210 不具合箇所特定部
220 素材コード片取得部
230 修正候補生成部
240 修正候補検査部
290 情報記憶部
291 ソースファイル管理情報
292 テストファイル管理情報
293 不具合箇所候補管理情報
294 修正パターン管理情報
295 取得範囲管理情報
296 素材コード片管理情報
297 修正候補管理情報
298 修正結果
310 ソースフォルダ
320 ソースファイル
410 テストフォルダ
420 テストファイル
100 Program correction device 110
Claims (8)
複数のソースファイル、前記ソースファイルを検査するために用いる、複数のテストファイル、及び、前記ソースファイルに含まれる不具合の修正方法を定義した修正パターンを管理する修正パターン管理情報と、前記修正パターンの識別情報、及び当該修正パターンに対して指定された取得範囲を対応づけたデータを格納する取得範囲管理情報と、を管理し、
前記少なくとも一つの計算機は、
ターゲットソースファイル及び当該ターゲットソースファイルに対応する前記テストファイルを用いて、前記ターゲットソースファイルの不具合が含まれる可能性がある箇所を特定する第1処理と、
前記取得範囲に基づいて、前記複数のソースファイル及び前記複数のテストファイルから素材コード片を取得し、前記記憶装置に格納する第2処理と、
前記修正パターン及び前記素材コード片に基づいて、前記不具合を取り除くための改変内容を示す修正候補を生成し、前記修正候補を前記記憶装置に格納する第3処理と、を実行し、
前記少なくとも一つの計算機は、前記第2処理において、
前記修正パターン管理情報から前記修正パターンを選択し、
前記取得範囲管理情報を参照して、前記選択された修正パターンに対応付けられる前記取得範囲に基づいて、前記複数のソースファイル及び前記複数のテストファイルから、命令及び式を前記素材コード片として取得することを特徴とする計算機システム。 A computer system including at least one computer having a processor and a storage device connected to the processor,
managing a plurality of source files, a plurality of test files used to check the source files, and correction pattern management information for managing correction patterns defining a method of correcting defects contained in the source files ; and acquiring range management information for storing identification information of the correction patterns and data correlating an acquiring range designated for the correction patterns;
The at least one computer
a first process of identifying a portion of the target source file that may contain a defect, using a target source file and the test file corresponding to the target source file;
a second process of acquiring material code fragments from the plurality of source files and the plurality of test files based on the acquisition range and storing the material code fragments in the storage device;
a third process of generating a correction candidate indicating a modification content for removing the defect based on the correction pattern and the raw code fragment, and storing the correction candidate in the storage device ;
The at least one computer, in the second process,
selecting the correction pattern from the correction pattern management information;
A computer system characterized by referring to the acquisition range management information and acquiring instructions and expressions as the material code fragments from the multiple source files and the multiple test files based on the acquisition range associated with the selected modification pattern .
前記取得範囲管理情報に格納される前記データは、前記取得範囲の優先順位を示す優先度が対応づけられ、The data stored in the acquisition range management information is associated with a priority indicating a priority order of the acquisition range,
前記少なくとも一つの計算機は、前記第2処理において、The at least one computer, in the second process,
前記優先度に基づいて、前記選択された修正パターンに対応付けられる前記取得範囲の中から使用する前記取得範囲を選択し、selecting the acquisition range to be used from the acquisition ranges associated with the selected correction pattern based on the priority;
前記選択された取得範囲に基づいて、前記複数のソースファイル及び前記複数のテストファイルから前記素材コード片を取得することを特徴とする計算機システム。A computer system comprising: a computer that acquires the source code fragments from the plurality of source files and the plurality of test files based on the selected acquisition range.
前記少なくとも一つの計算機は、The at least one computer
前記選択された取得範囲から取得された前記素材コード片を用いて生成された前記修正候補を検査し、前記不具合が取り除かれているか否かを判定する第4処理を実行し、executing a fourth process of inspecting the correction candidate generated using the material code fragment acquired from the selected acquisition range and determining whether the defect has been removed;
前記不具合が取り除かれている場合、前記修正候補を修正結果として出力し、If the defect is removed, output the correction candidate as a correction result;
前記不具合が取り除かれていない場合、前記第2処理、前記第3処理、及び前記第4処理を再実行し、If the defect is not eliminated, re-executing the second process, the third process, and the fourth process;
再実行される前記第2処理では、前記少なくとも一つの計算機は、前記優先度に基づいて、前記選択された修正パターンに対応付けられる前記取得範囲の中から、前回と異なる前記取得範囲を選択することを特徴とする計算機システム。A computer system characterized in that, in the second process being re-executed, the at least one computer selects, based on the priority, from the acquisition ranges associated with the selected modification pattern, an acquisition range that is different from the previous acquisition range.
前記少なくとも一つの計算機は、前記第4処理において、前記修正結果に基づいて、当該修正結果として出力された前記修正候補を生成するために用いた前記素材コード片の前記取得範囲に対応付けられる前記優先度を更新することを特徴とする計算機システム。The at least one computer in the fourth process updates, based on the correction result, the priority associated with the acquisition range of the material code fragment used to generate the correction candidate output as the correction result.
前記計算機は、複数のソースファイル、前記ソースファイルを検査するために用いる、複数のテストファイル、及び、前記ソースファイルに含まれる不具合の修正方法を定義した修正パターンを管理する修正パターン管理情報と、前記修正パターンの識別情報、当該修正パターンに対して指定された取得範囲、及び前記取得範囲の優先順位を示す優先度を対応づけたデータを格納する取得範囲管理情報と、を保持し、the computer holds correction pattern management information for managing a plurality of source files, a plurality of test files used to check the source files, and correction patterns defining a method of correcting defects included in the source files, and acquisition range management information for storing data correlating identification information of the correction patterns, acquisition ranges designated for the correction patterns, and priorities indicating the priority levels of the acquisition ranges;
前記プログラムは、The program is
ターゲットソースファイル及び当該ターゲットソースファイルに対応する前記テストファイルを用いて、前記ターゲットソースファイルの不具合が含まれる可能性がある箇所を特定する第1処理と、a first process of identifying a portion of the target source file that may contain a defect, using a target source file and the test file corresponding to the target source file;
指定された取得範囲に基づいて、前記複数のソースファイル及び前記複数のテストファイルから素材コード片を取得し、前記記憶装置に格納する第2処理と、a second process of acquiring material code fragments from the plurality of source files and the plurality of test files based on a specified acquisition range and storing the material code fragments in the storage device;
前記修正パターン及び前記素材コード片に基づいて、前記不具合を取り除くための改変内容を示す修正候補を生成し、前記修正候補を前記記憶装置に格納する第3処理と、を前記計算機に実行させ、a third process of generating a modification candidate indicating a modification content for removing the defect based on the modification pattern and the original code fragment, and storing the modification candidate in the storage device;
前記第2処理は、The second process includes:
前記修正パターン管理情報から前記修正パターンを選択する処理と、a process of selecting the correction pattern from the correction pattern management information;
前記優先度に基づいて、前記選択された修正パターンに対応付けられる前記取得範囲の中から使用する前記取得範囲を選択する処理と、a process of selecting the acquisition range to be used from the acquisition ranges associated with the selected correction pattern based on the priority;
前記選択された取得範囲に基づいて、前記複数のソースファイル及び前記複数のテストファイルから、命令及び式を前記素材コード片として取得する処理と、を含むことを特徴とするプログラム。and a process of acquiring instructions and expressions as the raw code fragments from the plurality of source files and the plurality of test files based on the selected acquisition range.
前記選択された取得範囲から取得された前記素材コード片を用いて生成された前記修正候補を検査し、前記不具合が取り除かれているか否かを判定する第4処理と、a fourth process of inspecting the correction candidates generated using the material code fragments acquired from the selected acquisition range and determining whether the defect has been removed;
前記不具合が取り除かれている場合、前記修正候補を修正結果として出力する処理と、outputting the correction candidate as a correction result when the defect is removed;
前記不具合が取り除かれていない場合、前記第2処理、前記第3処理、及び前記第4処理と、If the defect is not removed, the second process, the third process, and the fourth process;
を前記計算機に実行させ、causing the computer to execute the
再実行される前記第2処理は、前記優先度に基づいて、前記選択された修正パターンに対応付けられる前記取得範囲の中から、前回と異なる前記取得範囲を選択する処理を含むことを特徴とするプログラム。the second process being re-executed includes a process of selecting, from the acquisition ranges associated with the selected correction pattern, an acquisition range that is different from that of the previous time, based on the priority.
前記第4処理は、前記修正結果に基づいて、当該修正結果として出力された前記修正候補を生成するために用いた前記素材コード片の前記取得範囲に対応付けられる前記優先度を更新する処理を含むことを特徴とするプログラム。The fourth process is a program characterized by including a process of updating, based on the correction result, the priority associated with the acquisition range of the material code fragment used to generate the correction candidate output as the correction result.
前記計算機システムは、複数のソースファイル、前記ソースファイルを検査するために用いる、複数のテストファイル、及び、前記ソースファイルに含まれる不具合の修正方法を定義した修正パターンを管理する修正パターン管理情報と、前記修正パターンの識別情報、及び当該修正パターンに対して指定された取得範囲を対応づけたデータを格納する取得範囲管理情報と、を管理し、the computer system manages a plurality of source files, a plurality of test files used to check the source files, and correction pattern management information that manages correction patterns that define a method of correcting defects included in the source files, and acquisition range management information that stores identification information of the correction patterns and data that associates an acquisition range specified for the correction patterns;
前記プログラム修正方法は、The program correction method includes:
前記少なくとも一つの計算機が、ターゲットソースファイル及び当該ターゲットソースファイルに対応する前記テストファイルを用いて、前記ターゲットソースファイルの不具合が含まれる可能性がある箇所を特定する第1のステップと、a first step of identifying a portion of the target source file that may contain a defect by the at least one computer using a target source file and the test file corresponding to the target source file;
前記少なくとも一つの計算機が、前記取得範囲に基づいて、前記複数のソースファイル及び前記複数のテストファイルから素材コード片を取得し、前記記憶装置に格納する第2のステップと、a second step of the at least one computer acquiring source code fragments from the plurality of source files and the plurality of test files based on the acquisition range, and storing the source code fragments in the storage device;
前記少なくとも一つの計算機が、前記修正パターン及び前記素材コード片に基づいて、前記不具合を取り除くための改変内容を示す修正候補を生成し、前記修正候補を前記記憶装置に格納する第3のステップと、a third step of generating, by the at least one computer, a modification candidate indicating a modification content for removing the defect based on the modification pattern and the original code fragment, and storing the modification candidate in the storage device;
前記少なくとも一つの計算機が、前記取得範囲から取得された前記素材コード片を用いて生成された前記修正候補を検査し、前記不具合が取り除かれているか否かを判定する第4のステップと、a fourth step in which the at least one computer checks the correction candidates generated using the raw code fragments obtained from the acquisition range to determine whether the defect has been removed;
前記少なくとも一つの計算機が、前記不具合が取り除かれている場合、前記修正候補を修正結果として出力する第5のステップと、を含み、a fifth step of outputting, by the at least one computer, the candidate correction as a correction result if the defect is removed;
前記第2のステップは、The second step includes:
前記少なくとも一つの計算機が、前記修正パターン管理情報から前記修正パターンを選択するステップと、the at least one computer selecting the modification pattern from the modification pattern management information;
前記少なくとも一つの計算機が、前記取得範囲管理情報を参照して、前記選択された修正パターンに対応付けられる前記取得範囲に基づいて、前記複数のソースファイル及び前記複数のテストファイルから、命令及び式を前記素材コード片として取得するステップと、を含むことを特徴とするプログラム修正方法。and a step of the at least one computer referring to the acquisition range management information and acquiring instructions and expressions as the raw code fragments from the plurality of source files and the plurality of test files based on the acquisition range associated with the selected modification pattern.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020189291A JP7504775B2 (en) | 2020-11-13 | 2020-11-13 | Computer system, program, and program correction method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020189291A JP7504775B2 (en) | 2020-11-13 | 2020-11-13 | Computer system, program, and program correction method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022078548A JP2022078548A (en) | 2022-05-25 |
JP7504775B2 true JP7504775B2 (en) | 2024-06-24 |
Family
ID=81706962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020189291A Active JP7504775B2 (en) | 2020-11-13 | 2020-11-13 | Computer system, program, and program correction method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7504775B2 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017151977A (en) | 2016-02-23 | 2017-08-31 | 富士通株式会社 | Method and program for repairing software program |
JP2019096292A (en) | 2017-11-24 | 2019-06-20 | 富士通株式会社 | Automated selection of software program repair candidate |
-
2020
- 2020-11-13 JP JP2020189291A patent/JP7504775B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017151977A (en) | 2016-02-23 | 2017-08-31 | 富士通株式会社 | Method and program for repairing software program |
JP2019096292A (en) | 2017-11-24 | 2019-06-20 | 富士通株式会社 | Automated selection of software program repair candidate |
Also Published As
Publication number | Publication date |
---|---|
JP2022078548A (en) | 2022-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20130346956A1 (en) | Providing a Software Upgrade Risk Map for a Deployed Customer System | |
WO2019055376A1 (en) | Library upgrade method, apparatus, and system | |
US20140380279A1 (en) | Prioritizing test cases using multiple variables | |
BR112015011537B1 (en) | STORAGE METHOD AND DEVICE FOR ASSOCIATION OF METADATA WITH SOURCE CODE | |
GB2508643A (en) | Method for Performing a Regression Test after Modifying Source Code File | |
US20120185669A1 (en) | Program inspection method and non-transitory, computer readable storage medium storing inspection program | |
JP7504775B2 (en) | Computer system, program, and program correction method | |
US11379207B2 (en) | Rapid bug identification in container images | |
CN111274117A (en) | Recommended service experiment and management method, device and system thereof | |
JP7456843B2 (en) | Program modification device, program modification method, and program modification program | |
US20180225165A1 (en) | Configurable system wide tests | |
JP5578625B2 (en) | Program analysis apparatus, program analysis method, and program | |
US11392371B2 (en) | Identification of a partial code to be refactored within a source code | |
US10754876B2 (en) | Cloning of a system | |
JP2023003882A (en) | Failure place specification support device and failure place specification support method | |
CN112035367B (en) | Method and system for checking workflow correctness of big data platform | |
JP6888336B2 (en) | Stub generators, methods, and programs | |
US9665454B2 (en) | Extracting test model from textual test suite | |
US11321225B2 (en) | Reducing the memory load time for logic simulator by leveraging architecture simulator | |
JP4959807B2 (en) | Method and apparatus for storing data on disk | |
JP2022157976A (en) | Analysis program, analysis device, and analysis method | |
CN112613256B (en) | Method and device for generating circuit reference file of verification platform and computer equipment | |
JP7261101B2 (en) | Defect detection device, defect detection method, and defect detection program | |
JP2024090191A (en) | Refactoring effect evaluation device, refactoring effect evaluation method, and program | |
JP6954806B2 (en) | Defect detection device and defect detection method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230213 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240229 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240312 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240425 |
|
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: 20240604 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240612 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7504775 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |