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.

Jens Meinicke

dblp:132/2339 · DBLP profile ↗
← Back
16ranked-venue papers
2as first author
0since 2021 · last 2020
—ORCID · none

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

Software engineering, systems software and programming languages · 16 · 2 first-authorArtificial intelligence and machine learning · 3Applied, interdisciplinary, general and emerging computing · 3Databases, data management, data science and information retrieval · 1 · 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
6 papers
Software testing · 22% Empirical software engineering · 18% Requirements engineering and software design · 18%

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

TopicWeightPapersLastEvidence papers
Software testing › mutation testing
higher order mutation
0.522020
Efficiently finding higher-order mutants · ESEC/SIGSOFT FSE 2020
Beyond testing configurable systems: applying variational execution to automatic program repair and higher order mutation testing · ESEC/SIGSOFT FSE 2018
Software testing
mutation testing
0.522020
Efficiently finding higher-order mutants · ESEC/SIGSOFT FSE 2020
Beyond testing configurable systems: applying variational execution to automatic program repair and higher order mutation testing · ESEC/SIGSOFT FSE 2018
Empirical software engineering
developer studies
0.412020
How to not get rich: an empirical study of donations in open source · ICSE 2020
Empirical software engineering
mining software repositories
0.412020
How to not get rich: an empirical study of donations in open source · ICSE 2020
Program analysis
dynamic analysis
0.422018
Faster variational execution with transparent bytecode transformation · Proc. ACM Program. Lang. 2018
On essential configuration complexity: measuring interactions in highly-configurable systems · ASE 2016
Debugging and program repair
automated program repair
0.312018
Beyond testing configurable systems: applying variational execution to automatic program repair and higher order mutation testing · ESEC/SIGSOFT FSE 2018
Runtime systems and virtual machines › virtual machine implementation
bytecode rewriting
0.312018
Faster variational execution with transparent bytecode transformation · Proc. ACM Program. Lang. 2018
Debugging and program repair › automated program repair
search-based program repair
0.312018
Beyond testing configurable systems: applying variational execution to automatic program repair and higher order mutation testing · ESEC/SIGSOFT FSE 2018
Requirements engineering and software design › software product lines
feature models
0.312017
Is there a mismatch between real-world feature models and product-line research? · ESEC/SIGSOFT FSE 2017
Requirements engineering and software design › software product lines › feature models
feature model analysis
0.312017
Is there a mismatch between real-world feature models and product-line research? · ESEC/SIGSOFT FSE 2017
Requirements engineering and software design
software product lines
0.312017
Is there a mismatch between real-world feature models and product-line research? · ESEC/SIGSOFT FSE 2017
Software maintenance and evolution › software variability
highly-configurable systems
0.212016
On essential configuration complexity: measuring interactions in highly-configurable systems · ASE 2016
Software maintenance and evolution
software ecosystems
0.112020
How to not get rich: an empirical study of donations in open source · ICSE 2020
Software maintenance and evolution › software variability
configurable software systems
0.112018
Faster variational execution with transparent bytecode transformation · Proc. ACM Program. Lang. 2018

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

variational execution · 1.1statistical modeling · 0.4mixed-method study · 0.4genetic search · 0.4bytecode transformation · 0.3constraint elimination algorithm · 0.3variability-aware execution · 0.2program tracing · 0.2
YearPublicationVenuePosition
2020 How to not get rich: an empirical study of donations in open source
abstract
Open source is ubiquitous and many projects act as critical infrastructure, yet funding and sustaining the whole ecosystem is challenging. While there are many different funding models for open source and concerted efforts through foundations, donation platforms like PayPal, Patreon, and OpenCollective are popular and low-bar platforms to raise funds for open-source development. With a mixed-method study, we investigate the emerging and largely unexplored phenomenon of donations in open source. Specifically, we quantify how commonly open-source projects ask for donations, statistically model characteristics of projects that ask for and receive donations, analyze for what the requested funds are needed and used, and assess whether the received donations achieve the intended outcomes. We find 25,885 projects asking for donations on GitHub, often to support engineering activities; however, we also find no clear evidence that donations influence the activity level of a project. In fact, we find that donations are used in a multitude of ways, raising new research questions about effective funding.
Cassandra Overney, Jens Meinicke, Christian Kästner, Bogdan Vasilescu
ICSE2
2020 Capture the Feature Flag: Detecting Feature Flags in Open-Source
abstract
Feature flags (a.k.a feature toggles) are a mechanism to keep new features hidden behind a boolean option during development. Flags are used for many purposes, such as A/B testing and turning off a feature more easily in case of failures. While software engineering research on feature flags is burgeoning, examples of software projects using flags rarely come from outside commercial and private projects, stifling academic progress. To address this gap, in this paper we present a novel semi-automated mining software repositories approach to detect feature flags in open-source projects, based on analyzing the projects' commit messages and other project characteristics. With our approach, we search over all open-source GitHub projects, finding multiple thousand plausible and active candidate feature flagging projects. We manually validate projects and assemble a dataset of 100 confirmed feature flagging projects. To demonstrate the benefits of our detection technique, we report on an initial analysis of feature flags in the validated sample of 100 projects, investigating practices that correlate with shorter flag lifespans (typically desirable to reduce technical debt), such as using the issue tracker and having a flag owner.
Jens Meinicke, Juan Hoyos, Bogdan Vasilescu, Christian Kästner
MSR1
2020 Efficiently finding higher-order mutants
abstract
Higher-order mutation has the potential for improving major drawbacks of traditional first-order mutation, such as by simulating more realistic faults or improving test-optimization techniques. Despite interest in studying promising higher-order mutants, such mutants are difficult to find due to the exponential search space of mutation combinations. State-of-the-art approaches rely on genetic search, which is often incomplete and expensive due to its stochastic nature. First, we propose a novel way of finding a complete set of higher-order mutants by using variational execution, a technique that can, in many cases, explore large search spaces completely and often efficiently. Second, we use the identified complete set of higher-order mutants to study their characteristics. Finally, we use the identified characteristics to design and evaluate a new search strategy, independent of variational execution, that is highly effective at finding higher-order mutants even in large codebases.
Chu-Pan Wong, Jens Meinicke, Leo Chen, João Paulo Diniz, Christian Kästner, Eduardo Figueiredo 0001
ESEC/SIGSOFT FSE2
2019 Effective product-line testing using similarity-based product prioritization
Mustafa Al-Hajjaji, Thomas Thüm, Malte Lochau, Jens Meinicke, Gunter Saake
Softw. Syst. Model.4
2018 Exploring feature interactions without specifications: a controlled experiment
abstract
In highly configurable systems, features may interact unexpectedly and produce faulty behavior. Those faults are not easily identified from the analysis of each feature separately, especially when feature specifications are missing. We propose VarXplorer, a dynamic and iterative approach to detect suspicious interactions. It provides information on how features impact the control and data flow of the program. VarXplorer supports developers with a graph that visualizes this information, mainly showing suppress and require relations between features. To evaluate whether VarXplorer helps improve the performance of identifying suspicious interactions, we perform a controlled study with 24 subjects. We find that with our proposed feature-interaction graphs, participants are able to identify suspicious interactions more than 3 times faster compared to the state-of-the-art tool.
Larissa Rocha Soares, Jens Meinicke, Sarah Nadi, Christian Kästner, Eduardo Santana de Almeida
GPCE2
2018 Beyond testing configurable systems: applying variational execution to automatic program repair and higher order mutation testing
abstract
Generate-and-validate automatic program repair and higher order mutation testing often use search-based techniques to find optimal or good enough solutions in huge search spaces. As search spaces continue to grow, finding solutions that require interactions of multiple changes can become challenging. To tackle the huge search space, we propose to use variational execution. Variational execution has been shown to be effective in exhaustively exploring variations and identifying interactions in a huge but often finite configuration space. The key idea is to encode alternatives in the search space as variations and use variational execution as a black-box technique to generate useful insights so that existing search heuristics can be informed. We show that this idea is promising and identify criteria for problems in which variational execution is a promising tool, which may be useful to identify further applications.
Chu-Pan Wong, Jens Meinicke, Christian Kästner
ESEC/SIGSOFT FSE2
2018 Faster variational execution with transparent bytecode transformation
abstract
Variational execution is a novel dynamic analysis technique for exploring highly configurable systems and accurately tracking information flow. It is able to efficiently analyze many configurations by aggressively sharing redundancies of program executions. The idea of variational execution has been demonstrated to be effective in exploring variations in the program, especially when the configuration space grows out of control. Existing implementations of variational execution often require heavy lifting of the runtime interpreter, which is painstaking and error-prone. Furthermore, the performance of this approach is suboptimal. For example, the state-of-the-art variational execution interpreter for Java, VarexJ, slows down executions by 100 to 800 times over a single execution for small to medium size Java programs. Instead of modifying existing JVMs, we propose to transform existing bytecode to make it variational, so it can be executed on an unmodified commodity JVM. Our evaluation shows a dramatic improvement on performance over the state-of-the-art, with a speedup of 2 to 46 times, and high efficiency in sharing computations.
Chu-Pan Wong, Jens Meinicke, Lukas Lazarek, Christian Kästner
Proc. ACM Program. Lang.2
2017 Is there a mismatch between real-world feature models and product-line research?
abstract
Feature modeling has emerged as the de-facto standard to compactly capture the variability of a software product line. Multiple feature modeling languages have been proposed that evolved over the last decades to manage industrial-size product lines. However, less expressive languages, solely permitting require and exclude constraints, are permanently and carelessly used in product-line research. We address the problem whether those less expressive languages are sufficient for industrial product lines. We developed an algorithm to eliminate complex cross-tree constraints in a feature model, enabling the combination of tools and algorithms working with different feature model dialects in a plug-and-play manner. However, the scope of our algorithm is limited. Our evaluation on large feature models, including the Linux kernel, gives evidence that require and exclude constraints are not sufficient to express real-world feature models. Hence, we promote that research on feature models needs to consider arbitrary propositional formulas as cross-tree constraints prospectively.
Alexander Kittelmann, Thomas Thüm, Stephan Mennicke, Jens Meinicke, Ina Schaefer
ESEC/SIGSOFT FSE4
2017 Variant-preserving refactorings for migrating cloned products to a product line
abstract
A common and simple way to create custom product variants is to copy and adapt existing software (a. k. a. the clone-and-own approach). Clone-and-own promises low initial costs for creating a new variant as existing code is easily reused. However, clone-and-own also comes with major drawbacks for maintenance and evolution since changes, such as bug fixes, need to be synchronized among several product variants. Software product lines (SPLs) provide solutions to these problems because commonalities are implemented only once. Thus, in an SPL, changes also need to be applied only once. Therefore, the migration of cloned product variants to an SPL would be beneficial. The main tasks of migration are the identification and extraction of commonalities from existing products. However, these tasks are challenging and currently not well-supported. In this paper, we propose a step-wise and semi-automated process to migrate cloned product variants to a feature-oriented SPL. Our process relies on clone detection to identify code that is common to multiple variants and novel, variant-preserving refactorings to extract such common code. We evaluated our approach on five cloned product variants, reducing code clones by 25 %. Moreover, we provide qualitative insights into possible limitations and potentials for removing even more redundant code. We argue that our approach can effectively decrease synchronization effort compared to clone-and-own development and thus reduce the long-term costs for maintenance and evolution.
Wolfram Fenske, Jens Meinicke, Sandro Schulze, Steffen Schulze, Gunter Saake
SANER2
2016 Tool demo: testing configurable systems with FeatureIDE
abstract
Most software systems are designed to provide custom functionality using configuration options. Testing such systems is challenging as running tests of a single configuration is often not sufficient, because defects may appear in other configurations. Ideally, all configurations of a software system should be tested, which is usually not applicable in practice due to the combinatorial explosion with respect to the configuration options. Multiple sampling strategies aim to reduce the set of tested configurations to a feasible amount, such as T-wise sampling, random configurations, and user-defined configurations. However, these strategies are often not applied in practice as they require manual effort or a specialized testing framework. Within our tool FeatureIDE, we integrate all aforementioned strategies and reduce the manual effort by automating the process of generating and testing configurations. Furthermore, we provide support for unit testing to avoid redundant test executions and for variability-aware testing. With this extension of FeatureIDE, we aim to make recent testing techniques for configurable systems applicable in practice.
Mustafa Al-Hajjaji, Jens Meinicke, Sebastian Krieter, Reimar Schröter, Thomas Thüm, Thomas Leich, Gunter Saake
GPCE2
2016 FeatureIDE: Scalable Product Configuration of Variable Systems
Juliana Alves Pereira, Sebastian Krieter, Jens Meinicke, Reimar Schröter, Gunter Saake, Thomas Leich
ICSR3
2016 On essential configuration complexity: measuring interactions in highly-configurable systems
abstract
Quality assurance for highly-configurable systems is challenging due to the exponentially growing configuration space. Interactions among multiple options can lead to surprising behaviors, bugs, and security vulnerabilities. Analyzing all configurations systematically might be possible though if most options do not interact or interactions follow specific patterns that can be exploited by analysis tools. To better understand interactions in practice, we analyze program traces to characterize and identify where interactions occur on control flow and data. To this end, we developed a dynamic analysis for Java based on variability-aware execution and monitor executions of multiple small to medium-sized programs. We find that the essential configuration complexity of these programs is indeed much lower than the combinatorial explosion of the configuration space indicates. However, we also discover that the interaction characteristics that allow scalable and complete analyses are more nuanced than what is exploited by existing state-of-the-art quality assurance strategies.
Jens Meinicke, Chu-Pan Wong, Christian Kästner, Thomas Thüm, Gunter Saake
ASE1
2016 Extracting software product lines: a cost estimation perspective
abstract
Companies are often forced to customize their software products. Thus, a common practice is to clone and adapt existing systems to new customer requirements. With the extractive approach, those derived variants can be migrated into a software product line. However, changing to a new development process is risky and may result in unnecessary costs. Therefore, companies apply cost estimations to predict whether another development approach is beneficial. Existing cost models for software-product-line engineering focus on development from scratch. Contrarily, the extractive approach is more common in practice but specialized models are missing. Thus, in this work we focus on product-line extraction from a set of legacy systems. We i) describe according cost factors, ii) put them in context with the development process and cost curves, and iii) identify open challenges in product-line economics. This way, our work supports cost estimations for the extractive approach and provides a basis for further research.
Jacob Krüger, Wolfram Fenske, Jens Meinicke, Thomas Leich, Gunter Saake
SPLC3
2014 Similarity-based prioritization in software product-line testing
abstract
Exhaustively testing every product of a software product line (SPL) is a difficult task due to the combinatorial explosion of the number of products. Combinatorial interaction testing is a technique to reduce the number of products under test. However, it is typically up-to the tester in which order these products are tested. We propose a similarity-based prioritization to be applied on these products before they are generated. The proposed approach does not guarantee to find more errors than sampling approaches, but it aims at increasing interaction coverage of an SPL under test as fast as possible over time. This is especially beneficial since usually the time budget for testing is limited. We implemented similarity-based prioritization in FeatureIDE and evaluated it by comparing its outcome to the default outcome of three sampling algorithms as well as to random orders. The experiment results indicate that the order with similarity-based prioritization is better than random orders and often better than the default order of existing sampling algorithms.
Mustafa Al-Hajjaji, Thomas Thüm, Jens Meinicke, Malte Lochau, Gunter Saake
SPLC3
2014 Potential synergies of theorem proving and model checking for software product lines
abstract
The verification of software product lines is an active research area. A challenge is to efficiently verify similar products without the need to generate and verify them individually. As solution, researchers suggest family-based verification approaches, which either transform compile-time into runtime variability or make verification tools variability-aware. Existing approaches either focus on theorem proving, model checking, or other verification techniques. For the first time, we combine theorem proving and model checking to evaluate their synergies for product-line verification. We provide tool support by connecting five existing tools, namely FeatureIDE and FeatureHouse for product-line development, as well as KeY, JPF, and OpenJML for verification of Java programs. In an experiment, we found the synergy of improved effectiveness and efficiency, especially for product lines with few defects. Further, we experienced that model checking and theorem proving are more efficient and effective if the product line contains more defects.
Thomas Thüm, Jens Meinicke, Fabian Benduhn, Martin Hentschel 0002, Alexander von Rhein, Gunter Saake
SPLC2
2014 FeatureIDE: An extensible framework for feature-oriented software development
Thomas Thüm, Christian Kästner, Fabian Benduhn, Jens Meinicke, Gunter Saake, Thomas Leich
Sci. Comput. Program.4