Affiliation:
1. IT University of Copenhagen, Copenhagen, Denmark
2. Carnegie Mellon University School of Computer Science, Pittsburgh, PA, USA
Abstract
The Linux Kernel is a world-class operating system controlling most of our computing infrastructure: mobile devices, Internet routers and services, and most of the supercomputers. Linux is also an example of low-level software with no comprehensive regression test suite (for good reasons). The kernel’s tremendous societal importance imposes strict stability and correctness requirements. These properties make Linux a challenging and relevant target for static automated program repair (APR).
Over the past decade, a significant progress has been made in dynamic APR. However, dynamic APR techniques do not translate naturally to systems without tests. We present a static APR technique addressing sequential
locking API misuse
bugs in the Linux Kernel. We attack the key challenge of static APR, namely, the lack of detailed program specification, by combining static analysis with machine learning to complement the information presented by the static analyzer. In experiments on historical real-world bugs in the kernel, we were able to automatically re-produce or propose equivalent patches in 85% of the human-made patches, and automatically rank them among the top three candidates for 64% of the cases and among the top five for 74%.
Funder
Independent Research Fund Denmark DFF
National Science Foundation NSF
Publisher
Association for Computing Machinery (ACM)
Reference53 articles.
1. Automated program repair
2. GenProg: A Generic Method for Automatic Software Repair
3. The strength of random search on automated program repair
4. R. Kou, Y. Higo, and S. Kusumoto. 2016. A capable crossover technique on automatic program repair. In Proceedings of the 7th International Workshop on Empirical Software Engineering in Practice (IWESEP’16). 45–50.
5. F. Y. Assiri and J. M. Bieman. 2014. An assessment of the quality of automated program operator repair. In Proceedings of the IEEE 7th International Conference on Software Testing, Verification, and Validation. 273–282.
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Program Repair Guided by Datalog-Defined Static Analysis;Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering;2023-11-30