- From: Henri Sivonen <hsivonen@iki.fi>
- Date: Wed, 31 Oct 2007 21:37:33 +0200
- To: HTML WG <public-html@w3.org>
This has been discussed on IRC a few times. I'd like to suggest the topic to be visited in the f2f: Test case collaboration for testing conformance checkers: How can implementation-independent conformance test cases be produced as a community effort? Some random points: * Validator.nu does not undergo as much systematic testing as would be proper. * It would be good to have test cases that aren't tied to a particular implementation. (This is harder than it first appears.) * Boolean tests are easy: A test case should elicit either a validation failure or pass as documented in test meta data. * It would be good for tests developed for browser testing to carry metadata annotation that tells if a given document is supposed to be conforming or not. This would allow browser tests to be used for conformance checker stress testing. * A test suite should not require conformance checkers to identify particular error conditions by an id defined by the test suite, because this would limit possible implementation approaches for conformance checkers. - Example: A test suite should not require a conformance checker to report error 123 when a figure element lacks an embedded content child, because grammar-based implementations don't have a reasonable way to map derivation failures to arbitrary numbers. * A test suite should not require counting error to more precision than 0 or more than 0. - Example: When there's a misplaced element, grammar-based implementation may resync in implementation-specific ways. - Example: Implementations should have the freedom to optimize situations where the tree construction spec causes a single input artifact to hit multiple parse errors. - Example: Implementations should have the freedom to suppress further errors e.g. from an entire misrooted subtree when there's a reason to believe that one error would otherwise cause a lot of user- unfriendly secondary errors. * Even though I think that centrally-defined error ids are an unreasonable limitation on implementation strategies (they are grammar-hostile, in particular), I think it is quite reasonable for test cases to come with a human-readable note about what kind of error they are supposed to elicit. * Error locations are not unambiguous. Some implementations may point to an *approximate* single character. Others may identify a source range, such as an entire tag. Yet others might identify a range occupied by a single attribute that is in error. * To avoid issues with counting counting column positions in UTF-16 code units as opposed to Unicode characters, test cases should use the Basic Latin range when a given error can be elicited with Basic Latin only. So far, the best idea I have seen is that each non-conforming test case should only contain one error of interest and this error should be the first error in source order. The source location of the first error should given in a range inside which all reasonable error location policies would place the error. Thus, a test harness would sort the errors given by the checker by source location and compare the first one to the required location range given in the test metadata. -- Henri Sivonen hsivonen@iki.fi http://hsivonen.iki.fi/
Received on Wednesday, 31 October 2007 19:38:01 UTC