docs: 개발팀 리그레션 리포트 작성 (4차 검증, 기존 5건 미수정 + 신규 2건)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
262
e2e/results/hotfix/REGRESSION-REPORT_dev-team_2026-02-20.md
Normal file
262
e2e/results/hotfix/REGRESSION-REPORT_dev-team_2026-02-20.md
Normal file
@@ -0,0 +1,262 @@
|
||||
# Hotfix 리그레션 리포트 (4차 검증)
|
||||
|
||||
**작성일**: 2026-02-20
|
||||
**작성자**: QA팀 (E2E 자동화 테스트)
|
||||
**대상**: 개발팀
|
||||
**서버**: https://dev.codebridge-x.com (hotfix 브랜치)
|
||||
|
||||
---
|
||||
|
||||
## 배경
|
||||
|
||||
개발팀에서 "버그 수정 완료" 통보 후 최신 코드를 Pull하여 **4차 E2E 전체 테스트**를 실행했습니다.
|
||||
|
||||
### 테스트 환경 변경사항
|
||||
- `sam-api` Pull: `ee72af1` (chore: 사원관리-이메일 코드 수정)
|
||||
- `sam-react-prod` Pull: 업데이트 있음
|
||||
- `sam-manage` Pull: 업데이트 있음
|
||||
- `sam-docs` Pull: `6c3c16c`
|
||||
- `sam-sales` Pull: `ad79ed9`
|
||||
|
||||
---
|
||||
|
||||
## 결과 비교: 3차 → 4차
|
||||
|
||||
| 항목 | 3차 (Pull 전) | 4차 (Pull 후) | 변화 |
|
||||
|:---:|:---:|:---:|:---:|
|
||||
| 전체 시나리오 | 184 | 184 | - |
|
||||
| PASS | 175 | 173 | **-2** |
|
||||
| FAIL | 9 | 11 | **+2** |
|
||||
| 성공률 | 95.1% | 94.0% | **-1.1%p** |
|
||||
| 소요 시간 | ~68분 | 72.0분 | +4분 |
|
||||
|
||||
### 판정: 기존 버그 미수정 + 신규 리그레션 2건 발생
|
||||
|
||||
---
|
||||
|
||||
## 기존 버그 5건: 전부 미수정
|
||||
|
||||
| # | Bug ID | 우선순위 | 3차 결과 | 4차 결과 | 수정 여부 |
|
||||
|---|--------|:-------:|:-------:|:-------:|:-------:|
|
||||
| 1 | BUG-SORT-001 | HIGH | FAIL (3개) | FAIL (3개) | ❌ 미수정 |
|
||||
| 2 | BUG-FILTER-001 | HIGH | FAIL (1개) | FAIL (1개) | ❌ 미수정 |
|
||||
| 3 | BUG-REDIRECT-001 | MEDIUM | FAIL (2개) | FAIL (2개) | ❌ 미수정 |
|
||||
| 4 | BUG-BATCH-DELETE-001 | MEDIUM | FAIL (2개) | FAIL (2개) | ❌ 미수정 |
|
||||
| 5 | BUG-PERF-001 | LOW | FAIL (1개) | FAIL (1개) | ❌ 미수정 |
|
||||
|
||||
**기존 9개 FAIL 시나리오는 동일한 에러 메시지로 동일하게 실패합니다.**
|
||||
상세 내용은 기존 리포트 참조: `HOTFIX-REPORT_dev-team_2026-02-20.md`
|
||||
|
||||
---
|
||||
|
||||
## 신규 리그레션 2건
|
||||
|
||||
### BUG-REGRESSION-001: 입금관리 CRUD 실패 (API 500 에러)
|
||||
|
||||
#### 기본 정보
|
||||
|
||||
| 항목 | 내용 |
|
||||
|------|------|
|
||||
| **우선순위** | **CRITICAL** |
|
||||
| **카테고리** | API 서버 오류 |
|
||||
| **FAIL 시나리오** | `create-delete-acc-deposit` |
|
||||
| **영향 페이지** | 회계관리 > 입금관리 (`/accounting/deposits`) |
|
||||
| **3차 결과** | ✅ PASS |
|
||||
| **4차 결과** | ❌ FAIL (6/8 스텝 성공, 성공률 75%) |
|
||||
|
||||
#### 증상
|
||||
|
||||
1. CREATE 자체는 성공 (Step 3, 6.2초)
|
||||
2. 목록 복귀 후 **테이블 행 0건** (기대: 20건 이상)
|
||||
3. VERIFY 실패: 생성된 `E2E_TEST_` 데이터를 테이블에서 찾을 수 없음
|
||||
4. DELETE 실패: `E2E_TEST_` 데이터 없음
|
||||
|
||||
#### 콘솔 에러 (10건)
|
||||
|
||||
```
|
||||
1. [Notification] 알림 조회 실패: TypeError: Failed to fetch
|
||||
2. Failed to load resource: the server responded with a status of 500 ()
|
||||
3. Welfare API Error: Error: API 오류: 500
|
||||
4. Failed to load resource: the server responded with a status of 500 ()
|
||||
5. Calendar API Error: Error: API 오류: 500
|
||||
6. Failed to load resource: the server responded with a status of 500 ()
|
||||
7. TodayIssue API Error: Error: API 오류: 500
|
||||
8. Failed to load resource: the server responded with a status of 500 ()
|
||||
9. Failed to load resource: the server responded with a status of 500 ()
|
||||
10. Failed to load resource: the server responded with a status of 500 ()
|
||||
```
|
||||
|
||||
#### 페이지 상태
|
||||
|
||||
| 항목 | 값 | 비고 |
|
||||
|------|----|------|
|
||||
| DOM 노드 | 571 | 정상 대비 현저히 적음 (통상 1300+) |
|
||||
| 테이블 행 | **0** | 통상 20행 (데이터 로드 실패) |
|
||||
| API 평균 응답 | **3,574ms** | 통상 84ms (42배 느림) |
|
||||
| 느린 호출 (>2s) | 1건 | |
|
||||
|
||||
#### 근본 원인 분석
|
||||
|
||||
- **API 서버에서 다수의 500 에러 발생** (Welfare, Calendar, TodayIssue API)
|
||||
- 대시보드 관련 API 장애로 인해 **페이지 렌더링 자체가 불완전**
|
||||
- 테이블이 로드되지 않아 VERIFY/DELETE 모두 실패
|
||||
- **3차에서는 PASS였으므로, Pull 이후 API 서버 상태 변화가 원인**
|
||||
|
||||
#### 스텝별 결과
|
||||
|
||||
| # | 스텝 | Phase | 상태 | 소요시간 | 비고 |
|
||||
|---|------|-------|------|---------|------|
|
||||
| 1 | 페이지 로드 대기 | - | ✅ | 1007ms | |
|
||||
| 2 | 테이블 로드 대기 | - | ✅ | 0ms | 20행 로드 (초기) |
|
||||
| 3 | [CREATE] 데이터 생성 | CREATE | ✅ | 6166ms | |
|
||||
| 4 | [CREATE] 생성 후 대기 | - | ✅ | 1001ms | |
|
||||
| 5 | [CREATE] 목록 복귀 | CREATE | ✅ | 2014ms | |
|
||||
| 6 | [CREATE] 목록 안정화 대기 | - | ✅ | 1000ms | |
|
||||
| **7** | **[VERIFY] 생성 데이터 확인** | **VERIFY** | **❌** | **4019ms** | **ok:false** |
|
||||
| **8** | **[DELETE] 데이터 삭제** | **DELETE** | **❌** | **1013ms** | **E2E_TEST_ 데이터 없음** |
|
||||
|
||||
---
|
||||
|
||||
### BUG-REGRESSION-002: 자유게시판 CRUD 실패 (테이블 로드 타임아웃 + API 극심한 지연)
|
||||
|
||||
#### 기본 정보
|
||||
|
||||
| 항목 | 내용 |
|
||||
|------|------|
|
||||
| **우선순위** | **CRITICAL** |
|
||||
| **카테고리** | 성능 저하 / API 지연 |
|
||||
| **FAIL 시나리오** | `create-delete-board` |
|
||||
| **영향 페이지** | 게시판 > 자유게시판 (`/boards/free`) |
|
||||
| **3차 결과** | ✅ PASS |
|
||||
| **4차 결과** | ❌ FAIL (5/8 스텝 성공, 성공률 63%) |
|
||||
|
||||
#### 증상
|
||||
|
||||
1. 테이블 로드 대기에서 **5초 타임아웃** (Step 2)
|
||||
2. CREATE 자체는 성공 (Step 3, 7.0초)
|
||||
3. 목록 복귀 후 **테이블 행 0건**
|
||||
4. VERIFY/DELETE 모두 실패
|
||||
5. API 평균 응답 시간: **7,752ms** (극심한 지연)
|
||||
|
||||
#### 콘솔 에러
|
||||
|
||||
```
|
||||
1. Failed to load options for vendorId: TypeError: Failed to fetch
|
||||
```
|
||||
|
||||
#### 페이지 상태
|
||||
|
||||
| 항목 | 값 | 비고 |
|
||||
|------|----|------|
|
||||
| DOM 노드 | 400 | 정상 대비 현저히 적음 (통상 1300+) |
|
||||
| 테이블 행 | **0** | 통상 20행 (데이터 로드 실패) |
|
||||
| API 평균 응답 | **7,752ms** | 통상 84ms (**92배 느림**) |
|
||||
| 느린 호출 (>2s) | **3건** | |
|
||||
|
||||
#### 근본 원인 분석
|
||||
|
||||
- **vendorId 옵션 로드 실패**: `Failed to load options for vendorId: TypeError: Failed to fetch`
|
||||
- API 응답이 극도로 느려 테이블 데이터 로드 자체가 실패
|
||||
- DOM 노드 수 400은 페이지가 정상 렌더링되지 않았음을 의미
|
||||
- **3차에서는 PASS였으므로, Pull 이후 서버 상태/코드 변화가 원인**
|
||||
|
||||
#### 스텝별 결과
|
||||
|
||||
| # | 스텝 | Phase | 상태 | 소요시간 | 비고 |
|
||||
|---|------|-------|------|---------|------|
|
||||
| 1 | 페이지 로드 대기 | - | ✅ | 1011ms | |
|
||||
| **2** | **테이블 로드 대기** | **-** | **❌** | **5006ms** | **타임아웃 (>5s)** |
|
||||
| 3 | [CREATE] 데이터 생성 | CREATE | ✅ | 6994ms | |
|
||||
| 4 | [CREATE] 생성 후 대기 | - | ✅ | 1001ms | |
|
||||
| 5 | [CREATE] 목록 복귀 | CREATE | ✅ | 2013ms | |
|
||||
| 6 | [CREATE] 목록 안정화 대기 | - | ✅ | 1001ms | |
|
||||
| **7** | **[VERIFY] 생성 데이터 확인** | **VERIFY** | **❌** | **4038ms** | **ok:false** |
|
||||
| **8** | **[DELETE] 데이터 삭제** | **DELETE** | **❌** | **1028ms** | **E2E_TEST_ 데이터 없음** |
|
||||
|
||||
---
|
||||
|
||||
## 리그레션 공통 패턴 분석
|
||||
|
||||
두 리그레션 시나리오에서 공통적으로 발견된 패턴:
|
||||
|
||||
| 항목 | BUG-REGRESSION-001 | BUG-REGRESSION-002 | 공통점 |
|
||||
|------|:---:|:---:|------|
|
||||
| 테이블 행 | 0 | 0 | 데이터 로드 실패 |
|
||||
| DOM 노드 | 571 | 400 | 정상 대비 60~70% 감소 |
|
||||
| API 평균 응답 | 3,574ms | 7,752ms | 극심한 지연 |
|
||||
| API 500 에러 | 다수 | - | 서버 오류 |
|
||||
| fetch 실패 | ✅ | ✅ | 네트워크/서버 문제 |
|
||||
| 3차 결과 | PASS | PASS | Pull 후 발생 |
|
||||
|
||||
### 추정 원인
|
||||
|
||||
1. **API 서버 불안정**: Welfare, Calendar, TodayIssue, vendorId 등 다수 API에서 500 에러 또는 fetch 실패
|
||||
2. **코드 배포 영향**: Pull로 반영된 변경사항이 API 서버 안정성에 영향
|
||||
3. **서버 자원 문제**: API 응답 시간이 통상 84ms → 3,500~7,700ms로 42~92배 증가
|
||||
|
||||
---
|
||||
|
||||
## 요약: 전체 11개 FAIL 시나리오
|
||||
|
||||
| # | 시나리오 | Bug ID | 유형 | 우선순위 |
|
||||
|---|---------|--------|------|:-------:|
|
||||
| 1 | pagination-sort-acc | BUG-SORT-001 | 기존 미수정 | HIGH |
|
||||
| 2 | pagination-sort-hr | BUG-SORT-001 | 기존 미수정 | HIGH |
|
||||
| 3 | pagination-sort-sales | BUG-SORT-001 | 기존 미수정 | HIGH |
|
||||
| 4 | search-filter-acc-sales | BUG-FILTER-001 | 기존 미수정 | HIGH |
|
||||
| 5 | reload-persist-acc-bills | BUG-REDIRECT-001 | 기존 미수정 | MEDIUM |
|
||||
| 6 | reload-persist-acc-deposit | BUG-REDIRECT-001 | 기존 미수정 | MEDIUM |
|
||||
| 7 | batch-create-acc-bills | BUG-BATCH-DELETE-001 | 기존 미수정 | MEDIUM |
|
||||
| 8 | batch-create-acc-deposit | BUG-BATCH-DELETE-001 | 기존 미수정 | MEDIUM |
|
||||
| 9 | workflow-inventory-cycle | BUG-PERF-001 | 기존 미수정 | LOW |
|
||||
| 10 | **create-delete-acc-deposit** | **BUG-REGRESSION-001** | **신규 리그레션** | **CRITICAL** |
|
||||
| 11 | **create-delete-board** | **BUG-REGRESSION-002** | **신규 리그레션** | **CRITICAL** |
|
||||
|
||||
---
|
||||
|
||||
## 즉시 확인 요청 사항
|
||||
|
||||
### 1. API 서버 상태 점검 (긴급)
|
||||
- Welfare API, Calendar API, TodayIssue API에서 500 에러 발생
|
||||
- vendorId 옵션 로드 실패 (`Failed to fetch`)
|
||||
- API 응답 시간 42~92배 증가 (84ms → 3,500~7,700ms)
|
||||
- **서버 재시작 또는 최근 배포 변경사항 확인 필요**
|
||||
|
||||
### 2. 기존 버그 5건 수정 상태 확인
|
||||
- 수정 완료 통보하셨으나 E2E 검증 결과 **5건 모두 동일하게 실패**
|
||||
- 코드 변경이 dev 서버에 정상 배포되었는지 확인 필요
|
||||
- 수정한 브랜치가 hotfix 브랜치인지 확인 필요
|
||||
|
||||
---
|
||||
|
||||
## 재검증 방법
|
||||
|
||||
```bash
|
||||
# API 서버 안정화 후 전체 재검증
|
||||
node C:/Users/codeb/sam/e2e/runner/run-all.js
|
||||
|
||||
# 리그레션 시나리오만 검증
|
||||
node C:/Users/codeb/sam/e2e/runner/run-all.js --filter create-delete
|
||||
|
||||
# 기존 버그 검증
|
||||
node C:/Users/codeb/sam/e2e/runner/run-all.js --filter pagination-sort
|
||||
node C:/Users/codeb/sam/e2e/runner/run-all.js --filter search-filter
|
||||
node C:/Users/codeb/sam/e2e/runner/run-all.js --filter reload-persist
|
||||
node C:/Users/codeb/sam/e2e/runner/run-all.js --filter batch-create
|
||||
node C:/Users/codeb/sam/e2e/runner/run-all.js --filter workflow
|
||||
```
|
||||
|
||||
**목표**: 184/184 PASS (100%) 달성
|
||||
|
||||
---
|
||||
|
||||
## 참고 자료
|
||||
|
||||
| 자료 | 경로 |
|
||||
|------|------|
|
||||
| 기존 버그 리포트 | `e2e/results/hotfix/HOTFIX-REPORT_dev-team_2026-02-20.md` |
|
||||
| 3차 실행 요약 (Pull 전) | `e2e/results/hotfix/E2E_FULL_TEST_SUMMARY_2026-02-20_02-17-51.md` |
|
||||
| 4차 실행 요약 (Pull 후) | `e2e/results/hotfix/E2E_FULL_TEST_SUMMARY_2026-02-20_14-27-40.md` |
|
||||
| 리그레션 #1 상세 | `e2e/results/hotfix/Fail-create-delete-acc-deposit_2026-02-20_13-29-50.md` |
|
||||
| 리그레션 #2 상세 | `e2e/results/hotfix/Fail-create-delete-board_2026-02-20_13-30-19.md` |
|
||||
| 진단 스크린샷 | `e2e/results/hotfix/screenshots/diag_create-delete-*.png` |
|
||||
Reference in New Issue
Block a user