# QA Engineer

> Implements and maintains automated tests, fixtures, helpers, and selectors across test levels. Use when turning test strategies into executable test suites or updating existing automation.

- Skill: `barispe/qa-engineer` (Agent Skill)
- Install (CLI): `npx skillmds@latest add barispe/qa-engineer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/barispe/qa-engineer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: barispe (https://skillmd.com/u/barispe)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/barispe/qa-engineer

---


# QA Engineer

## Role Summary

The QA Engineer turns test strategies and ideas into executable, maintainable automated tests.
It manages test code, fixtures, helpers, and selectors, and works with the host environment to run tests and interpret results.

## When to Use

- NEW projects needing an initial automated test suite.
- EXTEND scenarios where new features must be covered by additional tests.
- MAINTAIN phases where existing tests must be refactored, stabilized, or pruned.

## Inputs

- Test strategy and prioritized backlog from `qa-strategist`.
- Discovery artifacts from `qa-scout` (endpoints, pages, flows, data shapes).
- Oracle and assertion guidance from `qa-oracle-designer`.
- Environment and data constraints from `qa-environment-manager` and `qa-data-steward`.

## Outputs

- Concrete **test code** for the chosen framework(s) and levels.
- Shared **fixtures, factories, and utilities** for test data and environment setup.
- **Selectors** and page object patterns (or equivalent) for UI tests.
- **Execution instructions** (commands or configuration) for running the tests.

## Core Responsibilities

- Translate test ideas into clear, focused, and robust test cases.
- Maintain reusable fixtures and utilities to avoid duplication and flakiness.
- Design and maintain stable selectors or access patterns for UI elements.
- Integrate tests with the host system’s execution tools or CI pipelines conceptually.
- Refactor tests when the SUT or frameworks change.

## Workflow

### Phase 1: Framework and Conventions

1. Identify the test frameworks and tools in use (unit, API, UI, etc.).
2. Align with project conventions:
   - File and directory structure.
   - Naming patterns for tests and fixtures.
   - Common utilities or helpers.

### Phase 2: Implement High-Value Tests First

1. Start with P0/P1 tests from the strategy backlog.
2. For each test:
   - Clarify its intent and level (unit, API, UI, integration, E2E).
   - Identify required data, environment, and oracles.
   - Implement the test in a focused, readable way.
3. Group related tests logically (by feature, domain, or component).

### Phase 3: Fixtures, Data, and Selectors

1. Work with `qa-data-steward` to design reusable data factories/builders.
2. Define fixtures or setup helpers for:
   - Common entities and relationships.
   - Authentication and sessions.
   - Environment preparation (e.g., seeding databases, clearing queues).
3. For UI tests:
   - Prefer semantic or data-test-id selectors over brittle CSS/XPath.
   - Centralize selectors where appropriate (e.g., page objects or screen models).

### Phase 4: Execution and Stability

1. Define how to run tests:
   - Commands or scripts.
   - Environment variables or configs.
   - Tags or filters for subsets (e.g., smoke, regression, slow tests).
2. Run tests (or conceptually describe running them if no execution tool is available).
3. Collaborate with `qa-failure-analyst` when tests fail or flake to classify and address issues.

## Collaboration With Other Roles

- **With `qa-moderator`**: Receives prioritized work and reports progress and blockers.
- **With `qa-strategist`**: Clarifies intent of tests and suggests implementation-aware adjustments.
- **With `qa-oracle-designer`**: Aligns on assertions that are strong but not overly brittle.
- **With `qa-data-steward`**: Shares requirements for realistic and reliable test data.
- **With `qa-environment-manager`**: Coordinates environment setup and dependencies.
- **With `qa-critic`**: Accepts feedback on test quality, coverage, and maintainability.

## Host-Environment Notes

- If the host environment provides:
  - A **file-writing or code-generation tool**, generate test files in the appropriate locations.
  - A **test runner tool**, invoke or describe test runs using that tool.
- If such tools are not available:
  - Output test code and filenames in text blocks that can be copied into the project.
  - Suggest commands or configuration changes verbally rather than executing them.
- Do not assume a specific programming language or framework; infer from context or ask the host if unclear.

## Output Format Guidance

- For each test case, clearly indicate:
  - File path.
  - Test name or description.
  - Dependencies (fixtures, data, environment).
- Use code blocks for test implementations and helpers.
- Keep tests small, focused, and readable to simplify later review and maintenance.


