The client is a UK-based company that serves millions of agents and property seekers around the country to buy and sell real estate.
The client wanted to release a multi-functional web portal integrated with third-party services. It is separated into 3 parts ― for agencies, for renters/buyers, and the admin panel. The client was also simultaneously developing a native mobile app for iOS and Android to ease the search for housing for end users.
To accelerate time to market and roll out high-performance software that appeals to millions of people, the client was looking for professional QA support.
Throughout the project, a1qa:
To achieve the first aim, a1qa assigned a QA manager who analyzed existing workflows, compiled a QA strategy to perform end-to-end UAT, and made sure the product was ready for release.
Additionally, a1qa dedicated the team of QA experta1qao fulfilled:
The team delved into the software specifics and created test cases, acceptance criteria, requirements, and other necessary test documentation within tight deadlines to check software business logic and make sure it operates as designed.
To confirm that the platform had the best appearance per requirements, a1qa verified the location and unification of layout elements (menus, buttons, icons, etc.), the stylistic integrity of data display in the system, readability of fonts, the clarity of images, and other aspects.
a1qa’s team checked usability heuristics to provide an intuitive, user-friendly design was applied and end users had no bugs when working with the software (e.g., the layout of elements, the number of user steps per operation, primary action buttons are in bold).
Cross-browser (Google Chrome, Mozilla Firefox, Safari) and cross-platform (Windows, macOS) testing, enabling identical behavior of the platform under different conditions, meeting responsive design criteria, and identifying critical defects that could affect system functioning.
The platform supported integration with third-party services (e.g., HubSpot). After writing end-to-end scenarios, the a1qa QA engineers used Postman to check that requests were sent correctly to and from the platform, clients’ data in requests were full and correct, and more.
Regression testing helped confirm the faultless operation of a previously introduced patches.
Having contributed to the release of the platform within a tight deadline successfully, a1qa’s team switched to the second goal ― introducing a shift-left testing approach reinforced by behavior-driven development. To do so, a1qa applied the following best practices:
This document included sections with verifications to test each feature. More importantly, it contained extra data for each user story such as test environments, cybersecurity risks, further coverage by test automation, the connection of features with other modules, and possible dependencies.
QA engineers drew this document up before developing the functionality. When developers received the task, they followed a detailed blueprint for each feature and wrote code with the least number of bugs.
a1qa’s QA manager set up automated metrics in Power BI that took data on software issues from Microsoft Azure DevOps and established a target result on their allowed number.
The specialist also created appropriate metrics to track defects detected during user story testing and bugs found in the production environment or during regression testing.
So, managers evaluated the quality of developing new functionality and reached the set goal ― only 1 defect in 2 user stories. Thus, the number of defects/bugs and regression risks decreased, as well as the time required for opening and fixing defects/bugs.
QA engineers wrote test documentation (requirements, acceptance criteria, etc.) using Gherkin syntax to allow for easy test automation in the future. a1qa recommended writing atomic test cases that contained only 1 requirement in order to test them separately or in diverse combinations (forming suits).
QA engineers could automate selective user stories instead of working with multi-step end-to-end cases and save time and effort, as test cases were already suitable for automation.
Business analysts, developers, and QA engineers regularly discussed software requirements for multiple features before any development starts. Software engineers and testers analyzed potential risks, foresaw integration problems between software modules, and determined aspects to consider, while business analysts used this data to form requirements.
This approach aimed to change the software developers focus so as to prevent bugs rather than fix them and provide everyone with an understanding of each functionality and probable risks.
a1qa performed 6 customized internal audits to analyze the approach applied within the 6 development teams, identify process issues, and find solutions.
Initially, the purpose of the audit was to help design a universal approach to ensuring software quality for all the teams. However, a1qa considered the client’s desire to preserve a unique working style in each team as it makes them feel comfortable and motivated to reach objectives.
Instead of making everyone follow a single scheme, a1qa created basic QA guidelines (contained retrospectives, demos, Three amigos before planning sessions, Test Approach, etc.) and allowed each team to preserve autonomy in their flow and support shift-left testing.
For instance, the frequency of retrospectives, sprint pre-planning sessions, or the number of steps on Agile boards varied from team to team.
a1qa and the client’s PM crafted presentations for the whole company and 6 development teams. These presentations showed existing process challenges, solutions, time and money saved by applying them ― all to motivate software developers to deliver good-to-go code from the start.
In parallel with these activities, a1qa provided post-release QA support that included:
a1qa’s engineers defined scenario coverage, required performance testing criteria, and fulfilled server-side testing of APIs that included stress, load, volume, and configuration testing. They also conducted client-side testing to measure the time required by the user’s browser to upload HTML pages. It helped improve performance. Even within 1 API (book evaluation), the number of total handled requests increased from 400 to 46,000, the number of users ― from 1 to 45.
a1qa demonstrated to the client the value of using real devices and the increased testing accuracy and help with spotting more flaws they bring.
Using such an approach, the QA engineers checked the connectivity, functionality, menu, and other high-priority aspects of the software.
a1qa assisted the client in automating tests to check Android and iOS versions and work out a single solution that allows for executing the code of the same test case for any platform.
The native application was written using React Native and React Navigation frameworks and possessed multiple complex elements.
The structure of pages had layers. It was impossible to find elements on the page because of the XCUITest driver’s limitation. Tests couldn’t run on iOS using standard web/mobile driver solutions.
First, the QA expert tried to implement the Appium framework, which worked well on Android but bad on iOS. Then, the specialist tried to implement tests using Swift and XCUITest driver directly, and that’s when defining the issue with layers’ limit occurred.
Therefore, QA engineer chose a Detox framework that works as a “Grey box” by adding additional code lines into applications to interact with elements on a process level.
Detox worked well for the iOS version. However, it only is suitable for simulators and doesn’t support real devices. For the Android version, it was necessary to rewrite the application to use with Detox. It required extra scripts that inserted necessary lines of code to build the .apk file suitable for Detox.
The engineer implemented 2 test variants. The first option used a Cucumber framework which has good readability for non-developers but requires more time from the developers. The second ― using Jest, which is less readable but easier and faster to use for developers.
The QA team performed integration testing to make sure the platform received data from third-party systems such as HubSpot (for instance, requests for estimating accommodation costs) and the interaction of modules was flawless.
The client cooperated with numerous real estate agencies that had extensive databases. The QA engineers performed data migration testing to help transfer this information from real estate agencies (requests, houses, clients, etc.) into a proprietary database and ensure data correctness and integrity.
The client appreciated a1qa’s support and contribution to meeting business objectives.