| <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"> </td><td valign="top"> |
| <ol> |
| |
| <li> |
| 20060501 - Created for WTP 1.5 |
| </li> |
| |
| </ol> |
| </td> |
| </tr> |
| <tr> |
| <td align="right" valign="top"> </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"> </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"> </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 <include> |
| or <import> 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"> </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->project' |
| or 'references->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"> </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"> </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"> </td><td valign="top"> |
| <p></p> |
| </td> |
| </tr> |
| <tr> |
| <td align="right" valign="top"> </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"> </td><td valign="top"> |
| <h4>Selection synchronization</h4> |
| </td> |
| </tr> |
| <tr> |
| <td align="right" valign="top"> </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"> </td><td valign="top"> |
| <h4> |
| Synchronization due to Model Changes</h4> |
| </td> |
| </tr> |
| <tr> |
| <td align="right" valign="top"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </td><td valign="top"> |
| <p></p> |
| </td> |
| </tr> |
| <tr> |
| <td align="right" valign="top"> </td><td valign="top"> |
| <br> |
| </td> |
| </tr> |
| <tr> |
| <td align="right" valign="top"> </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"> </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"> </td><td valign="top"> |
| <p></p> |
| </td> |
| </tr> |
| <tr> |
| <td align="right" valign="top"> </td><td valign="top"> |
| <br> |
| </td> |
| </tr> |
| <tr> |
| <td align="right" valign="top"> </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"> </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"> </td><td valign="top"> |
| <p></p> |
| </td> |
| </tr> |
| <tr> |
| <td align="right" valign="top"> </td><td valign="top"> |
| <br> |
| </td> |
| </tr> |
| <tr> |
| <td align="right" valign="top"> </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"> </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"> </td><td valign="top"> |
| <p></p> |
| </td> |
| </tr> |
| <tr> |
| <td align="right" valign="top"> </td><td valign="top"> |
| <br> |
| </td> |
| </tr> |
| <tr> |
| <td align="right" valign="top"> </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"> </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"> </td><td valign="top"> |
| <p></p> |
| </td> |
| </tr> |
| <tr> |
| <td align="right" valign="top"> </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"> </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"> </td><td valign="top"> |
| <p></p> |
| </td> |
| </tr> |
| <tr> |
| <td align="right" valign="top"> </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"> </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"> </td><td valign="top"> |
| <br> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </body> |
| </html> |