Skip to content

Latest commit

 

History

History
54 lines (45 loc) · 6.57 KB

round-1.md

File metadata and controls

54 lines (45 loc) · 6.57 KB

1차 QA — 2026-07-19

담당: 이준혁 · 상태: 완료 · 원본: 노션 QA DB에서 이관(2026-08-25)

테스트 환경

항목 내용
기기 Android Emulator Medium_Phone (arm64, Android 17 / targetSdk 36)
빌드 develop 브랜치 78551075 기준 debug 빌드 (:app:installDebug), versionName 1.0
서버 https://afternote.kro.kr/api/v1/ (라이브)
계정 QA 전용 네이버 계정 (이메일 로그인) — 계정 정보는 레포에 두지 않는다
방식 에뮬레이터 수동 시나리오 QA + logcat(OkHttp) 네트워크 로그 + 소스코드 교차 확인

발견 사항

# 구분 발생 경로 문제 현상 기대 동작 원인 / 비고
1 서버 노트 탭 → 애프터노트 작성(갤러리 및 파일) → 전체 입력 → 등록 POST /api/v1/afternotes → 500 Field 'created_at' doesn't have a default value — 등록이 서버에서 항상 실패 등록 성공 서버 DB afternote.created_at 기본값/INSERT 누락
2 클라 #1과 동일 경로 500으로 실패해도 안내 없이 무반응. 사용자는 등록된 것으로 오인 실패 안내 + 재시도 유도 Repository가 에러를 로그만 남기고 UI 전달 안 함
3 클라 노트 탭 → 작성 → 종류=소셜네트워크 → 등록 "수신자를 한 명 이상 선택해 주세요" 검증에 걸리지만 수신자 지정 UI가 없어 등록 원천 불가 갤러리/추모처럼 수신자 지정 섹션 노출 SocialNetworkEditorContent.kt가 recipientSection을 받고도 렌더링 안 함
4 클라+서버 타임레터 목록 → ⋯ → 삭제 클라는 POST /time-letters/delete, 서버는 500 "Request method 'POST' is not supported" → 삭제 불가. 확인 팝업·실패 안내도 없음 삭제 성공(또는 실패 안내), 삭제 전 확인 팝업 HTTP 메서드 계약 불일치
5 클라 로그인 → 올바른 이메일 + 틀린 비밀번호 서버 401을 반환해도 화면 무변화, 에러 문구 없음 실패 사유 표시 실패 상태가 UI에 미반영
6 클라 애프터노트/타임레터 작성 중 → 백 키 또는 ← 경고 없이 종료, 내용 전부 소실. 백 키 동작도 비일관 "작성 중인 내용이 사라집니다" 확인 팝업 이탈 가드 미구현
7 클라 기록 탭 → 데일리 질문 → + → 임시저장 서버 저장은 성공(200, draft:true)하나 목록에 안 보이고 이어쓰기도 안 됨 → 사실상 유실 임시저장 목록 표시 또는 이어쓰기 제안 /daily-questions/today 응답의 draft:true를 클라가 무시
8 클라 데일리질문·일기 저장 → 목록 복귀 저장 직후 목록 미갱신(빈 화면 유지). 홈의 일기 TOTAL·수신인 지정 배지도 앱 재시작 시에만 갱신 저장/복귀 시 재조회 화면 복귀 시 refetch 누락
9 클라 홈 탭 → TODAY'S QUESTION 카드 날짜가 항상 "2026.04.10", 질문도 실제 오늘 질문이 아닌 기본 문구 고정 실제 오늘 날짜·질문 TodayQuestionCard.kt:37 기본값 하드코딩, HomeTabMindRecordLazyItems.kt:41에서 실데이터 미전달
10 클라 홈 탭 → "수신인 지정 미완료" 칩 탭 클릭 가능한 UI인데 무동작 수신자 등록 화면으로 이동 클릭 핸들러 미연결
11 클라 설정 → 상단 바로가기 3종 고객센터·공지사항·수신자목록 아이콘 모두 무반응 (하단 리스트의 같은 메뉴는 정상) 각 화면으로 이동 클릭 핸들러 미연결
12 클라 타임레터 탭 → 우상단 프로필/설정 아이콘 둘 다 무반응 (홈의 같은 아이콘은 정상) 설정/프로필 이동 타임레터 헤더에만 핸들러 미연결
13 클라 노트 탭 → 작성 → 남기실 말씀 카드의 "등록" 카드별 "등록" 버튼이 무동작 정의된 동작 수행(또는 버튼 제거) AfternoteEditorContent.kt:268,300 onMessageRegisterClick = {} 빈 람다
14 클라 노트 탭 → 작성 → 추억 노트 → 추억 플레이리스트 카드엔 "16개의 노래"인데 진입하면 "총 0곡". 곡 추가 버튼도 없음 실제 곡 수 표시, 곡 추가 진입점 EditorFormState.kt:49 playlistSongCount: Int = 16 하드코딩
15 클라 기록 탭 → 주간리포트 상단 카운트는 데일리질문 1·일기 1인데 본문은 "0일의 마음을 기록하셨네요" 기록 일수 정확 표시 집계 로직/필드 불일치
16 클라 타임레터 목록 → 상세 헤더의 제목·수신인·발송예정일이 밝은 배경 위 흰 텍스트로 판독 불가 대비 확보 헤더 배경 이미지 없을 때 대비 미처리
17 클라 설정 → 수신자 목록 / 타임레터 → 수신인 선택 검색창 placeholder가 리터럴 "Text Field" 한국어 안내 문구 placeholder 미지정
18 클라 기록 탭 → 데일리 질문(0건) / 설정 → 공지사항(0건) 빈 목록일 때 안내 없이 완전 빈 화면 빈 상태 안내 빈 상태 UI 누락
19 클라 기록 탭 → 일기(0건) 빈 상태 문구가 노트 탭 문구 재사용이라 맥락 불일치 일기 맥락 문구 문구 재사용

서버 보안

# 심각도 발생 경로 문제 현상 기대 동작
S1 중간 애프터노트 등록 실패 응답 (#1) 500 응답 message에 SQL문·컬럼명 등 내부 정보 노출 내부 오류는 일반화된 메시지로 치환, 상세는 서버 로그로만

기획 의도 확인 필요

# 발생 경로 내용
O1 설정 → 수신자 등록/선택 완료 성공 시 피드백 없이 조용히 이전 화면 복귀
O2 노트 작성(갤러리) → 수신자 추가 등록해 둔 수신자 선택이 아니라 이름/관계/전화번호를 새로 입력받음. 재사용이 안 되는 게 의도인지
O3 설정 → 패스키 관리 → 비밀번호로 인증하기 숫자 4자리 키패드가 뜨는데 계정 비밀번호는 영문+특수문자
O4 타임레터 작성 → 발송 시간 미선택 → 등록 시간 없이 등록되며 00:00으로 저장. 시간이 필수인지
O5 타임레터 4건째 → 무료 플랜 팝업 → "구독 후 기록하기" 팝업만 닫힘. 코드상 TODO(구독 화면 미구현)
O6 Welcome → 전달 받은 기록 확인하기 빈 상태 문구가 "수신자를 등록하여" — 수신자 입장에선 발신자 등록. "마지막 확인: " 뒤 빈 값