# tdc114plus 테스트 자동화 스크립트 계획 작성일: 2026-07-02 상태: v1.0 초기 스크립트 기준 목적: `docs/tdc114plus-testing-policy-2026-07-02.md`에 정의한 테스트 정책을 실제 `scripts/` 파일과 연결하고, 즉시 사용 가능한 스크립트와 향후 구현이 필요한 scaffold 스크립트를 구분한다. ## 1. 즉시 사용 가능한 스크립트 | 스크립트 | 목적 | 실행 예 | | --- | --- | --- | | `scripts/format-dart.sh` | Docker Flutter 이미지에서 `dart format lib test` 실행 | `./scripts/format-dart.sh` | | `scripts/quality-gate.sh` | `flutter analyze`, `flutter test` 순차 실행 | `./scripts/quality-gate.sh` | | `scripts/generate-release-report.sh` | git 상태와 릴리스 체크리스트 report 생성 | `./scripts/generate-release-report.sh` | | `scripts/perf_smoke.sh` | 현재 앱/테스트 파일 수와 기본 상태 출력 | `./scripts/perf_smoke.sh` | ## 2. Scaffold 상태의 스크립트 아래 스크립트는 파일은 존재하지만, 기반 기능이 아직 없으므로 실행 시 scaffold 안내와 함께 종료한다. | 스크립트 | 현재 상태 | 완성 조건 | | --- | --- | --- | | `scripts/mock-server.sh` | `status`, `stop`은 가능. `start`는 미구현 안내 | API 계약 기반 mock server 구현 | | `scripts/save-snapshots.sh` | snapshot source가 있으면 report 경로로 복사 | widget/integration screenshot 또는 snapshot 생성 체계 | | `scripts/integration_tests.sh` | `TDC114_API_BASE`와 `integration_test/` 필요 | staging API 또는 mock server 기반 integration test | | `scripts/redteam/run_all.sh` | 현재 AI 기능 없음 안내 | LLM/프롬프트 기반 기능이 실제 추가될 때 | ## 3. Phase별 사용 기준 ### Phase 3: Mock 기반 1차 UI 필수: ```bash ./scripts/format-dart.sh ./scripts/quality-gate.sh ``` 선택: ```bash ./scripts/save-snapshots.sh ``` 단, snapshot 산출물이 생긴 뒤 사용한다. ### Phase 4: 실제 API 연동 필수 후보: ```bash TDC114_API_BASE=https://staging.example.com ./scripts/integration_tests.sh ``` 완성 조건: - `app/integration_test/` 테스트 추가 - staging 또는 local mock API endpoint 확정 - 민감정보 없는 test fixture 사용 ### Phase 5: 핵심 액션 필수 후보: ```bash ./scripts/quality-gate.sh ./scripts/perf_smoke.sh ``` 추가 예정: - 전화걸기/문자보내기 URL 생성 테스트 - 즐겨찾기 로컬 저장소 테스트 ### Phase 6: 빌드/배포 준비 필수 후보: ```bash ./scripts/generate-release-report.sh ``` 추가 예정: - Android debug APK build wrapper - 수동 검증 체크리스트 자동 생성 ## 4. 운영 원칙 - 문서에 명령을 추가할 때는 실제 `scripts/` 파일도 함께 추가하거나 scaffold 상태를 명시한다. - scaffold 스크립트는 조용히 성공하지 않고, 미구현이면 non-zero exit code로 종료한다. - 실제 CI gate에 연결할 수 있는 스크립트는 `quality-gate.sh`부터 시작한다. - AI/LLM redteam 자동화는 현재 앱 범위 밖이므로 `redteam/run_all.sh`는 보류 상태로 유지한다.