🧪 Software Testing · 2/8 · 약 8분

시리즈 전체 보기

문서 검증을 처음 생각했을 때는 파일이 정상적으로 열리고 표를 읽을 수 있으면 절반 이상 끝난 일처럼 보였다. 하지만 파싱에 성공한 문서 안에서도 필수 값이 비어 있을 수 있고, 같은 식별자가 서로 다른 의미로 쓰일 수 있으며, 문서끼리 연결해야 할 관계가 끊길 수 있었다.

이 문제들을 모두 ‘문서 오류’라고 부르면 발견 이후의 행동이 모호해진다. 그래서 검증 질문을 문서 하나의 기본 규칙, 문서 내부의 관계, 서로 다른 문서 사이의 추적으로 나눠 보았다. 이 글에서 사용하는 일반성·정합성·일치성은 그 세 질문을 구분하기 위한 학습용 분류다.

#DocumentValidation · #Traceability · #Quality · #SoftwareTesting

이 글에서 다룰 것

1. 검증 범위를 세 층으로 나눴다

구분 대상 범위 대표 질문 실패 뒤 행동
일반성 문서 하나의 기본 구조와 값 필수 항목과 식별자 형식이 규칙을 지키는가? 입력 또는 문서 작성 규칙을 보완한다.
정합성 한 문서 안의 값과 관계 서로 의존하는 항목이 모순되지 않는가? 관계 규칙이나 값의 의미를 다시 확인한다.
일치성 둘 이상의 문서 사이 같은 대상을 같은 식별자와 의미로 참조하는가? 추적 연결과 변경 전파 범위를 검토한다.

세 검사는 같은 파서에서 얻은 데이터를 사용할 수 있다. 그러나 데이터가 같다고 합격 기준까지 같아지는 것은 아니다. “읽지 못함”, “값이 모순됨”, “연결이 없음”은 원인도, 고쳐야 할 위치도 다르다.

파일 읽기
   ↓
구조화 성공 ── 아니오 → 파싱 오류
   ↓ 예
기본 규칙 확인 ─────→ 일반성 결과
   ↓
내부 관계 확인 ─────→ 정합성 결과
   ↓
문서 간 추적 확인 ──→ 일치성 결과

2. 파싱 성공은 검증의 출발점이었다

파서는 문서를 비교 가능한 구조로 바꾸는 역할을 한다. 예를 들어 제목, 문단, 표, 셀, 식별자를 읽어 냈다면 검증을 시작할 재료가 생긴 것이다. 그 자체로 내용이 올바르다는 뜻은 아니다.

상황 파싱 검증 해석
필수 열이 없는 표 표는 읽힘 일반성 실패 가능 구조 규칙을 충족하지 않음
시작 값이 종료 값보다 큼 두 값 모두 읽힘 정합성 실패 가능 문서 내부 의미가 모순됨
시험 문서가 없는 요구사항 각 문서는 읽힘 일치성 검토 필요 문서 간 추적이 끊겼을 수 있음

이 구분이 없으면 사용자는 “문서를 읽지 못한 것인지, 읽었지만 규칙을 위반한 것인지”를 알 수 없다. 오류 메시지는 기술적인 실패 위치와 사용자가 취할 행동을 함께 알려 줘야 한다.

3. 가상 추적 체인으로 차이를 확인했다

가상 식별자 REQ-001, DESIGN-001, TEST-001을 사용하면 세 기준의 차이가 선명해진다.