@inproceedings{42b9f1a81d974cac8f2dd40a28137334,
title = "NonDex: A tool for detecting and debugging wrong assumptions on Java api specifications",
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.",
keywords = "Aky tests, NonDex, Underdetermined API",
author = "Alex Gyori and Ben Lambeth and August Shi and Owolabi Legunsen and Darko Marinov",
year = "2016",
month = nov,
day = "1",
doi = "10.1145/2950290.2983932",
language = "English (US)",
series = "Proceedings of the ACM SIGSOFT Symposium on the Foundations of Software Engineering",
publisher = "Association for Computing Machinery",
pages = "993--997",
editor = "Zhendong Su and Thomas Zimmermann and Jane Cleland-Huang",
booktitle = "FSE 2016 - Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering",
address = "United States",
note = "24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2016 ; Conference date: 13-11-2016 Through 18-11-2016",
}