The client has developed a low-code visual development environment that helps their end users to create both web and mobile apps and debug them easily. To simplify the process, the platform contains numerous templates.
The client requested a1qa’s assistance to accelerate time to market and work out a unified test automation approach to implement within multiple in-house teams.
Ensuring the high quality of these templates was placing a heavy burden on project members. Initially, each client’s team was trying to implement test automation using a different tech stack, but the attempts failed due to the lack of test automation expertise. Having understood that WebdriverIO could be the perfect match, the client wanted all teams to apply this framework.
WebdriverIO was chosen intentionally. It serves to test both mobile and web apps as it’s based on Appium, Selenium and supports TypeScript. However, the client wanted to write a single piece of code for testing web and mobile templates. Integration with Microsoft Azure DevOps and Sauce Labs also came to the fore to ensure the continuous execution of automated tests using different devices.
Thus, a1qa’s test automation engineers were to customize the test automation framework and create a standardized approach to automation for several teams involved in mobile and web development.
For that purpose, the engineers fulfilled 2 pilot projects. The first one served to generate a single solution for mobile apps, the second — to extend the framework to cover web verifications and perform standardization.
The team jump-started strategy generation. Between 2 possible approaches — either build some automated tests for 11 templates or cover high-priority functionality for 1 Android/iOS-based template — the latter option laid the foundation for further project activities.
The QA automation engineers proceeded with extending the framework code using TypeScript programming language.
This process comprised two essential steps. First, the specialist generated logic for fulfilling iOS tests for one most significant template and adapted them to the Android platform that allowed for performing the same test against different platforms via the common source code. Secondly, the QA engineers developed source code that helped to simultaneously automatically access the required UI elements in iOS/Android-enabled devices to, for instance, receive notifications.
In that way, the team enhanced framework capacity. For example, after its modification, it became possible to open a calendar template on diverse devices using a universal piece of code for calling a required functionality.
Thus, the engineers created 10 most high-priority tests for the mission-critical template functioning on two core platforms — Android and iOS. The number of covered templates was increasing gradually, and later it became clear that the universal code prepared by a1qa is a viable and effective solution.
Moreover, the team set up the integration with a Microsoft Azure DevOps CI system to help the client develop high-quality solutions faster. The engineers also created quality dashboards to analyze the current quality level of each template.
Once test automation results for mobile templates exceeded overall expectations, a1qa moved on to adapting test cases for 2 sought-after web templates in terms of the most in-demand browsers amid the client’s end users — Google Chrome, Mozilla Firefox, and Safari.
The main goal was to maximally reuse the code already written for mobile templates. The steps of test cases were the same but in web templates HTML elements are applied, while in Android-based templates — XML. Preconditions helped bridge that gap (determine a browser, find a website, etc.). In a month, the team covered both major and minor verifications.
a1qa demonstrated that it is possible to successfully execute the code of the same test case for any platform. This helped enlarge the scope of tests, and soon a1qa’s engineers were supporting 11 templates.
The next pilot project stage relates to the standardization process.
Code refactoring was another important step. The team eliminated defects and vulnerabilities in the source code, placed all universal (not project-specific) implementations of code to a framework package, and left other code parts in a test package.
The engineers went on with implementing the extensions for the WebdriverIO framework and educating the client’s teams.
For that, they documented the source code and provided use cases, created a centralized documentation page and hosted sprint-based presentations with the demonstration of the results. a1qa defined all code classes and lines, outlined framework structure, launching process, specific features of creating tests for iOS/Android/web-based templates, and more.
After completing those tasks, a1qa conducted a series of workshops for the client’s teams showcasing a step-by-step framework utilization.
To support them on an ongoing basis, the a1qa’s engineer was fixing defects submitted to a Git repository, explaining the process to the teams, and created a Wiki page providing answers to the most relevant questions, documentation updates, and more.
Thus, a1qa customized the WebdriverIO framework to cover specific client’s requirements, educated their squads, and introduced a standardized test automation approach across the entire enterprise.
The cooperation is still ongoing, and now, 8 client’s teams are reaping benefits from the advanced solution and getting strong test automation expertise covering project-related needs.