Proven by Intelligence
보이지 않는 안전을 인텔리전스로 증명하다.
기술 인사이트를 만나보세요.
안녕하세요. 🤗
임베디드 소프트웨어 전문 기업, MDS인텔리전스입니다.
이번 포스팅에서는 " 갈수록 커지는 차량 소프트웨어의 기능 안전의 중요성 " 에 대해 소개해 드리고자 합니다.
소스 코드 한 줄이 가진 영향력
일명 ‘버그’라 불리는 소프트웨어의 결함은 다양한 분야에서 발생되고 있습니다.
다만, 소프트웨어의 결함은 적용되는 시스템의 성격에 따라 발생되는 영향이 크게 다릅니다.
간단한 스마트폰 앱의 경우에는 결함으로 인해 중단되면 재시작을 통하여 이를 해결하면 되지만, 자동차나 항공기에서는 작은 결함이 최악의 경우로 이어질 수 있습니다.
보통 이러한 결함은 소프트웨어의 크기가 크고 복잡하여 발생되기도 하지만, 의외로 간단한 소스 코드의 한 줄에 의해 발생되기도 합니다.
대표적인 사례로는 양산된 차량에 탑재된 브레이크액의 유량을 감지하는 센서에서 브레이크액 부족 신호를 전송할 CAN(Controller Area Network)의 주소가 잘못 입력되어 센서의 신호를 받지 못하여 경고등이 작동되지 않는 문제로 전면적으로 리콜을 실시한 사례가 있습니다.
이는 주행 및 제동에 직접적인 영향을 주는 결함은 아니었지만, 엔진이나 제동 장치를 제어하는 ECU에서 이와 같은 오류가 존재했다면 운전자의 생명을 잃을 수도 있는 최악의 상황이 발생되었을 수도 있습니다.
이러한 문제는 기능과 구조가 복잡한 최신 차종일수록 발생할 가능성이 높습니다.
동적 테스팅의 중요성
위에서 언급한 결함은 코드를 실행하지 않고 테스트하는 방식인 정적 테스팅에서는 발견하기 힘든 결함입니다.
정적 테스팅은 코딩 룰 준수 여부와 Run-time 오류를 조기 발견하는 데 목적을 둔 테스트 방법이기 때문입니다.
그와 반대로 실 타겟이나 시뮬레이터를 사용하여 직접 실행하면서 테스트하는 방법인 동적 테스팅은 위와 같은 결함을 발견하기에 적합합니다.
소프트웨어 개발 프로세스 모델인 V-Model에 정의된 테스팅의 단계를 거치면 소프트웨어의 결함 발생률은 대폭 감소될 수 있습니다.
위에서 언급된 결함의 경우에도 시스템 레벨의 테스트가 충분히 이루어졌다면 발생되지 않았을 확률이 큽니다.
동적 테스팅을 정확하고 효율적으로 하기 위한 도구 선택의 중요성
테스팅의 중요도가 커짐으로써 자동차 개발 업체나 부품 업체의 업무 부담은 나날이 커지고 있습니다.
차량에 탑재된 소프트웨어의 비중이 나날이 늘어남에 따라 소프트웨어가 점점 복잡해졌고, ISO26262 도입을 서두르게 되면서 개발 프로세스에 대한 정립과 테스트에 대한 전문적인 역량을 갖춰야 하기 때문에 많은 시간과 노력이 필요하게 되었습니다.
이러한 상황으로 인해 증가된 다양한 어려움을 해결하기 위해 이를 지원해 주는 도구들이 도입되고 있습니다.
현재 진행하고 있는 프로젝트의 성격에 따른 적절한 도구 선택은 프로젝트 성공으로 이어지는 만큼 중요해지고 있습니다.
이로 인해 사용자는 동적 테스팅 도구를 선택함에 있어서 고려해야 할 부분이 많아지고 있습니다
테스팅 도구를 선택하기 위해 고려해야 할 내용은 [ 임베디드 SW 테스트 도구의 평가 방법 ]에서 자세하게 설명드리고 있습니다.

이번 포스팅을 통해, 동적 테스팅 및 도구 선택의 중요성에 대해 설명해 드렸습니다.
혹시 VectorCAST에 대해 더 알고 싶으신가요? 💁
MDS인텔리전스는 매달 1회씩 VectorCAST 도구 기본 교육을 진행하고 있습니다!🙌
아래 링크를 통해 MDS인텔리전스 홈페이지를 방문하시어 도구 사용자 교육을 수강해 보세요!
훨씬 더 쉽게 VectorCAST를 활용하실 수 있습니다

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