qa-for-iot
Portfolio

Ensuring high quality of IoT-driven product for managing access to rented property

a1qa helped the client ensure flawless operation of web applications and a back-end by introducing automated QA workflows.
IT and software development
Test automation

Overview

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.

Services offered

Test automation

Project scope

a1qa assigned a team of QA experts to infuse automated workflows and support the flawless operation of the following software products:

  • A web application tailored toward companies that manage residential complexes in Japan. Tenants can opt for short- or long-term rental, lease meeting rooms, patios, parking access, and other locations with smart locks that open via special keys. In turn, managing organizations inform tenants of any updates via the creation of special posts.
  • A web application with the same features, but for companies that rent office spaces. This was designed to help ensure business continuity, as the pandemic had compelled some business owners to close workplaces.
  • A rewritten back-end. The client was seeking to create a universal core that allowed scalability to cater to any end-user need — renting an office, a living accommodation, a shop, etc. For that, the in-house software engineers updated the legacy code, which required thorough testing and comprised the main focus of a1qa’s attention.

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.

Pilot project

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.

Key QA activities

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:

  • Developed code of the automated tests
  • Designed test cases
  • Reported defects.

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:

  • Shaping a testing approach — considering the client’s needs and software specifics in order to successfully incorporate automation into current pipelines
  • Planning QA activities and coverage for platforms’ components
  • Gathering client’s expectations and discussing regular operational issues
  • Delivering results to the client within management and business perspectives
  • Organizing smooth and effective communication with the client despite a large time difference.

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.

Technologies & tools

  • Jest
  • GOT
  • React testing library
  • Coveralls
  • GitHub Actions

Results

  • Increased software quality and extended test coverage due to automating labor-intensive processes and eliminating risks tied to human error.

In numbers

~ 1
year of project duration
4
QA experts involved
300
endpoints tested
700
API tests developed
100
tests of UI components performed

Get in touch

Please fill in the required field.
Email address seems invalid.
Please fill in the required field.
We use cookies on our website to improve its functionality and to enhance your user experience. We also use cookies for analytics. If you continue to browse this website, we will assume you agree that we can place cookies on your device. For more details, please read our Privacy and Cookies Policy.