CAREER:VARIATIONAL EXECUTION
Carnegie Mellon University, Pittsburgh PA
Investigators
Abstract
Many software systems can be configured by enabling or disabling configuration options. As options can be combined flexibly, the configuration space grows exponentially. Therefore highly-configurable systems are notoriously hard to test. While many combinations of options work well, specific configurations may expose faulty or surprising behavior emerging from interactions among options. Due to the huge search space, interactions are difficult to find. In fact, since no complete and sound techniques exist to study interactions in large scale systems, little is known about interactions in practice. This research explores a novel program execution technique, variational execution, to efficiently execute a large number of configurations or similar programs and inspect the differences among those executions. Variational execution will aid understanding and detection of interactions among configuration options in highly-configurable software systems and contribute to better quality assurance and development methods. It will transform the way to test configurable systems, including most of today?s end-user software, software ecosystems, and critical infrastructure software, such as SSL libraries and databases. The insights gained into interactions in real-world systems fill an important gap in our understanding of interactions, relevant for teaching software design and quality assurance. Additionally, it will enable advances in exploring interactions and large search spaces for broader software engineering purposes, including higher-order mutation testing, program repair, and sensitivity analysis.
View original record on NSF Award Search →