2017 · 22 citations · 39 references
ComputingComputer ScienceComputer SystemsOperating SystemsSoftware EngineeringSystems ProgrammingPatch ManagementSoftware MaintenanceAutomated Patch GenerationDeveloper AdoptionKernel PatchingLinux Kernel Module DevelopmentOperating System PatchingPatch Adoption AnalysisPatching
In this work, we investigate the practice of patch construction in the Linux kernel development, focusing on the differences between three patching processes: (1) patches crafted entirely manually to fix bugs, (2) those that are derived from warnings of bug detection tools, and (3) those that are automatically generated based on fix patterns. With this study, we provide to the research community concrete insights on the practice of patching as well as how the development community is currently embracing research and commercial patching tools to improve productivity in repair. The result of our study shows that tool-supported patches are increasingly adopted by the developer community while manually-written patches are accepted more quickly. Patch application tools enable developers to remain committed to contributing patches to the code base. Our findings also include that, in actual development processes, patches generally implement several change operations spread over the code, even for patches fixing warnings by bug detection tools. Finally, this study has shown that there is an opportunity to directly leverage the output of bug detection tools to readily generate patches that are appropriate for fixing the problem, and that are consistent with manually-written patches.
39
Automatically finding patches using genetic programming
Westley Weimer, ThanhVu Nguyen, Claire Le Goues et al. · 2009 · 772 citations
An empirical study of operating systems errors
Andy Chou, Junfeng Yang, Benjamin Chelf et al. · 2001 · 718 citations
Fine-grained and accurate source code differencing
Jean‐Rémy Falleri, Floréal Morandat, Xavier Blanc et al. · 2014 · 550 citations · Full text