개발 생명주기 전반에 걸친 검증
ISO 26262, DO-178C, IEC 61508 및 IEC 62304 표준을 준수하여 작업하는 embedded software 팀은 소프트웨어 개발의 모든 단계에서 검증 작업을 수행합니다. 경제적 이점은 명백합니다. 정적 분석 단계에서 발견된 결함의 처리 비용은 통합 단계에서 발견된 결함의 처리 비용보다 훨씬 적으며, 통합 단계에서 발견된 결함의 처리 비용은 필드에서 발견된 결함의 처리 비용보다 훨씬 적습니다. 정적 분석, 단위 테스트, 통합 테스트, 커버리지 측정 및 추적성 기록은 각각 특정 단계에서 중요한 역할을 합니다. 프로젝트가 감사 단계에 도달할 때쯤이면, 관련 증거 자료는 이미 마련되어 있어야 합니다.
검증은 원천에서 시작된다
결함을 발견하기에 가장 비용 효율적인 시점은 평가가 시작되기 전입니다. 정적 코드 분석은 소스 코드를 실행하지 않고 검사하여, 코드가 작성되는 즉시 코딩 표준 위반 사항, 유형 오류, null 포인터 참조 오류 및 보안 취약점을 포착합니다. 빌드 파이프라인에 통합되면 개발자에게 즉각적인 피드백을 제공하며, 프로젝트 진행 과정에서 결함이 누적되는 것을 방지합니다.
단위 테스트: 모든 구성 요소 평가하기
코드가 작성되면, 단위 테스트를 통해 각 함수, 모듈, 클래스 또는 구성 요소가 독립적으로 올바르게 동작하는지 검증합니다. 각 test 케이스는 특정 요구사항에 맞춰 작성되고 자동으로 실행되며, 구조적 커버리지가 측정되어 안전 표준에서 요구하는 양방향 추적성을 확립합니다.
VectorCAST는 C, C++ 및 Ada용 단위 테스트 환경의 생성 및 관리를 자동화하고, 호스트 및 타겟 실행을 모두 지원하며, 안전 표준에서 요구하는 coverage data와 추적성 기록을 생성합니다.
통합 평가: 인터페이스 검증
개별 유닛에 대한 검증이 완료되면, 통합 테스트를 통해 유닛 간의 인터페이스가 올바르게 작동하는지 확인합니다. 이 단계에서는 모듈 경계에 대한 가정을 검증하고, 구성 요소 간의 결합을 테스트하며, 시스템 수준의 행동이 드러나기 시작합니다. 이 단계에서도 커버리지 측정이 계속되며, 대개 VectorCAST/QA를 사용하여 컴파일러와 독립적으로 통합된 소프트웨어에 계측 코드를 삽입합니다.
적용 범위, 추적 가능성 및 증거
Vector 도구는 낮은 무결성 수준의 문장 및 분기 커버리지부터 ASIL D 및 DO-178C 레벨 A의 MC/DC에 이르기까지, 각 표준이 규정하는 수준에 맞춰 구조적 커버리지를 측정합니다. 모든 테스트 결과는 해당 결과가 입증하는 요구사항과 연계되며, 모든 커버리지 보고서는 인증 기관이 검토하는 포맷으로 생성됩니다.
지속적인 검증
지속적 검증이란 검토 대상으로 지정된 빌드뿐만 아니라 모든 커밋을 확인하는 것을 의미합니다. PC-lint Plus는 코드가 작성되는 시점에 정적 분석을 수행합니다. VectorCAST는 매번 전체 테스트 스위트를 실행하는 대신, 각 변경 사항이 영향을 미치는 테스트만 재실행합니다. Squore는 이러한 실행의 누적 효과를 모니터링하여 품질 기준을 엄격히 적용하고, 릴리스 위험으로 이어지기 전에 추세를 파악합니다.