Client Requirements
The Client is a leading US-based healthcare company and wanted to improve patient care by developing a mobile application for iOS devices that would allow patients to access their medical records, schedule appointments, Remote patient monitoring(RPM), Telemedicine, and communicate with healthcare providers. However, manual testing of the application was time-consuming. The Client decided to use Appium for iOS mobile app automation to ensure the app was reliable and secure.
Challenge
While testing the iOS application, the Client encountered multiple challenges since the application handled sensitive patient data. Due to slowness and incompetency, clients wanted to automate, saving time and running the application without interruptions. Hence, they opted to automate their testing process and use Appium for iOS mobile app automation. Clients also complied with HIPAA regulations to protect their patient health information's privacy, security, and integrity.
Thinkitive Solution
On recognizing the challenges faced on the iOS devices, the Automation tester used the Appium tool and all other related software to ensure the environment worked well. The Client also shared a set of test cases covering the healthcare application's main functionality, which helped Automation testers create the automation script.
Appium has some of its challenges, which our team has also encountered. The significant challenges were:
Setting up the Appium with real devices.
Another challenge was finding the locators of the elements absent on the screen.
The development team added relevant hooks and identifiers to the app code by combining the app with Appium. Since patients with disabilities might face difficulties accessing the app, the Client added labels and attributes, ensuring a straightforward approach and environment.
Adding to the easy access, we used Appium to automate app features, such as logging in, scheduling appointments, viewing medical records, and communicating with health providers. To check the tool's capabilities, the Automation tester used real scenarios such as low battery, network connectivity issues, and device orientation changes.
To track the progress, the Automation tester ran the test on iOS devices simultaneously, ensuring a smooth run on all devices and platforms. Appium's reporting feature was used to track the progress, identify the issues, and address and streamline the same.
The architecture of Appium:
Appium is a web server and is written in node js. REST APIs are exposed, and clients can communicate with the server using these APIs.
The architecture of Appium can be divided into four major components:
Web Drivers Scripts: Libraries of Selenium web drivers can be used to write the test scripts. For the same application and feature, these scripts can be used for both Android and iOS applications.
Appium Server: It works on client-server architecture. Appium server is written on node.js; clients can use the REST APIs to communicate with that.
UI Automator and Instruments: UI Automator is a Google framework used for Android applications and iOS; we used Instrument, a tool Apple provided.
Real Devices or Simulators and Emulators: Test scripts can be run on real devices or simulators and emulators. Simulators are used for iOS applications, and emulators are used for Android applications. Appium works faster with real devices.
Results
Since the Appium tool is used to identify and fix bugs, the Client improved the healthcare application's quality, reducing costs and resolving the issues in the early development cycle. Once the app was integrated with Appium, the results were faster, and the Client could run more frequently, which assisted them in delivering the report to the market even faster.
The Client also complied with the app's HIPAA regulations, which made it more reliable and secure since it contains the patient's health information. Automation testers ran the tests on multiple devices to check the app since they could scale their testing efforts.
Solution Highlights
-
The team set the prerequisites for Automation, including Homebrew, Carthage, Node, Java, Maven, Appium, and TestNG.
-
The team set the environment variables.
-
QA used the Appium Desktop Inspector to inspect the UI elements for iOS.
-
The hybrid framework is used, which has keyword-driven and data-driven framework properties.
Value Delivered
-
The application was tested on a wide range of iOS mobile devices with different iOS versions, ensuring that the app works seamlessly across all platforms.
-
The automation script was configurable through a configuration file, allowing the Client to modify test parameters without interacting with the codebase.
-
Mobile Automation helped significantly in reducing regression testing time, allowing the team to focus more on other critical tasks.
Technologies and tools used:
-
OSX, iOS device, Browserstack for cross-browser testing, Appium, Xcode, Java, TestNG, .iPA(Real device and browser stack), and.APP file (Simulator).
Technical architecture Diagram: