楠本研究室

業績一覧

ホーム業績一覧

Toward Developer-like Automated Program Repair ―Modification Comparisons between GenProg and Developers―

Toward Developer-like Automated Program Repair ―Modification Comparisons between GenProg and Developers―
Proceedings of the 23rd Asia-Pacific Software Engineering Conference (APSEC2016), pp.241-248 (2016)
概要: Automated program repair is a way to reduce costs on program debugging to a large extent. Repair techniques using genetic programming have been attracting much attention. They were applied to actual software systems and they were able to fix several dozen of actual faults. However, programs generated by such techniques often include some source code changes not related to fixing a given fault even if they pass all given test cases. Furthermore, some researchers found that such techniques occasionally induce new faults which are not covered by existing test cases. The reason why those problems arise is that such techniques consider only given test cases. On the other hand, developers consider program behaviors not covered by test cases. Thus, those problems arise less frequently in programs modified by developers. Consequently, the authors suppose that if we make automated program modifications close to developers’ ones, we may be able to relieve those problems. At this moment, there is no research study investigating differences between automated modifications and developers’ ones. In this paper, we compare GenProg’s modifications with developers’ ones for the same faults. As a result, we found that developers tend to (1) change more different functions, (2) change control flows in source code, and (3) add/delete more code lines.
@inproceedings{HirokiNakajima2016,
  author = {Hiroki Nakajima and Yoshiki Higo and Haruki Yokoyama and Shinji Kusumoto},
  title = {Toward Developer-like Automated Program Repair ―Modification Comparisons between GenProg and Developers―},
  booktitle = {Proceedings of the 23rd Asia-Pacific Software Engineering Conference (APSEC2016)},
  pages = {241--248},
  year = {2016},
  month = {dec}
}