Proven by Intelligence
보이지 않는 안전을 인텔리전스로 증명하다.
기술 인사이트를 만나보세요.
임베디드 항공 시스템/소프트웨어에서 많이 사용하고 있는 VectorCAST,
소프트웨어 동적시험 및 커버리지 분석 자동화 솔루션으로, DO-178B/C, DO-128B/C 소프트웨어 검증에도 많이 사용하고 있습니다.
이번 포스팅에서는 DO-128B/C 소프트웨어 검증을 위한 VectorCAST 사용 방법(2)에 대해 안내해 알려 드리겠습니다.
혹시~? 앞의 이어지는 글을 확인하셨나요? 아래 콘텐츠를 확인해 보시고 오시면 이해가 쏙쏙! 👍
🔎 연재글 [VectorCAST] DO-178B/C SW Verification (1)
I How VectorCAST Supports DO-178B/C
소프트웨어 검증 프로세스의 목적은 DO-128B/C 표준의 6.0 세션에 정의 되어 있습니다.
I Section 6.4 – Software Testing Process
이 프로세스는 세가지 유형의 테스트를 명시합니다.
I Hardware/Software Integration Testing
이 유형의 테스트는 고수준의 요구사항을 만족시키기 위해 사용되며, 타겟 하드웨어에 최종 실행파일을 사용하여 수행됩니다. VectorCAST/Cover는 이러한 시험 방식에서 사용 되며 시스템의 실행과 기능 레벨의 테스트 절차 과정에서 Code Coverage를 분석하는 방식으로 진행됩니다.
I Software Integration Testing
소프트웨어 통합 시험은 컴포넌트의 상호 관계를 검증합니다. 이 레벨의 시험은 한번에 여러개의 소프트웨어 컴포넌트 기반으로 시험을 진행하기 위해 VectorCAST/C++ 또는 VectorCAST/Ada를 사용합니다.
I Low-level Testing
저수준의 시험은 저수준 요구사항을 시험하기 위해 사용되고, 소스코드에서 독립된 하나의 단위를 고립시켜 각각의 단위 별로 시험을 수행하는 방식으로 진행됩니다. VectorCAST/C++와 VectorCAST/Ada는 이러한 시험 과정에서 사용됩니다.
Note: 각각 시험 단계에서 구조적 커버리지 및 요구사항 커버리지가 만족되어야 함.
VectorCAST의 독특한 기능은 다른 단계의 커버리지 데이터들을 공유할 수 있다는 것 입니다.
이것은 이전에 고수준의 시험 레벨에서 커버리지 성취했을 때 저수준 레벨에서 추가적으로 달성해야 하는 커버리지를 완화시킬 수 있습니다.
I Section 6.4.1 – Test Environment
이 섹션은 소프트웨어 테스팅의 목적을 만족시키기 위해 하나 이상의 시험환경이 필요함을 설명 합니다. 타겟에 전체 어플리케이션을 올려 시험하는 것이 이상적인 시험 환경이지만 전체 통합된 환경 기반에서는 요구사항 기반의 커버리지와 구조적 커버리지를 실행하고 얻어내기 힘들 수 있습니다. 테스트는 작은 컴포넌트를 독립적으로 수행해볼 필요가 있을 수 있습니다.
VectorCAST는 실제 타겟 보드 기반의 시험과 컴파일러 제조사에서 제공되는 타겟 시뮬레이터 기반의 시험환경을 제공합니다. 독립된 컴포넌트의 테스팅을 통해 얻은 구조적 커버리지는 이전에 진행한 통합 테스팅에서 얻어진 커버리지와 결합할 수 있습니다.
VectorCAST 테스트 케이스는 시험환경, 소스코드와 독립적으로 관리되고 있습니다. 그렇기 때문에 동일한 테스트 케이스를 호스트, 타겟 시뮬레이터, 타겟 상에서 자동으로 실행해 볼 수 있습니다.

I Section 6.4.2 – Requirements Based Test Selection
DO-178B/C는 소프트웨어 검증이 소스코드 기반이 아닌 요구사항 기반이 되어야 한다는 것을 명시하고 있습니다. 요구사항 기반의 테스트는 테스터 또는 개발자가 코드를 실행하기 위해 입력 데이터를 설정하여 요구사항을 만족하였는지 확인하도록 하고 있습니다. 이 요구사항 기반의 테스트는 두 가지 형식으로 실행해 볼 수 있습니다. 일반적인 유요한 범위의 테스트 케이스 작성, 강건성 확인을 위한 테스트 케이스 작성
I Section 6.4.2.1 – Normal Range Test Cases (일반적인 유효 범위의 테스트 케이스 설계)
유효 범위 테스트의 목적은 일반적인 입력에서 동작 상태에서 소프트웨어의 기능을 증명하기 위함입니다. VectorCAST는 GUI나 스크립트를 통해 이러한 내용을 진행할 수 있습니다. 아래 사진은 GUI와 스크립트의 예를 보여줍니다.

-- Test Case: (CL)MANAGER::PLACEORDER.001 TEST.UNIT:manager TEST.SUBPROGRAM:(cl)Manager::PlaceOrder TEST.NEW TEST.NAME:(CL)MANAGER::PLACEORDER.001 TEST.VALUE:manager.(cl)Manager::PlaceOrder.Table:1 TEST.VALUE:manager.(cl)Manager::PlaceOrder.Seat:4 TEST.VALUE:manager.(cl)Manager::PlaceOrder.Order.Soup:Onion TEST.VALUE:manager.(cl)Manager::PlaceOrder.Order.Salad:Caesar TEST.VALUE:manager.(cl)Manager::PlaceOrder.Order.Entree:Steak TEST.VALUE:manager.(cl)Manager::PlaceOrder.Order.Dessert:Pie TEST.VALUE:manager.(cl)Manager::PlaceOrder.Order.Beverage:Wine TEST.VALUE:whitebox.<>.(cl).WhiteBox.WhiteBox.<>.WhiteBox().<>:0 TEST.END
VectorCAST는 장시간 동안 테스트 케이스를 반복 실행할 수 있는 간단한 방법을 제공합니다. 이를 Compound Testing이라고 합니다. 이것은 하나의 테스트 케이스를 여러 번 반복 실행하거나 여러 개의 테스트 케이스를 조합하여 실행해 볼 수 있습니다. 여러 번 수행되는 테스트 케이스는 계속적으로 데이터를 유지하면서 수행이 됩니다.
논리 연산으로 구현한 요구사항은 Modified Condition/Decision Coverage (MC/DC)을 수행해야 하며 VectorCAST는 MC/DC 분석을 제공합니다.
혹시 VectorCAST에 대해 더 알고 싶으신가요? 💁
MDS인텔리전스는 매달 1회씩 VectorCAST 도구 기본 교육을 진행하고 있습니다!
아래 링크를 통해 MDS인텔리전스 홈페이지를 방문하시어 도구 사용자 교육을 수강해 보세요!
훨씬 더 쉽게 VectorCAST를 활용하실 수 있습니다
MDS인텔리전스
소프트웨어 동적시험 및 커버리지 분석 자동화 솔루션, VectorCAST
E. vectorcast@mdsit.co.kr
