모델 주도 개발(Model Driven Develop-ment)이 더 짧은 시간, 더 적은 비용으로 더 많은 임베디드 기능을 개발할 수 있도록 한다는 사실은 그 동안 인정돼 온 사실이다. 임베디드 소프트웨어 개발에 있어서 모델 주도 방법의 추가적인 중요 장점은 MiL (Model in the loop) 시뮬레이션과 같은 개발 초기 검증 수단으로 인해 개발된 소프트웨어의 품질이 더욱 향상되었다는 점이다. 그러나 일반적으로 임베디드 소프트웨어 테스팅은 여전히 80~90년대의 소프트웨어 개발 과정에 맞는 조금 더 오래된 과정과 방법을 사용하고 있다.
사실 소프트웨어 개발에 모델을 사용하는 소프트웨어 엔지니어들의 높은 수준의 생산성과 테스팅 및 품질보증을 맡고 있는 엔지니어들의 낮은 수준의 생산성 사이에는 상당한 차이가 있다. 특히 걱정스러운 부분은 개발 시간이 촉박하여 임베디드 소프트웨어의 품질이 저하된다는 것이다. 게다가 자동차 기능에서 안전성이 점점 더 중요해지고 있기 때문에, 자동차 분야의 OEM들과 부품 공급업체들이 느끼는 압박은 더욱 커지고 있다. 이런 이유로 자동차 분야로 새롭게 다가오고 있는 ISO 26262 표준에 의해서 제기된 기능안전성이라는 관점은 소프트웨어 분야에서 기존에 존재하는 개발 과정들을 위협하고 있다.
이 글에서는 모델 기반 백투백(back-to-back) 테스트 접근법을 가지고 어떻게 모델 주도 개발을 보완하는지, 그리고 이것이 어떻게 상당히 향상된 품질과 테스팅 효율을 만들어 내는지 제시할 것이다. 이 모든 것은 기술된 테스트 기능과 검증 환경을 지닌 BTC EmbeddedTester짋가 ISO 26262 표준의 모든 ASIL(Automotive Software Integrity Levels)에서 “목적에 알맞다”라고 독일 인증기관 TUV SUD로부터 인증 받은 것처럼, ISO 26262의 기준을 충족시키면서 진행된다. 완전한 모델 기반 소프트웨어 검증 접근법은 TargetLink를 사용한 모델 주도 개발의 맥락에서 설명된다. 이 접근법은 MiL, SiL, PiL 테스팅 작업을 매끄럽게 통합하고, 그렇게 함으로써 일상적이고 많은 테스트 활동들을 자동화할 수 있다. 심지어 이런 접근법은 어떻게 필수요소인 테스트 벡터(test vector)들의 생성이 완전히 자동화되는지, 또 자동화함으로써 어떻게 임베디드 소프트웨어의 완전한 검증이 현재보다 더 짧은 시간 내에 행해질 수 있는지 보여준다.
여기에 기술된 방법은 자동 코드 생성 환경인 dSPACE TargetLink에 기반을 두고 있다. 자동화된 테스트와 검증 환경을 지닌 BTC EmbeddedTester짋는 자동 코드 생성기의 모든 모델링 블록 세트(modelling block-set)를 지원하고 있다. 추가적으로 여기서 설명하는 방법은 다른 경로로 생성된, 심지어는 손으로 직접 작성한 추가 레거시 코드(external legacy code)도 지원한다. 현재 이용 가능한 솔루션은 계층 구조로 개발된 어떤 고정소수점과 부동소수점 애플리케이션(application)이라도 지원함으로써 매우 높은 모델 및 코드 커버리지(code coverage) 수준에 다다를 수 있다. 이러한 사실은 지난 5년 동안 독일, 프랑스, 일본의 자동차 분야에서 일련의 제품을 통해 성공적으로 증명됐다.
산업 기능안전 표준의 지원
기술된 방법은 거의 자동차 분야에서 사용되기 때문에, 품질 측면을 관련된 안전기준을 사용해서 평가할 수 있다. 기술된 방법은 현재 기능안전 표준인 IEC 61508을 특별히 자동차의 기능안전에 맞춰서 각색하고 확장한 ISO 26262 표준에 포커스 돼 있다. 이 국제 표준의 최종 본 배포는 2011년으로 계획되어 있다(2009년 중반 이후 Draft International Standard 버전으로 이용 가능). ISO 26262에서는 모델 기반 개발(Model Based Development) 과정을 고려하고 있다. 때문에 모델 기반 테스팅과 각각 다른 개발 단계 사이의 백투백 테스팅은 최신의 기술이 될 것이다. ISO 26262는 ASIL A, ASIL B, ASIL C, ASIL D라고 하는 4개의 안전수준을 정의하고 있다. 수준A는 가장 낮고 D는 가장 높은 안전수준이다. 모든 레벨에서, “model과 코드 사이의 back-to-back 테스트”를 권장하고 있으며, 수준C와 D에서는 적극 권장하고 있다. 백투백 테스트의 품질은 소위 coverage criteria라고 불리는 기준에 의하여 결정된다. 특히 statement coverage, branch coverage, 그리고 MC/DC coverage는 서로 다른 ASIL 수준에서 요구된다.
<저작권자 © AEM. 무단전재 및 재배포, AI학습 이용 금지>