QuickBugs Introduction

QuickBugs is used to manage product development by focusing effort on the tasks required to efficiently bring the project to completion. Developers, testers and managers use it to record and track the progress of defects (bugs), problems and new features. Each bug report progresses according to a defined workflow that can be fully customized by the organization.

QuickBugs improves team productivity by supporting these tasks:

  • Record bugs in a shared XML repository accessible to developers, testers and managers.
  • Support concurrent access to bug reports by multiple users.
  • Support multiple projects.
  • Assign responsibilities, access and privileges to users for each project.
  • Customize the data collection and workflow for each project.
  • Estimate, assign and track the work required to resolve and test bugs.
  • Classify, sort, view, print and generate reports based on priority, type and other properties.
  • Estimate personnel workloads and release dates from bug statistics.
  • Determine release dates based on bug detection and resolution statistics.
  • Automatically maintain the history of each bug.
  • Generate release notes, progress reports and statistics for each project.
  • Evaluate the efficiency of detection methods for locating new bugs.
  • Send highly targeted email notifications based on configured events.

QuickBugs is normally used in a team environment that contains multiple users, multiple projects and a customized data collection and workflow process. Most QuickBugs features are user configurable to match the specific needs of an organization or user. The introduction that follows will examine a simple bug-reporting project and highlight the main features of QuickBugs.

Open a Project

The Open Project button in the tool bar presents a list of configured projects. The Sample Bugs project shown below is provided on disk with a step-by-step tutorial.

The main QuickBugs window shows the bug list for the current project. Each bug report is shown as one row in the list with vertical columns showing the information in each field of the report. Although we refer to each report as a bug, QuickBugs can also be used to collect and process other types of information as well including maintenance changes and new feature requests.

The buttons in the tool bar are used to progress a bug report through each stage in the workflow. Buttons will be active or inactive depending on which bug is selected, its current status and the configured workflow. To show the details of a specific bug, double-click on its row. QuickBugs can be configured to show or hide specific fields or add new custom fields.

The state of each bug is represented in the Status field. The typical workflow of a bug involves:

  • Create the bug with the New Bug button.
  • Assign it to those responsible with the Assign Bug button.
  • Investigate the problem with the Investigate Bug button.
  • Resolve the problem with the Resolve Bug button.
  • Verify the fix works with the Verify Bug button.
  • Close the problem with the Close Bug button.

Sometimes a bug takes a non-typical route through the workflow.

  • Use the Postpone Bug button to temporarily postpone any action.
  • Use the Fail Bug button to indicate that an attempted fix did not work.
  • Use the Modify Bug button to change any data or even the status of a bug.
  • Use the Delete Bug button to permanently delete the bug report.

In a small project or organization you may choose to streamline this process by configuring the project to eliminate some steps in the workflow. Large organizations typically have different people responsible for discovering, assigning, fixing and validating bugs. Each of these privileges can be granted or denied in the project configuration based on the current user and project.

Edit a Bug

The New Bug button presents the New Bug dialog. The new bug is given a unique number and some of the fields like Originator, Date and Status already have values.

Type a brief title for the bug in the Title field. Use the Type and Category fields to designate what type of bug, action item or new feature that you are reporting. Select the priority and detection method. The choices available in these fields are all configurable to satisfy the specific needs of your project. You can enter a detailed summary and step-by-step description of the bug in the appropriate fields.

Some fields are visible but disabled since they don't apply to this step in the workflow process. Some fields are required while others are optional. When you click the Done button your information is used to generate or update the bug file. If you forget to complete a required field, you'll get a message and be returned to the dialog. Which fields are visible, enabled or required during each step in the workflow is fully configurable when you setup a project.

Change The View

The columns of data that are displayed for each bug in the list will depend on which view is selected. The View menu is used to select or configure views. If you select a different view, you'll notice that the columns of data change for each row (bug report) displayed in the QuickBugs window.

Creating a custom view is pretty simple. The Manage Views command on the View menu presents the Manage Views dialog for adding, editing, deleting or cloning views. When you add or edit a view, it is presented in the Edit View dialog.

To create a new view, give it a name and then double-click on the field names in the Fields Not In View list to add them to the Fields In View list. To change the column order, just drag its name in the Fields In View list. To change the default width of a column, select it and adjust the Column Width in Pixels field. The sort fields can be used to sort the rows (bug reports) based on the data in each column. By default, each new view you create is added to the View menu, however, you can restrict your view to only specific projects or users.

Change The Query

As your project grows you may not want to show all the bugs in the list. Which bugs are currently visible depends on the selected query. The Query menu is used to select or configure queries. The Manage Queries command presents the Manage Query dialog to add, edit, delete or clone items from the list of configured queries. When you add or edit a query, it is presented in the Edit Query dialog.

A query defines a list of rules that determines which bugs are currently visible. A query is project specific because the allowable values of some fields will depend on the configuration of the selected project. The Condition field determines how Rules A through H are used to determine if the condition is meet and thus the bug report is visible. In this simple query, only Rule A is used to determine if the status of a bug report is New. The Display Query In View field is a shortcut for automatically selecting a specific view when the query is selected.

Generate a Report

QuickBugs includes a scriptable report generator. Several standard reports are provided. Use them as is or change the format or content as desired. The standard reports are viewed in an HTML browser of your choice that QuickBugs is configured to run. The report generator is generic in nature so you can easily create other types of custom text reports such as XML files, SQL files containing the schema and data of your bug reports or tabbed delimited data files.

Use the Report menu to configure new reports or run one of the standard reports. For example, the All Fields of All Bugs command runs a standard HTML report that includes all fields of all bugs in the project. The Generate Report dialog is presented to determine where the report should be generated and gives a brief description of the report.

To see how this report was produced or to create your own, choose the Manage Reports command to present the Manage Reports dialog, then click the Add Report or Edit Report button. The Edit Report dialog is presented.

Each report has a name and a description field that describes the report. The Application field determines which application is used to view the generated report. The Script field determines the format and content of the report. The report generator reads characters from the input script and saves them to the output report. Special replacement tags beginning with %% cause the report generator to insert data from your bug reports or perform other actions.

This script is essentially an HTML file with some replacement tags sprinkled throughout that grab data from your bug reports. For example, consider the tag %%ReportName. When the report is generated, this tag is replaced by the name of the report. Likewise the tag %%UserName is replace by the name of the user generating the report.

Some tags form a looping structure. For example, the tags %%BeginEachBug and %%EndEach form a loop that repeats the enclosed text for each bug in the project.

Nested within is another loop from %%EachField to %%EndEach that loops through each field within each bug report. Within the inner loop are some tags that print out the label and value of each field that is not empty.

QuickBugs supports a rich scripting language that includes tags for variables, arrays, lists, strings, expressions, looping structures, data manipulation and user interaction. The standard reports illustrate how many of the tags can be used. To see a brief description of each tag, choose the Insert Tags command from the popup menu presented by clicking the Right mouse button over the Script field.

Setting Up Preferences

To start using QuickBugs on your project you'll need to first set up users, configure project options and designate where various folders and files of information are stored on your computer network. Much of this process is defaulted for you.

The Manage Setup, Manage Users and Manage Projects commands are normally used by a manager or system administrator and disabled for the typical QuickBugs user. QuickBugs will allow various levels of security and access control to be configured as appropriate to your organization.

When the QuickBugs application is launched it reads a preference file that contains application preferences and determines the user name for that session. QuickBugs can be configured to operate in various ways. Typically a dialog prompts for the user name and password and then preferences files are globally administered by QuickBugs so a user can login from any workstation on the network.

Setting Up Users

The Manage Users command from the Setup menu presents the Manage Users dialog. The Startup Options section at the bottom determines how QuickBugs gets its preference file and whether the user is prompted for a password.

Each user of QuickBugs must have a unique name. In addition to controlling which projects and privileges are available to each user, the user name is required to coordinate access to shared resources such as a bug report that is currently being edited. To see the details of a specific user, double-click the name to present the Edit User dialog.

This dialog shows the name and default privileges available to that user. In the example above, all privileges including the dangerous ability to totally delete bug reports is available to this user.

Setting Up A Project

The Manage Projects command from the Setup menu presents the Manage Projects dialog. Double-click on the name of a project to present the Edit Project dialog shown below.

The Name tab of this dialog is used to define the name of the project and the folder in which the bug reports reside. The Folder field can be a relative or full directory path. File organization and security is discussed in more detail in the next section. On the Users tab, all users or only specific users can be configured with access a project.

The Setup tab is where you configure the data collection, workflow and field choices available when editing bug reports in this project.

The Bug Types tab is used to configure a list of type names and sub-categories for each of those types. The Methods and Priorities tab is used to configure a list of detection methods used to locate bugs. The Resolved By list indicates the options available to resolve a bug report. The priority list lets you configure up to 6 priority words. The Templates tab is used to configure text templates that get appended to the Description field of a bug report as it progresses through each stage of the workflow.

The Custom Fields tab allows up to four custom fields to be configured. Select the radio button for Custom Field 1 through 4 and set the Field Enabled checkbox to add that field to the bug editing dialogs. Some field types have a list of specific choices that can be configured. You can also configure whether the field is visible, enabled or required at each stage in the workflow.

The Workflow tab is used to configure which states a bug progresses through during its lifecycle. For each bug state, you can also configure which next states are valid and which standard fields are visible, enabled or required.

The Print List tab is used to customize the print list that gets printed when you select the Print List command on the File menu.

File Organization and Security

When QuickBugs is initially installed it gives you a default file organization and imposes no security or access control on its users. Normally the system administrator or manager is the only one that needs to understand where files and folders are located and what access privileges (read or read/write) needs be granted to each QuickBugs user by the operating system.

The Manage Setup command from the Setup menu presents a dialog that implements security, access control and file organization. It determines whether a manager password is required to setup users and projects and where folders of files are located on disk.

QuickBugs can link documents created by other applications to bug reports. With the built-in zip archive feature, you can quickly create an archive of all the files needed to reproduce the bug. Later a developer or tester can extract those files to a specified disk location to quickly reproduce or test the bug fix.

The Applications tab allows foreign applications to be configured. These applications can be used by files associated with bug reports or as viewer applications for generated reports. The Associated Files command on the Edit menu lets you view these foreign documents in the foreign application for any selected item in the bug list.

End of Introduction

Most of the essential features of QuickBugs have been briefly discussed. QuickBugs comes with the Sample Bugs project, online contextual help, a printed manual and a step-by-step tutorial. Other features not covered in this brief introduction include:

  • The Manage Notifications command configures event-based notifications.
  • The Monitor Notifications command monitors the status of outgoing user and notification emails.
  • The Print List and Print Bug commands print bug lists and bug reports.
  • The Find Bugs command locates bugs based on specific criteria.
  • The Import Bugs command moves bugs between projects or imports data.
  • The Team Status command shows active users or locked resources.
  • The Show Transactions command shows the history of a bug report.