
A Simple and Practical Approach to Unit Testing: The JML and JUnit Way. Coverage-directed Differential Testing of JVM Implementations.
Java reflection class software#
In Proceedings of the 38th International Conference on Software Engineering (ICSE’16). An Empirical Comparison of Compiler Testing Techniques.



We evaluate our technique in 439 input programs. Then, we manually execute some steps to identify underdetermined specifications and to confirm whether a non-conformance candidate is indeed a bug. It automatically creates test cases, and executes them using different JVMs. We also propose a technique to detect underdetermined specifications and non-conformances between the Javadoc and the implementations of the Java Reflection API. To better understand the problem, we analyze test suites of two widely used JVMs, and we conduct a survey with 130 developers who use the Java Reflection API to see whether the Javadoc impacts on their understanding. Moreover, current automatic test suite generators cannot be used to detect them. However, there is limited knowledge on whether Java Reflection API developers are able to systematically reveal i) underdetermined specifications and ii) non-conformances between their implementation and the Javadoc. Developers of widely used Java Virtual Machines (JVMs) implement and test the Java Reflection API based on a Javadoc, which is specified using a natural language.
