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 pr...
As software grows more prevalent and more integral to human activities, the potential impact of faul...
International audienceThe specialization of the configuration space of a software system has been co...
Due to software complexity, manual and automatic testing are not enough to guarantee the correct beh...
Many modern software systems are designed to be highly configurable, which makes testing them a cha...
Many modern software systems are highly configurable. While a high degree of configurability has man...
International audienceMost modern software systems (operating systems like Linux or Android, Web bro...
Almost every complex software system today is configurable. While configurability has many benefits,...
peer-reviewedWhen configuring customizable software, it is useful to provide interactive tool-suppor...
International audienceNumerous software systems are configurable through compile-time options and th...
Many security and software testing applications require checking whether certain properties of a pro...
The often huge configuration spaces of modern software systems render the detection, prediction, and...
As the number of configurable attributes of software under test grows and the cardinality of those a...
The ever-increasing complexity of software systems makes them hard to comprehend, predict and tune d...
Symbolic execution is a powerful technique for analyzing program behavior, finding bugs, and generat...
As software grows more prevalent and more integral to human activities, the potential impact of faul...
International audienceThe specialization of the configuration space of a software system has been co...
Due to software complexity, manual and automatic testing are not enough to guarantee the correct beh...
Many modern software systems are designed to be highly configurable, which makes testing them a cha...
Many modern software systems are highly configurable. While a high degree of configurability has man...
International audienceMost modern software systems (operating systems like Linux or Android, Web bro...
Almost every complex software system today is configurable. While configurability has many benefits,...
peer-reviewedWhen configuring customizable software, it is useful to provide interactive tool-suppor...
International audienceNumerous software systems are configurable through compile-time options and th...
Many security and software testing applications require checking whether certain properties of a pro...
The often huge configuration spaces of modern software systems render the detection, prediction, and...
As the number of configurable attributes of software under test grows and the cardinality of those a...
The ever-increasing complexity of software systems makes them hard to comprehend, predict and tune d...
Symbolic execution is a powerful technique for analyzing program behavior, finding bugs, and generat...
As software grows more prevalent and more integral to human activities, the potential impact of faul...
International audienceThe specialization of the configuration space of a software system has been co...
Due to software complexity, manual and automatic testing are not enough to guarantee the correct beh...