# recordingtest 사내 WPF 3D 편집 응용(자체 엔진 **HmEG**, MEF plugin 아키텍처)에 대한 **사용자 입력 회귀 테스트 자동화 도구**. 도구 자체이지 SUT가 아니다. 자세한 운영 지침은 [CLAUDE.md](CLAUDE.md), 현재 진행 상태는 [PROGRESS.md](PROGRESS.md), 다음 할 일은 [PLAN.md](PLAN.md)를 참고. ## 핵심 전략 — Golden-file 회귀 수동 테스트 입력을 레코딩 → 리플레이 → 결과 저장 파일을 정규화 후 baseline과 diff. ApprovalTests 패턴과 동형이며 SUT 코드 변경 협조를 최소화하기 위한 의도적 선택이다. ``` [수동 테스트] → 입력 레코드 + 결과 파일 A (approved baseline) [회귀 시점] → 입력 리플레이 → 결과 파일 B → normalize → diff(A, B) ``` ## 모듈 구성 | 모듈 | 책임 | 상태 | |------|------|------| | [Recordingtest.SutProber](src/Recordingtest.SutProber/) | SUT 정적 probe (plugin/Json/assembly 카탈로그) | PoC pass | | [Recordingtest.Recorder](src/Recordingtest.Recorder/) | 입력 캡처 (UIA element path + offset + 키/마우스/포커스) | PoC pass | | [Recordingtest.Player](src/Recordingtest.Player/) | 시나리오 재생, 비동기 동기화 | PoC pass | | [Recordingtest.Normalizer](src/Recordingtest.Normalizer/) | 결과 파일 정규화 (timestamp/GUID/path/float/order) | PoC pass | | [Recordingtest.DiffReporter](src/Recordingtest.DiffReporter/) | approved vs received diff 리포트 | PoC pass | | [Recordingtest.EngineBridge.Client](src/Recordingtest.EngineBridge.Client/) + [Recordingtest.EgPlugin](src/Recordingtest.EgPlugin/) | HmEG 내부 상태 sidecar (MEF plugin masquerade + HttpListener) | v2 pass | | [Recordingtest.Runner](src/Recordingtest.Runner/) | 5-모듈 E2E 파이프라인 + 실패 triage | PoC pass | ## 작업 사이클 — Planner / Generator / Evaluator Anthropic harness design 원칙을 채택. 같은 에이전트가 생성과 평가를 겸하지 않는다. 1. `/contract ` — Sprint Contract 작성 (`docs/contracts/.md`, 검증 가능한 DoD) 2. Generator — 계약 기준으로 구현 3. `/evaluate ` — 독립 evaluator가 채점, pass 시에만 PROGRESS.md 갱신 ## 기술 스택 - **언어**: C# / .NET (SUT와 동일 생태계) - **UI 자동화**: [FlaUI](https://github.com/FlaUI/FlaUI) 1순위, Win32 low-level hook hybrid - **시나리오 포맷**: YAML/JSON (git diff 친화적) - **베이스라인**: `*.approved.{ext}` / `*.received.{ext}` ## 디렉터리 ``` recordingtest/ ├── src/ # 모듈별 C# 프로젝트 ├── scenarios/ # 시나리오 YAML ├── docs/ │ ├── contracts/ # Sprint Contracts + evaluations │ ├── history/ # 작업 히스토리 │ ├── sut-catalog/ # sut-prober 산출물 │ └── guides/ # smoke test, deploy 가이드 ├── CLAUDE.md # 에이전트 운영 지침 ├── PROGRESS.md # 완료 상태 └── PLAN.md # 우선순위 큐 ``` ## 저장소 - Origin: https://gitea.hmac.kr/kimminsung/recordingtest - 이슈/PR은 동일 Gitea, 커밋 메시지에 `#N` 참조