The once-futuristic idea of automated program repair is gradually becoming a reality. Several approaches for automatically fixing bugs have been proposed recently. They can be classified into search-based methods and semantics-based methods. Our semantic analysis based repair tool Angelix synthesizes repairs based on semantic information of the program and scales up to real-world software. Furthermore, our repair method can repair multiple buggy locations that are dependent on each other. In our experiments, Angelix generated repairs from large-scale programs such as Wireshark and Php. We also successfully generated a patch for the well-known Heartbleed vulnerability.
Semantic analysis based repair tool that generates quality repairs in a scalable fashion
Our tool can handle multiple buggy locations that are dependent on one another
Angelix generated multiline repairs from large scale real life programs like Wireshark and Php
Angelix synthesized a patch for the well-known Heartbleed vulnerability
International Conference on Software Engineering 2016
Angelix was evaluated using GenProg ICSE'12 benchmark. Experimental data is available here. Summary of generated patches is available here.
Subject | LoC | Versions | Repairs | Avg. Time |
---|---|---|---|---|
Wireshark | 2814K | 7 | 4 | 23 min |
Php | 1046K | 44 | 10 | 62 min |
Gzip | 491K | 5 | 2 | 4 min |
Gmp | 145K | 2 | 2 | 14 min |
Libtiff | 77K | 24 | 10 | 14 min |
Semfix is the predecessor of Angelix. Taking advantage of the modular design of Angelix, we incorporated the algorithm of SemFix into Angelix. Using this new implementation of Semfix, we could reproduce the experimental results of the original Semfix. The experimental results and the scripts to reproduce the results are available here.