ElmoSoft Speeds Up Time-to-Market of Identity Verification Software with Custom Test Automation
The Client is a leader of advanced Identity Verification/KYC systems. The Identity Tools they design cover different levels of requirements, which include entry control and monitoring through custom hardware and software integrated with control systems and smart information systems.
Decrease Time-to-Market (TTM) of upcoming releases to avoid emerging security breaches. Client didn’t have any test automation testing before, all features were tested manually.
Identity Verification system is SDK, which can be integrated into any mobile/web application. So we have important notice to test across multiple devices and browsers.
Five key speed-related Objectives
The Client uses embedded software that is connected to different endpoints. Since it is a identity/security-centric software, the Client felt the need to reduce the TTM of new functionalities because the security breaches can occur and get exploited. A fault in a system can increase false positives, which results in impeding the user actions.
Also, the Client wanted the software to get tested automatically at the same moment on the target devices itself, rather than getting tested virtually.
Following are the five major goals the project had:
- Automate the existing tests to achieve greater test efficacy.
- Integrate automated tests with CI/CD tools for quick updates and fast delivery of new features.
- Decrease TTM by shortening the test cycles while maintaining the overall quality and coverage.
- Lower test success erosion by reason of high manual repetition.
- Develop an infrastructure that would enable the reuse of the test materials.
A Different Solution in Different Stages
For the initial stage, we set up a test environment to perform automated testing by the replication of real-world actions through the basic electronic board to run a Linux-based software. This approach enabled the testing tools to perform activities that had been previously unapproachable, i.e., starting tests and inserting data into the relevant components.
The following stage involved the starting of two activities that would work together:
- Begin the execution of the test plan using Java over the setup test environment
- Build the CI/CD systems and create the pipelines for the integration of the executed tests into them.
While the environments were set up and tests were being added, the reporting system was built as the last important step. The aim behind creating this system was to generate automatic reports for execution cycles, which would include the Pass/Fail criteria for all test batches and complete test cycle. This would then allow for a Go/No-Go decision at every stage and enable the developers to review and fix the bugs found during the automated test cycle.
Importance of One-Click Constant Visibility
Following that, ElmoSoft and the Client marked the test effort, as well as weekly priorities which are based on the development load and feature plan at bi-weekly progress reviews and weekly meetings. This caused the constant visibility of test automation scripts and delivery status. Moreover, we introduced a monitoring tool that generated the latest information obtainable with a single click. In our weekly progress reviews, we gave prominence to key achievements, problems, requirements/blockers, and main tasks lined up for the upcoming stage.
With the integration into the CI/CD systems, programmers can start testing right from the merge and build processes, while keeping the ability to run tests as a part of the manual trigger.
One More thing
To make automation deeper we developed new approach with the help of BrowserMobProxy library and Appium. The idea was to simulate recording of video in the app and send results to the backend.
Appium has several limitations, and we can’t just mock recoding of video without additional code base change. Our team add proxy to the tests and allowed to change body request/response on runtime, which device send to the backend part. It to get rid of manual checks and save time to market.
Automated functionalities have helped the Client to now carry out regression testing quicker and cut down on the cost of changes before the actual deployment of releases.
- The regression tests executed take half of the previous time, sans human intervention.
- Covered huge matrix of mobile devices with the help of Cloud
- The regression pipeline runs by itself from the programmer build command, lessening the cost of change.
- The job of manual testers is now only intended for new features and functionalities, with almost no regression effort.
- The Client could clearly notice the version status at a one-click
- Programmers can access the testing resources.
Tools & Languages
Selenium/Appium, Selenoid, AWS, Java
Identity Verification, KYC