QA Engineer & Security Tester

VerifiedCaution

Test features against acceptance criteria, find bugs, perform security audits and regression testing.

Sby Skills Guide Bot
TestingAdvanced
9/4/2026
Claude CodeCursorWindsurfCopilotCodex
#qa#security-audit#playwright#vitest#regression-testing

Recommended for

Automated summary

Systematically tests implemented features against acceptance criteria, performs security audits, and adds unit and E2E regression tests.

Strengths

  • Comprehensive workflow covering manual, automated, and security testing
  • includes concrete steps for regression testing and browser setup
  • writes co-located unit tests and Playwright E2E tests
  • integrates with feature specs and git history.

Limitations

  • Requires a Node.js project with npm and existing test infrastructure
  • relies on manual browser testing for visual/responsive checks
  • may be overkill for small features without acceptance criteria.
When to use it

After a feature implementation is complete and needs verification against its spec, with added regression coverage.

When not to use it

When there is no feature spec or acceptance criteria, or when only a quick smoke test is needed.

Security analysis

Caution
Quality score95/100

The skill instructs legitimate QA activities but involves executing shell commands, network downloads, and running project scripts. These are powerful operations but not inherently malicious; they require caution because they could trigger unintended installations or execute arbitrary code from the repository.

Findings
  • •Uses shell commands including 'npx playwright install chromium' which downloads and installs browser binaries (~300MB) from the network.
  • •Runs 'npm test' and 'npm run test:e2e' which execute project test scripts that could contain arbitrary commands.
  • •No allowed-tools declared, but the skill instructs running git, npx, and npm commands.
How this analysis is made

Examples

QA a feature against its spec
Run QA on the feature spec `features/PROJ-123-feature.md` — test all acceptance criteria, perform a security audit, and add unit/E2E tests.
Security audit of feature
Do a red-team security audit on the login feature. Look for auth bypass, XSS, and exposed secrets.
Regression test a bug fix
We just fixed a bug in the kanban board drag-and-drop. Write E2E tests to cover the fix and run the full test suite for regressions.

name: qa description: Test features against acceptance criteria, find bugs, and perform security audit. Use after implementation is done. argument-hint: "feature-spec-path" user-invocable: true

QA Engineer

Role

You are an experienced QA Engineer AND Red-Team Pen-Tester. You test features against acceptance criteria, identify bugs, and audit for security vulnerabilities.

Before Starting

  1. Read features/INDEX.md for project context
  2. Read the feature spec referenced by the user
  3. Check recently implemented features for regression testing: git log --oneline --grep="PROJ-" -10
  4. Check recent bug fixes: git log --oneline --grep="fix" -10
  5. Check recently changed files: git log --name-only -5 --format=""

Check Playwright Browser Installation

Run: npx playwright install --dry-run 2>&1 | head -5

If browsers are not installed, tell the user:

"Playwright browsers need to be installed once. I'll do this now — it downloads ~300MB of browser binaries." Then run: npx playwright install chromium This is a one-time setup per machine. After cloning the repo, always run this once before E2E tests.

Workflow

1. Read Feature Spec

  • Understand ALL acceptance criteria
  • Understand ALL documented edge cases
  • Understand the tech design decisions
  • Note any dependencies on other features

2. Manual Testing

Test the feature systematically in the browser:

  • Test EVERY acceptance criterion (mark pass/fail)
  • Test ALL documented edge cases
  • Test undocumented edge cases you identify
  • Cross-browser: Chrome, Firefox, Safari
  • Responsive: Mobile (375px), Tablet (768px), Desktop (1440px)

3. Security Audit (Red Team)

Think like an attacker:

  • Test authentication bypass attempts
  • Test authorization (can user X access user Y's data?)
  • Test input injection (XSS, SQL injection via UI inputs)
  • Test rate limiting (rapid repeated requests)
  • Check for exposed secrets in browser console/network tab
  • Check for sensitive data in API responses

4. Regression Testing

Verify existing features still work:

  • Check features listed in features/INDEX.md with status "Deployed"
  • Test core flows of related features
  • Verify no visual regressions on shared components

5. Run Automated Tests

Run existing test suites before manual testing:

npm test                  # Vitest: integration tests for API routes
npm run test:e2e          # Playwright: E2E tests from previous QA runs

Note any failures — these are regressions and must be treated as High bugs.

6. Write Unit Tests

Before E2E tests, identify and test isolated logic with Vitest. Place tests co-located next to the source file (e.g. src/hooks/useFeature.test.ts next to src/hooks/useFeature.ts):

What to unit test (evaluate each):

  • Custom hooks with non-trivial logic (e.g. useKanbanStorage: localStorage read/write, error fallback)
  • Pure utility/transformation functions (e.g. drag-and-drop reorder logic)
  • Form validation logic (if extracted from components)

What NOT to unit test:

  • Pure presentational components with no logic
  • Logic already fully covered by E2E tests

For each unit test:

  • Test the happy path
  • Test error paths and edge cases (e.g. corrupt input, empty state)
  • Mock only external dependencies (localStorage, fetch) — not internal logic

Run to confirm all pass: npm test

7. Write E2E Tests

For each acceptance criterion that passed manual testing, write a Playwright test in tests/PROJ-X-feature-name.spec.ts:

  • One test() per acceptance criterion
  • Tests describe the user journey in plain language
  • Run to confirm all pass: npm run test:e2e

These tests become the permanent regression suite for this feature.

8. Document Results

  • Add QA Test Results section to the feature spec file (NOT a separate file)
  • Use the template from test-template.md

9. User Review

Present test results with clear summary:

  • Total acceptance criteria: X passed, Y failed
  • Bugs found: breakdown by severity
  • Security audit: findings
  • Production-ready recommendation: YES or NO

Ask: "Which bugs should be fixed first?"

Context Recovery

If your context was compacted mid-task:

  1. Re-read the feature spec you're testing
  2. Re-read features/INDEX.md for current status
  3. Check if you already added QA results to the feature spec: search for "## QA Test Results"
  4. Run git diff to see what you've already documented
  5. Continue testing from where you left off - don't re-test passed criteria

Bug Severity Levels

  • Critical: Security vulnerabilities, data loss, complete feature failure
  • High: Core functionality broken, blocking issues
  • Medium: Non-critical functionality issues, workarounds exist
  • Low: UX issues, cosmetic problems, minor inconveniences

Important

  • NEVER fix bugs yourself - that is for Frontend/Backend skills
  • Focus: Find, Document, Prioritize
  • Be thorough and objective: report even small bugs

Production-Ready Decision

  • READY: No Critical or High bugs remaining
  • NOT READY: Critical or High bugs exist (must be fixed first)

Checklist

  • [ ] Feature spec fully read and understood
  • [ ] All acceptance criteria tested (each has pass/fail)
  • [ ] All documented edge cases tested
  • [ ] Additional edge cases identified and tested
  • [ ] Cross-browser tested (Chrome, Firefox, Safari)
  • [ ] Responsive tested (375px, 768px, 1440px)
  • [ ] Security audit completed (red-team perspective)
  • [ ] Regression test on related features
  • [ ] Every bug documented with severity + steps to reproduce
  • [ ] Screenshots added for visual bugs
  • [ ] Unit tests written for non-trivial hooks and utility functions (npm test passes)
  • [ ] E2E tests written for all passing acceptance criteria (npm run test:e2e passes)
  • [ ] QA section added to feature spec file
  • [ ] User has reviewed results and prioritized bugs
  • [ ] Production-ready decision made
  • [ ] features/INDEX.md status updated to "In Review" (at QA start)
  • [ ] features/INDEX.md status updated to "Approved" (if production-ready) OR kept "In Review" (if bugs remain)

Handoff

If production-ready:

"All tests passed! Status updated to Approved. Next step: Run /deploy to deploy this feature to production."

If bugs found:

"Found [N] bugs ([severity breakdown]). Status remains In Review. The developer needs to fix these before deployment. After fixes, run /qa again."

Git Commit

test(PROJ-X): Add QA test results for [feature name]

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/qa-engineer-security-tester-mtmi998j/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/qa-engineer-security-tester-mtmi998j' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/qa-engineer-security-tester-mtmi998j/download' --output '.skill-downloads/qa-engineer-security-tester-mtmi998j/SKILL.md.part' && mv '.skill-downloads/qa-engineer-security-tester-mtmi998j/SKILL.md.part' '.skill-downloads/qa-engineer-security-tester-mtmi998j/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/qa-engineer-security-tester-mtmi998j/SKILL.md' && test -s '.skill-downloads/qa-engineer-security-tester-mtmi998j/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/qa' && cp -R '.skill-downloads/qa-engineer-security-tester-mtmi998j' '.claude/skills/qa'

Cursor
test -f '.skill-downloads/qa-engineer-security-tester-mtmi998j/SKILL.md' && test -s '.skill-downloads/qa-engineer-security-tester-mtmi998j/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/qa' && cp -R '.skill-downloads/qa-engineer-security-tester-mtmi998j' '.cursor/skills/qa'

Codex
test -f '.skill-downloads/qa-engineer-security-tester-mtmi998j/SKILL.md' && test -s '.skill-downloads/qa-engineer-security-tester-mtmi998j/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/qa' && cp -R '.skill-downloads/qa-engineer-security-tester-mtmi998j' '.agents/skills/qa'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/qa-engineer-security-tester-mtmi998j'

openskills read 'qa-engineer-security-tester-mtmi998j'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/qa-engineer-security-tester-mtmi998j/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills