What is a bug report and how to create one?

Branimir Hrzenjak
10 minutes
Reading time

Because software is so complex, it’s inevitable that bugs will occur.

It’s best to identify them early—the sooner, the better—so they can be fixed before causing too much damage.

This is where bug reports come into play.

Bug reports provide developers with crucial information about the cause of an error so that they can reproduce and resolve it in a timely manner.

However, if there is no structured method for creating bug reports, developers may spend hours trying to decipher the problem from an overwhelming sea of information.

That’s why, in this article, we’ll cover the basics of how to create quality bug reports which enable quick and efficient issue resolution.

Stay tuned!

What is a bug report?

You may wonder, but what exactly is a bug report?

In a nutshell, it’s a record of all the relevant details about a software bug, including what caused it, when and why it happened, and what effect it had on the system.

For example, if a user clicks on the button and the page doesn’t load (as shown in the image below), this might be a bug.

user clicks on the button and the page doesn't load
Source: Usersnap

If the text is too small to read, this can also qualify as one.

A bug report will contain information about these issues, as well as any other relevant data that might help developers locate and repair issues, such as reproduction steps, technical information, and even screenshots or videos of the bug in action.

The following image does a great job of illustrating what a bug report might look like.

bug report example
Source: Marker

In this case, the bug report is related to an application showing an error when a user tried to upgrade the pricing plan.

It contains data about the bug environment, user interactions, and other details that might help developers find the root cause of this issue.

Bug and crash reporting tool for your mobile app.

This example is also interesting because it shows that a bug report should be simple, clear, and concise.

This is because, in general, developers are busy and may not have the time to read lengthy bug reports.

It’s a good idea, therefore, to include as many pertinent details about a bug as possible in as few words as possible.

How to create a bug report?

A well-written bug report not only documents a problem, but also provides all available information surrounding it.

This makes bug reports indispensable to developers, who can use them to create a more stable product.

You might think writing such a bug report would be a daunting task, but it’s actually quite straightforward.

In the following sections, we’ll walk you through the process of creating one and provide some tips for making the most of it.

Confirm the bug is reproducible

When writing a bug report, the first step is to establish whether or not the issue can be consistently reproduced.

A reproducible bug is one that causes an error or unexpected behavior every time certain actions are taken, so testers and developers can cause it to happen on their own, in order to get to the bottom of the issue.

So, if testers discover an issue multiple times and always experience the same results, they should write a report that includes the following sections:

  • short description of a bug
  • steps to reproduce
  • expected results
  • actual results

A short description should contain just enough information to explain the problem in one sentence.

The reproduction steps section is where testers explain how they discovered the issue.

In the example below, you can see that the tester provided step-by-step instructions for reproducing the bug.

JIRA screenshot
Source: RubyGarage

This is important because it will allow developers to follow the same path to recreate the bug and resolve it.

The expected results section should explain what outcome testers were expecting from their actions.

On the other hand, the actual results section should describe what actually happened instead.

This all combined together will give testers and developers enough initial proof that the bug is real, and that it needs to be included in the bug report.

Include key information in the report

In addition to enabling developers to reproduce the bug, there are a number of other pieces of information that every well-written bug report should contain.

Or, as Quora user Andre Speek points out, every bug report should encompass not just the fact that something is broken but also the details that could lead to a solution.

Quora screenshot
Source: Quora

You can never truly know what the developers might need in order to reproduce or fix a bug.

But having a clear picture of the problem can help them save time and effort by reducing the number of additional questions they need to ask.

Therefore, besides reproducibility (which we mentioned earlier), it’s important for a bug report to contain the following information: title and bug ID, bug environment data, source URL, as well as details about severity and priority levels.

Redwerk screenshot
Source: QAwerk

For example, the environment in which a bug occurs is one of the most critical pieces of information that developers will want to learn.

They need to know whether it’s a browser, operating system, or device issue.

If the bug affects only users on mobile and not desktop, that’s vital information to include in the report.

The severity of a bug is also important to note.

It’s not uncommon for developers to receive many bugs at once, so knowing how severe each one is can help them determine which ones to resolve first.

If the bug causes data loss, security risks, or other major issues, it’s more important to fix than it would be if it affected only a minor functionality.

The severity of a bug is usually determined by how much it impacts the user experience, and it is ranked on a scale from 1 (low) to 5 (blocker).

bug severity scale
Source: QATestLab 

Finally, priority is an indication of how much time developers should spend on the issue and how they should prioritize it.

This may vary depending on what’s happening with the project.

For instance, if it’s nearing launch and there are many bugs still open at this stage, then these priority levels will be higher than they were when the product was just starting out.

In addition to a detailed description of the problem, it’s helpful to also include information such as bug ID number, title or source URL—they will further assist in understanding context and structuring issues.

Add attachments to the bug report

Sometimes there’s more that can be done to help developers fix bugs more quickly.

Attachments to bug reports are a particularly great way for testers to help developers narrow down the causes of a bug.

Here’s how this may look in practice:

attachments to the bug report example
Source: Marker

An attachment could be a screenshot of the issue itself or even an audio or video recording of what’s happening on screen.

Furthermore, if testers have documentation that may be helpful to developers when looking into the issue (such as a screenshot of their environment or log files), this can also be attached to the bug report for reference.

For example, if there is an error with adding the item to the cart, as shown in the example below, a video recording of the incident can save a lot of time of back-and-forth between developers and testers about what happened on screen.

error with adding the item to the cart
Source: Bird Eats Bug

Screenshots can also be helpful in showing what the issue is, or where it occurs.

In the image below, a screenshot of the button that doesn’t work properly is attached to the bug report so developers can see exactly what testers are talking about.

technical info captured with bugherd
Source: BugHerd

Log files are another useful resource for developers since they detail every action a tester did before the bug occurred.

Including it in a bug report makes it easy for developers to recreate the problem, which is crucial for fixing bugs.

Remember, saying that the picture is worth a thousand words is no exaggeration.

Having attached a visual representation of what happened will help developers quickly identify and address the issue at hand.

How to improve your bug reporting workflow?

It’s important to have a system in place for making sure bug reports are reported, triaged, and resolved effectively.

Therefore, the first thing you should do is assign a person to be responsible for managing the bug-reporting process.

This person will be responsible for:

  • monitoring and reporting on issues encountered by testers
  • adding them to the bug-tracking system
  • resolving bug reports
  • revising processes that led to bugs in order to prevent their recurrence

If you don’t have someone to manage this process, it’s very likely that bugs will fall through the cracks and go unaddressed.

You should also create a process to track the status of each bug report through its lifecycle (from creation to resolution).

process to track the status of each bug report through its lifecycle
Source: Orangesoft

As you can see in the picture, this can be a complex undertaking that involves many steps.

However, it’s necessary to ensure that the bugs are properly identified and dealt with.

If you want to further streamline your bug reporting workflow, it would be wise to consider automating the process with software.

A good bug reporting tool, such as our Shake, will allow you to manage bug reports in an easy and efficient manner, which will make the whole process faster.

Shake screenshot
Source: Shake

Shake’s name is derived from its most notable feature—the fact that it provides the ability to report bugs with a single shake of the phone.

After that, the bug report is automatically sent to developers, allowing them to see what went wrong from many angles.

In fact, Shake’s reports include more than 70 different metrics so that developers can get a full picture of bugs and their causes—not just what the tester saw at the time of reporting.

For example, which device type and model are experiencing issues, what operating system is being used, network traffic, notifications, logs and system events, screenshots and video recordings of the bugs—pretty much anything that’s needed to get a bug fixed.

It also has a neat chat feature that allows developers to discuss bugs directly with testers in real time and make adjustments accordingly.

Shake chat screen
Source: Shake

You may choose to use Shake or any other quality bug-reporting tool since there are many good options available.

The bottom line here is that if you want to make your bug-reporting workflow truly efficient, you’ll eventually have to invest in a tool that will allow you to capture all the required data with one click (or shake).

This will ensure that bugs are reported quickly and accurately, which will, in turn, lead to more efficient development cycles.


Bug reports don’t have to be difficult or complicated. As long as you and your team follow a few simple guidelines, everyone can easily create them.

With the right tools and a clear understanding of what is required, you can implement an efficient bug reporting process that will help you fix bugs faster, improve the quality of your software, and ultimately make it more stable.

About Shake

Shake is a bug and crash reporting tool for mobile apps. It was founded in 2019 with the mission to help app developers spend less time on debugging and manual overhead — and growing daily since thanks to a small and dedicated team of geeks based in the EU.

Meet your favorite bug and crash reporting tool.

Add to app in minutes

Doesn’t affect app speed

GDPR & CCPA compliant