GGrantIndex
← Search

CAREER: Leveraging Everyday Usage of Programs to Eliminate Bugs

$336,623FY2020CSENSF

Regents Of The University Of Michigan - Ann Arbor, Ann Arbor MI

Investigators

Abstract

Building good quality software is crucial for achieving a high degree of security, availability, and efficiency. Therefore, software developers spend more than half of their time testing and debugging software to remove errors in programs. As a result, the cost of software quality assurance is exorbitant. Despite these efforts, modern software used in real-world systems is full of bugs. The goal of this project is to help developers find, reproduce, and fix bugs. To achieve this goal, this project will develop techniques that systematically use the massive amount of information generated by software every day. Much like software is built to carry out specific tasks, the process that monitors information for debugging and testing purposes also needs to be adapted to achieve specific objectives. Current approaches that mainly collect generic information from all programs have significant limitations. Therefore, this research will introduce new approaches to monitor information in program-specific ways. This information will be adaptively adjusted to automatically reproduce complex bugs. Once bugs are reproduced, they are much easier to fix. A key contribution of this research will be to use both successful and unsuccessful program executions to help reproduce bugs. This work will solve long-standing open problems that make it very hard to reproduce bugs in real-world systems. The developed techniques will benefit other research areas such as software testing and program repair. Broadly, this research will reduce the costs of software bugs and result in higher quality software, ultimately benefiting society. The tools and datasets created by this research will be openly released to promote reproducibility, further studies, and adoption by academia and industry. Another key focus of this project is an educational plan that is closely integrated with the research plan via academic and industrial collaborations. This project will develop and launch an openly-available online programming course centered around debugging. This course will be initially piloted locally to engage underrepresented and under-served K-8 students. Towards a unified education and research vision, the results of this project will inform ongoing outreach activities to promote understanding and broaden participation in computing. This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.

View original record on NSF Award Search →