Using symbolic evaluation to understand behavior in configurable software systems
Many modern software systems are designed to be highly configurable, which increases flexibility but can make programs hard to test, analyze, and understand. We present an initial empirical study of how configuration options affect program behavior. We conjecture that, at certain levels of abstracti...
Saved in:
Published in | 2010 ACM/IEEE 32nd International Conference on Software Engineering Vol. 1; pp. 445 - 454 |
---|---|
Main Authors | , , , , |
Format | Conference Proceeding |
Language | English |
Published |
New York, NY, USA
ACM
01.05.2010
IEEE |
Series | ACM Conferences |
Subjects | |
Online Access | Get full text |
ISBN | 9781605587196 1605587192 |
ISSN | 0270-5257 |
DOI | 10.1145/1806799.1806864 |
Cover
Summary: | Many modern software systems are designed to be highly configurable, which increases flexibility but can make programs hard to test, analyze, and understand. We present an initial empirical study of how configuration options affect program behavior. We conjecture that, at certain levels of abstraction, configuration spaces are far smaller than the worst case, in which every configuration is distinct. We evaluated our conjecture by studying three configurable software systems: vsftpd, ngIRCd, and grep. We used symbolic evaluation to discover how the settings of run-time configuration options affect line, basic block, edge, and condition coverage for our subjects under a given test suite. Our results strongly suggest that for these subject programs, test suites, and configuration options, when abstracted in terms of the four coverage criteria above, configuration spaces are in fact much smaller than combinatorics would suggest and are effectively the composition of many small, self-contained groupings of options. |
---|---|
ISBN: | 9781605587196 1605587192 |
ISSN: | 0270-5257 |
DOI: | 10.1145/1806799.1806864 |