This shows you the differences between two versions of the page.
Next revision | Previous revisionNext revisionBoth sides next revision | ||
test:selftest [2010/02/04 16:55] – created fantasai | test:selftest [2010/02/04 17:18] – fantasai | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Self-Describing Tests ====== | ====== Self-Describing Tests ====== | ||
+ | |||
+ | A self-describing test is a test page that describes what the page should look like when the test has passed. A human examining the test page can then determine from the description whether the test has passed or failed. | ||
+ | |||
+ | <note example> | ||
+ | The following are some examples of self-describing tests, using common techniques to identify passes: | ||
+ | |||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | </ | ||
+ | |||
+ | Self-describing tests have some advantages: | ||
+ | |||
+ | * They can be run easily on any layout engine. | ||
+ | * They can test areas of the spec that are not precise enough to be comparable to a reference rendering. (For example, underlining cannot be compared to a reference because the position and thickness of the underline is UA-dependent.) | ||
+ | * Failures can (should) be easily determined by a human viewing the test without needing special tools. | ||
+ | |||
+ | They also have some disadvantages: | ||
+ | |||
+ | * They cannot be automated: a human must determine whether the test has passed or failed. | ||
+ | * In some cases it is difficult or impossible to design the test for a glaringly obvious pass or fail. (In these cases, if it's possible to create a reference, the [[test: | ||
+ | |||
+ | Self-describing tests must follow the [[test: | ||
+ | |||
+ | Additional information on writing self-describing tests is available [[http:// |