開発者とGenProgによるソースコード修正の比較調査
卒業論文, 大阪大学
特別研究報告
概要: プログラム開発において,デバッグは工数の大部分を占めるといわれている.そのため,デバッグの工数削減を目的として,デバッグの自動化に関する研究が盛んに行われている.それらの研究の中でも,遺伝的プログラミングを用いた自動プログラム修正手法であるGenProgが大きな注目を集めている.
GenProgは実社会のプログラムに含まれる欠陥を修正し,その有用性を示した.しかし,GenProgによって修正されるプログラムには,欠陥の修正に直接関係しないコード片の変更や,新たな欠陥を生じさせる変更が加えられる場合があるという問題が指摘されている.この問題は,GenProgのアルゴリズムがテストケースを全て通過するプログラムを出力し,テストケースに記述されていないプログラムの動作を保証しないことに起因する.一方で多くの開発者は,プログラムが満たすべき動作内容をできるだけ損なわないように修正を行っている.そのため,開発者による修正後のプログラムでは,GenProgによる修正後のプログラムが抱える問題が発生しにくい.そこで,GenProgによる修正プログラムを開発者による修正プログラムに可能な限り近付けることができれば,この問題を解決できる可能性がある.しかし,開発者とGenProgによる修正プログラムの差異については,これまで詳しく研究されていない.
本研究では,開発者による修正後のプログラムとGenProgによる修正後のプログラムを比較することにより,それらの差異を調査した.調査の結果,開発者はプログラムに対してGenProgより多くの箇所に変更を加えること,特にプログラム文の追加を多く行うことが分かった.
タグ: debugging, automated, program, repair, control, flow, graph
@mastersthesis{中島弘貴2016a,
author = {中島 弘貴},
title = {開発者とGenProgによるソースコード修正の比較調査},
school = {大阪大学},
type = {Bachelor's Thesis},
year = {2016},
month = {feb}
}