Test Environment
Continuous improvement relies heavily on our ability to experiment and test new ideas in safe, controlled environments. Our test environments are designed to foster innovation and ensure quality before changes reach production.
Staging Environment
The Staging environment is a key part of our validation process.
- Purpose: A pre-production environment that replicates the production environment as closely as possible. Its main goal is to run final acceptance (UAT) and regression testing.
- Characteristics:
- Identical Infrastructure: Uses the same infrastructure configuration (service versions, network settings, and so on) as production.
- Anonymized Data: Populated with a realistic but anonymized dataset to support functional testing without exposing sensitive information.
- External Service Connections: Connects to sandbox versions of third-party services.
- Usage Process:
- The development team deploys a new release candidate to Staging.
- The Q&A team runs the regression and UAT plan.
- Business stakeholders can access this environment to validate new features.
- Only after approval in Staging can a version be scheduled for deployment to production.
Performance and Load Testing
Ensuring our applications can handle user demand is essential.
- Purpose: Identify bottlenecks, measure response times, and determine the system's maximum capacity under load.
- Environment: These tests run in a dedicated, isolated environment with the same specifications as production, so other environments are not affected.
- Tools:
- JMeter / Gatling: For generating scripts that simulate the behavior of thousands of users.
- K6: A modern load-testing tool focused on the developer experience.
- Process:
- Define test scenarios based on the most common and critical use cases.
- Run tests, gradually increasing load to find the breaking point.
- Analyze results (response times, error rates, resource consumption) to identify areas for improvement.
- Apply optimizations in code or infrastructure and repeat tests until performance goals are met.
Feature Environments
To accelerate the feedback cycle, we use ephemeral environments for each new feature.
- Purpose: Allow developers, designers, and product owners to test a new feature in isolation, without waiting for
it to be integrated into the main
developbranch. - How it works:
- When a Pull Request is created, our CI/CD system automatically provisions a temporary environment with the changes from that branch.
- A unique URL is generated to access this environment.
- Once the Pull Request is merged or closed, the environment is automatically destroyed to free resources.
- Benefits: Facilitates reviews and helps detect issues early in the development cycle.