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