Effective and Efficient API Misuse Detection via Exception Propagation and Search-Based Testing

Conference Paper (2019)
Author(s)

Maria Kechagia (University College London)

Xavier Devroey (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Annibale Panichella (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Georgios Gousios (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Arie van Deursen (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Research Group
Software Engineering
DOI related publication
https://doi.org/10.1145/3293882.3330552 Final published version
More Info
expand_more
Publication Year
2019
Language
English
Research Group
Software Engineering
Pages (from-to)
192-203
ISBN (electronic)
978-1-4503-6224-5
Event
ISSTA 2019: 28th ACM SIGSOFT International Symposium on Software Testing and Analysis (2019-07-15 - 2019-07-19), Beijing, China
Downloads counter
162
Collections
Institutional Repository
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

Application Programming Interfaces (APIs) typically come with (implicit) usage constraints. The violations of these constraints (API misuses) can lead to software crashes. Even though there are several tools that can detect API misuses, most of them suffer from a very high rate of false positives. We introduce Catcher, a novel API misuse detection approach that combines static exception propagation analysis with automatic search-based test case generation to effectively and efficiently pinpoint crash-prone API misuses in client applications. We validate Catcher against 21 Java applications, targeting misuses of the Java platform’s API. Our results indicate that Catcher is able to generate test cases that uncover 243 (unique) API misuses that result in crashes. Our empirical evaluation shows that Catcher can detect a large number of misuses (77 cases) that would remain undetected by the traditional coverage-based test case generator EvoSuite. Additionally, on average, Catcher is eight times faster than EvoSuite in generating test cases for the identified misuses. Finally, we find that the majority of the exceptions triggered by Catcher are unexpected to developers, i.e., not only unhandled in the source code but also not listed in the documentation of the client applications.

Files

Catcher.pdf
(pdf | 1.03 Mb)
License info not available