Additional resources for QA

Project acronym: QUESTION-HOW
Project Full Title:Quality Engineering Solutions via Tools, Information and Outreach for the New Highly-enriched Offerings from W3C: Evolving the Web in Europe
Project/Contract No. IST-2000-28767
Workpackage 1, Deliverable D1.5

Project Manager: Daniel Dardailler <danield@w3.org>
Author of this document: same

Created: 27 August 2002. Last updated: 27 August 2002.


Table of Content:


Introduction

The W3C Quality Assurance (QA) Activity has a dual focus:

QA is absolutely necessary in order to ensure interoperability and usability and also to have consistency between the specifications we produce.

To achieve these goals, we need tools and documents that are specifically developped or written for the W3C QA, but that will be usable by the W3C community as large.

This project consisted in:

Associated with the matrix, we will deliver a taxonomy document defining all fields covered by QA, ie.e which category tools, specifications, documents belong to. It's a tool that will help people working in the same area to have a common vocabulary and create a kind of ontology of the W3C QA work.


The Matrix and associated tools

The Matrix is a Web resource which gives information about the W3C specifications, it's a synthetic table with information useful for developpers of Test materials or products.

The source of the matrix is maintained in XML: TheMatrix.xml, which contains more information than the HTML version, automatically generated on the fly or on demand.

The HTML (XHTML in fact) output is produced with an XSL stylesheet : toMatrix.xsl.

First, let's look at the Matrix itself as it appears to the online users:

This is only an extraxt, the real Matrix is available online

Spec Status Validator Test Suites Related Conformance section
SVG 1.0 rec no W3C Test Suite Conformance
SVG 1.1 cr no no Conformance
SVG Mobile cr no no - Conformance
... .. ... ... ... ...

Semantic of XML elements and attributes

The document is encoded as an UTF-8 document.

The following elements have been designed:

matrix
The root element of the document. it can contain any number of spec element
spec
Defines an indivual W3C spec. it can contains uri, name, accronym, history, validator, ts, related, conf, imp
uri
defines an uri. This is used in spec, in conf, validator, ts. Ex: http://www.w3.org/Style/CSS/Test/Mobile/1.0/
name
defines the name of the specification itself. It's usually a long name. Ex: Resource Description Format
accronym
it usually defines the accronym version of the name of the specification Ex: RDF
history
contains one or more element status which describes the life of the spec.
status name="(rec|pr|cr|lcwd|wd|rfc)" uri="[uri]" date="[iso format]"
describes the last status of the specification and the history of all published version. The order is very important, the most recent MUST be at the begining of the liste. The XSL stylesheet use this first element to grab the status of the spec.
translist
contains a list of translations of the specification, made of trans
translang, uri, first, last
one element per translation, with language, uri and translator information
validator status="(yes|no)"
whether or not there is a content validator for the technology
ts origin="(w3c|out|no)"
whether or not there is a test suite for the technology
related
related info like errata, technique documents, made of info and text
info
information on the related info: uri and text
conf status="(yes|no)"
point to conformance section in the specification itself
imptime
time since first released

Example of XML markup for the Matrix:

The full version of the Matrix source in XML is available online.

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="2002/06/toMatrix.xsl" type="application/xml"?>
<matrix>
<spec>
   <uri>http://www.w3.org/TR/SVG/</uri>
   <name>Scalable Vector Graphics (SVG) 1.0 Specification</name>
   <accronym>SVG 1.0</accronym>
   <history>
      <status name="rec" uri="http://www.w3.org/TR/2001/REC-SVG-20010904" date="2001-09-04"/>
   </history>
   <validator status="no"></validator>
   <ts origin="w3c">
      <uri>http://www.w3.org/Graphics/SVG/Test/</uri>
   </ts>
   <related>
      <info>
         <uri>http://www.w3.org/TR/SVG-access/</uri>
         <text>Accessibility Features of SVG</text>
      </info>
      <info>
         <uri>http://www.w3.org/Graphics/SVG/Test/BE-ImpStatus</uri>
         <text>SVG Conformance suite implementation status</text>
      </info>
      <info>
         <uri>http://www.w3.org/Graphics/SVG/Test/svgTest-manual.htm</uri>
         <text>SVG Test Suite Manual</text>
      </info>
   </related>
   <conf>
      <uri>http://www.w3.org/TR/SVG/conform.html</uri>
   </conf>
   <imptime>9m</imptime>
</spec>
  

XSLT Style Sheet

This complete style sheet processes the XML source above and renders it as XHTML.

This is a shorter version without Metadata, logo, copyright and CSS generation.

<?xml version="1.0" encoding="utf-8"?><xsl:stylesheet 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns="http://www.w3.org/1999/xhtml" version="1.0">

<xsl:outputindent="yes" method="xml" omit-xml-declaration="no" encoding="utf-8"
    doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
   doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>

<xsl:template match="*">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>W3C QA - The W3C Matrix</title>
</head>
<body>
 
<h1>The Matrix of <a href="http://www.w3.org/TR/">W3C specifications</a>.</h1>
 
<div class="thematrix">
<table class="thematrix" border="1">
  <tbody>
    <tr>
      <th>Spec</th>
      <th>Status</th>
     <!-- <th>QA Log</th>-->
      <th>Validator</th>
      <th>Test Suites</th>
      <th>Related</th>
      <th>Conformance section</th>
    </tr>

<xsl:apply-templates/>
</tbody>
</table>
</div>

</div>

<hr />
</xsl:template>
<xsl:template match="text()"/>

<xsl:template match="spec">
<tr>
  <th class="spec"><a href="{uri}"
        title="{name}"><xsl:value-of select="accronym"/></a></th>
  <td class="{history/status[1]/@name}"><xsl:value-of select="history/status[1]/@name"/></td>
  <!--<td class="Log"></td>-->
<xsl:choose>
<xsl:when test="validator/@status='yes'">
<td class="Valid"><a href="{validator/uri}"><img
        src="http://www.w3.org/QA/images/icovalid" alt="Validator" /></a></td>
</xsl:when>
<xsl:otherwise><td class="Valid">no</td></xsl:otherwise>
</xsl:choose>

<xsl:choose>
<xsl:when test="ts/@origin='w3c'">
<td class="TS"><a href="{ts/uri}"><img
        src="http://www.w3.org/Icons/WWW/w3c_home" style="height:1em" 
alt="W3C Test Suite" /></a></td>
</xsl:when>
<xsl:when test="ts/@origin='out'">
<td class="TS"><a href="{ts/uri}"><img
        src="http://www.w3.org/QA/images/icots" alt="Test Suite" /></a></td>
</xsl:when>
<xsl:otherwise><td class="TS">no</td></xsl:otherwise>
</xsl:choose>

<xsl:choose>
<xsl:when test="not(related/info/node())">
<td class="Info">-</td>
</xsl:when>
<xsl:otherwise>
  <td class="Info">
<ul>
<xsl:apply-templates select="related/info"/>
</ul>
</td>
</xsl:otherwise>
</xsl:choose>

<xsl:choose>
<xsl:when test="conf/@status='no'">
<td class="Conf">no</td>
</xsl:when>
<xsl:otherwise><td class="conf"><a
        href="{conf/uri}"><img
        src="http://www.w3.org/QA/images/icoconf" alt="Conformance" /></a></td></xsl:otherwise>
</xsl:choose>
</tr>

</xsl:template>


<xsl:template match="info">
<li><a href="{uri}"><xsl:value-of select="text"/></a></li>
</xsl:template>


</xsl:stylesheet>


Deviations from plan

None, work is done.

The Matrix is now an important tool of the W3C QA activity, used daily by a lot of WG participants.

It is continuously updated by the W3C staff to reflect the latest QA development in all W3C specifications.