- 1차 실행 (21:48): 184 시나리오, 175 PASS / 9 FAIL, 72.1분 - 2차 실행 (23:27): 184 시나리오, 175 PASS / 9 FAIL, 72.3분 - 두 결과 100% 동일 → flaky 테스트 0건 확인 - 9 FAIL은 실제 버그 5건 (BUG-SORT/FILTER/REDIRECT/BATCH-DELETE/PERF) - 버그 리포트: BUG-REPORT_quality-improvement-exposed_2026-02-19.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
6.7 KiB
Bug Report: E2E 품질 개선으로 노출된 실제 버그 9건
작성일: 2026-02-19 21:53 테스트 실행: 2026-02-19_21-48-03 (72.1분, 184 시나리오) 배경: Phase 1~3 품질 개선 (R.ok=true false positive 제거, rows[0] flaky 패턴 제거, E2E_TEST_ 표준화) 결과: 175 PASS / 9 FAIL (95.1%) — 이전 184/184 (100%)에서 숨겨졌던 실제 버그 노출
요약
| # | Bug ID | 우선순위 | 카테고리 | 영향 모듈 | 설명 |
|---|---|---|---|---|---|
| 1 | BUG-SORT-001 | HIGH | 기능 미구현 | 회계/인사/판매/게시판 | 컬럼 정렬 미구현 (8개 페이지) |
| 2 | BUG-FILTER-001 | HIGH | 기능 미동작 | 회계 > 매출관리 | 거래처/매출유형 필터 미동작 |
| 3 | BUG-REDIRECT-001 | MEDIUM | UX 결함 | 회계 > 어음/입금관리 | 등록 후 목록 리다이렉트 미발생 |
| 4 | BUG-BATCH-DELETE-001 | MEDIUM | 데이터 정리 | 회계 > 어음/입금관리 | 연속 삭제 시 2번째 데이터 미탐지 |
| 5 | BUG-PERF-001 | LOW | 성능 | 생산 > 품목관리 | 테이블 로드 10초 초과 |
BUG-SORT-001: 컬럼 정렬 미구현 (8개 페이지)
우선순위: HIGH 영향 페이지:
- 회계관리: 어음관리, 입금관리, 거래처관리
- 인사관리: 사원관리
- 게시판: 자유게시판
- 판매관리: 거래처관리, 수주관리, 견적관리
증상: 테이블 컬럼 헤더 클릭 시 데이터 정렬 순서 변화 없음 검증 방법: 컬럼 클릭 전후 첫 번째 행 데이터 비교 → 동일 테스트 결과:
pagination-sort-acc: 어음(FAIL), 입금(FAIL), 거래처(FAIL)pagination-sort-hr: 사원(FAIL), 자유게시판(FAIL)pagination-sort-sales: 거래처(FAIL), 수주(FAIL), 견적(FAIL)
이전 테스트에서 숨겨진 이유: R.ok=true 무조건 반환으로 정렬 미동작을 감지하지 못함
권장 조치: 테이블 컬럼 정렬 기능 구현 (오름차순/내림차순 토글)
BUG-FILTER-001: 거래처/매출유형 필터 미동작 (매출관리)
우선순위: HIGH 영향 페이지: 회계관리 > 매출관리
증상:
- 거래처 필터 선택 후 → 모든 행이 해당 거래처로 필터링되지 않음
- 매출유형 필터 선택 후 → 모든 행이 해당 유형으로 필터링되지 않음
검증 방법:
- Step 6: 거래처 콤보박스에서 특정 거래처 선택
- Step 7: 테이블 행 중 선택한 거래처가 아닌 행 존재 → FAIL
- Step 10: 매출유형 콤보박스에서 특정 유형 선택
- Step 11: 테이블 행 중 선택한 유형이 아닌 행 존재 → FAIL
이전 테스트에서 숨겨진 이유: R.ok=true 무조건 반환으로 필터링 결과를 실제 검증하지 않음
권장 조치: 필터 선택 시 API 재호출 또는 클라이언트 필터링 로직 구현/수정
BUG-REDIRECT-001: 등록 후 목록 페이지 리다이렉트 미발생
우선순위: MEDIUM 영향 페이지: 회계관리 > 어음관리, 입금관리
증상: 데이터 등록(POST 성공) 후 URL이 여전히 /accounting/bills?mode=new 또는 /accounting/deposits?mode=new에 머무름. 목록 페이지로 자동 리다이렉트되지 않음.
테스트 결과:
reload-persist-acc-billsStep 3: 등록 후 URL=/accounting/bills?mode=new → FAILreload-persist-acc-depositStep 3: 등록 후 URL=/accounting/deposits?mode=new → FAIL
참고: 후속 스텝에서 수동으로 목록 복귀 후 나머지 검증(새로고침 후 데이터 유지, 삭제)은 모두 PASS. 실제 데이터는 정상 생성됨.
이전 테스트에서 숨겨진 이유: CREATE 스텝의 URL 검증이 R.ok=true로 우회됨
권장 조치: 등록 성공 시 router.push('/accounting/bills') 리다이렉트 로직 확인
BUG-BATCH-DELETE-001: 연속 삭제 시 2번째 데이터 미탐지
우선순위: MEDIUM 영향 페이지: 회계관리 > 어음관리, 입금관리
증상:
batch-create-acc-bills: 3건 생성 후 VERIFY에서 E2E_TEST_어음_ 접두사 매칭 0건 (타임스탬프 기반 검색 실패). DELETE #1에서도 데이터 미탐지.batch-create-acc-deposit: 3건 생성 + VERIFY PASS + DELETE #1 성공 후 DELETE #2에서 2번째 E2E_TEST_ 데이터 미탐지.
근본 원인 분석:
- 어음관리: 생성 데이터의 어음번호/거래처명에
E2E_TEST_어음_{timestamp}패턴이 포함되지 않을 가능성. 기존 E2E_TEST_EB 접두사 데이터가 있으나 VERIFY 타임스탬프와 불일치. - 입금관리: DELETE #1 성공 후 목록이 갱신되면서 나머지 E2E_TEST_ 데이터가 다음 페이지로 밀림 (페이지네이션 이슈).
이전 테스트에서 숨겨진 이유: DELETE 실패 시 R.ok=true로 무조건 PASS 처리
권장 조치:
- 연속 삭제 시 각 삭제 후 목록 새로고침 추가
- 생성 데이터 네이밍 패턴 일관성 확인
BUG-PERF-001: 품목관리 테이블 로드 10초 초과
우선순위: LOW 영향 페이지: 생산관리 > 품목관리
증상: wait_for_table 액션이 10초 타임아웃. 실제로 테이블 행이 0건 (데이터 없음).
테스트 결과:
workflow-inventory-cycleStep 2: 10초 타임아웃 → FAIL- Step 3 (CAPTURE_ITEM): 테이블 데이터 0건으로 진행
근본 원인: 테이블에 데이터가 없는 경우 wait_for_table이 빈 테이블도 감지하지 못하거나, 테이블 로드 자체가 느림.
이전 테스트에서 숨겨진 이유: 이전 워크플로우 생성기가 R.ok=true로 타임아웃을 무시
권장 조치:
- 빈 테이블 상태에서
wait_for_table타임아웃 허용 로직 추가 - 품목관리 페이지 초기 로드 성능 확인
종합 분석
버그 분류
| 분류 | 건수 | 설명 |
|---|---|---|
| 기능 미구현 | 1건 (8페이지) | 컬럼 정렬 |
| 기능 미동작 | 1건 | 필터링 |
| UX 결함 | 1건 (2페이지) | 등록 후 리다이렉트 |
| 데이터 처리 | 1건 (2페이지) | 연속 삭제 |
| 성능 | 1건 | 테이블 로드 지연 |
Phase별 노출 원인
| Phase | 노출된 버그 | 설명 |
|---|---|---|
| Phase 1 (false positive 제거) | 5건 전부 | R.ok=true → 조건부 검증으로 변경하여 실제 실패 감지 |
| Phase 2 (rows[0] 수정) | 간접 기여 | 스마트 행 타겟팅으로 검증 정확도 향상 |
| Phase 3 (E2E_TEST_ 표준화) | 간접 기여 | 데이터 식별 정확도 향상 |
결론
184개 시나리오 중 175개 PASS (95.1%). 9개 FAIL은 이전에 R.ok=true false positive로 숨겨졌던 실제 버그로, 품질 개선의 의도된 결과. 개발팀에서 위 5개 버그 ID에 대해 수정 후 재검증이 필요함.