커버리지, 추적성 및 검증 증적

테스트 결과를 검증 증적으로 전환하기

인증 기관은 커버리지 데이터와 추적성 기록이라는 두 가지 요소를 검토합니다. 커버리지 데이터는 어떤 코드가 테스트되었는지, 그리고 어느 구조적 깊이까지 테스트되었는지를 보여줍니다. 추적성 기록은 모든 테스트 결과를 해당 테스트가 검증하도록 설계된 요구사항과 연결합니다. 이 두 요소는 함께 ISO 26262, DO-178C, IEC 61508, IEC 62304에서 요구하는 검증 증적의 기반을 형성합니다. 

요구사항 추적성

모든 주요 기능 안전 표준에서는 요구사항 기반 테스트가 의무화되어 있습니다. 각 테스트 케이스는 검증 대상으로 하는 특정 요구사항까지 추적될 수 있어야 합니다. 요구사항과 테스트 결과 간의 양방향 추적성은 모든 요구사항이 테스트되었고, 목적 없이 수행된 테스트가 없음을 입증하는 근거가 됩니다. 

VectorCAST의 Requirements Gateway는 외부 요구사항 데이터베이스에 연결하여 요구사항을 테스트 환경으로 가져오고, 테스트 케이스를 해당 요구사항에 연결할 수 있도록 합니다. 테스트 실행 후 결과와 커버리지 지표는 요구사항 관리 도구로 다시 내보내집니다. 테스트 커버리지가 부족한 요구사항뿐 아니라, 어떤 요구사항에도 연결되지 않은 테스트 케이스도 즉시 확인할 수 있습니다. 

구조적 커버리지

구조적 커버리지 지표는 테스트 실행이 소스 코드를 얼마나 충분히 수행했는지를 정량적으로 평가합니다. 기능 안전 표준에서는 시스템의 안전 무결성 수준(ASIL, DAL 등)에 따라 충족해야 하는 최소 커버리지 수준을 규정하고 있습니다.

  • Statement Coverage(구문 커버리지): 실행 가능한 모든 코드 라인이 최소 한 번 이상 실행되었는지 확인합니다.
  • Branch Coverage(분기 커버리지): 모든 분기(의사결정) 지점에서 가능한 모든 실행 경로가 수행되었는지 확인합니다.
  • MC/DC (Modified Condition/Decision Coverage, 수정 조건/결정 커버리지): 하나의 의사결정문을 구성하는 각 Boolean 조건이 다른 조건의 영향을 받지 않고 결과에 독립적으로 영향을 미치는지를 검증합니다. DO-178C Level AISO 26262 ASIL D 소프트웨어에서는 필수 요구사항입니다.
  • Function Coverage 및 Function Call Coverage(함수 및 함수 호출 커버리지): 여러 기능 안전 표준에서 보조적인 커버리지 지표로 활용됩니다.

VectorCAST는 이러한 모든 구조적 커버리지 유형을 지원합니다. 또한 Industry Modes 기능을 통해 적용 대상 표준과 안전 무결성 수준에 맞는 커버리지 기준을 자동으로 선택하므로, 표준이나 무결성 수준별로 커버리지 기준을 수동 설정할 필요 없이 요구사항에 맞는 검증 환경을 효율적으로 구성할 수 있습니다.

MC/DC: 가장 엄격한 커버리지 기준

MC/DC는 문장 커버리지와 분기 커버리지로는 탐지되지 않는 논리적 결함을 대상으로 합니다. MC/DC는 결정문 내 모든 Boolean 조건에 대해, 다른 모든 조건이 일정하게 유지되는 상태에서 해당 조건이 결정 결과를 독립적으로 변화시킨다는 테스트가 존재해야 함을 요구합니다. 

대규모 프로젝트에서 MC/DC를 수동으로 달성하고 문서화하는 작업은 오류가 발생하기 쉽고 시간이 많이 소요됩니다. VectorCAST는 가장 까다로운 부분을 자동화합니다. 여기에는 추적을 위한 자동 계측, 어떤 부분이 커버되었고 어떤 부분이 커버되지 않았는지 정확히 보여주는 진리표 기반 시각화, 커버되지 않은 조건 쌍을 대상으로 하는 자동 테스트 생성, DO-178C, ISO 26262, IEC 62304 표준에 부합하는 인증 준비 보고서가 포함됩니다. OCR 오류로 보이는 “조거 싹”은 최종 문안에서 제외했습니다. 

분석별 보도 현황

안전이 중요한 개발에서는 테스트만으로 일부 코드 섹션의 커버리지를 완전히 달성하지 못할 수 있습니다. 발생 가능성이 매우 낮은 조건에 대한 방어적 코드, 하드웨어 오류에 대한 오류 처리, 컴파일러 특유의 정의되지 않은 동작을 방지하는 코드 등이 이 범주에 속할 수 있습니다.

커버리지 부족 사항은 반드시 근거를 제시하고 문서화해야 합니다. VectorCAST의 CBA(Covered-by-Analysis) 기능을 사용하면 엔지니어는 특정 코드 섹션을 분석에 의해 커버된 것으로 지정하고, 커버리지 데이터와 함께 그 근거를 직접 문서화하며, 코드 변경에 따라 해당 근거를 지속적으로 관리할 수 있습니다. 커버리지 보고서는 측정된 커버리지와 분석 기반 커버리지를 통합된 형태로 보여줍니다. 

프로젝트 전반에 걸친 모니터링 범위

커버리지 부족 사항은 반드시 근거를 제시하고 문서화해야 합니다. VectorCAST의 CBA(Covered-by-Analysis) 기능을 사용하면 엔지니어는 특정 코드 섹션을 분석에 의해 커버된 것으로 지정하고, 커버리지 데이터와 함께 그 근거를 직접 문서화하며, 코드 변경에 따라 해당 근거를 지속적으로 관리할 수 있습니다. 커버리지 보고서는 측정된 커버리지와 분석 기반 커버리지를 통합된 형태로 보여줍니다. 

Squore는 여러 출처의 커버리지 데이터를 통합하고, 시간 경과에 따른 추세를 추적하며, 규정을 준수하지 않는 코드가 파이프라인을 통과하지 못하도록 방지하는 품질 게이트를 적용합니다. 커버리지 요구사항은 프로젝트 전반에서 팀 전체가 지속적으로 확인할 수 있습니다.