444 lines
11 KiB
Markdown
444 lines
11 KiB
Markdown
# QA Engineer Agent
|
|
|
|
## Overview
|
|
|
|
The QA Engineer agent is a specialized AI agent designed to help with test strategy, test planning, test automation, and comprehensive quality assurance for modern software projects.
|
|
|
|
## When to Use This Agent
|
|
|
|
Invoke this agent when you need:
|
|
|
|
- **Test Strategy**: Design comprehensive testing approaches (unit, integration, E2E)
|
|
- **Test Planning**: Break down features into testable scenarios
|
|
- **Test Automation**: Set up Playwright, Vitest, Cypress, or other testing frameworks
|
|
- **TDD Workflow**: Implement test-driven development practices
|
|
- **Quality Gates**: Define coverage thresholds and quality metrics
|
|
- **Performance Testing**: Load testing, stress testing, benchmarking
|
|
- **Accessibility Testing**: WCAG compliance, a11y automation
|
|
- **Security Testing**: Vulnerability scanning, penetration testing
|
|
- **CI/CD Integration**: Automated testing in pipelines
|
|
- **Test Maintenance**: Refactor flaky tests, improve test reliability
|
|
|
|
## How to Invoke
|
|
|
|
Use the Task tool with `subagent_type`:
|
|
|
|
```typescript
|
|
Task({
|
|
subagent_type: "specweave-testing:qa-engineer:qa-engineer",
|
|
prompt: "Design a comprehensive test strategy for a React e-commerce application with Vitest unit tests, Playwright E2E tests, and accessibility testing"
|
|
});
|
|
```
|
|
|
|
## Agent Capabilities
|
|
|
|
### 1. Testing Frameworks
|
|
|
|
**JavaScript/TypeScript**:
|
|
- Vitest for unit and integration testing
|
|
- Playwright for cross-browser E2E testing
|
|
- Cypress for browser automation
|
|
- Testing Library (React, Vue, Angular)
|
|
- MSW (Mock Service Worker) for API mocking
|
|
- Jest with modern features
|
|
|
|
**Other Languages**:
|
|
- pytest (Python) with fixtures
|
|
- JUnit 5 (Java) with Mockito
|
|
- RSpec (Ruby) with factories
|
|
- Go testing package with testify
|
|
|
|
**Specialized Testing**:
|
|
- Percy/Chromatic for visual regression
|
|
- axe-core for accessibility
|
|
- k6 for load testing
|
|
- OWASP ZAP for security
|
|
|
|
### 2. Testing Strategies
|
|
|
|
**Testing Pyramid**:
|
|
- Unit Tests (70%): Fast, isolated, single responsibility
|
|
- Integration Tests (20%): Module interactions, API contracts
|
|
- E2E Tests (10%): Critical user journeys
|
|
|
|
**Test-Driven Development (TDD)**:
|
|
- Red-Green-Refactor cycle
|
|
- Behavior-driven naming
|
|
- Design through tests
|
|
- Refactoring safety net
|
|
|
|
**Behavior-Driven Development (BDD)**:
|
|
- Given-When-Then format
|
|
- Cucumber/Gherkin syntax
|
|
- Living documentation
|
|
- Stakeholder-readable tests
|
|
|
|
### 3. Test Coverage & Quality
|
|
|
|
- Code coverage (line, branch, statement, function)
|
|
- Mutation testing (Stryker)
|
|
- Risk-based prioritization
|
|
- Boundary value analysis
|
|
- State transition testing
|
|
- Quality gates and thresholds
|
|
|
|
### 4. Test Organization
|
|
|
|
- AAA pattern (Arrange-Act-Assert)
|
|
- Page Object Model (POM) for E2E
|
|
- Test fixtures and factories
|
|
- Tagging and categorization
|
|
- Parallel test execution
|
|
- Test data management
|
|
|
|
### 5. CI/CD Integration
|
|
|
|
- GitHub Actions workflows
|
|
- GitLab CI pipelines
|
|
- Pre-commit hooks (Husky)
|
|
- Pull request checks
|
|
- Automated regression runs
|
|
- Test result reporting
|
|
|
|
## Common Use Cases
|
|
|
|
### 1. Design Test Strategy
|
|
|
|
**Prompt**:
|
|
```
|
|
"Design a test strategy for a Next.js SaaS application with:
|
|
- User authentication (OAuth, email/password)
|
|
- Real-time dashboard with WebSocket
|
|
- Payment processing (Stripe)
|
|
- Admin panel with RBAC
|
|
- Multi-tenancy support
|
|
|
|
Target: 80%+ code coverage, < 5 min test execution, zero flaky tests"
|
|
```
|
|
|
|
**What the agent provides**:
|
|
- Testing pyramid breakdown
|
|
- Framework selection (Vitest, Playwright, etc.)
|
|
- Coverage targets per layer
|
|
- Test data management strategy
|
|
- CI/CD integration plan
|
|
- Quality gates definition
|
|
|
|
### 2. Implement Unit Tests
|
|
|
|
**Prompt**:
|
|
```
|
|
"Set up Vitest for a TypeScript React project with:
|
|
- Unit tests for custom hooks
|
|
- Component tests with Testing Library
|
|
- API mocking with MSW
|
|
- Coverage thresholds (80%+ lines, 75%+ branches)
|
|
- Watch mode for development
|
|
- CI integration"
|
|
```
|
|
|
|
**What the agent provides**:
|
|
- Vitest configuration
|
|
- Test file structure
|
|
- Mock setup examples
|
|
- Coverage configuration
|
|
- CI workflow YAML
|
|
- Best practices documentation
|
|
|
|
### 3. Implement E2E Tests
|
|
|
|
**Prompt**:
|
|
```
|
|
"Set up Playwright E2E tests for an e-commerce checkout flow:
|
|
- Product search and filtering
|
|
- Add to cart
|
|
- Checkout with guest and authenticated users
|
|
- Payment processing (test mode)
|
|
- Order confirmation
|
|
|
|
Cross-browser testing (Chrome, Firefox, Safari)
|
|
Mobile emulation (iPhone, Android)
|
|
Visual regression testing
|
|
Parallel execution"
|
|
```
|
|
|
|
**What the agent provides**:
|
|
- Playwright configuration
|
|
- Page Object Model architecture
|
|
- Test fixtures for authentication
|
|
- API mocking strategies
|
|
- Visual regression setup
|
|
- Parallelization strategy
|
|
|
|
### 4. Implement TDD Workflow
|
|
|
|
**Prompt**:
|
|
```
|
|
"Guide me through TDD for implementing a shopping cart feature:
|
|
- Add item to cart
|
|
- Remove item from cart
|
|
- Update quantity
|
|
- Calculate total with tax
|
|
- Apply discount code
|
|
|
|
Use Vitest, follow red-green-refactor strictly"
|
|
```
|
|
|
|
**What the agent provides**:
|
|
- Step-by-step TDD cycle
|
|
- Failing test examples (RED)
|
|
- Minimal implementation (GREEN)
|
|
- Refactoring strategies
|
|
- Test-first design patterns
|
|
- Best practices checklist
|
|
|
|
### 5. Accessibility Testing
|
|
|
|
**Prompt**:
|
|
```
|
|
"Set up automated accessibility testing for a React application:
|
|
- WCAG AA compliance
|
|
- axe-core integration in Vitest
|
|
- Playwright accessibility assertions
|
|
- Keyboard navigation tests
|
|
- Screen reader compatibility
|
|
- Color contrast validation
|
|
|
|
Target: Lighthouse accessibility score 95+"
|
|
```
|
|
|
|
**What the agent provides**:
|
|
- axe-core setup with Vitest
|
|
- Playwright accessibility tests
|
|
- Keyboard navigation test examples
|
|
- Manual testing checklist
|
|
- WCAG compliance guide
|
|
- Accessibility audit process
|
|
|
|
### 6. Performance Testing
|
|
|
|
**Prompt**:
|
|
```
|
|
"Set up performance testing for a REST API:
|
|
- Load testing (1000 concurrent users)
|
|
- Stress testing (find breaking point)
|
|
- Soak testing (24 hour sustained load)
|
|
- Metrics: p50, p95, p99 response times
|
|
|
|
Use k6, integrate with CI/CD, track trends"
|
|
```
|
|
|
|
**What the agent provides**:
|
|
- k6 test scripts
|
|
- Load testing scenarios
|
|
- Performance thresholds
|
|
- CI integration (GitHub Actions)
|
|
- Grafana dashboard setup
|
|
- Performance budget definition
|
|
|
|
## Example Workflows
|
|
|
|
### Workflow 1: TDD Feature Development
|
|
|
|
1. **Write Failing Test (RED)**: Define expected behavior
|
|
2. **Implement Minimally (GREEN)**: Make test pass
|
|
3. **Refactor**: Improve code quality
|
|
4. **Repeat**: Next requirement
|
|
|
|
### Workflow 2: E2E Test Setup
|
|
|
|
1. **Install Playwright**: `npm install -D @playwright/test`
|
|
2. **Configure**: Browser setup, base URL, screenshots
|
|
3. **Create Page Objects**: Reusable page interactions
|
|
4. **Write Tests**: Critical user journeys
|
|
5. **CI Integration**: Run on every PR
|
|
6. **Monitor**: Track flakiness and execution time
|
|
|
|
### Workflow 3: Quality Audit
|
|
|
|
1. **Analyze Coverage**: Identify gaps
|
|
2. **Review Test Quality**: Flaky tests, slow tests
|
|
3. **Refactor**: Improve reliability
|
|
4. **Set Thresholds**: Enforce quality gates
|
|
5. **Monitor**: Track metrics over time
|
|
|
|
## Input Format
|
|
|
|
The agent expects a clear, specific prompt describing:
|
|
|
|
1. **Context**: What are you testing? What technology stack?
|
|
2. **Requirements**: What features need tests?
|
|
3. **Quality Targets**: Coverage %, performance, accessibility
|
|
4. **Constraints**: Team size, timeline, CI/CD platform
|
|
|
|
**Good prompt**:
|
|
```
|
|
"Design test strategy for Node.js REST API with:
|
|
- 50+ endpoints (CRUD operations)
|
|
- Authentication (JWT)
|
|
- Rate limiting
|
|
- PostgreSQL database
|
|
- Redis caching
|
|
|
|
Stack: TypeScript, Express, Prisma
|
|
Target: 85%+ coverage, < 2 min test execution
|
|
CI: GitHub Actions
|
|
Team: 5 developers, all familiar with Jest"
|
|
```
|
|
|
|
**Poor prompt**:
|
|
```
|
|
"Need tests for my API"
|
|
```
|
|
|
|
## Output Format
|
|
|
|
The agent provides:
|
|
|
|
1. **Test Strategy**: High-level approach and distribution
|
|
2. **Framework Setup**: Configuration files and installation
|
|
3. **Test Examples**: Code samples for each test type
|
|
4. **Best Practices**: Patterns and anti-patterns
|
|
5. **CI/CD Integration**: Workflow files
|
|
6. **Quality Metrics**: Coverage targets, thresholds
|
|
7. **Documentation**: Testing guidelines for team
|
|
|
|
## Best Practices
|
|
|
|
### 1. Test Behavior, Not Implementation
|
|
Focus on what code does, not how it does it.
|
|
|
|
### 2. Independent Tests
|
|
No shared state between tests.
|
|
|
|
### 3. Fast Feedback
|
|
Unit tests should run in seconds.
|
|
|
|
### 4. Readable Tests
|
|
Self-documenting test names and structure.
|
|
|
|
### 5. Maintainable Tests
|
|
Page Object Model, fixtures, utilities.
|
|
|
|
### 6. Realistic Tests
|
|
Test against production-like environment.
|
|
|
|
### 7. Coverage Targets
|
|
80%+ code coverage, 100% critical paths.
|
|
|
|
### 8. Flakiness Zero Tolerance
|
|
Fix or quarantine flaky tests immediately.
|
|
|
|
## Integration with SpecWeave
|
|
|
|
### Use with /specweave:increment
|
|
|
|
When planning a feature increment:
|
|
|
|
```bash
|
|
# 1. Plan increment
|
|
/specweave:increment "Implement user authentication with OAuth"
|
|
|
|
# 2. Generate test strategy
|
|
Task({
|
|
subagent_type: "specweave-testing:qa-engineer:qa-engineer",
|
|
prompt: "Design test strategy for OAuth authentication with Google, GitHub, and email/password. Include unit tests for auth logic, integration tests for OAuth flow, and E2E tests for complete user journey."
|
|
});
|
|
|
|
# 3. Implement with TDD
|
|
/specweave:do
|
|
```
|
|
|
|
### Use with /specweave:qa
|
|
|
|
After implementation, validate test coverage:
|
|
|
|
```bash
|
|
# Run quality assessment
|
|
/specweave:qa 0123
|
|
|
|
# Agent checks:
|
|
# - Test coverage (lines, branches, functions)
|
|
# - Test quality (independent, fast, readable)
|
|
# - Critical path coverage
|
|
# - E2E test completeness
|
|
# - Accessibility test coverage
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Issue: Flaky tests
|
|
|
|
**Solution**:
|
|
- Use proper wait strategies (no hardcoded delays)
|
|
- Isolate test data
|
|
- Mock external dependencies
|
|
- Use fake timers for time-based code
|
|
|
|
### Issue: Slow tests
|
|
|
|
**Solution**:
|
|
- Mock expensive operations (DB, API, file I/O)
|
|
- Use fake timers
|
|
- Run tests in parallel
|
|
- Profile slow tests
|
|
|
|
### Issue: Low coverage
|
|
|
|
**Solution**:
|
|
- Identify untested paths
|
|
- Add tests for edge cases
|
|
- Test error handling
|
|
- Use mutation testing to find weak tests
|
|
|
|
## Advanced Usage
|
|
|
|
### Contract Testing
|
|
|
|
```typescript
|
|
Task({
|
|
subagent_type: "specweave-testing:qa-engineer:qa-engineer",
|
|
prompt: `Set up Pact contract testing between:
|
|
- Frontend (React SPA)
|
|
- Backend API (Node.js)
|
|
- Third-party payment API (Stripe)
|
|
|
|
Ensure API compatibility across teams`
|
|
});
|
|
```
|
|
|
|
### Visual Regression Testing
|
|
|
|
```typescript
|
|
Task({
|
|
subagent_type: "specweave-testing:qa-engineer:qa-engineer",
|
|
prompt: `Set up visual regression testing with Percy for:
|
|
- 20+ pages across 3 breakpoints (mobile, tablet, desktop)
|
|
- 5+ themes (light, dark, high-contrast)
|
|
- Component library (Storybook integration)
|
|
|
|
CI integration, baseline management`
|
|
});
|
|
```
|
|
|
|
## Resources
|
|
|
|
- **Vitest Docs**: https://vitest.dev
|
|
- **Playwright Docs**: https://playwright.dev
|
|
- **Testing Library**: https://testing-library.com
|
|
- **TDD Guide**: https://martinfowler.com/bliki/TestDrivenDevelopment.html
|
|
- **Testing Best Practices**: https://testingjavascript.com
|
|
|
|
## Version History
|
|
|
|
- **v1.0.0** (2025-01-22): Initial release with Vitest, Playwright, TDD expertise
|
|
- **v1.1.0** (TBD): Add mobile testing support (Appium, Detox)
|
|
- **v1.2.0** (TBD): Add chaos engineering guidance
|
|
|
|
## Support
|
|
|
|
For issues or questions:
|
|
- GitHub Issues: https://github.com/anton-abyzov/specweave/issues
|
|
- Discord: https://discord.gg/specweave
|
|
- Documentation: https://spec-weave.com
|