Scalable Automated Software Testing and Repair
Koushik Sen and Sudeep Juvekar
National Science Foundation
Today's software systems suffer from poor reliability, with software errors costing the U.S. economy upwards of $60 billion annually. Testing is the predominant technique in industry to ensure software quality. Existing test generation techniques, such as random testing and symbolic execution-based test generation, are either not effective or not scalable.
This project investigates techniques to make automated test generation and automated bug fixing fast, scalable, and exhaustive by bridging the gap between practical techniques, such as testing, and mathematically rigorous techniques, such as model checking and symbolic analysis.
Specifically, the project integrates ideas from randomized algorithms, symbolic analysis and model checking, and computational machine learning and develops novel ideas in three research efforts:
(1) develop techniques for fast and exhaustive unit test generation;
(2) scale automated testing to large software through compositional reasoning; and
(3) investigate techniques for automated repair advice generation where automated test generation is used to automatically generate candidate program variants that could potentially fix the bugs discovered during testing.