The JCK 6b is a test suite and a set of tools used to certify that a Java platform implementation conforms to the applicable Java platform specifications and to Sun's reference implementations. The end result is a Java platform implementation certified to bear the Java CompatibleTM logo. The test suites exercise assertions described in the specifications and implemented in the JDKTM software. Tests run on any Java platform implementation, from powerful servers to small hand-held devices. JCK 6b uses the JavaTest harness and test suite management tools.
1.1 Conformance Defined
Conformance testing differs from traditional product testing in a number of ways. Following are some of the features and areas of the Java platform on which conformance testing focuses:
Conformance test development for a given feature relies on a complete specification and reference implementation for that feature. Conformance testing is not primarily concerned with robustness, performance, or ease of use. In fact, using the JCK 6b test suite in repeated test runs as is typically done in product testing is time consuming for certain parts of the suite.
While JCK 6b is called a “compatibility test suite,” it really tests Java platform implementation conformance of the applicable Java platform specifications with Sun's reference implementation. Conformance testing is a means of ensuring correctness, completeness, and consistency across all Java platform implementations. These three attributes are necessary for the Java platform to be successful.
1.2 Why Conformance Is Important
Java platform conformance is important to different groups involved with Java technologies for different reasons. Conformance testing is used by Sun to ensure that the Java platform does not become fragmented as it is ported to different operating systems and hardware environments (such as Microsoft 2000 and XP (Win32) and Solaris platform). Conformance testing benefits developers working in the Java programming language, allowing them to write applications once and to deploy them across heterogeneous computing environments without porting. Conformance testing allows application users to obtain applications from disparate sources and deploy them with confidence. Conformance testing benefits Java platform implementors by ensuring a level playing field for all Java platform ports.
1.3 Learning Curve
Conformance testing, just as with many other software testing tasks, is an iterative process. You must run JCK 6b many times in the process of certifying a Java platform port. The learning curve for the JCK is somewhat steep because it is a complex test suite. JCK 6b test tools and test suite are complex because they must perform the following functions:
1.4 About the Tests
All tests in JCK 6b are based on the written specifications for the Java platform and tested against Sun's reference implementations. Any test that is not specification based, or is vaguely defined by the specification, can be appealed and might be excluded. Any test that is believed to be implementation dependent (based on a particular thread scheduling model, a particular file system behavior, and so on) can be appealed and might be excluded. See Chapter 2 for a complete discussion of the test appeals process and the exclude list.
Most tests in JCK 6b are self checking. Some tests require tester interaction. Each test returns either a Pass or Fail status. For a given platform to be certified, all of the required tests must have passing results. The definition of required tests change over time and might change from platform to platform. Before your final certification test passes, you must download and use the latest exclude list for JCK 6b.
1.5 Obtaining a Java Compatibility Kit
JCK 6b is available by download from the Java technology licensee web site. The most current exclude lists are also available by download from this site. Contact your Java Licensee Engineering representatives for any other information.