Software Mutational Robustness
Eric Schulte, Zachary P. Fry, Ethan Fast, Westley Weimer and, Stephanie Forrest

TL;DR
This paper demonstrates that software exhibits significant mutational robustness, with over 30% of random mutations being behaviorally neutral, which can be leveraged for automatic software repair and diversity generation.
Contribution
The study empirically shows that software has inherent mutational robustness across various programs and mutation levels, suggesting new avenues for software evolution and repair.
Findings
Over 30% of random mutations are neutral across tested software.
Mutational robustness is consistent across programming languages and mutation levels.
Neutral variants often maintain the original program's purpose.
Abstract
Neutral landscapes and mutational robustness are believed to be important enablers of evolvability in biology. We apply these concepts to software, defining mutational robustness to be the fraction of random mutations that leave a program's behavior unchanged. Test cases are used to measure program behavior and mutation operators are taken from genetic programming. Although software is often viewed as brittle, with small changes leading to catastrophic changes in behavior, our results show surprising robustness in the face of random software mutations. The paper describes empirical studies of the mutational robustness of 22 programs, including 14 production software projects, the Siemens benchmarks, and 4 specially constructed programs. We find that over 30% of random mutations are neutral with respect to their test suite. The results hold across all classes of programs, for mutations…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Testing and Debugging Techniques · Evolutionary Algorithms and Applications
