이 포스팅에서는 차량용 소프트웨어 산업의 전망, 최근 차량용 소프트웨어 기술의 발전, 차량용 소프트웨어 테스트와 관련된 법적 규제에 대해 알아보고, GUI가 탑재된 제품을 생산하는 기업들이 현대의 불안정하고 도전적인 시장에서 경쟁력을 유지하기 위해 차량용 소프트웨어 테스트를 어떻게 활용할 수 있는지 간략히 설명합니다.
차량용 소프트웨어 산업의 전망
차량용 소프트웨어 시장은 2030년까지 급성장할 것으로 예상되며, 예측에 따르면 산업 규모가 310억 달러(2019년)에서 약 800억 달러로 증가할 것으로 전망되고 있습니다. 이는 시장 전반에 걸쳐 9%가 넘는 연평균 성장을 의미하는 수치이며, 특히 인포테인먼트, 커넥티비티, 보안 및 커넥티드 서비스 분야에서는 9.1%를 차지하는 연평균 성장률을 기록할 것으로 예상됩니다.
이러한 수치는 자동차 산업 또한 다른 많은 산업과 마찬가지로, 전례 없는 수준의 혁신과 기술 발전, 그리고 그에 따른 치열한 경쟁 속에 놓여 있음을 보여줍니다. 차량 및 부품 제조업체들이 수익성을 유지하고 업계 선두를 지키기 위해 경쟁하는 가운데, 그 이면에는 코드 한 줄을 둘러싼 치열한 기술 경쟁이 벌어지고 있습니다.
자동차 업계에서의 소프트웨어 테스트 한 눈에 보기
일반적으로 사람들은 자동차 테스트라고 하면 충돌 테스트, 속도 테스트 등 물리적이고 기계적인 테스트를 먼저 떠올립니다. 그러나 실제로 차량용 소프트웨어의 대부분은 자동차 부품이 조립되기 훨씬 전에 이루어집니다.
하나의 자동차에는 약 30,000개의 부품이 사용되며, 이 부품들은 수십 개의 OEM (주문자 상표 부착 생산업체)과 협력업체들이 공동으로 공급합니다. 이 모든 부품은 하드웨어든 소프트웨어든 상관없이, 최종 조립 이전에 수십만 번의 테스트를 거치게 되며, 도로에 출시되기 전에는 그보다 더 많은 반복 검증이 이루어집니다.
차량용 소프트웨어 테스트
오늘날 도로를 달리는 자동차는 일반 세단부터 고성능 프리미엄 차량에 이르기까지 모두 소프트웨어에 의해 구동됩니다. 2022년에 제작된 차량에는 최대 150개의 전자 제어 장치가 설치됩니다.
전자 제어 장치(ECU)는 차량 내 특정 기능을 제어하는 소형 컴퓨터로, 기존의 기계 시스템이 수행하던 점화 타이밍, 연료, 공기, 엔진 회전 제어 등의 작업을 이제는 ECU 내부 칩에 프로그래밍된 소프트웨어가 처리합니다.
자동차에 탑재되는 ECU는 기능에 따라 구분될 수 있습니다. 예를들어 엔진 제어 모듈(ECM) 및 브레이크 제어 모듈(BCM)과 같은 ‘주요 기능 ECU’는 주행 안전과 직접적으로 연관된 시스템을 담당합니다. 반면, 내비게이션, 도어 잠금 및 잠금 해제, 창문 제어, 공조 시스템 등은 ‘비주요 기능 ECU’를 통해 관리됩니다.
전자 제어 장치는 그야말로 작은 컴퓨터라고 볼 수 있을만큼 다양하고 복잡한 기능을 가지고 있습니다. 따라서 각 전자 제어 장치들의 기능성, 사용성 및 안전성을 보장하기 위해서는 반드시 엄격한 소프트웨어 테스트를 수행해야 합니다.
현실적으로 차량을 테스트하는 것은 비용과 시간이 많이 들고 여러 번 반복하기가 쉽지 않습니다. 물론, 감사하게도 이 문제에 답이 되어줄 기술이 있습니다. 바로 Hardware-in-the-loop (HIL)과 Software-in-the-Loop (SIL) 테스팅입니다.
Software-in-the-Loop (SIL) 테스트
Software-in-the-Loop 테스트는 시뮬레이션을 통해 소프트웨어의 코드를 테스트하고 검증하여 버그를 제거하고 코드 품질을 개선하며 빌드 시간을 크게 단축합니다.
자동차 브랜드와 OEM이 경쟁 우위를 확보하기 위해 혁신을 거듭하는 가운데, 진정한 승부는 코드 단 몇 줄에서 결정됩니다. 차량에 탑재되는 제품 유형(안전성, 대시보드, 내비게이션 시스템 등)에 관계없이 모든 소프트웨어는 차량에 사용하도록 승인받기 전에 광범위한 테스트를 거쳐야 합니다.
SIL 테스트의 이점은 다음과 같습니다:
- 최종 빌드를 기다리지 않고 프로그램의 각 세그먼트가 완료될 때마다 주기적으로 코드를 테스트할 수 있습니다.
- 테스트를 자동화하고 동시에 실행할 수 있습니다.
- 테스트 결과를 공유할 수 있고 분석하기 쉽습니다.
- 소프트웨어와 하드웨어 개발을 분리하므로 소프트웨어 제조업체는 하드웨어 업계의 속도를 뛰어넘어 혁신을 지속할 수 있습니다.
- 전용 테스트 벤치가 필요하지 않습니다. (아래에서 설명할 HIL 테스트 역시 마찬가지입니다.)
- SIL 테스트는 쉽게 확장 가능하고 반복 가능하며 수동 테스트보다 빠릅니다.
Hardware-in-the-Loop (HIL) 테스트
HIL 테스트는 말 그대로 차량의 하드웨어와 관련된 테스트 및 검증 방법입니다. HIL 테스트에서의 시뮬레이션은 어느 정도 최종 제품과 흡사한 모델이라고 볼 수 있기 때문에, 실제 ECU를 테스트 시스템에 연결하기 전에 철저한 테스트를 거치게 됩니다.
HIL 테스트 벤치는 카메라 및 레이더와 같은 장치에서 입력된 데이터를 사용하여 실시간으로 수학적 모델을 실행함으로써 실제 자동차 엔진 동역학을 에뮬레이션합니다. 일반적으로 HIL 테스트는 SIL 테스트보다 비용과 시간이 더 많이 소요되므로 SIL 테스트를 먼저 진행한 이후에 수행됩니다.
위와 같은 차량용 소프트웨어 테스트는 단순히 도로 주행 안전 이유 외에도 사이버 보안, OEM의 신뢰성, 자동차 브랜드의 건전성 및 이미지 등의 이유로도 중요하게 작용합니다.
차량용 소프트웨어 테스트와 관련한 법적 규제 사항
오늘날 차량용 하드웨어 및 소프트웨어 구성 요소에 대한 테스트 관련 법적 규정은 매우 엄격하게 적용되고 있습니다.
ISO 26262: 도로 주행용 차량 - 기능 안전
차량 안전에 대한 주요 법적 요건인 ‘ISO 26262: 도로 주행용 차량 - 기능 안전’은 대량 생산되는 승용차에 적용되며 버스, 트럭, 트레일러 및 세미 트레일러의 E/E 시스템에 대한 지침을 제공합니다.
ISO 21434: 도로 주행용 차량 - 사이버 보안 엔지니어링
ISO 21434는 ISO 26262를 기반으로 하는 후속 표준이지만, 차량용 소프트웨어 및 하위 시스템의 설계 및 개발에서 사이버 보안에 특별히 초점을 맞추고 있습니다. 이 표준에서 다루는 주제에는 위험 관리 및 완화, 위험 평가, 지속적인 보안, 보안 관리 등이 포함됩니다.
AUTOSAR
AUTOSAR는 AUTomotive Open System ARchitecture의 약자로, "자동차 제조업체, 공급업체, 서비스 제공업체 및 자동차 전자, 반도체 및 소프트웨어 업계의 글로벌 개발 파트너십"을 의미합니다. AUTOSAR의 목표는 차량용 ECU를 위한 전 세계적으로 개방적이고 표준화된 소프트웨어 아키텍처를 만드는 것입니다. OEM과 제조업체가 AUTOSAR 아키텍처에 참여하거나 이를 준수할 법적 의무는 없지만, 현재 세계 유수의 완성차 및 부품 기업들은 개발의 효율성과 호환성 확보를 위해 AUTOSAR를 준수를 적극적으로 채택하고 있습니다.
MISRA
MISRA는 공급업체, 엔지니어링 컨설팅 업체, 정적 코드 분석자 및 OEM 제조업체로 구성된 자동차 안전 단체입니다. 1998년에 처음 발표되었던 MISRA의 코딩 가이드라인은 이제는 C 및 C++ 코딩 언어를 기반으로 구축된 시스템까지 다루고 있습니다. MISRA 역시 의무적으로 따라야 하는 표준은 아니지만, 안전 및 보안이 중요한 시스템을 개발할 때 안전하고 보안성이 뛰어나며 이식이 쉬운 코드 개발을 용이하게 하기 때문에 많은 산업 분야에서 널리 채택되고 있습니다.
차량용 소프트웨어 테스트를 수행하고자 하는 기업들을 위한 모범 사례
차량 내 제품의 기능(안전을 위한 기능, 기계적 기능, 미적 기능)에 따라 필요한 안전 테스트의 수준이 다르지만, 소프트웨어 테스트의 모범 사례는 제품에 관계없이 일관되게 적용됩니다.
가장 먼저 고려해야 할 사항은 테스트 작업에 적합한 도구가 무엇인지 판단하는 것입니다. 예를 들어, 제동 시스템을 생산하는 OEM이라면 복잡한 HIL 테스트가 필요할 수 있지만, 인포테인먼트 또는 내비게이션 시스템의 경우 SIL 테스트만 필요할 수 있습니다.
차량용 소프트웨어를 위한 자동화된 GUI 테스트
Squish는 데스크톱, 모바일, 임베디드 기기 및 웹 애플리케이션을 위한 자동화된 크로스 플랫폼 GUI 검증 도구입니다. 자동차 업계에서의 테스트에서는 일반적으로 네비게이션 시스템, 터치 패널, 대시보드 및 전면 패널 테스트에 Squish가 널리 사용되고 있습니다.
Squish가 차량용 GUI 테스트에 적합한 이유
사용자 인터페이스는 점점 더 애니메이션화되고 있으며, 그래픽은 놀라운 수준으로 빠르게 움직입니다. 이렇게 모든 것이 끊임없이 변화하고 있는 상황에서 애플리케이션의 상태와 테스트가 잘 동기화되도록 해야 하기 때문에 GUI 관점에서 테스트하는 것은 쉽지 않습니다.
복잡한 차량용 GUI를 테스트하기 위해서 테스터는 수동으로 스크린샷을 캡쳐한 뒤, 해당 화면이 올바른 위치에 올바른 위치에 정확한 색상으로 표시되고 있는지, 애니메이션이 의도한 속도로 적용되고 있는지 일일이 비교해야 했습니다.
Squish는 이러한 수작업의 한계를 극복하고자, 실제 엔드유저의 행동을 모방하는 방식으로 애플리케이션과 자동 상호작용하는 테스트 자동화 도구입니다. 클릭, 드래그, 드롭, 터치 등의 사용자 인터렉션을 자동화된 방식으로 수행하여 GUI 가 실제 환경에서 어떻게 작동하는지를 정확하게 재현합니다. 또한 Squish는 테스트 수행 중 자동으로 스크린샷을 캡쳐하고, 애플리케이션이 디자인 및 개발팀이 의도한 대로 이미지가 렌더링되는지를 검증합니다.
Squish는 여러 검증 포인트를 사용하여 시각적 모양이 예상과 일치하는지 확인하는 이미지 기반 테스트 기능을 제공하여 차량에서 발생할 수 있는 위험을 완화할 수 있도록 돕습니다. 또한 텍스트와 숫자가 화면에 의도한 대로 표시되는지 확인하는 데 도움이 되는 광학 문자 인식(OCR) 엔진 역시 지원합니다.
Squish에 대해 궁금하신가요? 여기를 클릭하여 무료 평가판을 다운로드하세요.