Demo Data from EDBT 2026 / reviewers in the wild / expert
Marija Selakovic
dblp:167/0216
· DBLP profile ↗
4ranked-venue papers
4as first author
0since 2021 · last 2018
0000-0001-9508-5868ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 4 · 4 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
4 papers |
Software testing · 42% Empirical software engineering · 16% Debugging and program repair · 14% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
Performance modeling and evaluation · 100% |
Topics — the 9 heaviest of 10, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Software testing
test generation |
0.3 | 1 | 2018 | Test generation for higher-order functions in dynamic languages · Proc. ACM Program. Lang. 2018 |
Software testing
test oracle |
0.3 | 1 | 2018 | Test generation for higher-order functions in dynamic languages · Proc. ACM Program. Lang. 2018 |
Performance modeling and evaluation
profiling |
0.3 | 1 | 2017 | An actionable performance profiler for optimizing the order of evaluations · ISSTA 2017 |
Empirical software engineering
mining software repositories |
0.2 | 1 | 2016 | Performance issues and optimizations in JavaScript: an empirical study · ICSE 2016 |
Debugging and program repair
automated program repair |
0.2 | 1 | 2015 | Poster: Automatically Fixing Real-World JavaScript Performance Bugs · ICSE (2) 2015 |
Software maintenance and evolution
software evolution |
0.1 | 2 | 2016 | Performance issues and optimizations in JavaScript: an empirical study · ICSE 2016 Poster: Automatically Fixing Real-World JavaScript Performance Bugs · ICSE (2) 2015 |
Programming languages and type systems
dynamic languages |
0.1 | 1 | 2018 | Test generation for higher-order functions in dynamic languages · Proc. ACM Program. Lang. 2018 |
Programming languages and type systems › dynamic languages
javascript |
0.1 | 1 | 2018 | Test generation for higher-order functions in dynamic languages · Proc. ACM Program. Lang. 2018 |
Compilers and program optimization
program transformation |
0.1 | 1 | 2017 | An actionable performance profiler for optimizing the order of evaluations · ISSTA 2017 |
Methods — techniques the papers use, named apart from their topics
statistical significance testing · 0.6dynamic analysis · 0.6type inference · 0.3iterative improvement · 0.3callback generation · 0.3performance measurement · 0.2empirical study · 0.2static analysis · 0.2fix pattern mining · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2018 | Test generation for higher-order functions in dynamic languagesabstractTest generation has proven to provide an effective way of identifying programming errors. Unfortunately, current test generation techniques are challenged by higher-order functions in dynamic languages, such as JavaScript functions that receive callbacks. In particular, existing test generators suffer from the unavailability of statically known type signatures, do not provide functions or provide only trivial functions as inputs, and ignore callbacks triggered by the code under test. This paper presents LambdaTester, a novel test generator that addresses the specific problems posed by higher-order functions in dynamic languages. The approach automatically infers at what argument position a method under test expects a callback, generates and iteratively improves callback functions given as input to this method, and uses novel test oracles that check whether and how callback functions are invoked. We apply LambdaTester to test 43 higher-order functions taken from 13 popular JavaScript libraries. The approach detects unexpected behavior in 12 of the 13 libraries, many of which are missed by a state-of-the-art test generator. Marija Selakovic, Michael Pradel, Rezwana Karim, Frank Tip |
Proc. ACM Program. Lang. | 1 |
| 2017 | An actionable performance profiler for optimizing the order of evaluationsabstractThe efficiency of programs often can be improved by applying rel- atively simple changes. To find such optimization opportunities, developers either rely on manual performance tuning, which is time-consuming and requires expert knowledge, or on traditional profilers, which show where resources are spent but not how to optimize the program. This paper presents a profiler that provides actionable advice, by not only finding optimization opportunities but by also suggesting code transformations that exploit them. Specifically, we focus on optimization opportunities related to the order of evaluating subexpressions that are part of a decision made by the program. To help developers find such reordering opportuni- ties, we present DecisionProf, a dynamic analysis that automatically identifies the optimal order, for a given input, of checks in logical expressions and in switch statements. The key idea is to assess the computational costs of all possible orders, to find the optimal order, and to suggest a code transformation to the developer only if reordering yields a statistically significant performance improve- ment. Applying DecisionProf to 43 real-world JavaScript projects reveals 52 beneficial reordering opportunities. Optimizing the code as proposed by DecisionProf reduces the execution time of indi- vidual functions between 2.5% and 59%, and leads to statistically significant application-level performance improvements that range between 2.5% and 6.5%. Marija Selakovic, Thomas Glaser, Michael Pradel |
ISSTA | 1 |
| 2016 | Performance issues and optimizations in JavaScript: an empirical studyabstractAs JavaScript is becoming increasingly popular, the performance of JavaScript programs is crucial to ensure the responsiveness and energy-efficiency of thousands of programs. Yet, little is known about performance issues that developers face in practice and they address these issues. This paper presents an empirical study of 98 fixed performance issues from 16 popular client-side and server-side JavaScript projects. We identify eight root causes of issues and show that inefficient usage of APIs is the most prevalent root cause. Furthermore, we find that most issues are addressed by optimizations that modify only a few lines of code, without significantly affecting the complexity of the source code. By studying the performance impact of optimizations on several versions of the SpiderMonkey and V8 engines, we find that only 42.68% of all optimizations improve performance consistently across all versions of both engines. Finally, we observe that many optimizations are instances of patterns applicable across projects, as evidenced by 139 previously unknown optimization opportunities that we find based on the patterns identified during the study. The results of the study help application developers to avoid common mistakes, researchers to develop performance-related techniques that address relevant problems, and engine developers to address prevalent bottleneck patterns. Marija Selakovic, Michael Pradel |
ICSE | 1 |
| 2015 | Poster: Automatically Fixing Real-World JavaScript Performance BugsabstractPrograms often suffer from poor performance that can be fixed by relatively simple changes. Currently, developers either manually identify and fix such performance problems, or they rely on compilers to optimize their code. Unfortunately, manually fixing performance bugs is non-trivial, and compilers are limited to a predefined set of optimizations. This paper presents an approach for automatically finding and fixing performance bugs in JavaScript programs. To focus our work on relevant problems, we study 37 real-world performance bug fixes from eleven popular JavaScript projects and identify several recurring fix patterns. Based on the results of the study, we present a static analysis that identifies occurrences of common fix patterns and a fix generation technique that proposes to transform a given program into a more efficient program. Applying the fix generation technique to three libraries with known performance bugs yields fixes that are equal or equivalent to those proposed by the developers, and that lead to speedups between 10% and 25%. Marija Selakovic, Michael Pradel |
ICSE (2) | 1 |