Test Planning
Effective test planning ensures a structured, scalable testing process. Without it, testing can become chaotic, leading to missed coverage, inefficiencies, and difficult maintenance. Here’s how to keep your tests organized and efficient.
Organizing Test Cases
A clear folder structure helps scale your tests efficiently:
Recommended Structures:
- Version > Module > Features – Best for versioned applications.
- Module > Version > Features – Ideal for modular apps with independent versions.
- Module > Features – Suitable when versioning isn’t a concern.
Key Test Types for Each Feature:
- Happy Path Cases – Validate expected behavior.
- Negative Cases – Test resilience to invalid inputs.
- Integration Tests – Verify multi-service workflows.
Folder Structure Best Practices:
- Selector Inclusion – The test runner selects all subfolders; structure accordingly.
- Use Built-in Priorities – Avoid separate folders for priority levels.
- Tagging for Cross-Cutting Concerns – Use tags like
Security
to group tests flexibly. - Independent Test Cases – Ensure parallel execution.
Example Structures:
Versioned API with Modular Features
v1
├── User Management
│ ├── Registration
└── Orders
└── Payments
Module-Based Structure with Versioned Features
User Management
├── Registration
├── Login
└── Security (e.g., injection testing)
Aligning Test Environments
Testing spans multiple environments (e.g., local, staging, production). Avoid hard-coded values to maintain flexibility.
Steps:
-
Identify Web Services
- Name each service clearly (e.g., User Service, Product Service, Order Service).
-
Use Variables for Environment-Specific Values
- Replace hardcoded URLs and tokens with variables:
{{userServiceEndpoint}}
,{{orderServiceEndpoint}}
{{userServiceAccessToken}}
,{{orderServiceAccessToken}}
- Replace hardcoded URLs and tokens with variables:
-
Define Environment Groups
- Set environment-specific values for easy switching:
- Local:
{{userServiceEndpoint}}
→https://local.api.example.com/user
- Staging:
{{userServiceEndpoint}}
→https://staging.api.example.com/user
- Local:
- Select the environment group in the test runner to apply the correct values automatically.
- Set environment-specific values for easy switching:
This setup keeps tests environment-agnostic, enhancing maintainability and reducing manual updates.
Scheduling & Automation
Automating tests ensures consistent quality checks.
1. Determine Test Frequency:
- High-Criticality – Run post-deployment or every 30 minutes.
- Medium-Criticality – Run daily or nightly.
- Low-Criticality – Run weekly or after major updates.
2. Automate with ReAPI:
- Test Deployments – Bind test runners to environments.
- Custom Scheduling – Run tests at deployment, daily, or weekly.
- Automated Environment Selection – Apply the correct environment automatically.
3. Use Tags & Selectors:
- Tag tests (e.g.,
Critical Path
,Security
) for flexible selection. - Combine folders and tags for targeted runs.
4. Monitor & Optimize:
- Set Notifications – Reduce noise by separating success and failure alerts.
- Review Reports Regularly – Identify trends, adjust frequencies.
By structuring, automating, and optimizing test planning, you ensure an efficient, scalable process that adapts to your application’s needs.