이력서 파싱 테스트는 형식이 맞는지 확인하는 일이 아니라 판형이 바뀌어도 값을 찾아내는지 확인하는 일입니다. 이력서 파일에는 모두가 따르는 단일 규격이 없고, 만들어 내는 도구와 지역마다 배치가 다릅니다. 이 글에서는 그 차이가 어디서 오는지, 어떤 판형을 시험해야 하는지, 고정 데이터를 어떻게 묶어 두어야 실패를 다시 재현할 수 있는지 정리합니다.
이력서에 통일된 형식이 없는 이유는 무엇인가요?
이력서는 문서 규격이 아니라 관행의 산물입니다. 문서 작성 도구가 저마다 기본 배치를 제공하고, 나라마다 굳어진 순서가 다르며, 같은 나라 안에서도 분야에 따라 강조점이 다릅니다. 어떤 이력서는 학력을 맨 앞에 두고, 어떤 이력서는 경력을 먼저 둡니다.
여기에 표현의 자유가 겹칩니다. 표로 정리하는 사람, 두 단으로 나누는 사람, 경력을 문단으로 풀어 쓰는 사람이 모두 같은 정보를 담습니다. 그래서 파서 입장에서는 고정된 위치를 외우는 방식이 통하지 않습니다. 위치가 아니라 표지와 문맥으로 값을 찾아야 합니다.
어떤 판형 변형을 시험해야 하나요?
시험 범위는 실제로 들어오는 문서의 모양에서 나옵니다. 다음 갈래를 각각 한 벌씩 준비해 두면 대부분의 사고를 미리 잡습니다.
| 판형 | 특징 | 흔한 실패 |
|---|---|---|
| 단일 열 | 위에서 아래로 이어짐 | 소절 경계를 놓칩니다 |
| 두 단 | 좌우로 나뉨 | 읽는 순서가 뒤섞입니다 |
| 표 중심 | 칸으로 정리됨 | 병합된 칸에서 값이 붙습니다 |
| 문단 서술 | 경력이 산문으로 이어짐 | 구간과 회사가 분리되지 않습니다 |
| 태그 나열 | 기술이 쉼표로 이어짐 | 마지막 항목이 잘립니다 |
여기에 언어와 문자 체계를 섞습니다. 오른쪽에서 왼쪽으로 읽는 문서, 음역이 섞인 문서, 날짜 서식이 다른 문서를 각각 하나씩 두면 회귀 시험이 의미를 갖습니다.
시험용 데이터는 무엇을 기준으로 묶나요?
묶는 기준은 파일 번호가 아니라 장면입니다. 두 단 배치에서 경력을 읽는 장면, 표 안의 학력을 읽는 장면처럼 시험이 확인하려는 상황마다 한 벌을 둡니다. 이름을 그 장면으로 붙여 두면 나중에 실패 로그를 읽을 때 어떤 판형에서 깨졌는지 바로 알 수 있습니다.
한 벌에는 두 가지가 함께 들어갑니다. 입력이 되는 문서와, 그 문서에서 기대하는 값입니다. 기대 값을 문서 옆에 두면 파서를 고칠 때 무엇이 정답인지 다시 판단하지 않아도 됩니다.
무작위 생성이 실패를 재현하지 못하는 이유
무작위로 문서를 만들면 시험이 통과했다는 사실만 남고, 다음 실행에서 같은 조건을 다시 만들 수 없습니다. 실패가 보고되어도 어떤 배치에서 왜 깨졌는지 재현할 수 없으니 고칠 수도 없습니다.
그래서 두 종류를 구분해 씁니다. 실패 재현용 표본은 내용과 판형을 고정하고, 탐색용 표본은 매번 새로 만들어 넓은 범위를 훑습니다. 두 종류를 한 통에 섞으면 재현 가능성만 잃고 얻는 것이 없습니다. 같은 입력이 같은 결과를 내야 한다는 원칙은 경력 프로필 테스트 데이터 만드는 법에서도 같은 맥락으로 다뤘습니다.
고정 데이터는 어떻게 늙어 가나요?
표본은 시간이 지나면 조용히 쓸모를 잃습니다.
- 실제로 쓰이는 문서 도구의 기본 서식이 바뀝니다.
- 서비스가 지원하는 언어가 늘거나 줄어듭니다.
- 화면에서 받는 필수 항목이 추가됩니다.
- 기대 값이 옛 규칙을 그대로 담고 있게 됩니다.
정기적으로 표본을 다시 돌려 보고, 실패하지 않는데 아무것도 확인하지 못하는 표본은 걷어내야 합니다. 통과만 하는 표본은 시험이 아니라 장식입니다.
기대 값과 실패 재현을 어떻게 남기나요?
기대 값을 통짜 문자열로 적어 두면 비교가 되지 않습니다. 같은 내용이라도 줄바꿈과 띄어쓰기가 다르면 실패로 보이고, 정작 깨진 자리는 가려집니다. 그래서 기대 값은 필드 단위로 쪼개 적는 편이 낫습니다.
- 필드 이름과 기대 값
- 값이 여러 건일 때의 개수와 순서
- 값이 없어야 하는 자리
- 원문에서 그 값을 가져온 위치
마지막 항목은 자주 빠지지만 쓸모가 큽니다. 값이 맞아도 엉뚱한 자리에서 가져왔다면 다른 판형에서 곧바로 깨집니다.
같은 사람의 기록을 단일 열 문서와 표 문서로 각각 만들어 두면, 파서가 같은 값을 다른 경로로 찾아내는지 확인할 수 있습니다. 판형마다 기대 값이 어떻게 달라지는지도 함께 적어 두세요.
실패 로그에는 문서 이름과 판형, 어긋난 필드가 함께 남아야 합니다. 이 셋이 없으면 표본을 찾아 헤매게 됩니다. 재현 절차는 짧게 한 줄로 남기는 편이 좋습니다. 어떤 표본을 어떤 설정으로 돌렸을 때 같은 결과가 나오는지 적어 두면, 다른 사람이 이어받아도 같은 자리에서 같은 실패를 볼 수 있습니다.
개발자를 위한 메모: 파싱 시험과 기대 필드
- 기대 값을 문서와 분리해 관리합니다. 문서 안에 주석으로 넣어 두면 판형을 고칠 때 함께 사라집니다.
- 필드 단위로 결과를 비교합니다. 전체 문자열을 하나로 비교하면 어느 필드가 깨졌는지 알 수 없습니다.
- 누락과 오인식을 구분해 집계합니다. 값을 못 찾은 것과 엉뚱한 값을 찾은 것은 고치는 방법이 다릅니다.
- 판형 이름을 시험 이름에 넣습니다. 실패 목록만 보고도 어떤 배치가 문제인지 알 수 있어야 합니다.
- 표본을 만들 때 실제 이력서를 쓰지 않습니다. 합성 문서로도 판형을 충분히 흉내 낼 수 있습니다.
- 표본마다 판형 이름과 기대 값을 한 묶음으로 둡니다. 문서만 남기면 다음 사람이 정답을 다시 판단해야 합니다.
- 값이 여러 건인 필드는 개수까지 확인합니다. 첫 건만 맞고 나머지가 사라지는 실패가 흔합니다.
- 접수 화면 쪽 흐름도 함께 봅니다. 업로드와 저장, 재조회 단계에서 값이 바뀌는지 확인해야 합니다. 채용 양식의 단계별 시험은 채용 양식 테스트 케이스 설계에서 다뤘습니다.
시험용 이력서 묶음이 필요하면 테스트용 경력 데이터 생성기에서 같은 식별자로 기록을 뽑아 두고, 그 값을 문서에 옮겨 표본을 만들면 됩니다. 입력과 기대 값이 같은 출처에서 나오므로 대조가 훨씬 쉬워집니다. 이런 표본을 저장소에 넣는 절차는 스테이징 데이터베이스 채우기에서 이어서 볼 수 있습니다.
다음 단계
지금 쓰는 표본 목록을 열어 이름을 확인해 보세요. 번호로만 되어 있다면 장면 이름으로 바꾸는 것이 첫 단계입니다. 그다음 두 단 배치와 표 배치 표본을 하나씩 추가해 파서를 돌려 보고, 어느 필드가 가장 자주 어긋나는지 기록해 두세요. 실패가 잦은 판형부터 표본을 늘리는 편이 효율적입니다.
여기서 말한 문서와 기대 값은 모두 시험용으로 지어낸 표본이며 실제 지원자의 이력서 내용을 담지 않습니다. 실제 인물의 자료를 시험 환경에 넣지 마세요.