Nobody’s perfect. And no matter how long you spend combing through your code and testing your software, it’s inevitable that a few bugs will make it through to launch day.
While bugs are just part of the territory for technical teams, that doesn’t mean you can treat them as just business as usual. Your users want software that works. And with competition heating up in pretty much every industry, you can’t leave issues unchecked. Bugs can kill your reputation, make you lose revenue, and, worst of all, take up hours of development time that could’ve been put towards building new features.
The best software teams out there are diligent and disciplined with how they track and deal with bugs. And a big part of that is what bug tracking software they use.
In this guide, we’ll run you through some industry standard processes for tracking and dealing with bugs, and then cover the most popular bug tracking software used by top tech teams from around the world.
What is bug tracking and why does it matter?
In its most basic form, bug tracking is the process of capturing, reporting, prioritizing and dealing with bugs and issues in your software. Think of it as a treasure hunt. Except the “treasure” is bad code that’s killing your product’s usability and user experience. That might not sound too fun. But if your goal is to constantly be providing your users with better and better software, finding and fixing bugs is an important process to dial in.
So where do you start? There are a few places where you’ll want to create a bug tracking workflow.
- Internal bug reporting: Before any new or updated piece of software is released, it needs to go through an internal testing phase. This is where your development and/or QA teams run through every use case imaginable and try to find bugs that shouldn’t make it into the release.
- External bug reporting: Once your product is released, you want a way for users to let you know if it’s not working for them. This is external bug reporting.
In most cases, you’re going to end up with a ton of issues to solve from both of these sources. So how do you keep track of them?
The simplest way to track bugs is with a basic excel sheet. List the bugs, info about them, and work through them when you have time. And while this might work for a little bit, you’re going to get overwhelmed pretty quickly.
Proper bug tracking software is more than just a database of problems needing fixes. It’s a powerful tool that gives everyone on your team visibility into bugs so they can work on the right ones at the right time.
Product teams move fast. And it’s important for you to keep a 50,000-foot view of your product roadmap even as you are heads down squashing bugs. That’s why bug tracking is typically integrated with your project management software. This way, bugs become just another task to manage as you continue to build better software and keep your users happy.
What to include in a useful bug report
Let’s go a step deeper now and look at what should be included in a bug report regardless of where it’s coming from.
Have you ever heard a knocking in your car’s engine only to have it stop the second you bring it to the mechanic? It’s a frustrating experience for any owner. The same goes for bugs.
Your ability to quickly and effectively deal with bugs in your software directly corresponds to how much information you have about it. And the more you know, the more likely whoever is assigned to fix the bug will be able to replicate, diagnose, and repair it.
Good bug tracking software gives you the flexibility to include enough information and facts about the bug to prioritize based on the severity of the issue. At a minimum, that means you should know:
- What happens (i.e. the bug itself): Screenshots are incredibly useful here as well as the workflow that caused it to happen.
- When it was recorded: Give the time and date to make sure no one has already dealt with this and is waiting on a deploy.
- The severity of the issue: Did it cause a server to explode into flames? All your data to get wiped? Or just a bit of an annoyance. The severity will help you assign a priority to the bug. (As a reminder, it’s ok to have known bugs that never get fixed. You can’t always get to every bug and knowing how to prioritize features is an important skill for any product manager).
- Details on how to reproduce the bug: Give as much info as possible like what browser or software version you were using.
- The person who reported the bug
- The status of the bug: Is it on the product roadmap? Put off until a later release? Being dealt with?
- If it’s connected to any major milestone or upcoming feature release
For example, in Planio, you can track bugs as “Issues.” Each new issue starts with basic information such as the “Tracker” or issue type (in our case bugs), subject, and an in-depth description.
Next, you can add more detail to the bug report including its status, priority, assignee, category, due date, and even an estimation of how long it will take to fix.
Finally, you can include any files related to the bug (like screenshots) and include what we call “watchers”—people who will be notified when the status of the bug changes.
One of the great reasons to use Planio or any project management tool for bug tracking is that it helps you stay disciplined and consistent in how you file and track bugs. Not only do you have a clear template of the information you need to fill out, but you’re also able to see your bugs alongside other tasks and work. This way, it’s easier to plan sprints and organize bug fixes alongside feature requests, issues, and milestones.
But what about if my users are submitting bug reports?
Your users are one of the best resources for discovering bugs. But they most likely don’t have access to your bug tracking tools to put in a detailed report. So what do you do? There are a few different options you can use in this case:
- Create a “bug bounty” program: Most software companies reward users for finding and letting them know about bugs (especially security issues). It’s a good idea to set up a secure email address for this.
- Make a “bug report” submission page: You can also have a dedicated page for bug reports using a custom submission form to get the information you need.
- Let users email you bug reports: Sometimes it’s just easier for people to email you with the issues they’re having. Using Planio’s tight email integration and Help Desk app, you can automatically create issues from emails sent to an email of your choice (like firstname.lastname@example.org).
A quick note on automatic error and crash reporting tools
There’s a third source of bug reports you can also rely on for certain use cases. A dedicated error monitoring tool detects, diagnoses, and notifies you about problems directly in your code. These tools usually aren’t cheap, but they can cut the amount of time you and your team spend digging into and trying to reproduce intermittent bugs.
4 Steps for building a bug tracking workflow that works for you
If you’re following product development best practices and implementing a lengthy QA period, then you’re more than likely going to have a good backlog of bugs before release. But talk to any development team and you know that bugs can creep up at any time. Not just when you’re testing. This is why you need a solid bug tracking workflow in place.
Now that you know what an effective bug report looks like and how to capture it from your own team and users, it’s time to look at what happens once a new bug gets reported.
The most basic bug tracking process follows a simple path like this:
New Bug → Rejected or Verified? → Being fixed → To test → Testing → Fixed!
Let’s dive into each part of the workflow to see what’s actually happening. Again, I’m going to use Planio as an example of how you can create, track, and deal with bugs, no matter where they come from.
Step 1: Capture
As we’ve said before, information is key to a successful bug reporting and tracking workflow. At a minimum, make sure you’re capturing:
- A summary: This is what shows up in the bug list. Be explicit and contextual so someone understands what it is without opening the issue.
- Steps to reproduce the bug: What was the expected behavior and what actually happened? Be clear and accurate with the steps that you took and whether it was easy to reproduce.
- Description: Is this a crash? Performance issue? Broken behavior? For UI bugs, add a screenshot or video to show it happening.
As we’ve explained before, in Planio, bug tracking is dealt with the same way as any other issue. Simply create a new issue using the “+” icon in the navigation bar and then change the tracker to “bugs” so it’s clear what you’re submitting.
Next, include a subject (what is the bug) and a description. Think about when the bug happens (i.e. what is the smallest amount of steps you need to take to make the bug show up). And where it happens (i.e. can you repeat this bug over and over? Does the application have to be in a certain state for the bug to appear?)
Remember to include as much information as possible. Planio issue tracking gives you tons of flexibility to add screenshots, status, priority, assignee, categories, due dates, and custom fields for things like browser or OS.
Step 2: Triage, prioritize, and assign
Alright, you’ve got some new bugs that need to be dealt with. The next step is to choose which ones need to be dealt with now and get them to the people best suited to handle them.
Bug triage is the process of combing through your bug backlog and finding the ones that need to be dealt with, escalated to other teams, or followed up on for more information. This process can be a pain (especially if you let your bug reports pile up) but helps you identify the riskiest bugs.
But, as Tumblr director of mobile engineering, Mark Finkle, writes:
Triaging bugs and managing feature status frequently allows you to be proactive about changes in roadmaps, not reactive.
Here are a few notes on triaging bug reports:
- Prioritize by true importance: Don’t guess. If you have a system in place for feature prioritization, follow that same one for dealing with bugs.
- Be clear and honest in your time estimation: Bugs can take over your development time if you’re not careful. Be honest about how long something will take. If you’re unsure, break it up into smaller chunks (being sure to link all pieces to each other).
- Revisit, adjust, and update: As your software changes your bugs change as well. And a pivot or change in your app direction can make a seemingly small bug a major issue all of a sudden.
One of the main issues with this part of the bug tracking workflow is simply having visibility into all of your open bugs. With Planio, you can use the Issue List to see all your bugs and filter by assignee, priority, status, and all sorts of other qualities.
Search for high-priority issues and assign them to the best person for the job. You can also save specific queries that you return to over and over. For example, you could save a search for only high-priority tickets that are assigned to you and use that as your personal bug backlog.
Step 3: Track bugs and stay informed through their lifecycle
It benefits everyone on your team to know the status of bugs—especially ones that are holding up product releases. Good bug tracking software gives you visibility not only into what’s being dealt with, but where it is on its journey from captured to completed. Each bug you add to your Planio includes a list of “Watchers”—people who should be notified whenever the status of a bug changes.
This could mean once a bug has been fixed, pushed to testing, tested, or ready to go to production. This way, you’re kept in the loop as your team works through bugs and changes their status.
This is incredibly important in making sure your team is working in the most optimal way and no one’s jumping in on a bug or issue that has dependents that still need to be addressed.
Step 4: Push the fixed code to deployment
Keeping project and issue tracking and development together makes shipping working software less confusing and easier for everyone. That’s why Planio comes with hosted Git and Subversion repositories which integrate seamlessly with its bug tracking features and all other parts of Planio. Of course, Planio also works with GitHub, Bitbucket, and other source code management tools.
8 of the best bug tracking (and issue tracking) tools used by top tech teams
By now you should have a pretty good understanding of how bug tracking software is used and why it’s so important to have a solid workflow in place. But as we mentioned at the beginning of this post, it’s not just your workflow that’s important, but also having a bug tracking tool that’s easy to use, integrates with your project management, and keeps bug reports clean, organized, and searchable.
To give you a better idea of what you could be using, let’s take a look at some of the most popular bug tracking and issue tracking software used by teams from companies like Dropbox, etc… :
Designed and built by the team at Atlassian, Jira is a bug tracking and project management tool that allows teams to capture, report, and fix bugs in an organized and visual manner. Jira is designed for teams using Agile project development and includes customizable workflows, filters for search issues and bugs, and reporting.
Pros: Customizable workflows, a very rich feature set, and integration with a variety of other products.
Cons: Expensive for small-medium teams. Complicated configuration and troubleshooting. Some users complain about being overloaded with notifications.
Planio is project management software for both Agile and traditional development teams with a powerful built-in bug tracking tool. Built on Redmine, Planio offers customizable fields, easy search for triaging and prioritizing bugs, as well as the ability to see all of your features and product roadmap in one place. Being much more than just a bug and issue tracker, Planio comes with its own help desk, team chat, hosted repos, cloud file sharing, time tracking, and much more. It's an all-around great option for anyone who wants to build better software. (Sure, we’re a little biased!)
Pros: Beautiful UI. Customizable fields for capturing all the information you need for effective bug reports. Smart notification system keeps everyone in the know on the progress of bugs and issues. Tight integration with hosted repos.
Bugzilla was developed by the Mozilla team back in 1998 and to this day is one of the most well-known open source bug trackers. With a focus on strictly bug tracking and powerful features such as advanced search, time tracking, and reporting, it’s well loved and used by large corporations and open source projects.
Pros: Open source tool with no license required. Simple UI, affordable, and easy to use.
Cons: Lack of customization. Dated design and UI. Filtering issues can sometimes be an issue. Limit on attachment size an issue for developers uploading videos, large images, or documents.
MantisBT is a basic, open source issue tracker that can be used for dealing with bugs and general team collaboration. You can change access control on a per-project basis, as well as take advantage of notifications and a mobile-optimized UI add-on (if your team needs mobile access).
Pros: Freeware. Good issue tracking across multiple projects.
Cons: Dated UI that can feel complicated (despite the product’s “basic” nature). Customization isn’t very friendly. Reporting features are limited.
5. Pivotal Tracker
Pivotal Tracker is another bug tracker/project management tool designed for Agile teams. With plenty of integrations with tools like Slack, Zapier, and GitHub, it ensures that you’re seeing your bugs in the bigger context of your entire project.
Pros: Visual dashboard that’s easy to understand. Easy to use. Project management included.
Cons: Can become difficult to use with multiple projects. Free version has limitations. Some users have complained that it is slow and laggy.
Trac is specifically built for development projects and issue tracking, but can also be used for document management. With its minimalist design, integrated wiki, and ability to link bugs to various tasks, files, and other bugs, it’s a great, easy option for keeping your bug reports in order.
Pros: Lots of information in one place. Easy-to-use ticketing for non-developers.
Cons: Lack of documentation and support can lead to maintenance issues. Not a good choice for people who are unfamiliar with it. Clunky and outdated UI.
Self-described as “beautifully simple issue tracking,” Lighthouse is a dedicated bug tracker designed for teams of all sizes. Made for collaboration, Lighthouse allows you to submit bug reports directly from emails or Tender—a customer support service—as well as use goals and milestones to plan bug fixes and future releases.
Pros: Good visibility through tagging multiple people on bugs. Open source flexibility. Easy to create tickets.
Cons: Dated and updates seem sparse (UI is a bit “old school” and there aren’t as many integrations with other services). Not designed for Agile teams.
FogBugz (temporarily rebranded as Manuscript) is a bug tracking and project management tool created by Fog Creek (now Glitch. I think I’m starting to see a pattern here). Name changes aside, FogBugz has been around for years and is used by 20,000+ teams to track bugs, issues, and customer support tickets.
Pros: Saveable custom searches. The free version is pretty good. Ability to add “subcases” to each issue.
Cons: Expensive for anyone but small teams. UI is lacking “polish” and can feel a bit complicated to get set up. Some users have said it’s not really suitable for estimating and planning bug fixes.
Bugs will always be around. It’s your choice whether they’re a nuisance or an infestation.
No matter what tool or software you’re building, bugs will inevitably creep in. That’s fine. What’s not fine is being unprepared for dealing with them. Having a workflow and a bug tracking tool that aligns with how your team works will ensure that those bugs stay a pesky nuisance and not an uncontrollable infestation.
In software development, bugs will inevitably creep in. That’s fine. What’s not fine is being unprepared for dealing with them.