Software dependability plays a critical role in United States businesses, government, and society. Although much progress has been made in software verification and validation, software testing remains by far the most widely used technique for improving software dependability. Among various types of testing, developer testing has been widely recognized as an important and valuable means of improving software dependability. The popularity and benefits of developer testing have been well witnessed in industry; however, manual developer testing is known to be labor intensive, and is often insufficient in comprehensively exercising behavior of the software under test to expose its hidden bugs. To address the issue, one of the common ways is to use testing infrastructures and tools to reduce or complement manual testing effort to achieve higher software dependability. In the past decade, the software testing research community has made significant progress in automatic test generation. With various recent scientific advances by the research community, a question naturally arises: what would be the audacious goal for the field of developer testing in the upcoming decade to bring a much higher testing effectiveness and efficiency to developers? To address this question, this project investigates the science and tools of intelligent developer testing, fundamentally advancing knowledge and understanding in foundations, techniques, and tools for intelligent developer testing. The project improves software dependability by revealing more bugs during software development before they manifest in deployed software.

The project focuses on science and tools for instilling intelligence from two major ways (natural language interfacing and continuous learning) into developer testing tools as part of the efforts for realizing the vision of intelligent software engineering. The project develops novel and practical techniques and tools of intelligent developer testing that have high potential to impact the industry. In particular, the project focuses on parameterized unit tests, which are an improvement over conventional unit tests because they can easily be extended by automated tools to increase code coverage while reusing developer-written oracles. The PI plans to develop intelligent tools that will make it significantly easier for developers to write parameterized unit tests with the goal of automatically translating developer intents into parts of executable test cases. This project advances the science by exploring a series of questions, e.g., how to define or determine levels of intelligence in developer testing, how to bring high levels of intelligence in developer testing tools, how to synergistically integrate machine intelligence and human intelligence (e.g., domain knowledge or insight) to effectively tackle challenging tasks in developer testing. The project involves research collaborations with industrial partners and involves participation of students from underrepresented groups.

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.

Project Start
Project End
Budget Start
2018-10-01
Budget End
2021-09-30
Support Year
Fiscal Year
2018
Total Cost
$532,000
Indirect Cost
Name
University of Illinois Urbana-Champaign
Department
Type
DUNS #
City
Champaign
State
IL
Country
United States
Zip Code
61820