5.4 KiB
5.4 KiB
tdc114plus 테스트 정책
작성일: 2026-07-02 최종 개정일: 2026-07-09 상태: v2.1
목적: tdc114plus Flutter 앱의 mock 기반 개발, Swagger 계약 검증, 실제 API 연동 검증 기준을 단계별로 정의한다.
상위 기준 문서:
docs/00_policy_tdc114plus_decoupled_api_migration_2026-07-07.mddocs/00_policy_tdc114plus_development_2026-07-02.mddocs/00_contract_tdc114plus_api_2026-07-02.md
1. 적용 범위
본 정책은 아래 영역에 적용한다.
- Flutter 앱 화면, 라우팅, 상태관리
- API client, repository, provider
- API 계약 기반 model, DTO, JSON 변환
- Baron SSO Hosted Login + PKCE 시작/callback/token 교환 흐름
- 직원검색, 조직도, 직원 상세
- 즐겨찾기 로컬 저장
- 전화걸기, 문자보내기 등 플랫폼 액션
2. 기본 검증 게이트
Flutter 앱 코드를 변경한 모든 작업은 아래 검증을 통과해야 한다.
./scripts/flutter-docker.sh analyze
./scripts/flutter-docker.sh test
필요 시 formatter를 적용한다.
./scripts/format-dart.sh
검증 실패 상태의 코드는 main 브랜치에 반영하지 않는다.
3. 테스트 레이어
3.1 Mock 레이어
목적:
- 백엔드 미구현 상태에서도 화면과 상태 흐름을 개발 가능하게 유지한다.
대상:
- widget test
- fake/mock repository
- local mock data
핵심 검증:
- 로그인 화면 표시
- Baron SSO 로그인 시작 버튼 렌더링
- 앱 내부에서 휴대폰번호를 직접 입력받지 않는지 확인
- callback token 교환 완료 후 첫 화면 진입
- 직원검색, 조직 탐색, 즐겨찾기, 상세 화면 흐름
3.2 계약 레이어
목적:
- Swagger 기준 request/response DTO와 앱 모델 간 불일치를 조기에 찾는다.
대상:
fromJson,toJson- API error parsing
- request body 생성
- polling 상태값 파싱
핵심 검증:
- OIDC authorization URL query 생성
- PKCE
state,nonce,code_verifier저장/검증 - token endpoint 응답 DTO
- 세션 저장 모델
- directory/organization DTO
- 400/401/403/429/timeout 처리
3.3 실제 API 레이어
목적:
- mock 구조가 실제 API와 동일한 사용자 흐름을 유지하는지 확인한다.
대상:
- smoke test
- integration test
- staging 또는 동등 환경 점검
핵심 검증:
- Hosted Login authorization endpoint 진입
- App Link callback 수신
- PKCE token 교환 후 세션 저장
- 로그인 후 직원검색 첫 화면 진입
- directory/organization 실제 응답 정합성
4. 우선 테스트 대상
강한 단위 테스트가 필요한 영역:
- API model
fromJson,toJson - API error parsing
- authorization URL 생성 규칙
- 로그인 상태 전이
state,nonce,code_verifier처리- 세션 저장/삭제/복원
- 직원검색 query/filter 생성
- 가족사/조직 필터 상태
- 즐겨찾기 추가/삭제/조회
- API 실패, 401, 403, 429, timeout 처리
화면 테스트가 필요한 영역:
- 앱 실행 후 로그인 화면 표시
- 앱 내부 전화번호 입력창 미노출
- callback 처리 완료 후 직원검색 진입
- 직원 검색어 입력과 결과 표시
- 가족사 필터 선택/해제
- 조직도 탐색
- 직원 상세 표시
- 전화걸기/문자보내기 액션 노출
- 즐겨찾기 토글
5. 단계별 테스트 전략
5.1 Phase A: Mock 우선 개발
목표:
- API 없이도 앱의 핵심 화면 흐름을 검증한다.
완료 기준:
flutter analyze통과flutter test통과- mock repository 기반 주요 widget test 존재
5.2 Phase B: 계약 정합성 검증
목표:
- Swagger 기준 DTO와 앱 모델의 구조를 맞춘다.
완료 기준:
- DTO 파싱/직렬화 테스트 통과
- 에러 응답 테스트 통과
- 로그인 흐름 상태값 테스트 통과
5.3 Phase C: 실제 API 연동
목표:
- Hosted Login + PKCE 흐름이 실제 Baron SSO RP 설정과 맞물리는지 확인한다.
실행 원칙:
- 실제 API smoke는 환경 준비 확인 후 실행한다.
- local, staging, 기타 검증 환경 중 어떤 환경을 쓰더라도 동일한 계약 기준을 적용한다.
- 실제 검증은
authorization URL 열기 -> Baron SSO Hosted Login에서 인증 -> App Link callback -> state 검증 -> token 교환 -> 세션 저장 -> 첫 화면 진입흐름 완료를 기준으로 본다. phone-login,link/poll은 개발용 fallback 또는 Baron SSO 내부 구현 참고일 뿐, 신규 앱 기본 로그인 검증 완료로 간주하지 않는다.
완료 기준:
- authorization URL query 확인
- callback 수신과 state 검증 확인
- token 교환 후 세션 저장 확인
- 로그인 후 첫 화면 진입 확인
- directory/organization 응답 필드 정합성 확인
6. 수동 검증 원칙
- Android target 검증은 mock 검증과 별도로 본다.
- 로그인 완료 가정 세션 주입 경로는 post-login 기능 점검용으로만 사용한다.
- 실제 승인 완료 검증을 세션 bootstrap 경로로 대체하지 않는다.
- staging 반영 검토 전에는 승인 완료 end-to-end를 최소 1회 이상 확인하는 것을 목표로 한다.
7. 문서 및 로그 반영 원칙
- 테스트 기준이 바뀌면 정책 문서를 먼저 갱신한다.
- 중요한 실행 결과는
docs/test-logs/에 기록한다. - 실패 시에는 원인, 재현 조건, 후속 조치를 함께 남긴다.
- mock 기준 통과와 real API 기준 통과를 구분해서 기록한다.