muno-claude-plugin 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +834 -0
- package/bin/cli.js +262 -0
- package/package.json +37 -0
- package/templates/WORKFLOW.md +260 -0
- package/templates/agents/acceptance-test-generator.md +508 -0
- package/templates/agents/epic-story-reviewer.md +255 -0
- package/templates/agents/hld-reviewer.md +306 -0
- package/templates/agents/lld-reviewer.md +310 -0
- package/templates/agents/prd-reviewer.md +174 -0
- package/templates/agents/task-tracker.md +445 -0
- package/templates/agents/tc-reviewer.md +339 -0
- package/templates/agents/unit-test-generator.md +431 -0
- package/templates/commands/claude-code-expert.md +9 -0
- package/templates/commands/dev.md +9 -0
- package/templates/commands/po.md +9 -0
- package/templates/commands/principal-engineer.md +9 -0
- package/templates/commands/qa.md +9 -0
- package/templates/commands/sm.md +9 -0
- package/templates/commands/staff-engineer.md +9 -0
- package/templates/personas/claude-code-expert.md +153 -0
- package/templates/personas/dev.md +130 -0
- package/templates/personas/po.md +92 -0
- package/templates/personas/principal-engineer.md +163 -0
- package/templates/personas/qa.md +174 -0
- package/templates/personas/sm.md +101 -0
- package/templates/personas/staff-engineer.md +153 -0
- package/templates/references/claude-code-resources.md +79 -0
- package/templates/skills/epic-story-generator/SKILL.md +453 -0
- package/templates/skills/epic-story-generator/reference/epic-template.md +192 -0
- package/templates/skills/epic-story-generator/reference/story-template.md +297 -0
- package/templates/skills/hld-generator/SKILL.md +400 -0
- package/templates/skills/hld-generator/reference/hld-examples.md +305 -0
- package/templates/skills/hld-generator/reference/hld-template.md +244 -0
- package/templates/skills/hld-generator/reference/tech-stack-guidelines.md +194 -0
- package/templates/skills/lld-generator/SKILL.md +360 -0
- package/templates/skills/lld-generator/reference/lld-examples.md +338 -0
- package/templates/skills/lld-generator/reference/lld-template.md +286 -0
- package/templates/skills/prd-generator/SKILL.md +352 -0
- package/templates/skills/prd-generator/reference/prd-template.md +98 -0
- package/templates/skills/task-generator/SKILL.md +661 -0
- package/templates/skills/task-generator/reference/impl-task-template.md +621 -0
- package/templates/skills/task-generator/reference/task-examples.md +678 -0
- package/templates/skills/task-reviewer/SKILL.md +463 -0
- package/templates/skills/task-reviewer/reference/review-criteria.md +501 -0
- package/templates/skills/task-reviewer/reference/review-template.md +403 -0
- package/templates/skills/tc-generator/SKILL.md +595 -0
- package/templates/skills/tc-generator/reference/tc-examples.md +654 -0
- package/templates/skills/tc-generator/reference/tc-template.md +451 -0
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
# Test Case 템플릿
|
|
2
|
+
|
|
3
|
+
## 파일명 규칙
|
|
4
|
+
|
|
5
|
+
`TC-[Story번호]-[순번]-[영문-케밥-케이스].md`
|
|
6
|
+
|
|
7
|
+
예: `TC-001-01-valid-login.md`, `TC-001-02-invalid-password.md`
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 템플릿
|
|
12
|
+
|
|
13
|
+
```markdown
|
|
14
|
+
---
|
|
15
|
+
id: TC-XXX-NN
|
|
16
|
+
title: [Test Case 제목]
|
|
17
|
+
story_id: STORY-XXX
|
|
18
|
+
ac_ids: [AC-1, AC-2] # 연결된 AC 목록
|
|
19
|
+
test_type: e2e # e2e | integration | api | unit
|
|
20
|
+
priority: P0 # P0 | P1 | P2 | P3
|
|
21
|
+
automation: yes # yes | no | partial
|
|
22
|
+
status: ready # draft | ready | passed | failed | blocked
|
|
23
|
+
created_at: YYYY-MM-DD
|
|
24
|
+
updated_at: YYYY-MM-DD
|
|
25
|
+
executed_at: YYYY-MM-DD # 마지막 실행일
|
|
26
|
+
executed_by: [실행자]
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# TC-XXX-NN: [Test Case 제목]
|
|
30
|
+
|
|
31
|
+
## 1. Story Reference
|
|
32
|
+
|
|
33
|
+
### 연결 정보
|
|
34
|
+
|
|
35
|
+
| 항목 | 내용 |
|
|
36
|
+
|------|------|
|
|
37
|
+
| Story ID | STORY-XXX |
|
|
38
|
+
| Story 제목 | [Story 제목] |
|
|
39
|
+
| Epic | EPIC-XXX |
|
|
40
|
+
| 연결 AC | AC-1, AC-2 |
|
|
41
|
+
|
|
42
|
+
### 검증 대상 User Story
|
|
43
|
+
|
|
44
|
+
**AS A** [사용자 역할]
|
|
45
|
+
**I WANT** [원하는 기능]
|
|
46
|
+
**SO THAT** [비즈니스 가치]
|
|
47
|
+
|
|
48
|
+
### 검증 대상 Acceptance Criteria
|
|
49
|
+
|
|
50
|
+
```gherkin
|
|
51
|
+
# AC-1: [AC 제목]
|
|
52
|
+
Scenario: [시나리오 제목]
|
|
53
|
+
Given [전제 조건]
|
|
54
|
+
When [사용자 행동]
|
|
55
|
+
Then [기대 결과]
|
|
56
|
+
|
|
57
|
+
# AC-2: [AC 제목] (해당시)
|
|
58
|
+
Scenario: [시나리오 제목]
|
|
59
|
+
Given [전제 조건]
|
|
60
|
+
When [사용자 행동]
|
|
61
|
+
Then [기대 결과]
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 2. Test Classification
|
|
67
|
+
|
|
68
|
+
### 분류 정보
|
|
69
|
+
|
|
70
|
+
| 항목 | 내용 | 비고 |
|
|
71
|
+
|------|------|------|
|
|
72
|
+
| 테스트 유형 | E2E / Integration / API / Unit | |
|
|
73
|
+
| 우선순위 | P0 (Critical) | 핵심 기능 |
|
|
74
|
+
| 자동화 가능 | Yes / No / Partial | |
|
|
75
|
+
| 실행 환경 | Local / Dev / Staging / Prod | |
|
|
76
|
+
| 예상 소요 | 수동: Xm / 자동: Xs | |
|
|
77
|
+
| 실행 주기 | 매 빌드 / Daily / Weekly | |
|
|
78
|
+
|
|
79
|
+
### 테스트 범위
|
|
80
|
+
|
|
81
|
+
**포함**:
|
|
82
|
+
- [테스트 범위에 포함되는 항목]
|
|
83
|
+
- [테스트 범위에 포함되는 항목]
|
|
84
|
+
|
|
85
|
+
**제외**:
|
|
86
|
+
- [테스트 범위에서 제외되는 항목]
|
|
87
|
+
- [테스트 범위에서 제외되는 항목]
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 3. Preconditions
|
|
92
|
+
|
|
93
|
+
### 환경 조건
|
|
94
|
+
|
|
95
|
+
- [ ] 애플리케이션 서버 실행 상태
|
|
96
|
+
- [ ] 데이터베이스 연결 확인
|
|
97
|
+
- [ ] Redis/캐시 서버 연결 확인 (해당시)
|
|
98
|
+
- [ ] 외부 서비스 Mock 설정 완료 (해당시)
|
|
99
|
+
|
|
100
|
+
### 데이터 조건
|
|
101
|
+
|
|
102
|
+
| 데이터 | 조건 | 준비 방법 |
|
|
103
|
+
|--------|------|----------|
|
|
104
|
+
| 테스트 사용자 | `test@example.com` 계정 존재 | SQL 또는 API |
|
|
105
|
+
| 테스트 상품 | 상품 ID 1001 존재 | SQL 또는 API |
|
|
106
|
+
| [기타 데이터] | [조건] | [준비 방법] |
|
|
107
|
+
|
|
108
|
+
### 상태 조건
|
|
109
|
+
|
|
110
|
+
- [ ] 이전 테스트 데이터 정리 완료
|
|
111
|
+
- [ ] 로그아웃 상태에서 시작
|
|
112
|
+
- [ ] [기타 상태 조건]
|
|
113
|
+
|
|
114
|
+
### 데이터 초기화 스크립트
|
|
115
|
+
|
|
116
|
+
```sql
|
|
117
|
+
-- 테스트 전 실행
|
|
118
|
+
DELETE FROM [table] WHERE [condition];
|
|
119
|
+
INSERT INTO [table] ([columns]) VALUES ([values]);
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## 4. Test Scenarios
|
|
125
|
+
|
|
126
|
+
### TC-XXX-NN-01: [정상 케이스 제목]
|
|
127
|
+
|
|
128
|
+
**케이스 유형**: Happy Path
|
|
129
|
+
**AC 연결**: AC-1
|
|
130
|
+
|
|
131
|
+
```gherkin
|
|
132
|
+
Scenario: [시나리오 상세 제목]
|
|
133
|
+
Given [전제 조건 1]
|
|
134
|
+
| 필드 | 값 |
|
|
135
|
+
| email | test@example.com |
|
|
136
|
+
| password | SecurePass1! |
|
|
137
|
+
And [전제 조건 2]
|
|
138
|
+
When [사용자 행동 1]
|
|
139
|
+
And [사용자 행동 2]
|
|
140
|
+
Then [기대 결과 1]
|
|
141
|
+
| 검증 항목 | 기대값 |
|
|
142
|
+
| URL | /home |
|
|
143
|
+
| 상태코드 | 200 |
|
|
144
|
+
And [기대 결과 2]
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**단계별 상세**:
|
|
148
|
+
|
|
149
|
+
| Step | 행동 | 입력값 | 기대 결과 |
|
|
150
|
+
|------|------|--------|----------|
|
|
151
|
+
| 1 | 로그인 페이지 접속 | `/login` | 로그인 폼 표시 |
|
|
152
|
+
| 2 | 이메일 입력 | `test@example.com` | 입력값 표시 |
|
|
153
|
+
| 3 | 비밀번호 입력 | `SecurePass1!` | 마스킹 표시 |
|
|
154
|
+
| 4 | 로그인 버튼 클릭 | - | 로딩 표시 |
|
|
155
|
+
| 5 | 결과 확인 | - | 홈 화면 이동 |
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
### TC-XXX-NN-02: [예외 케이스 제목]
|
|
160
|
+
|
|
161
|
+
**케이스 유형**: Exception / Error Handling
|
|
162
|
+
**AC 연결**: AC-2
|
|
163
|
+
|
|
164
|
+
```gherkin
|
|
165
|
+
Scenario: [시나리오 상세 제목]
|
|
166
|
+
Given [전제 조건]
|
|
167
|
+
When [예외 상황 발생 행동]
|
|
168
|
+
Then [예외 처리 결과]
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**단계별 상세**:
|
|
172
|
+
|
|
173
|
+
| Step | 행동 | 입력값 | 기대 결과 |
|
|
174
|
+
|------|------|--------|----------|
|
|
175
|
+
| 1 | [행동] | [입력] | [결과] |
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
### TC-XXX-NN-03: [엣지 케이스 제목]
|
|
180
|
+
|
|
181
|
+
**케이스 유형**: Edge Case / Boundary
|
|
182
|
+
**AC 연결**: AC-3
|
|
183
|
+
|
|
184
|
+
```gherkin
|
|
185
|
+
Scenario: [시나리오 상세 제목]
|
|
186
|
+
Given [경계 조건]
|
|
187
|
+
When [경계값 입력]
|
|
188
|
+
Then [기대 결과]
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## 5. Expected Results
|
|
194
|
+
|
|
195
|
+
### 검증 체크리스트
|
|
196
|
+
|
|
197
|
+
| ID | 검증 항목 | 기대값 | 검증 방법 | 중요도 |
|
|
198
|
+
|----|----------|--------|----------|--------|
|
|
199
|
+
| V-01 | [검증항목1] | [기대값] | [방법] | Must |
|
|
200
|
+
| V-02 | [검증항목2] | [기대값] | [방법] | Should |
|
|
201
|
+
| V-03 | [검증항목3] | [기대값] | [방법] | Could |
|
|
202
|
+
|
|
203
|
+
### UI 검증 (해당시)
|
|
204
|
+
|
|
205
|
+
| 요소 | 검증 항목 | 기대값 |
|
|
206
|
+
|------|----------|--------|
|
|
207
|
+
| 버튼 | 텍스트 | "로그인" |
|
|
208
|
+
| 버튼 | 상태 | 활성화 |
|
|
209
|
+
| 에러 메시지 | 텍스트 | "이메일 또는 비밀번호가 올바르지 않습니다" |
|
|
210
|
+
| 에러 메시지 | 색상 | #FF0000 (빨강) |
|
|
211
|
+
|
|
212
|
+
### API 응답 검증 (해당시)
|
|
213
|
+
|
|
214
|
+
**엔드포인트**: `[METHOD] /api/v1/[path]`
|
|
215
|
+
|
|
216
|
+
**성공 응답** (HTTP 200):
|
|
217
|
+
```json
|
|
218
|
+
{
|
|
219
|
+
"status": "success",
|
|
220
|
+
"data": {
|
|
221
|
+
"field1": "expected_value",
|
|
222
|
+
"field2": 123
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
**실패 응답** (HTTP 4XX):
|
|
228
|
+
```json
|
|
229
|
+
{
|
|
230
|
+
"status": "error",
|
|
231
|
+
"error": {
|
|
232
|
+
"code": "ERROR_CODE",
|
|
233
|
+
"message": "에러 메시지"
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### DB 상태 검증 (해당시)
|
|
239
|
+
|
|
240
|
+
```sql
|
|
241
|
+
-- 테스트 후 검증 쿼리
|
|
242
|
+
SELECT [columns] FROM [table] WHERE [condition];
|
|
243
|
+
-- 기대 결과: [설명]
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## 6. Test Data
|
|
249
|
+
|
|
250
|
+
### 입력 데이터
|
|
251
|
+
|
|
252
|
+
| 용도 | 필드 | 값 | 비고 |
|
|
253
|
+
|------|------|-----|------|
|
|
254
|
+
| 정상 케이스 | email | test@example.com | 등록된 계정 |
|
|
255
|
+
| 정상 케이스 | password | SecurePass1! | 유효한 비밀번호 |
|
|
256
|
+
| 예외 케이스 | email | test@example.com | |
|
|
257
|
+
| 예외 케이스 | password | WrongPass! | 잘못된 비밀번호 |
|
|
258
|
+
| 엣지 케이스 | email | a@b.c | 최소 길이 이메일 |
|
|
259
|
+
|
|
260
|
+
### 사전 준비 데이터
|
|
261
|
+
|
|
262
|
+
```sql
|
|
263
|
+
-- 테스트 사용자 데이터
|
|
264
|
+
INSERT INTO users (id, email, password_hash, status, created_at)
|
|
265
|
+
VALUES
|
|
266
|
+
(1, 'test@example.com', '$2a$10$hashedpassword', 'ACTIVE', NOW()),
|
|
267
|
+
(2, 'inactive@example.com', '$2a$10$hashedpassword', 'INACTIVE', NOW());
|
|
268
|
+
|
|
269
|
+
-- 테스트 후 정리
|
|
270
|
+
DELETE FROM users WHERE email LIKE '%@example.com';
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Mock 데이터 (외부 연동시)
|
|
274
|
+
|
|
275
|
+
**Mock 서비스**: [외부 서비스명]
|
|
276
|
+
**Mock 설정 파일**: `test-data/mock-[service].json`
|
|
277
|
+
|
|
278
|
+
```json
|
|
279
|
+
{
|
|
280
|
+
"request": {
|
|
281
|
+
"method": "POST",
|
|
282
|
+
"url": "/external/api"
|
|
283
|
+
},
|
|
284
|
+
"response": {
|
|
285
|
+
"status": 200,
|
|
286
|
+
"body": {
|
|
287
|
+
"result": "success"
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## 7. Execution History (선택)
|
|
296
|
+
|
|
297
|
+
### 최근 실행 결과
|
|
298
|
+
|
|
299
|
+
| 날짜 | 환경 | 결과 | 실행자 | 비고 |
|
|
300
|
+
|------|------|------|--------|------|
|
|
301
|
+
| YYYY-MM-DD | Staging | Pass | [이름] | |
|
|
302
|
+
| YYYY-MM-DD | Dev | Fail | [이름] | 버그 #123 |
|
|
303
|
+
|
|
304
|
+
### 관련 버그/이슈
|
|
305
|
+
|
|
306
|
+
| 이슈 ID | 제목 | 상태 |
|
|
307
|
+
|---------|------|------|
|
|
308
|
+
| BUG-123 | [버그 제목] | Fixed |
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
## 8. Notes
|
|
313
|
+
|
|
314
|
+
### 특이 사항
|
|
315
|
+
- [테스트 시 주의할 점]
|
|
316
|
+
- [알려진 제한 사항]
|
|
317
|
+
|
|
318
|
+
### 관련 문서
|
|
319
|
+
- Story: `backlogs/[feature]/STORY-XXX.md`
|
|
320
|
+
- LLD: `documents/lld/[feature]-lld.md`
|
|
321
|
+
- API 문서: `[링크]`
|
|
322
|
+
|
|
323
|
+
### 변경 이력
|
|
324
|
+
|
|
325
|
+
| 날짜 | 버전 | 변경 내용 | 작성자 |
|
|
326
|
+
|------|------|----------|--------|
|
|
327
|
+
| YYYY-MM-DD | 1.0 | 최초 작성 | [이름] |
|
|
328
|
+
| YYYY-MM-DD | 1.1 | 엣지 케이스 추가 | [이름] |
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
## 작성 가이드
|
|
334
|
+
|
|
335
|
+
### Given-When-Then 작성법
|
|
336
|
+
|
|
337
|
+
```markdown
|
|
338
|
+
# 좋은 예
|
|
339
|
+
Given 사용자가 로그인 페이지에 있다
|
|
340
|
+
And 등록된 이메일 "test@example.com"이 존재한다
|
|
341
|
+
When 이메일 필드에 "test@example.com"을 입력한다
|
|
342
|
+
And 비밀번호 필드에 "SecurePass1!"을 입력한다
|
|
343
|
+
And 로그인 버튼을 클릭한다
|
|
344
|
+
Then URL이 "/home"으로 변경된다
|
|
345
|
+
And 상단에 "test@example.com"이 표시된다
|
|
346
|
+
|
|
347
|
+
# 나쁜 예
|
|
348
|
+
Given 사용자가 있다
|
|
349
|
+
When 로그인한다
|
|
350
|
+
Then 성공한다
|
|
351
|
+
→ 구체적인 값 없음, 검증 불가
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
### 테스트 데이터 작성법
|
|
355
|
+
|
|
356
|
+
```markdown
|
|
357
|
+
# 좋은 예 - 명시적이고 재현 가능
|
|
358
|
+
| 필드 | 값 | 용도 |
|
|
359
|
+
|------|-----|------|
|
|
360
|
+
| email | test@example.com | 정상 로그인 |
|
|
361
|
+
| password | SecurePass1! | 유효한 비밀번호 (8자 이상, 대소문자, 숫자, 특수문자) |
|
|
362
|
+
|
|
363
|
+
# 나쁜 예 - 모호함
|
|
364
|
+
| 필드 | 값 |
|
|
365
|
+
|------|-----|
|
|
366
|
+
| email | 유효한 이메일 |
|
|
367
|
+
| password | 유효한 비밀번호 |
|
|
368
|
+
→ "유효한"의 기준이 불명확
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
### 기대 결과 작성법
|
|
372
|
+
|
|
373
|
+
```markdown
|
|
374
|
+
# 좋은 예 - 검증 가능
|
|
375
|
+
| 검증 항목 | 기대값 | 검증 방법 |
|
|
376
|
+
|----------|--------|----------|
|
|
377
|
+
| HTTP 상태 | 200 | Response status |
|
|
378
|
+
| 응답 body.status | "success" | JSON path |
|
|
379
|
+
| 쿠키 | session_id 존재 | Cookie 확인 |
|
|
380
|
+
|
|
381
|
+
# 나쁜 예 - 검증 불가
|
|
382
|
+
| 검증 항목 | 기대값 |
|
|
383
|
+
|----------|--------|
|
|
384
|
+
| 결과 | 성공 |
|
|
385
|
+
| 화면 | 정상 표시 |
|
|
386
|
+
→ "성공", "정상"의 기준 불명확
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
## 케이스 유형별 가이드
|
|
392
|
+
|
|
393
|
+
### Happy Path (정상 케이스)
|
|
394
|
+
|
|
395
|
+
- 가장 일반적인 사용 시나리오
|
|
396
|
+
- 모든 입력이 유효할 때의 동작
|
|
397
|
+
- P0 또는 P1 우선순위
|
|
398
|
+
- 반드시 자동화 대상
|
|
399
|
+
|
|
400
|
+
### Exception Handling (예외 처리)
|
|
401
|
+
|
|
402
|
+
- 유효하지 않은 입력
|
|
403
|
+
- 권한 없음
|
|
404
|
+
- 리소스 없음 (404)
|
|
405
|
+
- 서버 오류 처리
|
|
406
|
+
- 에러 메시지 검증
|
|
407
|
+
|
|
408
|
+
### Edge Cases (경계 케이스)
|
|
409
|
+
|
|
410
|
+
- 최소/최대 길이
|
|
411
|
+
- 빈 값, null
|
|
412
|
+
- 특수 문자
|
|
413
|
+
- 동시성 (여러 사용자)
|
|
414
|
+
- 타임아웃
|
|
415
|
+
|
|
416
|
+
### Security Cases (보안 케이스)
|
|
417
|
+
|
|
418
|
+
- 인증 없이 접근
|
|
419
|
+
- 권한 없는 리소스 접근
|
|
420
|
+
- SQL Injection 시도
|
|
421
|
+
- XSS 시도
|
|
422
|
+
- CSRF 토큰 검증
|
|
423
|
+
|
|
424
|
+
---
|
|
425
|
+
|
|
426
|
+
## 상태 정의
|
|
427
|
+
|
|
428
|
+
| 상태 | 설명 | 다음 액션 |
|
|
429
|
+
|------|------|----------|
|
|
430
|
+
| `draft` | 작성 중 | 검토 요청 |
|
|
431
|
+
| `ready` | 실행 준비 완료 | 테스트 실행 |
|
|
432
|
+
| `passed` | 테스트 통과 | 완료 |
|
|
433
|
+
| `failed` | 테스트 실패 | 버그 등록 |
|
|
434
|
+
| `blocked` | 실행 불가 | 차단 요소 해결 |
|
|
435
|
+
| `skipped` | 이번 사이클 스킵 | 사유 기록 |
|
|
436
|
+
|
|
437
|
+
---
|
|
438
|
+
|
|
439
|
+
## 체크리스트
|
|
440
|
+
|
|
441
|
+
### 작성 전 확인
|
|
442
|
+
- [ ] Story와 AC를 충분히 이해했는가?
|
|
443
|
+
- [ ] 테스트 범위가 명확한가?
|
|
444
|
+
|
|
445
|
+
### 작성 완료 확인
|
|
446
|
+
- [ ] Story Reference가 정확한가?
|
|
447
|
+
- [ ] 모든 AC가 TC로 커버되는가?
|
|
448
|
+
- [ ] Given-When-Then이 구체적인가?
|
|
449
|
+
- [ ] 테스트 데이터가 재현 가능한가?
|
|
450
|
+
- [ ] 기대 결과가 검증 가능한가?
|
|
451
|
+
- [ ] Test Agent가 바로 테스트 코드를 작성할 수 있는가?
|