コード修正履歴情報を用いた修正漏れの自動検出

書誌事項

タイトル別名
  • Automatic Detection of Unintentionally Unmodified Code Using Code Modification Histories

この論文をさがす

抄録

バグ修正や機能追加のためにソースコードを修正する場合は,修正が必要なすべてのコード片を把握する必要がある.修正の必要があるコード片を見落としてしまうと,ソースコード中に修正漏れが発生してしまう.修正前であれば,grep等のキーワード検索ツールを用いることにより,修正が必要なコード片を見落とす可能性は低くなる.しかし,すでに発生した修正漏れに対しては,キーワード検索ツールでは十分な支援を得られない.本論文では,ソースコード中において修正漏れが発生しているコード片を自動的に検出する手法を提案する.提案手法は,過去のコード修正に関する情報を学習データとして利用する.そして,最新バージョンに対して学習データが適用できる箇所を検索することにより,修正漏れを検出する.提案手法を実装し,オープンソースソフトウェアに対して実験を行った.その結果,バグ修正漏れ,リファクタリング実施漏れ,機能変更・機能追加漏れ,コメント修正漏れが発生しているコード片を多数検出できた.

When we modify source code for performing a given bug fix or functional addition, we must recognize all the code fragments to be modified. If not, unintended inconsistencies occur in the source code. Before modifying the source code, keyword-based search tools like grep are suitable for preventing the code fragments from being overlooked. However, once inconsistencies occur in the source code, such tools cannot help us adequately. In this paper, we propose a new method to identify unintended inconsistencies in source code automatically. The proposed method analyzes source code modifications in a repository to derive modification patterns. A modification pattern indicates what kind of code it had been and how it was modified. The derived modification patterns are queries to identify unintended inconsistencies from the latest version of source files. We implemented the proposed method as a software tool and applied it to HTTPD and FreeBSD. As a result, we identified many overlooked code fragments for bug fixes, refactorings, functional enhancements, and code comments.

収録刊行物

関連プロジェクト

もっと見る

詳細情報 詳細情報について

  • CRID
    1050564287856619008
  • NII論文ID
    110009579787
  • NII書誌ID
    AN00116647
  • ISSN
    18827764
  • Web Site
    http://id.nii.ac.jp/1001/00092113/
  • 本文言語コード
    ja
  • 資料種別
    journal article
  • データソース種別
    • IRDB
    • CiNii Articles
    • KAKEN

問題の指摘

ページトップへ