KR20200067474A - Autosar 기반 차량 소프트웨어의 결함 테스트 방법 및 결함 테스트 시스템 - Google Patents

Autosar 기반 차량 소프트웨어의 결함 테스트 방법 및 결함 테스트 시스템 Download PDF

Info

Publication number
KR20200067474A
KR20200067474A KR1020180154370A KR20180154370A KR20200067474A KR 20200067474 A KR20200067474 A KR 20200067474A KR 1020180154370 A KR1020180154370 A KR 1020180154370A KR 20180154370 A KR20180154370 A KR 20180154370A KR 20200067474 A KR20200067474 A KR 20200067474A
Authority
KR
South Korea
Prior art keywords
defect
layer
software
function
autosar
Prior art date
Application number
KR1020180154370A
Other languages
English (en)
Other versions
KR102141287B1 (ko
Inventor
최병주
박지현
Original Assignee
이화여자대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이화여자대학교 산학협력단 filed Critical 이화여자대학교 산학협력단
Priority to KR1020180154370A priority Critical patent/KR102141287B1/ko
Publication of KR20200067474A publication Critical patent/KR20200067474A/ko
Application granted granted Critical
Publication of KR102141287B1 publication Critical patent/KR102141287B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Stored Programmes (AREA)

Abstract

AUTOSAR 기반 차량 소프트웨어의 결함 테스트 방법은 차량제어장치(ECU)가 BSW(Basic Software) 계층에서 태스크(task) 실행 여부를 모니터링하는 단계, 상기 차량제어장치가 상기 BSW 계층에서 상기 태스크 실행 전 호출되는 적어도 하나의 함수에 대한 래퍼(wrapper) 함수를 선택하는 단계, 상기 차량제어장치가 상기 BSW 계층, RTE(Runtime Environment) 계층 및 SWC(SoftWare Component)에서 실행되는 상기 적어도 하나의 함수 중 결함주입 대상인 타깃 함수를 확인하는 단계, 상기 차량제어장치가 상기 타깃 함수에 대한 결함 코드를 상기 타깃 함수에 대한 래퍼 함수에 전달는 단계 및 상기 차량제어장치가 호스트장치로 상기 특정 결함을 실행한 결과를 송신하는 단계를 포함한다.

Description

AUTOSAR 기반 차량 소프트웨어의 결함 테스트 방법 및 결함 테스트 시스템{FAULT INJECTION TEST METHOD AND SYSTEM FOR VEHICLE SOFTWARE BASED ON AUTOSAR}
이하 설명하는 기술은 차량 소프트웨어에 대한 결함 테스트 기법에 관한 것이다.
최근 양산되는 차량은 수십 개에서 백여 개에 이르는 ECU를 사용하고 있다. 이에 따라, ECU(electronic control unit)와 MCU(Micro Controller Unit)를 제어하는 소프트웨어의 크기와 복잡도가 증가하였고, 소프트웨어의 표준화의 필요성이 대두 되었다. 차량 OEM 및 ECU 제조업체를 중심으로 소프트웨어 개발의 부담을 경감하고 소프트웨어의 품질을 확보하기 위하여 소프트웨어, 데이터 포맷, 개발 프로세스 등의 재사용을 목표로 AUTOSAR (AUTomotive Open System ARchitecture) 컨소시엄이 출범하였다. AUTOSAR는 인터페이스, 데이터 교환 방식 및 개발방법론을 표준화하였다.
ISO 26262(자동차 기능 안전성 국제 표준)는 기능 안전 표준 IEC 61508을 자동차 전기/전자 시스템에 적응시킨 것이다. ISO 26262에 따르면 기능 안전을 검증하기 위하여 차량용 소프트웨어에서 결함 주입 테스트를 수행하여야 한다.
AUTOSAR 기반의 차량용 소프트웨어에 결함을 주입하기 위한 방법은 크게 외부 하드웨어 장치를 이용하는 방법과 소프트웨어 기반한 방법으로 나뉜다. 외부 하드웨어 장치를 이용하는 방법은 디버거(debugger) 모듈을 이용하여 결함 주입을 하는 방법이다. 소프트웨어 통한 결함 주입은 크게 세 가지로 나뉜다. 첫 번째는 AUTOSAR에서 제공하는 함수(trace hook)를 이용하는 방법이다. 두 번째 방법은 직접 코드를 수정하는 방법이다. 세 번째는 래퍼(wrapper) 함수를 생성하여 결함을 주입하는 방법이다.
한국공개특허 제10-2014-0008547호
하드웨어 장치를 이용하는 방법은 장치 연결을 위한 인터페이스가 필요하고, 전체 실행을 디버거를 통해 모니터링하므로 오버헤드가 크다는 단점이 있다. 소프트웨어를 이용하는 방법도 다음과 같은 문제점이 있다. AUTOSAR가 제공하는 후킹(hooking) 함수를 이용하는 방법은 함수의 매개변수나 리턴값을 변경하지 못하는 한계가 있다. 직접 코드를 수정하는 방법은 소프트웨어가 변경되는 것이기 때문에 결함 주입 전/후의 동작이 달라질 위험이 있다. 래퍼 함수를 이용하는 방법은 다양한 결함 주입이 가능하다 구현이 어렵다는 문제가 있다. 또한 소프트웨어를 이용하는 결함 주입 방법은 결함 주입 결과에 대한 모니터링이 어렵다는 문제도 있다.
이하 설명하는 기술은 AUTOSAR 모든 계층에 결함 주입이 가능한 테스트 기법을 제공하고자 한다. 이하 설명하는 기술은 결함 주입 후 결과에 대한 모니터링이 가능한 테스트 기법을 제공하고자 한다.
AUTOSAR 기반 차량 소프트웨어의 결함 테스트 방법은 차량제어장치(ECU)가 BSW(Basic Software) 계층에서 태스크(task) 실행 여부를 모니터링하는 단계, 상기 차량제어장치가 상기 BSW 계층에서 상기 태스크 실행 전 호출되는 적어도 하나의 함수에 대한 래퍼(wrapper) 함수를 선택하는 단계, 상기 차량제어장치가 상기 BSW 계층, RTE(Runtime Environment) 계층 및 SWC(SoftWare Component)에서 실행되는 상기 적어도 하나의 함수 중 결함주입 대상인 타깃 함수를 확인하는 단계, 상기 차량제어장치가 상기 타깃 함수에 대한 결함 코드를 상기 타깃 함수에 대한 래퍼 함수에 전달하여 특정 결함을 실행하는 단계 및 상기 차량제어장치가 호스트장치로 상기 특정 결함을 실행한 결과를 송신하는 단계를 포함한다.
AUTOSAR 기반 차량 소프트웨어의 결함 테스트 시스템은 BSW(Basic Software) 계층에서 태스크(task) 실행을 모니터링하고, 상기 BSW 계층, RTE(Runtime Environment) 계층 및 SWC(SoftWare Component)에서 상기 태스크 실행 전 호출되는 함수에 대한 래퍼(wrapper) 함수를 선택하는 모니터링 모듈, 상기 BSW 계층, RTE(Runtime Environment) 계층 및 SWC(SoftWare Component)에서 실행되는 상기 적어도 하나의 함수 중 결함주입 대상인 타깃 함수에 대한 래퍼 함수에 결함 코드를 전달하는 결함 주입 모듈 및 상기 결함 코드의 전달 여부, 상기 결함 코드 실행 결과 및 상기 결함 코드 실행 후 호출 스택 정보를 포함하는 테스트 결과 정보를 생성하는 결과보고 모듈을 포함하는 차량제어장치를 포함한다. 상기 모니터링 모듈, 상기 결함 주입 모듈 및 상기 결과보고 모듈은 소프트웨어 모듈이고, 상기 BSW 계층에 위치한다.
소프트웨어를 이용한 결함 주입 방법은 별도의 하드웨어 장치 없이 실제 차량 환경(내지 유사 환경)에서도 결함 주입이 가능하다. 이하 설명하는 기술은 래퍼 함수를 이용하여 AUTOSAR 기반 차량용 소프트웨어의 코드 변경 없이 다양한 결함을 손쉽게 주입한다. 이하 설명하는 기술은 결함 주입 후 결과에 대한 모니터링 및 분석이 용이하다.
도 1은 AUTOSAR 소프트웨어 계층 구조에 대한 예이다.
도 2는 AUTOSAR 기반 소프트웨어의 결함 테스트를 위한 차량제어장치의 예이다.
도 3은 AUTOSAR 기반 소프트웨어의 결함 테스트 시스템에 대한 예이다.
도 4는 AUTOSAR 기반 소프트웨어의 결함 테스트 과정에 대한 예이다.
이하 설명하는 기술은 다양한 변경을 가할 수 있고 여러 가지 실시례를 가질 수 있는 바, 특정 실시례들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 이하 설명하는 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 이하 설명하는 기술의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 상기 용어들에 의해 한정되지는 않으며, 단지 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 이하 설명하는 기술의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설시된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.
도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.
또, 방법 또는 동작 방법을 수행함에 있어서, 상기 방법을 이루는 각 과정들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 과정들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
이하 설명하는 기술은 AUTOSAR 기반의 차량 소프트웨어에 대한 결함 주입 방법과 결함 주입을 이용한 테스트 기법에 해당한다. 이하 도면을 참조하여 관련된 실시예들을 설명한다.
도 1은 AUTOSAR 소프트웨어 계층 구조에 대한 예이다. 차량은 다수의 ECU를 포함한다. 이하 ECU는 차량제어장치와 동일한 의미이다. 도 1은 버스로 연결된 2개의 ECU(ECU1 및 ECU2)를 예로 도시한다. ECU1(100)을 기준으로 AUTOSAR 소프트웨어 계층 구조에 대하여 설명한다.
AUTOSAR 소프트웨어 계층 구조는 크게 BSW(Basic Software) 계층(110), RTE(Runtime Environment) 계층(120) 및 애플리케이션 계층(응용 소프트웨어 계층,130)으로 구분된다.
BSW 계층(110)은 표준 소프트웨어 모듈로 구성되는데, 그 모듈의 역할에 따라 하위 계층으로 그룹화된다. BSW 계층의 하위 계층에는 SRVL (SeRVice Layer, 서비스 계층), ECUAL, MCAL(미도시)이 있다.
MCAL은 마이크로컨트롤러를 제어하는데 필요한 계층으로서 쉽게 말하면 일종의 디바이스 드라이버이다. 따라서 ECU로부터는 독립적이지만 마이크로콘트롤러에는 종속적이고, 마이크로콘트롤러를 제어할 수 있는 메모리, 통신, I/O 표준 드라이버로 구성된다. AUTOSAR MCAL은 AUTOSAR에서 규정한 API(APplication Interface) 이름을 사용하여 Device Driver를 제어한다. AUTOSAR MCAL은 XML 형식을 이용한 소스코드 자동 생성이므로, MCU 벤더(Vendor)에 의존한 별도의 파라미터를 사용할 경우, XML 형식으로 별도의 파라미터 설정이 가능해야 하고, 동시에 자동으로 별도의 파라미터 확장에 필요한 API 소스코드를 생성해야 한다. MCAL은 AUTOSAR 소프트웨어 계층에서 Microcontroller 상위에 위치한다.
ECUAL은 ECU의 기능을 추상화하고 있는데, ECU 제어에 관련된 메모리, 통신, I/O에 접근할 수 있는 표준 소프트웨어들로 구성된 계층으로서, 마이크로콘트롤러에는 독립적이지만 ECU에는 종속적으로 구현된다. BSW에 속해있는 거의 모든 정형화된 인터페이스는 이 계층에 맵핑되어 있다.
서비스 계층은 통신, 서비스, OS 블록을 포함하고 있는 계층으로 ECU와 하드웨어를 추상화하여 응용 프로그램과 BSW 모듈을 위한 서비스를 자신의 상위 계층에 제공하는 역할을 담당한다. 따라서, 네트워크 서비스, 메모리 관리 및 애플리케이션 계층에 대한 버스 통신 서비스와 같은 서비스를 제공하는 표준 소프트웨어들로 구성된다.
RTE 계층(120)은 상위 계층인 애플리케이션 계층(130)과 하위 계층인 BSW 계층(110) 사이에 위치하여 미들웨어 성격을 갖는다. 애플리케이션 계층(130)의 사용자 소프트웨어와 BSW 계층(110)의 기본 소프트웨어가 이 계층을 통해 분리되고, 상위 계층인 애플리케이션 계층(130)에 속한 SWC들(131, 132) 사이의 연결 또는 상위 계층 SWC(131, 132)에서 하위 계층 BSW(110)로의 연결을 매개한다. 실제로 RTE 계층(120)에는 애플리케이션 계층(130)에 속한 SWC(131, 132)의 런타임 행동을 제어하고 데이터 교환에 필요한 코드가 구현되어 있다.
RTE 계층(120)은 VFB (Virtual Functional Bus)라고 하는 개념을 구현한 계층이다. 모든 SWC-to-SWC 통신 또는 SWC-to-BSW 통신이 VFB에 기반을 두고 있기 때문에, ECU 하드웨어와는 독립적으로 분리된 상태를 의미한다. RTE 계층(120)이 VFB 역할을 하고 있기 때문에 AUTOSAR 소프트웨어는 하드웨어에 종속되지 않고 재사용 가능하다. RTE 계층(120)은 Client/Server와 Sender/Receiver 통신 모델을 지원한다. Client/Server 모델은 미리 정의된 서비스를 Client SWC가 Server SWC에 요청하고, 그에 따른 결과를 수신하는 통신 방식을 의미한다. Sender/Receiver 모델은 Sender SWC가 데이터를 배포하며 Receiver SWC는 배포된 데이터를 수신하게 된다. RTE 계층(120)은 모든 SWC 사이의 통신을 책임지게 되며 SWC들은 동일 ECU에 있을 수도 있고 다른 ECU에 존재할 수도 있다.
애플리케이션 계층(130)은 SWC(SoftWare Component)를 포함한다. 도 1은 2개의 SWC(131, 132)를 예로 도시하였다. 응용 소프트웨어는 SWC 형태로 개발된다.
AUTOSAR를 이용한 소프트웨어 개발 과정에 대하여 간략하게 설명한다. AUTOSAR 소프트웨어 개발은 시스템 설정단계와 ECU 설정단계로 나누어진다. 시스템 설정 단계는 SWC의 데이터 타입, 인터페이스와 연결 상태 등을 기술하는 SW-C 명세서(Component Description), 각 ECU의 HW구성을 기술하는 ECU 자원명세서(Resource Description), 그리고 버스 시그널, 토폴로지 등 시스템 제약명세서(Constraint Description)를 작성한다. 각 SW-C 내부에는 응용 SW 구현을 위한 태스크 동작 정의 및 트리거 조건을 정의한다. 다음은 SWC를 각 ECU에 매핑하고 네트워크 설계를 하여 시스템 설계명세서(System Configuration Description)를 기술한다. 작성된 파일은 XML 형식의 템플릿을 사용하며 XML을 사용함으로써 데이터의 공유 및 전달을 표준화 할 수 있다. 다음 단계는 시스템 설계명세서로부터 각 ECU 정보를 추출하여 ECU 설계를 하며, 태스크 정의 및 할당, RTE 생성, BSW 등을 설계하여 ECU 설계 명세서(Configuration Description)를 기술한다. 응용 SW와 함께RTE, OS, Communication 등의 AUTOSAR 소프트웨어 모듈 코드를 생성하고, 컴파일, 링크를 거쳐 실행 파일을 만들어 ECU 응용서비스를 구현한다.
이하 생성된 AUTOSAR 소프트웨어에 대한 결함을 삽입하여 테스트하는 과정에 대하여 설명한다. 도 2는 AUTOSAR 기반 소프트웨어의 결함 테스트를 위한 차량제어장치(200)의 예이다. 차량제어장치(200)는 전술한 ECU에 해당한다. 차량제어장치(200)는 애플리케이션 계층, RTE 계층, BSW 계층을 포함한다. BSW 계층에 래퍼 함수를 이용하여 결함을 주입하고 모니터링하기 위한 모듈들이 위치한다.
차량제어장치(200)는 모니터링 모듈(211), 결함 주입 모듈(212) 및 결과보고 모듈(213)을 포함한다. 차량제어장치(200)는 래퍼 함수 풀(pool)을 포함한다. 래퍼 함수 풀은 다양한 래퍼 함수의 집합이다. 래퍼 함수 풀은 태스크 실행을 위한 다양한 실행 함수들에 대한 래퍼 함수를 포함할 수 있다. 래퍼 함수는 개별 실행함수에 대하여 사전에 마련될 수 있다. 래퍼 함수는 특정 함수를 자신의 함수로 덮어쓰는 기능을 수행한다.
모니터링 모듈(211)은 BSW 계층의 태스크(task) 실행 전에 호출되는 모듈이다. 이때 모니터링 모듈(211)은 래퍼 함수 풀에서 특정한 결함과 관련된 래퍼 함수를 선택할 수 있다. 모니터링 모듈(211)은 래퍼 함수 풀에서 특정한 소프트웨어와 관련된 래퍼 함수를 선택할 수도 있다. 선택된 래퍼 함수는 태스크 내의 해당 함수가 실행되기 전에 먼저 호출되어 결함 주입 여부를 모니터링한다. 결함 주입 요청이 입력된 경우, 모니터링 모듈(211)은 현재 BSW 계층(110), RTE 계층(120) 및 애플리케이션 계층(130)에서 실행되는 함수가 결함 주입 대상인지 확인한다. 이하 결함 주입 대상인 함수를 타깃 함수라고 명명한다.
결함 주입 모듈(212)은 모니터링 모듈(211)에서 선택한 타깃 함수에 대하여 결함을 수행하게 한다. 결함 주입 모듈(212)은 특정한 결함 코드를 선택하여 타깃 함수에 전달한다. 이 과정에서 래퍼 함수가 타깃 함수에 대한 결함 코드를 덮어쓴다. 결함 코드의 유형은 데이터 결함(data error), 프로그램 흐름 결함(program flow error), 접근 결함(access error), 시간 결함(timing error) 및 비대칭 결함(asymmetric error) 중 적어도 하나일 수 있다.
결과보고 모듈(213)은 결함 주입 함수가 실행된 후에 결함 주입 함수의 실행 여부, 결함 주입 실행 결과 및 이후 호출 스택과 같이 결함 주입으로 인한 예외 처리 루틴 동작에 대한 정보를 생성한다. 결과보고 모듈(213)이 생성하는 정보를 테스트 결과 정보라고 명명하다. 테스트 결과 정보는 결함 주입 이후 소프트웨어 동작에 대한 정보를 제공하며, 이를 통해 결함 주입 결과에 대한 모니터링을 할 수 있다. 테스트 결과 정보는 결함 코드의 전달 여부, 결함 코드 실행 결과 및 상기 결함 코드 실행 후 호출 스택 정보 중 적어도 하나를 포함한다. 결과보고 모듈(213)은 테스트 결과 정보에 해당하는 로그 정보를 저장할 수 있다. 테스트 결과 정보는 차량제어장치 또는 별도의 저장 매체에 저장될 수 있다.
나아가 결과보고 모듈(213)은 테스트 결과 정보를 외부 객체인 호스트 장치(호스트 PC)에 전달할 수 있다. 결과보고 모듈(213)은 통신 기능을 갖는 에이전트를 이용하여 차량 통신을 통해 연결된 호스트 장치에 테스트 결과 정보를 송신할 수 있다.
도 3은 AUTOSAR 기반 소프트웨어의 결함 테스트 시스템(300)에 대한 예이다. 소프트웨어 결함 테스트 시스템(300)은 차량제어장치(310) 및 호스트 장치(320)를 포함한다. 차량제어장치(310)는 도 2에서 설명한 차량제어장치(200)와 동일한 객체이다. 차량제어장치(320)는 모니터링 모듈(311), 결함 주입 모듈(312) 및 결과보고 모듈(313)을 포함한다. 각 모듈의 동작은 도 2에서 설명한 바와 같다.
모니터링 모듈(311)은 BSW 계층에서 태스크 실행 전에 호출되는 함수에 대한 래퍼 함수를 선택한다. 모니터링 모듈(311)은 모든 계층에서 현재 실행되는 함수가 결함 주입 대상인지 확인한다. 모니터링 모듈(311)은 결함 주입 대상인 타깃 함수에 대한 정보를 결함 주입 모듈(312)에 전달한다. 결함 주입 모듈(312)은 타깃 함수에 대한 래퍼 함수를 이용하여 결함 코드를 실행한다. 결함 주입 모듈(312)은 결함 주입 시점에 대한 정보를 결과보고 모듈(313)에 전송한다. 결과보고 모듈(313)은 타깃 함수의 실행 여부, 결함 코드의 실행 결과, 결함 코드 시행 후의 호출 스택 정보 등을 수집하여 테스트 결과 정보를 생성한다. 모니터링 모듈(311), 결함 주입 모듈(312) 및 결과보고 모듈(313)은 BSW 계층에서 독자적인 채널을 통해 서로 통신할 수 있다. 또 모니터링 모듈(311), 결함 주입 모듈(312) 및 결과보고 모듈(313)은 RTE 계층을 통해 다른 계층의 모듈 내지 함수와 통신할 수 있다.
결과보고 모듈(313)은 테스트 결과 정보를 에이전트를 통해 연결된 외부 객체인 호스트 장치(320)에 전달할 수 있다. 호스트 장치(320)와 연결이 불가능한 경우, 결과보고 모듈(313)은 테스트 결과 정보를 로그 파일로 저장할 수 있다.
차량제어장치(310)와 호스트 장치(320)는 차량 통신(CAN 등)을 통해 정보를 교환할 수 있다. 호스트 장치(320)는 내부에 설치된 분석 프로그램(321)을 이용하여 테스트 결과 정보를 분석할 수 있다. 분석 프로그램(321)은 검증 대상 소프트웨어의 결함 위치, 결함 데이터, 결함 발생 시점, 결함 발생 후 동작 등을 분석하여 결함 주입 이후의 차량제어장치(310) 동작을 모니터링하고 분석할 수 있다.
도 4는 AUTOSAR 기반 소프트웨어의 결함 테스트 과정(400)에 대한 예이다. 도 4는 도 3의 소프트웨어 결함 테스트 시스템(300)의 동작을 예로 설명한다.
모니터링 모듈(311)은 BSW 계층에서 전체 소프트웨어 실행을 모니터링한다. 모니터링 모듈(311)은 BSW 계층의 태스크를 모니터링한다(401). 모니터링 모듈(311)은 태스크의 실행 전에 호출되는 함수에 대한 정보를 수신한다(402).
모니터링 모듈(311)은 호출되는 함수에 매칭되는 래퍼 함수를 선택한다(412). 모니터링 모듈(311)은 래퍼 함수 풀에서 매칭되는 래퍼 함수를 선택할 수 있다. 모니터링 모듈(311)은 태스크의 종류에 따라 특정 래퍼 함수를 선택할 수 있다. 모니터링 모듈(311)은 태스크 실행을 위해 호출되는 함수 또는 함수의 종류에 따라 특정 래퍼 함수를 선택할 수 있다. 차량제어장치는 선택된 래퍼 함수를 실행한다.
모니터링 모듈(311)은 결함 주입 요청이 입력된 경우 현재 BSW 계층, RTE 계층 및 애플리케이션 계층에서 실행되는 함수가 타깃 함수인지 확인한다. 결함 주입 모듈(312)은 타깃 함수에 대한 정보를 결함 주입 모듈(312)에 전달한다(421). 결함 주입 모듈(312)은 모니터링 모듈(311)에서 선택한 타깃 함수에 대한 결함 코드를 선택할 수 있다. 결함 주입 모듈(312)은 소프트웨어 단위 또는 통합 테스트 단계별로 서로 다른 결함 코드를 선택할 수 있다. 이 경우 특정 함수에 대한 결함 코드도 사전에 마련된 결함 코드 풀에서 선택될 수 있다. 결함 코드의 유형은 데이터 결함(data error), 프로그램 흐름 결함(program flow error), 접근 결함(access error), 시간 결함(timing error) 및 비대칭 결함(asymmetric error) 중 적어도 하나일 수 있다. 결함 주입 모듈(312)은 선택된 타깃 함수에 대하여 결함 코드를 주입한다(423).
이후 BSW 계층(110), RTE 계층(120) 및 애플리케이션 계층(130) 중 적어도 하나의 계층에서 결함 코드로 타깃 함수가 실행된다(431). 결함 주입 모듈(312)은 결함 주입 시점 또는 결함 실행 시점에 대한 정보를 결과보고 모듈(313)에 전달할 수 있다(미도시).
결과보고 모듈(313)은 결함 주입 함수가 실행된 후에 결함 주입 함수의 실행 여부, 결함 주입 실행 결과 및 이후 호출 스택과 같이 결함 주입으로 인한 예외 처리 루틴 동작에 대한 정보 중 적어도 하나를 포함하는 테스트 결과 정보를 생성한다(442). 결과보고 모듈(313)은 테스트 결과 정보를 로그 파일 형태로 저장할 수도 있다(451). 결과보고 모듈(313)은 테스트 결과 정보를 정보 전달용 에이전트를 이용하여 차량 통신으로 호스트 장치(320)에 전송할 수 있다(452).
호스트 장치(320)는 내부에 설치된 분석 프로그램을 이용하여 테스트 결과 정보를 분석할 수 있다(461). 분석 프로그램(321)은 검증 대상 소프트웨어의 결함 위치, 결함 데이터, 결함 발생 시점, 결함 발생 후 동작 등을 분석하여 결함 주입 이후의 차량제어장치(310) 동작을 모니터링하고 분석할 수 있다.
실험실 환경에서 AUTOSAR 기반 소프트웨어의 결함 테스트 시스템을 구현하여 실험 결과를 모니터링하였다. 실험 환경은 다음과 같다. ECU 환경을 재현하기 위한 개발용 평가 보드와 PC를 이용하여, 개발용 평가 보드는 결함 주입에 사용하고, PC에서는 결함 주입 결과를 확인하였다. 결함 주입 테스트는 SWC 내의 Runnable-Runnable 간 통합테스트 단계에서 Timing Error 결함 유형 중 CPU clock corruption 결함을 주입하였다.
아래는 실험 과정에서 결함을 주입하고, 주입된 결함에 대한 결과를 확인한 과정의 예이다. 도 4의 모니터링 모듈(311)에서는 태스트 실행을 모니터링하면서 결함 주입 대상이 되는 Runnable A (ESCLPowerSupply())가 포함된 전체 태스크의 호출을 모니터링한다(401). 결함 주입을 시작하도록 하는 호출 함수 정보(결함 주입 대상 Runnable의 이름 및 함수형)가 수신되면(411) 라이브러리로부터 호출 함수에 매칭되는 래퍼함수 Runnable A'(Wrap_ESCLPowerSupply())을 선택하여 Runnable A(ESCLPowerSupply())의 호출 시 Runnable A'(Wrap_ESCLPowerSupply())이 호출되도록 한다(412). 이후 결함 주입 모듈에서는 Runnable A'이 호출될 때마다 타깃 함수인지를 확인한다(421). 타깃 함수로 확인된 경우 주입할 결함인 CPU clock corruption을 입력받아(422) Runnable A'(Wrap_ESCLPowerSupply())에서 원본 함수 Runnable A(ESCLPowerSupply())를 호출하기 전 CPU clock 레지스터 값을 변경한다. 결함 주입이 실행되었는지 여부와 결과 확인에 필요한 값을 테스트 결과 정보로 생성(442)하고 저장(451) 후 PC로 테스트 결과 정보를 전송한다(452). PC에서는 개발용 평가 보드로부터 수신된 실행 결과를 분석한다(461).
또한, 상술한 바와 같은 AUTOSAR 기반의 차량 소프트웨어에 대한 결함 주입 방법 및 결함 주입을 이용한 테스트 방법은 컴퓨터에서 실행될 수 있는 실행가능한 알고리즘을 포함하는 프로그램(또는 애플리케이션)으로 구현될 수 있다. 상기 프로그램은 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
본 실시례 및 본 명세서에 첨부된 도면은 전술한 기술에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 전술한 기술의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형 예와 구체적인 실시례는 모두 전술한 기술의 권리범위에 포함되는 것이 자명하다고 할 것이다.
100 : 차량제어장치
110 : BSW 계층
120 : RTE 계층
130 : 애플리케이션 계층
200 : 차량제어장치
211 : 모니터링 모듈
212 : 결함 주입 모듈
213 : 결과보고 모듈
300 : 차량 소프트웨어의 결함 테스트 시스템
310 : 차량제어장치
311 : 모니터링 모듈
312 : 결함 주입 모듈
313 : 결과보고 모듈
320 : 호스트 장치
321 : 분석 프로그램

Claims (12)

  1. 차량제어장치(ECU)가 BSW(Basic Software) 계층에서 태스크(task) 실행 여부를 모니터링하는 단계;
    상기 차량제어장치가 상기 BSW 계층에서 상기 태스크 실행 전 호출되는 적어도 하나의 함수에 대한 래퍼(wrapper) 함수를 선택하는 단계:
    상기 차량제어장치가 상기 BSW 계층, RTE(Runtime Environment) 계층 및 SWC(SoftWare Component)에서 실행되는 상기 적어도 하나의 함수 중 결함주입 대상인 타깃 함수를 확인하는 단계;
    상기 차량제어장치가 상기 타깃 함수에 대한 결함 코드를 상기 타깃 함수에 대한 래퍼 함수에 전달하여 특정 결함을 실행하는 단계; 및
    상기 차량제어장치가 호스트장치로 상기 특정 결함을 실행한 결과를 송신하는 단계를 포함하는 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 방법.
  2. 제1항에 있어서,
    상기 차량제어장치는 래퍼 함수 풀 중에서 특정 결함 유도를 위한 래퍼 함수를 선택하고, 상기 래퍼 함수를 생성하는 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 방법.
  3. 제1항에 있어서,
    상기 차량제어장치는 상기 BSW 계층에 위치하는 모니터링 모듈을 이용하여 상기 태스크 실행 여부를 모니터링하고, 상기 래퍼 함수를 선택하는 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 방법.
  4. 제1항에 있어서,
    상기 차량제어장치는 상기 BSW 계층에 위치하는 결함 주입 모듈을 이용하여 상기 타깃 함수에 대한 결함 코드를 전달하는 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 방법.
  5. 제1항에 있어서,
    상기 결함 코드의 유형은 데이터 결함(data error), 프로그램 흐름 결함(program flow error), 접근 결함(access error), 시간 결함(timing error) 및 비대칭 결함(asymmetric error) 중 적어도 하나인 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 방법.
  6. 제1항에 있어서,
    상기 차량제어장치는 상기 결함 코드의 전달 여부, 상기 결함 코드 실행 결과 및 상기 결함 코드 실행 후 호출 스택 정보를 포함하는 테스트 결과 정보를 생성하는 단계를 더 포함하는 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 방법.
  7. 제6항에 있어서,
    상기 차량제어장치는 상기 BSW 계층에 위치하는 결과보고 모듈을 이용하여 상기 테스트 결과 정보를 네트워크 통신으로 상기 호스트 장치에 전달하는 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 방법.
  8. BSW(Basic Software) 계층에서 태스크(task) 실행을 모니터링하고, 상기 BSW 계층, RTE(Runtime Environment) 계층 및 SWC(SoftWare Component)에서 상기 태스크 실행 전 호출되는 함수에 대한 래퍼(wrapper) 함수를 선택하는 모니터링 모듈;
    상기 BSW 계층, RTE(Runtime Environment) 계층 및 SWC(SoftWare Component)에서 실행되는 상기 적어도 하나의 함수 중 결함주입 대상인 타깃 함수에 대한 래퍼 함수에 결함 코드를 전달하는 결함 주입 모듈; 및
    상기 결함 코드의 전달 여부, 상기 결함 코드 실행 결과 및 상기 결함 코드 실행 후 호출 스택 정보를 포함하는 테스트 결과 정보를 생성하는 결과보고 모듈을 포함하는 차량제어장치를 포함하되,
    상기 모니터링 모듈, 상기 결함 주입 모듈 및 상기 결과보고 모듈은 소프트웨어 모듈이고, 상기 BSW 계층에 위치하는 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 시스템.
  9. 제8항에 있어서,
    상기 결함 코드의 유형은 데이터 결함(data error), 프로그램 흐름 결함(program flow error), 접근 결함(access error), 시간 결함(timing error) 및 비대칭 결함(asymmetric error) 중 적어도 하나인 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 시스템.
  10. 제8항에 있어서,
    상기 결과보고 모듈은 상기 테스트 결과 정보를 상기 차량제어장치 또는 별도의 저장장치에 저장하는 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 시스템.
  11. 제8항에 있어서,
    상기 결과보고 모듈은 상기 테스트 결과를 에이전트(agent)를 통해 차량 통신으로 외부 호스트 장치에 송신하는 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 시스템.
  12. 컴퓨터에서 제1항 내지 제7항 중 어느 하나의 항에 기재된 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020180154370A 2018-12-04 2018-12-04 Autosar 기반 차량 소프트웨어의 결함 테스트 방법 및 결함 테스트 시스템 KR102141287B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180154370A KR102141287B1 (ko) 2018-12-04 2018-12-04 Autosar 기반 차량 소프트웨어의 결함 테스트 방법 및 결함 테스트 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180154370A KR102141287B1 (ko) 2018-12-04 2018-12-04 Autosar 기반 차량 소프트웨어의 결함 테스트 방법 및 결함 테스트 시스템

Publications (2)

Publication Number Publication Date
KR20200067474A true KR20200067474A (ko) 2020-06-12
KR102141287B1 KR102141287B1 (ko) 2020-08-04

Family

ID=71088376

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180154370A KR102141287B1 (ko) 2018-12-04 2018-12-04 Autosar 기반 차량 소프트웨어의 결함 테스트 방법 및 결함 테스트 시스템

Country Status (1)

Country Link
KR (1) KR102141287B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112653607A (zh) * 2020-12-26 2021-04-13 潍柴动力股份有限公司 报文的传输方法、装置、电子设备及计算机存储介质
CN112783736A (zh) * 2021-03-01 2021-05-11 苏州挚途科技有限公司 软件组件的运行体时间监测方法、装置及电子设备
CN116232969A (zh) * 2023-02-21 2023-06-06 重庆长安新能源汽车科技有限公司 网络节点的网络通信状态监测、上报方法及车辆
CN116643998A (zh) * 2023-07-27 2023-08-25 上海鉴智其迹科技有限公司 一种基于autosar rtm的测试方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012027733A1 (en) * 2010-08-27 2012-03-01 Zonar Systems, Inc. Method and apparatus for remote vehicle diagnosis
KR20140008547A (ko) 2012-07-05 2014-01-22 한국전자통신연구원 오류 기반 소프트웨어 시험 방법 및 오류 기반 소프트웨어 시험 시스템
US8897953B2 (en) * 2011-07-26 2014-11-25 United Parcel Service Of America, Inc. Systems and methods for managing fault codes
EP2288523B2 (de) * 2008-06-20 2018-08-29 KNORR-BREMSE Systeme für Nutzfahrzeuge GmbH Überwachungseinrichtung zur überwachung von systemen eines fahrzeugs

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2288523B2 (de) * 2008-06-20 2018-08-29 KNORR-BREMSE Systeme für Nutzfahrzeuge GmbH Überwachungseinrichtung zur überwachung von systemen eines fahrzeugs
WO2012027733A1 (en) * 2010-08-27 2012-03-01 Zonar Systems, Inc. Method and apparatus for remote vehicle diagnosis
US8897953B2 (en) * 2011-07-26 2014-11-25 United Parcel Service Of America, Inc. Systems and methods for managing fault codes
KR20140008547A (ko) 2012-07-05 2014-01-22 한국전자통신연구원 오류 기반 소프트웨어 시험 방법 및 오류 기반 소프트웨어 시험 시스템

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
‘Software implemented fault injection for AUTOSAR based systems’, Master of Science Thesis: Software Engineering and Technology Programme, 2012.06.* *
이상호 외, ‘ISO 26262 표준 기반의 소프트웨어 검증을 위한 소프트웨어 결함 주입 기법’, Transactions of KSAE, Vol. 22, No. 3, pp.68-74, 2014.* *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112653607A (zh) * 2020-12-26 2021-04-13 潍柴动力股份有限公司 报文的传输方法、装置、电子设备及计算机存储介质
CN112653607B (zh) * 2020-12-26 2022-09-23 潍柴动力股份有限公司 报文的传输方法、装置、电子设备及计算机存储介质
CN112783736A (zh) * 2021-03-01 2021-05-11 苏州挚途科技有限公司 软件组件的运行体时间监测方法、装置及电子设备
CN112783736B (zh) * 2021-03-01 2024-04-19 苏州挚途科技有限公司 软件组件的运行体时间监测方法、装置及电子设备
CN116232969A (zh) * 2023-02-21 2023-06-06 重庆长安新能源汽车科技有限公司 网络节点的网络通信状态监测、上报方法及车辆
CN116232969B (zh) * 2023-02-21 2024-05-03 深蓝汽车科技有限公司 网络节点的网络通信状态监测、上报方法及车辆
CN116643998A (zh) * 2023-07-27 2023-08-25 上海鉴智其迹科技有限公司 一种基于autosar rtm的测试方法及装置
CN116643998B (zh) * 2023-07-27 2023-09-22 上海鉴智其迹科技有限公司 一种基于autosar rtm的测试方法及装置

Also Published As

Publication number Publication date
KR102141287B1 (ko) 2020-08-04

Similar Documents

Publication Publication Date Title
KR102141287B1 (ko) Autosar 기반 차량 소프트웨어의 결함 테스트 방법 및 결함 테스트 시스템
CN111651366B (zh) Sdk测试方法、装置、设备及存储介质
KR102537875B1 (ko) 차량 ecu 소프트웨어 검증을 위한 동적 결함 주입 방법 및 장치
CN110673576B (zh) 自动测试方法与装置、车辆和存储介质
US20150100829A1 (en) Method and system for selecting and executing test scripts
US20150100832A1 (en) Method and system for selecting and executing test scripts
CN110096424B (zh) 测试的处理方法、装置、电子设备及存储介质
Piper et al. Instrumenting AUTOSAR for dependability assessment: A guidance framework
US20150100830A1 (en) Method and system for selecting and executing test scripts
CN111756575A (zh) 存储服务器的性能分析方法及装置、电子设备
JP2014203314A (ja) Ecuシミュレーション装置
US20150100831A1 (en) Method and system for selecting and executing test scripts
US20120124425A1 (en) Method and Apparatus Useful In Manufacturing Test Case Operations
CN113282439B (zh) eMMC测试方法、装置、可读存储介质及电子设备
CN113742215A (zh) 一种自动配置和调用测试工具进行测试分析的方法及系统
CN117555740A (zh) 基于uvm的车规芯片dmac验证系统和方法
CN100359485C (zh) 嵌入式系统的测试装置及测试方法
US8639978B2 (en) Topology independent network-based automation infrastructure
Vuli et al. Maximizing test asset re-use across MIL, SIL, and HIL development platforms
US11958511B2 (en) Train signal system and linkage method therefor
CN114338451A (zh) 一种控制器局域网总线测试系统、方法和存储介质
KR101382109B1 (ko) 미들웨어 장치 및 방법
CN106250123B (zh) 一种系统测试模式和运行模式兼容方法
CN114911531B (zh) 一种硬件环境模拟方法及硬件环境模拟系统
AU2023201696B2 (en) Method and device for determining coverage in HIL testing, and storage medium

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant