Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Charles Song

dblp:69/1793 · DBLP profile ↗
← Back
3ranked-venue papers
2as first author
0since 2021 · last 2014
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 3 · 2 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
3 papers
Software testing · 82% Program analysis · 16% Empirical software engineering · 2%
Databases, data mining, and information retrieval
1 paper
Machine learning and data management · 100%

Topics — the 8 heaviest of 9, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Software testing
combinatorial testing
0.322014
iTree: Efficiently Discovering High-Coverage Configurations Using Interaction Trees · IEEE Trans. Software Eng. 2014
iTree: Efficiently discovering high-coverage configurations using interaction trees · ICSE 2012
Software testing
configuration testing
0.322014
iTree: Efficiently Discovering High-Coverage Configurations Using Interaction Trees · IEEE Trans. Software Eng. 2014
iTree: Efficiently discovering high-coverage configurations using interaction trees · ICSE 2012
Software testing › combinatorial testing
covering arrays
0.212014
iTree: Efficiently Discovering High-Coverage Configurations Using Interaction Trees · IEEE Trans. Software Eng. 2014
Software testing
test coverage
0.112012
iTree: Efficiently discovering high-coverage configurations using interaction trees · ICSE 2012
Program analysis
configuration analysis
0.112010
Using symbolic evaluation to understand behavior in configurable software systems · ICSE (1) 2010
Software testing › test coverage
coverage analysis
0.112010
Using symbolic evaluation to understand behavior in configurable software systems · ICSE (1) 2010
Program analysis
symbolic execution
0.112010
Using symbolic evaluation to understand behavior in configurable software systems · ICSE (1) 2010
Empirical software engineering › software engineering research methodology
empirical study
0.012010
Using symbolic evaluation to understand behavior in configurable software systems · ICSE (1) 2010

Methods — techniques the papers use, named apart from their topics

machine learning · 0.5interaction tree discovery · 0.5combinatorial interaction testing · 0.3symbolic evaluation · 0.1coverage analysis · 0.1
YearPublicationVenuePosition
2014 iTree: Efficiently Discovering High-Coverage Configurations Using Interaction Trees
abstract
Modern software systems are increasingly configurable. While this has many benefits, it also makes some software engineering tasks,such as software testing, much harder. This is because, in theory,unique errors could be hiding in any configuration, and, therefore,every configuration may need to undergo expensive testing. As this is generally infeasible, developers need cost-effective technique for selecting which specific configurations they will test. One popular selection approach is combinatorial interaction testing (CIT), where the developer selects a strength t and then computes a covering array (a set of configurations) in which all t-way combinations of configuration option settings appear at least once. In prior work, we demonstrated several limitations of the CIT approach. In particular, we found that a given system's effective configuration space - the minimal set of configurations needed to achieve a specific goal - could comprise only a tiny subset of the system's full configuration space. We also found that effective configuration space may not be well approximated by t-way covering arrays. Based on these insights we have developed an algorithm called interaction tree discovery (iTree). iTree is an iterative learning algorithm that efficiently searches for a small set of configurations that closely approximates a system's effective configuration space. On each iteration iTree tests the system on a small sample of carefully chosen configurations, monitors the system's behaviors, and then applies machine learning techniques to discover which combinations of option settings are potentially responsible for any newly observed behaviors. This information is used in the next iteration to pick a new sample of configurations that are likely to reveal further new behaviors. In prior work, we presented an initial version of iTree and performed an initial evaluation with promising results. This paper presents an improved iTree algorithm in greater detail. The key improvements are based on our use of composite proto-interactions - a construct that improves iTree's ability to correctly learn key configuration option combinations, which in turn significantly improves iTree's running time, without sacrificing effectiveness. Finally, the paper presents a detailed evaluation of the improved iTree algorithm by comparing the coverage it achieves versus that of covering arrays and randomly generated configuration sets, including a significantly expanded scalability evaluation with the ~ 1M-LOC MySQL. Our results strongly suggest that the improved iTree algorithm is highly scalable and can identify a high-coverage test set of configurations more effectively than existing methods.
Charles Song, Adam A. Porter, Jeffrey S. Foster
IEEE Trans. Software Eng.1
2012 iTree: Efficiently discovering high-coverage configurations using interaction trees
abstract
Software configurability has many benefits, but it also makes programs much harder to test, as in the worst case the program must be tested under every possible configuration. One potential remedy to this problem is combinatorial interaction testing (CIT), in which typically the developer selects a strength t and then computes a covering array containing all t-way configuration option combinations. However, in a prior study we showed that several programs have important high-strength interactions (combinations of a subset of configuration options) that CIT is highly unlikely to generate in practice. In this paper, we propose a new algorithm called interaction tree discovery (iTree) that aims to identify sets of configurations to test that are smaller than those generated by CIT, while also including important high-strength interactions missed by practical applications of CIT. On each iteration of iTree, we first use low-strength CIT to test the program under a set of configurations, and then apply machine learning techniques to discover new interactions that are potentially responsible for any new coverage seen. By repeating this process, iTree builds up a set of configurations likely to contain key high-strength interactions. We evaluated iTree by comparing the coverage it achieves versus covering arrays and randomly generated configuration sets. Our results strongly suggest that iTree can identify high-coverage sets of configurations more effectively than traditional CIT or random sampling.
Charles Song, Adam A. Porter, Jeffrey S. Foster
ICSE1
2010 Using symbolic evaluation to understand behavior in configurable software systems
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.
Elnatan Reisner, Charles Song, Kin-Keung Ma, Jeffrey S. Foster, Adam A. Porter
ICSE (1)2