The client is a Japanese-based tech start-up that developed an IoT-driven digital platform that generates access keys for physical dwellings. Users apply them to enter various rental properties (living accommodations, working spaces, etc.).
To provide bug-free software operation, expand test coverage, and decrease testing time, the client needed to introduce test automation.
a1qa assigned a team of QA experts to infuse automated workflows and support the flawless operation of the following software products:
There was no automated testing in place. So, the a1qa specialists set up QA processes from scratch and developed the practice further to meet the client’s prioritized objectives — meeting quality gates and source code quality handling — and help them deliver sound products.
After integrating into Scrum-based operations, a1qa’s assigned QA engineers started with a pilot project and then helped ensure software quality within the core activities.
During this three-month stage, the specialists developed a test automation framework, wrote JavaScript/TypeScript-based automated tests for checking back-end operations, integrated them into the existing development pipeline, ran them, managed defects, and more.
As the client was satisfied with the results, the team moved on with extending the testing coverage in terms of back-end verifications and started writing tests to verify UI components.
When ensuring software quality, the a1qa team followed the testing pyramid principle. The engineers started with the lowest level and automated as many fast and small unit tests as possible to obtain immediate feedback on whether the isolated code units worked as intended. Then, they covered automation of integration tests to ensure seamless interaction of diverse code parts. Only after that, the QA team planned to cover time-consuming UI tests. Test design was aligned between the testing pyramid levels.
First, a1qa wrote specific automated unit tests. Typically, during unit testing, software engineers verify the code of each function or method within a separate module to make sure any code changes haven’t affected correct software functioning.
However, a1qa’s automated unit tests scrutinized each UI component in isolation to confirm it works as intended, detects glitches more accurately, and provides a flawless digital experience to end users. For instance, they checked that the calendar correctly displays chosen months, ensured diverse forms alter content accordingly depending on the selected drop-downs, and many more. During testing, the QA engineers covered the entire prioritized scope, which helped identify errors at early development stages.
Another important step was to put automated integration testing in place to ensure seamless interaction between diverse software components. The specialists simulated end-user behavior by launching a chain of API calls within each part of the business logic. For instance, it was necessary to create a room and check in for a person. So, the QA engineers needed to confirm that the API returns the response that a particular person lives in the chosen room.
Also, the specialists continued to automate back-end testing by examining the working capacity of each endpoint (e.g., creating a user). They sent requests and checked that the response was valid along with generating the right type of user.
To enable high quality of the automated code, the engineers regularly performed internal cross-review as well as sent the code to a1qa’s test automation solution architect. So, when the client’s developers were receiving it, almost no edits were necessary.
Another vital aspect concerned project deliverables. To provide high transparency and make sure the client and their team were regularly informed about software quality at each project stage, a1qa submitted:
As the a1qa team was running tests once a day at 7 am (local time), the client received analyzed test reports at around 3 pm (Tokyo time) and could fix critical issues by the end of their working day.
Apart from providing varied testing support, a1qa assigned a part-time QA manager tasked with supervising test automation implementation and responsible for the following scope:
With a1qa, the client managed to increase software quality due to adopting test automation best practices. In doing so, the in-house software engineers were able to certify that no defects would occur after each code commitment.