NashTech Insights

Special cases in Mobile Application Testing

Anh Nguyen Ta Tuyet
Anh Nguyen Ta Tuyet
Table of Contents

Mobile application testing is the process of testing application software for mobile devices. It involves checking the functionality, usability, and compatibility of mobile applications.

Web application testing is the process of checking web-based software to make sure it works well and meets quality standards. It involves testing websites or web applications to ensure they function properly and are user-friendly.

As a tester with experience of both web application testing and mobile application testing, I want to discuss some special cases which applied for mobile application testing which are not applied in web application testing in this blog.

1. Functional Testing

Functional testing is the most basic type of testing. The testing type verifies that all features and functions of a mobile application work correctly. It will cover various scenarios and user flows within the application, such as installation, login, navigation, transactions, notifications, … 

We need to consider the special cases when doing functional testing in a mobile application:

  • Device fragmentation:
    Mobile devices vary in terms of screen size, resolution, operating system, browser, hardware specifications… This means that a mobile application may be work differently on different devices and may not be compatible with all of them.  
  • Network conditions:
    Most of the mobile application needs to connect to database servers to get the data. So, mobile applications depend on network connectivity to function properly. However, network conditions are often unpredictable and unstable, especially in mobile environments. Network speed, bandwidth, signal strength… may be depending on the location, time, carrier. These factors may affect the functionality and performance of the application, such as loading time, data transfer, synchronization… Testers need to test the application under various network conditions to ensure that it can handle them gracefully and provide a consistent user experience.  
  • User input:
    Mobile applications rely on user input to perform corresponding actions. User inputs can be various meanings, such as touch screen gestures, keyboard input, voice commands… Testers need to test the mobile application with various types of user input to ensure that it can validate them correctly and handle them appropriately. 

Let me provide some of the tips for testing those cases:

  • Use a cloud-based testing platform:
    To ensure that the functions correctly on every device, testers need to test it on a large number of real devices or use emulators or simulators. Cloud based testing platform is a good choice to test the mobile application with a large number of devices. This can help testers overcome the device fragmentation challenge by allowing them to test their applications on multiple devices simultaneously and remotely. A cloud-based testing platform can also simulate different network conditions and user inputs for testing purposes.  
  • Define test strategy for mobile application testing:
    Real devices are expensive and hard to maintain, while emulators and simulators may not accurately reflect the real device behavior and performance. When we test with many devices, it takes time and costly. So, testers should consider on risk base testing approach in the testing phase. It can start with the scope of test, test environment, type of devices and operating system of the devices, entry and exit criteria in test strategy.

2. Performance testing

The application’s performance testing involves measuring how fast, responsive, and resource-efficient it is under normal and extreme conditions. Performance testing also involves measuring aspects such as start-up time, battery consumption, memory usage, hardware/software compatibility, and background app behavior. It can be difficult to measure and optimize the performance of the application across different devices and networks manually. This type of testing requires the use of specialized tools to perform effectively and efficiently.

I have used Appium for end-to-end performance testing and JMeter for backend performance testing. Sometimes, I communicate with developers to verify response time in the frontend using log files.

3. Usability testing

This refers to testing the user-friendliness, intuitiveness, and accessibility of the application’s interface and features. Mobile applications need to provide a good user experience and satisfaction across different user groups and preferences. However, evaluating the user experience and satisfaction of the application across different devices and operating systems can be subjective and difficult. We should consider collecting the client feedback when the application is live.

    4. Interruption Testing

    Interruption testing is a type of mobile application testing that checks how an app responds when faced with an unexpected interruption or event during its operation. Interruptions can be caused by various factors, such as incoming calls, messages, notifications, alarms, low battery, device rotation…  

    We need to consider the special cases when doing this kind of test in a mobile application:

    • Identifying interruption scenarios:
      Interruption scenarios are often unpredictable, random and depend on various factors such as device settings, user preferences and external events. Testers need to identify and prioritize the most critical interruption scenarios that may affect the functionality and performance of the application.  
    • Reproducing interruption scenarios:
      Interruption scenarios are often hard to reproduce and control, especially in real device environments. Testers need to find ways to simulate or trigger the interruption scenarios in a consistent and reliable manner for testing purposes.  
    • Verifying interruption outcomes:
      Interruption outcomes are often complex and varied. It is depending on the type and timing of the interruption, the state and mode of the apps, the user action and expectation… Testers need to verify that the app can resume its operation smoothly after an interruption occurs and that no data loss or corruption occurs.  

    Here are some tips to help with interruption testing:

    • Use risk-based testing:
      Risk-based testing is a testing approach that focuses on testing the riskiest areas of an app based on their probability and impact. Risk-based testing can help testers identify and prioritize the most important interruption scenarios. It may pose a high risk to the app functionality and performance. Testers can use various criteria such as frequency, severity, visibility… to assess and rank the risk level of each scenario. 
    • Use monkey testing:
      This is a type of random testing that involves generating random inputs or events to an app to see how it behaves. Monkey testing can help testers reproduce or discover unexpected interruption scenarios that may occur in real user environments. Monkey testing can also help testers find hidden bugs or issues in the app. They may not be detected by conventional testing methods. 

    5. Localization Testing

    Localization testing is a common type of testing that verifies whether an application can adapt to different languages, cultures, regions, formats, … It ensures that an application can provide a localized user experience that meets the needs, preferences, expectations of users from different backgrounds. 

    We need to consider the special cases when doing this kind of test in a mobile application:

    • Translating content:
      Translating content is one of the main tasks in localization testing which involves converting text, images, symbols… from one language to another. However, translating content is not a simple process that can be done by automated tools. Translating content requires human intervention and expertise to ensure that the meaning context, tone, style… are preserved across languages. Testers maybe leak translation mistakes that may affect the quality and credibility of the app. 
    • Adapting layout:
      Adapting layout is another important task in localization testing which involves adjusting the design elements such as fonts, colors, icons, buttons, menus… according to different languages, cultures, regions, formats. It requires careful planning and execution to ensure that the layout is consistent, clear, readable, attractive… across devices, platforms and browsers. Adapting layout also requires consideration of various factors such as text direction, text length, text alignment, text wrapping, text overflow… And it will affect the appearance and functionality of the app. 

    My team recently faced challenges with localization testing in our latest project. We implemented effective strategies to overcome these challenges:

    • Use professional translators:
      Professional translators are experts who have knowledge, skills and experience in translating content from one language to another. Professional translators can help testers ensure that the content is translated accurately, appropriately and consistently across languages. Professional translators can also help testers avoid common mistakes such as literal translations, grammatical errors, cultural mismatches… That may cause confusion offense or misunderstanding among users. 
    • Use responsive design:
      Responsive design is a design approach that enables an app to adapt its layout according to different device, sizes resolutions or orientations. Responsive design can help testers ensure that the layout is adaptable, flexible, scalable. 

    6. Conclusion

    In summary, mobile application testing can pose many challenges and difficulties for the development team. Nowadays, mobile applications and digital experiences such as surfing the internet by mobile are increasingly popular in all fields. Naturally, mobile application testing is an indispensable part of all software testing cycles. I hope that my post has some insights into mobile application testing.

    Anh Nguyen Ta Tuyet

    Anh Nguyen Ta Tuyet

    I am a senior QC with more than 7 years of experience in software manual testing, more than 4 years of experience work in Scrum project. I have strong knowledge of manual test skills for web and mobile applications. My favorite quote is: A journey of thousand miles begins with a first single step. So, I always want to try my best when I do everything on my way.

    Leave a Comment

    Your email address will not be published. Required fields are marked *

    Suggested Article

    %d bloggers like this: