EDBT 2026 Demo / reviewers in the wild / expert
Marina Polishchuk
dblp:42/6416
· DBLP profile ↗
7ranked-venue papers
1as 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 · 7 · 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
4 papers |
Software testing · 60% Software maintenance and evolution · 27% Debugging and program repair · 7% | |
| Computer architecture, parallel and distributed computing, and storage systems
2 papers |
Cloud and datacenter computing · 100% |
Topics — the 10 heaviest of 13, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Software maintenance and evolution › software evolution
API evolution |
0.4 | 1 | 2020 | Differential regression testing for REST APIs · ISSTA 2020 |
Software maintenance and evolution
breaking change detection |
0.4 | 1 | 2020 | Differential regression testing for REST APIs · ISSTA 2020 |
Software testing
regression testing |
0.4 | 1 | 2020 | Differential regression testing for REST APIs · ISSTA 2020 |
Software testing
API testing |
0.4 | 1 | 2019 | RESTler: stateful REST API fuzzing · ICSE 2019 |
Software testing › model-based testing
finite state machine testing |
0.4 | 1 | 2019 | RESTler: stateful REST API fuzzing · ICSE 2019 |
Software testing › fuzzing › API fuzzing
REST API fuzzing |
0.4 | 1 | 2019 | RESTler: stateful REST API fuzzing · ICSE 2019 |
Software testing › fuzzing
state-aware fuzzing |
0.4 | 1 | 2019 | RESTler: stateful REST API fuzzing · ICSE 2019 |
Program analysis
dynamic analysis |
0.2 | 2 | 2010 | Better Debugging via Output Tracing and Callstack-Sensitive Slicing · IEEE Trans. Software Eng. 2010 Dynamic heap type inference for program understanding and debugging · POPL 2007 |
Debugging and program repair
fault localization |
0.1 | 1 | 2010 | Better Debugging via Output Tracing and Callstack-Sensitive Slicing · IEEE Trans. Software Eng. 2010 |
Debugging and program repair
debugging tools |
0.0 | 1 | 2010 | Better Debugging via Output Tracing and Callstack-Sensitive Slicing · IEEE Trans. Software Eng. 2010 |
Methods — techniques the papers use, named apart from their topics
producer-consumer dependency inference · 0.8dynamic feedback analysis · 0.8stateful fuzzing · 0.4search heuristics · 0.4schema-based fuzzing · 0.4response-based value learning · 0.4differential testing · 0.4slice intersection · 0.1output tracing · 0.1symbolic debug information · 0.1physical subtyping · 0.1conservative garbage collection · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | Checking Security Properties of Cloud Service REST APIsabstractMost modern cloud and web services are programmatically accessed through REST APIs. This paper discusses how an attacker might compromise a service by exploiting vulnerabilities in its REST API. We introduce four security rules that capture desirable properties of REST APIs and services. We then show how a stateful REST API fuzzer can be extended with active property checkers that automatically test and detect violations of these rules. We discuss how to implement such checkers in a modular and efficient way. Using these checkers, we found new bugs in several deployed production Azure and Office365 cloud services, and we discuss their security implications. All these bugs have been fixed. Vaggelis Atlidakis, Patrice Godefroid, Marina Polishchuk |
ICST | 3 |
| 2020 | Differential regression testing for REST APIsabstractCloud services are programmatically accessed through REST APIs. Since REST APIs are constantly evolving, an important problem is how to prevent breaking changes of APIs, while supporting several different versions. To find such breaking changes in an automated way, we introduce differential regression testing for REST APIs. Our approach is based on two observations. First, breaking changes in REST APIs involve two software components, namely the client and the service. As such, there are also two types of regressions: regressions in the API specification, i.e., in the contract between the client and the service, and regressions in the service itself, i.e., previously working requests are "broken" in later versions of the service. Finding both kinds of regressions involves testing along two dimensions: when the service changes and when the specification changes. Second, to detect such bugs automatically, we employ differential testing. That is, we compare the behavior of different versions on the same inputs against each other, and find regressions in the observed differences. For generating inputs (sequences of HTTP requests) to services, we use RESTler, a stateful fuzzer for REST APIs. Comparing the outputs (HTTP responses) of a cloud service involves several challenges, like abstracting over minor differences, handling out-of-order requests, and non-determinism. Differential regression testing across 17 different versions of the widely-used Azure networking APIs deployed between 2016 and 2019 detected 14 regressions in total, 5 of those in the official API specifications and 9 regressions in the services themselves. Patrice Godefroid, Daniel Lehmann 0002, Marina Polishchuk |
ISSTA | 3 |
| 2020 | Intelligent REST API data fuzzingabstractThe cloud runs on REST APIs. In this paper, we study how to intelligently generate data payloads embedded in REST API requests in order to find data-processing bugs in cloud services. We discuss how to leverage REST API specifications, which, by definition, contain data schemas for API request bodies. We then propose and evaluate a range of data fuzzing techniques, including structural schema fuzzing rules, various rule combinations, search heuristics, extracting data values from examples included in REST API specifications, and learning data values on-the-fly from previous service responses. After evaluating these techniques, we identify the top-performing combination and use this algorithm to fuzz several Microsoft Azure cloud services. During our experiments, we found 100s of “Internal Server Error” service crashes, which we triaged into 17 unique bugs and reported to Azure developers. All these bugs are reproducible, confirmed, and fixed or in the process of being fixed. Patrice Godefroid, Bo-Yuan Huang 0001, Marina Polishchuk |
ESEC/SIGSOFT FSE | 3 |
| 2019 | RESTler: stateful REST API fuzzingabstractThis paper introduces RESTler, the first stateful REST API fuzzer. RESTler analyzes the API specification of a cloud service and generates sequences of requests that automatically test the service through its API. RESTler generates test sequences by (1) inferring producer-consumer dependencies among request types declared in the specification (e.g., inferring that "a request B should be executed after request A" because B takes as an input a resource-id x produced by A) and by (2) analyzing dynamic feedback from responses observed during prior test executions in order to generate new tests (e.g., learning that "a request C after a request sequence A;B is refused by the service" and therefore avoiding this combination in the future). We present experimental results showing that these two techniques are necessary to thoroughly exercise a service under test while pruning the large search space of possible request sequences. We used RESTler to test GitLab, an open-source Git service, as well as several Microsoft Azure and Office365 cloud services. RESTler found 28 bugs in GitLab and several bugs in each of the Azure and Office365 cloud services tested so far. These bugs have been confirmed and fixed by the service owners. Vaggelis Atlidakis, Patrice Godefroid, Marina Polishchuk |
ICSE | 3 |
| 2010 | Better Debugging via Output Tracing and Callstack-Sensitive SlicingabstractDebugging often involves 1) finding the point of failure (the first statement that produces bad output) and 2) finding and fixing the actual bug. Print statements and debugger break points can help with step 1. Slicing the program back from values used at the point of failure can help with step 2. However, neither approach is ideal: Debuggers and print statements can be clumsy and time-consuming and backward slices can be almost as large as the original program. This paper addresses both problems. We present callstack-sensitive slicing, which reduces slice sizes by leveraging the series of calls active when a program fails. We also show how slice intersections may further reduce slice sizes. We then describe a set of tools that identifies points of failure for programs that produce bad output. Finally, we apply our point-of-failure tools to a suite of buggy programs and evaluate callstack-sensitive slicing and slice intersection as applied to debugging. Callstack-sensitive slicing is very effective: On average, a callstack-sensitive slice is about 0.31 time the size of the corresponding full slice, down to just 0.06 time in the best case. Slice intersection is less impressive, on average, but may sometimes prove useful in practice. Susan Horwitz, Ben Liblit, Marina Polishchuk |
IEEE Trans. Software Eng. | 3 |
| 2007 | Dynamic heap type inference for program understanding and debuggingabstractC programs can be difficult to debug due to lax type enforcement and low-level access to memory. We present a dynamic analysis for C that checks heap snapshots for consistency with program types. Our approach builds on ideas from physical subtyping and conservative garbage collection. We infer a program-defined type for each allocated storage location or identify "untypable" blocks that reveal heap corruption or type safety violations. The analysis exploits symbolic debug information if present, but requires no annotation or recompilation beyond a list of defined program types and allocated heap blocks. We have integrated our analysis into the GNU Debugger (gdb), and describe our initial experience using this tool with several small to medium-sized programs. Marina Polishchuk, Ben Liblit, Chloë W. Schulze |
POPL | 1 |
| 2006 | Path Optimization in Programs and Its Application to Debugging
Akash Lal, Junghee Lim, Marina Polishchuk, Ben Liblit |
ESOP | 3 |