graphic with four colored squares
Cover page images (keys)

Testing

Philippe Le Hégaret,
plh@w3.org

Interaction Domain Leader,
World Wide Web Consortium

Before we start: Logistics

Why Testing?

Testing at W3C

Currently, from the W3C Process:

Shown that each feature of the technical report has been implemented. Preferably, the Working Group SHOULD be able to demonstrate two interoperable implementations of each feature.

If the Director believes that immediate Advisory Committee review is critical to the success of a technical report, the Director MAY accept to Call for Review of a Proposed Recommendation even without adequate implementation experience;

Implementation of each feature?

Groups usually test:

Minimum to declare victory

Groups usually don't:

HTML5 CR exit criteria

Interoperable

Qualitatively interoperable at a judgment level, not necessarily for every spec assertion. A test suite may be used as guidance for the qualitative decision.

Judgment level

For features that are well known to be widely implemented and deployed, and where implementations are believed to match the specification, the Working Group will assume effective real-world interoperability without testing.

Mobile and TV Profile: Common parts

We have gaps in tests

No test suites:

We lack tooling

(depending on the groups)

And we lack consistency between the groups

So, what do we want?

Terminology

test framework
the combination of the test runner and the repository of test suites and produce test reports
test runner
program which is able to run multiple, potentially nested test suites and collect the results
test suite
collection of test pages
test page
single HTML document that contain one or more tests.
feature
a distinguishing characteristic of a specification
test
verify one or more assertions to test a feature
assertion
smallest building block of testing
testharness.js
W3C test page runner for Javascript tests

Level of testing

  1. Unit Testing
    1. Mininum to declare victory (aka Minimum)
    2. Test corner and error cases (aka Full)
  2. Integration testing
    1. Combine specifications (aka Combination)
    2. Check use cases (aka Use Cases)
  3. Regression testing
    • Software defects (aka Regression)

Increase test coverage?

Vendor and crowdsourcing contributions

Despite the appreciated efforts:

Subcontracts

Specifications: Where do we start?

Better tools?

  1. Test management system
  2. Test Framework

Test management system

Ensure proper documentation

Make it consistent among groups

Test framework

Is it important for W3C to:

  1. provide a test framework?
  2. produce test reports using this framework?

Better documentation?

Agenda

  1. Introduction
  2. Testing and accessibility
  3. Proposals from W3C Members
  4. Goals and requirements
  5. Priorities
  6. Strategy for Success

So,