# task-1156.1: 폐기된 테스트 로직 정리 + 테스트 정합성 전수 점검

## S - Situation
시스템 테스트 스위트 1334건(1326 passed, 8 skipped) 중, `test_task_1096_1_report_template.py`가 이미 존재하지 않는 `report_template` 필드를 검증하는 등 "코드는 바뀌었는데 테스트는 안 바뀐" 불일치가 산재해 있었다.

## C - Complication
스킵된 8건 전수 분석 결과, 인터페이스 이동(5건)과 파일 경로 이동(3건)이 원인이며, 추가로 `design-team.json`의 venus 모델값 변경(`gemini-3-pro-image-preview` → `gemini`)으로 인한 테스트 불일치 1건이 발견되었다. 코딩 표준에 테스트 동시 수정 규칙이 부재하여 동일 패턴이 반복될 구조적 위험이 존재했다.

## Q - Question
폐기된 테스트를 정리하고, 향후 테스트-코드 불일치를 자동으로 감지할 구조를 수립할 수 있는가?

## A - Answer
8건의 영구 스킵 테스트를 전량 제거하고, venus 모델 테스트를 현행 데이터에 동기화하여 **1325 passed, 0 failed, 0 skipped** 달성. CODING-STANDARDS.md에 테스트 동시 수정 의무 규칙을 추가하고, `test_interface_checker.py` 자동 감지 스크립트를 작성하여 하드코딩 경로 불일치와 영구 스킵을 CI 수준에서 모니터링 가능하게 했다.

---

## 작업 내용

### 1. 폐기된 테스트 정리 (8건 제거)

| 파일 | 제거 대상 | 원인 |
|---|---|---|
| test_task_1096_1_report_template.py | 파일명 변경 → test_task_1096_1_org_details.py | report_template 필드 제거 후 파일명 불일치 |
| test_task_1037_1_design_restriction.py | 3개 메서드 (test_forbids_skill_direct_call, test_mentions_design_team_dispatch, test_lists_forbidden_skills) | 규칙이 DIRECT-WORKFLOW.md → dispatch 프롬프트로 이전 |
| test_regression.py | 1개 메서드 (test_dev8_prompt_contains_openclaw) | dev8-team이 openclaw → MCP 기반으로 전환 |
| test_task522.py | 1개 함수 (test_index_html_server_stats_listener) | React 컴포넌트 기반으로 전환 |
| test_hermes_audit.py | TestDoneFile 클래스 (2개 메서드) | done 파일 경로 teams/ → memory/events/ 이전 |
| test_task_1116_1_completion.py | 파일 전체 삭제 | done 파일 경로 이전 + 일회성 완료 확인 전용 |

### 2. venus 모델 테스트 수정

`test_task_1037_1_design_restriction.py::test_venus_model_is_gemini_image_preview` → `test_venus_model_is_gemini`
- design-team.json의 venus 모델이 `gemini-3-pro-image-preview` → `gemini`로 변경되었으나 테스트 미갱신
- 현행 데이터에 맞게 기대값 수정

### 3. CODING-STANDARDS.md 규칙 추가

`teams/shared/CODING-STANDARDS.md` § 7. 테스트에 **테스트-코드 동시 수정 의무** 서브섹션 추가:
- 프로덕션 코드 변경 시 관련 테스트 동시 수정 필수
- 하드코딩된 매직 넘버 검증 금지 (동적 로드 또는 범위 검증 권장)
- 일회성 테스트 vs 회귀 테스트 구분 기준 명시

### 4. 자동 감지 스크립트 (`test_interface_checker.py`)

`teams/dev5/test_interface_checker.py` 신규 작성 (189줄):
- 테스트 파일 내 하드코딩 절대 경로 추출 → 파일 존재 확인
- 영구 스킵 테스트 감지 (@pytest.mark.skip, pytest.skip)
- JSON/텍스트 이중 출력 지원 (`--json` 플래그)

현재 실행 결과: 경로 불일치 2건(mock 내부 false positive), 영구 스킵 20건(조건부 스킵 — 서버 미실행, 파일 미존재 등 정상 동작)

---

## 전수 점검 결과 (닌기르수 감사)

46개 테스트 파일 감사 결과:

- **HIGH 4건**: 하드코딩된 조직원 수(71명), 팀 수(8/12/4), 날짜 포함 경로, 모델명 — 가변 데이터를 매직 넘버로 검증
- **MEDIUM 13건**: 파일 레벨 즉시 모듈 로드, WORKSPACE_ROOT 환경변수 미사용 절대 경로, 실제 파일시스템 의존 E2E 테스트
- **LOW 8건**: 팀원 소속/이름 하드코딩, 복합 허용 팀 목록 고정값

이 중 HIGH 이슈는 조직 재편이나 팀 변경 시 허위 실패를 유발할 수 있으나, 현 시점에서는 전체 통과 상태이므로 별도 태스크로 점진 개선 권장.

---

## 생성/수정 파일 목록

| 파일 | 변경 유형 |
|---|---|
| tests/test_task_1096_1_report_template.py → tests/test_task_1096_1_org_details.py | 이름 변경 |
| tests/test_task_1037_1_design_restriction.py | 수정 (dead code 제거 + venus 모델 수정 + unused import 제거) |
| tests/test_regression.py | 수정 (dead code 제거) |
| tests/test_task522.py | 수정 (dead code 제거) |
| tests/test_hermes_audit.py | 수정 (TestDoneFile 클래스 제거) |
| tests/test_task_1116_1_completion.py | 삭제 |
| teams/shared/CODING-STANDARDS.md | 수정 (§7 테스트 동시 수정 규칙 추가) |
| teams/dev5/test_interface_checker.py | 신규 생성 |

## 테스트 결과

```
Before: 1326 passed, 8 skipped, 0 failed (1334 collected)
After:  1325 passed, 0 skipped, 0 failed (1325 collected)
```

제거: 8 skipped + 1 passed (test_task_1116_1_completion.py::test_done_file_content) = 9건
수정된 테스트 중 실패: 0건

---

## 발견 이슈 및 해결

### 자체 해결 (4건)

1. **파일명-내용 불일치 (test_task_1096_1_report_template.py)** — 파일명을 test_task_1096_1_org_details.py로 변경
2. **venus 모델 테스트 불일치** — design-team.json 모델값 변경 반영 (gemini-3-pro-image-preview → gemini)
3. **8건 영구 스킵 dead code** — 전량 제거
4. **미사용 import os** (test_task_1037_1_design_restriction.py) — 제거

### 범위 외 미해결 (1건)

1. **HIGH 감사 이슈 4건 (하드코딩 매직 넘버)** — 범위 외 사유: test_group_chat.py, test_dispatch.py, test_gstack_analysis.py, test_dashboard_todo_tabs.py의 하드코딩 값은 현재 통과 상태이며, 수정 시 각 모듈의 인터페이스 계약을 재설계해야 하므로 별도 태스크 권장

---

## 셀프 QC 체크리스트

- [x] 1. 영향 파일: 8개 파일 변경/삭제, 테스트 스위트 전체에 영향
- [x] 2. 엣지 케이스: 조건부 스킵 테스트(서버 미실행 등)는 정상 유지 확인
- [x] 3. 작업 지시 일치: 4개 작업 항목 모두 수행
- [x] 4. 보안: 해당 없음 (테스트 코드 정리)
- [x] 5. 테스트 커버리지: 1325 passed, 0 failed, 0 skipped
- [x] 6. 발견 이슈 해결: 4건 자체 해결, 1건 범위 외 사유 명시
- [x] 7. 코드 아키텍처: 불필요 코드 제거, 새 코드 SOLID 준수
- [x] 8. 인터페이스 변경 문서: CODING-STANDARDS.md 갱신 완료
