Today's software systems are increasingly built from flexible combinations of components that can be configured in a multitude of different ways. For example, the popular Firefox web browser has more than a thousand configuration options. While a high degree of configurability has many benefits, it also makes testing and reasoning about configurable software a major challenge. The goals of this proposed work are 1) to develop new techniques to efficiently discover the structure of software systems' configuration spaces, and 2) to exploit that information to improve common software engineering tasks, specifically testing and program understanding. In particular, this work will allow software developers to quickly and accurately answer questions such as, What are the "right" configurations to test a system under? How can we avoid testing a system under "unnecessary" configurations? How does software configuration change as systems evolve? We expect that, as much of the software used today is configurable, the advances made in this project in understanding and testing configurable systems will have widespread benefits in the reliability and trustworthiness of critical software.

The proposed technical approach will pursue four main directions. First, the PIs will develop a representation of "effective" configuration spaces---the configurations needed to achieve a specific goal---that is both usable by software engineering tools and understandable to developers. Second, the PIs will develop novel techniques that compute the effective configuration space of a system. Third, the PIs will explore a number of software engineering applications that will make use of effective configuration space information, including configuration-aware test case selection, configuration-aware regression testing, and several program understanding tasks for configurable systems. Finally, the PIs will conduct a wide range of fundamental empirical studies that will test the research hypotheses and evaluate the proposed approach on large scale subject systems. Among others outcomes, these studies will examine the effective configurations of a range of systems; investigate how those configurations evolve over time; and determine how failures relate to system configurations. The results will impact both practice and education.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Type
Standard Grant (Standard)
Application #
1116740
Program Officer
Sol J. Greenspan
Project Start
Project End
Budget Start
2011-07-15
Budget End
2014-06-30
Support Year
Fiscal Year
2011
Total Cost
$500,000
Indirect Cost
Name
University of Maryland College Park
Department
Type
DUNS #
City
College Park
State
MD
Country
United States
Zip Code
20742