UI Testing Challenges of The Trendyol Mobile App

Hazel Turan İnel
Trendyol Tech
Published in
5 min readDec 1, 2020

Mobile application testing is a testing process to ensure functionality and usability meet the requirements and that the application is ready to launch.

Mobile application testing includes general test types (functionality, performance, usability, security, load) as well as mobile-specific tests (outage, memory leak, location, certificate, installation, etc.).

Mobile app testing is a complex process: dozens of screen resolutions, various OS versions, all kinds of connection types, etc.

However, it is almost impossible to publish a mobile application without this process being successful. UI testing is one of the important items in mobile application testing and it should not be taken lightly.

When the users use a mobile application for the first time, it’s not just the performance that steals the attention but also the appealing UI. A UI friendly application sells more when compared to an app which is best developed but with a nasty UI.

The two major verification that needs to be done for mobile applications is user-friendliness and appearance across different models and OS versions.

Real-Time Challenges For The Mobile Testing

1. Multiple Mobile Devices and Screen Sizes

Multiple mobile devices

The quality team can not guarantee that if a tested application works well on a particular device, it will work 100% on another device, even if it is from the same family, because the screen resolution, CPU, Memory, OS optimization and hardware may differ. For this reason, there are many test devices to run regression scenarios other than testing sprint stories and bugs.

While testing, make sure that controls size looks esthetically good and control is completely visible on the screen without any scrolling. Test the GUI on different devices with different screen sizes and resolutions.

Emulators are good for this purpose but nothing matches the real device. So make sure that you test on at least two or three real devices.

For example, in the simplest way, when a button is to be added to the page, we check it on all screen sizes we have. When we think that the button cannot be clicked, the user may not complete the process and exit the application. In the example, you can see the clickability of the product selection radio button on the cart page on the iPhone 5S. While testing the work, this button could hardly be clicked on the iPhone 5S and the user had to click on the product image.

View of the product selection in the basket on the iPhone 5S

2. Device Fragmentation & Various OS Platforms

New iOS version adoption rates are quite high. By comparison, Android users are typically much slower to adopt newer OS versions, with large percentages of users still sticking with versions more than two generations old.

Thus, it is critical that testing accounts for the wide variety of potential (or, at least, likely) operating system versions that users may have installed.

In general, when testing, there are many differences in text or button colors compared to the OS version. As can be seen in the example, the text “Off” for iOS 12.3 version is gray, for iOS 13.2.3 version the text is black. While the job was being tested, it was noticed and made to appear in the same color and function in all OS.

Text view in different iOS version

Latest Released Phone Model Vs OS Version: Which Should Be Tested First?

The user interface is very important when testing an e-commerce application. However, when a job comes to the test, it is not clear whether it will be tested first according to the device model or the operating system.

Because the analysis of the work coming to the test is much more important than starting the test quickly. Have a very clear idea about the purpose of testing before choosing between the latest phone and OS. After determining the priority points, you will see that the process progresses more efficiently when the test is started.

Grooming etc. it is very important to inquire from the product manager on which devices the work will be valid and whether there are designs and use cases belonging to them before the development process begins.Have a very clear idea about the purpose of testing before choosing between the latest phone and OS.

It may also happen that the latest phone is released with the latest OS, which may solve your problem to some extent. But ultimately the latest OS support is a decision of the customer. They may not want to immediately support the latest OS.

If I give an example from the testing process of Trendyol mobile application;
When a job with A / B is included in the sprint, a QA must first understand the analysis of the job very well. What to expect in assumptions A and B should be understood very clearly. The availability of designs should be checked. When the test process starts, the places with design changes should be checked on devices with different screen resolutions and screen sizes. The bug records seen here should be opened. Then, it should be checked whether there are similar situations that cause crashes or UI errors in different OS.

3. Connection Types

Testing all the various connection types available to modern mobile devices can be yet another challenge for the QA team.

For these reasons, it’s critical that testing accounts for the full range of speeds and qualities of connectivity the application may experience. Moreover, testing should also acknowledge and measure the application’s bandwidth usage, since many carriers and service plans do not allow for unlimited data usage.

For example, when trying to refresh the page while in airplane mode, a black bar issue appears on the tab bar in the basket page. In cases where we cut the internet completely while testing, we can say that we have problems such as crashes while refreshing the page.

Airplane mode effect on Android app

Conclusion

We may encounter many different difficulties when testing mobile. But the most important issue here is to understand the purpose of the work done before starting the test, to understand where it will affect and to understand the use cases. Actually analyzing the work again from the eyes of a test engineer. In this way, when the problem is encountered, we will know the answer that can be a solution.

See you in the next post :)

--

--

Hazel Turan İnel
Trendyol Tech

Senior Software Developer in Test at Trendyol BSc. Computer Engineering at Istanbul University https://www.linkedin.com/in/hazelturan