National Institute of Standards and Technology

DOM Conformance Test Suites Process Document

27 June 2002

This version:
Latest version:
Previous version:
Dimitris Dimitriadis, DOM Working Group invited expert


This is the 15 January 2002 DOM Conformance Test Suites Process Document.

Comments on this document are invited and are to be sent to the DOM TS mailing list www-dom-ts@w3.org. An archive is available at http://lists.w3.org/Archives/Public/www-dom-ts.

This document has been produced as part of the W3C DOM Activity. The authors of this document are the DOM WG members.

Table of contents

1. Introduction

There is an agreed upon need to produce a highly comprehensive conformance test suite (DOM TS) for each of the DOM Level specifications so far specified and also for DOM Level 3. In order to accomplish this, it has been agreed between W3C and NIST that these test suites be jointly produced. W3C will be responsible for coordinating these issues. NIST has agreed to allocate resources to update their current test suite to full Level 1 specification support, taking into account the alterations needed as indicated below. The test suites will be jointly developed by these two parties and will take the form of a public framework as explained below.

A test suite for DOM Level 2 will at a later stage be produced, building on the test suite for Level 1 and drawing on the experiences made while producing it, as well as experience drawn from related work in this area. It is understood that the Level 2 specification is quite large and covers too big an area for one single person to be able to write the entire test suite. For this reason, among others, but also aiming at wide-spread acceptance as well as contributions both from individuals and companies, it has been decided that the test suite be publicly developed, and the DOM WG suggests the design of both this test suite and the one for Level 1 be as indicated below.

As far as the test suite for Level 3 is concerned, it has been decided that it initially takes on the form of a small feature test suite, not complete, and advances to more comprehensive and public status similar to the test suites on level 1 and 2 once the DOM Level 3 WD reaches CR status.

There is a technical document that in detail explains the technical design of the test suite framework; however it is appreciated that these questions will be of interested to the community and in order to allow for input, it has been decided to let this issue take top priority once the interested parties have gathered to start working with the test suite.

For more information on the current status of the DOM TS, please visit the DOM TS page, where you will find additional information as well as pointers to relevant resources.

2. Requirements

  1. The DOM test suites should be developed in a public framework. The development of this framework itself is a central area of interest, in addition to the DOM TS in general. The DOM WG welcomes the participation of interested parties in developing the test suites. However, there are various issues, mainly procedural in nature, that need to be resolved.
  2. The DOM test suites are intended to be used as a tool to aid implementors in developing DOM implementations. Validation and certification of these implementations are outside the scope of this work. The tests and test suites will be provided for information and help only. However, we intend to produce as comprehensive, functional and general tests as possible, and this should be the overall goal in designing and implementing the DOM TS.
  3. The test suites could be hosted on the W3C site once developed. Where the test suite should reside while being developed is still being discussed. They could also after development be mirrored at various sites in order to simplify access and enhance availability to the community.

3. Parties involved

The DOM TS for all levels of the DOM will be produced in a public framework with contributions from developers and companies in the community. The DOM TS will be coordinated and supervised by the DOM WG and NIST. The representatives will use resources from their organisations as well as invite individuals and companies (through representatives) to allow for a larger number of people to get involved.

4. Procedural Issues

Since this will be a public framework, there are a series of procedural issues that need to be resolved. There is a need to have a stable mechanism for submitting tests to the test suite. It's been proposed that we look into a multi-level process (with the possibility of tests passing between the different levels for reasons explained below). The points below assume that there is a technically stable mechanism for submitting tests, saving information about those tests, version handling and so forth.

The DOM TS editor will maintain a list of tests needed that will be available at the DOM TS development web site. It is presupposed that developers or organizations submitting tests have done a sanity check with regard to the functionality of the tests by referring to the relevant specification.


The main channel of communication for the DOM TS will be the DOM TS mailing list www-dom-ts@w3.org.

Submitting tests (or whole test suites)

The main channel of communication for submitting tests to the DOM TS will be the DOM TS Submission mailing list www-dom-ts-submission@w3.org. An archive is available at http://lists.w3.org/Archives/Public/www-dom-ts-submission.

In order to simplify for individuals and companies the production of the test suite and, if they so wish, contribute with tests of their own, we propose the following process for submitting tests:

  1. The test, or series of tests, get submitted to the framework. Submitter should also send a notification to the mailing list that will be set up for the DOM TS to indicate that he/she has submitted a test to the DOM TS framework. Submitting parties are also encouraged to check the tests they are submitting against the list of tests needed.
  2. It is acknowledged (presumably by the moderators/reviewers of the test suite) that the test has been received. This should be done via email directly to the submitter, and a copy should be sent to the mailing list. The test receives the "received" status.
  3. The test together with the necessary documentation is saved for future reference.

Receiving and reviewing tests

The test suite's moderators investigate the test given the following criteria. At each point is also indicated possible reasons for not accepting to publish the particular test.

  1. Relevance for the particular implementation of DOM (the level should be indicated in the documentation). It can here be decided that the particular test is irrelevant to the TS since it tests a feature that is not in the specification.
  2. Part of the specification being tested. If there are other, previously submitted tests that are functionally equivalent and test the same part of the specification, this test should either be kept for archive purposes but not published if it is functionally equivalent to a previously submitted test, or take the previously submitted test's place in the test suite.
  3. Quality of code and documentation (the code should be stable and not contain any errors, the documentation should be written in accordance with the XML file in which specification, functionality and possible scenarios are documented).
  4. Scenarios that underly the particular test layout and its intended scope.
  5. Development guide for the DOM TS, once developed. The existence of these guidelines will be communicated through the DOM TS mailing list.

If the test is decided to be stable, which means that it is relevant, that it indeed tests a particular identifiable part of the specification, and that it is not wrongly written, it becomes "Reviewed and Stable" and receives this status.

Tests that at this or some other stage are judged not to be appropriate for publishing receive the "Inappropriate" status. These tests should be kept for archive purposes.

Reevaluating tests

In cases where tests have received the "Reviewed and Stable" status but are found to be erroneous, the following procedure is proposed:

If it is found that a test that has been called "Reviewed and Stable" actually is not stable (if the tests are not correctly written or for any other reason), this particular test gets submitted to the DOM WG for further consideration. Possible outcomes of this stage is that the test, after consideration, is judged to be

  1. Correct, in which case it goes back to "Reviewed and Stable" status
  2. In need of further investigation and possibly rewriting (after which it receives the "Reviewed and Stable" status)
  3. Inappropriate for publication according to the previous point.
  4. If a test is judged to be correct after consideration, it keeps the "Reviewed and Stable" status.
  5. If a test as a result of this re-evaluation is judged to be inappropriate, it receives the "Inappropriate" status.


We propose that each test or whole suite comes fully documented with regard to the following (there will be an XML wrapper for this kind of information available from the TS website):

  1. Name of submitter, date of creation, and, if appropriate, company.
  2. Suggested ID for the test (this may be changed by the moderator to comply with the identification mechanism of the technical platform).
  3. Part of specification being tested. If the test is written to test ie. The Node interface in DOM Level 1, this should be suitably indicated, either by giving a link to the relevant part of the specification (in this case http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core.html#ID-1950641247), or by indicating, in text, that it is this part of the specification that is being tested.
  4. If appropriate, the scenario which has preceded the writing of the test. This could take the form of a textual description, eg. "This test investigates whether a user of XX can use a feature such that so-and-so happens on mouse over".

Status of the test suite according to the above

  1. The DOM Test Suites should consist only of submitted, reviewed and stable tests.
  2. The DOM TS for all levels will also consist of documentation on the tests it contains, scenarios that have served as a base for them, commented code and possibly comments from the editors.

It is proposed that the W3C DOM WG representative act as moderator and controller for incoming tests. The DOM TS moderator is choeon by the DOM WG. All tests should be kept for archive purposes, whether they get published or not.

Versioning of Test Suites

The DOM TS will be a publically developed suite of tests. As such, it seems plausible to assume that there will be some changes and revisions. In order to avoid confusion as to what test are being run, the DOM TS framework will consist of different versions of the TS. The DOM TS moderator will be responsible for versioning and proper inclusion of tests in the various versions of the DOM TS. DOM TS 1.1, for example, is different from DOM TS 1.0, and will be properly documented with regard to what has been changed (added, deleted, or otherwise altered).

5. Conformance

The DOM TS aims, as explained above, at helping implementors to write applications that support the DOM specifications. In no way are these conformance tests in the sense of providing companies or institutions with certification of DOM support. The only claim that could be made is that a particular implementation is conformant to a particular version of the DOM TS. There are two cases of results of running the test suite:

  1. The implementation fails to pass the test suite. In this case it can be asserted that the implementation fails to meet the relevant DOM specification.
  2. The implementation passes the test suite. In this case all that can be asserted is that the implementation is conformant to that particular version of the DOM TS.

6. Ownership

The DOM TS will use the following grant of license:

Grant of License for Contributions under the W3C Software License

The Contributor hereby grants to the W3C, a perpetual, nonexclusive, royalty-free, world-wide right and license under any Contributor copyrights in this contribution to copy, publish and distribute the contribution under the W3C Software License (19980720), as well as a right and license of the same scope to any derivative works prepared by the W3C and based on, or incorporating all or part of the contribution.

The Contributor states, to the best of her/his knowledge, that she/he, or the company she/he represents, has all rights necessary to contribute the Materials in a way that does not violate copyright, and trademark rights; contractual obligations, or libel regulations.

The Contributor states to the best of his/her knowledge that use of her/his contribution would not infringe any of his/her patent rights, patent rights of the company she/he represents, or third party patent rights but does not warrant that she/he or the company she/he represents, has performed a search of patents and/or patent applications owned by her/him, the company she/he represents, or any third party.

Contributor further agrees that any derivative works of this contribution prepared by the W3C shalll be solely owned by the W3C. The Contributor agrees that all contributed Materials when published or otherwise distributed by the W3C will be governed by the W3C Software License (19980720).

W3C will retain attribution of authorship to the Contributor. Whenever modifications are made to the Materials, this fact, and the nature of the modifications, will be clearly signalled in the distributed version thereof. The W3C makes no a-priori commitment to support or distribute contributions.

7. Timeframe

Preliminary dates: