Automated Testing of a Secure Mobile App with Appium

Automated Testing of a Secure Mobile App with Appium

Industry
Information Technology, Software products
Technologies
Appium

Summary

An international digital security company was building a secure messaging app for Android and iOS, but its in-house team could not keep Appium automated testing efficient or combine it with manual testing under a heavy workload — and release quality suffered. The Client brought in INNERLUXES, a long-term partner, to restructure the Appium process and offload its testers. Working to a tight five-month beta deadline, INNERLUXES reworked the test automation with data-driven and keyword-driven scripts and Jenkins scheduling, and delivered functional, critical-path, and performance testing on time.

About the Client

The Client is an international digital security company offering secure B2B and B2C solutions and cybersecurity consulting services.

An Overloaded In-House Team Couldn't Keep Appium Testing Efficient

The Client was developing a secure messaging app for Android 5.0 and above and iOS 8.0 and above. Its in-house testers had added automated functional testing alongside manual testing to support fast releases, writing a set of simple positive Appium scripts to catch critical functional issues. But under a heavy workload, the team could not combine manual and automated testing or run Appium efficiently, so release quality declined, and the performance testing the Client also needed became impossible. To make Appium testing more efficient and reduce the load on its team, the Client turned to INNERLUXES — with one of the key constraints being a tight timeframe, as the Client planned to release a fully functional secure app for beta testing in just five months.

A Restructured Appium Process With Data-Driven and Keyword-Driven Scripts

The INNERLUXES automated testing engineers studied the available requirements and drafted a suitable Appium automation process for the project. After analyzing the Client's existing scripts, the team introduced several improvements:

  • A data-driven approach to run each test with different sets of values.
  • A keyword-driven approach to express the app's business logic as scripted user actions.
  • Jenkins continuous integration to schedule script runs without a tester's involvement, since Appium does not allow tests to start automatically on their own.

The team ran automated functional testing with Appium for the Android version and wrote separate Appium scripts for critical-path testing of the iOS version, which was still under development and could not reuse the Android scripts. All scripts were built to be updated and reused. INNERLUXES also saved time by using Appium scripts for performance evaluation, focusing on test execution duration, the number of user operations per execution, and the volume and type of data per operation. To ensure broad device coverage and catch device-specific issues, the team tested on both real devices — chosen according to global usage statistics — and emulators.

Efficient Functional, Critical-Path, and Performance Testing Delivered on Time

INNERLUXES improved the Client's automated functional testing process and completed the work within the set time limit. The Client received automated Appium scripts for functional testing of the Android version and critical-path testing of the iOS version, which were also used to identify possible performance issues — and which can be updated and reused going forward.

Technologies and Tools

Appium, Java, JetBrains IntelliJ IDEA, Android SDK, Xcode Instruments, Maven, Gradle, Jenkins.