NonDex: A tool for detecting and debugging wrong assumptions on Java api specifications

Alex Gyori, Ben Lambeth, August Shi, Owolabi Legunsen, Darko Marinov

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

Abstract

We present NonDex, a tool for detecting and debugging wrong assumptions on Java APIs. Some APIs have underde-termined specifications to allow implementations to achieve different goals, e.g., to optimize performance. When clients of such APIs assume stronger-Than-specified guarantees, the resulting client code can fail. For example, HashSet's iter-ation order is underdetermined, and code assuming some implementation-specific iteration order can fail. NonDex helps to proactively detect and debug such wrong assump-tions. NonDex performs detection by randomly exploring different behaviors of underdetermined APIs during test ex-ecution. When a test fails during exploration, NonDex searches for the invocation instance of the API that caused the failure. NonDex is open source, well-integrated with Maven, and also runs from the command line. During our experiments with the NonDex Maven plugin, we detected 21 new bugs in eight Java projects from GitHub, and, using the debugging feature of NonDex, we identifed the un-derlying wrong assumptions for these 21 new bugs and 54 previously detected bugs. We opened 13 pull requests; de-velopers already accepted 12, and one project changed the continuous-integration configuration to run NonDex on ev-ery push.

Original languageEnglish (US)
Title of host publicationFSE 2016 - Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering
EditorsZhendong Su, Thomas Zimmermann, Jane Cleland-Huang
PublisherAssociation for Computing Machinery
Pages993-997
Number of pages5
ISBN (Electronic)9781450342186
DOIs
StatePublished - Nov 1 2016
Event24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2016 - Seattle, United States
Duration: Nov 13 2016Nov 18 2016

Publication series

NameProceedings of the ACM SIGSOFT Symposium on the Foundations of Software Engineering
Volume13-18-November-2016

Other

Other24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2016
Country/TerritoryUnited States
CitySeattle
Period11/13/1611/18/16

Keywords

  • Aky tests
  • NonDex
  • Underdetermined API

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'NonDex: A tool for detecting and debugging wrong assumptions on Java api specifications'. Together they form a unique fingerprint.

Cite this