Invisible Safety,

Proven by Intelligence

보이지 않는 안전을 인텔리전스로 증명하다.

기술 노트
IT 산업의 변화를 이끄는 MDS인텔리전스의
기술 인사이트를 만나보세요.
시스템 소프트웨어 개발
[VectorCAST] DO-178B/C SW Verification (3)
2026년 02월 02일

임베디드 항공 시스템/소프트웨어에서 많이 사용하고 있는 VectorCAST, 


소프트웨어 동적시험 및 커버리지 분석 자동화 솔루션으로, DO-178B/C, DO-128B/C 소프트웨어 검증에도 많이 사용하고 있습니다. 



이번 포스팅에서는 DO-128B/C 소프트웨어 검증을 위한 VectorCAST 사용 방법(3)에 대해 안내해 알려 드리겠습니다.


혹시~? 앞의 이어지는 글을 확인하셨나요? 아래 콘텐츠를 확인해 보시고 오시면 이해가 쏙쏙! 👍


🔎 연재글 


[VectorCAST] DO-178B/C SW Verification (1)


[VectorCAST] DO-178B/C SW Verification (2)



I Section 6.4.2.2 – Robustness Test Cases



견고성(Robustness) 테스트의 목적은 비정상적인 입력과 상태에 대한 응답 확인을 통해 소프트웨어의 능력을 증명하는 것입니다. VectorCAST는 어떠한 데이터 타입에서 유효한 값을 벗어난 값을 입력할 수 있도록 지원합니다. 이것은 입력에 대한 유효범위 검사를 해제 후 진행할 수 있습니다. 아래 그림이 유효범위를 넘어선 값에 대한 셋팅 화면입니다.





I Section 6.4.3 – Requirements Based Testing Methods 



요구사항 기반의 테스팅 방식은 아래와 같이 구성되어 있습니다.



- Hardware/Software Integration Testing 

- Software Integration Testing 

- Low-Level Testing


VectorCAST는 정의된 세가지 레벨의 테스팅을 모두 지원합니다. Hardware/Software Integration Testing의 경우 VectorCAST는 Levels A, B, C 개발 프로젝트에 대해 구조적 커버리지 분석 기능을 제공합니다. 이 시험은 타겟이나 타겟 시뮬레이터 사용 기반에서 수행될 수 있습니다.



Software Integration 과 Low-Level Testing의 경우 VectorCAST는 개별적인 컴포넌트 또는 조합된 컴포넌트를 대상으로 테스팅을 자동으로 수행할 수 있도록 실행 가능한 Test Harness를 생성합니다. 구조적 커버리지는 세가지 테스팅 단계 동안의 커버리지를 결합할 수 있습니다. 그리하여 테스팅에 대한 충분도를 집계할 수 있게 되는 것입니다.



I Section 6.4.4 – Test Coverage Analysis



테스트 커버리지 분석은 요구사항 기반의 커버리지와 구조적 커버리지 분석을 포함합니다. 첫 번째 단계는 모든 요구사항들은 특정 테스트 케이스와 연결이 되어 있다는 것을 확인하기 위하여 테스트 케이스를 분석합니다. 두번째는 요구사항 기반의 테스트가 적절한 레벨의 코드에서 실행이 되었는지 확인합니다.



VectorCAST 코드 커버리지는 소스 코드의 구문의 실행(Statement Coverage), 분기의 실행(Branch Coverage), MC/DC 쌍의 실행(MC/DC)이 테스트 케이스에 의해 적어도 한번은 수행되었는지 분석합니다. 리포트는 테스터의 테스트 케이스들이 충분한지를 보여줍니다. 테스트되지 않은 코드를 부분을 검사함으로써, 테스터는 더욱 쉽게 다음 테스트 케이스 설계를 진행할 수 있습니다.




I Section 6.4.4.1 – Requirements Based Coverage Analysis



VectorCAST/RGW(Requirements Gateway)는 요구사항 커버리지 분석을 만족시키기 위해 소프트웨어 요구사항과 Test Case를 연결할 수 있도록 지원해줍니다.



VectorCAST/RGW는 요구사항 관리 도구와 VectorCAST 테스팅 도구 사이에서 데이터를 주고받을 수 있도록 지원해줍니다. 간단하고 직관적인 인터페이스를 통해 개발자는 쉽고 빠르게 저 수준 레벨의 요구사항과 VectorCAST의 Test Case를 연결할 수 있습니다.



일단 요구사항이 연결된 Test Case가 한번 실행되면 VectorCAST 시험환경과 요구사항 관리 도구에서 추적성 메트릭스를 볼 수 있습니다. 테스트 케이스 이름, 테스트 결과(Pass, Fail, None)은 요구사항 데이터 베이스에서 사용자가 선택한 속성에 연결될 수 있습니다. 



I Section 6.4.4.2 – Structural Coverage Analysis



이 분석의 목적은 코드 구조가 요구사항 기반의 테스트에 의해 적어도 한번은 수행되었다는 것을 확인하기 위함입니다.


VectorCAST는 요구사항 기반의 테스트를 진행하는 동안 어플리케이션의 실행된 부분을 식별하여 테스터 노력의 효과를 측정합니다. 이것은 한번도 테스트 되지 않은 코드가 릴리즈 되지 않도록 방지하고 테스트에 대한 충분도를 분석할 수 있는 편리한 방법 입니다. VectorCAST는 전체 어플리케이션을 한번에 또는 부분적으로 실행하여 분석할 수 있습니다.


- 커버리지 결과는 코드기반에서 색 구분을 통해 쉬운 뷰를 제공합니다. 실행된 부분, 부분적으로 실행된 부분, 한번도 실행되지 않은 부분을 구분합니다.

- 통계 테이블은 각각 함수별 코드 복잡도와 현재 달성 커버리지를 정리하여 보여줍니다.

- Basis Path 분석은 각 함수에 대한 모든 제어 경로를 보여줍니다.

- Level A 항공 소프트웨어에 대한 RTCA DO-178B 표준의 Modified Condition/Decision Coverage (MC/DC)





MC/DC 분석은 각각의 작은 조건들이 전체 결정 진리에 독립적으로 영향을 미치는 경우를 분석합니다. 이것을 증명하기 위해 테스터는 각각 작은 조건들 뿐만 아니라 결정 값을 확인해야 합니다. VectorCAST/Cover 는 두가지 포맷으로 이러한 정보를 확인합니다.

- 소스코드의 주석, 부울 조건 각각에 대한 등가 쌍 메트릭스



I Structural Coverage Differences for Level A



소프트웨어 Level A의 경우 구조적 커버리지에 관한 DO-178B와 DO-128C 사이에 상당한 차이가 있습니다. Level A가 아닌 모든 경우에서는, 구조적 커버리지는 소스코드 상에서 수행됩니다. Level A에서는 만약 컴파일러가 소스코드 구문과 직접적으로 추적할 수 없는 Object Code를 생성한다면, 이렇게 생성된 코드의 올바름을 확인하기 위해 추가적인 검증 수행이 필요합니다.



추가적인 검증이 수행되어져야 한다는 것의 의미는 DO-178B와 DO-178C와 다릅니다. DO-178B는 추가적인 검증이 Object Code 상에서 진행되어야 한다는 것을 말합니다. DO-178C는 요구사항을 제거하고 추가적인 검증 수행을 말합니다.




I Section 12.1.3 – Change of Application or Development Environment



개발 과정에서 이전부터 사용되어진 어플리케이션이 다시 재사용 또는 수정되어질 때 새로운 개발환경(컴파일러, 타겟 프로세서)으로 변경이 되는 경우가 있습니다. 


다른 종류의 컴파일러 사용 또는 컴파일 버전의 변경, 옵션 변경에 Object Code가 변경이 되며 이러한 소프트웨어는 이전에 진행된 인증 작업의 결과가 유효하지 않을 수 있습니다.



혹시 VectorCAST에 대해 더 알고 싶으신가요? 💁


MDS인텔리전스는 매달 1회씩 VectorCAST 도구 기본 교육을 진행하고 있습니다!🙌


아래 링크를 통해 MDS인텔리전스 홈페이지를 방문하시어 도구 사용자 교육을 수강해 보세요! 


훨씬 더 쉽게 VectorCAST를 활용하실 수 있습니다


>> VecorCAST 교육 신청하기 >> 




MDS인텔리전스


소프트웨어 동적시험 및 커버리지 분석 자동화 솔루션, VectorCAST


E. vectorcast@mdsit.co.kr