<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../../../../wtp.xsl"?>
<html>
<head>
  <meta name="root" content="../../../../../" />
  <title>wtp milestone 3 test plan</title>
</head>
<body>

<h1>XML Catalog M3 test plan</h1>

<h2>Status of this Document</h2>
<p>
This is the test plan for the XML Catalog for the Milestone 3 release.
Last updated on 02/23/2005.
</p>

<h2>Overall goals</h2>

		<h3>Co-developer Testing</h3>
		<p>
			We will inspect &quot;runtime&quot; 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 &quot;open source&quot; is included in that SDK
			build and that it correctly imports into a development
			environment.
		</p>
		<h3>API Testing</h3>
		<p>
			Here in M3 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>
		<h3>End User Testing</h3>
		<p>
			Our primary goal in M3 End-User Testing is to ensure basic
			functions work.  Specifically, we want to confirm that the
			user is able to add, modify and delete catalog entries.
		</p>
		<p>
			I might also point out that the nature of the end-user
			testing is intentionally planned to be "ad hoc" instead of
			specifying step by step "how to" directions and specific
			"expected results" sections often seen in test cases. This
			is done because its felt leads to greater number of "paths"
			being tested, and allows end-users more motivation for
			logging "bugs" if things didn't work as
			<i>they</i>
			expected, even if it is working as designed.
		</p>
		<p>
			As we progress through milestones, we'll add more and more
			detail for special cases, special files, special projects,
			etc.When we do have special or sample test files and
			projects, we will keep those stored in CVS, as projects
			under a
			<i>testdata</i>
			directory under the
			<i>development</i>
			directory of relevant component so that testers (from
			immediate team, or community) can easily check out into the
			environment being tested.
		</p>
		<h3>Platform Testing</h3>
		<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>
		<h3>Performance Testing</h3>
		<p>
			We do not have any specific performance testing planned for
			M3, but will add automated performance tests along the lines
			of the Eclipse base performance unit tests in future
			milestones.
		</p>


<h2>Tests</h2>
	<ul>
		<li>Add an XML Catalog entry with the following properties, for an XML document</li>
		<br></br>
		<br></br>
		<table border="1" width="90%" cellspacing="2" cellpadding="2">
	      <tr style="text-align: center">
	        <th>Test</th><th>Key</th><th>Key Type</th><th>URI</th>
	      </tr>
	      <tr>
	        <td>1.</td>
	        <td>web (http) reference to file</td>
	        <td>Public ID</td>
	        <td>any workspace file</td>
	      </tr>
	      <tr>
	        <td>2.</td>
	        <td>web (http) reference to file</td>
	        <td>System ID</td>
	        <td>any workspace file</td>
	      </tr>
	      <tr>
	        <td>3.</td>
	        <td>Workspace file</td>
	        <td>Public ID</td>
	        <td>any workspace file</td>
	      </tr>
	      <tr>
	        <td>4.</td>
	        <td>Workspace file</td>
	        <td>System ID</td>
	        <td>any workspace file</td>
	      </tr>
	    </table>
	</ul>
	<ul>
		<li>Add an XML Catalog entry with the following properties, for an XML Schema document</li>
		<br></br>
		<br></br>
		<table border="1" width="90%" cellspacing="2" cellpadding="2">
	      <tr style="text-align: center">
	        <th>Test</th><th>Key</th><th>Key Type</th><th>URI</th>
	      </tr>
	      <tr>
	        <td>1.</td>
	        <td>web (http) reference to file</td>
	        <td>Schema Location</td>
	        <td>any workspace file</td>
	      </tr>
	      <tr>
	        <td>2.</td>
	        <td>web (http) reference to file</td>
	        <td>Schema Location</td>
	        <td>any workspace file</td>
	      </tr>
	      <tr>
	        <td>3.</td>
	        <td>Workspace file</td>
	        <td>Namespace Name</td>
	        <td>any workspace file</td>
	      </tr>
	      <tr>
	        <td>4.</td>
	        <td>Workspace file</td>
	        <td>Namespace Name</td>
	        <td>any workspace file</td>
	      </tr>
	    </table>
        You can keep these entries when you test the tools or editors that make use of the catalog.
	</ul>
	<ul>
		<li>Edit an entry</li>
		<li>Delete an entry</li>
		<li>Export an XML Catalog setting to the filesystem</li>
		<li>Import an XML Catalog setting from the filesystem</li>
	</ul>

</body>
</html>
