<html><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8"><link type="text/css" href="../../../..//default_style.css" rel="stylesheet"><link type="text/css" href="../../../..//webtools/wtp.css" rel="stylesheet"><title>wtp milestone 2 test plan</title></head><body><table border="0" cellpadding="2" cellspacing="5" width="100%"><tbody><tr><td align="left" width="60%"><font class="indextop">XML, DTD, XSD Validation M2 test plan</font><br><font class="indexsub">wtp milestone 2 test plan</font></td><td width="40%"><img src="../../../..//webtools/images/wtplogosmall.jpg" align="middle" height="129" hspace="50" width="207" alt="WTP Logo" usemap="logomap"><map id="logomap" name="logomap"><area coords="0,0,207,129" href="/webtools/" alt="WTP Home"></map></td></tr></tbody></table><table border="0" cellpadding="2" cellspacing="5" width="100%"><col width="16"><col width="*"><tbody><tr><td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">Status of this Document</font></b></td></tr><tr><td align="right" valign="top">
                &nbsp;
            </td><td valign="top"><p>
This is the test plan for the XML, DTD and XSD Validators for the Milestone 2 release.
Last updated on 12/14/2004.
</p></td></tr><tr><td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">Overall goals</font></b></td></tr><tr><td align="right" valign="top"><img src="../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td>Co-developer Testing</td></tr><tr><td align="right" valign="top">
                &nbsp;
            </td><td valign="top"><p>
			We will inspect "runtime" version of build to be
			sure extra source is not included, and more important, we'll
			inspect and test importing SDK version to be sure all
			relevant "open source" is included in that SDK
			build and that it correctly imports into a development
			environment.
		</p></td></tr><tr><td align="right" valign="top"><img src="../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td>API Testing</td></tr><tr><td align="right" valign="top">
                &nbsp;
            </td><td valign="top"><p>
			Here in M2 we don't consider we have any official API yet
			(since not spec'd as such) but will reserve this space for
			future plans to details were API Unit tests are, their
			coverage, etc.
		</p></td></tr><tr><td align="right" valign="top"><img src="../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td>UI-Based Functional Testing</td></tr><tr><td align="right" valign="top">
                &nbsp;
            </td><td valign="top"><p>
			For these tests, we want to ensure that the user will be
			provided with the appropriate feedback of the validation results.
			This will be via dialogs and tasks that are generated in the
			problems view.
		</p></td></tr><tr><td align="right" valign="top"><img src="../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td>JUnit Functional Testing</td></tr><tr><td align="right" valign="top">
                &nbsp;
            </td><td valign="top"><p>
			Our primary goal in M2 Functional Testing is to ensure basic
			functions work.  JUnit functional tests will be run for the
			specified validators to determine if documents are correctly
			classified as valid or invalid.
		</p></td></tr><tr><td align="right" valign="top"><img src="../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td>Platform Testing</td></tr><tr><td align="right" valign="top">
                &nbsp;
            </td><td valign="top"><p>
			While we do not have any platform specific code, or
			function, we will have some team members do end-user tests
			on Linux, some on Windows. We will also confirm unit tests
			pass on both platforms.
		</p></td></tr><tr><td align="right" valign="top"><img src="../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td>Performance Testing</td></tr><tr><td align="right" valign="top">
                &nbsp;
            </td><td valign="top"><p>
			We do not have any specific performance testing planned for
			M2, but will add automated performance tests along the lines
			of the Eclipse base performance unit tests in future
			milestones.
		</p></td></tr><tr><td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">Functional Testing</font></b></td></tr><tr><td align="right" valign="top">
                &nbsp;
            </td><td valign="top"><p>
    JUnit Testing
	<ul>
		<li>Test to see if a document is valid.  The validator should report back correctly that
		    the document is either valid or invalid.</li>
		<li>Repeat for other documents.</li>
    </ul>
    
    UI-Based Testing
	<ul><b>General Scenario</b>
		<li>Validate an invalid document and ensure problems are shown as annotations in
		    the editor's source ruler and margin</li>
		<li>Check that error messages are listed in the problems view</li>
		<li>Check that navigation works for error markers</li>
		<li>Check that line numbers match error markers</li>
		<li>Correct errors and revalidate and ensure all markers and messages are removed</li>
		<li>Ensure popup message dialog appear with the correct validation message</li>
    </ul>
	<ul><b>XML Catalog</b>
		<li>Test that validation works with the XML Catalog</li>
    </ul>
	<ul><b>Referenced Files</b>
		<li>Test errors in referenced files</li>
		<ul>
		    <li>good xml, bad xsd.  ie. XSD errors should not show in XML resource. There should be
		        however one message to indicate that there are errors in the referenced file</li>
		    <li>Test similarly also for good xml, bad dtd</li>
		</ul>
    </ul>
	<ul><b>Validation Preferences</b>
		<li>Test validate on file save</li>
		<li>Turn it on and off</li>
		<li>Test global vs project settings</li>
		<li>Test maximum number of messages</li>
        <li>See test plan for Validation Framework</li>
    </ul>
  
</p></td></tr></tbody></table></body></html>