How to Make Mobile Testing and Agile Meet?

The Agile methodology brings such evident benefits to mobile app development as a faster time to market, adjustability to changing requirements, and the frequent delivery of functioning subsystems. Also, QA is an inseparable part of Agile development, which should lead to better app quality. However, 52% of World Quality Report respondents claim their major Agile concern is “not enough time to test.”

Testing deadlines are truly tight in Agile projects. 41% of State of Testing Survey 2018 respondents claim that the larger part of an iteration is spent on development and it’s very challenging to cope with testing timeframes. Besides,constant changes introduced to the requirements of an application under test (AUT) bring about regular reprioritization of testing activities and maintenance of test cases. And frequent software releases require regular and comprehensive regression testing, which may take up almost the half of testing time. 

Mobile Testing & Agile Meet

Testing of mobile apps is also prone to numerous specifics that should be considered to ensure your mobile app is fully functional, secure and truly user-friendly. In this article, we show how not to get stuck in multiple testing bottlenecks bound to both the Agile methodology and the mobile environment.

Mobile Testing Considerations

Mobile app testing should validate a significant number of special mobile features:

  • Compatibility with different OSs (for example, Android, iOS, Windows Phone) and their numerous versions. During compatibility testing a test team checks whether mobile app’s functionality and usability is rendered adequately through its target mobile OS(s).
  • External integrations. A mobile app should smoothly integrate with built-in mobile features and other apps (for example, a camera, a GPS chip, a calendar, a phonebook – depending on the intended functionality of an AUT). Thus, integration testing is required.
  • High requirements to usability. Millions of mobile apps overflow the market, so an app should not only bring value but also provide top-notch UX to stand out from this wide range. Usability testing validates everything from an AUT’s smooth installation, convenient navigation, clear content layout, the minimal number of usage steps and fields to input data. Mobile app graphical user interface (GUI) testing should check whether an app provides the equally handy and clear look and feel on different devices. Also, GUI should be compliant with mobile app design guidelines and GUI kits not to provide visual impression inferior to the competitors’. 
  • Functioning under interruptions. Test teams should check whether mobile apps are adequately functional in case of real-world network conditions – unstable, limited or the lack of internet connection. Besides, such typical mobile interruptions as calls, texts, push notifications, and a dead battery may cause a wide range of unpredictable and unacceptable reactions that mobile app testing should timely detect.
  • Functioning under stress and load, compliance with mobile hardware requirements. Performance testing is a must for mobile apps as the maximum number of users, response time, functioning under continuous and peak load will greatly influence their popularity with the public. Besides, minimally acceptable mobile apps’ processing power, memory and battery consumption should be validated for users to know for sure whether those apps will function properly on their devices.

Five Proven Assets To Mobile App Testing In Agile:

The contradiction between the vast range of testing activities implied by mobile app testing and tight Agile deadlines is evident. How to make both ends meet? Here are some ideas on how to smoothly adjust mobile app testing to the Agile methodology.

  • QA starts early

QA should be introduced from the stage of software requirements gathering or user stories’ creation. A QA professional should assist a BA with writing story cards. Their mutual involvement ensures that user stories clearly state what is within and out of the testing scope and outlines dependencies between different user stories. This way, it’s easier to get a clear testing scope and a test plan that provides enough time for the validation of a mobile app’s functions significant for user adoption. This can help a test team to create basic test cases before the development starts, prioritize ongoing testing efforts, and eventually meet iteration deadlines.

  • Established development and testing alignment

A project is unlikely to fly without seamless development and testing alignment. In an Agile project, this can be achieved by organizing weekly meetings or video conferences and daily goal settings in a common chat. Besides, continuous integration tools (like Jenkins, GitLab, TeamCity) allowing integration with different source code management tools are helpful to track code amendments and bug fixing, which makes them visible for test engineers. In addition, bug reporting tools that support screen recording functions let test teams save time by not having to write detailed bug descriptions to make bugs easily reproducible for developers.

  • Appropriate test environment

For test engineers to meet tight iteration deadlines without compromising on an app’s quality, a test lead should carefully consider the relevant test environment.

Real devices are most suitable to validate every aspect of a mobile app’s functioning in real life conditions.

However, too many dedicated real mobile devices may be needed (particularly, with regard to testing of Android mobile apps). Looking for appropriate real mobile devices may take time, which is so precious in Agile projects. Besides, test engineers often have to wait for their peers to finish their testing activities on a device before gaining access to it.

To eliminate these testing time-eaters, a test lead can consider the opportunity of reaching mobile physical devices via cloud technologies. Device farms may help to cover the gaps in the fleet of real devices. Still, note that cloud devices can’t substitute real devices entirely as service providers limit performance testing opportunities, manual and automated testing time, the maximum size of app files that can be uploaded. Thus, a test lead should carefully consider how many real devices will be required for testing, and what test cases can be run with the help of cloud device farms.

During exploratory testing, test engineers find problematic aspects in a mobile app’s functioning to test them later more thoroughly with test cases. Unlike scripted testing, it requires minimum test documentation, mostly relying on test engineers’ experience that should help to outline the most probable mobile app malfunctions. This allows for quick prioritization of future testing activities and, thus, saves testing time.

Test automation is a real asset in Agile mobile app testing as it helps test teams to meet tight iteration deadlines and ensure vast test coverage. Repeatable, data-intensive, and long-running tests are ideal for mobile app test automation. Thus, regression, performance, and cross-platform testing should be automated. For example, test automation can cut regression testing efforts to more than a half. Besides, automated tests can run at night: no development is being done and automated testing is going on.

However, changes in user stories and code itself introduced in Agile projects from iteration to iteration result in continuous automated tests maintenance. Besides, usability and exploratory testing can’t be automated.

Key Takeaways:

Mobile app testing in Agile projects may cause several complications due to Agile and mobile app testing specifics. The Agile methodology presupposes frequent changes of software requirements, regular software releases that result in tight iteration deadlines and endless regression testing. Mobile app testing requires vast test coverage embracing rigorous compatibility, integration, interruption, performance, and usability testing.

There are some experience-driven practices that can help to overcome these difficulties. Firstly, BAs should cooperate with QA professionals to create true-to-life and clear user stories. Secondly, an efficient Agile working process should provide for smooth development and testing alignment. A test lead should consider and obtain the relevant test environment before it’s time to start testing. Finally, test automation and exploratory testing are helpful to reduce testing time and meet iteration deadlines. These five assets can help to overcome the most serious perils of mobile app testing in Agile.

About the Author:

Andrei Mikhailau is SW Testing Director at ScienceSoft headquartered in McKinney, Texas. Andrei has 15+ years of experience in a range of SDLC processes, from testing and BA to and project management and QA. Throughout his career Andrei has successfully worked under various methodologies: RUP, MSF, XP, Agile and CMMI III/IV levels. He also has proven expertise in developing a quality testing process under these methodologies.


⇓ Subscribe Us ⇓


If you are not regular reader of this website then highly recommends you to Sign up for our free email newsletter!! Sign up just providing your email address below:


 

Check email in your inbox for confirmation to get latest updates Software Testing for free.


  Happy Testing!!!
 

Leave a Comment

Share This Post