Wendy A Chisholm wrote:
Hello,

The WCAG WG would like to begin implementation testing of WCAG 2.0 this fall.  I've read QA Framework: Test Guidelines and have a few questions about Guidelines 3 and 4.  What should a Test Framework look like? For WCAG is a test management system an evaluation tool?  The SVG Conformance Test Suite -- Test Builder's Manual [2] is helpful, but since WCAG is a set of guidelines to apply to Web content rather than a language specification it is not clear to me what our test suite will look like.

I've drafted some initial thoughts in "DRAFT WCAG 2.0 Implementation Testing Framework" [3]

Thoughts?

Thanks,
--wendy

[1] http://www.w3.org/QA/WG/2003/02/OpsET-charter-20030217
[2] http://www.w3.org/Graphics/SVG/Test/svgTest-manual.htm
[3] http://www.w3.org/WAI/GL/implementation-testing/Overview.html

Thanks for your questions, Wendy. Since I'm currently working on the next draft of our TestGL document I'll try to respond. I apologize for the length of this reply, and for the fact that I'm probably raising as many questions as I'm answering.

If I'm interpreting your message correctly, you are asking for clarification of the terms "test management system" and "test framework", particularly in the context of WCAG, since it seems somewhat difficult to apply traditional testing techniques and processes to guidelines such as yours.Your implementation-testing overview document also seems to raise an additional question: what is implementation testing, and how should it be carried out?

I'll tackle these issues in reverse order: from the general to the specific:


1) Implementation testing

Implementation testing generally refers to the process of testing implementations of technology specifications. This process serves the dual purpose of verifying that the specification is implementable in practice, and that implementations conform to the specification. This process helps to improve the quality and interoperability of
implementations.

Your Overview document seems to place considerable emphasis on the feedback the WCAG WG will receive during implementation testing, and on the opportunities that this feedback will provide for you to improve your specification (the Guidelines). This is an important process, and one that we should probably explore in one of our GL documents (OpsGL?), but it does seem to me that this is distinct from (though obvoiusly related to) implementation testing.

Rather than (or in addition to) focusing on testing implementations of your specification you seem to be concerned with testing the specification itself (by watching and learning from the implementation process). The testing strategy you outline (the discussion of variables, for example) seems to confirm this interpretation. Moreover, in the 'Questions and other thoughts' and 'Implementation Framework' sections of your document you seem to go beyond even the process of gathering
feedback, and start to discuss the encouragement and promotion of implementation testing itself.

All of this is admirable, but it might be easier to formulate a strategy if you made explicit the multiple processes and goals that seem to be inherent in your document. I see at least three:

a) The encouragement and support of implementation testing.
b) The process of testing your Guidelines by encouraging their adoption and by soliciting and incorporating feedback.
c) The creation and organization of conformance test materials.

The first of these items is addressed, though without much detail, in Guideline 6 of TestGL: 'Plan for conformance testing'. The second - how the test materials are themselves tested - does not seem to be addressed in any of our documents. I'll work on adding something to TestGL. As you've noted, the third is directly addressed in TestGL, albeit once again without much detail.
 

2) Testing techniques for Guidelines

In your message you say "since WCAG is a set of guidelines to apply to Web content rather than a language specification it is not clear to me what our test suite will look like".

While it's true that tests developed to verify conformance with guidelines such as yours (and ours, in our QAWG documents) will differ from those developed to verify conformance to a language specification, there are nevertheless many similarities.

The principal difference lies in the extent to which the test can be 'automated' (that is, scripted or programmed for machine-execution). While it's true that some of your tests (for example, some tests for Guideline 1.1 'Provide a text equivalent for every non-text element') can probably be programmed, most of them (for
example, tests for Guidline 2.1: 'Ensure that all information conveyed with color is also available without color') will of necessity be 'manual', requiring a human to follow written instructions, and to use subjective judgement as to whether the results are as expected.

In either case it's important to clearly define what is to be tested (which of your guidelines or checkpoints), the context within which it is to be tested (for example whether the content was static or was programatically generated), the steps that must be taken to execute the test, and the expected results.

Once a test is defined in this manner, it becomes simply an implementation detail whether the setup, the 'execution instructions', and the comparison of actual to expected results are encoded in a computer language for machine execution or in written English for human execution.

The UAAG and Voice Browser WGs have experience in developing (and managing, to jump ahead to the next topic) 'interactive' and 'subjective' tests. If you haven't already done so, you might want to consult with them.


3 Test Management System and Test Framework

As you've noticed, our definitions of these concepts need work. Thanks for encouraging us to clarify them.

A Test Management System is a well-defined system for organizing and classifying tests and associated metadata, such as who submitted the test, the assertion that it tests, whether it's associated with optional functionality or with a particular conformance level, etc. All this really means is that WGs should keep track of the tests that they develop or collect, and should be able to identify them, classify them, and select from them as necessary.
 
As with the tests themselves, it's more important that this system be specified and documented than that it be automated.

By Test Framework we mean a well-defined process for executing tests. A test framework should ensure that two different testers testing the same implementation should execute the same tests in the same manner and should obtain identical results.

If the installation, configuration, and execution of the test suite is automated then these goals are more easily achieved, but if this is impractical then careful specification and documentation will be sufficient.


Thanks again for your questions, and for helping us to clarify our own documents. I hope this response is at least somewhat helpful to you. Please feel free to follow up - this is an interesting discussion and there's a lot to be done.

Patrick Curran: Sun Microsystems representative to W3C QAWG