Nombre y acrónimo: Efficient, Greener Software Verification through Artificial Intelligence (EGSVAI)

Código:  PID2022-142964OA-I00

Fechas:  1/9/2023 – 31/8/2026

Personal

IPs:  Francisco Servant

Equipo de Investigación:  Francisco Chicano, Javier Ferrer

Equipo de Trabajo:  Rubén Saborido

Resumen:

Software permeates our society. Thus, building software of high quality is of paramount importance. Software defects directly impact people’s lives, causing: leaks of their sensitive private information, loss of essential energy resources, and even loss of their own lives, e.g., crashing cars and planes.

Unfortunately, we are currently experiencing a software verification crisis. Software developers invest increasingly higher effort (more than 50% of their time) to verify the quality of software, but still achieve limited levels of quality in return. The latest most popular software verification practices — modern code review (MCR) and continuous integration (CI) — are applied continuously. For every code change (i.e., code commit), developers request their peers to review it (MCR) and, after it is approved, they apply it and build and test the whole software project (CI). Despite the widespread adoption of these practices, they still provide limited value — only about 21% of MCR reviews and 12% of CI builds uncover defects — and incur a high cost for software developers — MCR takes about 15% of developers’ time, and CI may cost about $200,000 per month.

This project proposes to transform today’s limited software verification practices into autonomous targeted software verification. Our goal is to reduce the unfruitful effort that software developers spend on software verification, while keeping as many as possible of its fruitful tasks. The current verification workload for developers is so high that they often end up reviewing code in shallow ways, needing multiple attempts to fix a bug, or simply ignoring failures until they have time to fix them.

We propose autonomous targeted software verification as a set of innovations that will automate: (1) skipping unfruitful tasks, (2) simplifying fruitful tasks, (3) performing fruitful tasks, and will (4) build developer trust in this automated process. We will develop novel techniques to automate these processes, using machine learning and search-based algorithms. Our proposed approach will free up developers from the unfruitful verification tasks (and their unfruitful parts), allowing them to spend more time to more thoroughly fix software defects.

This research will provide advances to increase software quality, which is a major problem for the economy and for society in general. This work will directly enable software engineers to better and more quickly fix defects, thus resulting in higher quality software for a lower cost. We will also leverage the work proposed here in our education mission by disseminating our findings in university courses, student mentoring, research and tool publications, and outreach activities. We will put a special focus on engaging students of underrepresented backgrounds and women in computer science and in software research.