Loading...
Loading...
Test Case Generator - Based on the theories of Equivalence Partitioning and Boundary Value Analysis, generates high-quality test cases in batches by Test Points (POINT), output in Markdown format. Used when users execute the /testcase-gen command or need to generate test cases.
npx skill4agent add chyax98/twu testcase-generatortest-case/plan.mdclarified-requirements/index.mdCLAUDE.mdtest-case/{ITEM}/{POINT}.mdtest-case/all_cases.md/testcase-gentest-case/plan.mdPOINT: Username & Password Login
Input Items: Username, Password
Username Equivalence Classes:
Valid: [6-20 chars, letters numbers underscores] → "test_user123"
Invalid: [<6] "ab" | [>20] "verylongusername12345" | [special chars] "user@name" | [empty] ""
Password Equivalence Classes:
Valid: [8-20 chars, uppercase + lowercase + numbers] → "Test1234"
Invalid: [<8] "Test12" | [missing uppercase] "test1234" | [empty] ""
Generation Principle: Test one equivalence class at a time, keep others validUsername length 6-20 characters:
- Off-point (lower): 5 chars "abcde" → Fail
- On-point (lower): 6 chars "abcdef" → Pass
- Inner-point: 13 chars "test_user_123" → Pass
- On-point (upper): 20 chars "test_user_1234567890" → Pass
- Off-point (upper): 21 chars "test_user_12345678901" → Fail.md## [P1] Test Case Title
[Test Type] Function
[Preconditions] Precondition description
[Test Steps] 1. Step 1. 2. Step 2
[Expected Results] 1. Expected Result 1. 2. Expected Result 2
## [P3][Negative] Test Case Title
[Test Type] Function
[Preconditions] Precondition description
[Test Steps] 1. Step 1. 2. Step 2
[Expected Results] 1. Expected Result 1. 2. Expected Result 2Function
Compatibility
Usability
Performance
Stability
Security
Reliability
Effect (AI, Resource)
Effect (Hardware Device)
Maintainability
Portability
Buried Point[Test Steps] 1. Open login page. 2. Enter username test_user. 3. Enter password Test1234. 4. Click login button
[Expected Results] 1. Page displays normally. 2. Username input box shows content. 3. Password input box shows password. 4. Login succeeds, redirect to homepagetest-case/
├── plan.md
├── {ITEM}/
│ ├── {POINT1}.md
│ ├── {POINT2}.md
│ └── ...
└── all_cases.md{ITEM}/{POINT}.mdall_cases.md# ITEM Name## POINT Namecat test-case/plan.md
cat clarified-requirements/index.md
cat CLAUDE.md.claude/skills/testcase-generator/scripts/validate.py## [P1] Verify successful login with valid username and password
[Test Type] Function
[Preconditions] Registered user test_user with password Test1234
[Test Steps] 1. Enter username test_user, enter password Test1234, click login. 2. Verify redirect to homepage and display username
[Expected Results] 1. Login request succeeds. 2. Redirect to /home page, top displays 'Welcome, test_user'
## [P3][Negative] Verify login failure when username is empty
[Test Type] Function
[Preconditions] Enter login page
[Test Steps] 1. Do not enter username, enter password Test1234, click login. 2. Verify prompt 'Username cannot be empty'
[Expected Results] 1. Login request is rejected. 2. Stay on login page, red prompt 'Username cannot be empty' displays below username input box
## [P4] Verify password length boundary value (8 characters)
[Test Type] Function
[Preconditions] Registered user test_user with password Test1234
[Test Steps] 1. Enter username test_user, enter 8-character password Test1234, click login. 2. Verify login succeeds
[Expected Results] 1. Login request succeeds. 2. Redirect to /home page## [P1] Verify successful filtering with single condition
[Test Type] Function
[Preconditions] Ad account list page with 10 accounts
[Test Steps] 1. Select time "Last 7 Days", click query. 2. Verify return of eligible accounts
[Expected Results] 1. List refreshes. 2. Only accounts with data in last 7 days are displayed
## [P1] Verify successful filtering with multiple combined conditions
[Test Type] Function
[Preconditions] Same as above
[Test Steps] 1. Select time "Last 7 Days", enter name "test", select status "Normal", click query
[Expected Results] 1. List refreshes. 2. Only accounts meeting all 3 conditions are displayed
## [P3][Negative] Verify filtering failure when time range exceeds 365 days
[Test Type] Function
[Preconditions] Same as above
[Test Steps] 1. Select custom time, start date 2023-01-01, end date 2024-01-02, click query
[Expected Results] 1. Display prompt "Time range cannot exceed 365 days", list does not refresh
## [P3][Negative] Verify empty return when filtering with non-existent account name
[Test Type] Function
[Preconditions] Same as above
[Test Steps] 1. Enter non-existent account name "nonexistent123", click query
[Expected Results] 1. List refreshes. 2. Display "No data available"
## [P2] Verify filter condition clear function
[Test Type] Function
[Preconditions] Filter conditions have been applied
[Test Steps] 1. Click "Reset" button. 2. Verify all filter conditions are cleared, list returns to default
[Expected Results] 1. All filter options return to default values. 2. List displays all accounts
## [P4][Negative] Verify error prompt when end time is earlier than start time
[Test Type] Function
[Preconditions] Same as above
[Test Steps] 1. Select custom time, start date 2024-01-02, end date 2024-01-01, click query
[Expected Results] 1. Display prompt "End time cannot be earlier than start time"## [P1] Verify login success
[Test Type] Function
[Preconditions] User has registered
[Test Steps] 1. Enter username {username}, enter password {password}, click login
[Expected Results] 1. Login succeedsuv run .claude/skills/testcase-generator/scripts/validate.py \
--single "test-case/{Module}/{Test Point}.md"uv run .claude/skills/testcase-generator/scripts/validate.py "test-case/" --check-duplicatestest-case/plan.mdclarified-requirements/index.mdCLAUDE.md# Single file validation
uv run .claude/skills/testcase-generator/scripts/validate.py \
--single "test-case/{Module}/{Test Point}.md"
# Global validation
uv run .claude/skills/testcase-generator/scripts/validate.py "test-case/"
# Global validation + duplicate detection
uv run .claude/skills/testcase-generator/scripts/validate.py "test-case/" --check-duplicates
# Duplicate detection only
uv run .claude/skills/testcase-generator/scripts/validate.py "test-case/" --duplicates-only--check-equivalence--check-boundary--check-duplicates# Export from directory
uv run .claude/skills/testcase-generator/scripts/to_excel.py "test-case/" -o "test-case/export.xlsx"
# Export from single file
uv run .claude/skills/testcase-generator/scripts/to_excel.py "test-case/{Module}/{Test Point}.md" -o "output.xlsx"| Error | Handling Method |
|---|---|
| Single file validation failed | Retry 3 times, skip and record if still failed |
| Too many test cases (>15) | Prompt to check for redundant equivalence classes |
| Missing boundary cases | Warn and suggest supplement |
| Missing invalid equivalence classes | Warn and suggest supplement exception scenarios |
| Discontinuous step numbering | Report error and require correction |
| Test type not in enumeration | Report error and require correction |
| Mismatch between number of steps and expected results | Report error and require correction |
| Export failed | Check openpyxl dependency |
test-case/{ITEM}/{POINT}.mdtest-case/all_cases.md📊 Generation Statistics:
- Test Items: 8
- Test Points: 20
- Test Cases: 75
Coverage:
- Valid Equivalence Classes: 100% (at least 1 per POINT)
- Invalid Equivalence Classes: 80% (main exceptions covered)
- Boundary Values: 90% (all range-based inputs)
Case Distribution:
- P1 (Core Positive): 20 (27%)
- P2 (Basic Positive): 15 (20%)
- P3 (Core Exception): 25 (33%)
- P4 (Boundary Conditions): 12 (16%)
- P5 (Low-Frequency): 3 (4%)