一句话:将回归测试选择引入遗传改进搜索,显著加速软件自动改进且保持有效改进。
遗传改进(GI)利用人工智能自动改善软件的非功能属性,但其搜索需反复执行测试评估大量候选修改,计算开销巨大。本文提出将软件工程中的成熟实践——回归测试选择(RTS)——作为 GI 搜索流程的核心组件,并系统评估动态与静态 RTS 与 GI 的结合。作者在七个真实软件程序上开展实证研究,结果表明引入 RTS 能显著加速 GI,在该基准集上最高提速 78%,同时仍能产生有效的软件改进。该成果可节省数小时至数天的计算时间,缩短开发者反馈周期,有助于 GI 的工业落地,并建议未来基于测试的自动软件改进工作采用 RTS。
Genetic improvement uses artificial intelligence to automatically improve software with respect to non-functional properties (AI for SE). In this paper, we propose the use of existing software engineering best practice to enhance Genetic Improvement (SE for AI). We conjecture that existing Regression Test Selection (RTS) techniques (which have been proven to be efficient and effective) can and should be used as a core component of the GI search process for maximising its effectiveness. To assess our idea, we have carried out a thorough empirical study assessing the use of both dynamic and static RTS techniques with GI to improve seven real-world software programs. The results of our empirical evaluation show that incorporation of RTS within GI significantly speeds up the whole GI process, making it up to 78% faster on our benchmark set, being still able to produce valid software improvements. Our findings are significant in that they can save hours to days of computational time, and can facilitate the uptake of GI in an industrial setting, by significantly reducing the time for the developer to receive feedback from such an automated technique. Therefore, we recommend the use of RTS in future test-based automated software improvement work. Finally, we hope this successful application of SE for AI will encourage other researchers to investigate further applications in this area.
@inproceedings{GuizzoPSH21,
title = {Enhancing Genetic Improvement of Software with Regression Test Selection},
author = {Giovani Guizzo and Justyna Petke and Federica Sarro and Mark Harman},
booktitle = {ICSE},
year = {2021},
doi = {10.1109/icse43902.2021.00120}
}