Ozibug - web based bug tracking

  1. Introduction
  2. Benefits
  3. Lifecycle of a bug
  4. Reporting a bug
  5. Conclusion

Bug tracking is the process of reporting and tracking the progress of bugs from discovery through to resolution, where a bug is defined as a deviation from requirements. Other terminology frequently used to describe this process include

  • defect tracking
  • incident tracking
  • issue tracking
  • problem tracking
  • change management
  • fault management
  • trouble tickets

Bug tracking systems are most commonly used in the coding and testing phases of the software development process. However, tracking systems can in fact be used for many other purposes such as general issue tracking, simple task lists, help desk situations or contact management, where the focus is on the tracking aspect rather than what is being tracked. Even in software development, tracking systems are quite often not limited to simply tracking bugs, but extended to track feature requests or enhancements as well as enquiries.

Back to top

The benefits of bug tracking are numerous and varied, several are listed below.

  • 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.

Back to top

The following categories broadly represent the stages that a bug will move through in its lifetime. The finer details such as the terminology used to represent the status of a bug will most likely vary according to your corporate naming conventions. The workflow can also be expected to vary depending on the complexity of the bug, with a bug perhaps moving between a number of developers for different stages of resolution, followed by updates to the documentation by a technical writer before a tester can verify its resolution.

  • Record

    Once a bug has been discovered the first step is to record it in your bug tracking system, until it is recorded it doesn't exist.

  • Analyse

    Analysis and prioritization of bugs are key aspects of a well managed project, creating a solid foundation from which to make informed planning and scheduling decisions.

  • Assign

    Once the decision has been made to resolve a bug it needs to be assigned to the person who will be responsible for fixing the code, updating the documentation, contacting the customer, etc.

  • Resolve

    On completion of their task the assignee will generally close the bug to indicate its readiness for the next stage.

  • Test

    In order to improve quality the bug resolution should be independently verified before it can be finalized.

  • Release

    The final stage is when the changes for a bug or a set of bugs are incorporated into a new version of the product and released to the public.

Back to top

Accurate bug reporting is critical, a bug report that simply says it doesn't work is not good enough. It provides no information on the problem which subsequently means there is no chance of being able to fix it as it can't be identified! The main information required when reporting a bug is as follows.

  • Environment

    The specifics of the environment in which the problem occurred are needed to allow the problem to be reproduced. This may include details such as hardware configuration, operating system, dependent software, browser version, etc depending on the application.

  • Steps to reproduce the problem

    This should be a concise and minimal set of steps which can be followed to reproduce the problem.

  • Expected results

    This should describe the expected behaviour or expected results which will readily explain why the problem is being reported when compared to the actual results.

  • Actual results

    This should describe what actually happened, complete with any error messages, stack traces, screen shots, log files that show the outcome. It may be the case that the behaviour is correct but has been misunderstood when compared to the expected results, in this case the resolution may be that clearer documentation is required.

Back to top

Bug tracking is a fundamental part of the Software Engineering lifecycle process. Effective use of a bug tracking system will lead to a more structured approach throughout the development lifecycle, resulting in a higher quality product while also reducing development and support costs.

Back to top