Table of Contents

Design Notes for a Test Review System

See also outline of a CSS test suite review system and Review Process Documentation.

Expected Workflow

Workflow for Test Author

  1. Author identifies an assertion to test
  2. Author designs and creates tests and, when possible, checks that the test behaves as expected in at least one implementation.
  3. Author submits tests
  4. Author gets back automated report of what's wrong
  5. Author fixes tests to match format
  6. Author resubmits tests, they pass
  7. Author waits for review
  8. Author receives review comments on 6/9 tests
  9. Author fixes tests
  10. Author resubmits tests
  11. Author receives acknowledgement that tests have been accepted and checked in

Workflow for Reviewer

  1. If the Reviewer has 'Owner' or 'Peer' status (see review), the Reviewer searches the submittal data base for tests in the 'Accepted' state; if not, or if no 'Accepted' tests were found, Reviewer searches the submittal data base for tests in the 'Resubmitted' or 'Submitted' state and selects a test to review. (He or she cannot review his or her own tests.)
  2. Reviewer looks for duplicate tests in the set of 'Approved', 'Accepted', and checked-in tests; if found, reject the lesser-quality test as 'Duplicate', or suggest merging the two tests.
  3. Reviewer checks that the test assertion (whether explicit or implied) is justified by the specification.
    • If the assertion regards functionality specified outside the css module indicated by the 'help' metadata links, reject as 'OutOfScope'.
    • If it addresses an ambiguity or open issue within the spec, set status to 'SpecIssue' and ensure that issue has been posted to www-style@w3.org or public-css-testsuite@w3.org and is being tracked appropriately.
  4. Reviewer checks the test for correctness. (See the CSS Test Review Checklist for details.) If no problems are found, set the status to 'Accepted'.
  5. Otherwise, Reviewer enters comments explaining what changes need to be made and sets the status to 'NeedsWork'. (If the Reviewer has the Author's permission to make changes directly, the Reviewer may also change the test as necessary. In this case, the status is set to 'Resubmitted' and someone else, possibly the Author, must review.)

Workflow for Approver

  1. Approver searches the submission database for tests in the 'Accepted' state.
  2. Approver either accepts Reviewer's judgement and marks test as 'Approved'–or follows workflow as for Reviewer, above, except passing review results in 'Approved'.
  3. Approver may suggest a new filename for checkin.

Workflow for CVS Monkey

  1. If the test is now in the 'Approved' state, anyone with write access may now check it into the W3C CSS Test database, renaming the file as appropriate, and setting the status to 'CheckedIn'.

Feature Requirements

Backend Design Notes

A major design principle is to integrate with Subversion so that changes in SVN get automatically reported to the review system. Another is to take advantage of the tests' metadata so that as much information as possible will be automatically pulled from the test source.

Database Tables

test suite
  suite short name
  suite full name
  url prefix

tests
  id	#
  testID	(filename without extension) - should be unique (error if not)
  path in svn 
  metadata	(from test file)
    author(s)        name + url
    help link(s)     url to spec
    title            string (unique)
    assertion        string (unique)
    flags            tokens
  status           - add "invalid (wrong)"
  checked-in       binary flag
  current revision?
  owner	(username) initial value is from initial checkin

comments
  id	(of test)
  date
  comment
  commenter	(username)
  validation script result	(enum)
  revision at time of comment
  status change
  commenter name (if anon user)

svn status		(tracking what happened in svn)
  id	
  committer	svn username
  rev
  date
  comment
  commit type	(update, copy, delete)

  - need to track svn renames


user	(drupal)
  username
  email
  realname
  role	(svn access)

UI Pages

Eira's mockups: http://epistel.no/test/css-review/

full report for one test

generic query interface

query results/review UI

interface to rename/move test files

URL Scheme

For Later