As a developer, it is not necessary to do logging and testing at all if you are not aiming for a quality app. However, it is logging, testing and debugging that make the difference. To achieve the highest of quality, sometimes the testing phase takes more resources than the development itself and, more surprisingly, this is justifiable considering the positive impact of testing on the app quality and more importantly user experience.
Logging is essential to get enough data about the behavior of an app on different types of devices to debug the app when it faces an issue. Following are some smart logging practices that expert programmers use to get the most effective and accurate results in resource efficient manner.
- Using a 3rd party logging framework is highly recommended because of its various advantages. Android’s own logging system works great but its features are limited. On the other hand, a separate logging framework is a much more flexible solution that allows developers to change the behavior of logging according to their preferences.
- Make sure you have the full control over the logging because not everyone wants to see the logs and it is unnecessary as well as waste of resources to log everything. Reducing the amount of logging to an appropriate level is a smart move.
- The logging system might not be as secure as you think. In some cases, logging systems leak sensitive data, so be careful with such information. Sensitive data refers to email addresses, users’ location, passwords and other private information.
- Remote testing tools like Bugfender have changed the way developers do testing and debugging. Remote testing has tons of advantages over traditional testing. Let’s take a closer look.
Remote logging is completely safe if there is encryption when communicating to the centralized server. These tools are designed to focus on the relevant data and ignore or mask all kinds of personal data and information while logging. In most of the cases, the tool does not even have access to the data. Remote testing allows users to test any feature whenever they want. As the apps are designed to send the logs to server automatically, developers and testers can check them whenever and from wherever they want.
What Are 1000 Apps Doing to Reduce Their Bugs to Zero?
Down to Zero is a practical guide to solving bugs. Our team has been developing mobile apps for over a decade and we'd like to share some tips we've picked up along the way.
Bugfender is a highly configurable tool where users can control the devices they want to monitor. For example, if a nasty bug is only occurring on specific devices and the app runs perfect on other devices then developers can turn off logging on device where it is unnecessary. Using remote testing tools for logging and debugging is different than using physical devices for testing.
With remote testing, developers can monitor hundreds of devices simultaneously and analyze their logs to find the culprit. This approach is not only drastically cost efficient, but also reduces the time required for testing an app. Although the mechanism, technologies and protocols used in remote testing tools are sophisticated piece of engineering yet they are extremely easy to install and set up for the first time.
Within minutes you can install the tool and set up your remote lab from where you can test your app on real devices. One of the greatest benefits of it is continuous testing; development and testing are evolutionary phases where developers need to introduce new features and performance improvements every once in a while to keep their apps up to date with the market. For example, Apple enforces developers to update their apps after few months if an important bug is found, otherwise they would be removed from the App Store.
Centralized data and logs help developers and testers prioritize the issues based on their severity and number of users facing them. For example, an Android app has an issue that is associated with Samsung Galaxy Note 4 and another issue that is associated with Google Galaxy Nexus. Now suppose, 80% of the users are using Samsung Galaxy Note 4 and 10% are using Google Galaxy Nexus. It is pretty obvious that developers need to prioritize the issue associated with devices that have a bigger market share.
In the case of testing on physical devices, your capacity of testing is limited by the resources you can spend on buying devices and testing servers, and keeping up with the newest ones. For example, you cannot run tests on multiple devices simultaneously because of limited number of computers, USB ports and performance. On the other hand, remote testing does not have such limitations and the process is fully automated.
How is Bugfender a Game-Changer in Logging and Debugging?
It is a common practice to use logging during the development phase as apps in production phase do not need logging at all. The reason is quite simple; end users don’t need logs, they don’t know what to do of them and most importantly it is unnecessary waste of storage space with log files. Now, the real problem is how would developers be able to find issues that occur only on specific models?
That’s where Bugfender comes in action; it is specifically designed to help developers test their apps on real devices after the release, find the bugs before users do and fix them in the next version. Android and iOS fragmentation has made it difficult for developers to test their apps on real devices and reproducing a bug in the lab is almost impossible.
Bugfender sends the logs to centralized server where users can analyze the abnormal behavior of apps on specific devices and find the root cause of that. There are many crash reporting tools available for iOS and Android development but not all bugs result in crash or failure. Bugfender does not solely rely on crashes but instead records everything. Interestingly, you can remotely turn on/off the logging feature on specific devices to reduce the volume of logs.