platform-vcm-home/2_1_testing.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (view) (download) (as text)

1 : mvalenta 1.1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 :     <html>
3 :     <head>
4 :    
5 :     <link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
6 :     <title>Team Testing Roadmap</title>
7 :    
8 :     <meta name="author" content="OTI Employee">
9 :    
10 :     <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
11 :     </head>
12 :    
13 :     <body>
14 :    
15 : jlemieux 1.4 <h1>Smoke Tests for the CVS Plugin</h1>
16 :     <p>CVS Repositories View<br>
17 :     CVS History View<br>
18 :     Synchronize View<br>
19 :     Branching/Merging<br>
20 :     CVS QuickDiff provider<br>
21 :     Concurrent Operations<br>
22 :     Comparing<br>
23 :     Patching<br>
24 :     Decorators<br>
25 :     Command-line compatibility<br>
26 :     Watch/Edit<br>
27 :     Restore from Repository<br>
28 :     CVS Console<br>
29 :     CVS Annotate View<br>
30 :     Tagging<br>
31 :     Keyword substitution<br>
32 :     Ignoring Files<br>
33 :     Connection Methods (ext, pserver, extssh)</p>
34 : mvalenta 1.1 <h1>Section 1: General CVS Tests</h1>
35 : jlemieux 1.4 <h2>CVS Annotate Command</h2>
36 :     <ul>
37 :     <li>Run the annotate command from each of the following changes:
38 :     <ul>
39 :     <li>CVS repositories view</li>
40 :     <li>History View opened from repo view and navigator (from revisions)</li>
41 :     <li>incoming/outgoing/conflicting changes in the sync view (particularly
42 :     incoming additions and outgoing deletions) </li>
43 :     </ul>
44 :     </li>
45 :     <li>When the annotate command is run, ensure that changes can be browsed from
46 :     view and while browsing in the text editor.</li>
47 :     </ul>
48 : mvalenta 1.1
49 :     <h2>CVS Repositories View</h2>
50 :    
51 :     <h3>Adding and Discarding Locations</h3>
52 :     These test require an existing repository which contains projects.
53 :     <ol>
54 :     <li>Add a location to the view.</li>
55 :     <li>Ensure that invalid location information is handled properly in the New Location Wizard.</li>
56 :     <li>View location properties page and ensure that information is correct and can be changed.</li>
57 :     <li>Also change property values when local projects are shared with the location and ensure
58 :     the project's sharing information is changed when the location's properties are changed.
59 :     <li>Discard a location and ensure it is removed. Also ensure that discarding is not permitted when
60 :     projects in the local workspace are shared with the location.</li>
61 :     </ol>
62 :    
63 :     <h3>Project Checkout</h3>
64 :     These test require an existing repository which contains projects, at least one of which
65 :     does not contain a .project file. Ensure that repeating each operation results in the proper overwrite prompting.
66 :     <ol>
67 :     <li>Perform "Checkout as Project" on a single project. Ensure that repeating results in overwrite prompt.</li>
68 :     <li>Perform "Checkout as Project" on multiple projects.</li>
69 :     <li>Perform "Checkout as..." on a single project (that contains a .project file) and enter custom name and/or custom location.</li>
70 :     <li>Perform "Checkout as..." on a single remote project that does not have a .project file and
71 :     ensure that the user is prompted for the project type to create.</li>
72 :     <li>Perform "Checkout as..." on multipe projects and enter a custom parent location.</li>
73 :     </ol>
74 :    
75 :     <h3>Browsing Tags</h3>
76 :     These test require an existing repository which contains projects that have been tagged with both
77 :     version and branch tags.
78 :     <h4>Refresh Branches and Versions</h4>
79 :     <ol>
80 :     <li>Select a repository location and perform "Refresh Branches and Versions...".
81 :     <li>Select one or more projects that contain a .project file and have been tagged with branch and version tags and click finish.</li>
82 :     <li>Expand the respository entry to view ...
83 :     <ul>
84 :     <li>projects in HEAD,</li>
85 :     <li>branches and projects in BRANCHES,</li>
86 :     <li>projects and versions in VERSIONS.</li>
87 :     </ul>
88 :     </ol>
89 :    
90 :     <h4>Configure Branches and Versions</h4>
91 :     <ol>
92 :     <li>Select a project in the repositories view and perform "Configure Branches and Versions...".
93 :     <li>Select some branch and version tags to be remembered.</li>
94 :     <li>Expand the respository entry to view ...
95 :     <ul>
96 :     <li>projects in HEAD,</li>
97 :     <li>branches and projects in BRANCHES,</li>
98 :     <li>projects and versions in VERSIONS.</li>
99 :     </ul>
100 :     </ol>
101 :    
102 :     <h3>Working with modules</h3>
103 :     These tests require a CVSROOT/modules file on the server that contains valid module definitions.
104 :     <ol>
105 :     <li>Switch the Repositories View and ensure that the modules are displayed properly.</li>
106 :     <li>Perform "Checkout as Module" and ensure that the module is checkout out properly.
107 :     Also ensure that repeating results in overwrite prompt.</li>
108 :     <li>Perform a "Configure Branches and Versions" on the module, set the autorefresh file and add some tags.
109 :     Ensure that the module now appears properly in association with those tags.</li>
110 :     </ol>
111 :    
112 :     <h2>Project Sharing</h2>
113 :    
114 :     <h3>Project sharing and disconnecting</h3>
115 :     <ol>
116 :     <li>Sharing with no CVS folders against existing project</li>
117 :     <li>Sharing with CVS folders</li>
118 :     <li>Sharing new project with no CVS folders</li>
119 :     <li>Disconnect: keeping and deleting CVS folders, reconnecting (as above)</li>
120 :     </ol>
121 :    
122 :     <h3>Project sets</h3>
123 :     <ol>
124 :     <li>Create one, delete projects, load set and ensure got projects back</li>
125 :     <li>Test against HEAD, project on branch/version.</li>
126 :     </ol>
127 :    
128 :     <h2>CVS workflow</h2>
129 :    
130 :     <h3>Common workflows</h3>
131 :    
132 :     To perform the tests properly, check out the same remote project into two local projects.
133 :    
134 :     <ol>
135 :     <li>Commit and Update with incomming, outgoing and conflicting changes and ensure proper behavior.</i>
136 :     <li>Update/commit with very large files (&gt; 8 meg)</li>
137 :     <li>Replace with (latest, base, branch, version, revision)</li>
138 :     <li>Compare with (latest, base, branch, version, revision)</li>
139 :     <li>Ensure you are prompted for unsaved changes before performing a CVS action</li>
140 :     <li>Tag as Version and ensure that remote is tagged properly.</li>
141 :     <li>Tag as Version with dirty local resources and ensure proper prompting.</li>
142 :     <li>Change ASCII/Binary Property on projects and resources and ensure proper behavior.</li>
143 :     </ol>
144 :    
145 :     <h3>Ignoring resources</h3>
146 :     <ol>
147 :     <li>Ignoring resources</li>
148 :     <li>&#8220;Add to .cvsignore&#8221;</li>
149 :     <li>Add to global ignore list, ensure its now ignored</li>
150 :     </ol>
151 :    
152 :     <h3>Global Actions</h3>
153 :     Test the following CVS global actions in the CVS Repository Exploring perspective.
154 :     <ol>
155 :     <li>Synchronize All</li>
156 :     <li>New Repository Location</li>
157 :     </ol>
158 :    
159 :     <h3>Decorators</h3>
160 :     <ol>
161 :     <li>Change all the options, apply, see them redraw correctly</li>
162 :     <li>Add/remove items, ensure dirty markers update</li>
163 :     <li>Add to version control and see decorator change</li>
164 :     <li>Performance with large trees expanded</li>
165 :     <li>Collapse large tree, exit workspace, restart (should not be as expensive
166 :     as if tree had been left expanded)</li>
167 : mvalenta 1.3 <li>Close a decorated project and then open it to ensure good response.</li>
168 :     <li>Checkout a project with decorators on to ensure good response.</li>
169 : mvalenta 1.1 </ol>
170 :    
171 :     <h3>Patching</h3>
172 :     Creating patches and then comparing with them. In particular,
173 :     <ol>
174 :     <li>added files</li>
175 :     <li>deleted files</li>
176 :     <li>added or deleted folders with added or deleted files in them</li>
177 :     <li>binary files</li>
178 :     </ol>
179 :    
180 :     <h3>Watch/Edit</h3>
181 :     <ol>
182 :     <li>Turn on watch/edit in preferences (Team/CVS/Watch/Edit)</li>
183 :     <li>Turn on the CVS decorators
184 :     <li>Check out a project and ensure all files are read-only</li>
185 :     <li>Open a file in an editor and start typing. Ensure that decorator an file changes and file is no longer read-only.</li>
186 :     <li>Perform a Team/Show CVS Editors on the file and/or project.</li>
187 :     <li>Perform a Team/Unedit on the file to ensure that file is returned to base contents and is read-only.
188 :     (or perform a Team/Commit and ensure the file is returned to being read-only).</li>
189 :     </ol>
190 :    
191 :     <h3>Working with Modules</h3>
192 :     These test require valid moduel definitions in the CVSROOT/modules file of the repository
193 :     <ol>
194 :     <li>Checkout a module and ensure success.</li>
195 :     <li>Perform other CVS tests on the local project as if it were a regular project.</li>
196 :     </ol>
197 :    
198 :     <h3>Misc</h3>
199 :     <ol>
200 :     <li>Mixing tags within a project.</li>
201 :     <li>Properties pages for projects, folders and files.</li>
202 :     <li>CVS Console: ensure written to</li>
203 :     <li>Check canceling everywhere there's a progress monitor</li>
204 :     <li>Does it cancel in reasonable time?</li>
205 :     <li>Is the workspace in an ok state after?</li>
206 :     <li>Compression switches, ensure data transfered ok (commit, update)</li>
207 :     </ol>
208 :    
209 :     <h1>Section 2: CVS Synchronize View</h1>
210 :     <table height="124" border="1" width="99%">
211 :     <tbody>
212 :     <tr>
213 :     <td width="25%"><b>Change Type</b></td>
214 :     <td width="25%"><b>Action</b></td>
215 :     <td width="50%"><b>Result</b></td>
216 :     </tr>
217 :     <tr>
218 :     <td width="25%"><b>Incoming File Change</b></td>
219 :     <td width="25%">Update</td>
220 :     <td width="50%">Remote contents become local. Try with both Text and
221 :     Binary files.</td>
222 :     </tr>
223 :     <tr>
224 :     <td width="25%"><b>Incoming File Change</b></td>
225 :     <td width="25%">Override and Commit</td>
226 :     <td width="50%">Only in Both mode. Prompt for release comment. Cancel
227 :     aborts, OK commits local file to server.</td>
228 :     </tr>
229 :     <tr>
230 :     <td width="25%"><b>Incoming File Addition</b></td>
231 :     <td width="25%">Update</td>
232 :     <td width="50%">Remote contents become local. Try with both Text and
233 :     Binary files.</td>
234 :     </tr>
235 :     <tr>
236 :     <td width="25%"><b>Incoming File Addition</b></td>
237 :     <td width="25%">Override and Commit</td>
238 :     <td width="50%">Only in Both mode. Prompt for release comment. Cancel
239 :     aborts, OK commits deletion to server.</td>
240 :     </tr>
241 :     <tr>
242 :     <td width="25%"><b>Incoming File Deletion</b></td>
243 :     <td width="25%">Update</td>
244 :     <td width="50%">Local file is deleted.</td>
245 :     </tr>
246 :     <tr>
247 :     <td width="25%"><b>Incoming File Deletion</b></td>
248 :     <td width="25%">Override and Commit</td>
249 :     <td width="50%">Only in Both mode. Prompt for release comment. Cancel
250 :     aborts, OK commits local file to server.</td>
251 :     </tr>
252 :     <tr>
253 :     <td width="25%"><b>Outgoing File Change</b></td>
254 :     <td width="25%">Commit</td>
255 :     <td width="50%">Prompt for release comment. Cancel aborts, OK commits
256 :     local file to server.</td>
257 :     </tr>
258 :     <tr>
259 :     <td width="25%"><b>Outgoing File Change</b></td>
260 :     <td width="25%">Override and Update</td>
261 :     <td width="50%">Only in Both mode. Remote contents become local. Try
262 :     with both Text and Binary files.</td>
263 :     </tr>
264 :     <tr>
265 :     <td width="25%"><b>Outgoing File Addition</b></td>
266 :     <td width="25%">Add to Version Control</td>
267 :     <td width="50%">Adds the file to version control. The icon should change
268 :     in the sync view, and Commit should now be enabled.</td>
269 :     </tr>
270 :     <tr>
271 :     <td width="25%"><b>Outgoing File Addition</b></td>
272 :     <td width="25%">Add to .cvsignore</td>
273 :     <td width="50%">Adds the file to .cvsignore. The file should disappear
274 :     from the sync view. The .cvsignore file should appear (if it wasn't visible
275 :     already). The file should not appear in subsequent syncs.</td>
276 :     </tr>
277 :     <tr>
278 :     <td width="25%"><b>Outgoing File Addition</b></td>
279 :     <td width="25%">Commit</td>
280 :     <td width="50%">Commit is only enabled on an outgoing addition if it
281 :     has first been added to version control. Prompt for release comment. Cancel
282 :     aborts, OK commits local file to server.</td>
283 :     </tr>
284 :     <tr>
285 :     <td width="25%"><b>Outgoing File Addition</b></td>
286 :     <td width="25%">Override and Update</td>
287 :     <td width="50%">Only in Both mode. Local file is deleted.</td>
288 :     </tr>
289 :     <tr>
290 :     <td width="25%"><b>Outgoing File Deletion</b></td>
291 :     <td width="25%">Commit</td>
292 :     <td width="50%">Prompt for release comment. Cancel aborts, OK commits
293 :     deletion to server.</td>
294 :     </tr>
295 :     <tr>
296 :     <td width="25%"><b>Outgoing File Deletion</b></td>
297 :     <td width="25%">Override and Update</td>
298 :     <td width="50%">Only in Both mode. File is re-created, remote contents
299 :     become local.</td>
300 :     </tr>
301 :     <tr>
302 :     <td width="25%"><b>Conflicting File Change</b></td>
303 :     <td width="25%">Override and Commit</td>
304 :     <td width="50%">Prompt for release comment. Cancel aborts, OK commits
305 :     local file to server. Applies to both auto-mergeable and non-mergeable conflicts.</td>
306 :     </tr>
307 :     <tr>
308 :     <td width="25%"><b>Auto-mergeable Conflicting File Change</b></td>
309 :     <td width="25%">Override and Update</td>
310 :     <td width="50%">Auto-mergeable conflicts have a two-way red/green arrow.
311 :     Dialog prompts user to either auto-merge or replace. If user chooses auto-merge,
312 :     then remote changes are merged in with local changes. File should still
313 :     be dirty, local changes should still be present, CVS markup should not be
314 :     present, and no .# files should have been created. If user chooses replace,
315 :     then local changes are discarded and remote contents replace local. No .#
316 :     files created, no CVS markup, and the file is not dirty as a result. If
317 :     the user chooses cancel nothing happens.</td>
318 :     </tr>
319 :     <tr>
320 :     <td width="25%"><b>Non-mergeable Conflicting File Change</b></td>
321 :     <td width="25%">Override and Update</td>
322 :     <td width="50%">Dialog prompts user to replace local changes. If user
323 :     cancels nothing happens. If user chooses OK, then local changes are discarded
324 :     and remote contents replace local. No .# files created, no CVS markup, and
325 :     the file is not dirty as a result.</td>
326 :     </tr>
327 :     <tr>
328 :     <td width="25%"><b>Conflicting File Addition</b></td>
329 :     <td width="25%">Add to Version Control</td>
330 :     <td width="50%">Adds the file to version control. The icon should change
331 :     in the sync view, and Override and Commit should now be enabled.</td>
332 :     </tr>
333 :     <tr>
334 :     <td width="25%"><b>Conflicting File Addition</b></td>
335 :     <td width="25%">Override and Commit</td>
336 :     <td width="50%">Override and Commit is only enabled on an outgoing addition
337 :     if it has first been added to version control. Prompt to warn of conflicting
338 :     changes. If OK, prompt for release comment. Cancel aborts either dialog.
339 :     OK commits local file to server.</td>
340 :     </tr>
341 :     <tr>
342 :     <td width="25%"><b>Conflicting File Addition</b></td>
343 :     <td width="25%">Override and Update</td>
344 :     <td width="50%">Remote contents become local.</td>
345 :     </tr>
346 :     </tbody>
347 :     </table>
348 :     <h2>Variations</h2>
349 :     <h3>Container Selection</h3>
350 :     <p>Normally, selecting a folder is the same as selecting all of the individual
351 :     files underneath it. (The exception to this is if the folder itself is changed,
352 :     such as a conflicting addition). Performing any of the above operations
353 :     on a folder should behave as if the files underneath it were selected.</p>
354 :     <p>Note that if an action is not specified for a change type, it does not
355 :     apply to that change type. This is important in container selection.</p>
356 :     <p>For example: Commit does not apply to conflicting changes. If you select
357 :     a folder with an Outgoing Change and a Conflicting Change in it, Commit
358 :     will apply to the Outgoing Change but not to the Conflicting Change.</p>
359 :     <h3>Multi-Selection</h3>
360 :     <p>If multiple resources are selected, an action is enabled if it applies
361 :     to any one or more of the selected resources. Choosing that action will
362 :     apply the action only to those resources for which it is applicable.</p>
363 :     <p>For example: Commit does not apply to conflicting changes. Selecting an
364 :     Outgoing Change and a Conflicting Change will result in Commit being enabled.
365 :     Choosing Commit will apply to the Outgoing Change but not to the Conflicting
366 :     Change.</p>
367 :     <p>Multi-Selection and Container Selection may be used in any combination
368 :     with predictable results.</p>
369 :     <h2>Specific Scenaria</h2>
370 :     <h3>Making Manual Changes</h3>
371 :     <p>Create a conflicting file change. Manually edit the left source pane in
372 :     the sync view. Hit "Save" on the popup menu. The file should remain a Conflict;
373 :     you should get a prompt telling you to Mark as Merged when finished. Choose
374 :     Mark as Merged in the popup menu of the tree. The file should change to
375 :     an outgoing change. Commit the outgoing change.</p>
376 :     <h3>Merging Conflicts</h3>
377 :     <p>Try Override and Update with different combinations of Auto-Mergeable
378 :     and Non-Mergeable conflicts in the selection. If all conflicts are Non-Mergeable,
379 :     then the only choice is to replace with remote or cancel. If one or more
380 :     conflicts are Auto-Mergeable, the choices are (a) Auto-Merge any applicable
381 :     files, and replace the rest with remote, (b) Replace all files with remote
382 :     or (c) Cancel.</p>
383 :     <h3>Removing from View</h3>
384 :     <p>Choose Remove from View. Selected nodes should disappear. Refresh the
385 :     view. The nodes should reappear.</p>
386 :     <h3>Synchronize Outgoing Changes</h3>
387 :     <p>If you choose Synchronize Outgoing Changes from the navigator, the sync
388 :     view should be populated with <b>only the Outgoing Changes and Conflicts</b>
389 :     . This operation should be significantly faster in many cases. In this
390 :     case, ensure that Refresh does not cause Incoming Changes to appear.</p>
391 :     <h3>Working with Branches</h3>
392 :     <p>Try any and all of the above, but use a branch instead of HEAD. Behaviour
393 :     should be identical. The sync view decorator should show you the name of
394 :     the branch.</p>
395 :     <h3>Using Mixed Tags</h3>
396 :     <p>Using Team-&gt;Branch, Replace With-&gt;Branch or Version, and Team-&gt;Tag
397 :     as Version, you can create a project which has different tags mixed into
398 :     it. For example, one folder may be shared as V2_0, a single file may be attached
399 :     to the branch NEW_FEATURE_BRANCH, and the root of the project may be attached
400 :     to HEAD. We need to test usage of these projects in the sync view. For example,
401 :     if developer 1 has project P shared with HEAD, and folder P/F is shared
402 :     with branch B, have developer 2 release a change to folder F in HEAD, and
403 :     have developer 1 perform a sync. In this case developer 1 should not see
404 :     the incoming change.</p>
405 :    
406 :     <h1>Section 4: Branching and Merging</h1>
407 :     <h2>Main branching scenario</h2>
408 :     Here's the main sequence of steps performed over the life cycle of a simple
409 :     branch.<br>
410 :     <ol>
411 :     <li>Load or create a shared project with shared content</li>
412 :     <li>Perform a Team/Branch...</li>
413 :     <li>Ensure that the tag on the local resources has been updated (either
414 :     using the CVS decorators or resource properties)</li>
415 :     <li>Make some changes to local resources and commit them (working in a branch
416 :     is similar to working in HEAD. See the Synchronize test plan for detaits).</li>
417 :     <li>Load HEAD</li>
418 :     <li>Optionaly, make some changes to HEAD (may or may not be committed)</li>
419 :     <li>Perform a Team/Merge... to merge the branch with HEAD. Merging is similar
420 :     to synchronizing but only incoming and conflicting changes are shown. See
421 :     the Synchronize test plan for detaits</li>
422 :     </ol>
423 :     <h2>Variations</h2>
424 :     <h3>Comparing branch, root version and HEAD</h3>
425 :     After any of the above steps that modify the local content or the remote
426 :     content, the success of the operation can ne validated by comparing the local
427 :     workspace copy with either HEAD, the branch or the root version specified
428 :     when creating the branch.
429 :     <h3>Branch with local changes</h3>
430 :     Before branching, make some local changes but do not commit them. Changes
431 :     can include additions and deletions. After branches ensure that the changes
432 :     are still there. On merging ensure that any created or deleted resources
433 :     appear properly in the merge editor.
434 :     <h3>Don't start working in the branch</h3>
435 :     When the branch is created, do not start working in the branch. Ensure
436 :     that the workspace was not modified but that the branch and root version
437 :     exists remotely (using Comapre With/Branch or Version...)
438 :     <h3>Branch on a folder or file</h3>
439 :     Branching can also be performed on a folder or file.
440 :     <h3>Merge from Head to a branch</h3>
441 :     Make some changes to a branch and to HEAD. Merge the changes from HEAD
442 :     into the branch before merging the branch with HEAD.
443 : mvalenta 1.2
444 :    
445 :     <h1>Section 3: Migration from 2.0 to 2.1</h1>
446 :     The below tests require a workspace created using 2.0 which contains
447 :     projects checked out from a CVS repository.<br>
448 :     <h3>Migrating a workspace project created using 2.0 to 2.1</h3>
449 :     <ol>
450 :     <li>Start Eclipse 2.1 on top of a workspace from 2.0</li>
451 :     <li>Select a project that was shared with a CVS repository and chose Team/Share
452 :     Project&#8230;</li>
453 :     <li>Select the Repository location to share with or enter it if it does
454 :     not appear in the list.</li>
455 :     <li>Upon finish, the user will be prompted to select either HEAD or the
456 :     branch to compare against. </li>
457 :     <li>The Synchronize view will then be opened and all files will appear
458 :     as incoming, outgoing or conflicting additions.</li>
459 :     <li>To see the real conflicts, enable &#8220;Compare File Contents&#8221; available
460 :     from the drop down menu in the title bar of the Synchronize View.</li>
461 :     <li>Resolve the real incoming, outgoing additions &nbsp;and conflicts as
462 :     appropriate (see sync view test plan for a description of sync state resolution)</li>
463 :     <li>When all conflicts are resolved, disable &#8220;Compare File Contents&#8221; and
464 :     perform an &#8220;Override and Update&#8221; on the remaining conflicting additions to
465 :     update the sync info of the local resources.</li>
466 :     <li>Ensure local copy contains the proper contents (can use Compare With/Latest
467 :     from Repository)<br>
468 :     </li>
469 :     </ol>
470 :    
471 : mvalenta 1.1 </body>
472 :     </html>