作者: Alex Gyori , Ben Lambeth , August Shi , Owolabi Legunsen , Darko Marinov
关键词: Java 、 Line (text file) 、 Debugging 、 Code (cryptography) 、 Feature (machine learning) 、 Underdetermined system 、 Plug-in 、 Implementation 、 Computer science 、 Operating system 、 Programming language
摘要: We present NonDex, a tool for detecting and debugging wrong assumptions on Java APIs. Some APIs have underdetermined specifications to allow implementations achieve different goals, e.g., optimize performance. When clients of such assume stronger-than-specified guarantees, the resulting client code can fail. For example, HashSet’s iteration order is underdetermined, assuming some implementation-specific NonDex helps proactively detect debug assumptions. performs detection by randomly exploring behaviors during test execution. fails exploration, searches invocation instance API that caused failure. open source, well-integrated with Maven, also runs from command line. During our experiments Maven plugin, we detected 21 new bugs in eight projects GitHub, and, using feature identified underlying these 54 previously bugs. opened 13 pull requests; developers already accepted 12, one project changed continuous-integration configuration run every push. The demo video at: https://youtu.be/h3a9ONkC59c