Defect lifecycle management
The main purpose of Bugzilla is to manage the defect’s lifecycle. Defects are created and logged in various phases of the project (e.g., functional testing), where they are created by the test engineer and assigned to development engineers for resolution. Along with that, managers or team members need to be aware of the change in the state of the defect to ensure that there is a good amount of traceability of the defects. When the defect is created, it is given a ‘new’ state, after which it is assigned to a development engineer for resolution. Subsequently, it will get ‘resolved’ and eventually be moved to the ‘closed’ state.
Step 1: User account creation
To start using Bugzilla, various user accounts have to be created. In this example, Bugzilla is deployed in a server named ‘hydrogen’. On the home page, click the ‘New Account' link available in the header/footer of the pages (refer to Figure 4). You will be asked for your email address; enter it and click the ‘Send' button. After registration is accepted, you should receive an email at the address you provided confirming your registration. Now all you need to do is to
click the ‘Log in' link in the header/footer at the bottom of the page in your browser, enter your email address and the password you just chose into the login form, and click on the ‘Log in' button. You will be redirected to the Bugzilla home page for defect interfacing.
Step 2: Reporting the new bug
1. Click the ‘New' link available in the header/footer of the pages, or the ‘File a bug' option displayed on the home page of the Bugzilla installation as shown in Figure 5. 2. Select the product in which you found a bug. Please note that the administrator will be able to create an appropriate product and corresponding versions from his account, which is not demonstrated here. 3. You now see a form on which you can specify the component, the version of the program you were using, the operating system and platform your program is running on, and the severity of the bug, as shown in Figure 5. 4. If there is any attachment like a screenshot of the bug, attach it using the option ‘Add an attachment' shown at the bottom of the page, else click on ‘Submit Bug'.
Step 3: Defect resolution and closure
Once the bug is filed, the assignees (typically, developers) get an email when the bug gets fixed. If the developers fix the bug successfully by adding the details like a bug fixing summary and then marking the status as ‘resolved’ in the status button, they can route the defect back to the tester or to the development team leader for further review. This can be easily done by changing the ‘assignee’ field of a defect and filling it with an appropriate email ID. When the developers complete fixing the defect, it can be marked as shown in Figure 6. When the test engineers receive the resolved defect report, they can verify it and mark the status as ‘closed’. At every step, notes from each individual are to be captured and logged along with the time-stamp. This helps in backtracking the defect in case any clarifications are required.
Step 4: Reports and dashboards
Typically, in large scale projects, there could be thousands of defects logged and fixed by hundreds of development and test engineers. To monitor the project at various phases, generation of reports and dashboards becomes very important. Bugzilla offers very simple but very powerful search and reporting features with which all the necessary information can be obtained immediately. By exploring the ‘Search' and ‘Reports' options, one can easily figure out ways to generate reports. A couple of simple examples are provided in Figure 7 (search) and Figure 8 (reports). Outputs can be exported to formats like CSV for further analysis.
Bugzilla is a very simple but powerful open source tool that helps in complete defect management in projects. Along with the information provided above, Bugzilla also exposes its source code, which can be explored for further scripting and programming. This helps to make Bugzilla a super-customised, defect-tracking tool for effectively managing defects.