A-SPICE의 [[A-SPICE#7가지 핵심 컨셉|핵심 컨셉 #4]]. V-Model 산출물 간 연결과 의미 일치를 보장하는 두 가지 상호 보완적 속성.
정의
| 속성 | 정의 |
|---|---|
| 추적성 (Traceability) | 작업 산출물 내 관련 요소들 간에 연결되어 추적 가능한지 |
| 일관성 (Consistency) | 작업 산출물 내 관련 요소들 간에 내용과 의미가 일관되게 반영되어 있는지 |
→ 두 속성은 상호 보완적 관계.
추적성 예시: 요구사항 추적표
V 모델의 좌측 산출물(요구사항·설계)과 우측 산출물(테스트)은 양방향으로 추적되어야 한다.
추적성이 필요한 3가지 이유
1. 커버리지 분석 및 파악
이번 테스트를 위해 선택된 테스트 케이스
#1,#2가 요구사항#1을 몇 % 만족하는가?
2. 변경에 대한 영향도 분석
요구사항
#1과 관련된 변경 요청이 왔을 때, 수정해야 하는 다른 작업 산출물의 범위가 얼마나 되는가? 처리에 필요한 공수는?
3. 요구사항의 구현 상태 관리
요구사항
#1과 관련된 소스 코드#1,#2,#3이 구현되었는가?
추적성의 5가지 유형
| 유형 | 내용 |
|---|---|
| Forward | 요구사항 → 설계 → 구현 → 테스트 (개발 순방향) |
| Backward | 테스트 → 구현 → 설계 → 요구사항 (개발 역방향) |
| Bi-Directional | 두 산출물이 서로 양방향 추적 가능 |
| Vertical | 같은 도메인 상에서 추적 가능 |
| Horizontal | 서로 다른 도메인 간에 추적 가능 |
추적 관리의 필요성
V-Model 좌·우측 산출물의 정합성을 확보하기 위해 추적 관리가 필요한 3가지 이유:
| # | 항목 | 설명 |
|---|---|---|
| 1 | 일관성 (Consistency) | 변경된 요구사항이 설계·코드·테스트 케이스에 모두 반영되었는가? 산출물 간 의미적 일치 |
| 2 | 변경 영향도 분석 (Impact Analysis) | 요구사항 1건 변경 시 영향받는 산출물의 범위와 공수를 사전 식별 |
| 3 | 커버리지 파악 (Coverage) | 요구사항이 테스트로 충분히 검증되었는가? 누락된 요구사항·테스트 식별 |
요구사항 추적표 예제
V-Model의 좌·우측 산출물을 매트릭스 형태로 매핑.
| SRS (요구사항) | SAD (아키텍처) | SDD (상세설계) | SUT (단위 TC) | SIT (통합 TC) | SQT (시스템 TC) |
|---|---|---|---|---|---|
| SRS-1 | SAD-1 | SDD-1 | SUT-1 | SIT-1 | SQT-1 |
| SRS-2 | SAD-1, SAD-2 | SDD-2 | SUT-2 | SIT-1 | SQT-2 |
| SRS-3 | SAD-3 | SDD-3, SDD-4 | SUT-3, SUT-4 | SIT-2 | SQT-3 |
- SRS(Software Requirements Specification): 요구사항 명세서
- SAD(Software Architecture Design): 아키텍처 설계서
- SDD(Software Detailed Design): 상세 설계서
- SUT(Software Unit Test): 단위 테스트 케이스
- SIT(Software Integration Test): 통합 테스트 케이스
- SQT(Software Qualification Test): 시스템(자격) 테스트 케이스 → A-SPICE SWE.6
ALM 도구 체인
추적성과 일관성을 자동화로 확보하는 ALM(Application Lifecycle Management) 도구 체인 예시:
| 영역 | 도구 | 역할 |
|---|---|---|
| Project / Requirement / Issue / Test 관리 | Redmine | 요구사항·이슈·테스트 케이스 관리, 산출물 간 추적 링크 |
| 개발 / Task / Architecture / Design | Eclipse (+ Mylyn) | IDE 통합, 작업 항목 (Task) 연동 |
| 형상 관리 (SCM) | Git | 코드 버전 관리 → 소프트웨어 형상 관리 |
| Build / Test / Coverage / 정적 분석 | Jenkins | CI 파이프라인, 빌드·테스트 자동화 → 소프트웨어 통합과 지속적 통합 |
| 정적 분석 / 코드 품질 | SonarQube | 코딩 표준·복잡도 측정 → 코딩 표준, 순환 복잡도 |
→ Redmine ↔ Eclipse ↔ Git ↔ Jenkins ↔ SonarQube가 상호 연동되어 요구사항부터 테스트 결과까지 전 구간 추적성을 제공.
일관성 예시: 계획서 간의 일관성
- 마스터 프로젝트 계획서 내 명시된 서브 프로젝트 범위와 서브 프로젝트 계획서 내 명시된 범위가 일치하는가?
- 마스터 프로젝트 계획서 내 일정이 서브 프로젝트 계획서 내 일정에 반영되었는가?
- 서브 프로젝트 계획서 내 자원이 서브 프로젝트 테스트 계획서 내 자원과 일치하는가?