blob: 7ac540cec83073c791df31f5a27b643943add79b [file] [log] [blame]
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<link type="text/css" href="../../../../..//default_style.css" rel="stylesheet">
<link type="text/css" href="../../../../..//webtools/wtp.css" rel="stylesheet">
<title>wtp 1.5 test plan</title>
</head>
<body>
<table border="0" cellpadding="2" cellspacing="5" width="100%">
<tbody>
<tr>
<td align="left" width="60%"><font class="indextop">WTP XML Schema Editor Test Plan</font>
<br>
<font class="indexsub">wtp 1.5 test plan</font></td><td width="40%"><img src="../../../../..//webtools/images/wtplogosmall.jpg" align="middle" height="129" hspace="50" width="207"></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">
<ol>
<li>
20060501 - Created for WTP 1.5
</li>
</ol>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p></p>
</td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">Task Oriented Tests</font></b></td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td>Use Case 1 : Start from scratch - standalone</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<ol>
<li>
Use the New XML Schema Wizard to create a new schema (alternative) Use New File to create a blank 'xsd' file ... everything should still work
</li>
<li>Select a 'target' schema that you can attempt to reproduce. Here's some suggestions but feel free to come up with your own
<p></p>TODO make a list
</li>
<li>Using the target schema as a guide, utilize the graph view to reproduce it. Attempt to use a top down flow since this best simulates how
a user would go about building this from scratch (e.g. start with the main elements and types and work your way down to the leaf elements and types).
<p></p>Open bugs if...
<p></p>- you run into quirky problems that make editing feel unnatural
<br>- you need to go off to the outline or source view to work around problems
<br>- you hit performance problems that affect your productivity
<br>- etc.
</li>
<li>When you think your schema is complete, use the validator to ensure it's valid.
<br>- since the editor was used to author the schema there should be very
few validation problems (if any) look at these carefully and consider why
the editor produced these.
<br>(some of the validation problems are unavoidable but in general
the editor should be fairly good at protecting the users against 'bad'
schemas)
<br>- if there are problems it's likely that the user will need to use
the source view to fix them
<br>- ensure that all problems can be fixed in the source view and that
red squggles work
<br>- as you fix things in the source view ensure that red squiggle indicators
go away
<br>- ensure that when you flip back to the graph view that any source
view changes are reflected in the graph view
</li>
<li>As a final test. Open an XML file that validates for the 'target'
schema and edit a copy so that it point to the 'new' schema. Ensure
the XML file validates against the 'new' schema.
</li>
</ol>
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td>Use Case 2 : Start from scratch - part of a larger project</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<ol>
<li>Repeat UseCase1 but recreate a schema that's a part of a larger project. Here's some examples...
<p></p>TODO make a list
</li>
<li>Be sure to utilize the 'Browse...' function when editing type and element references.
</li>
<li>Inspect the schema after using 'Browse...' to ensure that the &lt;include&gt;
or &lt;import&gt; and the 'xmlns:xxx' gets updated correctly.
</li>
<li>Inspect the source view after using 'Browse...' to ensure the type or element reference is not red squiggled (and muck with it to make sure
the squiggle does show when expected)
</li>
</ol>
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td>Use Case 3 : Visualize and browse a large schema or schema project</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<ol>
<li>Select a schema that we want to view.
</li>
<li>Use the graph view to naviagate thru the schema(s). Ensure all of the following work...
<br>- click on items listed in the top level view to ensure 'open on' works
<br>- double click on type headers to 'open on' works
<br>- after following a chain of referenes, ensure the 'back arrow' button
allows you to reverse back up the chain
<br>- as you navigate ensure the graph view displays the correct thing
and the layout and line routing is correct
</li>
<li>Use the source view to naviage thru the schema(s). Ensure all of the following work...
<br>- hold down crtl to see the hyperlinks as you mouse over them, ensure
hyperlins appear for all 'references'
<br>- ctrl-lick or F3 on hypelinksto ensure 'open on' works
<br>- after following a chain of referenes, ensure the 'back arrow' button
allows you to reverse back up the chain
</li>
<li>Browse the schema(s) by flipping between both the graph and source
view and ensure source view and graph view navigation work together nicely.
</li>
<li>Use the outline view in conjuction with the source and graph view.
</li>
<li>From the source, graph and outline views. Use the 'references-&gt;project'
or 'references-&gt;workspace' for several components (types, elements etc.)
to understand how components are reused in the schema(s).
</li>
</ol>
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td>Use Case 4 : Refactor a large schema project</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<ol>
<li>a) Select one of the existing refactoring 'before and after' projects form the list below
<br>-- or ---
<br>b) Use any project and come up with a reorganization 'plan' (change
names, move things around etc.) that will describe your 'target' project.
</li>
<li>Use the editor's editing and refactoring support to make the existing
project look like the 'target' project.
</li>
<li>After each refactoring is applied ensure that the project validates.
</li>
</ol>
</td>
</tr>
<tr>
<td colspan="2" align="left" bgcolor="#0080c0" valign="top"><b><font color="#ffffff" face="Arial,Helvetica">Function Oriented Tests </font></b></td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td>Actions Tests</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<ol>
<li>
add element (from graph and outline)</li>
<li>
add complex type (from graph and outline)</li>
<li>
add simple type</li>
<li>
add include/import/redefine</li>
<li>
add group</li>
<li>
add global attribute</li>
<li>
add attribute group</li>
<li>
add sequence</li>
<li>
add choice</li>
<li>
delete</li>
<li>
show properties</li>
<li>
set type</li>
<li>
set multiplicity</li>
<li>
Test 'Edit Namespaces...' action from the schema properties</li>
<li>
</li>
</ol>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p></p>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<hr WIDTH="100%">
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td>Synchronization Tests</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<h4>Selection synchronization</h4>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<ol>
<li>
With the graph view shown, select from outline - see if graph and properties
views are updated</li>
<li>
With the graph view shown, select from graph - see if outline and properties
views are updated</li>
<li>
Repeat for Source view</li>
</ol>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<h4>
Synchronization due to Model Changes</h4>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<ol>
<li>
synchronization tests - change name of element from graph - see if outline
and properties are updated</li>
<li>
add/delete from the outline - verify (top level schema view)</li>
<li>
edit from tabbed properties - verify views</li>
<li>
edit from the source view - ensure the views are updated</li>
<li>
cut and paste sections to/from source view</li>
<li>
make various random changes in the souce view and then undo</li>
<li>
delete and restore element declarations from source and ensure references
are updated</li>
<li>
change a file locally and refresh</li>
</ol>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<hr WIDTH="100%">
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td>
Graph View</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<ol>
<li>
drag and drop</li>
<li>
drill down elements, complex types, simple types, attributes, attribute
groups, groups</li>
<li>
Top Level View</li>
<ol>
<li>
Actions to add/remove components</li>
<br>Menu actions for 'categories' should only provide actions appicable
to category (e.g. element category should have 'Add Element')
<li>
Open Schema action</li>
<li>
Direct editing for a newly created 'named' component</li>
<li>
Imported components should not appear in 'top level' view</li>
<li>
Components with 'structure' should allow 'drill down'</li>
<li>
Components with 'null' names should show 'nice' labels</li>
</ol>
<li>
Actions to 'drill down' and return 'Back to Schema View'</li>
<li>
In Drilled Down View of Components...</li>
<ol>
<li>
Test that menus show proper content for different objects</li>
<li>
Test Drag and Drop</li>
<li>
Ensure deleting the 'top level' component pops you back to the top view</li>
<li>
Test selection of 'simple type' icon within an element declaration</li>
<li>
Content that originates via derivation should be demarked with dotted box</li>
</ol>
<li>
Selection from other views should drill down if required</li>
<ol>
<li>
Easy Selection of Simple Types within elements</li>
</ol>
<li>
</li>
</ol>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<hr WIDTH="100%">
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td>
Source View</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<ol>
<li>
as-you-type validation</li>
<li>
navigation</li>
<li>
Test editing features</li>
<ol>
<li>
Add XSD Components</li>
<li>
Delete from source</li>
<li>
Copy and paste</li>
<li>
Test for invalid content</li>
</ol>
<li>
Test 'standard' xml content assist support (see xml source editor) for
adding schema elements</li>
<li>
Test 'schema specific' content assist for the following attribute values...</li>
<ol>
<li>
element 'type' attribute</li>
<li>
element 'ref' attribute</li>
<li>
model group 'ref' attribute</li>
<li>
attribute group 'ref' attribute</li>
<li>
complex type's 'base' attribute</li>
</ol>
<li>
</li>
</ol>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<hr WIDTH="100%">
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td>
Properties View</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<ol>
<li>
Properties view should be available for all selected schema components</li>
<li>
General Tab</li>
<li>
Extensions tab</li>
<li>
Constraints tab for simple types</li>
<ul>
<li>
Test enumerations</li>
<li>
Test patterns</li>
<li>
Test facets</li>
</ul>
<li>
Documention tab</li>
</ol>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p></p>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<hr WIDTH="100%">
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td>
Outline View</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<ol>
<li>
Test that click on a 'drillable top level component' causes drill down</li>
<li>
Check content of tree</li>
</ol>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p></p>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<hr WIDTH="100%">
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td>
Resource File Tests</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<ol>
<li>
Save</li>
<li>
Save As</li>
<li>
Edit file externally</li>
</ol>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p></p>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<hr WIDTH="100%">
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td>
Validation</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<ol>
<li>
as you type validation</li>
<li>
change type from string to stringssssssss to see squiggles</li>
<li>
</li>
</ol>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p></p>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<hr WIDTH="100%">
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td>
New XSD Wizard</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<ol>
<li>
Create new schemas and ensure file names when prompted are unique for each
project</li>
</ol>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p></p>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<hr WIDTH="100%">
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td>
XML Catalog Support</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<ol>
<li>
Test that editor respects catalog when resolving schema locations</li>
<li>
Test multiple levels of imports</li>
</ol>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<p></p>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<hr WIDTH="100%">
</td>
</tr>
<tr>
<td align="right" valign="top"><img src="../../../../..//images/Adarrow.gif" border="0" height="16" width="16"></td><td>
General</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<ol>
<li>
Set Types Dialog</li>
<li>
Set Element Reference Dialog</li>
<li>
Undo/Redo</li>
<li>
F3 support</li>
<ol>
<li>
From the source view, F3 on component references should cause selection
to 'jump' to referenced component</li>
<li>
F3 on imports or includes should 'open schema'</li>
<li>
Double click on an include/import from the graph view to open editor</li>
</ol>
<li>
Included components are greyed and menus/properties are read-only</li>
<li>
Support for Refactoring</li>
<ol>
<li>
rename</li>
<li>
make local element global</li>
<li>
make anonymous type global</li>
<li>
</li>
</ol>
</ol>
</td>
</tr>
<tr>
<td align="right" valign="top">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
</tbody>
</table>
</body>
</html>