Enhancing Mobile Test Automation with WebdriverIO & Appium for a FinTech Investment App
Client Overview: FinTech Leader in Southeast Asia
The Client is a leading FinTech company based in Indonesia, offering a wide range of financial services including stock trading, mutual funds, bonds, cryptocurrencies, and more. With a vision to provide the best mobile and online trading experience in Southeast Asia, the client aims to empower retail investors, particularly the millennial generation, with access to secure and affordable investment options.
Their mission is to modernize the Indonesian capital market and make it one of the most advanced in Southeast Asia. They actively collaborate with stakeholders through educational initiatives such as university seminars and online learning to promote financial literacy.
Business Challenge
As the client scaled its business, they faced challenges in ensuring the reliability of their mobile application across Android and iOS platforms. With only 20% of their test scenarios automated, they were experiencing:
- Inconsistent performance across different devices and environments (staging and production).
- Frequent app crashes due to low test coverage.
- Inefficiencies in managing environment-specific configurations.
- Reporting issues where test reports were being overwritten during each new build.
To address these issues, The client needed a robust test automation framework that could:
- Increase automation coverage to 100%.
- Ensure daily test execution on multiple environments (staging and production) and platforms (Android and iOS).
- Improve reporting processes and real-time test run notifications.
Key Challenges
- Outdated Automation Framework: Their current framework was running on outdated versions and needed an upgrade to the latest technologies.
- Limited Test Automation Coverage: With only 20% test coverage, frequent bugs were making their way into production, impacting user experience.
- Allure Report Overwriting: In Jenkins, the allure reports were being overwritten with each build, preventing comprehensive tracking of test results.
- Environment-Specific Challenges: Each environment (staging, production) used different package IDs, complicating the automation process.
- Login Failures: Initial tests were failing at the login screen, and the root cause of the issue was unclear.
- Communication Gap: The client needed real-time test result notifications via Slack to streamline the development process.
Solution Delivered by JigNect
To solve these challenges, JigNect’s automation team proposed a holistic approach, focusing on upgrading the existing framework, expanding automation coverage, and implementing new technologies.
1️⃣ Framework Selection and Upgrade
- We selected a fully open-source automation stack using WebdriverIO, Appium, Cucumber, and JavaScript to ensure compatibility across platforms and devices.
- We updated all packages to the latest versions, improving app stability and ensuring compatibility with both Android and iOS devices.
2️⃣ Achieving 100% Automation Coverage
- Our team expanded the automation coverage from 20% to 100% by developing new test scripts for critical scenarios that were initially missing.
- We utilized the Page Object Model and Cucumber’s Feature File and Step Definitions approach to ensure modularity and reusability of test scripts.
- We added support for parallel test execution and ensured that tests could run seamlessly across staging and production environments.
3️⃣ Improved Test Reporting in Jenkins
- To resolve the issue of overwritten test reports, we configured Jenkins to create a new folder for each build, preventing overwriting and ensuring fresh results for each test run.
- The integration of Allure reporting provided clear, detailed reports for each test, with visual representations of pass/fail statistics.
4️⃣ Managing Environment-Specific Configurations
- To manage different package IDs for staging and production, we introduced dynamic locators and created separate CSV files for storing user credentials based on the environment.
- This allowed the automation scripts to adapt seamlessly to both staging and production environments without manual intervention.
5️⃣ Fixing Login Failures
- After investigating the login test failures, we identified the issue with the @wdio/shared-store-service package, which was causing tests to fail. We removed the problematic method and implemented a more reliable way to fetch user data from the CSV file.
- This eliminated the login failure issue, allowing tests to run successfully.
6️⃣ Slack Notifications Integration
- We integrated Slack notifications into the Jenkins pipeline using the “Moroo Slack Reporter” package, enabling the team to receive real-time test result updates.
- This provided the development team with immediate feedback on test results, speeding up the debugging process and improving overall efficiency.
Tools & Technologies Used
- Automation Tools & Framework: WebdriverIO, Appium, Cucumber, JavaScript.
- Continuous Integration: Jenkins.
- Reporting: Allure Reports with Jenkins integration.
- Communication: Slack via Moroo Slack Reporter.
- Code Repository: GitHub for version control.
- Test Execution: Parallel test execution across Android and iOS platforms.
- Environment Configuration: CSV-based dynamic configuration management for different environments.
Results and Impact
The implementation of JigNect’s test automation framework delivered significant improvements:
- Increased Test Automation Coverage: Automation coverage was expanded from 20% to 100%, covering all critical test scenarios and ensuring comprehensive testing of the mobile app.
- Streamlined Test Execution: Tests are now run daily on both Android and iOS platforms, ensuring a consistent, bug-free experience for users across multiple platforms.
- Improved Reporting: Non-overwriting Allure reports provided clear insights into each test run, making it easier for the team to track progress and detect issues.
- Seamless Communication: Real-time Slack notifications keep the team informed about test results, enabling faster response times for any issues detected.
- Reduced Bug Incidents: By increasing test coverage and automating daily runs, the client’s team was able to reduce bugs in production, leading to a better user experience and higher customer satisfaction.
Conclusion
Through its partnership with JigNect, the client successfully modernized its test automation framework and increased automation coverage to 100%. The streamlined testing process has significantly improved the quality and reliability of their mobile app, enabling the company to maintain its competitive edge in the fast-growing Southeast Asian FinTech market.
The automation framework has not only solved the immediate challenges but has also set the foundation for future scalability as the company continues to expand its services.
Witness how our meticulous approach and cutting-edge solutions elevated quality and performance to new heights. Begin your journey into the world of software testing excellence. To know more refer to Tools & Technologies & QA Services