自動プログラム修正における更新履歴データを用いた挿入候補選択手法
卒業論文, 大阪大学
特別研究報告
概要: ソフトウェア開発において,プログラムの信頼性を向上させるためにデバッグを行う必要がある.デバッグは作業コストがかかるため,支援するためにプログラム修正を自動化することが望ましい.自動プログラム修正の研究において,既存のソースコード中の行を再利用して欠陥の修正を行う研究が行われ,様々な手法が提案されている.そのような再利用に基づく自動プログラム修正手法では,挿入する行を修正対象プログラムのソースコード全体からランダムに選択する.ランダムな選択では,プログラムの規模が拡大するにつれて欠陥の修正に寄与しない行が選択される回数が多くなり,修正が完了するのに時間がかかってしまう可能性がある.そのため,欠陥の修正に寄与する行を優先して選択するような基準を提案する必要がある.既存研究では類似度順という基準が提案されている.類似度順とは,ソースコード中の各行を,その行の周辺コードと欠陥が存在する箇所の周辺コードの類似度が高い順で選択する基準である.既存研究における調査の結果,類似度順が有用であることがわかっている.しかし,欠陥の修正に寄与する行であるにも関わらず,類似度順ではその行の優先度が低くなってしまう場合があることが確認されている.そのため,類似度順とは別の基準を提案する必要がある.
そこで本研究では,更新順という基準を提案する.更新順とは,ソースコード中の各行を更新日時の新しい順で選択する基準である.各行の更新日時はバージョン管理システムより取得する.本研究では,オープンソースソフトウェアで過去に行われた欠陥の修正において挿入された行を用いて,更新順の有用性を調査した.調査では,欠陥の修正において挿入された行のうち,行の再利用により選択できる行を対象とした.調査の結果,対象の行のうち約6割の行が更新順で挿入候補の10\%の行を選択するまでに選択されていることがわかった.また,同じ調査対象を用いて更新順と類似度順の比較を行い,類似度順では優先的に選択されないが更新順では優先的に選択される行が多数存在することがわかった.
タグ: automated, candidates, data, development, history, insertion, program, repair, selecting
@mastersthesis{山本将弘2016a,
author = {山本 将弘},
title = {自動プログラム修正における更新履歴データを用いた挿入候補選択手法},
school = {大阪大学},
type = {Bachelor's Thesis},
year = {2016},
month = {feb}
}