적용 범위, 추적성 및 검증 증거

평가 결과를 검증 증거로 전환하기

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

요구사항 추적성

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

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

구조적 커버리지

구조적 커버리지 지표는 테스트 실행이 코드를 얼마나 철저히 검증하는지를 측정합니다. 안전 표준은 중요도에 따라 최소 커버리지 수준을 규정하고 있습니다.

  • 명령문 커버리지: 실행 가능한 모든 선이 적어도 한 번씩 실행됨
  • 분기 커버리지: 모든 결정 지점에서 가능한 모든 결과가 발생했습니다
  • MC/DC(수정 조건/결정 커버리지): 결정 내의 모든 Boolean 조건이 그 결과에 독립적으로 영향을 미칩니다. DO-178C 레벨 A 및 ISO 26262 ASIL D 소프트웨어에 요구사항입니다
  • 함수 커버리지 및 함수 호출 커버리지: 여러 표준에서 보완적 측정 지표로 사용됨 

 

VectorCAST는 이러한 모든 커버리지 유형을 측정합니다. ‘산업 모드(Industry Modes)’는 대상 표준 및 안전 무결성 수준에 맞는 올바른 커버리지 기준을 자동으로 고르므로, 각 표준 및 무결성 수준에 대해 커버리지 기준을 수동으로 구성할 필요가 없습니다.

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

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

대규모로 MC/DC를 수동으로 달성하고 문서화하는 작업은 오류가 발생하기 쉽고 시간이 많이 소요됩니다. VectorCAST는 가장 까다로운 부분들을 자동화합니다. 조건 쌍 추적을 위한 자동 계측, 어떤 부분이 커버되었는지, 어떤 부분이 커버되지 않았는지 정확히 보여주는 등가 행렬 시각화, 커버되지 않은 조건 쌍을 대상으로 하는 자동 테스트 생성, 그리고 DO-178C, ISO 26262 및 IEC 62304 표준에 부합하는 인증 준비 완료 보고서 등이 포함됩니다.

분석별 보도 현황

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

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

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

개별 평가 결과와 커버리지 보고서는 단일 빌드에 대한 의문을 해소해 줍니다. 반면 Squore는 프로젝트 전체에 대한 의문을 해결해 줍니다. 즉, 아직 커버리지 대상이 되지 않은 요구사항이 무엇인지, 지난 빌드 이후 커버리지가 어디서 떨어졌는지, 그리고 프로젝트가 통합 전에 커버리지 의무를 충족할 수 있는 궤도에 있는지 여부를 파악할 수 있습니다.

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