If you are a software developer you already know what bugs are and how a bug report looks like. Probably, you've been receiving bad bug reports at your work. Reports like -
"Hey! it's not working"
"I can't see a damn thing on my screen" ... Or
Such bug reports make no sense, they don't give complete information to debug. How will the developer come to know What's not working ? or Which screen is he talking about ? It can be a user mistake or may be he is not connected to internet. What error message did he see ?
Such bug reports leave so many questions unanswered. Making developer's job really painful. This post explains how to write a good bug report. Though this will help anyone reporting a software bug, but I'll focus mainly on mobile bug reporting.
Bug reports are very important for developers, app publishers and product managers. It tells them about the issues in their product that they missed, that may be functional, UI related issues or something that they never thought of. It helps them understand how a user may use their product, so they can improve their offering. The main purpose of a bug report is to show the developer exactly how the app is failing. If they can see it failing, they can easily find out the root cause and fix the problem.
Bug reporting is an art
Image:- Hand drawn on iPad, inspired from Cartoon Tester
The best way to report a bug would be when you can go upto your developer, open the app and show him what's going wrong.
But that doesn't happen, right ? Therefore, you file bug reports.
A bug report must have as much useful information as possible. This helps to identify, reproduce and rectify the issue. Don't write an essay listing all the problems you faced. Be specific about the problem and file multiple bug reports - one for each issue you found. If there are more than one ways to do the same thing, mention the exact way you did. Like " Feedback button doesn't work" is bad. Whereas, "I tapped on settings icon and the menu appeared, now tapping on the feedback button doesn't result in anything." is a better way. Being verbose while reporting a bug is actually good. With enough information beforehand, your developer will not have to comeback to you again and again asking for more information. Make sure to test the bug report yourself by reading it to see if you can easily understand that.
Writing a good bug report
The image above highlights the essentials of a good bug report. Let's discuss them in detail.
Clear Bug Description
This is the first thing that developers look at. Write a short and clear description of the bug. Summary that provides a clear picture of the problem at first sight. For example -
Bad Description : Error on landing screen.
Good Description Landing screen shows Error while trying to login. Error code = 208 "Operation could not be completed."
Screenshots and Videos
Screenshots have been the most important asset to the testing industry. Whenever you encounter a bug, capture the screenshots. Highlight or pin point the problem area in the screenshot and attach it with your bug report.
Screen recording is one of the best way to report a problem. It enables you to show and tell the exact problem that you've found and provides a clear picture to the developer.
Recording screen gets little complex for the mobile, often people shoot video with the camera of other device. With right tools you can easily record your apps for testing.
"So, you are saying that you hold camera in one hand to record your phone screen. Seriously ? Who does that ? "
Go check Bugclipper. Now!
-Shane Grubb, iOS Developer, San Francisco Bay Area
Steps to reproduce
This is very critical to the debugging process. Often you'd hear from the developers "It works for me. What's wrong ?"
A detailed list of the actions that you did along with the input data helps the developer reproduce the same problem on their side. Provide the expected result and actual result of the scenario.
For example a bug report like "I added a contact and don't see it in the list" is a bad way to describe. Rather listing down the steps is the better way.
- Tapped on add contact button to add new contact.
- Added new contact "John Doe" and saved successfully.
- Tapped on the list button that displayed 11 contacts and didn't show John Doe in the list.
Occasionally, when trying to reproduce a bug, you'll find that it doesn't occur every time. If it never occurred again, do mention that in your bug report that this issue is not reproducible, or, may be it occurs only half the time, make sure you provide all these details to the developer.
Describing how severe the bug is, will help developer in deciding the priority and taking a prompt action to fix the critical bug quickly. Severity of the bug reports is categorized generally as Minor, Major, Critical or Low, Medium and High. Whatever way you use, make sure to mention the severity of the bug. If the bug is a show stopper and nothing can work in the app because of that, it will be marked critical and needs to be fixed immediately. Whereas, there may be other issues, which though are a bug, but are not impacting any of the major app functionality. For example - "Help menu is not displayed properly." will be a minor category bug.
Another very important part of a bug report (specially in mobile app testing) is the details of the environment where the bug dwells. Mobile landscape features various versions of operating systems, thousands of devices, hundreds of screen sizes and varying real world conditions. For developers to better understand the problem, he should be aware of all these details.
- Mobile device information & OS version
Write down the mobile device information. Model, make, operating system, OS version and other device specific information.
For example - iPhone 5S, OS Version 8.02 on Verizon.
Other parameters that might also have affect on the app must also be mentioned. For example -
- Phone was not connected to Wi-Fi.
- Battery was 10%.
- Location services were inactive.
- Storage was 90% full.
Network conditions may interrupt app's actual behavior. Provide network information in your bug report.
- Software information and App Version
Developers are constantly working on fixing bugs and improving the app. They deal with multiple versions of the app. Provide the app version / build version of the app that you are using. If your app uses a browser, mention the browser type and also the version in the bug report.
- Crash Logs
Apps crash a lot and it can be because of various reasons. Every time when the app crashes on any phone, Android, iOS or Windows operating system will generate a crash log on the device. This contains the complete stack trace of the app execution and will help developer identify the lines of code and the type of error. Most of the experienced developers keep a track of the crash logs, but it'll be good if you extract the log file and attach it to your bug report.
If your bug reports are structured in the way described here, you are helping the development team do their job more efficiently and trust me, they'll thank you for this.
And, most important, don't forget to mention about the Reporter, i.e. Reporter Name and email. So that they can reach you back with any questions.
Remember, the main purpose of reporting a bug is to show the developer how their app is failing.
We are a team of testers and developers making mobile testing super simple.
Imagine if you can create such a detailed bug report in few seconds. Yes! you can do it with Bugclipper. An in-app bug reporting tool that creates insightful bug reports instantly. Ready for QA / Beta testing of your Android or iOS app ? Take it for a spin.
We’d love to hear from you. We are listening at support [at] bugclipper.com
If you have any suggestions. Start a conversation on Twitter, or write a response on your own blog.