How to Improve Android Test Stability

Engineer is testing Android device

Mobile application testing is a crucial part of the app development process. Stable tests and reliable test results demonstrate that the application has been developed successfully and can be used by users without major problems. One of the issues software testers might face, however, is unstable tests. Tests can be easily fixed or other workarounds can be found but stability issues remain. Unstable tests lead to unreliable test results. And if test results are unstable, it is difficult to spot any bugs or find other app issues. There are a few steps which can help software testers detect stability issues and improve test stability.

In this blog post, we will look at some steps testers can take to improve test stability and test results when performing mobile app testing on Android devices.

Importance of test stability

The importance of test stability is simple—stable tests produce better test results. Testers need to have stable tests to make sure that the app is ready for production. Unstable test results may cause problems in development because app issues remain undetected and can show up in the end product. In the screenshot below, we can see an Allure test report with a 78.65% pass rate and a trend characterized by flakiness, which indicates that tests are unstable and some issues can be overlooked. In this case, any bugs left undetected will go into production and may be encountered by users, who may leave bad reviews for the app or turn to other products instead.

Allure test report
Allure test report 

By ensuring that tests are stable, testers have a clear understanding whether the app has any issues and if it does they can notify developers in time and resolve them swiftly. There are few steps to follow to better understand test stability issues and improve their overall stability. Let’s explore the steps to improve test stability, ensure stable tests, and get reliable results.

Person using Android phone

Keep code clean and maintainable

The first step is to keep your code clean and make sure it is easy to maintain. Your code needs to be written by following best coding practices. If new functionalities or features are implemented in the app, it has to be easy to change in the code. If the code is messy and repetitive, fixing it might be more difficult and time consuming.

Well-managed code allows testers to fix problems much faster. Stability issues may occur after new changes in the app have been made. The faster the code is fixed, the lower the chances are of stability issues.

Check your devices

Over the last few years, devices have become more accessible across a broad price range, starting from budget-friendly devices to high-end devices. Every device has its own characteristics such as screen size, OS version, battery size, and performance. For example, Huawei phones differ from other Android devices in that they no longer support Google Play services, and instead have their own services for it.

Therefore, one of the first steps to take to make sure tests are stable is to look at what devices are being used for test executions. Android phones by different manufacturers, like Google, Samsung, and Huawei, may behave differently from one another. For instance, as screen sizes may vary, different phone models might need additional swiping to locate elements. Differences can also be seen between older and newer Android versions. New pop-ups, like permission and update notifications may appear. Additionally, default apps installed on the mobile device could be set up differently depending on the manufacturer. Another thing to keep in mind is that phones that have fingerprint readers may ask for touch ID verification, which may prompt new pop-ups to appear. Such scenarios, like touch ID verification, cannot be automated and need to be tested manually.

As a result, having a comprehensive understanding of the devices that will be used for testing, their configurations, and how they behave when running the same tests is important to ensure stable and reliable tests.

Person holding Android smartphone

Add a screen recording

As mentioned above, each device might behave differently so the next step would be to add a screen recording during test execution. It is easy to set up screen recording using the Appium driver. It enables testers to debug any problems easier. Screen recordings provide the best understanding of what is happening on the device during test executions. Recording can be saved on host machines or local machines. With screen recordings, testers can identify things like misclicks on elements or if swiping is not executed correctly. Screen recordings can also be added to different test report tools, making them very useful for spotting bugs and other issues.

Save Appium server logs

Saving Appium server logs is another way of debugging tests and better understanding test stability problems. The first thing to do is to add Appium log saving in tests in the desired path. There are different Appium flags for changing the logging output which might come in handy. A particularly useful Appium flag is the timestamp flag for adding timestamps in logs. When combined with screen recordings, debugging becomes even easier.

Appium logs provide a variety of useful information about the Android device under test, like debug information, executed adb commands, warnings, and errors. In some cases there can be hidden functionalities in the testing apps and logs can help spot them. If default log information is not enough, other Appium flags can be used to gather more detailed data.

Save Logcat logs

One of the last steps to take to improve Android test stability is saving Logcat logs. Logcat logs are logs that include all device processes. These logs include many options to manipulate output. They provide a wide range of debug information, activities, and other processes, and can be saved on testing devices and/or on a host machine. Logcat logs are extremely helpful in detecting any strange behaviors and uncovering hidden functionalities.

Example of Logcat log
Example of Logcat log

Conclusion

Ensuring test stability is a critical part of mobile app testing, as stable tests provide accurate information about the tested application. As we can see above, there are several steps that can be taken to improve Android test stability.

First and foremost, maintaining clean and well-organized code is essential. Secondly, testers need to have a comprehensive understanding of the behavior of each testing device to obtain better results. Thirdly, adding screen recordings can help with easier debugging. Additionally, saving different kinds of logs—specifically, Appium and Logcat logs—and going through them can be quite useful to detect and solve issues faster. Finally, fixing unstable tests as soon as possible is critical to achieving the best results and enhancing test stability in Android apps.

Do you want to test your Android mobile application but you’re struggling to create stable tests that deliver reliable results? Check out our mobile app testing services or contact us to find out how we can help you improve your software testing process and ensure test stability.

Subscribe to our newsletter

Sign up for our newsletter to get regular updates and insights into our solutions and technologies: