BUGZILLA & SUBVERSION
Agenda � Bugzilla. � Subversion.
Bugzilla
What is Bugzilla? � Bugzilla is a Web-based general-purpose bug tracker tool. � A bug tracking system where testers and developers can communicate. � This type of system is typical in any Software Quality Assurance department. � Get used to it here, or you will have to when you go out to the field.
HOW TO CREATE A BUG REPORT? � Before you report a bug, make sure that it has not already been logged. � After you have made sure, you can report the new bug. � Set all the parameters.
A GOOD BUG REPORT SHOULD… � In the description, make sure to: � State the preconditions needed to reproduce the bug (i.e. make sure outlook is running) � State the steps required to reproduce the bug. � State the expected outcome. � State the actual outcome.
BUG LIFE � Create a new bug (NEW). � Developer picks up the bug (ASSIGNED). � Developer fixes the bug (RESOLVED/FIXED). � Tester verifies the fix (VERIFIED).
Bugzilla Demo…
Subversion
What is Subversion? � Subversion is a version control system. � A version control system allows users to manage files, directories, and the changes made to them. � Subversion can manage any sort of file collection (not only source code).
Why Use subversion? � Allows developers to work easily on shared software projects. � Enhances the software productivity. � You can undo changes to obtain earlier versions of files. � Subversion is well known and free. � Subversion fixes problems with CVS. � Subversion is being adopted as a replacement for CVS.
General Architecture Repository Internet Working copy Working copy Working copy
Subversion Server Side � Project code is stored in a server in a data store referred to as a “repository.” � The server side responsible for managing the repository and ensure its integrity. � The server can have multiple repository. � The server manages users and groups of users. � The server uses Apache web server. � The repositories stored in Berkeley Database.
Subversion Client Side � The subversion client allows developers to "check out" copies of the project code into their local environments. � These copies known as "working copies" . � After making changes to a working copy, the developer “commits” changes to the repository. � Other developers get these changes by “updating” their working copies.
Subversion Terminologies � Differentials: � Previous versions of the current version of the project. � Atomic commits: � A collection of modifications either goes into the repository completely, or not at all. � Properties: � Each file and directory has a set of properties—keys and their values—associated with it. � Revisions: � After the repository is initially created, it is an empty folder and has revision number 0. � After committing to a repository with revision number n, the repository is changed to version n+1
Project Integrity � The problem: � User A gets a copy of file X from the data store. � User B gets a copy of file X from the data store. � User A changes X and writes the new X back into the data store. � User B changes his older version of X and writes this into the data store, over-writing A’ s changes .
Project Integrity… � The Solution: � Lock-Modify-Unlock � Copy-Modify-Merge.
States of a Working File � Unchanged, and current � Locally changed, and current � Unchanged, and out-of-date � Locally changed, and out-of-date
Update and Commit Working File States update commit Unchanged, and current does nothing does nothing Locally changed, and does nothing writes changes into repo current Unchanged, and out-of-date replaces working file with does nothing new one Locally changed, and out- merges changes into operation fails with out-of- of-date working file date error
Subversion with Netbeans � Check the following tutorials: � Guided Tour of Subversion � Flash Demo
Subversion Demo…
Recommend
More recommend