日本語

Specification and Test Lifecycles

By Oli Studholme

iA, HTML5 Doctor

Specifications

Why specs?

Interoperability

Without this we’re screwed. Remember the browser wars

Where do specs come from?

All three groups should be involved in a spec’s development

Phases of spec process

  1. Editor’s Draft (ED)
  2. Working Draft (WD)
  3. Last Call Working Draft (LC, LCWD)
  4. Candidate Recommendation (CR)
  5. Proposed Recommendation (PR)
  6. Recommendation (REC)

(Ref)

Phases of spec process

Recommendation = Specification = Standard

Editor’s Draft (ED)

→ Exploring

Working Draft (WD)

→ Design phase

Last Call Working Draft (LC, LCWD)

→ Transition

Candidate Recommendation (CR)

→ Test, implement, refine

Proposed Recommendation (PR)

This requires:

→ Transition

Recommendation (REC)

→ Maintenance

Spec process overview

Spec process overview

Spec process overview

Spec process overview

http://www.w3.org/TR/…

TR = Trash

Beware of stale specs!

Three basic stages

WHATWG “living standard”

“Living standard” means everything happens in one document: http://whatwg.org/C/

→ CSSWG equivalent is http://dev.w3.org/csswg/

WHATWG doesn’t make separate versions of a spec based on those stages. No confusion about which version to look at.

WHATWG “living standard”

  1. Idea; yet to be specified
  2. First draft
  3. Working draft
  4. Last call for comments
  5. Awaiting implementation feedback
  6. Implemented and widely deployed

(Ref)

However, WHATWG follows a similar process, just on a per-feature level, and all in the same document.

Actual process

Example: Flexbox

  • : WD box
  • : WD box
  • : WD box
  • : FPWD box
  • : WD flexbox
  • : WD flexbox
  • : WD flexbox
  • : LCWD flex
  • : CR flex
  • : ED flex
  • ↑ ED is the most up-to-date!

Example: Flexbox

CR is not the most recent

WD is completely different

Don’t forget “TR = Trash”!

→ Talk about how ED/WD is like the develop branch of a repo, with CR like a release branch and REC like a tag. The most up-to-date version is develop.

Tests

Spec test history

Why tests?

Test life cycle

What’s a good test?

What happens if there are not enough tests?

Lack of tests example

CSS3 Transitions vs Rodney Rehm

Rodney turned over the stone of CSS Transitions and Animations, and found a mass of browser bugs and inconsistencies.

His article and tests have led to bug reports and proposed spec improvements.

Lack of tests example

CSS3 Transitions: Thank God We Have A Specification!” by Rodney Rehm

We need your help!

Why help?

The main reason for me is interoperability:

What now?

→ Move the Web Forward http://www.movethewebforward.org/

Save the Web,
Write Some Tests!

Let’s show our ♡ and help make the web even better!

Spec links

Spec links

Test links