Case Study: Real Estate Platform Automated And Manual Quality Assurance

Aa
Aa
Aa

It’s a well-known fact that French rent laws are rather… complicated.

There are many specific regulations that apply to different aspects of renting in France. For example, there are laws that govern the amount of rent that can be charged, the security deposit that can be required, and the notice period that must be given when terminating a lease.

As a result of the complexity of French rent law, it is important for both tenants and landlords to seek legal advice if they have any questions or concerns. A lawyer can help you understand your rights and responsibilities under the law and ensure that you are complying with all the necessary regulations.

We believe that tech is made to make life simpler, so we’ve become partners with Garantme, the best French real estate guarantor platform focusing on making renting understandable and seamless. 

.

Brief summary

  • Garantme is one of the most popular companies that simplify access to housing in France. The company was founded in 2017 and is headquartered in Paris. Within 5 years they managed to secure +70k rentals in partnership with +4000 real estate professionals at the beginning of our cooperation.
  • Like many startups, the QA team at Garantme was underdeveloped and not clearly defined. Our team managed to set up and scale the proper QA processes from scratch, enabling Garantme’s product team to focus on their main task: Bringing value to the customer.
  • Now, Garantme is our trusted partner, and we’re still working hand in hand to ensure and maintain an excellent product quality. 

.

Feedback

Our QA team from Pecode have helped build the pillars of manual and automated testing at Garantme. They helped boost the success of our tech team and were able to create great synergies allowing us to go faster while maintaining the quality of our products. Our collaboration has been flawless over the years and we always felt like there were a core part of our team.

Cyril El Hage, CTO

About the project

Garantme is a private company that enable Real Estate Professionals to: 

  1. Offer the best rental experience to their clients through digitization
  2. Secure their rents through Rent Guarantees and insurance products

The company was founded in 2017 and is headquartered in Paris and have faced exceptional growth since. Within 5 years they managed to secure +70k rentals in partnership with +4000 Real Estate Professionals, they have reached 10 million euros in revenues. Their growth opened the diversification of their offering, they moved from one to three revenue lines as well as the diversification of their tech after the acquisition of 2 other startups.

To find out more about Garantme’s vision, we advise you to read the following article on their blog: Building the Product Vision @Garantme.

Achieving such growth and innovation was possible for Garantme because they managed to bring simplicity to a very complex market. Insurance and real estate processes are long, fragile and complex and they require the intervention of many stakeholders : Tenants, Landlords, Real Estate Professionals and insurers.

In the next paragraph, you will discover how this business complexity was tackled by our QA team.

.

What was the challenge

At the beginning of our cooperation, we found out that the QA processes weren’t established properly and taken over by Product Managers. 

Our main goal was clear: Setup strong as scalable QA processes that will free Product Managers from extensive manual QA, thus allowing them to focus on bringing value to the customer. 

To achieve Garantme’s ambition, we needed to have a holistic approach and tackle both MQA and AQA. Below the issues at hand:

  • Insufficient Testing Documentation: Lack of testing documentation, including checklists and test cases.
  • Regression Testing Gap: Failure to conduct regression testing on the release branch.
  • Missing Confirmation Testing: Absence of confirmation testing for features included in release candidates, resulting in a multitude of defects being introduced into the production environment.
  • Uncertainty in Release Dates: Unpredictable release dates, occasionally leading to two releases per week.
  • Backlogged QA Tickets: Tickets lingering for several months within the QA column, particularly medium and low-priority tickets.
  • Delayed Testing Initiation: Testing commencing at a later stage, once the feature had already been developed. This often resulted in last-minute and unplanned changes, necessitating more time for feature development due to bugs frequently being tied to unclear and conflicting requirements.
  • Limited Automated Test Coverage: Only a fraction of the functionality was encompassed by automated tests, which proved ineffective in defect identification.
  • Unreliable Existing Automation Tests: The existing automation tests exhibited unreliability, demanding a comprehensive overhaul of the underlying logic.
  • Automation Workflow Insufficiencies: The Continuous Integration platform’s automation workflow lacked the capability to execute specific tests.
  • Lack of Automated Test-Documentation Link: No integration between automated tests and testing documentation established.
  • Automated Test Gap for New Features: Newly introduced features were not subjected to automated tests.

.

Solution we provided

To solve everything we got to deal with, we established a comprehensive approach that included implementation of both Manual and Automated Quality Assurance testing. By sticking to the way of combined efforts of both teams, we were able to complete the optimization of the whole system in a joint workflow. That prevented us from delays, miscommunication, and prioritization issues. 

Regarding the Manual Quality Assurance part, here is a list of what was done:

  • Transitioned to Jira, enhancing ticket management and allowing automation. Each team member is now assigned specific tasks, facilitating easy tracking of progress and avoiding duplicate work.
  • Our QA team successfully achieved a testing pace where tasks are examined within one to three days upon their inclusion in the QA column, contingent on task complexity. We’ve even achieved a state of ‘0’ tasks in the QA column.
  • Staying current and even ahead of the software development process has afforded us more time for documentation creation. Most functionalities are now encompassed by Regression and Smoke checklists, as well as Test cases developed in Xray.
  • An agreement was reached to implement a bi-weekly release schedule, as an initial step, to have a more stable pace across the board and focus on different aspects of delivery flow.
  • We initiate testing at an early stage by scrutinizing documentation, technical concepts, user stories, Figma mockups, and whimsical diagrams as soon as they’re developed. This preemptively addresses potential issues within the ongoing feature development.
  • Test documentation is generated before the feature is fully prepared for testing during the development phase. Consequently, when a feature is ready, we can utilize the pre-existing test cases to conduct thorough testing. This approach reduces testing time and verifies the feature’s alignment with expectations.
  • Automated tests are composed for each feature during its development phase.
  • We perform regression tests on every release candidate, significantly curtailing the leakage of defects into the production environment.
  • Recently, we’ve transitioned to continuous development. Newly developed features are directly deployed to the production environment on a feature-by-feature basis after meticulous testing on a staging environment. This achievement has been possible due to early testing, exhaustive examination of each feature on feature branches, and extensive coverage of functionalities via automated tests.

AQA:

  • Integrated APIs to optimize test performance and enhance the efficiency of automated testing.
  • Updated the CI workflow to remove redundant logic and configured it for execution across multiple environments, browsers, and test suites.
  • Collaborated closely with DevOps and Infrastructure team to optimize workflows and resource management.
  • Ensured test independence to minimize flakiness and improve the reliability of automated tests.
  • Collaborated with developers and the manual QA team to assess automation readiness and expand test coverage.
  • Configured Cypress Cloud for storing test results and enabling notifications through Slack.
  • Implemented Xray to establish connections between automation tests and manual test cases.
  • Transitioned from JavaScript to TypeScript, introducing code style rules to elevate code quality and maintainability.
  • Expanded test coverage by integrating REST API auto-tests for new services.
  • Introduced interfaces and types for GraphQL API, simplifying code navigation and issue identification within the codebase.
  • Incorporated GraphQL intercepts to allow tests to wait for specific events, ensuring thorough test coverage and accuracy.
  • Improved test data to be more generic and realistic, leading to enhanced validity and effectiveness of test cases.
  • Adopted an approach of initiating automation work during the development phase, enabling early detection of potential issues and timely feedback to developers.

.

Results

During our fruitful cooperation, we achieved significant results:

  • Successfully managed to test new features within tight deadlines, collaborating closely with developers to retest their fixes. This collaboration enabled us to meet the agreed-upon customer deadlines for feature releases.
  • Successfully executed regression testing of release candidates within short timeframes.
  • Generated over 3400 bug reports.
  • Conducted testing on over 3100 tickets.
  • Tested more than 50 epics and new significant features.
  • Created more than 1170 test cases.
  • Attained a clean and maintainable codebase, enhancing the overall sustainability and maintainability of the automation suite.
  • Enhanced test performance through API integration and parallelization, resulting in quicker feedback and more efficient testing.
  • Expanded the total number of automated tests from 50 to 500, significantly broadening test coverage.
  • Ensured comprehensive end-to-end test coverage for new features before deployment, thereby minimizing the risk of critical issues arising in production.
  • Produced process documentation outlining the Automation QA workflow and the Failed Test Life Cycle. This effort promoted standardized practices and facilitated knowledge sharing within the team.
  • Achieved regression test coverage for 25% of the application, mitigating the likelihood of regressions impacting critical functionalities.
  • 70% of critical functionality is covered with automation tests.

Garantme already became our trusted partner, so we’re always focused on satisfying their customers with the best possible experience and flawless platform functionality

In Pecode, we’re always ready to bring great ideas to life and ensure their proper work. For those who are ready to start this journey with us, we’re always available via hello@pecodesoftware.com