Demo Data from EDBT 2026 / reviewers in the wild / expert
Christoffer Quist Adamsen
dblp:165/9632
· DBLP profile ↗
5ranked-venue papers
5as first author
0since 2021 · last 2018
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 5 · 5 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
5 papers |
Program analysis · 32% Software testing · 30% Concurrent programming · 23% | |
| Network and information security
2 papers |
Web and mobile security · 100% |
Topics — the 16 heaviest of 16, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Web and mobile security
web application security |
0.4 | 2 | 2018 | Practical AJAX race detection for JavaScript web applications · ESEC/SIGSOFT FSE 2018 Repairing event race errors by controlling nondeterminism · ICSE 2017 |
Program analysis
dynamic analysis |
0.4 | 2 | 2018 | Practical initialization race detection for JavaScript web applications · Proc. ACM Program. Lang. 2017 Practical AJAX race detection for JavaScript web applications · ESEC/SIGSOFT FSE 2018 |
Program analysis › static analysis
bug detection |
0.3 | 1 | 2018 | Practical AJAX race detection for JavaScript web applications · ESEC/SIGSOFT FSE 2018 |
Concurrent programming › concurrency bug detection
data race detection |
0.3 | 1 | 2018 | Practical AJAX race detection for JavaScript web applications · ESEC/SIGSOFT FSE 2018 |
Debugging and program repair
automated program repair |
0.3 | 1 | 2017 | Repairing event race errors by controlling nondeterminism · ICSE 2017 |
Concurrent programming
concurrency bugs |
0.3 | 1 | 2017 | Repairing event race errors by controlling nondeterminism · ICSE 2017 |
Concurrent programming › concurrency bugs
event races |
0.3 | 1 | 2017 | Repairing event race errors by controlling nondeterminism · ICSE 2017 |
Program analysis › concurrent program analysis
event-race detection |
0.3 | 1 | 2017 | Practical initialization race detection for JavaScript web applications · Proc. ACM Program. Lang. 2017 |
Software testing
web application testing |
0.3 | 1 | 2017 | Practical initialization race detection for JavaScript web applications · Proc. ACM Program. Lang. 2017 |
Programming languages and type systems › type systems
dynamic typing |
0.2 | 1 | 2016 | Analyzing test completeness for dynamic languages · ISSTA 2016 |
Software testing
test coverage |
0.2 | 1 | 2016 | Analyzing test completeness for dynamic languages · ISSTA 2016 |
Program analysis › type analysis
type error detection |
0.2 | 1 | 2016 | Analyzing test completeness for dynamic languages · ISSTA 2016 |
Software testing › mobile application testing
android app testing |
0.2 | 1 | 2015 | Systematic execution of Android test suites in adverse conditions · ISSTA 2015 |
Software testing
mobile application testing |
0.2 | 1 | 2015 | Systematic execution of Android test suites in adverse conditions · ISSTA 2015 |
Software testing › test execution
test suite execution |
0.2 | 1 | 2015 | Systematic execution of Android test suites in adverse conditions · ISSTA 2015 |
Debugging and program repair
fault localization |
0.1 | 1 | 2017 | Practical initialization race detection for JavaScript web applications · Proc. ACM Program. Lang. 2017 |
Methods — techniques the papers use, named apart from their topics
dynamic analysis · 0.9controlled execution · 0.7source code instrumentation · 0.6event scheduling control · 0.6approximate execution · 0.3adverse execution · 0.3call graph inference · 0.2event injection · 0.2end-to-end test suites · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2018 | Practical AJAX race detection for JavaScript web applicationsabstractAsynchronous client-server communication is a common source of errors in JavaScript web applications. Such errors are difficult to detect using ordinary testing because of the nondeterministic scheduling of AJAX events. Existing automated event race detectors are generally too imprecise or too inefficient to be practically useful. To address this problem, we present a new approach based on a lightweight combination of dynamic analysis and controlled execution that directly targets identification of harmful AJAX event races. Christoffer Quist Adamsen, Anders Møller, Saba Alimadadi, Frank Tip |
ESEC/SIGSOFT FSE | 1 |
| 2017 | Repairing event race errors by controlling nondeterminismabstractModern web applications are written in an event-driven style, in which event handlers execute asynchronously in response to user or system events. The nondeterminism arising from this programming style can lead to pernicious errors. Recent work focuses on detecting event races and classifying them as harmful or harmless. However, since modifying the source code to prevent harmful races can be a difficult and error-prone task, it may be preferable to steer away from the bad executions. In this paper, we present a technique for automated repair of event race errors in JavaScript web applications. Our approach relies on an event controller that restricts event handler scheduling in the browser according to a specified repair policy, by intercepting and carefully postponing or discarding selected events. We have implemented the technique in a tool called EventRaceCommander, which relies entirely on source code instrumentation, and evaluated it by repairing more than 100 event race errors that occur in the web applications from the largest 20 of the Fortune 500 companies. Our results show that application-independent repair policies usually suffice to repair event race errors without excessive negative impact on performance or user experience, though application-specific repair policies that target specific event races are sometimes desirable. Christoffer Quist Adamsen, Anders Møller, Rezwana Karim, Manu Sridharan, Frank Tip, Koushik Sen |
ICSE | 1 |
| 2017 | Practical initialization race detection for JavaScript web applicationsabstractEvent races are a common source of subtle errors in JavaScript web applications. Several automated tools for detecting event races have been developed, but experiments show that their accuracy is generally quite low. We present a new approach that focuses on three categories of event race errors that often appear during the initialization phase of web applications: form-input-overwritten errors, late-event-handler-registration errors, and access-before-definition errors. The approach is based on a dynamic analysis that uses a combination of adverse and approximate execution. Among the strengths of the approach are that it does not require browser modifications, expensive model checking, or static analysis. In an evaluation on 100 widely used websites, our tool InitRacer reports 1085 initialization races, while providing informative explanations of their causes and effects. A manual study of 218 of these reports shows that 111 of them lead to uncaught exceptions and at least 47 indicate errors that affect the functionality of the websites. Christoffer Quist Adamsen, Anders Møller, Frank Tip |
Proc. ACM Program. Lang. | 1 |
| 2016 | Analyzing test completeness for dynamic languagesabstractIn dynamically typed programming languages, type errors can occur at runtime. Executing the test suites that often accompany programs may provide some confidence about absence of such errors, but generally without any guarantee. We present a program analysis that can check whether a test suite has sufficient coverage to prove a given type-related property, which is particularly challenging for program code with overloading and value dependent types. The analysis achieves a synergy between scalable static analysis and dynamic analysis that goes beyond what can be accomplished by the static analysis alone. Additionally, the analysis provides a new coverage adequacy metric for the completeness of a test suite regarding a family of type-related properties. Based on an implementation for Dart, we demonstrate how such a hybrid static/dynamic program analysis can be used for measuring the quality of a test suite with respect to showing absence of type errors and inferring sound call graph information, specifically for program code that is difficult to handle by traditional static analysis techniques. Christoffer Quist Adamsen, Gianluca Mezzetti, Anders Møller |
ISSTA | 1 |
| 2015 | Systematic execution of Android test suites in adverse conditionsabstractEvent-driven applications, such as, mobile apps, are difficult to test thoroughly. The application programmers often put significant effort into writing end-to-end test suites. Even though such tests often have high coverage of the source code, we find that they often focus on the expected behavior, not on occurrences of unusual events. On the other hand, automated testing tools may be capable of exploring the state space more systematically, but this is mostly without knowledge of the intended behavior of the individual applications. As a consequence, many programming errors remain unnoticed until they are encountered by the users. We propose a new methodology for testing by leveraging existing test suites such that each test case is systematically exposed to adverse conditions where certain unexpected events may interfere with the execution. In this way, we explore the interesting execution paths and take advantage of the assertions in the manually written test suite, while ensuring that the injected events do not affect the expected outcome. The main challenge that we address is how to accomplish this systematically and efficiently. We have evaluated the approach by implementing a tool, Thor, working on Android. The results on four real-world apps with existing test suites demonstrate that apps are often fragile with respect to certain unexpected events and that our methodology effectively increases the testing quality: Of 507 individual tests, 429 fail when exposed to adverse conditions, which reveals 66 distinct problems that are not detected by ordinary execution of the tests. Christoffer Quist Adamsen, Gianluca Mezzetti, Anders Møller |
ISSTA | 1 |