Software Development Tools

Part III: Defect Tracking

Conrad Huang

May 22, 2009

Much of this presentation is taken from Scooter's PowerPoint slides

Introduction: Defect Tracking

  • During software development, programmers (and managers) will need to keep track of:
    • what features need to be implemented
    • how far they got in the implementation
    • what remains to be done: milestone and release dates
    • good ideas that won't be implemented yet but shouldn't be lost
  • After software has been deployed, users may need to:
    • report problems
    • find whether others have seen similar problems
    • find fixes and workarounds
    • ask for new features

Desirable Features of Defect Tracking Systems

  • Support for flexible issue definitions
    • Bugs, "tracking" bugs, feature requests, milestones, releases, ...
    • Ability to define attributes for issues such as project, category, severity, priority, ...
  • Good reporting tools
    • Generate dependency tree generation
    • Time-to-fix, outstanding bugs, bugs fixed since last release, etc.
    • Milestones and progress towards completion
  • Support multiple interface types
    • Web-based programmer/manager dashboard
    • Web-based bug submission and search forms
    • E-mail notification of updates and fixes
    • Discussion forums

Open Source Packages

  • Bugzilla
    • Bug tracker for Mozilla, Apache, Linux, etc.
    • Perl-based with MySQL backend
    • Very flexible but requires effort to set up and maintain
  • Mantis
    • Bug tracker for Cytoscape
    • PHP-based with MySQL backend
  • Trac
    • Bug tracker for Chimera
    • Python-based with MySQL backend
    • A combination of defect tracking and wiki, with interface to Subversion
  • Many, many others