Java Device Test Suite

Sun's Java Device Test Suite (JDTS) is the de facto industry-standard tool for assessing the quality of Java Platform, Micro Edition (Java ME platform) implementations. This tool performs quality testing for devices using the Java ME platform. A feature that distinguishes the Java Device Test Suite from Technology Compatibility Kit (TCKs) is its focus on an implementation's quality instead of an implementation's specification compliance.

The Java Device Test Suite is an extensible set of test packs, a shared management facility, and a distributed test execution harness that can be used to assess the quality of any device that implements a compatible combination of the Java ME technologies, including the following:

(please look description of technologies on jcp.org)

Categories
The Java Device Test Suite's tests can be divided into three main categories:


 * Benchmark tests compare the performance of a device with a reference standard.
 * Readiness tests assess a device's ability to run tests and discover the application programming interfaces (APIs) that a device supports.
 * General tests (divided by test packs)

Tests in test packs can be divided in several group by tested subsystems:


 * Over-the-air (OTA) tests verify that a device can implement application life cycle operations and can communicate with a provisioning server.
 * Security tests verify the correct implementation model of certificates, permissions, and policies.
 * Network tests verify implementation of different protocols: HTTP, HTTPS, Socket, UDP, SMS, Bluetooth and so on. Several test sets verify channel between two implementations (tests with partner).
 * GUI tests verify implementation graphical system for different objects
 * Virtual machine tests (includes JASM tests) verify implementation of the VM core.

The Java Device Test Suite has approximately 11,000 tests that can be extended with new tests written by Sun engineers or by others, including users of the test suite. Users can choose to run any combination of tests, according to the features supported by a device and available resources, and make use of framework features:


 * Local application servers. Testers can install dedicated local application servers (relays) on the computers that host their harnesses. This configuration can be used to test devices that connect to the Relay host by a serial cable (local link). A tester can switch a harness between a local relay and the standard shared relay.
 * Feature-based test selection and reporting – Tests are alternatively grouped by their correspondence to important device features, such as multimedia MP3 playback, for example. A user can easily select all tests that exercise this feature, and, after a test run, a user can easily see how many tests related to MP3 playback failed.
 * Relevance (configuration based) filtering. Tests that are not applicable for execution according to current device configuration (device template)are automatically filtered out of the test run.
 * Test selection and reporting by failure severity. When testing time is limited, subsets of tests can be selected based on their importance. Test failures can be similarly analyzed by test importance.
 * Multiple configurable emulators. Users can add device emulators and switch them between normal and debug modes.
 * Results Database Services – Storage for test results with history data, and web-based UI for querying and reporting results
 * Device-specific Template Generation. Readiness tests automatically discover device capabilities and user can generate configuration templates based on readiness results
 * Bluetooth Data Transfer Channel. Device can send test logs and results by Bluetooth
 * Test Run Automator – A test automation tool to allow for running interactive tests without user intervention, a stand alone tool stores user actions and device responses, then repeats them automatically and compares results.
 * Custom Test Libraries – Allows developers to inject a private Java library into the test bundle.
 * Template Manager – A tool that helps to organize templates in hierarchies and perform synchronization of updated values from parent to children. Portable Templates can be easily exchanged between different JDTS systems.