platform-vcm-home/2_0_testing.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (download) (as text) (annotate)
Wed May 22 19:38:25 2002 UTC (7 years, 6 months ago) by kevinm
Branch: MAIN
*** empty log message ***
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<head>
  <link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
  <title>Team Testing Roadmap</title>
  <meta name="author" content="OTI Employee">
  <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
</head>
<body>

<h1>Section 1: General CVS Tests</h1>
<h3>Interoperability</h3>
<ol>
  <li>Bringing in java projects without a .project - should prompt for project type to create.</li>
</ol>

<h3>First time setup</h3>
<ol>
  <li>Modules in the repo view and checking out modules</li>
</ol>

<h3>Project sharing and disconnecting</h3>
<ol>
  <li>Sharing with no CVS folders against existing project</li>
  <li>Sharing with CVS folders</li>
  <li>Sharing new project with no CVS folders</li>
  <li>Disconnect: keeping and deleting CVS folders, reconnecting (as above)</li>
</ol>

<h3>CVS workflow</h3>
<ol>
  <li>Ignoring resources</li>
  <li>“Add to .cvsignore”</li>
  <li>Add to global ignore list, ensure its now ignored</li>
  <li>Replace with (base, branch, version)</li>
  <li>Update/commit with very large files (> 8 meg)</li>
  <li>Ensure you are prompted for unsaved changes before performing a CVS action</li>
</ol>

<h3>Project sets</h3>
<ol>
  <li>Create one, delete projects, load set and ensure got projects back</li>
  <li>Test against HEAD, project on branch/version.</li>
</ol>

<h3>Branching/Merging</h3>

<h3>Decorators</h3>
<ol>
  <li>Change all the options, apply, see them redraw correctly</li>
  <li>Add/remove items, ensure dirty markers update</li>
  <li>Add to version control and see decorator change</li>
  <li>Performance with large trees expanded</li>
  <li>Collapse large tree, exit workspace, restart (should not be as expensive as if tree had been left expanded)</li>
</ol>

<h3>Patching</h3>
Creating patches and then comparing with them. In particular,
<ol>
  <li>added files</li>
  <li>deleted files</li>
  <li>added or deleted folders with added or deleted files in them</li>
  <li>binary files</li>
</ol>

<h3>Misc</h3>
<ol>
  <li>CVS Console: ensure written to</li>
  <li>Check canceling everywhere there's a progress monitor</li>
  <li>Does it cancel in reasonable time?</li>
  <li>Is the workspace in an ok state after?</li>
  <li>Compression switches, ensure data transfered ok (commit, update)</li>
</ol>

<h1>Section 2: CVS Synchronize View</h1>
<table height="124" border="1" width="99%">
	<tbody>
		<tr>
			<td width="25%"><b>Change Type</b></td>
			<td width="25%"><b>Action</b></td>
			<td width="50%"><b>Result</b></td>
		</tr>
		<tr>
			<td width="25%"><b>Incoming File Change</b></td>
			<td width="25%">Update</td>
			<td width="50%">Remote contents become local. Try with both Text and Binary files.</td>
		</tr>
		<tr>
			<td width="25%"><b>Incoming File Change</b></td>
			<td width="25%">Override and Commit</td>
			<td width="50%">Only in Both mode. Prompt for release comment. Cancel aborts, OK commits local file to server.</td>
		</tr>
		<tr>
			<td width="25%"><b>Incoming File Addition</b></td>
			<td width="25%">Update</td>
			<td width="50%">Remote contents become local. Try with both Text and Binary files.</td>
		</tr>
		<tr>
			<td width="25%"><b>Incoming File Addition</b></td>
			<td width="25%">Override and Commit</td>
			<td width="50%">Only in Both mode. Prompt for release comment. Cancel aborts, OK commits deletion to server.</td>
		</tr>
		<tr>
			<td width="25%"><b>Incoming File Deletion</b></td>
			<td width="25%">Update</td>
			<td width="50%">Local file is deleted.</td>
		</tr>
		<tr>
			<td width="25%"><b>Incoming File Deletion</b></td>
			<td width="25%">Override and Commit</td>
			<td width="50%">Only in Both mode. Prompt for release comment. Cancel aborts, OK commits local file to server.</td>
		</tr>
		<tr>
			<td width="25%"><b>Outgoing File Change</b></td>
			<td width="25%">Commit</td>
			<td width="50%">Prompt for release comment. Cancel aborts, OK commits local file to server.</td>
		</tr>
		<tr>
			<td width="25%"><b>Outgoing File Change</b></td>
			<td width="25%">Override and Update</td>
			<td width="50%">Only in Both mode. Remote contents become local. Try with both Text and Binary files.</td>
		</tr>
		<tr>
			<td width="25%"><b>Outgoing File Addition</b></td>
			<td width="25%">Add to Version Control</td>
			<td width="50%">Adds the file to version control. The icon should change in the sync view, and Commit should now be enabled.</td>
		</tr>
		<tr>
			<td width="25%"><b>Outgoing File Addition</b></td>
			<td width="25%">Add to .cvsignore</td>
			<td width="50%">Adds the file to .cvsignore. The file should disappear from the sync view. The .cvsignore file should appear (if it wasn't visible already). The file should not appear in subsequent syncs.</td>
		</tr>
		<tr>
			<td width="25%"><b>Outgoing File Addition</b></td>
			<td width="25%">Commit</td>
			<td width="50%">Commit is only enabled on an outgoing addition if it has first been added to version control. Prompt for release comment. Cancel aborts, OK commits local file to server.</td>
		</tr>
		<tr>
			<td width="25%"><b>Outgoing File Addition</b></td>
			<td width="25%">Override and Update</td>
			<td width="50%">Only in Both mode. Local file is deleted.</td>
		</tr>
		<tr>
			<td width="25%"><b>Outgoing File Deletion</b></td>
			<td width="25%">Commit</td>
			<td width="50%">Prompt for release comment. Cancel aborts, OK commits deletion to server.</td>
		</tr>
		<tr>
			<td width="25%"><b>Outgoing File Deletion</b></td>
			<td width="25%">Override and Update</td>
			<td width="50%">Only in Both mode. File is re-created, remote contents become local.</td>
		</tr>
		<tr>
			<td width="25%"><b>Conflicting File Change</b></td>
			<td width="25%">Override and Commit</td>
			<td width="50%">Prompt for release comment. Cancel aborts, OK commits local file to server. Applies to both auto-mergeable and non-mergeable conflicts.</td>
		</tr>
		<tr>
			<td width="25%"><b>Auto-mergeable Conflicting File Change</b></td>
			<td width="25%">Override and Update</td>
			<td width="50%">Auto-mergeable conflicts have a two-way red/green arrow. Dialog prompts user to either auto-merge or replace. If user chooses auto-merge, then remote changes are merged in with local changes. File should still be dirty, local changes should still be present, CVS markup should not be present, and no .# files should have been created. If user chooses replace, then local changes are discarded and remote contents replace local. No .# files created, no CVS markup, and the file is not dirty as a result. If the user chooses cancel nothing happens.</td>
		</tr>
		<tr>
			<td width="25%"><b>Non-mergeable Conflicting File Change</b></td>
			<td width="25%">Override and Update</td>
			<td width="50%">Dialog prompts user to replace local changes. If user cancels nothing happens. If user chooses OK, then local changes are discarded and remote contents replace local. No .# files created, no CVS markup, and the file is not dirty as a result.</td>
		</tr>
		<tr>
			<td width="25%"><b>Conflicting File Addition</b></td>
			<td width="25%">Add to Version Control</td>
			<td width="50%">Adds the file to version control. The icon should change in the sync view, and Override and Commit should now be enabled.</td>
		</tr>
		<tr>
			<td width="25%"><b>Conflicting File Addition</b></td>
			<td width="25%">Override and Commit</td>
			<td width="50%">Override and Commit is only enabled on an outgoing addition if it has first been added to version control. Prompt to warn of conflicting changes. If OK, prompt for release comment. Cancel aborts either dialog. OK commits local file to server.</td>
		</tr>
		<tr>
			<td width="25%"><b>Conflicting File Addition</b></td>
			<td width="25%">Override and Update</td>
			<td width="50%">Remote contents become local.</td>
		</tr>
			
	</tbody>
</table>
<p/>

<h2>Variations</h2>
<h3>Container Selection</h3>
<p>Normally, selecting a folder is the same as selecting all of the individual files underneath it. (The exception to this is if the folder itself is changed, such as a conflicting addition). Performing any of the above operations on a folder should behave as if the files underneath it were selected.</p>
<p>Note that if an action is not specified for a change type, it does not apply to that change type. This is important in container selection.</p>
<p>For example: Commit does not apply to conflicting changes. If you select a folder with an Outgoing Change and a Conflicting Change in it, Commit will apply to the Outgoing Change but not to the Conflicting Change.</p>
<h3>Multi-Selection</h3>
<p>If multiple resources are selected, an action is enabled if it applies to any one or more of the selected resources. Choosing that action will apply the action only to those resources for which it is applicable.</p>
<p>For example: Commit does not apply to conflicting changes. Selecting an Outgoing Change and a Conflicting Change will result in Commit being enabled. Choosing Commit will apply to the Outgoing Change but not to the Conflicting Change.</p>
<p>Multi-Selection and Container Selection may be used in any combination with predictable results.</p>

<h2>Specific Scenaria</h2>
<h3>Making Manual Changes</h3>
<p>Create a conflicting file change. Manually edit the left source pane in the sync view. Hit "Save" on the popup menu. The file should remain a Conflict; you should get a prompt telling you to Mark as Merged when finished. Choose Mark as Merged in the popup menu of the tree. The file should change to an outgoing change. Commit the outgoing change.</p>
<h3>Merging Conflicts</h3>
<p>Try Override and Update with different combinations of Auto-Mergeable and Non-Mergeable conflicts in the selection. If all conflicts are Non-Mergeable, then the only choice is to replace with remote or cancel. If one or more conflicts are Auto-Mergeable, the choices are (a) Auto-Merge any applicable files, and replace the rest with remote, (b) Replace all files with remote or (c) Cancel.</p>
<h3>Removing from View</h3>
<p>Choose Remove from View. Selected nodes should disappear. Refresh the view. The nodes should reappear.</p>
<h3>Synchronize Outgoing Changes</h3>
<p>If you choose Synchronize Outgoing Changes from the navigator, the sync view should be populated with <b>only the Outgoing Changes and Conflicts</b>. This operation should be significantly faster in many cases. In this case, ensure that Refresh does not cause Incoming Changes to appear.</p>


<h1>Section 3: Migration from 1.0 to 2.0</h1>
Both the below tests require a workspace created using 1.0 which contains
projects checked out from a CVS repository.<br>
<h3>Migrating a workspace project created using 1.0 to 2.0</h3>
<ol>
  <li>Start Eclipse 2.0 on top of a workspace from 1.0</li>
  <li>Select a project that is was shared with a CVS repository and chose
Team/Share Project&#8230;</li>
  <li>Select the Repository location to share with or enter it if it does
not appear in the list.</li>
  <li>Upon finish, the user will be prompted to select either HEAD or the
branch to compare against. </li>
  <li>The Synchronize view will then be opened and all files will appear
as incoming, outgoing or conflicting additions.</li>
  <li>To see the real conflicts, enable &#8220;Compare File Contents&#8221; available
from the drop down menu in the title bar of the Synchronize View.</li>
  <li>Resolve the real incoming, outgoing additions &nbsp;and conflicts as
appropriate (see sync view test plan for a description of sync state resolution)</li>
  <li>When all conflicts are resolved, disable &#8220;Compare File Contents&#8221; and
perform an &#8220;Override and Update&#8221; on the remaining conflicting additions to
update the sync info of the local resources.</li>
  <li>Ensure local copy contains the proper contents (can use Compare With/Latest
from Repository)<br>
  </li>
</ol>
<h3>Migrating a project in a CVS Repository from 1.0 to 2.0</h3>
<ol>
  <li>Load the project to be migrated&nbsp; from the repository</li>
  <li>Perform Team/Set Keyword Substitution&#8230;</li>
  <ol type="i">
    <li>On page 1, set the keyword substitution mode determination to automatic
(the default)</li>
    <li>On page 2, include files that are already shared</li>
    <li>On page 3, ensure that files that are to be changed are actually
text files, Also, show files that will not be changed and ensure that they
are not text.<br>
    </li>
    <li>Upon finish, changed files are commited and the keyword substitution
mode is changed.</li>
  </ol>
  <li>Checkout a copy of the project and ensure that the file keyword substitution
modes are correct<br>
  </li>
</ol>

</body>
</html>