While talking about useful tools for mobile developers, we decided to touch upon the topic of reporting bugs. Bugs always appear in apps during the development process. Developers and testers have to go through several routine stages in order to submit every bug. Using bug reporting tools, it is easy to shorten this boring manual process to a few simple steps.
As you can see, bug reporting tools simplify the testing process significantly. We’ve evaluated different solutions available on the market today and selected several of the most useful and convenient solutions, from our point of view. By choosing one of these tools, you can optimize the work during a project and save lots of time and effort.
Bug Reporting Tools with Crash Report Function
InstaBug is built into the app to help users and testers submit their feedback and report bugs directly from the app.
- min SDK 14+
- Support v7 library
- Linking an app with the frameworks: AVFoundation, CoreMotion, CoreGraphics, CoreTelephony, SystemConfiguration, UIKit
- Integrating with bug trackers: JIRA, GitHub, Slack, Trello, Zendesk, and Desk
- Automatic reporting with every feedback from users or testers
- Detailed data including smartphone OS, console logs, and steps to reproduce a bug
- Option of live conversation with other users inside an app
- Built-in Crash Reporting
- Aggregate all data in tables and graphs and implement app monitoring
- Collaboration with a project team
Snaffu is an in-app bug reporting tool that allows logging bugs quickly and thoroughly. The bug summary is formed directly in the app.
- min SDK 15
- Android 5.0 for video recording
- Support v4 library
- Xcode 6
- Compatibility with bug tracking systems: JIRA, Asana, PivotalTracker
- Embedded system of issue tracking
- When it’s required, anyone can report a bug, not only the project team members
- Automatically capturing logs and device details
- Option to highlight the problem and record a video
- Crash reporting: the next report can be completed. In other words, an app asks to report a bug that caused the crash
- E-mail notifications
- Offline work. The tool submits all gathered bugs when you go online
Shaketobug is a bug reporting library for Android. It allows users to send messages about bugs via UI screenshots and graphic notes made on the pictures.
- Compatible with all OS versions
- Users take an app screenshot with a bug, highlight the error and send it via specific form adding the device details
- Mobile developers can customize some library characteristics. For example, UI for feedback, email support and others
BugshotKit is an in-app bug reporting tool for iOS with an ability to comment screenshots and console logs. It is dedicated exclusively to mobile developers and testers.
- Compatible with all OS versions
- It’s activated with one of the predefined gestures. As soon as you find a bug, you can open the report window with one motion and make a screenshot with NSLog() in live regime
License: Free with an option to donate to support the projects of the library author
Crash Reporting Tools
If a mobile developer uses a good bug reporting system, then in most cases it already includes a crash reporting function. However, not all mobile projects use these bug reporting tools.
When an app is released without any bug reporting system, another urgent question arises; what happens if the app crashes? An app developer must learn about app crashes as soon as possible, in order to respond to errors in real time and make updates promptly.
We can imagine the following scenario. An app crashes or becomes non-responsive. The device's operating system lets a user know that something goes wrong and asks for a detailed crash description. The user creates a report and sends it back to the OS request. The developer of the crashed app receive the report and fixes the error.
This is a naive outlook because, in 99% of cases, app users would simply ignore an OS request and wouldn’t spend the time to create a crash report. In this situation, all the mobile developer can do to get valuable insights about crashes is to use crash reporting tools. It is important to understand that when using these tools you can only get crash, not bug, reports.
We’d like to mention two of the most popular tools for automatic crash reporting:
Crashlytics is a crash reporting tool for iOS and Android that makes detailed reports about app failings and anticipates possible crash risks.
- Compatible with all OS versions and suitable for all kinds of devices
- Allows tracking a stack that leads to the crash
- Does a deep analysis of an app in various directions and prioritizes the most interesting threads that are under risks
- Does a search through all the custom data
- Follows the state of the devices that an app runs on
- Works both for iOS and Android. Evaluates system errors that can lead to crashes. For example, Crashlytics can find out whether the OS version affects crashes or not
- It has a desktop version for mobile developers including all the analytics and data
2. ACRA (Automated Crash Reporting for Android)
ACRA is a library for Android apps for automatic posting of crash reports to a GoogleDoc form. It is intended to help Android app developers to receive all information about app crashes or errors.
- Min Android 2.2+
- Allows Android developers to get all the crash data and logs without involving app users
- Customized communication with users. A developer can choose how to inform an app user about the crash: by default in Android report or through some alternative way like dialog via messages
- Makes a detailed crash report
- Allows manually adding some variables or debug traces in the report
- Allows sending error reports even if the app doesn’t crash
- Reports can be kept offline and sent when an app restarts
- It can be used with a personal report receiver script written by a developer
In the beginning of this post, we described what a manual process of submitting a bug looks like. It consists of several stages that seem to be relatively simple but in fact they take up precious time. Every mobile developer can agree that they’ve heard this at least once: “Dude, all testers are busy. Submit a bug”. Bug reporting is not as easy to implement as it appears on the surface.
Many of you would probably say that there is little left to do. You just need to distribute the resources optimally in order to track problems and quickly inform about bugs. However, the project team’s workload doesn’t allow this to happen regularly. The most reasonable solution is to use bug reporting tools. When choosing a particular program or library, it’s important to take into consideration whether it meets your requirements and opportunities, or not.
How do you report bugs? Let us know in the comments.