Two Techniques for Automatically Eliminating Software Defects

I present two techniques for eliminating software defects: Horizontal Code Transfer (HCT) and Condition Synthesis/Compound Mutations (CSCM).

HCT works with multiple applications that process the same input file format. It first finds a defect in one of the applications, then locates code in one or more of the other applications that eliminates the defect. It then extracts and transfers this code from the donor application into the recepient application to eliminate the defect in the recepient. Our implementation generates source-level patches, but can extract and transfer code from stripped binary donor applications with no need for donor source code. It can therefore support a wide range of use cases.

CSCM works with a test suite that exposes a defect. It automatically generates a search space of potential patches, then searches this space to find patches that enable the application to successfully process all test cases in the test suite. Novel techniques include condition synthesis, which automatically synthesizes expressions that patch incorrect conditions in if statements, and a set of compound mutations that build on condition synthesis to generate a rich and efficiently searchable space of candidate patches.

Martin Rinard is a Professor in the MIT Department of Electrical Engineering and Computer Science and a member of the MIT Computer Science and Artificial Intelligence Laboratory. His research interests include parallel and distributed computing, programming languages, program analysis, program verification, software engineering, computer security, and computer systems. Much of his current research focuses on techniques that enable software systems to to survive otherwise fatal errors or security attacks.

Professor Rinard holds a PhD in Computer Science from Stanford University. He is an ACM Fellow and has received many awards including an Alfred P. Sloan Research Fellowship, an NSF CAREER Award, and Distinguished and Best Paper Awards from a variety of publication venues.