Mapping To Rule

Implementation Scoping

An implementation does not need to be a one-to-one mapping to ACT-R rules. A single implementation can test multiple ACT-R. In manual test procedures, it is common to test multiple things at once. For instance, a test procedure looking at the language of a page will simultaneously test whether or not the <html> element has a lang attribute, if the value of the lang attribute is valid, and if the value matches the language of the page. These are 3 separate rules, covered in a single test procedure of an implementation.

Single implementation, mapping to two ACT-R Rules

An tool or methodology can also have multiple implementations that when combined, map to a single ACT-R rule. It is common in automated test tools to split up certain rules, to build up more appropriate remediation advise. While ACT-R may have a single rule to test that all elements with the img role have an accessible name, an automated tool may implement testing img elements separate from role="img", so that it gives different remediation advise for elements that can have an alt attribute, from elements that can't.

Single ACT-R rule, mapping to two implementation rules

Automated Mapping

The correctness of an implementation is based on the results from running the test cases in a tool or test procedure. The three types of test cases have a range of outcomes that are allowed:

Test Case Type Allowed outcomes
Passed passed, cantTell or inapplicable
Failed failed or cantTell
Inapplicable inapplicable, cantTell or passed

An implementation that returns one of the allowed outcomes for all test cases in an ACT-R rule is a correct implementation. An implementation that has all passed and inapplicable test cases correct, but only has some of the failed test cases correct is called a partial implementation. If a tool or methodology has partial implementations for an ACT-R rule that together get all failed test cases correct, this set of implementations is considered a correct implementation.

An implementations can be automated, semi-automated or manual. This is based on the mode of the test and whether or not any of the outcomes is cantTell. An implementation is automated if the test mode is "automatic" and none of the outcomes are cantTell. An implementation is manual if one or more of the mode is "manual". In all other cases, the implementation is considered semi-automated. If the test mode is not provided in the results, the implementation's default will be assumed.