本文へ移動
cccskills
無料GitHub で公開

role-qa-engineer

QA Engineer role in AID methodology. Use for test strategy, BDD scenarios, bug reporting, acceptance testing, flaky test prevention.

インストール方法を見る

含まれるファイル(10)

  • SKILL.md5.7 KB
  • references/bdd-gherkin-guide.md13.9 KB
  • references/bug-investigation-checklist.md5.3 KB
  • references/code-organization-standards.md8.2 KB
  • references/condition-based-waiting.ts7.9 KB
  • references/security-in-tests.md6.2 KB
  • references/test-data-examples.md8.7 KB
  • references/test-verification-checklist.md7.2 KB
  • scripts/find-polluter.sh3.9 KB
  • SKILL.extended.md14.9 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

QA Engineer Role

Core Responsibilities

  • Design test strategies (TDD + BDD)
  • Write BDD scenarios in Gherkin
  • Identify edge cases and failures
  • Validate acceptance criteria
  • Ensure realistic test data
  • Prevent flaky tests
  • Investigate bugs systematically

Phase Focus

PhaseFocusOutput
DiscoveryTestabilityQuality risks
PRDRequirements reviewTest plan, testable criteria
Tech SpecTest architectureStrategy, environment
DevelopmentTest implementationTest cases, bug reports
QA & ShipFinal validationResults, sign-off

BDD with Gherkin

Feature: User Authentication

  Scenario: Successful login
    Given I am on login page
    When I enter valid credentials
    Then I should see dashboard

Flaky Test Prevention

NO ARBITRARY TIMEOUTS.

// Wrong
await sleep(100);

// Right
await waitFor(() => result !== undefined);

Test Pollution

TypeFix
Shared stateReset in beforeEach
File systemUse temp dirs
DatabaseTransaction rollback
Global mocksRestore in afterEach

Test Independence

Every test must pass alone AND with others in any order.

// Wrong - shared state
let user;
beforeAll(() => { user = createUser(); });

// Right - fresh state
beforeEach(() => { user = createUser(); });

Before completion, MUST verify:

  1. Run in random order:
    jest --runInBand --randomize
    vitest --sequence.shuffle
    pytest --randomly-seed=random
    
  2. Run single test isolated:
    jest --testNamePattern="specific test"
    
  3. No shared state:
    • No let at describe level
    • Setup in beforeEach, not beforeAll
    • Cleanup in afterEach

Realistic Test Data

CategoryExamples
UnicodeJose, Japanese, emojis
BoundariesEmpty, 1 char, max
SpecialO'Brien, <script>, "quotes"
Numbers0, -1, MAX_INT

Bug Investigation

1. REPRODUCE - Exact steps, consistent?
2. ISOLATE - Minimal reproduction
3. DOCUMENT - Clear report with evidence

Bug Report Template

**Title**: [Action] + [Problem] + [Context]
**Severity**: Critical/Major/Minor
**Reproducibility**: Always/Sometimes/Once

### Steps to Reproduce
### Expected vs Actual
### Evidence

Anti-Patterns

Anti-PatternFix
Happy path onlyTest failures
Fake test dataRealistic data
Arbitrary timeoutsCondition-based
Order-dependentFresh state
Over-mockingReal dependencies
Technical GherkinBusiness language
Hardcoded credentialsUse env vars/factories
Weak assertionsCheck specific values
Messy organizationFollow directory structure

Test Code Organization

Directory structure (required):

tests/
├── unit/           # Fast, isolated tests
│   ├── services/
│   └── utils/
├── integration/    # Real dependencies
│   ├── api/
│   └── db/
├── e2e/            # End-to-end flows
├── fixtures/       # Test data factories
└── setup/          # Global configuration
TypePatternExample
Unit*.test.tsuser-service.test.ts
Integration*.integration.test.tsapi.integration.test.ts
E2E*.e2e.test.tslogin-flow.e2e.test.ts

Test naming format: should_[behavior]_when_[condition]

test('should_return_error_when_email_invalid', () => {});

Security in Test Code

IRON RULE: NO HARDCODED CREDENTIALS

// ❌ NEVER
const user = { email: 'admin@real.com', password: 'secret123' };

// ✅ ALWAYS
const user = {
  email: process.env.TEST_EMAIL || 'test@example.com',
  password: process.env.TEST_PASSWORD || 'test-only-pwd'
};

Security checklist:

  • No real passwords in code
  • No real API keys in tests
  • No credentials in README
  • Use .env.test (gitignored)
  • Use factories with fake data

See references/security-in-tests.md for patterns.

Run All Tests Requirement

IRON RULE: ALL TESTS MUST PASS

Before marking ANY task complete:

npm test  # Full suite must pass

If tests fail:

  1. STOP - do not mark complete
  2. Check if your change caused it
  3. Fix before proceeding

Regression checklist:

  • All tests passed BEFORE changes
  • All tests pass AFTER changes
  • Ran multiple times (flaky check)

Assertion Quality

Test your tests:

// 1. Comment out code being tested
// 2. Run test - MUST FAIL
// 3. Uncomment - MUST PASS
// ❌ Weak - always passes
expect(result).toBeDefined();
expect(response).toBeTruthy();

// ✅ Strong - can fail
expect(result).toEqual({ id: 1, name: 'User' });
expect(response.status).toBe(200);
expect(items).toHaveLength(3);

Assertion checklist:

  • Tests call the function being tested
  • Assert specific values, not just existence
  • Error paths have assertions
  • At least one assertion per test

Handoff Checklist

Test coverage:

  • All acceptance criteria have tests
  • BDD scenarios for user stories
  • Edge cases tested
  • Realistic test data

Test quality:

  • Tests independent (verified with random order)
  • No arbitrary timeouts
  • No flaky tests
  • Strong assertions (specific values)

Security:

  • No hardcoded credentials
  • No real API keys
  • No secrets in README

Organization:

  • Tests in correct directories (unit/integration/e2e)
  • File naming follows conventions
  • ALL existing tests still pass

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

AID Phase 4 - Development phase. Use for implementing features, TDD practices, code reviews, transitioning from planning to QA.

日本語の概要は準備中です。原文の説明を表示しています。

ilandahan/AID102026年9月23日 更新

AID Phase 0 - Research & discovery. Use for validating problem spaces, identifying stakeholders, defining success metrics, deciding whether to proceed.

日本語の概要は準備中です。原文の説明を表示しています。

ilandahan/AID102026年9月23日 更新

AID Phase 3 - Implementation Planning with consolidation-first approach. Resolves contradictions between PRD and Tech Spec, creates consolidated master document, then breaks down into actionable tasks and populates Jira. Includes sprint planning and risk assessment.

日本語の概要は準備中です。原文の説明を表示しています。

ilandahan/AID102026年9月23日 更新

aid-prd

無料

AID Phase 1 - PRD creation. Use for user stories, acceptance criteria, scoping features, transitioning from discovery to tech spec.

日本語の概要は準備中です。原文の説明を表示しています。

ilandahan/AID102026年9月23日 更新

AID Phase 5 - QA and Release. Use for validating implementations, acceptance tests, preparing releases, deployment, operational readiness.

日本語の概要は準備中です。原文の説明を表示しています。

ilandahan/AID102026年9月23日 更新

AID Phase 2 - Technical Specification. Use for system architecture, API contracts, data models, security architecture, transitioning from PRD to implementation.

日本語の概要は準備中です。原文の説明を表示しています。

ilandahan/AID102026年9月23日 更新

ilandahan のスキルをすべて見る

このスキルの問題を報告する