platform-vcm-home/2_0_testing.html

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : kevinm 1.1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 :     <html>
3 :     <head>
4 : mvalenta 1.4
5 : kevinm 1.1 <link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
6 :     <title>Team Testing Roadmap</title>
7 : mvalenta 1.4
8 : kevinm 1.1 <meta name="author" content="OTI Employee">
9 : mvalenta 1.4
10 : kevinm 1.1 <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
11 :     </head>
12 : mvalenta 1.4 <body>
13 : kevinm 1.1 <h1>Section 1: General CVS Tests</h1>
14 :     <h3>Interoperability</h3>
15 :     <ol>
16 : mvalenta 1.4 <li>Bringing in java projects without a .project - should prompt for project
17 :     type to create.</li>
18 : kevinm 1.1 </ol>
19 :     <h3>First time setup</h3>
20 :     <ol>
21 :     <li>Modules in the repo view and checking out modules</li>
22 :     </ol>
23 :     <h3>Project sharing and disconnecting</h3>
24 :     <ol>
25 :     <li>Sharing with no CVS folders against existing project</li>
26 :     <li>Sharing with CVS folders</li>
27 :     <li>Sharing new project with no CVS folders</li>
28 :     <li>Disconnect: keeping and deleting CVS folders, reconnecting (as above)</li>
29 :     </ol>
30 :     <h3>CVS workflow</h3>
31 :     <ol>
32 :     <li>Ignoring resources</li>
33 : mvalenta 1.4 <li>&#8220;Add to .cvsignore&#8221;</li>
34 : kevinm 1.1 <li>Add to global ignore list, ensure its now ignored</li>
35 :     <li>Replace with (base, branch, version)</li>
36 : mvalenta 1.4 <li>Update/commit with very large files (&gt; 8 meg)</li>
37 :     <li>Ensure you are prompted for unsaved changes before performing a CVS
38 :     action</li>
39 : kevinm 1.1 </ol>
40 :     <h3>Project sets</h3>
41 :     <ol>
42 :     <li>Create one, delete projects, load set and ensure got projects back</li>
43 :     <li>Test against HEAD, project on branch/version.</li>
44 :     </ol>
45 :     <h3>Branching/Merging</h3>
46 :     <h3>Decorators</h3>
47 :     <ol>
48 :     <li>Change all the options, apply, see them redraw correctly</li>
49 :     <li>Add/remove items, ensure dirty markers update</li>
50 :     <li>Add to version control and see decorator change</li>
51 :     <li>Performance with large trees expanded</li>
52 : mvalenta 1.4 <li>Collapse large tree, exit workspace, restart (should not be as expensive
53 :     as if tree had been left expanded)</li>
54 : kevinm 1.1 </ol>
55 :     <h3>Patching</h3>
56 : mvalenta 1.4 Creating patches and then comparing with them. In particular,
57 : kevinm 1.1 <ol>
58 :     <li>added files</li>
59 :     <li>deleted files</li>
60 :     <li>added or deleted folders with added or deleted files in them</li>
61 :     <li>binary files</li>
62 :     </ol>
63 :     <h3>Misc</h3>
64 :     <ol>
65 :     <li>CVS Console: ensure written to</li>
66 :     <li>Check canceling everywhere there's a progress monitor</li>
67 :     <li>Does it cancel in reasonable time?</li>
68 :     <li>Is the workspace in an ok state after?</li>
69 :     <li>Compression switches, ensure data transfered ok (commit, update)</li>
70 :     </ol>
71 :     <h1>Section 2: CVS Synchronize View</h1>
72 :     <table height="124" border="1" width="99%">
73 : mvalenta 1.4 <tbody>
74 :     <tr>
75 :     <td width="25%"><b>Change Type</b></td>
76 :     <td width="25%"><b>Action</b></td>
77 :     <td width="50%"><b>Result</b></td>
78 :     </tr>
79 :     <tr>
80 :     <td width="25%"><b>Incoming File Change</b></td>
81 :     <td width="25%">Update</td>
82 :     <td width="50%">Remote contents become local. Try with both Text and
83 :     Binary files.</td>
84 :     </tr>
85 :     <tr>
86 :     <td width="25%"><b>Incoming File Change</b></td>
87 :     <td width="25%">Override and Commit</td>
88 :     <td width="50%">Only in Both mode. Prompt for release comment. Cancel
89 :     aborts, OK commits local file to server.</td>
90 :     </tr>
91 :     <tr>
92 :     <td width="25%"><b>Incoming File Addition</b></td>
93 :     <td width="25%">Update</td>
94 :     <td width="50%">Remote contents become local. Try with both Text and
95 :     Binary files.</td>
96 :     </tr>
97 :     <tr>
98 :     <td width="25%"><b>Incoming File Addition</b></td>
99 :     <td width="25%">Override and Commit</td>
100 :     <td width="50%">Only in Both mode. Prompt for release comment. Cancel
101 :     aborts, OK commits deletion to server.</td>
102 :     </tr>
103 :     <tr>
104 :     <td width="25%"><b>Incoming File Deletion</b></td>
105 :     <td width="25%">Update</td>
106 :     <td width="50%">Local file is deleted.</td>
107 :     </tr>
108 :     <tr>
109 :     <td width="25%"><b>Incoming File Deletion</b></td>
110 :     <td width="25%">Override and Commit</td>
111 :     <td width="50%">Only in Both mode. Prompt for release comment. Cancel
112 :     aborts, OK commits local file to server.</td>
113 :     </tr>
114 :     <tr>
115 :     <td width="25%"><b>Outgoing File Change</b></td>
116 :     <td width="25%">Commit</td>
117 :     <td width="50%">Prompt for release comment. Cancel aborts, OK commits
118 :     local file to server.</td>
119 :     </tr>
120 :     <tr>
121 :     <td width="25%"><b>Outgoing File Change</b></td>
122 :     <td width="25%">Override and Update</td>
123 :     <td width="50%">Only in Both mode. Remote contents become local. Try
124 :     with both Text and Binary files.</td>
125 :     </tr>
126 :     <tr>
127 :     <td width="25%"><b>Outgoing File Addition</b></td>
128 :     <td width="25%">Add to Version Control</td>
129 :     <td width="50%">Adds the file to version control. The icon should change
130 :     in the sync view, and Commit should now be enabled.</td>
131 :     </tr>
132 :     <tr>
133 :     <td width="25%"><b>Outgoing File Addition</b></td>
134 :     <td width="25%">Add to .cvsignore</td>
135 :     <td width="50%">Adds the file to .cvsignore. The file should disappear
136 :     from the sync view. The .cvsignore file should appear (if it wasn't visible
137 :     already). The file should not appear in subsequent syncs.</td>
138 :     </tr>
139 :     <tr>
140 :     <td width="25%"><b>Outgoing File Addition</b></td>
141 :     <td width="25%">Commit</td>
142 :     <td width="50%">Commit is only enabled on an outgoing addition if it
143 :     has first been added to version control. Prompt for release comment. Cancel
144 :     aborts, OK commits local file to server.</td>
145 :     </tr>
146 :     <tr>
147 :     <td width="25%"><b>Outgoing File Addition</b></td>
148 :     <td width="25%">Override and Update</td>
149 :     <td width="50%">Only in Both mode. Local file is deleted.</td>
150 :     </tr>
151 :     <tr>
152 :     <td width="25%"><b>Outgoing File Deletion</b></td>
153 :     <td width="25%">Commit</td>
154 :     <td width="50%">Prompt for release comment. Cancel aborts, OK commits
155 :     deletion to server.</td>
156 :     </tr>
157 :     <tr>
158 :     <td width="25%"><b>Outgoing File Deletion</b></td>
159 :     <td width="25%">Override and Update</td>
160 :     <td width="50%">Only in Both mode. File is re-created, remote contents
161 :     become local.</td>
162 :     </tr>
163 :     <tr>
164 :     <td width="25%"><b>Conflicting File Change</b></td>
165 :     <td width="25%">Override and Commit</td>
166 :     <td width="50%">Prompt for release comment. Cancel aborts, OK commits
167 :     local file to server. Applies to both auto-mergeable and non-mergeable conflicts.</td>
168 :     </tr>
169 :     <tr>
170 :     <td width="25%"><b>Auto-mergeable Conflicting File Change</b></td>
171 :     <td width="25%">Override and Update</td>
172 :     <td width="50%">Auto-mergeable conflicts have a two-way red/green arrow.
173 :     Dialog prompts user to either auto-merge or replace. If user chooses auto-merge,
174 :     then remote changes are merged in with local changes. File should still
175 :     be dirty, local changes should still be present, CVS markup should not be
176 :     present, and no .# files should have been created. If user chooses replace,
177 :     then local changes are discarded and remote contents replace local. No .#
178 :     files created, no CVS markup, and the file is not dirty as a result. If
179 :     the user chooses cancel nothing happens.</td>
180 :     </tr>
181 :     <tr>
182 :     <td width="25%"><b>Non-mergeable Conflicting File Change</b></td>
183 :     <td width="25%">Override and Update</td>
184 :     <td width="50%">Dialog prompts user to replace local changes. If user
185 :     cancels nothing happens. If user chooses OK, then local changes are discarded
186 :     and remote contents replace local. No .# files created, no CVS markup, and
187 :     the file is not dirty as a result.</td>
188 :     </tr>
189 :     <tr>
190 :     <td width="25%"><b>Conflicting File Addition</b></td>
191 :     <td width="25%">Add to Version Control</td>
192 :     <td width="50%">Adds the file to version control. The icon should change
193 :     in the sync view, and Override and Commit should now be enabled.</td>
194 :     </tr>
195 :     <tr>
196 :     <td width="25%"><b>Conflicting File Addition</b></td>
197 :     <td width="25%">Override and Commit</td>
198 :     <td width="50%">Override and Commit is only enabled on an outgoing addition
199 :     if it has first been added to version control. Prompt to warn of conflicting
200 :     changes. If OK, prompt for release comment. Cancel aborts either dialog.
201 :     OK commits local file to server.</td>
202 :     </tr>
203 :     <tr>
204 :     <td width="25%"><b>Conflicting File Addition</b></td>
205 :     <td width="25%">Override and Update</td>
206 :     <td width="50%">Remote contents become local.</td>
207 :     </tr>
208 :     </tbody>
209 : kevinm 1.1 </table>
210 :     <h2>Variations</h2>
211 :     <h3>Container Selection</h3>
212 : mvalenta 1.4 <p>Normally, selecting a folder is the same as selecting all of the individual
213 :     files underneath it. (The exception to this is if the folder itself is changed,
214 :     such as a conflicting addition). Performing any of the above operations
215 :     on a folder should behave as if the files underneath it were selected.</p>
216 :     <p>Note that if an action is not specified for a change type, it does not
217 :     apply to that change type. This is important in container selection.</p>
218 :     <p>For example: Commit does not apply to conflicting changes. If you select
219 :     a folder with an Outgoing Change and a Conflicting Change in it, Commit
220 :     will apply to the Outgoing Change but not to the Conflicting Change.</p>
221 : kevinm 1.1 <h3>Multi-Selection</h3>
222 : mvalenta 1.4 <p>If multiple resources are selected, an action is enabled if it applies
223 :     to any one or more of the selected resources. Choosing that action will
224 :     apply the action only to those resources for which it is applicable.</p>
225 :     <p>For example: Commit does not apply to conflicting changes. Selecting an
226 :     Outgoing Change and a Conflicting Change will result in Commit being enabled.
227 :     Choosing Commit will apply to the Outgoing Change but not to the Conflicting
228 :     Change.</p>
229 :     <p>Multi-Selection and Container Selection may be used in any combination
230 :     with predictable results.</p>
231 : kevinm 1.1 <h2>Specific Scenaria</h2>
232 :     <h3>Making Manual Changes</h3>
233 : mvalenta 1.4 <p>Create a conflicting file change. Manually edit the left source pane in
234 :     the sync view. Hit "Save" on the popup menu. The file should remain a Conflict;
235 :     you should get a prompt telling you to Mark as Merged when finished. Choose
236 :     Mark as Merged in the popup menu of the tree. The file should change to
237 :     an outgoing change. Commit the outgoing change.</p>
238 : kevinm 1.1 <h3>Merging Conflicts</h3>
239 : mvalenta 1.4 <p>Try Override and Update with different combinations of Auto-Mergeable
240 :     and Non-Mergeable conflicts in the selection. If all conflicts are Non-Mergeable,
241 :     then the only choice is to replace with remote or cancel. If one or more
242 :     conflicts are Auto-Mergeable, the choices are (a) Auto-Merge any applicable
243 :     files, and replace the rest with remote, (b) Replace all files with remote
244 :     or (c) Cancel.</p>
245 : kevinm 1.1 <h3>Removing from View</h3>
246 : mvalenta 1.4 <p>Choose Remove from View. Selected nodes should disappear. Refresh the
247 :     view. The nodes should reappear.</p>
248 : kevinm 1.1 <h3>Synchronize Outgoing Changes</h3>
249 : mvalenta 1.4 <p>If you choose Synchronize Outgoing Changes from the navigator, the sync
250 :     view should be populated with <b>only the Outgoing Changes and Conflicts</b>
251 :     . This operation should be significantly faster in many cases. In this
252 :     case, ensure that Refresh does not cause Incoming Changes to appear.</p>
253 : james 1.2 <h3>Working with Branches</h3>
254 : mvalenta 1.4 <p>Try any and all of the above, but use a branch instead of HEAD. Behaviour
255 :     should be identical. The sync view decorator should show you the name of
256 :     the branch.</p>
257 : james 1.2 <h3>Using Mixed Tags</h3>
258 : mvalenta 1.4 <p>Using Team-&gt;Branch, Replace With-&gt;Branch or Version, and Team-&gt;Tag
259 :     as Version, you can create a project which has different tags mixed into
260 :     it. For example, one folder may be shared as V2_0, a single file may be attached
261 :     to the branch NEW_FEATURE_BRANCH, and the root of the project may be attached
262 :     to HEAD. We need to test usage of these projects in the sync view. For example,
263 :     if developer 1 has project P shared with HEAD, and folder P/F is shared
264 :     with branch B, have developer 2 release a change to folder F in HEAD, and
265 :     have developer 1 perform a sync. In this case developer 1 should not see
266 :     the incoming change.</p>
267 : kevinm 1.1 <h1>Section 3: Migration from 1.0 to 2.0</h1>
268 : mvalenta 1.4 Both the below tests require a workspace created using 1.0 which contains
269 :     projects checked out from a CVS repository.<br>
270 : kevinm 1.1 <h3>Migrating a workspace project created using 1.0 to 2.0</h3>
271 :     <ol>
272 :     <li>Start Eclipse 2.0 on top of a workspace from 1.0</li>
273 : mvalenta 1.4 <li>Select a project that was shared with a CVS repository and chose Team/Share
274 :     Project&#8230;</li>
275 :     <li>Select the Repository location to share with or enter it if it does
276 :     not appear in the list.</li>
277 :     <li>Upon finish, the user will be prompted to select either HEAD or the
278 :     branch to compare against. </li>
279 :     <li>The Synchronize view will then be opened and all files will appear
280 : kevinm 1.1 as incoming, outgoing or conflicting additions.</li>
281 : mvalenta 1.4 <li>To see the real conflicts, enable &#8220;Compare File Contents&#8221; available
282 :     from the drop down menu in the title bar of the Synchronize View.</li>
283 :     <li>Resolve the real incoming, outgoing additions &nbsp;and conflicts as
284 : kevinm 1.1 appropriate (see sync view test plan for a description of sync state resolution)</li>
285 : mvalenta 1.4 <li>When all conflicts are resolved, disable &#8220;Compare File Contents&#8221; and
286 :     perform an &#8220;Override and Update&#8221; on the remaining conflicting additions to
287 :     update the sync info of the local resources.</li>
288 :     <li>Ensure local copy contains the proper contents (can use Compare With/Latest
289 :     from Repository)<br>
290 : kevinm 1.1 </li>
291 :     </ol>
292 :     <h3>Migrating a project in a CVS Repository from 1.0 to 2.0</h3>
293 :     <ol>
294 :     <li>Load the project to be migrated&nbsp; from the repository</li>
295 :     <li>Perform Team/Set Keyword Substitution&#8230;</li>
296 :     <ol type="i">
297 : mvalenta 1.4 <li>On page 1, set the keyword substitution mode determination to automatic
298 :     (the default)</li>
299 : kevinm 1.1 <li>On page 2, include files that are already shared</li>
300 : mvalenta 1.4 <li>On page 3, ensure that files that are to be changed are actually
301 :     text files, Also, show files that will not be changed and ensure that they
302 :     are not text.<br>
303 : kevinm 1.1 </li>
304 : mvalenta 1.4 <li>Upon finish, changed files are commited and the keyword substitution
305 :     mode is changed.</li>
306 : kevinm 1.1 </ol>
307 : mvalenta 1.4 <li>Checkout a copy of the project and ensure that the file keyword substitution
308 :     modes are correct<br>
309 : kevinm 1.1 </li>
310 :     </ol>
311 : mvalenta 1.4 <h1>Section 4: Branching and Merging</h1>
312 :     <h2>Main branching scenario</h2>
313 :     Here's the main sequence of steps performed over the life cycle of a simple
314 :     branch.<br>
315 :     <ol>
316 :     <li>Load or create a shared project with shared content</li>
317 :     <li>Perform a Team/Branch...</li>
318 :     <li>Ensure that the tag on the local resources has been updated (either
319 :     using the CVS decorators or resource properties)</li>
320 :     <li>Make some changes to local resources and commit them (working in a branch
321 :     is similar to working in HEAD. See the Synchronize test plan for detaits).</li>
322 :     <li>Load HEAD</li>
323 :     <li>Optionaly, make some changes to HEAD (may or may not be committed)</li>
324 :     <li>Perform a Team/Merge... to merge the branch with HEAD. Merging is similar
325 :     to synchronizing but only incoming and conflicting changes are shown. See
326 :     the Synchronize test plan for detaits</li>
327 :     </ol>
328 :     <h2>Variations</h2>
329 :     <h3>Comparing branch, root version and HEAD</h3>
330 :     After any of the above steps that modify the local content or the remote
331 :     content, the success of the operation can ne validated by comparing the local
332 :     workspace copy with either HEAD, the branch or the root version specified
333 :     when creating the branch.
334 :     <h3>Branch with local changes</h3>
335 :     Before branching, make some local changes but do not commit them. Changes
336 :     can include additions and deletions. After branches ensure that the changes
337 :     are still there. On merging ensure that any created or deleted resources
338 :     appear properly in the merge editor.
339 :     <h3>Don't start working in the branch</h3>
340 :     When the branch is created, do not start working in the branch. Ensure
341 :     that the workspace was not modified but that the branch and root version
342 :     exists remotely (using Comapre With/Branch or Version...)
343 :     <h3>Branch on a folder or file</h3>
344 :     Branching can also be performed on a folder or file.
345 :     <h3>Merge from Head to a branch</h3>
346 :     Make some changes to a branch and to HEAD. Merge the changes from HEAD
347 :     into the branch before merging the branch with HEAD.
348 : kevinm 1.1 </body>
349 :     </html>