This document is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License
  Previous Contents Index Next
Chapter 1


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:

  • Features that are likely to differ across implementations

  • Features that rely on hardware or operating system-specific behavior

  • Features that are difficult to port

  • Features that either mask or abstract hardware behavior

  • Features that either mask or abstract operating system behavior

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:

  • Work correctly on all platforms that support porting of the Java programming language

  • Work correctly in a number of different environments, such as applets applications, and servers without graphical user interfaces (GUIs)

  • Work correctly on a number of different types of systems, such as palm-top systems, network computers, desktop systems, workstations, and servers

  • Work in all test environments without being ported to any of them

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.

Previous Contents Index Next
Company Info Contact Terms of Use Privacy Copyright 1994-2008 Sun Microsystems, Inc.