Working with a multitude of bug tracking systems over the years, we’ve encountered a wide variety of tools some of which we felt were fit for purpose. We thought it would be good to outline the minimum feature set that a bug tracking system must have in order to adequately support the development and QA process.
Must have Features
Below are some of the key features I feel are an absolute must of any bug tracking system besides the obvious Title and description field that all systems feature.
Workflow / status
The ability to set a status of a ticket such as ‘in-progress’ and ‘resolved’ is a must. It’s important to be able to identify the state with ease so that the remaining work to be done can be identified quickly.
Having enough status’s is important also. After bugs have been fixed or story developed they should be tested. It’s important to differentiate between a status of ‘fixed’, meaning fixed awaiting testing, and ‘complete’ meaning fixed and passed testing.
Assigning issues to other members of your teams is vital as it forces someone to take ownership of the issue. Issues are dealt with quickly when they’re assigned as there can be no confusion who needs to action the item.
The ability to assign a priority stats to issues helps keep the team focused on fixing the high priority issues first. It enables the QA person to set up a hierarchy of issues that need fixing and and ensures that critical issues are not overlooked.
Attach files for uploading screenshot
Attaching files such as screenshot to bugs can hugely help developers and tester to see the impact of issues with ease. Some attachment plugins are better than others. Look out for one that lets you upload multiple files at once.
Being able to put bugs into categories can help to group issues and speed up resolution. For instance tagging all IE8 bugs together provides clarity for the developer as they might wish to tackle them at the same time. It is often useful to tag issues as ‘nice to have’ so they can be directly ported into the backlog or a later sprint if unfixed.
Searching on all fields is vital to finding issues in a given status. Being able to filter on status, category and priority with ease is helpful will help your team find what they need quickly and stay focused on the important stuff.
Nice to have features
When updates on issue occur the system e-mailing the bugs assignee to keep them informed is useful. If you use this feature, be sure to tone down the notifications in the settings area of the bug tracker. There is such a thing as too much information. You don’t want to be emailed every time a ticket you looked at once changes assignee. A good rule of thumb is to accept emails from tickets you created, those you have actively chose to ‘watch’ and issues assigned to you.
Bugs grouped to releases
Tagging issues to be fixed for a particular released ensures developers can focus on issues related to the relevant release. The ability to assign bugs to the current or future releases also helps when estimating effort required in order to release a given version.
Hide from client
Particularly important for agency work is the ability to set bugs as private so clients can not see them is sometimes useful if you don’t want the client to know about backend/internal issues. It prevents the need to have an internal and an external bug tracker. Grouping both internal and external bugs in one application saves time searching and transferring bugs across.