Monday, January 14, 2008

DEFECT TRACKING SYSTEM

DEFECT TRACKING SYSTEM
TABLE OF CONTENTS


1.0 General 3
Module Objectives 3
Module Structure: 3
2.0 Bug Tracking System an Overview 4
What is the need for Bug Tracking System? 4
Features and parameters of a bug tracking system 5
3.0 Bug Life cycle 6
BTS usage and relevance 6
How do you choose a defect tracking system? 7
4.0 About Bugzilla 9
Life cycle of a bug in Bugzilla. 10
5.0 About Test Tracker 12
6.0 Rational ClearQuest: 13
Highlights 13
7.0 Conclusion: 14
8.0 Unit Summary 15
Exercise 15

1.0 General
Defect/Bug tracking is one of the major activities in testing process. Bug tracking involves recording/documenting the bugs with in an organized system. Depending on the requirements and feasibility of the project, bugs can be maintained and tracked with in any understandable system.
Besides using spreadsheet solutions like Microsoft Excel, bugs can be tracked in organized systems like the available bug tracking tools.
The following module gives you an introduction to some of the bug tracking tools and processes to be followed while recording and tracking a bug.
Recording a bug in the context refers to documenting a bug.

1.1 Module Objectives
At the end of this module you should be able to
Define a bug tracking system.
Identify the importance of tracking bugs.
Understand the Bug life cycle
Get an overview of Bugzilla, Test tracker and Clear Test
1.2 Module Structure:

S.no Topic
1 Bug Tracking system overview 3
2 Bug life Cycle 3
3 Introduction to Bugzilla 2
4 Introduction to Test Tracker 2
5 Introduction to clearQuest 2
Total Duration 12
2.0 Bug Tracking System an Overview
Defect tracking system (also known as bug tracking tools, issue tracking tools or problem trackers) is a set of scripts, which maintain a database of problem reports. Defect Tracking Systems allow individual or group of developers to keep track of outstanding bugs in their product effectively
For many years, defect-tracking software has remained principally the domain of large software development houses. Even then, most shops never bothered with bug-tracking software, and instead simply relied on shared lists and email to monitor the status of defects. This procedure is error-prone and tends to cause those bugs judged least significant by developers to be dropped or ignored.
These days, many companies are finding that integrated defect-tracking systems reduce downtime, increase productivity, and raise customer satisfaction with their systems. Along with full disclosure, an open bug-tracker allows manufacturers to keep in touch with their clients and resellers, to communicate about problems effectively throughout the data management chain. Many corporations have also discovered that defect-tracking helps reduce costs by providing IT support accountability, telephone support knowledge bases, and a common, well-understood system for accounting for unusual system or software issues.
2.1 What is the need for Bug Tracking System?

Helping you provide better customer service:
Because you have an instantly available database of which bugs were found in which product, you have the information to help serve your customers better when you need it.
Defect Management:
Frequently, companies find that projects get out of hand - bugs are being raised from different sources to different team members and nobody is really sure how many bugs there are, which ones have been fixed and whether the nightmare will ever end.
Reduce clerical overhead
Many companies find that a lot of their time is spent on "clerical overhead" - producing spreadsheets of bug lists, manually creating graphs and analyzing statistics. BTS will eliminate this.
Management-level reporting
Maybe you, or your boss, want to see simple summary reports showing how many show stopper bugs are still unfixed in your software, or how long it is taking on average to fix high priority bugs. Good Bug Tracking system will do that for you.
Analysis and categorization of bugs found
BTS gives you the ability to assign categories to bugs, and then analyze according to those categories. If you want to know what percentage of your bugs are caused by printer problems, and how many by user error, then you can do that with a good BTS.
Less work, better products and happy customers
Ultimately, the benefits of BTS will be: less work for you and your team because of the reduced clerical overhead, better products because of the increase in management control and, therefore, happy customers.
Ease of use
BTS is incredibly easy to use, so time will not be wasted on user training, and the application can therefore be implemented immediately.
Quick Search
Advanced search capabilities of the BTS allow end-users to track, monitor and view archived or pending issues assigned to a particular individual or project with custom-tailored filters that can quickly detail and highlight project status types and differentiation between test, production, quality control and production operating environments.

2.2 Features and parameters of a bug tracking system
What are the minimal parameters of a bug tracking system? First, it should be fairly easy to submit a bug report without having to download a client side applet or piece of software. This would indicate a Web- or mail-based application, or where bugs are submitted by e-mail.
You should be able to track bugs and issues by the following parameters:

 Ability to be organized by specific use case and project
 Whether it's Web- or e-mail-based, so there's no need to install a client-side application
 A key person is the owner to supervise specific reporting
 Ability to assign various levels of priority to an issue
 Ability to assign various status to an issue and bug (from Active, in Process, Fixed)
 Analysis query interface that allows effective queries of the database
 Bug and issue dependency tree
 E-mail notification about assigned and fixed issues
 Authorization/authentication
 Automatic user profile -- personalization
 Enabling a client to directly see the status and progress of their project
 Also essential to your project may be the ability to associate the bug occurrence by operating system, browser, type of device, protocol, and network connection.
 Then there is the issue of filing bugs. This depends on your needs, but I find it helpful to file them by product, in one project especially, and to file by use case activity to complete a task with graphical representation. ("Use case" is a Unified Modeling Language term used to describe an actor -- typically the user.)

There are a few quick, out-of-the-box solutions available, however. They vary by platform and requirements for supporting software, such as scripting languages and back-end database.

3.0 Bug Life cycle
The typical life cycle of a bug is as follows:

 Bug is identified in system and created in Bugs Online
 Bug is assigned to a developer
 Developer resolves bug or clarifies with user
 Developer sets bug to "Resolved/Fixed" status and assigns back to original user
 Original user verifies that bug has been resolved and if so sets bug to "Closed" status. Only the original user who created the bug has access to "Close" the bug. Once the bug is closed it may be reopened if it is reproducible in the future builds.
 If the bug was not resolved to the user's satisfaction they may assign it back to the developer with a description (by adding a new detail). If this occurs then the bug returns to step 2 above.

It is important to note that throughout the lifecycle of a bug, it should be assigned to someone. By insuring that a bug is always assigned to a user or a developer, system administrators will maintain a high level of accountability for all bugs submitted to the system.




3.1 BTS usage and relevance
An important aspect of testing is the clear and effective communication between
Testers, developers, and managers-a key factor being comprehensive and well-organized problem reports. Problem reports should clearly identify the program and the problem, the problem type, its severity, and steps to reproduce it. In addition, the development team should further expand such reports by grouping them into functional categories, assigning problems to specific developers, and tracking their evolution and final resolution. Lets see how BTS is useful in different aspect in software industry.
All programs have bugs
Like it or not, its true, and unless the bugs are tracked they can't be fixed, leading to failed projects.
Increase visibility of development process
Improve your customer satisfaction by increasing communication and allowing them to monitor the progress of development.
Traceability of bugs and their resolutions
Maintain audit trails to ensure all changes are accounted for.
Release planning
Manage the bugs and enhancements that are to be resolved for the next product release.
Resource scheduling
Manage the bugs that are assigned to each team member.
Prioritization
Assign priorities to the bugs to ensure critical errors are addressed before minor issues, such as the wording of an error message.
Improved control of a project
Monitor the status and progress of bugs, to follow the improvement in stability of a product or to ensure early detection of failing projects.
Information consolidation
Capture all bugs, feature requests, faqs, ideas, etc in one place to promote the sharing of information project wide.
Improve the quality of your software by increasing productivity
Notification of bug creation and status change to team members increases awareness and responsiveness.
Quality matters!
Quality products reflect well on the company leading to increased sales and/or added value.










3.2 How do you choose a defect tracking system?
There are n numbers of defect tracking tools available in the market. These tools are broadly divided into two major heads,
Web based defect tracking system
Client server based defect-tracking system.
Web based defect tracking system is widely used in the software industry and Client server based defect tracking system used by the product based companies which have its software development carried out at the same place or building.
The following parameters are required in any of the defect tracking system. They are:

 Track issues, software defects, enhancements and change requests.
 Ready to run "as is" or customizable to meet your needs
 Access the system with a browser anywhere, anytime, if it is a web based BTS.
 Very responsive; does not feel like a typical slow web application.
 View issues across multiple projects and should allow you to create as many projects as you need.
 Quick Stats shows instant project statistics from both personal and global perspectives.
 Powerful, automated, per-project email notifications - keeps everyone informed.
 Watch List - should allow you to group important issues in your own private list.
 Add your own custom fields to the many already provided.
 Upload attachments to issues without size restriction.
 Export your data to CSV files (Excel compatible) at anytime.
 Custom report builder - design reports and share them with others or keep private.
 Comments and history record an unlimited dialogue & audit trail of an issue's life.
 Easy to analyze projects using statistics and reports; both standard and custom reports.
 Add both public and private notes or comments to any issue.
 Increased team effectiveness and return on investment.
 Reduced clerical overhead and issues slipping through the cracks.
 Management level reporting and statistics overview.
 Low, predictable cost of ownership.
 Less of a gamble; no long-term contracts; stop using the system at any time.
 Fair and easy pricing model.
 Role-based security that provides easier control of user access.
 Powerful searching capabilities - basic, advanced and comments.
 Stable and reliable; near zero maintainability.
 No support costs.
 Cost effective with no up-front investment.
 Easy to share information with your partners and customers anywhere, anytime.
 Intuitive, even for non-techies; online, context sensitive help.
 Real-time access to the most up to date information.
 System that continually becomes more useable and versatile.
 Allows programmers and testers to focus on their jobs, not the tool.
 No training required.
 Enables effective use of a distributed workforce.
 Control which users have access to certain projects, issues, and reports.
 Enhance team productivity and save money.





4.0 About Bugzilla
Bugzilla is open source software. Its source code has been released under the Mozilla Public License.
Bugzilla is one example of a class of programs called "Defect Tracking Systems", which allows individual or group of developers to keep track of outstanding bugs in their product effectively. Bugzilla was originally written by Terry Weissman in a programming language called "TCL", to replace a crappy bug-tracking database used internally for Netscape Communications. Terry later ported Bugzilla to Perl from TCL, and in Perl it remains to this day. Most commercial defect-tracking software vendors at the time charged enormous licensing fees, and Bugzilla quickly became a favorite of the open-source crowd (with its genesis in the open-source browser project, Mozilla). It is now the de-facto standard defect-tracking system against which all others are measured.
Bugzilla has matured immensely, and now boasts many advanced features. These include:
o integrated, product-based granular security schema
o inter-bug dependencies and dependency graphing
o Advanced reporting capabilities
o A robust, stable RDBMS back-end
o Extensive configurability
o A very well understood and well-thought-out natural bug resolution protocol
o Email, XML, console, and HTTP APIs
o Available integration with automated software configuration management systems, including Perforce and CVS (through the Bugzilla email interface and checking/checkout scripts)
o Too many more features to list
Despite its current robustness and popularity, Bugzilla faces some near-term challenges, such as reliance on a single database, a lack of abstraction of the user interface and program logic, verbose email bug notifications, a powerful but daunting query interface, little reporting configurability, problems with extremely large queries, some unsupportable bug resolution options, little internationalization (although non-US character sets are accepted for comments), and dependence on some nonstandard libraries.















4.1 Life cycle of a bug in Bugzilla.
What happens to a bug when it is first reported depends on who reported it. New Bugzilla accounts by default create bugs, which are UNCONFIRMED - this means that a QA (Quality Assurance) person needs to look at it and confirm it exists before it gets turned into a NEW bug.

When a bug becomes NEW, the developer will probably look at the bug and either accept it or give it to someone else. Whenever a bug is reassigned or has its component changed, its status is set back to NEW. The NEW status means that the bug is newly added to a particular developer's plate, not that the bug is newly reported.

Those to whom additional permissions have been given have the ability to change all the fields of a bug (by default, you can only change a few). Whenever you change a field in a bug it's a good idea to add additional comments to explain what you are doing and why. Make a note whenever you do things like change the component, reassign the bug, create an attachment, add a dependency or add someone to the CC list. Whenever someone makes a change to the bug or adds a comment, the owner, reporter, the CC list and those who voted for the bug are sent an email (unless they have switched it off) showing the changes to the bug report.
When a bug is fixed it's marked RESOLVED and given one of the following resolutions.
FIXED
A fix for this bug has been checked into the tree and tested by the person marking it FIXED.
INVALID
The problem described is not a bug, or not a bug in Mozilla.
WONTFIX
The problem described is a bug, which will never be fixed, or a problem report, which is a "feature", not a bug.
LATER and REMIND
These are both deprecated. Please do not use them.
DUPLICATE
The problem is a duplicate of an existing bug. Marking a bug duplicate requires the bug number of the duplicating bug and will add a comment with the bug number into the description field of the bug it is a duplicate of.
WORKSFORME
All attempts at reproducing this bug in the current build were futile. If more information appears later, please re-open the bug, for now, file it.
MOVED
The bug was specific to a particular Mozilla-based distribution and didn't affect mozilla.org code. The bug was moved to the bug database of the distributor of the affected Mozilla derivative.

QA looks at resolved bugs and ensures the appropriate action has been taken. If they agree, the bug is marked VERIFIED. Bugs remain in this state until the product ships, at which time the bug is marked CLOSED. Bugs may come back to life by becoming REOPENED.
Be careful when changing the status of someone else's bugs. Instead of making the change yourself, it's usually best to make a note of your proposed change as a comment and to let the bug's owner review this and make the change themselves. For instance, if you think one bug is a duplicate of another, make a note of it in the Additional Comments section.
If you make a lot of useful comments to someone's bugs they may come to trust your judgment and ask you to go ahead and make the changes yourself, but unless they do, it's best to be cautious and only make comments.

To practice on bugzilla, use http://bugzilla.applabs.net/dummy/index.cgi
User Id: dummy@applabs.net
Password: dummy


5.0 About Test Tracker
Seapine’s TestTrack Pro delivers time-saving features that keep all team members informed and on schedule. Its advanced configurability and scalability make it the most powerful solution at the best value.
Highlights of TestTrack:
Work as a Team
Bug tracking is a team activity involving engineers, testers, managers, and tech writers — even members of the sales and marketing teams can get involved. TestTrack Pro makes it easy to coordinate activities between team members, but most importantly, TestTrack Pro makes it easy to participate.

Manage Your Development Process
TestTrack Pro's fully customizable workflows lets you tailor it to drive your development process. With definable states, events, and state transition rules, you can model your most complex workflow processes. And, TestTrack Pro will even diagram the workflow for you!

Improve Product Quality with Source Code Integration
TestTrack Pro integrates with third-party source code control applications, such as Microsoft Visual SourceSafe, Merant PVCS, Perforce, and others. This integration enhances your ability to associate specific defects logged in TestTrack Pro with your source code, thus enhancing your product's quality.

Web Access - Work from Anywhere
whether you are at your desk, on the road, or working from home, TestTrack Pro has the tools you need to access your bug database. All of TestTrack Pro's features can be accessed though a Web browser on virtually any operating system or through our Windows client. And, TestTrack Pro's client/server architecture allows you to place your Windows client at any location on the Internet and still access your bugs (provided your firewall lets you in!)

Stay up to Date on Your Projects
TestTrack Pro lets any authorized user look up the current state of any defect at any time. And, TestTrack Pro's comprehensive email notification support is second to none. TestTrack Pro notifies team members by e-mail when bugs are assigned to them or new bugs are added — even when a specific bug changes. Unlike competing products, TestTrack Pro includes SMTP- and MAPI-based email notification support at no additional cost.

Manage Your Projects Effectively
TestTrack Pro puts quality control statistics at your fingertips. Do you want to know who reported the most bugs, how many are still open, or how much time a user spent fixing bugs? This information and more is just a click or two away. How about a bug’s history — who found, fixed, and verified it — all of the details are available.



6.0 Rational Clear Quest:
Features and benefits
IBM Rational® Clear Quest® is a powerful and highly flexible defect and change tracking system that captures and manages all types of change requests throughout the development lifecycle, helping organizations quickly deliver higher quality software.
Whether you're working on Windows, UNIX or the Web, the fully customizable interface and workflow engine adapt to any development process. With support for industry standard databases, Rational Clear Quest scales to support projects of any size and integration with other development solutions ensures that your entire team is tied into the defect and change tracking process
Rational Clear Quest is also deeply integrated with leading IDEs including Web Sphere Studio, Eclipse and .NET, providing developers with instant access to change information from within their preferred development environment.

6.1 Highlights
1. Enables easy customization of defect and change request fields, processes, user interface, queries, charts and reports.
2. Complete out-of-the-box solution includes automatic e-mail notification and submission.
3. Scales easily to support projects regardless of team size, location or platform.
4. "Design once, deploy anywhere" capabilities automatically propagate changes to client interfaces on all platforms, including Windows, UNIX and the Web.
5. Offers geographically distributed teams instant access to defect and change data by using a robust and error-free replicating and synchronizing mechanism quality software.
6. Works with Rational ClearCase to provide a complete SCM solution
7. Included in IBM Rational Suite® for powerful defect and change tracking across the lifecycle.
8. Provides a core component of Rational's Unified Change Management solution
9. Options for Rational ClearQuest MultiSite to support change management across geographically distributed organizations.
7.0 Conclusion:
Recent years have brought a major breakthrough in the field of application testing. Growing complexity of today's applications, combined with increased competitive pressures and skyrocketing costs of application failure and downtime, have catapulted the need for testing to new highs.
While the pressures to deliver high-quality applications continue to mount, shrinking development and deployment schedules, geographically distributed organizations, limited resources and high turnover rates for skilled employees make application testing the ultimate challenge. Faced with the reality of having to do more with less, juggle multiple projects and manage diverse and distributed project teams, many organizations are adopting test-management methodologies and turning to automated test-management tools to help centralize, organize, prioritize and document their testing efforts.
An Efficient BUG TRACKING SYSTEM is the most important component in the application testing process, and keeping in view the factors above it is important as it ensures centralization, organization, prioritization and documentation of the testing efforts.

8.0 Unit Summary
In this session we have learnt
1. Defect tracking systems and their purpose.
2. Bug lifecycle
3. Defect tracking using Bugzilla
4. Features of few other defects tracking system.

8.1 Exercise

5. Explain the terms ”Bug” and a “Bug Tracking System”?
6. Explain the importance of bug tracking?
7. Explain the “Bug Life Cycle”?
8. List some of the bug tracking tools and their features?
9. List the steps of posting a bug in Bugzilla?

2 comments:

Unknown said...

Everyone required simple, easy to use interface and in my opinion web based bug tracking is good because it does not require any capital expenditure on hardware. Thanks for sharing your thoughts.
Bug Defect Tracking

General Post said...

What a commendable work you have done, with the simplest of language. I really liked the way you highlighted some really important and significant points. Thanks so much.

Defect tracking system project