Repository configuration

Organize your test repository using User Journey or Feature Test patterns for scalable automation.

Many teams adopt a monorepo approach, co-locating Maestro test suites with app source code. This strategy offers several technical advantages:

  • Version synchronization: Tests remain coupled to the codebase version they validate, ensuring historical commits maintain test compatibility

  • Atomic changes: Feature branches can bundle app logic modifications with corresponding test updates in a single pull request

  • Simplified CI/CD: Build pipelines can reference tests directly from the same repository checkout without managing separate test artifact versions

Repository structure patterns

A well-structured repository ensures that your test suite remains maintainable as your application grows. Most Maestro projects are organized around one of two core strategies:

Strategy

User Journeys (Goal-Driven)

Feature Tests (Habit-Driven)

Primary Objective

Funnel completion

Friction reduction

Best For

E-commerce, Fintech, Food Delivery

Social Media, Content, Entertainment

User Motivation

Complete a specific task (e.g., Order food)

Continuous engagement and discovery

Success Metric

Reaching the end of a funnel

Zero-friction interactions

Choosing the right structure helps ensure your automation remains relevant as your app grows.

User journeys (Goal-driven Apps)

This approach is best for E-commerce, food delivery, or fintech (e.g., DoorDash, Uber, Banking) Apps. These apps exist to help users complete a specific task. When a user is hungry, they open the app to order food, once they are fed, they stop using it.

  • The Goal: Success is defined by the user reaching the end of a funnel (e.g., Order Confirmed).

  • The Strategy: Organize your repository by journeys. Focus on end-to-end flows that track variations of the main task (e.g., Delivery vs. Collection, applying coupons, or external payment processors).

This pattern often partitions test suites by user segmentation (new vs. existing) and execution context.

circle-check

Technical implementation note

Feature tests (Habit-driven Apps)

This approach is best for social media, content aggregators, or entertainment (e.g., Reddit, Instagram, Spotify) apps. These apps succeed when they reduce friction and keep users engaged. Success is a cumulative experience of many small, slick interactions.

  • The Goal: Success is defined by high engagement and zero friction.

  • The Strategy: Organize your repository by individual features. You need deep coverage for components because one slow spinner or broken interaction can cause a user to drop off.

Feature-based organization establishes a structural isomorphism (direct mapping) between test suites and app modules:

Nest steps

Learn the "Maestro Way" of writing modular, tagged, and parallel-ready tests exploring the Maestro Best Practices: Structuring your Test Suitearrow-up-right article.

Last updated