Reactis를 활용한 모델 검증 사례: 닛산 그룹
닛산 그룹은 차량 내 엔진 제어 소프트웨어 품질 보증을 위해 수십 년째 Model-Based Development(MBD) 프로세스를 도입하고 있습니다. 2000년도 이후 엔진 제어 소프트웨어의 크기와 복잡성은 폭발적으로 증가하고 있는 반면에, 개발 주기는 점차 단축되고 있습니다. 이러한 환경에서 닛산 그룹은 소프트웨어의 품질을 보장하기 위해 Sentra CA 모델에 MBD 프로세스를 처음 도입하여 양산하였으며, 이후 지속적으로 Reactis를 활용하여 테스팅 및 검증 작업을 수행하고 있습니다.
MBD 프로세스 내에서 가장 중요한 역할을 하는 것은 검증(Verification)과 유효성 확인(Validation) 절차입니다. 검증 단계에서는 시스템이 요구 사양에 맞게 구현되고 있는지를 확인하며, 유효성 확인 단계에서는 요구 사양이 필요 조건에 맞게 설계되었는지를 확인합니다.
닛산 그룹의 검증 프로세스에서는 Reactis가 이 중 Validation 테스트를 수행하여 Simulink 모델(실행 가능한 사양)이 올바르게 동작 하는지 검증하고 있습니다. 일반적인 요구사항 테스트에서는 테스트 케이스를 수작업으로 생성하여 모델에 테스트 수행 후 해당 모델의 출력 값이 기대치 값과 동일한지를 확인합니다. Validation 절차에서는 1) 해당 모델이 예상 시나리오에 맞게 동작 하는지와 2) 예상하지 못한 모델 동작들이 있었는지 확인하는 것이 가장 중요하다고 볼 수 있습니다.
[그림 1] 닛산 그룹 MBD 검증 프로세스 중 Reactis의 역할
닛산 그룹은 Reactis를 활용하여 보다 효율적으로 위의 질문을 해결하고 있습니다. 그림 1에서 확인할 수 있듯이, 닛산 프로세스는 Component(부품) 단위의 개발을 의무화하고 있습니다. 엔지니어들은 Reactis를 사용하여 Component Specification Design(부품 상세 설계)에 대해 MC/DC 커버리지를 100% 달성하는 테스트 케이스를 자동으로 생성할 수 있습니다. 자동 생성된 테스트 케이스는 Full coverage를 만족하는 입력값과 반응하는 출력값들을 모두 보유하고 있기 때문에, Reactis의 테스트 케이스를 사용할 경우 Component Detailed Design이 예상대로 작동하는지 쉽게 확인할 수 있습니다. 이렇게 자동으로 생성된 테스트 케이스는 Detailed Design(세부 설계도)에서 실행되고, 출력 값은 테스트에 저장된 결과값과 비교됩니다.
[그림 2] Reactis에서 지원되는 커버리지 종류
해당 모델이 예상 시나리오에 맞게 동작하는지에 대한 답을 얻는 과정에서 Detailed Design(세부 설계도)이 Specification Design(상세 요구 사양)에 적합한지 확인할 수 있습니다. 예상하지 못한 동작이 있었는지 확인하는 과정 에서는 Specification Design에서 요구하지 않은 공정이 있는지 확인할 수 있습니다. Reactis를 활용하면 두 가지 질문에 대한 해답을 더욱 쉽게 찾을 수 있습니다.
닛산 프로세스는 Specification Design으로부터 생성된 테스트를 수행할 때 달성된 Detailed Design의 커버리지에 대한 검토를 요구함으로써 예기치 못한 동작을 찾을 수 있습니다. Detailed Design의 커버되지 않은 영역은 사양에 포함되지 않은 동작을 나타내기 때문입니다.
이 과정과 동시에 런타임 오류를 검출할 수 있다는 것이 Reactis의 장점입니다. Reactis는 테스트를 생성하거나 실행하는 동안 오버플로우, Divided-by-zero, 및 멀티포트 스위치의 잘못된 인덱스와 같은 런타임 오류를 검출할 수 있습니다. 이러한 오류들은 Specification Design 으로부터 테스트를 생성하거나 Detailed Design에서 테스트를 실행하는 동안 검출이 되었으며, 흥미롭게도 닛산 그룹은 2번 항목에 대한 검증을 진행하면서 더 많은 버그를 발견했습니다. 1번 항목의 경우 엔지니어가 설계한 예상 시나리오를 확인하는 과정이지만 2번 항목의 경우 예측하지 못한 상황이기 때문에 더욱 많은 버그가 발견되는 것이라고 추측합니다. Reactis는 이처럼 예상하지 못한 환경에서도 효율적인 검증을 수행할 수 있는 도구임을 입증하고 있습니다.
닛산 그룹은 왜 Reactis를 선택했을까?
닛산 그룹은 초기 도입 당시 Reactis 이외에도 Simulink 모델에서 자동으로 테스트를 생성할 수 있는 다양한 도구를 검토했습니다. 하지만 Reactis로 달성할 수 있는 커버리지의 수준으로 인해 최종적으로 Reactis의 도입을 결정하였습니다. 간단한 정적 분석만을 제공하는 타사 도구와는 다르게, Reactis는 동적 테스트를 통해 높은 수준의 커버리지를 자동으로 생성할 수 있습니다. 또한 자동생성 테스트를 진행할 수 없는 부분에도 직관적인 사용자 인터페이스를 제공하여 수동으로 테스트를 진행할 수 있도록 지원합니다.
Reactis를 활용한 MBD 검증 프로세스는 초기에는 닛산의 GT-R모델의 파워트레인 애플리케이션 개발에 적용되었으나, 최근에는 전기 자동차 및 바디 제어 장치 개발에까지 확장되는 등 점차 적용 범위가 넓어지고 있습니다.
▶ Reactis 자세히 보기
▶ 출처: 자동차 SW 블로그