agentleFS
pranav8494pranav8494/team-of-agents/skills/qa-engineer/SKILL.md

qa-engineer

Skill7 starsChanged 6 months agoMITView on GitHub

Use when writing test plans, designing test cases, identifying edge cases and failure scenarios, reviewing code for testability, setting up test automation, evaluating test coverage, performing exploratory testing, defining quality standards, or any task focused on ensuring software works correctly and reliably before and after release.

17 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use security-engineer, technical-writer and 2 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • belokonmSkill

    security-engineer

    Expert in infrastructure security, DevSecOps pipelines, and zero-trust architecture design.

    Also in 4 projects that use this

  • VercelSkill

    technical-writer

    Write, review, and edit developer documentation for SDKs, libraries, and frameworks, including sites such as ai-sdk.dev and chat-sdk.dev. Use for getting-started guides, tutorials, API references, conceptual explanations, integration guides, migration guides, troubleshooting, and code examples.

    Also in 4 projects that use this

  • nahisahoSkill

    security-auditor

    security-auditor skill

    Also in 3 projects that use this

  • GoogleSkill

    code-reviewer

    Also in 4 projects that use this

The file

We split this skill into the rules it gives an agent

12 rules. 0 are common, 12 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 16 edited versions we read keep these.

  • 12

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Ask for confirmation: before writing any test code, test plan document, or filing any issue

    line 22
  2. Distinctive:

    Use this table to determine what to produce for each task type:

    line 29
  3. Distinctive:

    Test the edges of each partition, not just the middle.

    line 71
  4. Distinctive:

    When behaviour depends on combinations of conditions:

    line 78
  5. Distinctive:

    Test every valid transition

    line 92
  6. Distinctive:

    Test every invalid transition (what happens if you try to cancel a fulfilled order?)

    line 93
  7. Distinctive:

    Test boundary states (empty cart, max item count)

    line 94
  8. Distinctive:

    Debrief: document findings, anomalies, questions.

    line 119
  9. Distinctive:

    Every bug report must include:

    line 145
  10. Distinctive:

    Assertions: test behaviour, not implementation: assert what the user sees, not what the internal state is

    line 167
  11. Distinctive:

    If the task is outside this skill's scope or you lack the information needed to proceed, return this instead of a confidence signal:

    line 197
  12. Distinctive:

    Do not guess or produce low-quality output to avoid returning BLOCKED.

    line 203

“Common” is measured: kept by at least 6 in 10 of the 16 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

QA Engineer

Iron Law

Quality is built in, not tested in. The best time to catch a defect is at requirements.
A flaky test is worse than no test, it erodes suite trust and masks real failures.

Before Taking Any Action

  1. Announce what you intend to do and why, e.g. "I'd like to write a test plan for the login feature, covering happy path, error cases, and edge cases around session expiry"
  2. Explain the approach, which test types, which risk areas, what the output will be
  3. Ask for confirmation before writing any test code, test plan document, or filing any issue
  4. Report what was produced and flag any coverage gaps or unresolved risks

Task Approach

Use this table to determine what to produce for each task type:

User asks forWhat to produce
Test planRisk-based test plan with: scope (in/out), test levels with target ratios from the Test Pyramid (unit ~70% / integration ~20% / E2E ~10%), test cases mapped to acceptance criteria, entry/exit criteria, defect severity matrix, automation candidates vs. manual-only areas
Test cases for a featureHappy path cases + error path cases (invalid input, auth failure, downstream timeout) + edge cases (boundary values, empty state, max limits) using EP and BVA techniques; each case has: ID, precondition, steps, expected result
Bug reportCompleted bug report using the Bug Report Format: summary, environment, preconditions, numbered reproduction steps, expected result, actual result, severity, evidence (screenshot/log); incomplete reports are returned for more detail
Automation strategyAutomation Decision Table evaluation for each candidate test; recommended framework + rationale; CI integration point; quarantine policy for flaky tests
Exploratory testing sessionSession charter (focus area + time-box) + findings log (anomalies, questions, confirmed issues) + severity classification per finding using SFDPO heuristics
Code review (testability)Assessment of: test isolation (shared state risks), assertion quality (behaviour vs. internal state), async handling (sleep vs. polling), test naming convention, flakiness risk; concrete refactor suggestions
Test coverage analysisCoverage report interpretation: identify untested equivalence partitions, missing boundary values, uncovered state transitions, and integration gaps; recommended test cases to close each gap
Non-functional testing planArea-specific plan from the Non-Functional Testing table: load test scenarios with ramp profile and p99 target, security test cases (OWASP inputs), accessibility audit scope (automated + manual), compatibility matrix
Quality standards definitionTest naming convention, assertion rules, flakiness policy (quarantine threshold + SLA to fix), severity/priority definitions, definition of done for test coverage

Test Pyramid (Risk-Proportional Investment)

LevelCoverage targetCharacteristicsWhen it fails, it means
Unit~70% of test countFast, isolated, no I/O, mocks at boundariesLogic is wrong
Integration~20% of test countReal DB (Testcontainers), real HTTP (WireMock), slowWiring or query is wrong
Contract (Pact)API boundaries onlyService-to-service, no full stack neededProducer broke consumer expectations
E2E~10% of test count, critical paths onlyFull environment, slowest, most fragileUser-facing regression exists

Deviating toward the top of the pyramid (more E2E) means you have poor isolation of failure causes and slow feedback. Deviating toward the bottom (unit-only) means you have gaps in integration correctness.


Test Design Techniques

Equivalence Partitioning (EP)

Divide the input space into partitions where all values in a partition should produce equivalent behaviour. Test one representative from each partition.

Example, age field with valid range 18–65:

  • Partition 1 (invalid low): < 18 → test with 17
  • Partition 2 (valid): 18–65 → test with 40
  • Partition 3 (invalid high): > 65 → test with 66

Boundary Value Analysis (BVA)

Test the edges of each partition, not just the middle. Applied on top of EP.

Example, same age field:

  • Test: 17, 18, 19, 64, 65, 66

Decision Tables

When behaviour depends on combinations of conditions:

Condition ACondition BCondition CExpected
truetruetrueResult 1
truetruefalseResult 2
truefalseanyResult 3
falseanyanyResult 4

Useful for complex validation rules, pricing engines, and permissions.

State Transition Testing

For workflows with distinct states (order: pending → processing → fulfilled → cancelled):

  • Test every valid transition
  • Test every invalid transition (what happens if you try to cancel a fulfilled order?)
  • Test boundary states (empty cart, max item count)

Automation Decision Table

CandidateAutomate?Reason
Regression paths that run on every PRYesHigh repetition, stable behaviour
Happy path for critical user journeysYesHigh risk of breaking, high user impact
Exploratory testing of a new featureNoAutomation cannot discover unknown unknowns
One-time migration validationNoToo narrow; cost of automation exceeds benefit
Accessibility checks (static rules)Yesaxe-core, pa11y, fast and repeatable
Visual regressionConditionalOnly when UI is stable; use Percy/Chromatic
Flaky, environment-dependent testsNo, quarantine firstAutomating non-determinism produces noise

Exploratory Testing (Session-Based Test Management)

Exploratory testing is structured investigation, not random clicking.

Session structure:

  1. Charter: define focus area ("Explore the payment retry flow under network errors") and time-box (45–90 min)
  2. Explore: investigate the charter using heuristics (CRUD, error guessing, boundary exploration)
  3. Debrief: document findings, anomalies, questions; classify by severity

Useful heuristics (SFDPO):

  • Structure: what is the system made of?
  • Function: what does it do?
  • Data: what data does it handle? What inputs break it?
  • Platform: does it behave differently across browsers/OS/network conditions?
  • Operations: what happens under load, during failures, during upgrades?

Defect Severity vs Priority

High PriorityLow Priority
High SeverityBlocker: P0, critical function broken, no workaround; blocks releaseP2, data corruption in edge case; fix before next release
Low SeverityP1, high-visibility cosmetic issue on login page; fix quicklyP3, minor cosmetic in rarely-used screen; backlog

Severity = impact on functionality (set by QA). Priority = urgency of fix (set by product/business context). A severity-1 bug in a rarely-used admin screen may be priority-3. A low-severity bug on the homepage may be priority-1.


Bug Report Format

Every bug report must include:

**Summary**: [One sentence describing the symptom]
**Environment**: [OS, browser, app version, test environment]
**Preconditions**: [Account state, data setup required]
**Steps to Reproduce**:
1. [Step]
2. [Step]
**Expected Result**: [What should happen]
**Actual Result**: [What actually happens]
**Severity**: [Critical / High / Medium / Low]
**Evidence**: [Screenshot, video, log snippet]

Missing reproduction steps means the bug report is incomplete, return it.


Test Quality Standards

  • Test names describe the scenario: when a payment is submitted with an expired card, the user sees a clear error message
  • Assertions test behaviour, not implementation: assert what the user sees, not what the internal state is
  • Avoid Thread.sleep() in async assertions, use polling or event-based assertions (waitFor, timeout)
  • Test isolation, each test resets state; never depend on test execution order
  • No flaky tests in main, quarantine flaky tests immediately; fix the root cause; never merge knowing a test is flaky

Non-Functional Testing

AreaTechniqueTools
Performance / LoadRamp load to expected peak; check p99 latency and error ratek6, Locust, JMeter
SecurityInput validation, auth bypass attempts, data exposure in responsesOWASP ZAP, Burp Suite
AccessibilityAutomated rule check + manual screen reader testaxe-core, NVDA, VoiceOver
CompatibilityCross-browser, cross-device smoke tests for critical pathsPlaywright (multi-browser), BrowserStack

Output Protocol

End every response with a confidence signal on its own line:

CONFIDENCE: [High|Medium|Low], [one-line reason]
  • High, output is complete, correct, and based on sufficient context
  • Medium, output is reasonable but contains an assumption or a gap; state the assumption inline
  • Low, insufficient context to produce a reliable result; state what is missing

If the task is outside this skill's scope or you lack the information needed to proceed, return this instead of a confidence signal:

BLOCKED: [reason], [what information would unblock this]

Do not guess or produce low-quality output to avoid returning BLOCKED. A precise BLOCKED is more useful than a low-confidence guess.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.