Context and Challenge
Guesty is an all-in-one software platform used by property managers to handle rentals across websites like Airbnb, Booking.com, and Vrbo. The company regularly releases new features and integrations to support its users. Before working with Forbytes, Guesty had no dedicated QA process. Testing was done manually by developers, leading to:
- Increased manual workload. Testing was manual, as there were no QA engineers or structured testing processes in place.
- Slower development cycles. Developers had to write, test, and fix their own code. This slowed down releases and often led to missed deadlines.
- Bugs in production. Many issues were not caught early. They made it to the live system, where users experienced bugs and developers had to fix them after release.
- No structured testing process. There were no clear procedures for testing things like performance, regression, or edge cases. Every developer tested in their own way, which led to the missed bugs.
- Growing technical debt. Frequent bugs and rushed fixes made the code harder to maintain and scale.
- Potential user experience problems. Users sometimes face issues while interacting with the platform, which could potentially hurt trust and user satisfaction.
- Scaling difficulties. Without QA automation, it was risky and slow to release new features, especially across different platforms like web and mobile.
These challenges showed the need for a full QA automation setup. That’s when Guesty reached out to Forbytes with a QA automation request. Our goal is to create a reliable and fast QA process to support Guesty’s growth.
Client’s Objectives
Guesty needed a strong QA automation setup to keep their fast-growing platform stable, efficient, and user-friendly. QA automation for Guesty is supposed to:
- Ensure stability across features and integrations. With QA automation in place, developers will make changes and updates more confidently. They will know the tests will catch issues, so the risk of breaking something will be much lower.
- Speed up release cycles. Manual testing takes too long. Automated testing will help speed up the development and release of new features without lowering product quality.
- Increase test coverage. Guesty’s platform includes many features — reservations, messaging, payments, calendar syncing, and more. The automation of QA processes will help test various modules of the platform more often — something that is hard to do manually.
- Catch bugs early in development. Our client aims to integrate QA automation into their CI/CD pipeline. This will allow us to find and fix bugs before they reach users.
- Support cross-platform testing. Guesty works on both web and mobile. Automated tests need to check the platform across different devices, operating systems, and browsers to ensure everything works seamlessly everywhere.
- Free up manual testers. By automating the repetitive and basic tests, the QA team will be able to focus on more advanced testing, like exploring unusual cases, checking usability, and giving deeper feedback.
- Monitor performance over time. Our client wants the automated tests to not only check functionality but also monitor how fast and stable the system is as the platform grows.
How We Approached the Project
To build a strong QA automation process for Guesty, we follow a clear and structured approach. Our steps include technical setup, automation, training, and ongoing support. Here’s how we do it:
- Assigned an experienced QA automation engineer. We chose a QA engineer who had already helped automate testing environments for other businesses, including one operating in the same region as Guesty. His previous experience allowed him to start fast and bring immediate value.
- Built a fast and flexible testing environment. Previously, developers had to manually set up a test environment for each scenario, which could take hours. Our QA engineer is now creating an automated system that allows them to launch a ready-to-test environment in just 5 minutes. This significantly increases the number of scenarios tested each day.
- Used a proven strategy tailored to Guesty’s needs. We use the best practices executed by our QA engineers and customize them for Guesty’s platform. Based on that system, we build a unique test setup designed specifically for their workflows and challenges.
- Analyzed technical debt and pain points. Together with Guesty’s managers and our development team, we regularly review the technical gaps and challenges in their product. We prioritize the most urgent and impactful tasks to focus on first.
- Planned and wrote test scenarios. Our QA engineer defined clear testing scenarios and wrote scripts to cover critical product areas such as reservations, payments, messaging, and calendar syncing. This ensures wide and meaningful test coverage.
- Implemented CI quality gates with AI support. We added automated quality gates to the CI pipeline. Forbytes’ QA engineer also created AI-powered prompts to create smart, first-level testing scripts. This allows developers to detect issues early in the development cycle.
- Automated daily test runs. The system is configured to run automated tests daily. This ensures that every new change is tested regularly, keeping the code clean and stable.
- Trained developers on using automated tests. Our QA engineer trained the development team to use the automated test environment. Now, they can test features faster, fix bugs earlier, and focus on writing better code.
- Handled high-level testing and complex issues. While the automated system covers most scenarios, our QA engineer focuses on advanced tests and resolving more complex bugs that require manual investigation.
This approach helps Guesty move from a manual, time-consuming QA setup to an efficient, automated system that supports fast releases and high product quality.
QA Process Overview
Our QA process is highly automated, leveraging Playwright for testing and Terraform for provisioning the test environment. This approach ensures efficient and reliable testing, minimizing manual work and speeding up the feedback loop.
Here is what the temporary testing environment looks like now:
The automated QA testing process involves the following steps:
1. Test environment setup with Terraform
To ensure a consistent and scalable testing environment, we use Terraform to provision and manage the test environment.
- Environment provisioning with Terraform. Terraform is used to automate the setup of virtual machines (VMs) in AWS, ensuring that the environment is consistently configured according to the project’s specific needs. The tool allows us to define the infrastructure as code so we can easily replicate or adjust the environment based on changing requirements.
- Application deployment. After provisioning the environment, we deploy the application to the test environment. We apply additional configurations to ensure the app works as expected in the isolated test setup.
- Access to the environment. Once the environment is set up, developers and QA engineers can access it using login credentials. This ensures secure access control and prevents unauthorized access to the test environment.
2. Test execution with Playwright
Playwright is used for automating the testing process, enabling the execution of cross-browser and cross-platform tests. The following steps describe the process:
- Running automated tests. QA engineers run automated tests that simulate user interactions and check for defects in the application. Playwright executes the tests on various browsers and platforms to ensure broad compatibility and that the application functions correctly across environments.
- Issue detection and resolution. If tests pass, the feature moves forward in the development lifecycle. If defects or issues are found, the team logs them for resolution, ensuring the feature is fixed before continuing.
3. Test cleanup
Once testing is complete, the environment is cleaned up automatically, ensuring no residual data is left behind:
- Test data and resources removal. All test data and resources used during the test are deleted, maintaining a clean environment for future tests. This prevents any potential conflicts or data contamination in subsequent testing cycles.
This automated process not only accelerates testing but also enhances the overall quality of the software by reducing manual errors and providing a more streamlined approach to QA.
Detailed Execution Timeline
The QA automation project for Guesty involved the following technical stages:
- Environment setup
- Scenario planning & writing
- CI/CD quality gate integration
- Playwright automation setup
- AI prompt testing setup
- Developer training
- Ongoing testing and maintenance
Results and Impact
Qualitative results:
The implementation of QA automation at Guesty brought many improvements to the development and testing process. Our approach helps the team release new features faster, with fewer bugs and less effort. Here’s how:
- Expanded test coverage and faster execution. Our team added a large number of automated test cases, covering more parts of the platform than ever before. Now, full test runs are completed much quicker.
- Higher product quality and fewer issues. Before automation, bugs often made it to production. After we introduced automated testing, the number of issues dropped significantly. Most remaining issues are minor and don’t affect the end user.
- Less manual work thanks to automation. We built systems that handle routine testing tasks automatically. Temporary test environments and quality gates in the CI/CD pipeline do most of the work that developers used to do by hand.
- Saved time and cut costs. Since developers no longer spend hours testing and fixing bugs manually, they can focus on writing new features. This helps reduce development time and lower project costs.
- More efficient testing system. We regularly optimize the testing system so that it runs fast and provides feedback quickly. The short test cycle allows developers to make quick updates and test changes more often, which helps speed up the release process.
- Smarter testing with AI tools. Our QA engineers introduced AI-based tools to support the testing process. Developers now use AI prompts to automatically generate test scripts for their features. This saves a lot of time and helps both developers and QA engineers work more efficiently.
These improvements create a smooth, reliable, and high-speed QA process. With automation in place, Guesty now delivers software faster — saving time, cutting costs, and making both developers and users happier.
Technology Stack
Cloud Platform: AWS
Monitoring/Logs: Grafana, AWS CloudWatch
Virtualization: Docker
Cloud orchestration: Terraform, AWS EKS, ECS, EC2, Lambdas
Other tools: Ansible
Continuous integration/Delivery: GitHub Actions, Flux CD
PL: TypeScript
Test tools: k6, Playwright
Frontend: Vue3, SCSS/LESS
Backend: Nest.js
Database: Postgres, RDS(Postgres), RDS Aurora
Alerting: AWS Lambdas + Slack
Key Takeaways and Lessons Learned
Success factors:
- Strong collaboration between QA and development teams
- QA engineer with proven automation experience
- Custom testing tools that matched Guesty’s complex needs
- Fast deployment and rapid improvements
- Integration of AI for developer-friendly test generation
- Smart strategy for using Playwright for cross-platform testing
Challenges overcome:
- Handling complex third-party integrations. Guesty integrates with many external services like Airbnb, Booking.com, Vrbo, Stripe, and more. These APIs often change, and even small updates can break workflows. Our QA engineers write flexible test scripts that adapt quickly to API changes and detect when something breaks before it reaches production.
- Testing a highly dynamic UI and complex business logic. Guesty’s platform includes advanced features that are highly dynamic and change often. We created a robust automation framework that supports these complex flows and ensures each part of the user journey is tested thoroughly and consistently.
- Supporting a multi-tenant architecture. The platform is used by many property managers, each with different settings, properties, and workflows. Our test framework accounts for these variations. We built reusable test cases that simulate multiple user roles and configurations to ensure the platform performs reliably for all users.
- Managing frequent product updates. Guesty releases new features and fixes often. Keeping tests updated without breaking them is a challenge. Our team set up a flexible testing system with a clear structure and CI quality gates. This helps us maintain stability, even when changes are deployed rapidly.
- Cross-platform test coverage. Guesty runs on both web and mobile devices. We always select tools and build test suites that work across browsers and platforms.
- Reducing flaky tests and environmental issues. Tests that fail randomly due to network delays, async operations, or system timing can slow teams down. We use reliable tools like Playwright and set up dedicated temporary testing environments using Terraform. This gives us full control, reduced noise, and made the test results more stable.
- Test data generation and management. Testing features like payments or bookings requires specific data. Our QA team creates automated routines to generate and manage clean, reusable test data, allowing for clear test data management.
- Scaling the test suite without performance loss. As test coverage grows, so does the risk of long, slow test runs. We resolve this by using parallel execution, temporary environments, and efficient infrastructure. This allows Guesty to scale testing without increasing resource use or wait times.
As a result, overcoming these challenges ensures a successful and transformative implementation of the QA automation project for Guesty.