JP7056139B2 - ソフトウェアプログラム修復のためのメソッド呼び出し合成 - Google Patents
ソフトウェアプログラム修復のためのメソッド呼び出し合成 Download PDFInfo
- Publication number
- JP7056139B2 JP7056139B2 JP2017246216A JP2017246216A JP7056139B2 JP 7056139 B2 JP7056139 B2 JP 7056139B2 JP 2017246216 A JP2017246216 A JP 2017246216A JP 2017246216 A JP2017246216 A JP 2017246216A JP 7056139 B2 JP7056139 B2 JP 7056139B2
- Authority
- JP
- Japan
- Prior art keywords
- method call
- call
- score
- synthetic method
- objects
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Description
(コードの合計行数-決定された距離)/(コードの合計行数)
上式では、「コードの合計行数」は、障害位置に対応するソフトウェアプログラムのメソッドの中のコードの行数を表し、「決定された距離」は、障害位置と最後に使用されたオブジェクトとの間の行数を表す。例えば、候補メソッド呼び出しは、第1オブジェクト、第2オブジェクト、及び第3オブジェクトを含んで良い。「コードの合計行数」は20であって良く、第1オブジェクトは障害位置から3行離れた位置を有して良く、第2オブジェクトは、障害位置から1行離れた位置を有して良く、第3オブジェクトは、障害位置から6行離れた位置を有して良い。第1オブジェクトの第1距離スコアは「0.85(「(20-3)/20」)」であって良く、第2オブジェクトの第2距離スコアは「0.95(「(20-1)/20」)」であって良く、第3オブジェクトの第3距離スコアは「0.70(「(20-6)/20」)」であって良い。
(対象オブジェクトの発生回数)/(任意のオブジェクトの最大発生回数)
上式では、「対象オブジェクトの発生回数」は、障害位置の近傍の範囲内にあるとスコア付けされているオブジェクトの発生回数を表し、「任意のオブジェクトの最大発生回数」は、近傍の範囲内で生じる候補メソッド呼び出しの任意のオブジェクトの発生回数を表す。例えば、候補メソッド呼び出しは、第1オブジェクト、第2オブジェクト、及び第3オブジェクトを含んで良い。第1オブジェクトは近傍の範囲内で3回の発生を有して良く、第2オブジェクトは近傍の範囲内で5回の発生を有して良く、第3オブジェクトは近傍の範囲内で発生を有しなくて良い。第1オブジェクトの第1発生スコアは「0.6(「3/5」)」であって良く、第2オブジェクトの第2発生スコアは「1.0(「5/5」)」であって良く、第3オブジェクトの第3発生スコアは「0(「0/5+」)」であって良い。
上式では、「対象オブジェクトのテキスト類似性」は、対象オブジェクトと障害位置メソッドとの間の類似性スコアを表し、「任意のオブジェクトの最大テキスト類似性」は、障害位置メソッドに最も類似するオブジェクトの類似性スコアを表す。例えば、障害位置メソッドは、第1オブジェクト、第2オブジェクト、及び第3オブジェクトを含んで良い。第1オブジェクト、第2オブジェクト、及び第3オブジェクトの類似性スコアは、それぞれ0.3、0.0、0.5であって良い。したがって、第1オブジェクトの正規化類似性スコアは「0.6(「0.3/0.5」)」であって良く、第2オブジェクトの正規化類似性スコアは「0.0(「0.0/0.5」)」であって良く、第3オブジェクトの正規化類似性スコアは「1.0(「0.5/0.5」)」であって良い。
(付記1) ソフトウェアプログラムの複数のオブジェクト及び複数のメソッドを用いて複数の合成メソッド呼び出しを取得するステップと、
前記複数の合成メソッド呼び出しの各々の1又は複数の特性と障害位置との間の関係、前記1又は複数の特性と前記障害位置に対応するエラーレポートとの間の関係、のうちの1又は複数に基づき、前記複数の合成メソッド呼び出しの優先順位を決定するステップと、
選択される合成メソッド呼び出しの対応する優先順位に基づき、前記障害位置に関する修復操作のために前記複数の合成メソッド呼び出しから合成メソッド呼び出しを選択するステップと、
前記障害位置に関する修復操作及び前記選択された合成メソッド呼び出しを実行するステップと、
を有する方法。
(付記2) 前記選択された合成メソッド呼び出しの前記1又は複数の特性は、前記選択された合成メソッド呼び出しにより使用されるオブジェクト、前記選択された合成メソッド呼び出しの戻り型、前記選択された合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の位置、前記選択された合成メソッド呼び出しのメソッド名、前記選択された合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の名称、前記選択された合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の種類、前記選択された合成メソッド呼び出しの中のオブジェクトのうちの1又は複数の各々の使用の種類、及び前記選択された合成メソッド呼び出しにより使用されるオブジェクトのうちの1又は複数の各々の発生回数、のうちの1又は複数を含む、付記1に記載の方法。
(付記3) 前記選択された合成メソッド呼び出しの前記特性のうちの前記1又は複数と前記障害位置との間の前記関係は、前記選択された合成メソッド呼び出しの前記戻り型と前記障害位置との間の戻り型関係、前記障害位置に関して前記選択された合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の位置、前記障害位置の特定行数の範囲内で前記選択された合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の発生回数、前記障害位置に対応する現在実施されているメソッド呼び出しのメソッド名との前記選択された合成メソッド呼び出しのメソッド名のセマンティック類似性、のうちの1又は複数を含む、付記2に記載の方法。
(付記4) 前記選択された合成メソッド呼び出しの前記特性のうちの前記1又は複数と前記エラーレポートとの間の前記関係は、前記選択された合成メソッド呼び出しの前記メソッド名と前記エラーレポートに含まれる1又は複数のワードとの間のセマンティック類似性、前記オブジェクトのうちの1又は複数の名称と前記エラーレポートに含まれる1又は複数のワードとの間のセマンティック類似性、前記選択された合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の種類の名称と前記エラーレポートに含まれる1又は複数のワードとの間のセマンティック類似性、のうちの1又は複数を含む、付記2に記載の方法。
(付記5) 前記複数の合成メソッド呼び出しを取得するステップは、
前記ソフトウェアプログラムの中の前記障害位置を識別するステップと、
前記ソフトウェアプログラムに含まれ且つ前記障害位置に対応する前記ソフトウェアプログラムの範囲内にあるオブジェクトを、前記複数のオブジェクトとして識別するステップと、
前記複数のオブジェクトを用いて前記複数の合成メソッド呼び出しを生成することにより、前記複数の合成メソッド呼び出しを取得するステップと、
を含む、付記1に記載の方法。
(付記6) 前記複数のオブジェクトからメソッドを識別するステップと、
前記識別したメソッドのメソッド署名を決定するステップと、
前記メソッド署名と互換性のある1又は複数の互換オブジェクトを識別するステップと、
前記識別したメソッド及び前記1又は複数の互換オブジェクトに基づき、1又は複数のメソッド呼び出しを生成するステップと、
を更に有する付記5に記載の方法。
(付記7) 前記複数の合成メソッド呼び出しの各々の1又は複数の特性と前記障害位置との間の関係、前記特性のうちの1又は複数と前記障害位置に対応するエラーレポートとの間の関係、のうちの1又は複数に基づき、前記複数の合成メソッド呼び出しの各々のスコアを生成するステップと、
前記メソッド呼び出しの前記スコアに基づき、前記複数の合成メソッド呼び出しの前記優先順位を決定するステップと、
を更に有する付記1に記載の方法。
(付記8) 前記メソッド呼び出しの前記スコアに基づき、前記複数の合成メソッド呼び出しの前記優先順位を決定するステップは、前記スコアが閾レベルを満たさないことに基づき、可能性のある修復候補から前記複数の合成メソッド呼び出しのうちの1又は複数を除去するステップを含む、付記7に記載の方法。
(付記9) 前記閾レベルは、エラー修正操作のために利用可能な時間及び利用可能な計算リソースに基づく、付記8に記載の方法。
(付記10) 少なくとも1つの非一時的コンピュータ可読媒体が、少なくとも1つのプロセッサにより実行されることに応答してシステムに付記1に記載の方法を実行させる1又は複数の命令を格納するよう構成される、付記1に記載の方法。
(付記11) ソフトウェアプログラムの中の障害位置を識別するステップと、
第1合成メソッド呼び出しの1又は複数の第1特性と前記障害位置との間の1又は複数の関係、前記第1特性のうちの1又は複数と前記障害位置に対応するエラーレポートとの間の1又は複数の関係、のうちの1又は複数に基づき、前記第1合成メソッド呼び出しの第1スコアを生成するステップと、
第2合成メソッド呼び出しの1又は複数の第2特性と前記障害位置との間の1又は複数の関係、前記第2特性のうちの1又は複数と前記障害位置に対応するエラーレポートとの間の1又は複数の関係、のうちの1又は複数に基づき、前記第2合成メソッド呼び出しの第2スコアを生成するステップと、
前記第1スコア及び前記第2スコアに基づき、前記第1合成メソッド呼び出しの前記第2合成メソッド呼び出しに対する優先順位を決定するステップと、
前記第1合成メソッド呼び出しの前記第2合成メソッド呼び出しに対する前記優先順位に基づき、前記障害位置に関する修復操作のために前記第1合成メソッド呼び出しを選択するステップと、
前記障害位置に関する修復操作及び前記第1合成メソッド呼び出しを実行するステップと、
を有する方法。
(付記12) 前記第1合成メソッド呼び出しの前記1又は複数の第1特性は、前記第1合成メソッド呼び出しにより使用されるオブジェクト、前記第1合成メソッド呼び出しの戻り型、前記第1合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の位置、前記第1合成メソッド呼び出しのメソッド名、前記第1合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の名称、前記第1合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の種類、前記第1合成メソッド呼び出しの中のオブジェクトのうちの1又は複数の各々の使用の種類、及び前記第1合成メソッド呼び出しにより使用されるオブジェクトのうちの1又は複数の各々の発生回数、のうちの1又は複数を含む、付記11に記載の方法。
(付記13) 前記第1スコアを決定するステップは、
前記第1合成メソッド呼び出しの前記戻り型と前記障害位置との間の戻り型関係スコアを決定するステップと、
前記障害位置に対する前記第1合成メソッド呼び出しの前記オブジェクトのうちの1又は複数の各々の位置に基づく距離スコアを決定するステップと、
前記障害位置の特定行数の範囲内における、前記第1合成メソッド呼び出しの前記オブジェクトのうちの1又は複数の発生回数を決定するステップと、
前記第1合成メソッド呼び出しのメソッド名と前記障害位置に対応する現在実施されているメソッド呼び出しのメソッド名との間のセマンティック類似性を決定するステップと、
前記対応するメソッド呼び出しの前記メソッド名と前記エラーレポートに含まれる1又は複数のワードとの間のセマンティック類似性を決定するステップと、
前記第1合成メソッド呼び出しの前記オブジェクトのうちの1又は複数の名称と前記エラーレポートに含まれる1又は複数のワードとの間のセマンティック類似性を決定するステップと、
前記第1合成メソッド呼び出しの前記オブジェクトのうちの1又は複数の種類の名称と前記エラーレポートに含まれる1又は複数のワードとの間のセマンティック類似性を決定するステップと、
のうちの1又は複数を実行するステップを含む、付記12に記載の方法。
(付記14) 前記ソフトウェアプログラムに含まれ且つ前記障害位置に対応する前記ソフトウェアプログラムの範囲内にある、複数のオブジェクトを識別するステップと、
前記障害位置に対応する前記ソフトウェアプログラムの範囲内にある、前記ソフトウェアプログラムの複数のメソッドを識別するステップと、
前記複数のオブジェクト及び前記複数のメソッドを用いて複数の合成メソッド呼び出しを生成するステップであって、前記複数の合成メソッド呼び出しは、前記第1合成メソッド呼び出し及び前記第2合成メソッド呼び出しを含む、ステップと、
を更に有する付記11に記載の方法。
(付記15) 少なくとも1つの非一時的コンピュータ可読媒体が、少なくとも1つのプロセッサにより実行されることに応答してシステムに付記11に記載の方法を実行させる1又は複数の命令を格納するよう構成される、付記11に記載の方法。
(付記16) ソフトウェアプログラムの中の障害位置を識別するステップと、
複数の合成メソッド呼び出しの各々の1又は複数の特性と前記障害位置との間の1又は複数の関係に基づき、前記複数の合成メソッド呼び出しの各々のコンテキストスコアを生成するステップと、
前記特性のうちの1又は複数と前記障害位置に対応するエラーレポートとの間の1又は複数の関係に基づき、前記複数の合成メソッド呼び出しの各々のエラーレポートスコアを決定するステップと、
前記複数の合成メソッド呼び出しの各々の前記コンテキストスコア及び前記エラーレポートスコアに基づき、前記複数の合成メソッド呼び出しの優先順位を決定するステップと、
選択される合成メソッド呼び出しの対応する優先順位に基づき、前記障害位置に対する修復操作のために、前記複数の合成メソッド呼び出しから合成メソッド呼び出しを選択するステップと、
前記障害位置に対する修復操作及び前記選択された合成メソッド呼び出しを実行するステップと、
を有する方法。
(付記17) 前記選択された合成メソッド呼び出しの前記1又は複数の特性は、前記選択された合成メソッド呼び出しにより使用されるオブジェクト、前記選択された合成メソッド呼び出しの戻り型、前記選択された合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の位置、前記選択された合成メソッド呼び出しのメソッド名、前記選択された合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の名称、前記選択された合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の種類、前記選択された合成メソッド呼び出しの中のオブジェクトのうちの1又は複数の各々の使用の種類、及び前記選択された合成メソッド呼び出しにより使用されるオブジェクトのうちの1又は複数の各々の発生回数、のうちの1又は複数を含む、付記16に記載の方法。
(付記18) 前記選択された合成メソッド呼び出しの前記特性のうちの前記1又は複数と前記障害位置との間の前記関係は、前記選択された合成メソッド呼び出しの前記戻り型と前記障害位置との間の戻り型関係、前記障害位置に関して前記選択された合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の位置、前記障害位置の特定数の行の範囲内で前記選択された合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の発生回数、前記障害位置に対応する現在実施されているメソッド呼び出しのメソッド名との前記選択された合成メソッド呼び出しのメソッド名のセマンティック類似性、のうちの1又は複数を含む、付記17に記載の方法。
(付記19) 前記選択された合成メソッド呼び出しの前記特性のうちの前記1又は複数と前記エラーレポートとの間の前記関係は、前記選択された合成メソッド呼び出しの前記メソッド名と前記エラーレポートに含まれる1又は複数のワードとの間のセマンティック類似性、前記オブジェクトのうちの1又は複数の名称と前記エラーレポートに含まれる1又は複数のワードとの間のセマンティック類似性、前記選択された合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の種類の名称と前記エラーレポートに含まれる1又は複数のワードとの間のセマンティック類似性、のうちの1又は複数を含む、付記17に記載の方法。
(付記20) 少なくとも1つの非一時的コンピュータ可読媒体が、少なくとも1つのプロセッサにより実行されることに応答してシステムに付記16に記載の方法を実行させる1又は複数の命令を格納するよう構成される、付記16に記載の方法。
104 被検査コード
106 修復モジュール
108 変更被検査コード
202 コンピューティングシステム
250 プロセッサ
252 メモリ
254 データ記憶装置
Claims (20)
- ソフトウェアプログラムの複数のオブジェクト及び複数のメソッドを用いて複数の合成メソッド呼び出しを取得するステップと、
前記複数の合成メソッド呼び出しの各々の1又は複数の特性と障害位置との間の関係、前記1又は複数の特性と前記障害位置に対応するエラーレポートとの間の関係、のうちの1又は複数に基づき、前記複数の合成メソッド呼び出しの優先順位を決定するステップと、
選択される合成メソッド呼び出しの対応する優先順位に基づき、前記障害位置に関する修復操作のために前記複数の合成メソッド呼び出しから合成メソッド呼び出しを選択するステップと、
前記障害位置に関する修復操作及び前記選択された合成メソッド呼び出しを実行するステップと、
を有する方法。 - 前記合成メソッド呼び出しの前記1又は複数の特性は、前記合成メソッド呼び出しにより使用されるオブジェクト、前記合成メソッド呼び出しの戻り型、前記合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の位置、前記合成メソッド呼び出しのメソッド名、前記合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の名称、前記合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の種類、前記合成メソッド呼び出しの中のオブジェクトのうちの1又は複数の各々の使用の種類、及び前記合成メソッド呼び出しにより使用されるオブジェクトのうちの1又は複数の各々の発生回数、のうちの1又は複数を含む、請求項1に記載の方法。
- 前記合成メソッド呼び出しの前記特性のうちの前記1又は複数と前記障害位置との間の前記関係は、前記合成メソッド呼び出しの前記戻り型と前記障害位置との間の戻り型関係、前記障害位置に関して前記合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の位置、前記障害位置の特定行数の範囲内で前記合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の発生回数、前記障害位置に対応する現在実施されているメソッド呼び出しのメソッド名との前記合成メソッド呼び出しのメソッド名のセマンティック類似性、のうちの1又は複数を含む、請求項2に記載の方法。
- 前記合成メソッド呼び出しの前記特性のうちの前記1又は複数と前記エラーレポートとの間の前記関係は、前記合成メソッド呼び出しの前記メソッド名と前記エラーレポートに含まれる1又は複数のワードとの間のセマンティック類似性、前記オブジェクトのうちの1又は複数の名称と前記エラーレポートに含まれる1又は複数のワードとの間のセマンティック類似性、前記合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の種類の名称と前記エラーレポートに含まれる1又は複数のワードとの間のセマンティック類似性、のうちの1又は複数を含む、請求項2に記載の方法。
- 前記複数の合成メソッド呼び出しを取得するステップは、
前記ソフトウェアプログラムの中の前記障害位置を識別するステップと、
前記ソフトウェアプログラムに含まれ且つ前記障害位置に対応する前記ソフトウェアプログラムの範囲内にあるオブジェクトを、前記複数のオブジェクトとして識別するステップと、
前記複数のオブジェクトを用いて前記複数の合成メソッド呼び出しを生成することにより、前記複数の合成メソッド呼び出しを取得するステップと、
を含む、請求項1に記載の方法。 - 前記複数のオブジェクトからメソッドを識別するステップと、
前記識別したメソッドのメソッド署名を決定するステップと、
前記メソッド署名と互換性のある1又は複数の互換オブジェクトを識別するステップと、
前記識別したメソッド及び前記1又は複数の互換オブジェクトに基づき、1又は複数の合成メソッド呼び出しを生成するステップと、
を更に有する請求項5に記載の方法。 - 前記複数の合成メソッド呼び出しの各々の1又は複数の特性と前記障害位置との間の関係、前記特性のうちの1又は複数と前記障害位置に対応するエラーレポートとの間の関係、のうちの1又は複数に基づき、前記複数の合成メソッド呼び出しの各々のスコアを生成するステップと、
前記合成メソッド呼び出しの前記スコアに基づき、前記複数の合成メソッド呼び出しの前記優先順位を決定するステップと、
を更に有する請求項1に記載の方法。 - 前記合成メソッド呼び出しの前記スコアに基づき、前記複数の合成メソッド呼び出しの前記優先順位を決定するステップは、前記スコアが閾レベルを満たさないことに基づき、可能性のある修復候補から前記複数の合成メソッド呼び出しのうちの1又は複数を除去するステップを含む、請求項7に記載の方法。
- 前記閾レベルは、エラー修正操作のために利用可能な時間及び利用可能な計算リソースに基づく、請求項8に記載の方法。
- 少なくとも1つのプロセッサにより実行されることに応答してシステムに請求項1に記載の方法を実行させるコンピュータプログラム。
- ソフトウェアプログラムの中の障害位置を識別するステップと、
第1合成メソッド呼び出しの1又は複数の第1特性と前記障害位置との間の1又は複数の関係、前記第1特性のうちの1又は複数と前記障害位置に対応するエラーレポートとの間の1又は複数の関係、のうちの1又は複数に基づき、前記第1合成メソッド呼び出しの第1スコアを生成するステップと、
第2合成メソッド呼び出しの1又は複数の第2特性と前記障害位置との間の1又は複数の関係、前記第2特性のうちの1又は複数と前記障害位置に対応するエラーレポートとの間の1又は複数の関係、のうちの1又は複数に基づき、前記第2合成メソッド呼び出しの第2スコアを生成するステップと、
前記第1スコア及び前記第2スコアに基づき、前記第1合成メソッド呼び出しの前記第2合成メソッド呼び出しに対する優先順位を決定するステップと、
前記第1合成メソッド呼び出しの前記第2合成メソッド呼び出しに対する前記優先順位に基づき、前記障害位置に関する修復操作のために前記第1合成メソッド呼び出しを選択するステップと、
前記障害位置に関する修復操作及び前記第1合成メソッド呼び出しを実行するステップと、
を有する方法。 - 前記第1合成メソッド呼び出しの前記1又は複数の第1特性は、前記第1合成メソッド呼び出しにより使用されるオブジェクト、前記第1合成メソッド呼び出しの戻り型、前記第1合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の位置、前記第1合成メソッド呼び出しのメソッド名、前記第1合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の名称、前記第1合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の種類、前記第1合成メソッド呼び出しの中のオブジェクトのうちの1又は複数の各々の使用の種類、及び前記第1合成メソッド呼び出しにより使用されるオブジェクトのうちの1又は複数の各々の発生回数、のうちの1又は複数を含む、請求項11に記載の方法。
- 前記第1スコアを決定するステップは、
前記第1合成メソッド呼び出しの前記戻り型と前記障害位置との間の戻り型関係スコアを決定するステップと、
前記障害位置に対する前記第1合成メソッド呼び出しの前記オブジェクトのうちの1又は複数の各々の位置に基づく距離スコアを決定するステップと、
前記障害位置の特定行数の範囲内における、前記第1合成メソッド呼び出しの前記オブジェクトのうちの1又は複数の発生回数を決定するステップと、
前記第1合成メソッド呼び出しのメソッド名と前記障害位置に対応する現在実施されているメソッド呼び出しのメソッド名との間のセマンティック類似性を決定するステップと、
前記対応するメソッド呼び出しの前記メソッド名と前記エラーレポートに含まれる1又は複数のワードとの間のセマンティック類似性を決定するステップと、
前記第1合成メソッド呼び出しの前記オブジェクトのうちの1又は複数の名称と前記エラーレポートに含まれる1又は複数のワードとの間のセマンティック類似性を決定するステップと、
前記第1合成メソッド呼び出しの前記オブジェクトのうちの1又は複数の種類の名称と前記エラーレポートに含まれる1又は複数のワードとの間のセマンティック類似性を決定するステップと、
のうちの1又は複数を実行するステップを含む、請求項12に記載の方法。 - 前記ソフトウェアプログラムに含まれ且つ前記障害位置に対応する前記ソフトウェアプログラムの範囲内にある、複数のオブジェクトを識別するステップと、
前記障害位置に対応する前記ソフトウェアプログラムの範囲内にある、前記ソフトウェアプログラムの複数のメソッドを識別するステップと、
前記複数のオブジェクト及び前記複数のメソッドを用いて複数の合成メソッド呼び出しを生成するステップであって、前記複数の合成メソッド呼び出しは、前記第1合成メソッド呼び出し及び前記第2合成メソッド呼び出しを含む、ステップと、
を更に有する請求項11に記載の方法。 - 少なくとも1つのプロセッサにより実行されることに応答してシステムに請求項11に記載の方法を実行させるコンピュータプログラム。
- ソフトウェアプログラムの中の障害位置を識別するステップと、
複数の合成メソッド呼び出しの各々の1又は複数の特性と前記障害位置との間の1又は複数の関係に基づき、前記複数の合成メソッド呼び出しの各々のコンテキストスコアを生成するステップと、
前記特性のうちの1又は複数と前記障害位置に対応するエラーレポートとの間の1又は複数の関係に基づき、前記複数の合成メソッド呼び出しの各々のエラーレポートスコアを決定するステップと、
前記複数の合成メソッド呼び出しの各々の前記コンテキストスコア及び前記エラーレポートスコアに基づき、前記複数の合成メソッド呼び出しの優先順位を決定するステップと、
選択される合成メソッド呼び出しの対応する優先順位に基づき、前記障害位置に対する修復操作のために、前記複数の合成メソッド呼び出しから合成メソッド呼び出しを選択するステップと、
前記障害位置に対する修復操作及び前記選択された合成メソッド呼び出しを実行するステップと、
を有する方法。 - 前記合成メソッド呼び出しの前記1又は複数の特性は、前記合成メソッド呼び出しにより使用されるオブジェクト、前記合成メソッド呼び出しの戻り型、前記合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の位置、前記合成メソッド呼び出しのメソッド名、前記合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の名称、前記合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の種類、前記合成メソッド呼び出しの中のオブジェクトのうちの1又は複数の各々の使用の種類、及び前記合成メソッド呼び出しにより使用されるオブジェクトのうちの1又は複数の各々の発生回数、のうちの1又は複数を含む、請求項16に記載の方法。
- 前記合成メソッド呼び出しの前記特性のうちの前記1又は複数と前記障害位置との間の前記関係は、前記合成メソッド呼び出しの前記戻り型と前記障害位置との間の戻り型関係、前記障害位置に関して前記合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の各々の位置、前記障害位置の特定数の行の範囲内で前記合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の発生回数、前記障害位置に対応する現在実施されているメソッド呼び出しのメソッド名との前記合成メソッド呼び出しのメソッド名のセマンティック類似性、のうちの1又は複数を含む、請求項17に記載の方法。
- 前記合成メソッド呼び出しの前記特性のうちの前記1又は複数と前記エラーレポートとの間の前記関係は、前記合成メソッド呼び出しの前記メソッド名と前記エラーレポートに含まれる1又は複数のワードとの間のセマンティック類似性、前記オブジェクトのうちの1又は複数の名称と前記エラーレポートに含まれる1又は複数のワードとの間のセマンティック類似性、前記合成メソッド呼び出しにより使用される前記オブジェクトのうちの1又は複数の種類の名称と前記エラーレポートに含まれる1又は複数のワードとの間のセマンティック類似性、のうちの1又は複数を含む、請求項17に記載の方法。
- 少なくとも1つのプロセッサにより実行されることに応答してシステムに請求項16に記載の方法を実行させるコンピュータプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/436,595 | 2017-02-17 | ||
US15/436,595 US10496519B2 (en) | 2017-02-17 | 2017-02-17 | Method invocation synthesis for software program repair |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018133081A JP2018133081A (ja) | 2018-08-23 |
JP7056139B2 true JP7056139B2 (ja) | 2022-04-19 |
Family
ID=63167222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017246216A Active JP7056139B2 (ja) | 2017-02-17 | 2017-12-22 | ソフトウェアプログラム修復のためのメソッド呼び出し合成 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10496519B2 (ja) |
JP (1) | JP7056139B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102452457B1 (ko) * | 2017-11-13 | 2022-10-12 | 현대자동차주식회사 | 테스트 케이스 관리 시스템 및 테스트 케이스 관리 방법 |
CN110058126A (zh) * | 2019-05-29 | 2019-07-26 | 国网北京市电力公司 | 配电网故障判断方法和装置 |
US10782941B1 (en) * | 2019-06-20 | 2020-09-22 | Fujitsu Limited | Refinement of repair patterns for static analysis violations in software programs |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008250914A (ja) | 2007-03-30 | 2008-10-16 | Canon Software Inc | プログラム修正装置及び方法、並びにプログラム |
US20100050160A1 (en) | 2008-08-20 | 2010-02-25 | International Business Machines Corporation | System, method and program product for ranking peer submitted code snippets using execution feedback |
JP2010097426A (ja) | 2008-10-16 | 2010-04-30 | Autonetworks Technologies Ltd | コンピュータプログラム、ソースプログラム入力受付装置及びソースプログラム入力受付方法 |
JP2011086147A (ja) | 2009-10-16 | 2011-04-28 | Nippon Telegr & Teleph Corp <Ntt> | 類似性算出装置、類似性算出方法および類似性算出プログラム |
JP2016038718A (ja) | 2014-08-07 | 2016-03-22 | 日本電気株式会社 | 修正装置、翻訳装置、修正方法、および、コンピュータ・プログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8516446B2 (en) * | 2010-05-21 | 2013-08-20 | Apple Inc. | Automated qualification of a binary application program |
US9383973B2 (en) * | 2011-06-29 | 2016-07-05 | Microsoft Technology Licensing, Llc | Code suggestions |
-
2017
- 2017-02-17 US US15/436,595 patent/US10496519B2/en active Active
- 2017-12-22 JP JP2017246216A patent/JP7056139B2/ja active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008250914A (ja) | 2007-03-30 | 2008-10-16 | Canon Software Inc | プログラム修正装置及び方法、並びにプログラム |
US20100050160A1 (en) | 2008-08-20 | 2010-02-25 | International Business Machines Corporation | System, method and program product for ranking peer submitted code snippets using execution feedback |
JP2010097426A (ja) | 2008-10-16 | 2010-04-30 | Autonetworks Technologies Ltd | コンピュータプログラム、ソースプログラム入力受付装置及びソースプログラム入力受付方法 |
JP2011086147A (ja) | 2009-10-16 | 2011-04-28 | Nippon Telegr & Teleph Corp <Ntt> | 類似性算出装置、類似性算出方法および類似性算出プログラム |
JP2016038718A (ja) | 2014-08-07 | 2016-03-22 | 日本電気株式会社 | 修正装置、翻訳装置、修正方法、および、コンピュータ・プログラム |
Non-Patent Citations (2)
Title |
---|
薄羽 大樹, 宮下 芳明 ,"コメントイン:コメントを先に書くことによる新形態のAPIリファレンス", 第23回インタラクティブシステムとソフトウェアに関するワークショップ,2015年12月04日 |
青柳 龍也,"理論で学ぶJavaプログラミング [第27回]Eclipseによるプログラム作成、デバッグの基本", Java WORLD 2004年4月号,第8巻、第4号,(株)IDGジャパン ,2004年04月01日,pp.98-112 |
Also Published As
Publication number | Publication date |
---|---|
US20180239687A1 (en) | 2018-08-23 |
US10496519B2 (en) | 2019-12-03 |
JP2018133081A (ja) | 2018-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6878933B2 (ja) | ソフトウエアプログラムの修復のための方法及びプログラム | |
JP6787046B2 (ja) | 機械学習ベースのソフトウェアプログラム修復 | |
JP7095408B2 (ja) | ソフトウェアプログラムフォールト位置特定 | |
CN109144882B (zh) | 一种基于程序不变量的软件故障定位方法及装置 | |
US8621441B2 (en) | System and method for software immunization based on static and dynamic analysis | |
JP7056139B2 (ja) | ソフトウェアプログラム修復のためのメソッド呼び出し合成 | |
US10902130B2 (en) | Guiding automated testing of binary programs | |
US10664383B2 (en) | Automated software program repair of similar code snippets | |
US20130179863A1 (en) | Bug variant detection using program analysis and pattern identification | |
US20150370685A1 (en) | Defect localization in software integration tests | |
US20150143179A1 (en) | System and Method for Progressive Fault Injection Testing | |
US10839308B2 (en) | Categorizing log records at run-time | |
Xue et al. | Trimming test suites with coincidentally correct test cases for enhancing fault localizations | |
JP7404839B2 (ja) | ソフトウェアプログラム不良位置の識別 | |
Elmishali et al. | Data-augmented software diagnosis | |
JP2019096292A (ja) | 自動化されたソフトウェアプログラム修復候補の選択 | |
JP6891703B2 (ja) | 自動ソフトウェアプログラム修復 | |
CN111897946A (zh) | 漏洞补丁推荐方法、系统、计算机设备和存储介质 | |
Hegedűs et al. | Static code analysis alarms filtering reloaded: A new real-world dataset and its ML-based utilization | |
JP7384054B2 (ja) | 自動化されたソフトウェアプログラム修復 | |
JP2020129372A (ja) | 自動化されたソフトウェアプログラム修復 | |
JP2017041196A (ja) | スタブ化対象判定装置、方法、及びプログラム | |
JP2022078962A (ja) | エラーに関連するコードの行の自動識別 | |
CN106294130A (zh) | 一种单元测试方法及装置 | |
US11392358B1 (en) | Machine learning pipeline skeleton instantiation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200911 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210825 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210907 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211021 |
|
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: 20220308 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220321 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7056139 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |