FeaturesPluginsDocs & SupportCommunityPartners

NetBeans CVS Support Test Specification

Author: Peter Pis
Version: 1.16.33
Last update: 15.09.2005
Introduction: Concurrent Versions System open source tool is one of the supported version control systems in the IDE. This document describes how CVS profile for NetBeans CVS Support module should be tested in order to know whether all of its functionality work correctly.
Comment:

Table of Contents

Test suite 1: Setting up CVSRoot

Purpose: This suite tests whether it is possible to setup valid CVS repository using different types of connection to CVS server.
Setup: No special setup is needed.

#Test caseDescription
1CVS pserver
  1. Invoke CVS | Checkout... action from main menu. "Checkout" dialog shows up.
  2. Switch to CVS Root field and set it to e.g. ":pserver:anoncvs@netbeans.org:/cvs"
  3. After setting up ":pserver:" connection type there should be visible "CVS Root", "Password" and "Proxy Configuration..." components.
  4. Setup password and verify functionality of "Proxy Configuration" dialog.
RESULT: Press Next button. Next dialog of "Checkout" should show up. Verify all "Browse..." buttons in second step of "Checkout" dialog. Push "Finish" button. Verify result of Checkout action.
2CVS ext
  1. Invoke CVS | Checkout... action from main menu. "Checkout" dialog shows up.
  2. Switch to CVS Root field and set it to e.g. ":ext:anoncvs@netbeans.org:/cvs"
  3. After setting up ":ext:" connection type there should be visible "CVS Root" text field, "Use Internal SSH" and "Use External Shell" radiobuttons, "Remember Password" checkbox, "Proxy Configuration..." button, "Password", "SSH Command" text field components.
  4. Select "Use Internal SSH" radiobutton.
  5. Select "Use External Shell" radiobutton.
  6. Select "Use Internal SSH" radiobutton again.
  7. Setup valid password.
RESULT: Press Next button. Next dialog of "Checkout" should show up. Verify all "Browse..." buttons in second step of "Checkout" dialog. Push "Finish" button. Verify result of Checkout action.
3CVS local
  1. Invoke CVS | Checkout... action from main menu. "Checkout" dialog shows up.
  2. Switch to CVS Root field and set it to e.g. ":local:/path_repository"
  3. After setting up "fork" connection type there should be visible "CVS Root" component.
RESULT: Press Next button. Next dialog of "Checkout" should show up. Verify all "Browse" buttons in second step of "Checkout" dialog. Push "Finish" button. Verify result of Checkout action.
4CVS fork
  1. Invoke CVS | Checkout... action from main menu. "Checkout" dialog shows up.
  2. Switch to CVS Root field and set it to e.g. ":fork:/path_repository"
  3. After setting up "fork" connection type there should be visible "CVS Root" component.
RESULT: Press Next button. Next dialog of "Checkout" should show up. Verify all "Browse..." buttons in second step of "Checkout" dialog. Push "Finish" button. Verify result of Checkout action.

Test suite 2: Importing new project

Purpose: The goal of this suite is to create new project and upload it to CVS repository.
Setup: No setup is necessary.

#Test caseDescription
1Project import
  1. Invoke "File | New Project..." from main menu.
  2. "New Project" window shows up. Choose e.g "General | Java Application" and push "Next" button.
  3. Setup name of the project, project location as desired and push "Finish" button.
  4. Switch to "Projects" view and select the root of the project.
  5. Invoke CVS | Import into Repository popup menu action.
  6. "Import Project Options" dialogs shows up.
  7. Setup "CVS Root" as desired and all necessary fields for chosen access method and push "Next" button.
  8. Enter some comment into "Import Message" field, check "Check after Import" checkbox and push "Finish" button.
RESULT: In "Output" tab verify whether "Import" and "Check out" command finished successfully. Now CVS context commands on this project root in "Projects" view shouldn't contain "Import into Repository" action.

Test suite 3: Standard development of project

Purpose: This suite tests the most often used commands of typical CVS user.
Setup: No setup is necessary except steps from previous test suite.

#Test caseDescription
1Update action
  1. Switch to "Files" view.
  2. Invoke CVS | Update popup menu action.
RESULT: Verify that in "Output" tab there is message "IDE: [date time] Updating Sources finished".
2File modifying
  1. Select e.g. "Main.java" file, modify it.
  2. Insert brand-new line somewhere into the file.
  3. Delete some other line but not directly next to the new line.
  4. Modify another line but not directly next to the lines mentioned above and Save the file.
RESULT: The file "Main.java" must change its foreground color to blue.
3File differences
  1. Select this file.
  2. Invoke CVS | Diff "Main.java" action from main menu.
RESULT: All three differences must be highlighted in a special window with both versions of the file. New line is green, removed line is red and modified one is blue.
4Files differences
  1. Create new package "xx.yy" in this project.
  2. Create new "Java Class" "NewClass" in package "xx.yy".
  3. Select project root and invoke CVS | Show "Project" Changes from main menu.
  4. Files should be listed in "Versioning" tab - "Main.java" and "NewClass".
  5. Select the root of the project and invoke CVS | Diff popup menu action.
RESULT: Special window is displayed. "Main.java" and "NewClass.java" should be contained in combobox field. Verify functionality of "UP" and "DOWN" arrows. (Arrow navigates among all differences on processed files). Verify functionality of "Diff" icon in "Versioning" tab - same result as for context command.
5Commit file
  1. Switch to "Versioning" tab - synchronized view.
  2. Push "Commit All" icon.
  3. "Commit dialog" shows up. It should contain two files: "Main.java" and "NewClass.java". Enter some commit message and push "Commit" button.
RESULT: Verify that blue badges disappeared. Files should disappear from "Versioning" tab too.
6Creation of patch
  1. Modify "Main.java" file and save it.
  2. Modify "NewClass.java" file and save it.
  3. Select project root and invoke CVS | Export "Project" Diff Patch... from main menu. Select desired output file for patch and confirm the dialog.
RESULT: Patch should be created in your chosen file. If this action is invoked on context that has no modified files, information dialog should be displayed only.
7Applying patch
  1. Switch to "Files" view and select project root.
  2. Invoke CVS | Revert Modifactions from main menu or popup menu.
  3. Make sure that all modified files are "uptodated" now.
  4. Select project root and invoke Tools | Apply Diff Patch... popup menu action.
  5. Locate and select previously exported patch and press the "Patch" button.
  6. Answer "Yes" in question dialog to confirm watching differences.
RESULT: Verify that new tabs were opened into the editor for all patched files. Verify results generated by "Command-line Diff" and "Built-in Diff" engines. Verify results displayed by "Graphical Diff Viewer" and "Textual Diff Viewer" visualizers.
8Create conflict
  1. Modify "Main.java" file and save it.
  2. Invoke CVS | Check out... from main menu and setup the same parameters as for previous Suites but with different "Local Folder" location.
  3. Open the same project, modify "Main.java" class at the same line as in previous test suite, and commit it.
  4. Return to previous project, select the project root and invoke CVS | Update with Dependencies popup menu action.
RESULT: "Warning" dialog about local conflicts should be displayed. Path to "Main.java" file should be indicated with red badges. This file should change its color to red too. Verify functionality of All, Local and Remote buttons in "Versioning" tab.
9Resolve conflict
  1. Invoke CVS | Resolve conflicts... popup menu action on "Main.java" node.
  2. Merging tool must get opened in editor area highlighting the line with conflict. Left pane should read "Local Working File", right pane "Remote File" and bottom should read "Result after merge".
  3. Select left modification (the working one) and push "Accept" button above its pane.
  4. Make sure that colors changed to blue or green and "Unresolved:" in top of the component says "0 conflicts". Push "OK" button and confirm your decision.
RESULT: The data node should change back to "Main.java" and should have appropriate badge (blue badges for path). In addition, the merge tool must be closed.
10Delete file
  1. Switch to "Projects" view and expand "xx.yy" package node.
  2. Invoke Delete popup menu action on "NewClass.java" file node.
  3. Confirm your decision by clicking Yes in follow-up question dialog.
  4. File should disappear from all explorer views. It should appear in "Versioning" tab.
  5. Select "NewClass.java" in "Versioning" tab and invoke Revert Delete
  6. Confirm your decision by clicking Yes in follow-up question dialog.
  7. File should appear in all of explorer views.
  8. Invoke Delete popup menu action on "NewClass.java" file node again.
  9. Confirm your decision by clicking Yes in follow-up question dialog.
  10. Select "NewClass.java" in "Versioning" tab and invoke Commit...
  11. "Commit" dialog shows up. Fill commit message and push "Commit".
RESULT: File "NewClass.java" should disappear from all explorer views, and from "Versioning" tab.
11Project Deletion
  1. Create new project.
  2. Add this project into the source control. Invoke CVS | Show All Changes from main menu.
  3. Switch to "Projects" view, select project node and invoke Delete Project popup menu action. (Confirm dialog and delete also sources)
RESULT: All files should appear in "Versioning" view. These files should be in "Locally Deleted" status. Select all files in "Locally Deleted" state and invoke Revert Delete popup action from "Versioning" view. After successful action it should be allowed to open this project again.
12Exclude file from commit
  1. Create "JFrame" in "xx.yy" package.
  2. Invoke CVS | Commit... on this JFrame in "Projects" view.
  3. Switch to "Versioning" tab, there should be listed "NewJFrame.java" and "NewJFrame.form" files. Select both the files and invoke Commit....
  4. "Commit" dialog should be displayed with these JFrame files. Change the "Commit Action" to "Exclude from Commit" for both files. Push "Commit" button.
RESULT: Both files have to be excluded from commit with no change of their statuses. Include in Commit action should be accessible in popup menu actions in "Versioning" tab and performing Include in Commit must return file to "committing" status.
13Ignore file
  1. Create new "Java class" ("NewClass2") into "xx.yy" package.
  2. Select this java file and invoke CVS | Ignore .
RESULT: ".cvsignore" should be displayed in "Versioning" tab. "NewClass2.java" should change its color to gray, path to ".cvsignore" file should be indicated by badges.
14Working with ignored file
  1. Switch to "Versioning" tab, select ".cvsignore" file and invoke Commit popup menu action on it.
  2. "Commit" dialog containing only ".cvsignore" file shows up.
  3. Enter some commit message and push "Commit" button.
  4. ".cvsignore" file should disappear from "Versioning" tab, so badges indicating path for ".cvsignore" should disappear.
  5. Open "NewClass2.java" into the editor, modify this file and save the changes.
  6. Switch to "Projects" view, select project root and invoke CVS | "Show Project" Changes from main menu.
RESULT: Verify that there no badges indicating path to "NewClass2.java" file. Color of file name should be gray. This should NOT be listed in "Versioning" tab.
15Unignore file
  1. Select "NewClass2.java" in "Projects" view and invoke CVS | Unignore popup menu action. Verify that this action is also accessible from main menu.
  2. "Versioning" tab should contain ".cvsingnore (Locally Deleted)" and "NewClass2.java (Locally New)" files. Path to this should be indicated with blue badges.
  3. Select project root and invoke CVS | Commit All Files action from main menu.
  4. "Commit" dialog shows up, enter some commit message and push "Commit" button.
RESULT: Both files should disappear from "Versioning" tab. Font color of "NewClass2.java" file is black now.
16Reverting modifications
  1. Open "NewClass2.java" to editor.
  2. Insert brand-new line somewhere into the file.
  3. Delete some other line but not directly next to the new line.
  4. Modify another line but not directly next to the lines mentioned above and Save the file. File name color should change to blue, verify the path indicating blue badges.
  5. Select "NewClass2.java" and invoke CVS | Revert Modifications
  6. Confirm your decision by clicking Yes in follow-up question dialog.
RESULT: All changes should be reverted. Indicating badges should disappear. "NewClass2.java" file should not be listed in "Versioning" tab.
17Global actions
  1. Invoke Show All Changes action from main menu.
  2. Invoke Diff All Files action from main menu.
  3. Invoke Update All Files action from main menu.
  4. Invoke Commit All Files action from main menu.
RESULT:Verify functionality of all above mentioned commands.
18Status and Labels
  1. Select View | Show CVS Status Labels value from main menu.
  2. Modified files should have "[Modified]" status information in explorers.
  3. Files in conflict should have "[Conflict]" status information in explorers.
  4. Files in branch should have also information with branch name in explorer. ([Modified; NewBranch])
RESULT: Verify this functionality in "Projects", "Files" and "Favorites" view. There are no status information for "uptodated" files and no labels for files in "Trunk".
19Actions in Projects view
  1. Add new package "aa" and new "Interface.java"
  2. Add new package "aa.bb" and new "NewClass.java"
  3. Invoke CVS | Commit on "aa" package.
  4. Commit dialog shows up. There should be only "Interface.java" listed in commit dialog. Push "Commit" button.
  5. Make sure that only "aa" and file in was added. Have a look in tab for cvsroot in "Output" window.
RESULT: CVS actions invoked on packages "Projects" view shouldn't be performed recursively. Make sure that Update, Diff, Tag, Branch, Switch to Branch, Merge Changes From Branch, Export Diff Patch and Revert Modifications work correctly. In case of branching actions verify whether new files and folders are added/removed properly.

Test suite 4: Working with Tags and Branches

Purpose: This suite tests work-flow with tags and branches.
Setup: No setup is necessary except steps from previous test suite.

#Test caseDescription
1Tag creation
  1. Select "Main.java" file node and invoke CVS | Tag... popup menu action.
  2. Dialog shows up. Enter name for tag, check both check boxes and push "Tag" button.
RESULT: There should be lines similar to "T Main.java IDE: [25/07/05 14:40] Tagging Main.java finished" in the "Output" tab.
2Tag switch for avoiding tagging locally modified files
  1. Modify and save "Main.java" file.
  2. Select this file and invoke CVS | Tag... from main menu.
  3. "Tag" dialog shows up. Enter the tag name and check "Avoid Tagging Locally Modified Files" checkbox. Push "Tag" button.
RESULT: Dialog with error should be displayed: cvs server: "Main.java is locally modified cvs [server aborted]: correct the above errors first!"
3Tag switch for move existing tag
  1. Select "Main.java" and invoke CVS | Revert Modifications popup menu action.
  2. Select this file and invoke CVS | Tag... from main menu.
  3. "Tag" dialog shows up. Enter the tag name, e.g. "mytag". Push "Tag" button.
  4. Verify whether tag was really created. (In Branch dialog - browse).
  5. Do some changes to that file and commit it.
  6. Invoke CVS | Search History... on that file. Type the tag name (e.g. "mytag") in the "From:" line and push "OK" button.
  7. You should see only two latest revisions - first one when you created the tag in step 3, and second one from step 5.
  8. Select this file, invoke CVS | Tag... popup menu action, enter the same name (e.g. "mytag") and check "Move Existing Tag" checkbox. Push "Tag" button.
RESULT: Verify whether the tag name (e.g. "mytag") was removed from the previous revision and added to the latest one. (Repeat step 6 - you should see only the latest revision.)
4Branch creation
  1. Select project root and invoke CVS | Branch... popup menu action.
  2. Dialog for branching shows up. Setup "Branch Name" to e.g. "new_branch" and "Tag Before Branching" will be automatically set up to "new_branch_root".
  3. Check both checkboxes.
  4. Push "Branch" button.
RESULT: Verify in "output" tab whether project was branched properly.
5Committing to branch
  1. Select the "Main.java" file, modify and save it.
  2. Invoke CVS | Commit... popup menu action.
  3. Commit dialog shows up and there should be listed "Main.java" file and information about the branch - "Committing to "new_branch" branch". Push "Commit" button.
RESULT: Verify in "Output" tab whether it action finished successfully.
6Multiple branches
  1. Create new e.g. "NewInterface" in this project.
  2. Select project root and invoke CVS | Commit project from main menu.
  3. Commit dialog shows up and there should be listed "NewInterface.java" file and information about the branch - "Committing to "new_branch" branch". Push "Commit" button.
  4. Verify successful commit of new add file.
  5. Now select project root and invoke CVS | Switch to Branch... popup menu action.
  6. Appropriate dialog shows up. Select "Switch to Trunk" radiobutton and push "Switch" button.
  7. "NewInterface" file should disappear from all views.
  8. Select again project root and invoke CVS | Switch to Branch... popup menu action.
  9. Appropriate dialog shows up. Select "Switch to Branch" radiobutton, select the branch created in previous test case and push "Switch" button.
  10. Verify whether "NewInterface" file appears in all views again.
  11. Select "Main.java" file and invoke CVS | Switch to Branch... popup menu action.
  12. In the dialog choose "Switch to Trunk" option and push "Switch" button.
  13. Verify that file contains changes made in the trunk.
  14. Modify and save both "Main.java" and "NewInterface" file.
  15. Select the project root and invoke CVS | Commit Project... from the main menu.
  16. Dialog shows up, with these two files. There should be information about attempt to commit to multiple branches. Commit dialog now contains also "Sticky tag" column. Blank value means that file is to be commited into trunk. Any other value is a name of the branch the file is to be commited into.
  17. Push "Commit" button.
RESULT: Verify that "Main.java" was committed to trunk and "NewInterface" was committed to branch in "Output" tab.
7Merge from branches
  1. Select the project root and invoke CVS | Switch to Branch... popup action.
  2. Select the "Switch to Trunk" radiobutton and push "Switch" button.
  3. All project sources should contain only "Trunk" changes.
  4. Create "NewInterface" and add new method to "NewInterface", save and commit it.
  5. Add new variable to "Main.java", save and commit it.
  6. Switch project to "new_branch".
  7. Open "Main.java" into the editor, modify the type of the variable created in step 5 at the same line. Save the file.
  8. Open "NewInterface" into the editor, modify the return value of the method created in step 4 at the same line. Save the file.
  9. Select project root invoke CVS | Merge Changes from Branch.... popup menu action.
  10. Push "Merge" button.
  11. Dialog shows up with the information that there are conflicts.
RESULT: Files in conflicts are displayed with red color in "Versioning" tab. Resolve all the conflicts.

Test suite 5: Inspecting Sources

Purpose: This suite tests "archeology" searching with tags and branches.
Setup: No setup is necessary except steps from previous test suite.

#Test caseDescription
1Annotations
  1. Select "Main.java" node and invoke CVS | Show Annotations popup menu action.
  2. "Annotations" column and "Stripes" should be displayed around the editor area of this file.
  3. Select desired line (with revision "1.2").
  4. All lines with revision ("1.2") should be colored blue in "annotations" column. "Stripes" should show navigations to this revision too.
  5. Move mouse pointer over "Revision" column and invoke popup menu.
RESULT: There should be Diff 1.2 to 1.1, Rollback to 1.2, Find Commit in "Project", Find Commit In Open Projects and Hide Annotations actions listed in popup menu.
2Annotations actions
  1. Choose Diff ... action.
  2. "Diff" tab should be opened into the editor for specified revisions.
  3. Choose Rollback to 1.2 action and confirm displayed dialog.
  4. This action should bring file in 1.2 revision for that file.
  5. Choose Find Commit in "Project" action.
  6. "Search History" tab should be opened into the editor for "Main.java" file and current project is searched.
  7. Choose Find Commit In Open Projects action.
  8. "Search History" tab should be opened into the editor for "Main.java" file and all open projects are searched.
  9. Choose Hide Annotations action.
  10. This action should hide annotation column and stripes too.
RESULT: Verify functionality on various revisions and navigations with the use of "Stripes".
3Search history
  1. Switch to "Projects" view and select project root.
  2. Invoke CVS | Search History... popup menu action.
RESULT: "Search History" tab for this project should be displayed in editor area. Verify also functionality of "Browse..." buttons next to "From:" and "To:" fields.
4Summary functionality
  1. Make sure that "Summary" toggle button is pushed.
  2. Push "Search" button.
RESULT: Verify that all files of the project are listed in Summary output area. All items there should contain "file name", "file location", "revision number", "date", "username", "commit message for revision" information and "Find Commit in: "Project"" and "Open Projects" links there. Files that have more revisions than one should contain "Diff to x.y*" link.
5Summary actions
  1. Invoke popup menu on desired record in "Summary" section.
  2. There should be Diff to ..., Rollback Changes, Rollback to ..., Find Commit in "Project" and Find Commit In Open Projects actions listed in popup menu.
RESULT: Verify the functionality of each action. Behavior of these actions was described in "Annotation actions" section. Rollback Changes action can be invoked on multiselection that will rollback all differences among selected revisions.
6Find commit in "Project"
  1. Select some record in "Summary" output area, e.g. "build.xml" file.
  2. Click "Find Commit in "Project" " link.
RESULT: Verify that all fields ("Message", "User name", "From" and "To") are pre-filled with appropriate values taken from the specific record of "Summary" output tab. Result of "Summary" output tab should be updated properly - only records that meet criteria should be displayed here.
7Find commit in Open Projects
  1. Select some record in "Summary" output area, e.g. "build.xml" file.
  2. Click "Find Commit in Open Projects" link.
RESULT: Verify that all fields ("Message", "User name", "From" and "To") are pre-filled with appropriate values taken from the specific record of "Summary" output tab. Result of "Summary" output tab should be updated properly from the current project - only records that meet criteria should be displayed here.
8Diff functionality
  1. Select project root and invoke CVS | Search History ... popup menu action.
  2. Push "Search" button and then click "Diff" toggle button.
RESULT: Verify that table with list of files is displayed. Also area for "Diff" should be there.
9Diff actions
  1. Invoke popup menu on desired revision of the file in "Diff" section.
  2. There should be Rollback to ..., Rollback Changes, Find Commit in "Project" and Find Commit In Open Projects actions listed in popup menu.
RESULT: Verify the functionality of each action. Behavior of these actions was described in "Annotation actions" section. Rollback Changes action can be invoked on multiselection that will rollback all differences among selected revisions.
10Exploring revisions
  1. Select some file in this table that has more revisions and expand node.
  2. Select some revision.
RESULT: In "Diff" output area there should be displayed differences between selected and previous revision. On multiselection of two revisions of the same file there should be displayed differences between them. Differences should not be displayed for different files.
11Random search
  1. Invoke CVS | Search History... on file, projects.
RESULT: Verify the functionality of "Search History" action on files, packages and project nodes. Verify that searched results meet searching criteria.

Generated: 2006 12 06 09:19
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by