cornercorner
FeaturesPluginsDocs & SupportCommunityPartners

VSS Profile Test Specification for Generic VCS Module

Author: Jiri Kovalsky
Version: 1.0
Last update: Tue July 4 13:08:31 CET 2002

Table of Contents


1. Introduction:

    Microsoft's Visual SourceSafe tool is one the supported version control systems in the IDE. This document describes how VSS profile for Generic VCS module should be tested in order to know whether all of its commands work correctly.

Legend:
This test case is part of validation suite. - this icon represents a test case that is part of validation suite and is used during Q-build testing.
This test case is automated. - this icon represents a test case that was automated and is run daily in test runtime.

2. Mount VSS filesystem

Purpose: This suite tests whether it is possible to mount VSS filesystem according to settings specified in mounting wizard which are defined in chosen VSS profile.
Setup: Be sure to have Microsoft Visual SourceSafe 6.0 or higher installed on your computer with an account created for you. Create new directory with similar contents like it is shown at
these pictures.

Test case # Description
2.1 VSS settings available
This test case is part of validation suite.This test case is automated.
1. Invoke Versioning | Mount Version Control | Generic VCS from main menu.
2. Choose proposed VSS profile from the list suitable for your operating system.
3. Verify that "VSS User Name", "VSS Command", "VSS Project" and "SSDIR" textfields appeared in the dialog.
2.2 VSS connected
This test case is part of validation suite.This test case is automated.
1. Setup "Working Directory" to the directory you prepared e.g. D:\Tests\VSS\Work1.
2. Setup your name to "VSS User Name" textfield.
3. Make sure that "VSS Command" is set correctly with VSS binary.
4. Make sure that "SSDIR" contains directory with srcsafe.ini file.
5. Eventually setup "Unix Shell" in case of Windows 95/98/ME system and push "Finish" button.
6. Give your password and push "OK" button.

3. Repository creation

Purpose: This suite tests whether it is possible to upload source code into VSS repository. It is essential to start version control over new files in order to work with them later on a daily basis.
Setup: The repository of VSS must be completely empty.

Test case # Description
3.1 Create projects
This test case is part of validation suite.This test case is automated.
1. Invoke VSS | Create Project action on "test [Local]" node.
2. Type "For testing purpose." as reason into "Create Project - test" dialog and push "OK" button.
3. Confirm the information message and repeat steps 1 and 2 for "another [Local]" folder node.
3.2 Single file addition
This test case is part of validation suite.This test case is automated.
1. Invoke VSS | Add action on "A_File [Local]" node.
2. Type "Generated A_File class." as reason into "Add - A_File.java" dialog and push "OK" button.
3. Confirm the information message about successful addition.
3.3 Multiple file addition
This test case is part of validation suite.This test case is automated.
1. Select remaining [Local] files as one multiselection using CTRL key.
2. Invoke VSS | Add action on them.
3. Type "Auto-generated class file." as reason into "Add - D_File.java..." dialog and push "OK" button.
4. Confirm all the information dialogs about successful addition.

4. Regular development

Purpose: This suite tests the most often used commands of typical VSS user.
Setup: No preparation required.

Test case # Description
4.1 Checkout a file
This test case is part of validation suite.This test case is automated.
1. Double click "A_File [Current]" node. It will be opened into editor.
2. Right click "A_File [Current]" node in explorer.
3. Select VSS | Check Out from the popup menu.
4.2 Modify the file
This test case is part of validation suite.This test case is automated.
1. Insert brand-new line somewhere into the file.
2. Delete some other line but not directly next to the new line.
3. Modify another line but not directly next to the lines mentioned above and Save the file.
4.3 View differences
This test case is part of validation suite.This test case is automated.
1. Invoke VSS | Diff on "A_File [Locally Modified] (...)" node.
4.4 Checkin the file
This test case is part of validation suite.This test case is automated.
1. Invoke VSS | Check In on "A_File [Locally Modified] (...)" node.
2. Setup "Three lines have changed." as "Change Description" and push "OK" button.
4.5 Inspect the file
This test case is part of validation suite.This test case is automated.
1. Invoke VSS | History on "A_File [Current]" node.
2. Check that correct comment messages of both versions are printed in "Standard Output" tab.
3. Invoke VSS | Properties on "A_File [Current]" node.
4.6 Get a missing file
This test case is part of validation suite.This test case is automated.
1. Invoke VSS | Get Latest Version on "A_File [Current]" node.
2. Check "Make the Local Copy Writable" checkbox and push "OK" button.
3. Delete the "A_File [Current]" node.
4. Repeat step 1 on "A_File.java [Missing]" node once it occurs and just push "OK" button.
4.7 Give up a lock on file
This test case is part of validation suite.This test case is automated.
1. Invoke VSS | Check Out on "A_File [Current]" node.
2. Invoke VSS | Undo Check Out on "A_File [Current] (...)" node.

5. Additional commands

Purpose: This suite tests less often used commands and less typical workflows of VSS user.
Setup: No preparation required.

Test case # Description
5.1 Remove a file from repository
This test case is part of validation suite.This test case is automated.
1. Invoke VSS | Remove on "D_File [Current]" node.
2. Confirm the dialog informing user about successful removal of the file.
5.2 Put back a file to repository
This test case is part of validation suite.This test case is automated.
1. Invoke VSS | Recover on "D_File [Local]" node.
2. Confirm the dialog informing user about successful recovery of the file.
5.3 Local refreshing 1. Externally delete D_File.java file.
2. Within 15 seconds invoke VSS | Refresh on "D_File [Current]" node.
3. The file must immediately change to "D_File.java [Missing]".
4. Invoke VSS | Get Latest Version on "D_File.java [Missing]" node.
5. Push "OK" button and repeat step 1.
6. Within 15 seconds invoke VSS | Refresh on "another [Current]" node.
5.4 Recursive checkout 1. Invoke VSS | Check Out on test [Current] node.
2. Uncheck "Check Out Recursively" and push "OK" button.
3. Close the "Retrieving" dialog and output window once it's done.
4. The "D_File.java" node must stay [Missing].
5. Repeat step 1 and push "OK" button directly.
5.5 Recursive refreshing 1. Externally delete D_File.java file.
2. Within 15 seconds invoke VSS | Refresh Recursively on "test [Current]" node.
5.6 Recursive get latest version 1. Invoke VSS | Get Latest Version on test [Current] node.
2. Uncheck "Get Latest Version Recursively" and push "OK" button.
3. Close the "Retrieving" dialog and output window once it's done.
4. The "D_File.java" node must stay [Missing] (...).
5. Repeat step 1 and push "OK" button directly.
5.7 Recursive undo checkout 1. Invoke VSS | Undo Check Out on test [Current] node.
2. Push "OK" and close the "Retrieving" dialog and output window once it's done.
3. The "D_File.java" node must stay [Current] (...).
4. Repeat step 1, check "Undo checkout recursively" and push "OK" button.
5.8 Recursive checkin 1. Invoke VSS | Check Out on test [Current] node and push "OK".
2. Invoke VSS | Check In on test [Current] node.
3. Uncheck "Check In Recursively" and push "OK" button.
4. Close the "Retrieving" dialog and output window once it's done.
5. The "D_File.java" node must stay [Current] (...).
6. Repeat step 2 and push "OK" button directly.
5.9 Recursive inspection 1. Invoke VSS | History on another [Current] node.
2. Verify that output window contains history of all actions done in that folder like removal or recovery of D_File.java.
3. Invoke VSS | Properties on another [Current] node.
5.10 Set password 1. Create new command "Test" with execution string cmd /x /c "echo ${PASSWORD}" and turn on its "Display Output" property.
2. Invoke VSS | Set Password For $/ command on the filesystem.
3. Type in "abcd" and push "OK" button.
4. Invoke Test command on the filesystem.

6. Additional features

Purpose: This suite tests other features like versioning explorer and VCS groups support.
Setup: No preparation required.

Test case # Description
6.1 View old revision
This test case is automated.
1. Invoke Versioning Explorer on "A_File [Current]" node.
2. "A_File.java [Current]" node must be expanded in special window and contain two revisions with proper comments.
3. Invoke Open on "1.0 Generated A_File class." node.
6.2 Compare two revisions
This test case is automated.
1. Invoke Diff on "1.0 Generated A_File class." node.
2. Exactly the same window as in "4.3 View Differences" test case must get opened into editor.
3. Multiselect both revisions and invoke Diff on them again.
6.3 Add file to VCS group
This test case is part of validation suite.This test case is automated.
1. Invoke Include in VCS Group | <Default Group> on "A_File.java [Current]" node.
2. Invoke Versioning | VCS Groups from main menu.
3. Special window will show up. Expand "<Default Group>" node.
6.4 Checkin from VCS group
This test case is part of validation suite.This test case is automated.
1. Invoke VSS | Check Out on "A_File.java [Current]" node in "Versioning" window.
2. Switch to "Filesystems" tab of explorer, open that file, modify it and Save it.
3. Setup "Description" property of "<Default Group>" node to "Checked in from VCS group.".
4. Invoke VSS | Check In on "<Default Group>" node.
5. Make sure that "Check In - A_File.java" dialog contains "Checked in from VCS group." comment and push "OK".
6.5 Verify VCS group
This test case is part of validation suite.This test case is automated.
1. Invoke Verify on "<Default Group>" node.
2. Check "Remove Files From Group" on "Not Changed" tab and push "Correct Group" button.

Any comments and suggestions please send to Jiri Kovalsky.

Companion
Projects:
MySQL Database Server   GlassFish Community: an Open Source Application Server   Open Solaris  Open JDK: an Open SourceJDK   Mobile & Embedded Community     Sponsored by 
Sponsored by Sun Microsystems