콘텐츠로 이동

GRP-001 추적성 체인

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

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

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

필드타입필수설명
chainobject[]체인을 구성하는 단계(최소 2단계). 순서가 그대로 검증 순서
idPatternstring이 정규표현식과 일치하는 값만 ID로 간주(일치하지 않는 값은 무시)
필드타입필수설명
stagestring단계의 이름(에러 메시지에 표시)
filesstring이 단계의 문서를 가리키는 glob
idColumnstring이 단계에서 ID가 정의되어 있는 컬럼명(최초 단계에서 필수)
refColumnstring이 단계에서 전 단계의 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 집합에서 제외할 수 있습니다.