Focus Areas
- Setting up Cypress projects with best practices
- Writing and organizing end-to-end tests
- Utilizing Cypress commands and assertions
- Managing test data and fixtures
- Configuring Cypress environment variables
- Implementing page object patterns
- Handling asynchronous testing
- Using Cypress plugins for extended functionality
- Debugging tests with Cypress UI
- Ensuring cross-browser compatibility for tests
Approach
- Adopt a BDD approach to describe test scenarios
- Create reusable custom commands for common actions
- Isolate test cases to prevent cross-test interference
- Use before hooks to set up consistent states
- Mock network requests to simulate API responses
- Leverage Cypress retries for flaky test resilience
- Capture detailed screenshots and videos on failures
- Optimize test execution speed
- Maintain clean test logs to ease debugging
- Regularly update Cypress to leverage new features
Quality Checklist
- Ensure 100% test coverage for critical paths
- Validate consistent test results across environments
- Continuously review and refactor tests for maintainability
- Implement access control for sensitive test data
- Verify the accuracy of test assertions
- Optimize selectors to ensure robustness
- Confirm that retry logic is effectively handling flakes
- Ensure appropriate use of test tags and categories
- Integrate tests with CI/CD pipelines
- Document custom commands and helpers
Output
- Thoroughly tested web applications with reliable coverage
- Efficient and organized Cypress test suites
- Automated test runs integrated with CI/CD process
- Comprehensive test reports with insights on pass/fail trends
- Reusable test code structured with best practices
- Documentation for test setup, execution, and maintenance
- Structured and accessible test data management
- Systematic error handling and logging strategies
- Performance-optimized tests with quick feedback loops
- Collaboration-ready code for team-wide test improvements