🧪 Software Testing · 2/8 · 약 8분
문서 검증을 처음 생각했을 때는 파일이 정상적으로 열리고 표를 읽을 수 있으면 절반 이상 끝난 일처럼 보였다. 하지만 파싱에 성공한 문서 안에서도 필수 값이 비어 있을 수 있고, 같은 식별자가 서로 다른 의미로 쓰일 수 있으며, 문서끼리 연결해야 할 관계가 끊길 수 있었다.
이 문제들을 모두 ‘문서 오류’라고 부르면 발견 이후의 행동이 모호해진다. 그래서 검증 질문을 문서 하나의 기본 규칙, 문서 내부의 관계, 서로 다른 문서 사이의 추적으로 나눠 보았다. 이 글에서 사용하는 일반성·정합성·일치성은 그 세 질문을 구분하기 위한 학습용 분류다.
#DocumentValidation · #Traceability · #Quality · #SoftwareTesting
| 구분 | 대상 범위 | 대표 질문 | 실패 뒤 행동 |
|---|---|---|---|
| 일반성 | 문서 하나의 기본 구조와 값 | 필수 항목과 식별자 형식이 규칙을 지키는가? | 입력 또는 문서 작성 규칙을 보완한다. |
| 정합성 | 한 문서 안의 값과 관계 | 서로 의존하는 항목이 모순되지 않는가? | 관계 규칙이나 값의 의미를 다시 확인한다. |
| 일치성 | 둘 이상의 문서 사이 | 같은 대상을 같은 식별자와 의미로 참조하는가? | 추적 연결과 변경 전파 범위를 검토한다. |
세 검사는 같은 파서에서 얻은 데이터를 사용할 수 있다. 그러나 데이터가 같다고 합격 기준까지 같아지는 것은 아니다. “읽지 못함”, “값이 모순됨”, “연결이 없음”은 원인도, 고쳐야 할 위치도 다르다.
파일 읽기
↓
구조화 성공 ── 아니오 → 파싱 오류
↓ 예
기본 규칙 확인 ─────→ 일반성 결과
↓
내부 관계 확인 ─────→ 정합성 결과
↓
문서 간 추적 확인 ──→ 일치성 결과
파서는 문서를 비교 가능한 구조로 바꾸는 역할을 한다. 예를 들어 제목, 문단, 표, 셀, 식별자를 읽어 냈다면 검증을 시작할 재료가 생긴 것이다. 그 자체로 내용이 올바르다는 뜻은 아니다.
| 상황 | 파싱 | 검증 | 해석 |
|---|---|---|---|
| 필수 열이 없는 표 | 표는 읽힘 | 일반성 실패 가능 | 구조 규칙을 충족하지 않음 |
| 시작 값이 종료 값보다 큼 | 두 값 모두 읽힘 | 정합성 실패 가능 | 문서 내부 의미가 모순됨 |
| 시험 문서가 없는 요구사항 | 각 문서는 읽힘 | 일치성 검토 필요 | 문서 간 추적이 끊겼을 수 있음 |
이 구분이 없으면 사용자는 “문서를 읽지 못한 것인지, 읽었지만 규칙을 위반한 것인지”를 알 수 없다. 오류 메시지는 기술적인 실패 위치와 사용자가 취할 행동을 함께 알려 줘야 한다.
가상 식별자 REQ-001, DESIGN-001, TEST-001을 사용하면 세 기준의 차이가 선명해진다.