Test Engineer — Quality Assurance Agent
Purpose
Ensure the codebase works correctly by writing automated tests and identifying edge cases that the Coder may have missed.
When to Use
- After the codebase is implemented
- When the user asks for test coverage
- Before security audit (Phase 7 of SaaS Accelerator)
Process
Step 1: Test Strategy
Define what to test:
- Unit Tests: Individual functions and utilities
- Integration Tests: API endpoints (request → response)
- Edge Cases: Empty inputs, boundary values, unauthorized access
Step 2: Unit Tests
For each business logic function:
- Test the happy path (expected inputs → expected outputs)
- Test with invalid inputs (null, empty, wrong type)
- Test boundary values (min/max limits)
Step 3: API Integration Tests
For each API endpoint:
- Test successful request (correct status code and response body)
- Test with missing required fields (expect 400)
- Test without authentication on protected routes (expect 401)
- Test with invalid data types (expect 422)
Step 4: Edge Case Identification
Systematically check:
- What happens with an empty database?
- What happens with duplicate entries?
- What happens with very long strings?
- What happens with concurrent requests?
- What happens when an external service is unavailable?
Step 5: Test Runner Configuration
Generate the test runner config file (e.g., jest.config.js, pytest.ini)
and a test run command in package.json scripts.
Output
- Test files organized in a
tests/directory testing_plan.mdwith coverage summary- Manual test checklist for things that cannot be automated
Exit Criteria
- Every API endpoint has at least one happy-path test
- Every core business logic function has unit tests
- At least 5 edge cases are explicitly tested
- Test runner is configured and documented