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. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Alexander Kampmann

dblp:147/9010 · DBLP profile ↗
← Back
3ranked-venue papers
1as first author
0since 2021 · last 2020
0000-0001-6290-4556ORCID · verified

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

Software engineering, systems software and programming languages · 3 · 1 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 · 61% Debugging and program repair · 26% Program synthesis and code generation · 13%

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

TopicWeightPapersLastEvidence papers
Debugging and program repair
fault localization
0.922020
When does my program do this? learning circumstances of software behavior · ESEC/SIGSOFT FSE 2020
Abstracting failure-inducing inputs · ISSTA 2020
Software testing
test generation
0.822020
Abstracting failure-inducing inputs · ISSTA 2020
Parser-directed fuzzing · PLDI 2019
Software testing › test generation
failure-inducing test generation
0.412020
Abstracting failure-inducing inputs · ISSTA 2020
Program synthesis and code generation
grammar-constrained generation
0.412020
When does my program do this? learning circumstances of software behavior · ESEC/SIGSOFT FSE 2020
Software testing
test input generation
0.412020
When does my program do this? learning circumstances of software behavior · ESEC/SIGSOFT FSE 2020
Software testing
fuzzing
0.412019
Parser-directed fuzzing · PLDI 2019

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

systematic testing · 0.4input grammar · 0.4grammar-based parsing · 0.4decision tree learning · 0.4coverage-guided fuzzing · 0.4
YearPublicationVenuePosition
2020 Abstracting failure-inducing inputs
abstract
A program fails. Under which circumstances does the failure occur? Starting with a single failure-inducing input ("The input ((4)) fails") and an input grammar, the DDSET algorithm uses systematic tests to automatically generalize the input to an abstract failure-inducing input that contains both (concrete) terminal symbols and (abstract) nonterminal symbols from the grammar—for instance, "(( ))", which represents any expression in double parentheses. Such an abstract failure-inducing input can be used (1) as a debugging diagnostic, characterizing the circumstances under which a failure occurs ("The error occurs whenever an expression is enclosed in double parentheses"); (2) as a producer of additional failure-inducing tests to help design and validate fixes and repair candidates ("The inputs ((1)), ((3 * 4)), and many more also fail"). In its evaluation on real-world bugs in JavaScript, Clojure, Lua, and UNIX command line utilities, DDSET’s abstract failure-inducing inputs provided to-the-point diagnostics, and precise producers for further failure inducing inputs.
Rahul Gopinath, Alexander Kampmann, Nikolas Havrikov, Ezekiel O. Soremekun, Andreas Zeller
ISSTA2
2020 When does my program do this? learning circumstances of software behavior
abstract
A program fails. Under which circumstances does the failure occur? Our Alhazenapproach starts with a run that exhibits a particular behavior and automatically determines input features associated with the behavior in question: (1) We use a grammar to parse the input into individual elements. (2) We use a decision tree learner to observe and learn which input elements are associated with the behavior in question. (3) We use the grammar to generate additional inputs to further strengthen or refute hypotheses as learned associations. (4) By repeating steps 2 and 3, we obtain a theory that explains and predicts the given behavior. In our evaluation using inputs for find, grep, NetHack, and a JavaScript transpiler, the theories produced by Alhazen predict and produce failures with high accuracy and allow developers to focus on a small set of input features: “grep fails whenever the --fixed-strings option is used in conjunction with an empty search string.”
Alexander Kampmann, Nikolas Havrikov, Ezekiel O. Soremekun, Andreas Zeller
ESEC/SIGSOFT FSE1
2019 Parser-directed fuzzing
abstract
To be effective, software test generation needs to well cover the space of possible inputs. Traditional fuzzing generates large numbers of random inputs, which however are unlikely to contain keywords and other specific inputs of non-trivial input languages. Constraint-based test generation solves conditions of paths leading to uncovered code, but fails on programs with complex input conditions because of path explosion. In this paper, we present a test generation technique specifically directed at input parsers. We systematically produce inputs for the parser and track comparisons made; after every rejection, we satisfy the comparisons leading to rejection. This approach effectively covers the input space: Evaluated on five subjects, from CSV files to JavaScript, our pFuzzer prototype covers more tokens than both random-based and constraint-based approaches, while requiring no symbolic analysis and far fewer tests than random fuzzers.
Björn Mathis, Rahul Gopinath, Michaël Mera, Alexander Kampmann, Matthias Höschele, Andreas Zeller
PLDI4