# 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:
| Technology | Specification |
| Connected Limited Device Configuration (CLDC 1.0 & 1.1.1) | JSRs 30,139 |
| Personal Digital Assistant (PDA) optional packages | JSR 75 |
| Java APIs for Object Exchange (OBEX) and Bluetooth (1.0 & 1.1.1) | JSR 82 |
| Mobile Information Device Profile (MIDP 1.0 & 2.0 and 2.1) | JSRs 37,118 |
| Mobile Media API (MMAPI 1.0 and 1.1) | JSR 135 |
| Web Services API (WSA), includes JAXP and JAX-RPC | JSR 172 |
| Security and Trust Services API (SATSA 1.0.1) | JSR 177 |
| Location API (LAPI 1.0.1 & 2.0) | JSR 179,293 |
| Session Initiation Protocol (SIP 1.0 & 1.1 & 1.2) | JSR 180 |
| Mobile 3D Graphics API (M3G 1.0 & 1.1) | JSR 184 |
| Java Technology for the Wireless Industry (JTWI) | JSR 185 |
| Wireless Messaging API (WMA 1.0 & 1.1 & 2.0) | JSRs 120,205 |
| Content Handler API (CHAPI 1.0.1) | JSR 211 |
| Scalable Vector Graphics (SVG 1.0 & 1.1) extension to 2D | JSR 226 |
| Payment API (PAPI 1.1) | JSR 229 |
| Advanced Multimedia Supplement (AMMS 1.1) | JSR 234 |
| Internationalization (Mobile I18N) | JSR 238 |
| Open GL ES (1.0.1) | JSR 239 |
| Mobile Service Architecture (MSA 1.1) | JSR 248 |
| Mobile Sensor API (MSAPI 1.2) | JSR 256 |
| Contactless Communication API 1.1 | JSR 257 |
| Mobile Broadcast Service API for Handheld Terminals | JSR 272 |
| XML API | JSR 280 |
| IMS Services API 1.1 | JSR 281 |
| Java Language and XML User Interface Markup Integration | JSR 290 |
(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.