Title :
Detecting latent cross-platform API violations
Author :
Jeff Rasley;Eleni Gessiou;Tony Ohmann;Yuriy Brun;Shriram Krishnamurthi;Justin Cappos
Author_Institution :
Brown University, Providence, RI USA 02912
Abstract :
Many APIs enable cross-platform system development by abstracting over the details of a platform, allowing application developers to write one implementation that will run on a wide variety of platforms. Unfortunately, subtle differences in the behavior of the underlying platforms make cross-platform behavior difficult to achieve. As a result, applications using these APIs can be plagued by bugs difficult to observe before deployment. These portability bugs can be particularly difficult to diagnose and fix because they arise from the API implementation, the operating system, or hardware, rather than application code. This paper describes CheckAPI, a technique for detecting violations of cross-platform portability. CheckAPI compares an application´s interactions with the API implementation to its interactions with a partial specification-based API implementation, and does so efficiently enough to be used in real production systems and at runtime. CheckAPI finds latent errors that escape pre-release testing. This paper discusses the subtleties of different kinds of API calls and strategies for effectively producing the partial implementations. Validating CheckAPI on JavaScript, the Seattle project´s Repy VM, and POSIX detects dozens of violations that are confirmed bugs in widely-used software.
Keywords :
"Libraries","Testing","Sockets","Computer bugs","Operating systems","Runtime"
Conference_Titel :
Software Reliability Engineering (ISSRE), 2015 IEEE 26th International Symposium on
DOI :
10.1109/ISSRE.2015.7381841