ワンクリックで
test-planning
Identifies comprehensive test cases, regression scenarios, and edge cases to ensure thorough test coverage and prevent bugs.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Identifies comprehensive test cases, regression scenarios, and edge cases to ensure thorough test coverage and prevent bugs.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Communicate efficiently without sacrificing clarity - natural, concise, actionable. Global skill loaded for every command and agent.
Use when reviewing or building UI components - ensures keyboard, screen-reader, and visual accessibility (WCAG 2.1 AA) so a11y is built in, not retrofitted.
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
Manages context caching to optimize token usage and cost by creating, incrementally updating, and invalidating caches while verifying integrity before reuse.
Clean code and engineering discipline: modularity, readability, sizing, naming, duplication, separation of concerns, plus the four behavioral principles - think before coding, simplicity first, surgical changes, and goal-driven execution. Global skill applied to all coding work.
Detects and resolves drift between code, documentation, and contextual knowledge, classifying each drift and recommending concrete sync actions to keep artifacts consistent.
| name | test-planning |
| description | Identifies comprehensive test cases, regression scenarios, and edge cases to ensure thorough test coverage and prevent bugs. |
Design comprehensive test strategies by identifying test cases, regression scenarios, and edge cases before implementation.
Ensure thorough testing by:
This skill is automatically selected by the orchestrator when:
Analyze what needs testing:
Determine positive (happy path) test cases:
Find boundary conditions and unusual scenarios:
Test error handling and invalid inputs:
Ensure existing functionality stays working:
Structure tests for clarity and maintenance:
Test Cases:
🧪 Unit Tests (Component Level)
formatUserName(user):
✓ Should format first and last name with space
✓ Should handle user with only first name
✓ Should handle user with middle name
✓ Should return empty string for null/undefined
✓ Should trim whitespace from names
validateEmail(email):
✓ Should accept valid email formats
✓ Should reject email without @
✓ Should reject email without domain
✓ Should reject email with spaces
✓ Should handle email with subdomains
✓ Should reject empty string
Integration Tests:
🔗 Integration Tests (Module Interaction)
User Registration Flow:
✓ Should create user with valid data
✓ Should hash password before storage
✓ Should send welcome email
✓ Should reject duplicate email
✓ Should validate email format
✓ Should enforce password requirements
✓ Should log registration event
API Authentication:
✓ Should accept valid JWT token
✓ Should reject expired token
✓ Should reject invalid signature
✓ Should refresh token before expiry
✓ Should handle missing token
E2E Tests:
🚀 End-to-End Tests (User Workflows)
Complete Registration Journey:
✓ User navigates to signup page
✓ User fills registration form
✓ User submits form
✓ System validates and creates account
✓ User receives welcome email
✓ User can log in with new credentials
✓ User sees onboarding dashboard
Purchase Flow:
✓ User browses products
✓ User adds items to cart
✓ User proceeds to checkout
✓ User enters payment information
✓ Payment processed successfully
✓ Order confirmation displayed
✓ Confirmation email sent
Edge Cases:
🎯 Edge Cases and Boundary Conditions
Input Boundaries:
✓ Empty string input
✓ Very long input (10,000 characters)
✓ Unicode and special characters
✓ SQL injection attempts in input
✓ XSS attempts in input
Data Boundaries:
✓ Zero items in list
✓ One item in list
✓ Maximum items (10,000)
✓ Pagination at boundaries
✓ Sorting with duplicate values
State Boundaries:
✓ First user registration (empty database)
✓ Concurrent user registrations
✓ Registration during database migration
✓ Registration when email service down
Time-Based Edge Cases:
✓ Token expires during request
✓ User session expires mid-action
✓ Midnight boundary (date changes)
✓ Daylight saving time transitions
Error Scenarios:
❌ Error Handling Tests
Network Failures:
✓ API timeout
✓ API returns 500 error
✓ Network disconnected mid-request
✓ Slow network (performance degradation)
Database Failures:
✓ Database connection lost
✓ Query timeout
✓ Unique constraint violation
✓ Foreign key constraint violation
Validation Failures:
✓ Invalid email format
✓ Password too short
✓ Required field missing
✓ Data type mismatch
Authorization Failures:
✓ No authentication token
✓ Invalid authentication token
✓ Insufficient permissions
✓ Accessing other user's resources
Regression Tests:
🔄 Regression Test Suite
Areas Affected by Changes:
✓ User login still works
✓ Password reset still works
✓ User profile update still works
✓ Email sending still works
✓ Admin user management still works
Critical Paths:
✓ Purchase flow end-to-end
✓ User onboarding flow
✓ Payment processing
✓ Data export functionality
Test Data Requirements:
📊 Test Data Setup
Users:
- Valid user (standard case)
- Admin user (elevated permissions)
- User with no data (edge case)
- User with maximum data (boundary)
- Suspended user (error case)
Products:
- In-stock product
- Out-of-stock product
- Discontinued product
- Product with special characters in name
- Product at price boundaries ($0, $999,999)
Orders:
- Completed order
- Pending order
- Cancelled order
- Refunded order
- Partially shipped order
🔴 Critical (Must Test):
🟡 Important (Should Test):
🟢 Nice to Have (Can Test):
Test Pyramid:
/\
/E2E\ Few comprehensive end-to-end tests
/------\
/Integr.\ More integration tests
/----------\
/ Unit \ Many fast unit tests
/--------------\
Coverage Goals:
Risk-Based Testing: Focus on:
Given-When-Then:
Given a registered user
When the user attempts to log in with correct credentials
Then the user should be authenticated and redirected to dashboard
Arrange-Act-Assert:
test('should format user name correctly', () => {
// Arrange
const user = { firstName: 'John', lastName: 'Doe' };
// Act
const result = formatUserName(user);
// Assert
expect(result).toBe('John Doe');
});
Input/Output Tables:
Input | Expected Output
--------------------|------------------
"test@example.com" | true
"invalid" | false
"test@" | false
"" | false
null | false
Before finalizing test plan:
Feature: User password reset
Requirements:
Test Cases:
🧪 Unit Tests:
generateResetToken():
✓ Should generate unique token
✓ Should set expiration to 1 hour from now
✓ Should hash token before storage
validateResetToken():
✓ Should accept valid, non-expired token
✓ Should reject expired token
✓ Should reject invalid token
✓ Should reject already-used token
isPasswordReused():
✓ Should reject if password in last 5
✓ Should accept if password not in history
✓ Should handle user with <5 passwords
🔗 Integration Tests:
Password Reset Flow:
✓ Request → generate token → send email
✓ Click link → validate token → show form
✓ Submit new password → validate → update
✓ Email confirmation sent after reset
🚀 E2E Tests:
Complete Password Reset Journey:
✓ User clicks "Forgot Password"
✓ User enters email
✓ User receives reset email
✓ User clicks link in email
✓ User sets new password
✓ User can log in with new password
✓ Old password no longer works
🎯 Edge Cases:
✓ Multiple reset requests → only latest token valid
✓ Token used after expiration → rejected
✓ Invalid email address → graceful handling
✓ Reset for non-existent user → no info disclosure
✓ Password reset during active session
❌ Error Scenarios:
✓ Email service down → graceful error, retry
✓ Database error during token generation
✓ Network timeout on reset link click
✓ Token tampered with → rejected
🔄 Regression:
✓ Normal login still works
✓ Account lockout still works
✓ Session management unaffected
✓ Password validation rules still enforced
Test Data:
Priority: