From aims-toolkit
테스트 전략, 테스팅 계획, QA 전략, 품질 보증, 테스트 피라미드, 테스트 시나리오, 커버리지 목표 - Designs test strategies including test pyramid ratios, scenario categories, and coverage targets. Use when planning how to test a feature, designing QA approach, or creating test plans. Do NOT use for TDD implementation (use tdd-workflow) or E2E test execution (use e2e-runner).
npx claudepluginhub aimskr/aims-claude-toolkit --plugin aims-toolkitThis skill uses the workspace's default tool permissions.
Provides a systematic workflow for test strategy planning and quality assurance.
Produce a test strategy for a project or feature — risk map, test type decisions, coverage targets, CI config. Use when asked to "create test strategy", "what should we test", "testing plan", or "improve test coverage".
Designs test strategies and plans with testing pyramid. Covers APIs, frontend, data pipelines, infrastructure; outputs plans including coverage targets, examples, and gaps.
Provides QA strategies including risk-based testing, pyramid allocation, quality gates for pre-commit/merge/production, test categories, and planning templates for improving test coverage.
Share bugs, ideas, or general feedback.
Provides a systematic workflow for test strategy planning and quality assurance.
Before designing strategy, detect the project's test stack:
1. Check package.json → Jest/Vitest/Mocha/Playwright/Cypress
2. Check requirements.txt/pyproject.toml → pytest/unittest
3. Check build.gradle/pom.xml → JUnit/TestNG/Mockito
4. Check CI config (.github/workflows, Jenkinsfile) → existing test stages
5. Check existing test files → patterns already in use
Auto-select test tools based on detection:
| Stack | Unit | Integration | E2E |
|---|---|---|---|
| TypeScript/Node | Jest or Vitest | Supertest | Playwright |
| Python/FastAPI | pytest | pytest + httpx | Playwright |
| Java/Spring Boot | JUnit 5 | Spring Boot Test | Selenium/Playwright |
| React/Next.js | Vitest + RTL | MSW | Playwright/Cypress |
If no test infrastructure exists, recommend setup based on detected stack before proceeding to strategy design.
Current State Assessment:
tests/, __tests__/, *.spec.*)Scope Definition:
Ratio Guide:
┌─────────────────────────────────────┐
│ E2E (5-10%) │
│ - Critical User Journeys only │
│ - Execution: Slow │
│ - Maintenance: Difficult │
├─────────────────────────────────────┤
│ Integration (15-25%) │
│ - API boundaries, DB integration │
│ - Module interactions │
├─────────────────────────────────────┤
│ Unit (70-80%) │
│ - Pure functions, business logic │
│ - Fast feedback │
│ - Isolated tests │
└─────────────────────────────────────┘
Scenario Categories:
| Type | Description | Example |
|---|---|---|
| Happy Path | Normal flow | Valid input → Success |
| Edge Cases | Boundary conditions | Empty array, max value, null |
| Error Cases | Error handling | Invalid input, network error |
| Security | Security scenarios | Unauthenticated access, permission overflow |
Boundary Value Analysis (BVA):
Input range: 1-100
Test values:
- 0 (lower -1) → Error
- 1 (lower bound) → Success
- 50 (middle) → Success
- 100 (upper bound) → Success
- 101 (upper +1) → Error
AAA Pattern:
def test_feature_condition_expectedResult():
# Arrange - Setup
user = User(name="test")
# Act - Execute
result = user.greet()
# Assert - Verify
assert result == "Hello, test"
FIRST Principles:
Coverage Targets:
Target Setting Guide:
- Line Coverage: 80%+ (minimum baseline)
- Branch Coverage: 75%+ (conditional verification)
- Function Coverage: 90%+ (prevent function omission)
Note: Coverage is a means, not an end
High coverage ≠ Good tests
Flaky Test Handling:
# Test Strategy: [Feature Name]
## Test Scope
- **In Scope:**
- **Out of Scope:**
## Test Pyramid
| Type | Ratio | Target | Tools |
|------|-------|--------|-------|
| Unit | 70% | Business logic | Jest/Pytest/JUnit |
| Integration | 20% | API, DB | Supertest/pytest |
| E2E | 10% | Critical flows | Playwright/Cypress |
## Test Scenarios
### Normal Cases
| ID | Scenario | Input | Expected Result |
|----|----------|-------|-----------------|
### Exception Cases
| ID | Scenario | Input | Expected Result |
|----|----------|-------|-----------------|
## Coverage Targets
- Line: 80%
- Branch: 75%
## Test Environment
- Local: Docker Compose
- CI: GitHub Actions
테스트 전략 문서가 생성되고 사용자가 승인하면 완료.
Coverage is high but bugs still slip through: Coverage measures lines executed, not behavior verified. Audit assertions — tests with no meaningful assertions inflate coverage without catching bugs. Test pyramid ratio is wrong (too many E2E): Identify E2E tests that test only one module’s logic and convert to unit/integration tests. Reserve E2E for cross-module critical paths only. Flaky tests blocking CI: Quarantine flaky tests immediately (move to separate suite). Fix root cause (timing, order dependency, external state) before restoring to main suite.