8.4 KiB
8.4 KiB
tdc114plus 테스트 자동화 스크립트 계획
작성일: 2026-07-02 상태: v1.0 초기 스크립트 기준
목적: docs/00_policy_tdc114plus_testing_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/api-smoke.sh |
TDC114_API_BASE 대상 Baron SSO 연동 API 최소 smoke test 실행. TDC114_SMOKE_PHONE이 있으면 TDC114_SMOKE_AUTH_FLOW에 따라 legacy phone-login 호환 경로 또는 headless 링크 흐름을 확인 |
TDC114_API_BASE=http://127.0.0.1:5000 ./scripts/api-smoke.sh |
scripts/smoke.env.example |
authenticated smoke용 로컬 env 예시 파일. scripts/.env.smoke.local로 복사해 TDC114_API_BASE, TDC114_SMOKE_PHONE 값을 넣어 사용 |
cp scripts/smoke.env.example scripts/.env.smoke.local |
scripts/smoke.staging.env.example |
staging Baron SSO 검증용 env 예시 파일. scripts/.env.staging.local로 복사해 TDC114_API_BASE, TDC114_SMOKE_PHONE, optional expected label 값을 넣어 사용 |
cp scripts/smoke.staging.env.example scripts/.env.staging.local |
scripts/bootstrap-baron-api-env.sh |
Baron SSO API worktree의 .env.sample을 바탕으로 로컬 smoke용 .env를 생성하고 localhost/알림 비활성 override를 추가 |
./scripts/bootstrap-baron-api-env.sh |
scripts/check-baron-api-env.sh |
Baron SSO API worktree의 .env, compose, config, Docker runtime 준비 상태를 점검해 API smoke 가능 여부를 빠르게 확인 |
./scripts/check-baron-api-env.sh |
scripts/manual-postlogin-run.sh |
Android target에 dart-define을 포함한 flutter run 경로로 앱을 띄운다. 기본은 Baron SSO Hosted Login + PKCE 진입이며, 예외적으로만 legacy local phone-login bootstrap으로 post-login 상태를 seed 한다. 내부 호출은 flutter-docker.sh run ... 형태를 사용한다 |
TDC114_SMOKE_ENV_FILE=scripts/.env.android-device.local TDC114_FLUTTER_DEVICE_ID=<PHYSICAL_DEVICE_ID> ./scripts/manual-postlogin-run.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를 Dart define으로 주입해 Android 기준 flutter drive --driver=test_driver/integration_driver.dart --target=integration_test/app_smoke_test.dart로 실행한다. Android preflight는 실기기 우선 기준이며 emulator는 fallback이다. TDC114_SMOKE_PHONE이 있으면 실제 로그인 smoke까지 확장한다. TDC114_SMOKE_ASSUME_LOGGED_IN=1일 때 기본 seed는 mock이고, legacy phone-login bootstrap은 명시적 예외 모드다 |
TDC114_API_BASE=http://127.0.0.1:5000 ./scripts/integration_tests.sh |
scripts/redteam/run_all.sh |
현재 AI 기능 없음 안내 | LLM/프롬프트 기반 기능이 실제 추가될 때 |
3. Phase별 사용 기준
Phase 3: Mock 기반 1차 UI
필수:
./scripts/format-dart.sh
./scripts/quality-gate.sh
선택:
./scripts/save-snapshots.sh
단, snapshot 산출물이 생긴 뒤 사용한다.
Phase 4: 실제 API 연동
필수 후보:
TDC114_API_BASE=https://staging.example.com ./scripts/api-smoke.sh
./scripts/check-baron-api-env.sh
TDC114_API_BASE=https://staging.example.com ./scripts/integration_tests.sh
현재 구현 상태:
app/integration_test/app_smoke_test.dartscaffold 완료- 로그인 화면 표시, 빈 전화번호 validation smoke는 항상 실행 가능
TDC114_SMOKE_PHONE이 있으면 실제 로그인 후 직원검색 화면 진입 smoke까지 확장scripts/.env.smoke.local이 있으면TDC114_API_BASE,TDC114_SMOKE_PHONE을 자동으로 읽는다api-smoke.sh는 optionalTDC114_SMOKE_AUTH_FLOW=phone-login|link를 지원한다. staging 신규 승인 로그인 검증은link를 사용한다- staging 검증 시에는
TDC114_SMOKE_ENV_FILE=scripts/.env.staging.local방식으로 별도 env 파일을 지정할 수 있다 scripts/integration_tests.sh는 Android 기준flutter drive와test_driver/integration_driver.dart를 사용해 현재 Flutter 버전의 unit/integration 혼합 실행 제한을 피한다scripts/integration_tests.sh는 Android target 정보가 주어지면scripts/check-android-device-env.sh를 먼저 호출해 실기기/에뮬레이터offline/refused상태를 선제 차단한다scripts/integration_tests.sh는No supported devices connected.실패를 만나면 Android 실기기 우선, emulator fallback 또는 추가 desktop/web runner 필요 안내를 함께 출력scripts/integration_tests.sh는 optionalTDC114_SMOKE_EXPECTED_NAME,TDC114_SMOKE_EXPECTED_TENANT_LABEL을 Dart define으로 전달해 staging 계정 기준 기대 텍스트를 추가 검증할 수 있다
실환경 연동 완료 조건:
- Baron SSO backend 또는 staging API endpoint 실행
- Baron SSO
.env및config/runtime 파일 준비 - 실제 로그인까지 확인할 경우 민감정보 없는
TDC114_SMOKE_PHONE테스트 계정 준비 - staging 또는 local mock API endpoint 확정
- 민감정보 없는 test fixture 사용
staging 승인 로그인 검증 절차:
- 상세 시나리오는
docs/scenario_staging_baron_sso_login_verification_2026-07-06.md를 따른다.
Phase 5: 핵심 액션
필수 후보:
./scripts/quality-gate.sh
./scripts/perf_smoke.sh
추가 예정:
- 전화걸기/문자보내기 URL 생성 테스트
- 즐겨찾기 로컬 저장소 테스트
Phase 6: 빌드/배포 준비
필수 후보:
./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는 보류 상태로 유지한다. - 자동화 스크립트 실행 결과는
docs/test-logs/YYYY-MM-test-execution-log.md에 월별로 누적 기록한다.
5. Playwright MCP 활용 예정
Playwright MCP는 향후 web/preview 기반 화면 확인이 가능해지는 시점부터 테스트 정책에 활용한다.
우선 적용 후보:
- 로그인 화면 smoke test
- 직원목록/검색/가족사 필터 화면 회귀 확인
- 직원 상세 화면 표시 확인
- screenshot 기반 UI 리뷰 자료 생성
- 텍스트 overflow, 주요 버튼 표시, 라우팅 이동 확인
현재는 Flutter web/preview 실행 방식이 확정되지 않았으므로 별도 scripts/playwright-* 파일은 만들지 않는다. 실행 방식이 확정되면 Playwright MCP 시나리오 문서와 월별 테스트 로그 기록 형식을 추가한다.
Playwright MCP 테스트 실행 전 절차:
- 실행 가능한 Flutter web/preview 또는 Baron SSO 화면 대상이 준비되면 사용자에게 먼저 알리고 확인을 받는다.
- 사용자 확인 후
docs/00_policy_tdc114plus_testing_2026-07-02.md와 본 문서에 테스트 정의, 절차, 성공 기준, 로그 기록 방식을 추가한다. - 문서 갱신 이후 Playwright MCP 테스트를 실행한다.
- 실행 결과는
docs/test-logs/YYYY-MM-test-execution-log.md에 누적 기록한다.