A big part of software testing involves writing; writing test cases and writing bug reports. A good bug report should make it easy for someone to understand the bug and take action on it without having to talk to the person who wrote it. In other words, a good bug report should be thorough enough so that the reader of the bug report can quickly understand the summary of the bug and know how to replicate it.

Bug report

Every team has their own workflows, processes, and tools. But in general, a good bug report should have a strong title, steps to reproduce the bug, the priority/importance of the bug (optional, but helpful), expected and actual results, plus any attachments that add value.

There are plenty of bug tracking tools out there that support tracking this information. Let’s take a closer look at each of these components to better understand them.

Strong Title

The title of the bug report is the first thing the reader sees. It should be short and provide a quick summary of the bug.  Writing concise titles takes practice. Start by trimming the fat – leave out unnecessary words and avoid using generic titles such as “____ is not working.” Instead of saying what isn’t happening, say what is happening.

Good: “Login button leads to 404 error.”

Bad: “Login button is not working.”

A strong title not only helps gain an understanding of what the bug is about. It also helps reduce the possibility of duplicating bugs by knowing that the bug already exists in the bug tracking tool.

Steps to Reproduce

The body of the bug report should provide more detailed information and should always include the steps to reproduce the bug. Like the title, keep this section brief, but include all necessary details. Listing the steps in a numbered sequence makes it easy to read and comprehend.

Remember, each bug takes time to write and work through – the more lean and powerful the writing of a bug report, the quicker you can work through and resolve each bug. Perquisites can also reduce the number of steps. For example, instead of writing out each step to login, start the steps with “Prerequisite: user is logged in.” This section should also include other useful information such as browser type, device, etc.


How important is the issue? How often is it occurring? Is it affecting multiple customers or only a few customers? Stating the priority of the bug helps determine the urgency of the issue. Be clear on the reasoning as to why it’s imperative or why it’s not important. Priority isn’t vital but is certainly helpful for planning and tracking purposes.

Expected and Actual Results

This section helps solidify the core problem and gives the ready a clear understanding of what you classify the issue as a “bug.” Similar to the title, when describing expected results, explain what should happen, not what shouldn’t happen. Likewise, when describing actual results, describe what did happen, not what didn’t happen.

Expected result

Attachments in the Bug Report

Only include attachments that add value. Don’t include 5 different screenshots if only one of them is necessary – this will only cause the reader to take more time deciphering the bug.

Highlight areas of interest in the screenshots, and add text annotations if necessary. Always include the URL string displayed in the browser – this can include important and helpful information.

Sometimes an image isn’t enough, though. A video goes the extra step and provides a lot more information about the bug. For example, a screenshot of an error is great, but a video screen-capture of what led to the error message is better. If you include a video, trim the video to only show the bug. Again, this reduces the time needed to decipher the bug.  Finally, always include log files whenever possible.

TIP: Many simple tools such as LiceCap allow you to quickly capture an animated .gif of your screen.


Good bug reports benefit everyone and allow your team to function like a well-oiled machine. Spend a little extra time up front to create quality bug reports, and you’ll save loads of time down the road as you work through them. It all comes down to communication – logging a bug is communicating an issue. Communicate well and the defect life cycle will be efficient and enjoyable.

TestLodge Test Case Management makes it easy for tickets and bug reports to be automatically created when a test case fails. We integrate with more than 20 of the leading issue-tracking tools, allowing you to expedite your bug reporting process by creating detailed bug reports directly from TestLodge. Try TestLodge for free today and see how you can improve your testing and bug reporting process!