Checking temporal patterns of API usage without code execution
In theory, Application Programming Interfaces (APIs) allow developers to write client code that reuses library code without needing to know its internals.
In practice, correctly using APIs requires respecting explicit and implicit constraints and usage temporal patterns. Ignoring such patterns could lead to errors and design flaws. These often cannot be detected prior to integration and system testing. We propose the Temporal Usage PAttern Checker (Tupac) for APIs, an interprocedural static analysis approach that can verify that client code conforms to temporal API usage patterns as it is being developed. We evaluated the effectiveness of our approach on 4 projects with 4 different APIs. Our evaluation shows that Tupac allows to accurately check the conformance of the client code to the patterns in under 1 second. This means that Tupac can realistically be deployed in an IDE without stalling the regular coding rhythm.
Fri 21 MayDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
15:30 - 17:00 | |||
15:30 30mTalk | Runtime Verification Under Access Restrictions FormaliSE 2021 Rania Taleb PhD student, Raphael Khoury Université du Québec à Chicoutimi, Canada, Sylvain Hallé Université du Québec à Chicoutimi Pre-print Media Attached | ||
16:00 30mTalk | Quantifying Faultiness: What Does It Mean to Have N Faults FormaliSE 2021 Media Attached | ||
16:30 30mTalk | Checking temporal patterns of API usage without code execution FormaliSE 2021 Erick Raelijohn University of Montreal, Michalis Famelis Université de Montréal, Houari Sahraoui Université de Montréal Media Attached |
Go directly to this room on Clowdr