Detecting latent cross-platform API violations

Jeff Rasley, Eleni Gessiou, Tony Ohmann, Yuriy Brun, Shriram Krishnamurthi, Justin Cappos

    Research output: Chapter in Book/Report/Conference proceedingConference contribution

    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.

    Original languageEnglish (US)
    Title of host publication2015 IEEE 26th International Symposium on Software Reliability Engineering, ISSRE 2015
    PublisherInstitute of Electrical and Electronics Engineers Inc.
    Pages484-495
    Number of pages12
    ISBN (Electronic)9781509004065
    DOIs
    StatePublished - Jan 13 2016
    Event26th IEEE International Symposium on Software Reliability Engineering, ISSRE 2015 - Gaithersbury, United States
    Duration: Nov 2 2015Nov 5 2015

    Publication series

    Name2015 IEEE 26th International Symposium on Software Reliability Engineering, ISSRE 2015

    Other

    Other26th IEEE International Symposium on Software Reliability Engineering, ISSRE 2015
    Country/TerritoryUnited States
    CityGaithersbury
    Period11/2/1511/5/15

    ASJC Scopus subject areas

    • Software
    • Safety, Risk, Reliability and Quality

    Fingerprint

    Dive into the research topics of 'Detecting latent cross-platform API violations'. Together they form a unique fingerprint.

    Cite this