주소 입력란 테스트는 필수 항목이 비었을 때 오류가 나오는지만 확인하고 끝내기 쉽습니다. 하지만 실제로 문제가 생기는 자리는 대부분 국가를 바꾸거나, 뒤로 갔다가 다시 들어오거나, 입력한 값이 저장되는 순간입니다. 이 글은 그런 지점을 순서대로 점검할 수 있게 정리한 목록입니다.
국가를 바꾸면 입력란이 왜 달라져야 하나요?
나라마다 주소를 이루는 층이 다르기 때문입니다. 우편번호를 쓰지 않는 나라도 있고, 행정구역 이름을 부르는 말도 제각각입니다. 국가를 바꿨는데 입력란이 그대로라면 사용자는 없는 정보를 억지로 채우거나, 있는 정보를 넣을 자리를 찾지 못합니다.
시험할 때는 국가를 바꾼 직후의 상태를 확인해야 합니다. 이전 국가에서 입력한 값이 남아 있는지, 새 국가에서 필요 없는 항목이 사라지는지, 필수 표시가 새 규칙에 맞게 바뀌는지를 함께 봅니다.
국가를 자주 바꾸는 사용자도 고려해야 합니다. 여러 국가를 오가며 입력하다 보면 앞 국가의 값이 일부만 남아 형식이 뒤섞인 주소가 만들어집니다. 국가를 바꿀 때 무엇을 지우고 무엇을 남길지 규칙을 정하고, 그 규칙을 시험으로 고정해 두는 편이 좋습니다.
입력이 끝난 뒤에만 검사하는 방식도 사용자에게 불친절합니다. 항목을 떠나는 순간 바로 알려 주면 고칠 곳을 기억하고 있을 때 수정할 수 있습니다. 다만 입력 도중에 오류를 반복해서 보여 주면 방해가 되므로, 언제 알려 줄지도 시험 항목에 포함하는 편이 좋습니다.
입력 단계에서 검증하면 끝인가요?
끝이 아닙니다. 화면에서의 검사는 사용자에게 빠르게 알려 주기 위한 것이고, 그 값을 저장하거나 전송하는 단계에도 같은 검사가 있어야 합니다. 화면 검사를 우회한 요청이 들어올 수 있기 때문입니다.
두 단계의 규칙이 서로 다르면 더 곤란해집니다. 화면에서는 통과했는데 저장 단계에서 거부되면 사용자는 무엇을 고쳐야 하는지 알 수 없습니다. 같은 규칙을 한곳에 정의해 양쪽에서 함께 쓰는 구조가 좋습니다.
자주 빠뜨리는 시험 항목
- 국가를 바꾼 뒤 앞 국가의 값이 남아 있는지 확인합니다. 남아 있으면 다른 나라의 형식이 섞인 주소가 저장됩니다.
- 우편번호를 쓰지 않는 나라를 고르고, 우편번호 입력란이 사라지거나 비활성화되는지 봅니다.
- 같은 값을 다시 입력했을 때 저장 결과가 달라지지 않는지 확인합니다. 표시 형식이 저장 값에 섞여 들어가는 경우가 많습니다.
- 입력란 사이를 오가며 값을 고친 뒤 되돌아왔을 때 값이 유지되는지 봅니다.
- 아주 긴 도로명과 동·호수를 넣어, 화면이 깨지거나 값이 잘리지 않는지 확인합니다.
- 저장 후 다시 열었을 때 값이 원문과 같은 장소를 가리키는지 비교합니다.
- 오류 안내가 어느 항목에 대한 것인지 분명한지 확인합니다. 여러 항목이 한 줄로 묶이면 고칠 곳을 찾기 어렵습니다.
- 전화번호와 주소가 다른 정상 입력이 통과하는지 봅니다. 지역번호와 주소 매칭에서 다룬 것처럼 이 경우는 오류가 아닙니다.
저장 형식까지 확인해야 하는 이유
화면에서 올바르게 보이는 것과 저장된 값이 올바른 것은 다릅니다. 표시용으로 다듬은 문자열을 그대로 저장하면, 나중에 주소를 비교하거나 묶을 때 같은 장소가 여러 값으로 흩어집니다.
그래서 시험은 화면 결과만 보지 않고 저장된 값을 함께 확인해야 합니다. 원문, 정규화 결과, 국가 코드, 검증 결과가 각각 제대로 들어갔는지 보는 것이 좋습니다. 주소 테스트 데이터에서 설명한 것처럼 국가별 형식을 섞어 둔 픽스처를 쓰면 이 확인이 쉬워집니다.
나라별로 다른 지점
같은 항목이라도 나라별로 다루는 방식이 다릅니다. 일본처럼 행정구역 단계가 여러 개인 나라는 입력 순서를 어떻게 안내하는지가 중요하고, 우편번호를 쓰지 않는 나라는 빈 항목을 어떻게 표시할지 정해야 합니다.
국가 선택 목록 자체도 시험 대상입니다. 목록이 너무 길어 찾기 어려운지, 최근 고른 국가가 기억되는지, 목록에 없는 국가를 입력했을 때 어떻게 되는지를 확인합니다.
저장된 값을 확인할 때는 값의 내용뿐 아니라 길이도 봅니다. 저장 열의 길이를 넘는 주소를 넣었을 때 조용히 잘리는지, 오류로 알려 주는지에 따라 결과가 크게 달라집니다. 잘린 값은 원래 장소를 가리키지 않으므로, 저장 전에 길이를 확인하는 처리가 있는지 시험으로 확인해야 합니다.
국가 목록의 정렬 순서도 시험 대상입니다. 이름순으로 정렬할지 코드순으로 정렬할지는 사용자가 원하는 국가를 찾는 속도에 영향을 줍니다. 자주 쓰는 국가를 위쪽에 두는 방식이라면, 그 목록이 어떤 기준으로 정해지는지와 갱신 주기도 함께 정해 두어야 합니다.
랜덤 주소 생성기로 입력 시험하기
랜덤 주소 생성기에서 국가를 바꿔 가며 값을 만들면, 각 나라 형식에 맞는 입력을 빠르게 준비할 수 있습니다. 같은 국가에서 여러 번 생성해 서로 다른 값을 만들고, 그 값들이 모두 자기 검사를 통과하는지 확인하는 방식이 효율적입니다.
생성되는 주소는 소프트웨어 시험 전용 합성 데이터입니다. 실제 배송지로 쓰거나 거주를 증명하는 데에는 사용할 수 없습니다.
개발자를 위한 메모: 확인 목록을 자동화하라
- 국가별 필드 구성을 데이터로 정의합니다. 화면 코드에 국가 이름을 조건문으로 박아 넣으면 나라가 늘 때마다 화면 코드를 고쳐야 합니다.
- 화면 검사와 저장 검사가 같은 규칙 정의를 쓰는지 확인합니다. 두 벌로 나뉘면 반드시 어긋납니다.
- 국가 변경 시 이전 국가 전용 값을 지우는 처리를 시험으로 고정합니다. 이 처리는 눈으로 확인하기 어렵습니다.
- 저장 값과 표시 값을 분리하고, 표시 형식을 저장 값에 반영하지 않습니다.
- 오류 응답에 어느 항목이 문제인지 식별자를 함께 넣습니다. 화면에서 그 식별자로 해당 입력란을 강조할 수 있습니다.
- 서버 응답 시간이 길어질 때 입력란이 잠기는지, 값이 사라지는지도 시험에 넣습니다.
다음 단계
위 목록에서 자기 결제 화면이 아직 확인하지 않는 항목을 두세 개 골라 시험에 추가해 보세요. 특히 국가 변경 직후의 상태와 저장된 값 확인은 한 번 넣어 두면 이후 변경에서도 계속 도움이 됩니다. 준비한 픽스처가 부족하다면 랜덤 주소 생성기에서 여러 국가의 값을 만들어 채우면 됩니다.