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...

Full description

Saved in:
Bibliographic Details
Published in2010 ACM/IEEE 32nd International Conference on Software Engineering Vol. 1; pp. 445 - 454
Main Authors Reisner, Elnatan, Song, Charles, Ma, Kin-Keung, Foster, Jeffrey S., Porter, Adam
Format Conference Proceeding
LanguageEnglish
Published New York, NY, USA ACM 01.05.2010
IEEE
SeriesACM Conferences
Subjects
Online AccessGet full text
ISBN9781605587196
1605587192
ISSN0270-5257
DOI10.1145/1806799.1806864

Cover

Abstract 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.
AbstractList 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.
Author Foster, Jeffrey S.
Porter, Adam
Reisner, Elnatan
Song, Charles
Ma, Kin-Keung
Author_xml – sequence: 1
  givenname: Elnatan
  surname: Reisner
  fullname: Reisner, Elnatan
  organization: University of Maryland, College Park
– sequence: 2
  givenname: Charles
  surname: Song
  fullname: Song, Charles
  organization: University of Maryland, College Park
– sequence: 3
  givenname: Kin-Keung
  surname: Ma
  fullname: Ma, Kin-Keung
  organization: University of Maryland, College Park
– sequence: 4
  givenname: Jeffrey S.
  surname: Foster
  fullname: Foster, Jeffrey S.
  organization: University of Maryland, College Park
– sequence: 5
  givenname: Adam
  surname: Porter
  fullname: Porter, Adam
  organization: University of Maryland, College Park
BookMark eNqNkE1LAzEYhANWsGrPHrzk6GXr-2abjz1K8QsKIthzSDbZGt1NZLOt9N-7pf0BzmUGZpjDc0kmMUVPyA3CHHHB71GBkFU1P7gSizMyq6RCAZwriZWYkCkwCQVnXF6QWc5fMEqUgAhT8r7OIW5o3nc2taGmfmfarRlCinRIdBud7_NgoqPWf5pdSD0NkdYpNmGz7Y1tPc2pGX5NP4Z9HnyXr8l5Y9rsZye_Iuunx4_lS7F6e35dPqwKg4INhVEIFVRWOQHWM2Ebzjw3sgbuVA0LBC6xbMrSCQdSKYGusc4jGMt5yevyitwef4P3Xv_0oTP9XgsQDJGN7d2xNXWnbUrfWSPoAy994qVPvMbp_J9Tbfvgm_IPdv9rLQ
ContentType Conference Proceeding
Copyright 2010 ACM
Copyright_xml – notice: 2010 ACM
DBID 6IE
6IH
CBEJK
RIE
RIO
DOI 10.1145/1806799.1806864
DatabaseName IEEE Electronic Library (IEL) Conference Proceedings
IEEE Proceedings Order Plan (POP) 1998-present by volume
IEEE Xplore All Conference Proceedings
IEEE Xplore
IEEE Proceedings Order Plans (POP) 1998-present
DatabaseTitleList

Database_xml – sequence: 1
  dbid: RIE
  name: IEEE Electronic Library (IEL)
  url: https://proxy.k.utb.cz/login?url=https://ieeexplore.ieee.org/
  sourceTypes: Publisher
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EndPage 454
ExternalDocumentID 6062112
Genre orig-research
GroupedDBID 6IE
6IF
6IG
6IH
6IK
6IL
6IM
6IN
AAJGR
ACM
ADPZR
ALMA_UNASSIGNED_HOLDINGS
APO
BEFXN
BFFAM
BGNUA
BKEBE
BPEOZ
CBEJK
GUFHI
IEGSK
IERZE
IJVOP
OCL
RIB
RIC
RIE
RIL
RIO
-~X
.4S
.DC
123
23M
29O
5VS
8US
AAWTH
ABLEC
ADZIZ
AFFNX
ARCSS
AVWKF
CHZPO
EDO
FEDTE
I-F
I07
IPLJI
M43
RNS
XOL
ID FETCH-LOGICAL-a162t-a810909b8d60be26bf52e5a7c05d8c04105713f33d6d078861dfbde10ab5535c3
IEDL.DBID RIE
ISBN 9781605587196
1605587192
ISSN 0270-5257
IngestDate Wed Aug 27 02:38:14 EDT 2025
Wed Jan 31 06:43:37 EST 2024
Wed Jan 31 06:47:57 EST 2024
IsPeerReviewed false
IsScholarly true
Keywords software configurations
empirical software engineering
software testing and analysis
Language English
License Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Permissions@acm.org
LinkModel DirectLink
MeetingName ICSE '10: 32nd International Conference on Software Engineering
MergedId FETCHMERGED-LOGICAL-a162t-a810909b8d60be26bf52e5a7c05d8c04105713f33d6d078861dfbde10ab5535c3
PageCount 10
ParticipantIDs ieee_primary_6062112
acm_books_10_1145_1806799_1806864_brief
acm_books_10_1145_1806799_1806864
PublicationCentury 2000
PublicationDate 20100501
2010-May
PublicationDateYYYYMMDD 2010-05-01
PublicationDate_xml – month: 05
  year: 2010
  text: 20100501
  day: 01
PublicationDecade 2010
PublicationPlace New York, NY, USA
PublicationPlace_xml – name: New York, NY, USA
PublicationSeriesTitle ACM Conferences
PublicationTitle 2010 ACM/IEEE 32nd International Conference on Software Engineering
PublicationTitleAbbrev icse
PublicationYear 2010
Publisher ACM
IEEE
Publisher_xml – name: ACM
– name: IEEE
SSID ssj0000630110
ssj0006499
Score 2.1198719
Snippet Many modern software systems are designed to be highly configurable, which increases flexibility but can make programs hard to test, analyze, and understand....
SourceID ieee
acm
SourceType Publisher
StartPage 445
SubjectTerms Computing methodologies -- Symbolic and algebraic manipulation
Concrete
empirical software engineering
Libraries
Measurement
Servers
Software and its engineering -- Software creation and management -- Software verification and validation
Software and its engineering -- Software creation and management -- Software verification and validation -- Software defect analysis -- Software testing and debugging
software configurations
Software systems
software testing and analysis
Testing
Theory of computation -- Models of computation -- Abstract machines
Theory of computation -- Semantics and reasoning -- Program reasoning -- Abstraction
Title Using symbolic evaluation to understand behavior in configurable software systems
URI https://ieeexplore.ieee.org/document/6062112
Volume 1
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1LS8NAEF7anjxVbcX6YgXBi2mz2Uc3Z7EUoaJgobeQfUmRttImiP56d_JoUQQ9ZRNySGazM_Nt5vsGoSsQUWKRioJIaRDVlnGg_JoLYucccUwpHQHBefIgxlN2P-OzBrrZcmGstUXxme3DsPiXb1Y6h62ygU-2PV7xDrc5HMYlV2u7nwLaUUUoq7ywYEXvSI-6wgAUP4HU5VN37gFCHFVaT_W5qDR_COMDImFrJe7DUYIOQTPVi2-tV4rIM2qjSf3MZcHJaz_PVF9__pBz_O9L7aPujuOHH7fR6wA17PIQtesmD7ha8x30VBQV4M3HQoGEMN7Jg-NshfMtNwbXhH88X2IPst38JV8DLwtvvKd_T9d-UKqjd9F0dPd8Ow6qPgxBSkSUBamE6s1YSSNCZSOhHI8sT4c65EbqEApFPdR1lBphfMYhBTFOGUvCVHFOuaZHqLVcLe0xwpqE0lCtPMhjjDmpLDWWUiZoaofE0B669OZOAGBskpIzzZNqSpJqSnro-s97ErWeW9dDHbB38lYKdySVqU9-v3yK9urSgJCcoVa2zu25zzgydVF8al-4usmv
linkProvider IEEE
linkToHtml http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwjV1LT9tAEB4BPZQT5VGR0sJWQuKCg_eZ9bkCpZAgkEDiZnlfVYRIUGKror--O34kAlUqJ68tH-xZ78x86_m-AThGESXBDEuYsSiqrbPExDWXZCEEGoQxliHBeXythvfi8kE-rMHpkgvjva-Lz3wfh_W_fDezFW6VncVkO-KV6HA_SCEGrGFrLXdUUD2qDmatH1ai7h4ZcVeaoOYn0rpi8i4jRMhYq_bUnatW9YcKeUY1bq5kfTxqVCJYL-zTq-Yrdey52IJx99RNycljvypN3_55I-j43tf6BHsrlh-5WcavbVjz0x3Y6to8kHbV78JtXVZAFi9PBkWEyUognJQzUi3ZMaSj_JPJlESYHSa_qjkys8gi-vrfxTwOGn30Pbi_OL_7MUzaTgxJQRUrk0Jj_WZmtFOp8UyZIJmXxcCm0mmbYqloBLuBc6dczDm0oi4Y52laGCm5tPwzbExnU78PxNJUO25NhHlCiKCN585zLhQv_IA63oPv0dw5QoxF3rCmZd5OSd5OSQ9O_ntPbuYTH3qwi_bOnxvpjrw19Zd_Xz6Cj8O78Sgf_by-OoDNrlAgpV9ho5xX_lvMP0pzWH92fwF5x8z6
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=Proceedings+of+the+32nd+ACM%2FIEEE+International+Conference+on+Software+Engineering+-+Volume+1&rft.atitle=Using+symbolic+evaluation+to+understand+behavior+in+configurable+software+systems&rft.au=Reisner%2C+Elnatan&rft.au=Song%2C+Charles&rft.au=Ma%2C+Kin-Keung&rft.au=Foster%2C+Jeffrey+S.&rft.series=ACM+Conferences&rft.date=2010-05-01&rft.pub=ACM&rft.isbn=9781605587196&rft.spage=445&rft.epage=454&rft_id=info:doi/10.1145%2F1806799.1806864
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0270-5257&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0270-5257&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0270-5257&client=summon