testcase-generator
npx skills add https://github.com/chyax98/twu --skill testcase-generator
Agent 安装分布
Skill 文档
æµè¯ç¨ä¾çæå¨(testcase-generator)
1. ç®æ
æ ¹æ®æµè¯ç¹çæç»æåæµè¯ç¨ä¾ï¼è¦çæ£åãååãè¾¹çåºæ¯ã
2. è¾å ¥è¾åº
- è¾å
¥ï¼
test-case/plan.mdãclarified-requirements/index.mdãCLAUDE.md - è¾åºï¼
test-case/{ITEM}/{POINT}.mdãtest-case/all_cases.md
3. æ ¸å¿åå
- çç¥æå¯¼ï¼æä¾å¤ææ åï¼èéå¼ºå¶æ°é
- åºæ¯é©±å¨ï¼åºäºå®é åºæ¯å¤æåº¦çæç¨ä¾
- æ°æ®å ·ä½ï¼æµè¯æ°æ®å¿ é¡»å ·ä½ï¼ä¸ç¨å ä½ç¬¦
- å¯éªè¯æ§ï¼é¢æç»æå¿ é¡»æç¡®å¯éªè¯
è§¦åæ¡ä»¶
- ç¨æ·æ§è¡
/testcase-genå½ä»¤ test-case/plan.mdåå¨
4. æ ¸å¿ç论
4.1 çä»·ç±»ååæ³
å°è¾å ¥æ°æ®åå为è¥å¹²çä»·ç±»,仿¯ç±»ä¸éåä»£è¡¨æ§æ°æ®æµè¯ã
åºç¨ç¤ºä¾:
POINT: ç¨æ·åå¯ç ç»å½
è¾å
¥é¡¹: ç¨æ·åãå¯ç
ç¨æ·åçä»·ç±»:
ææ: [6-20å符,忝æ°åä¸å线] â "test_user123"
æ æ: [<6] "ab" | [>20] "verylongusername12345" | [ç¹æ®å符] "user@name" | [空] ""
å¯ç çä»·ç±»:
ææ: [8-20å符,å«å¤§å°å+æ°å] â "Test1234"
æ æ: [<8] "Test12" | [缺大å] "test1234" | [空] ""
çæåå: 䏿¬¡æµè¯ä¸ä¸ªçä»·ç±»,å
¶ä»ä¿æææ
4.2 è¾¹çå¼åææ³
è¾¹çæ¯æå®¹æåºéçå°æ¹ã
è¾¹çä¸ç¹æ³: 离ç¹(min-1) | ä¸ç¹(min) | å ç¹(ä¸é´å¼) | ä¸ç¹(max) | 离ç¹(max+1)
åºç¨ç¤ºä¾:
ç¨æ·åé¿åº¦ 6-20 å符:
- 离ç¹-ä¸: 5å符 "abcde" â 失败
- ä¸ç¹-ä¸: 6å符 "abcdef" â æå
- å
ç¹: 13å符 "test_user_123" â æå
- ä¸ç¹-ä¸: 20å符 "test_user_1234567890" â æå
- 离ç¹-ä¸: 21å符 "test_user_12345678901" â 失败
4.3 ç¨ä¾æ°é夿
ä¸å¼ºå¶æ°éï¼æ ¹æ®åºæ¯å¤æåº¦èªéåºè°æ´ã
夿æ åï¼
- è¾å ¥é¡¹æ°éï¼è¾å ¥é¡¹è¶å¤ï¼ç¨ä¾è¶å¤
- ä¸å¡è§åå¤æåº¦ï¼è§åè¶å¤æï¼ç¨ä¾è¶å¤
- é£é©ç级ï¼Critical å High éè¦æ´å¤ç¨ä¾
- æµè¯å ³æ³¨ç¹ï¼å ³æ³¨ç¹è¶å¤ï¼ç¨ä¾è¶å¤
5. ç¨ä¾æ ¼å¼è§è
5.1 Markdownææ¬åè®®æ ¼å¼ (v0.2)
æ¯ä¸ªæµè¯ç¹çæä¸ä¸ª .md æä»¶,æ ¼å¼å¦ä¸:
## [P1] ç¨ä¾æ é¢
[æµè¯ç±»å] åè½
[åç½®æ¡ä»¶] åç½®æ¡ä»¶æè¿°
[æµè¯æ¥éª¤] 1. æ¥éª¤1ã2. æ¥éª¤2
[é¢æç»æ] 1. 颿1ã2. 颿2
## [P3][åå] ç¨ä¾æ é¢
[æµè¯ç±»å] åè½
[åç½®æ¡ä»¶] åç½®æ¡ä»¶æè¿°
[æµè¯æ¥éª¤] 1. æ¥éª¤1ã2. æ¥éª¤2
[é¢æç»æ] 1. 颿1ã2. 颿2
5.2 åæ®µè¯´æ
- ä¼å
级ï¼P1-P5ï¼å¿
å¡«ï¼
- P1: æ ¸å¿åè½æ£åæµç¨
- P2: åºæ¬åè½æ£åæµç¨
- P3: æ ¸å¿åè½å¼å¸¸åºæ¯
- P4: è¾¹çæ¡ä»¶
- P5: ä½é¢åºæ¯
- [åå]ï¼ååç¨ä¾æ è®°ï¼å¯éï¼
- æµè¯ç±»åï¼åè½ãæ¥å£ãæ§è½ãå®å ¨ãå ¼å®¹ãæç¨ãå®è£ é¨ç½²ãå¯é ãæ¬å°åãå¯ç»´æ¤ã坿©å±ãé ç½®ï¼12é1ï¼
- åç½®æ¡ä»¶ï¼æµè¯åçåå¤å·¥ä½
- æµè¯æ¥éª¤ï¼æä½æ¥éª¤ï¼ç¨å¥å·åé
- é¢æç»æï¼ææçç»æï¼ä¸æ¥éª¤ä¸ä¸å¯¹åº
5.3 æµè¯ç±»åæä¸¾(12ç§)
åè½
å
¼å®¹æ§
æç¨æ§
æ§è½
ç¨³å®æ§
å®å
¨æ§
å¯é æ§
ææ(AIç±»ãèµæºç±»)
ææ(硬件å¨ä»¶ç±»)
å¯ç»´æ¤æ§
å¯ç§»æ¤æ§
åç¹
注æ:
- ä¸è½å”åè½æµè¯”,å¿ é¡»æ¯”åè½”
- æ¬å·å¿ é¡»æ¯ä¸ææ¬å·
- 大å°åææ
5.4 æ¥éª¤æ ¼å¼è§è
æ¨èæ ¼å¼: 使ç¨ä¸æå¥å·åé,ç¼å·è¿ç»
[æµè¯æ¥éª¤] 1. æå¼ç»å½é¡µé¢ã2. è¾å
¥ç¨æ·åtest_userã3. è¾å
¥å¯ç Test1234ã4. ç¹å»ç»å½æé®
[é¢æç»æ] 1. 页颿£å¸¸æ¾ç¤ºã2. ç¨æ·åè¾å
¥æ¡æ¾ç¤ºå
容ã3. å¯ç è¾å
¥æ¡æ¾ç¤ºå¯ç ã4. ç»å½æå,跳转å°é¦é¡µ
éè¦: ç¼å·å¿ é¡»ä»1å¼å§,è¿ç»éå¢;æµè¯æ¥éª¤åé¢æç»æçç¼å·æ°éå¿ é¡»ä¸è´ã
5.5 æµè¯æ°æ®è¦æ±
å¿ é¡»å ·ä½ï¼ä¸ç¨å ä½ç¬¦ï¼
æ£ç¡®ç¤ºä¾ï¼
- ç¨æ·åï¼test_user
- å¯ç ï¼Test1234
- ææºå·ï¼13800138000
- éé¢ï¼99.99
é误示ä¾ï¼
- ç¨æ·åï¼{valid_username}
- å¯ç ï¼{password}
- ææºå·ï¼{phone}
- éé¢ï¼{amount}
5.6 é¢æç»æè¦æ±
å¿ é¡»æç¡®å¯éªè¯ï¼
æ£ç¡®ç¤ºä¾ï¼
- è·³è½¬å° /home 页é¢ï¼é¡¶é¨æ¾ç¤º”欢è¿ï¼test_user”
- æç¤º”å¯ç é¿åº¦ä¸è¶³ï¼è¯·è¾å ¥8-20ä½å¯ç ”
- 订åç¶æå为”å·²æ¯ä»”ï¼åºååå°1
é误示ä¾ï¼
- ç»å½æå
- æç¤ºé误信æ¯
- ç³»ç»æ£å¸¸å¤ç
5.7 ç®å½ç»æ
test-case/
âââ plan.md
âââ {ITEM}/
â âââ {POINT1}.md
â âââ {POINT2}.md
â âââ ...
âââ all_cases.md
5.8 åå¹¶è§å
å°ææ {ITEM}/{POINT}.md åå¹¶å° all_cases.mdï¼
- æ ITEM åç»
- æ¯ä¸ª ITEM 䏿 POINT æåº
- æ·»å åéæ è®°ï¼
# ITEM åç§°å## POINT åç§°
6. ç¨ä¾çææµç¨
Step 1: åå¤ä¸ä¸æ
cat test-case/plan.md
cat clarified-requirements/index.md
cat CLAUDE.md
Step 2: çè§£æµè¯ç¹
对æ¯ä¸ª POINTï¼
- 读å POINT åç§°ãé£é©ççº§ãæµè¯å ³æ³¨ç¹
- 读åéæ±ææ¡£ä¸çç¸å ³æè¿°
Step 3: è¯å«è¾å ¥é¡¹
- ååºææè¾å ¥é¡¹ï¼å段ãåæ°ãæä½çï¼
- è¯å«è¾å ¥é¡¹ççº¦ææ¡ä»¶
Step 4: ååçä»·ç±»åè¾¹çå¼
- ææçä»·ç±»ï¼ç¬¦åè§åçè¾å ¥
- æ æçä»·ç±»ï¼è¿åè§åçè¾å ¥
- è¾¹çå¼ï¼ä¸´çç¹ï¼æå°å¼ãæå¤§å¼ã临çå¼ï¼
Step 5: 设计æµè¯ç¨ä¾
åºäºä»¥ä¸çç¥è®¾è®¡ï¼
æ ¸å¿æèæ¡æ¶:
-
è¾å ¥åæ
- è¯¥åºæ¯æ¶ååªäºè¾å ¥é¡¹ï¼
- æ¯ä¸ªè¾å ¥æä»ä¹çº¦æï¼é¿åº¦ãæ ¼å¼ãèå´ï¼ï¼
-
çä»·ç±»è¯å«
- ææçä»·ç±»ï¼æ£å¸¸æ åµä¸çå ¸åå¼
- æ æçä»·ç±»ï¼åç§å¼å¸¸æ åµï¼ç©ºå¼ãè¶çãæ ¼å¼é误ï¼
-
æµè¯ä»·å¼è¯ä¼°
- è¿ä¸ªç价类失败æ¶ï¼ä¼æ´é²ä¸åç缺é·åï¼
- 妿åå ¶ä»çä»·ç±»çæµè¯é»è¾ç¸åï¼æ¯å¦å¯ä»¥åå¹¶ï¼
- æµè¯å ³æ³¨ç¹ä¸æå°çåºæ¯ï¼å¦ä½å¨ç¨ä¾ä¸ä½ç°ï¼
-
è¦ç夿
- æææµç¨è³å°æä¸ä¸ªç¨ä¾
- æ ¸å¿å¼å¸¸åºæ¯å·²è¦ç
- è¾¹çæ¡ä»¶æ ¹æ®å®é æ åµéæ©
-
ç¨ä¾è®¾è®¡
- æ ¸å¿æ£åç¨ä¾ï¼P1ï¼ï¼æå¸¸è§çæååºæ¯
- åºæ¬æ£åç¨ä¾ï¼P2ï¼ï¼å ¶ä»ææçä»·ç±»
- æ ¸å¿å¼å¸¸ç¨ä¾ï¼P3ï¼ï¼å ³é®å¤±è´¥åºæ¯
- è¾¹çæ¡ä»¶ç¨ä¾ï¼P4ï¼ï¼è¾¹ç弿µè¯
- ä½é¢åºæ¯ç¨ä¾ï¼P5ï¼ï¼ä¸å¸¸è§ä½éè¦ççåºæ¯
ç¨ä¾è´¨éæ å:
- æ°æ®å ·ä½ï¼”test123″ï¼ä¸è¦”æ£ç¡®ç¨æ·å”ï¼
- é¢æç»æå¯éªè¯ï¼”æ¾ç¤ºé误æç¤º’ç¨æ·åä¸è½ä¸ºç©º'”ï¼ä¸è¦”æç¤ºé误”ï¼
- å½åè§èï¼ä»¥”éªè¯”å¼å¤´ï¼
Step 6: çæå®æ¯åç»ä¸æ ¡éª
- æ¯ä¸ªæµè¯é¡¹ï¼ITEMï¼çæå®æ¯åï¼è°ç¨æ ¡éªèæ¬æ£æ¥æ ¼å¼
- å ¨é¨æµè¯é¡¹çæå®æ¯åï¼å次è°ç¨æ ¡éªèæ¬è¿è¡æ´ä½æ£æ¥
- æ ¡éªèæ¬è·¯å¾ï¼
.claude/skills/testcase-generator/scripts/validate.py
7. 示ä¾
示ä¾1ï¼æ£ç¡®çç¨ä¾ï¼ç¨æ·åå¯ç ç»å½ï¼
## [P1] éªè¯ææç¨æ·ååå¯ç ç»å½æå
[æµè¯ç±»å] åè½
[åç½®æ¡ä»¶] 已注åç¨æ·test_userï¼å¯ç Test1234
[æµè¯æ¥éª¤] 1. è¾å
¥ç¨æ·åtest_userï¼è¾å
¥å¯ç Test1234ï¼ç¹å»ç»å½ã2. éªè¯è·³è½¬å°é¦é¡µå¹¶æ¾ç¤ºç¨æ·å
[é¢æç»æ] 1. ç»å½è¯·æ±æåã2. 跳转å°/home页é¢ï¼é¡¶é¨æ¾ç¤º'欢è¿ï¼test_user'
## [P3][åå] éªè¯ç¨æ·å为空æ¶ç»å½å¤±è´¥
[æµè¯ç±»å] åè½
[åç½®æ¡ä»¶] è¿å
¥ç»å½é¡µ
[æµè¯æ¥éª¤] 1. ä¸è¾å
¥ç¨æ·åï¼è¾å
¥å¯ç Test1234ï¼ç¹å»ç»å½ã2. éªè¯æç¤º'ç¨æ·åä¸è½ä¸ºç©º'
[é¢æç»æ] 1. ç»å½è¯·æ±è¢«æç»ã2. åçå¨ç»å½é¡µï¼ç¨æ·åè¾å
¥æ¡ä¸æ¹æ¾ç¤ºçº¢è²æç¤º'ç¨æ·åä¸è½ä¸ºç©º'
## [P4] éªè¯å¯ç é¿åº¦è¾¹çå¼ï¼8ä½ï¼
[æµè¯ç±»å] åè½
[åç½®æ¡ä»¶] 已注åç¨æ·test_userï¼å¯ç Test1234
[æµè¯æ¥éª¤] 1. è¾å
¥ç¨æ·åtest_userï¼è¾å
¥8ä½å¯ç Test1234ï¼ç¹å»ç»å½ã2. éªè¯ç»å½æå
[é¢æç»æ] 1. ç»å½è¯·æ±æåã2. 跳转å°/home页é¢
示ä¾2ï¼ç»¼ååºæ¯ï¼å¤è¾å ¥é¡¹ï¼
POINT: 广åè´¦æ·å表-çéåè½
è¾å ¥é¡¹åæ:
- æ¶é´èå´: [ä»å¤©|æ¨å¤©|è¿7天|èªå®ä¹]
- è´¦æ·åç§°: [ææ¬æ¨¡ç³æç´¢]
- è´¦æ·ç¶æ: [æ£å¸¸|å°ç¦|å®¡æ ¸ä¸]
çæç¨ä¾ï¼6个ï¼:
## [P1] éªè¯å䏿¡ä»¶çéæå
[æµè¯ç±»å] åè½
[åç½®æ¡ä»¶] 广åè´¦æ·å表页é¢ï¼æ10个账æ·
[æµè¯æ¥éª¤] 1. éæ©æ¶é´"è¿7天"ï¼ç¹å»æ¥è¯¢ã2. éªè¯è¿åç¬¦åæ¡ä»¶çè´¦æ·
[é¢æç»æ] 1. åè¡¨å·æ°ã2. ä»
æ¾ç¤ºè¿7å¤©ææ°æ®çè´¦æ·
## [P1] éªè¯å¤æ¡ä»¶ç»åçéæå
[æµè¯ç±»å] åè½
[åç½®æ¡ä»¶] åä¸
[æµè¯æ¥éª¤] 1. éæ©æ¶é´"è¿7天"ï¼è¾å
¥åç§°"test"ï¼éæ©ç¶æ"æ£å¸¸"ï¼ç¹å»æ¥è¯¢
[é¢æç»æ] 1. åè¡¨å·æ°ã2. ä»
æ¾ç¤ºåæ¶æ»¡è¶³3个æ¡ä»¶çè´¦æ·
## [P3][åå] éªè¯æ¶é´è¶
è¿365天çé失败
[æµè¯ç±»å] åè½
[åç½®æ¡ä»¶] åä¸
[æµè¯æ¥éª¤] 1. éæ©èªå®ä¹æ¶é´ï¼å¼å§æ¥æ2023-01-01ï¼ç»ææ¥æ2024-01-02ï¼ç¹å»æ¥è¯¢
[é¢æç»æ] 1. æ¾ç¤ºæç¤º"æ¶é´èå´ä¸è½è¶
è¿365天"ï¼å表ä¸å·æ°
## [P3][åå] éªè¯ä¸åå¨çè´¦æ·åçéè¿å空
[æµè¯ç±»å] åè½
[åç½®æ¡ä»¶] åä¸
[æµè¯æ¥éª¤] 1. è¾å
¥ä¸åå¨çè´¦æ·å"nonexistent123"ï¼ç¹å»æ¥è¯¢
[é¢æç»æ] 1. åè¡¨å·æ°ã2. æ¾ç¤º"ææ æ°æ®"
## [P2] éªè¯ç鿡件æ¸
空åè½
[æµè¯ç±»å] åè½
[åç½®æ¡ä»¶] å·²åºç¨ç鿡件
[æµè¯æ¥éª¤] 1. ç¹å»"éç½®"æé®ã2. éªè¯ææç鿡件æ¸
空ï¼å表æ¢å¤é»è®¤
[é¢æç»æ] 1. ææçé项æ¢å¤é»è®¤å¼ã2. å表æ¾ç¤ºå
¨é¨è´¦æ·
## [P4][åå] éªè¯ç»ææ¶é´æ©äºå¼å§æ¶é´æç¤ºé误
[æµè¯ç±»å] åè½
[åç½®æ¡ä»¶] åä¸
[æµè¯æ¥éª¤] 1. éæ©èªå®ä¹æ¶é´ï¼å¼å§æ¥æ2024-01-02ï¼ç»ææ¥æ2024-01-01ï¼ç¹å»æ¥è¯¢
[é¢æç»æ] 1. æ¾ç¤ºæç¤º"ç»ææ¶é´ä¸è½æ©äºå¼å§æ¶é´"
说æ:
- ä¸çå¤æåº¦ POINTï¼å¤è¾å ¥é¡¹ï¼çæ 6 个ç¨ä¾
- è¦çï¼ææç»åãæ æè¾¹çãæ¸ 空æä½
- éæ©ä»£è¡¨æ§ç¨ä¾ï¼è¦ç主è¦åºæ¯
示ä¾3ï¼é误çç¨ä¾
## [P1] éªè¯ç»å½æå
[æµè¯ç±»å] åè½
[åç½®æ¡ä»¶] ç¨æ·å·²æ³¨å
[æµè¯æ¥éª¤] 1. è¾å
¥ç¨æ·å{username}ï¼è¾å
¥å¯ç {password}ï¼ç¹å»ç»å½
[é¢æç»æ] 1. ç»å½æå
为ä»ä¹é误ï¼
- æµè¯æ°æ®ä½¿ç¨å ä½ç¬¦ï¼{username}ã{password}ï¼
- é¢æç»æä¸å¯éªè¯ï¼”ç»å½æå”太模ç³ï¼
8. æ£éªæµç¨
Step 1: æ¯ä¸ªæµè¯é¡¹çæå®æ¯å
è°ç¨æ ¡éªèæ¬æ£æ¥æ ¼å¼ï¼
uv run .claude/skills/testcase-generator/scripts/validate.py \
--single "test-case/{模å}/{æµè¯ç¹}.md"
èæ¬ä¼è¾åºæ¥å¿ï¼æåºæ ¼å¼é®é¢ï¼å¦ä¼å 级é误ãåæ®µç¼ºå¤±çï¼ãAI åææ¥å¿ï¼å³å®æ¯å¦éè¦ä¿®æ¹ã
Step 2: å ¨é¨çæå®æ¯å
忬¡è°ç¨æ ¡éªèæ¬è¿è¡æ´ä½æ£æ¥ï¼
uv run .claude/skills/testcase-generator/scripts/validate.py "test-case/" --check-duplicates
èæ¬ä¼æ£æ¥éå¤ç¨ä¾ãæ ¼å¼ä¸è´æ§çãèæ¬åªæä¾æ¥å¿ï¼ä¸ç´æ¥ä¿®æ¹æä»¶ãAI åææ¥å¿ï¼å³å®æ¯å¦éè¦è°æ´ã
Step 3: çæè´¨éæ¥å
- ç»è®¡ç¨ä¾æ°éï¼æ ITEMãæä¼å 级ï¼
- ç»è®¡çä»·ç±»è¦çç
- ç»è®¡è¾¹çå¼è¦çç
- ååºéå¤ç¨ä¾ï¼å¦ææï¼
9. æ£æ¥æ¸ å
çæåæ£æ¥
- 已读å
test-case/plan.md - 已读å
clarified-requirements/index.md - 已读å
CLAUDE.mdä¸å¡èæ¯ - çè§£æµè¯é¡¹(ITEM)åæµè¯ç¹(POINT)çå±çº§å ³ç³»
æ¯ä¸ªPOINTçææ¶æ£æ¥
- æ¯ä¸ª POINT é½å·²çæç¨ä¾æä»¶
- ç¨ä¾æ°éåçï¼åºäºåºæ¯å¤æåº¦ï¼
- ææç¨ä¾é½æä¼å 级ï¼P1-P5ï¼
- ææç¨ä¾é½ææµè¯ç±»åï¼12ç§ä¹ä¸ï¼
- æµè¯æ°æ®å ·ä½ï¼æ å ä½ç¬¦ï¼
- é¢æç»æå¯éªè¯ï¼æ æ¨¡ç³æè¿°ï¼
- æµè¯æ¥éª¤ä¸é¢æç»ææ°éä¸è´
- ç¨ä¾æ é¢ä»¥”éªè¯”å¼å¤´
æ²»çé¶æ®µæ£æ¥
- æ§è¡äºå ¨å±æ ¡éªèæ¬
- æ£æ¥äºéå¤ç¨ä¾
- æ ¼å¼ç¬¦åè§èï¼å·²éè¿ validate.py æ£æ¥ï¼
- å·²çæ all_cases.md
- æ éå¤ç¨ä¾ï¼å·²éè¿ validate.py –check-duplicates æ£æ¥ï¼
- å·²çæè´¨éæ¥å
10. èæ¬æ¥å£
validate.py
# åæä»¶æ ¡éª
uv run .claude/skills/testcase-generator/scripts/validate.py \
--single "test-case/{模å}/{æµè¯ç¹}.md"
# å
¨å±æ ¡éª
uv run .claude/skills/testcase-generator/scripts/validate.py "test-case/"
# å
¨å±æ ¡éª + é夿£æµ
uv run .claude/skills/testcase-generator/scripts/validate.py "test-case/" --check-duplicates
# ä»
é夿£æµ
uv run .claude/skills/testcase-generator/scripts/validate.py "test-case/" --duplicates-only
æ ¡éªé¡¹:
- Schemaæ ¼å¼
- å¿ å¡«åæ®µ(ä¼å çº§ãæµè¯ç±»åãæµè¯æ¥éª¤ãé¢æç»æ)
- æµè¯ç±»åæä¸¾(12ç§)
- æ¥éª¤ç¼å·è¿ç»æ§
- æ¥éª¤ä¸é¢æç»ææ°éä¸è´æ§
- çä»·ç±»è¦çæ£æ¥(
--check-equivalence) - è¾¹çå¼è¦çæ£æ¥(
--check-boundary) - é夿£æµ(
--check-duplicates)
to_excel.py
# ä»ç®å½å¯¼åº
uv run .claude/skills/testcase-generator/scripts/to_excel.py "test-case/" -o "test-case/export.xlsx"
# ä»å个æä»¶å¯¼åº
uv run .claude/skills/testcase-generator/scripts/to_excel.py "test-case/{模å}/{æµè¯ç¹}.md" -o "output.xlsx"
11. å¼å¸¸å¤ç
| é误 | å¤çæ¹å¼ |
|---|---|
| åæä»¶æ ¡éªå¤±è´¥ | éè¯3次ï¼ä»å¤±è´¥åè·³è¿å¹¶è®°å½ |
| ç¨ä¾æ°è¿å¤(>15) | æç¤ºæ£æ¥æ¯å¦æåä½çä»·ç±» |
| 缺å°è¾¹çç¨ä¾ | è¦å并建议补å |
| ç¼ºå°æ æçä»·ç±» | è¦å并建议补å å¼å¸¸åºæ¯ |
| æ¥éª¤ç¼å·ä¸è¿ç» | æ¥éå¹¶è¦æ±ä¿®æ£ |
| æµè¯ç±»åä¸å¨æä¸¾ | æ¥éå¹¶è¦æ±ä¿®æ£ |
| æ¥éª¤ä¸é¢ææ°éä¸ä¸è´ | æ¥éå¹¶è¦æ±ä¿®æ£ |
| 导åºå¤±è´¥ | æ£æ¥openpyxlä¾èµ |
12. 忢ç¹
â ç¨ä¾çæå®æ
产ç©:
test-case/{ITEM}/{POINT}.md– åæµè¯ç¹çç¨ä¾æä»¶test-case/all_cases.md– ææç¨ä¾æ±æ»
è´¨éä¿è¯:
- åºäºçä»·ç±»ç论çæ
- è¾¹çå¼å ¨è¦ç
- ç¨ä¾æ°éåçï¼åºäºåºæ¯å¤æåº¦ï¼
ç»è®¡ç¤ºä¾:
ð çæç»è®¡:
- æµè¯é¡¹: 8个
- æµè¯ç¹: 20个
- æµè¯ç¨ä¾: 75个
è¦çç:
- ææçä»·ç±»: 100% (æ¯POINTè³å°1个)
- æ æçä»·ç±»: 80% (主è¦å¼å¸¸å
¨è¦ç)
- è¾¹çå¼: 90% (ææèå´åè¾å
¥)
ç¨ä¾åå¸:
- P1(æ ¸å¿æ£å): 20个(27%)
- P2(åºæ¬æ£å): 15个(20%)
- P3(æ ¸å¿å¼å¸¸): 25个(33%)
- P4(è¾¹çæ¡ä»¶): 12个(16%)
- P5(ä½é¢åºæ¯): 3个(4%)
ä¸ä¸æ¥:
- äººå·¥å®¡æ ¸æµè¯ç¨ä¾
- 导åºä¸º Excel æ ¼å¼ï¼å¯éï¼
- æ ¹æ®ä¸å¡çè§£è°æ´ç¨ä¾