8.2 KiB
tdc114plus 테스트 정책
작성일: 2026-07-02 상태: v1.0 1차 개발 기준 확정
목적: tdc114plus Flutter 앱 개발 중 적용할 테스트 기준, 자동화 원칙, 단계별 검증 범위를 정의한다. 본 문서는 docs/references/ai-testing/ai_testing_policy_draft.md의 일반 원칙 중 tdc114plus에 적용 가능한 부분을 앱/API/보안 중심으로 재해석한 정식 정책이다.
1. 적용 범위
본 정책은 아래 영역에 적용한다.
- Flutter 앱 화면, 라우팅, 상태관리
- API client, repository, provider
- API 계약 기반 model, DTO, JSON 변환
- Baron SSO 로그인 연동
- orgFront 직원/조직 데이터 연동
- 전화번호, 개인정보, 즐겨찾기 로컬 저장
- 전화걸기, 문자보내기 등 플랫폼 액션
현재 tdc114plus는 LLM/AI 추론 기능을 포함하지 않으므로 아래 항목은 1차 적용 대상에서 제외한다.
- AI 모델 추론 결과 평가
- Evaluator LLM 기반 자동 채점
- multi-engine AI 교차 검증
- 프롬프트 jailbreak/redteam matrix
- PSI 기반 AI 학습 데이터 drift 계산
위 항목은 향후 앱에 실제 AI 기능이 추가될 경우 별도 정책으로 확장한다.
2. 기본 검증 게이트
Flutter 앱 코드를 변경한 모든 작업은 아래 검증을 통과해야 한다.
./scripts/flutter-docker.sh analyze
./scripts/flutter-docker.sh test
추가로 Dart 파일을 많이 수정했거나 새 파일을 추가한 경우 formatter를 적용한다.
./scripts/format-dart.sh
검증 실패 상태의 코드는 main 브랜치에 반영하지 않는다.
자동화 스크립트의 구현 상태와 향후 보강 계획은 아래 문서를 따른다.
docs/tdc114plus-script-automation-plan-2026-07-02.md
3. 테스트 강도 기준
3.1 강한 테스트가 필요한 영역
아래 영역은 결정론적 로직으로 보고 단위 테스트를 우선 작성한다.
- API model
fromJson,toJson - API error parsing
- 전화번호 입력 검증 및 정규화
- 로그인 성공/실패 상태 전이
- 인증 token 저장/삭제
- 직원검색 query/filter 생성
- 가족사/조직 필터 상태
- 즐겨찾기 추가/삭제/조회
- 개인정보 표시/마스킹 정책
- API 실패, 401, 403, 404, timeout 처리
이 영역의 테스트는 통과율 100%를 기준으로 한다.
3.2 화면 테스트가 필요한 영역
아래 화면 흐름은 widget test 또는 integration test로 검증한다.
- 앱 실행 후 로그인 화면 표시
- 전화번호 입력 후 로그인 성공/실패 흐름
- 직원목록 진입
- 직원 검색어 입력과 결과 표시
- 가족사 필터 선택/해제
- 조직도 화면 탐색
- 직원 상세 화면 표시
- 전화걸기/문자보내기 액션 노출
- 즐겨찾기 토글
Phase 3에서는 실제 API가 없으므로 mock 데이터와 fake repository를 사용한다.
4. 단계별 테스트 전략
4.1 Phase 3: Mock 기반 1차 UI
목표:
- API 없이 앱의 핵심 화면 흐름을 검증한다.
- 확정 API 계약과 Dart model이 화면에서 자연스럽게 사용되는지 확인한다.
필수 테스트:
- mock 직원 목록 렌더링
- 검색어 입력 시 목록 필터링
- 가족사 필터 선택 시 목록 필터링
- 직원 상세 진입
- 즐겨찾기 토글 상태 변경
- 로그인 화면에서 직원목록 화면으로 이동
완료 기준:
flutter analyze통과flutter test통과- 주요 mock 시나리오 widget test 추가
4.2 Phase 4: 실제 API 연동
목표:
- Baron SSO와 orgFront 연동 시 계약 불일치를 조기에 발견한다.
- 인증/권한/오류 처리 흐름을 검증한다.
필수 테스트:
- API response parsing
- 로그인 성공/실패
- 미등록 사용자 오류
- session token 저장/삭제
- 직원목록 API 성공/실패
- 조직도 API 성공/실패
- 401/403 발생 시 재로그인 또는 오류 안내
- 네트워크 timeout 대응
완료 기준:
- API client/repository 단위 테스트
- staging 또는 mock server 기반 연동 테스트
- API 계약 문서와 구현 응답 필드 일치 확인
4.3 Phase 5: 핵심 액션
목표:
- 전화걸기, 문자보내기, 즐겨찾기 기능을 사용자 흐름 기준으로 검증한다.
필수 테스트:
- 전화번호가 없는 직원의 call/sms 액션 비활성
- 전화번호가 있는 직원의 call/sms URL 생성
- 즐겨찾기 로컬 저장/삭제/복원
- 앱 재실행 후 즐겨찾기 유지
완료 기준:
- 플랫폼 액션 wrapper 테스트
- 즐겨찾기 repository 테스트
- 수동 검증 체크리스트 작성
4.4 Phase 6: 빌드/배포 준비
목표:
- Android APK와 최소 iOS 준비 상태를 확인한다.
- 운영 배포 전 보안 민감 영역을 재검토한다.
필수 테스트:
- Android debug APK 빌드
- 앱 시작 smoke test
- 로그인/검색/상세/즐겨찾기 주요 흐름 수동 검증
- token 저장 위치 검토
- 전화번호/이메일/직급 노출 범위 검토
완료 기준:
- APK 빌드 성공
- 주요 수동 검증 체크리스트 통과
- 운영 배포 전 보안 재검토 항목 문서화
5. 커버리지 정책
초기 개발 속도를 고려하여 전체 라인 커버리지 수치를 즉시 강제하지 않는다.
단계별 기준:
| 단계 | 기준 |
|---|---|
| Phase 3 | 핵심 model과 mock UI 흐름 테스트 확보 |
| Phase 4 | API client/repository/error 처리 테스트 확보 |
| Phase 5 | 즐겨찾기와 연락 액션 테스트 확보 |
| Phase 6 | 주요 기능 회귀 테스트와 수동 검증 체크리스트 확보 |
장기 목표:
- 핵심 도메인/model/repository 라인 커버리지 80% 이상
- 로그인, 개인정보, token 처리 영역 테스트 누락 없음
- 주요 사용자 시나리오 90% 이상 테스트 또는 수동 체크리스트로 관리
6. 보안 민감 영역 테스트
아래 항목은 일반 UI 변경보다 높은 기준으로 검증한다.
- 전화번호 로그인
- SSO 미등록 사용자 처리
- session token 저장/삭제
- 로그아웃
- 개인정보 노출 필드
- 직원 검색/상세 조회
- 네트워크 오류와 인증 만료
원칙:
- 미등록 사용자 여부를 과도하게 드러내는 메시지를 피한다.
- 전화번호 원문을 로그에 남기지 않는다.
- token 값을 테스트 fixture나 로그에 실제값으로 남기지 않는다.
- 개인정보 마스킹 정책이 변경되면 model, UI, test를 함께 갱신한다.
7. Mock 데이터 정책
Mock 데이터는 확정 API 계약과 같은 field 이름을 사용한다.
필수 mock case:
- 로그인 성공 사용자
- 로그인 실패 사용자
- 직원목록 0건
- 직원목록 다건
- 가족사 2개 이상
- 조직도 parent/child 구조
- 전화번호가 없는 직원
- 이메일이 없는 직원
- 즐겨찾기 등록된 직원
Mock 데이터가 API 계약과 달라지는 경우 API 계약 문서를 먼저 확인하고, 필요한 경우 계약 문서와 model/test를 함께 수정한다.
8. 리포트 및 기록
자동화 검증 결과는 커밋 메시지 또는 작업 완료 보고에 아래 형식으로 요약한다.
검증:
- ./scripts/flutter-docker.sh analyze
- ./scripts/flutter-docker.sh test
세부 테스트 실행 결과는 월별 누적 로그에 기록한다.
docs/test-logs/YYYY-MM-test-execution-log.md
예시:
docs/test-logs/2026-07-test-execution-log.md
각 로그 항목은 YYYY-MM-DD HH:mm KST 단위로 남기고, 목적, 실행 명령, 결과, 주요 출력, 후속 조치를 포함한다.
실행하지 못한 검증이 있으면 이유를 함께 기록한다.
9. 참고 문서와 우선순위
참고 원문:
docs/references/ai-testing/ai_testing_policy_draft.mddocs/references/ai-testing/tdc114plus_test_strategy.mddocs/tdc114plus-script-automation-plan-2026-07-02.mddocs/test-logs/README.md
본 문서는 위 참고문서보다 tdc114plus 개발에 우선 적용한다.
정책 우선순위:
docs/tdc114plus-development-decision-brief-2026-07-01.mddocs/tdc114plus-work-progress-timetable-2026-07-02.mddocs/tdc114plus-development-policy-2026-07-02.mddocs/tdc114plus-testing-policy-2026-07-02.mddocs/tdc114plus-api-contract-2026-07-02.mddocs/baron-sso-reference-source-policy-2026-07-02.mddocs/references/