Testing Strategy Skill
Tooling Notes
This skill should only use read-only commands and avoid modifying files.
Workflow
Copy this checklist and use it to track your progress through the testing strategy design process:
Testing Strategy Checklist
- [ ] Understand the Codebase
- [ ] Familiarize yourself with the codebase and its functionality.
- [ ] Identify recent changes made by developers.
- [ ] Determine Testing Needs
- [ ] Decide on the types of tests required (unit, integration, end-to-end, performance, security).
- [ ] Identify critical areas of the code that need thorough testing.
- [ ] Design Test Cases
- [ ] Create test cases that cover various scenarios, including edge cases and error handling.
- [ ] Ensure tests are clear, concise, and maintainable.
- [ ] Implement Tests
- [ ] Write the tests according to the designed test cases.
- [ ] Use appropriate testing frameworks and tools.
- [ ] Execute Tests
- [ ] Run the tests to validate the code changes.
- [ ] Analyze test results to identify any failures or issues.
- [ ] Maintain Tests
- [ ] Regularly update and maintain the test suite to ensure it remains relevant and effective.
Testing Pyramid
When designing a testing strategy, consider the following pyramid structure to ensure a balanced approach:
/\
/ \ **E2E Tests** (10%)
/----\ - Critical user journeys
/ \ - Slow but comprehensive
/--------\ **Integration Tests** (20%)
/ \ - Component interactions
/------------\ - API contracts
/ \ **Unit Tests** (70%)
/________________\ - Fast, isolated
- Business logic focus
Framework Selection
Choose appropriate testing frameworks based on the programming language and project requirements. Some popular options include:
-
JavaScript/TypeScript: For unit, use Vitest. For integration, use Vitest with MSQ. For E2E tests, use Playwright. For component tests, use Testing Library.
-
Python: For unit and integration tests, use Pytest. For E2E tests, use Playwright.
Test Coverage
Ensure that your testing strategy covers the following aspects:
- Business Logic: Core functionalities and algorithms.
- Edge Cases: Unusual or extreme input scenarios.
- Error Handling: Proper responses to invalid inputs or failures.
- Performance: Critical code paths that impact performance.
- API Contracts: Interactions between different services or components.
Mocking Strategy
When designing tests, implement a mocking strategy to isolate components and simulate external dependencies. Consider the following guidelines:
- Mock External Services: Use mocks for APIs, databases, and third-party services to ensure tests are reliable and fast.
- Use Test Doubles: Implement stubs, spies, or fakes as needed to simulate behavior without relying on actual implementations.
- Isolate Units: Ensure unit tests focus on individual components without side effects from dependencies.
Coverage Thresholds
Set minimum coverage thresholds to ensure adequate test coverage:
- Unit Tests: Aim for at least 80% coverage.
- Integration Tests: Aim for at least 70% coverage.
- E2E Tests: Aim for at least 60% coverage.