콘텐츠로 이동

GRP-001 추적성 체인

요구사항 → 설계 → 테스트 계획처럼, ID가 여러 문서 단계를 순서대로 추적할 수 있는지를 검증합니다. 각 단계에서 참조되지 않는 ID가 발견되면 warning 으로 보고됩니다. 프로젝트 스코프 의 규칙으로, include로 읽어들인 모든 문서를 횡단하여 평가됩니다.

최초 단계(chain[0])의 idColumn에서 ID를 모으고, 그것이 다음 단계 이후의 refColumn에서 참조되어 있는지를 순서대로 확인해 갑니다.

요구사항 → 설계 → 테스트와 같은 흐름에서는, 「요구사항 ID는 설계에 반드시 인용되어 있고, 설계에 등장한 ID는 테스트에 반드시 인용되어 있다」 는 것이 정합성의 최저 조건입니다. 그러나 요구사항을 1건 추가하고 설계를 빠뜨리거나, 테스트 계획을 빠뜨리거나 하는 누락은, 파일이 나뉘어 있으면 사람의 눈으로는 따라잡을 수 없습니다. 이 규칙은 체인의 누락을 기계적으로 검출합니다.

필드 타입 필수 설명
chain object[] 체인을 구성하는 단계(최소 2단계). 순서가 그대로 검증 순서
idPattern string 이 정규표현식과 일치하는 값만 ID로 간주(일치하지 않는 값은 무시)
필드 타입 필수 설명
stage string 단계의 이름(에러 메시지에 표시)
files string 이 단계의 문서를 가리키는 glob
idColumn string 이 단계에서 ID가 정의되어 있는 컬럼명(최초 단계에서 필수)
refColumn string 이 단계에서 전 단계의 ID를 참조하고 있는 컬럼명(2단계 이후에서 필수)

최초 단계에서는 idColumn을, 2단계 이후에서는 refColumn을 지정합니다.

docs/requirements.md:
| ID | Name |
| ------- | ------ |
| REQ-001 | Login |
| REQ-002 | Logout |
docs/design.md:
| Requirement | Detail |
| ----------- | ------------- |
| REQ-001 | Design login |

REQ-002docs/design.mdRequirement 컬럼에서 참조되어 있지 않기 때문에 위반이 됩니다.

docs/requirements.md
line 4 warning REQ-002 defined in docs/requirements.md but not referenced in stage "Design" GRP-001
docs/design.md:
| Requirement | Detail |
| ----------- | -------------- |
| REQ-001 | Design login |
| REQ-002 | Design logout |
{
"rule": "grp001",
"options": {
"chain": [
{ "stage": "Requirements", "files": "**/requirements.md", "idColumn": "ID" },
{ "stage": "Design", "files": "**/design.md", "refColumn": "Requirement" },
{ "stage": "Test", "files": "**/test-plan.md", "refColumn": "Covers" }
],
"idPattern": "^REQ-\\d{3}$"
}
}

3단계 이상의 체인도 chain 배열을 늘리는 것만으로 표현할 수 있습니다. idPattern을 지정하면, 헤더 행 샘플이나 표기 흔들림 행을 ID 집합에서 제외할 수 있습니다.