KR102141287B1 - Fault injection test method and system for vehicle software based on autosar - Google Patents

Fault injection test method and system for vehicle software based on autosar Download PDF

Info

Publication number
KR102141287B1
KR102141287B1 KR1020180154370A KR20180154370A KR102141287B1 KR 102141287 B1 KR102141287 B1 KR 102141287B1 KR 1020180154370 A KR1020180154370 A KR 1020180154370A KR 20180154370 A KR20180154370 A KR 20180154370A KR 102141287 B1 KR102141287 B1 KR 102141287B1
Authority
KR
South Korea
Prior art keywords
defect
layer
software
function
vehicle control
Prior art date
Application number
KR1020180154370A
Other languages
Korean (ko)
Other versions
KR20200067474A (en
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/en
Publication of KR20200067474A publication Critical patent/KR20200067474A/en
Application granted granted Critical
Publication of KR102141287B1 publication Critical patent/KR102141287B1/en

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)에서 실행되는 상기 적어도 하나의 함수 중 결함주입 대상인 타깃 함수를 확인하는 단계, 상기 차량제어장치가 상기 타깃 함수에 대한 결함 코드를 상기 타깃 함수에 대한 래퍼 함수에 전달는 단계 및 상기 차량제어장치가 호스트장치로 상기 특정 결함을 실행한 결과를 송신하는 단계를 포함한다.The defect test method of the AUTOSAR-based vehicle software includes monitoring whether a vehicle control unit (ECU) executes a task in a basic software (BSW) layer, and at least that is called before the vehicle control device executes the task in the BSW layer. Selecting a wrapper function for one function, a target function that is a defect injection target among the at least one function in which the vehicle control apparatus is executed in the BSW layer, runtime environment (RTE) layer, and software component (SWC) Checking, the vehicle control device passing the defect code for the target function to the wrapper function for the target function, and transmitting the result of the vehicle control device executing the specific defect to the host device. do.

Figure R1020180154370
Figure R1020180154370

Description

AUTOSAR 기반 차량 소프트웨어의 결함 테스트 방법 및 결함 테스트 시스템{FAULT INJECTION TEST METHOD AND SYSTEM FOR VEHICLE SOFTWARE BASED ON AUTOSAR}FAULT INJECTION TEST METHOD AND SYSTEM FOR VEHICLE SOFTWARE BASED ON AUTOSAR

이하 설명하는 기술은 차량 소프트웨어에 대한 결함 테스트 기법에 관한 것이다.The technique described below relates to a defect testing technique for vehicle software.

최근 양산되는 차량은 수십 개에서 백여 개에 이르는 ECU를 사용하고 있다. 이에 따라, ECU(electronic control unit)와 MCU(Micro Controller Unit)를 제어하는 소프트웨어의 크기와 복잡도가 증가하였고, 소프트웨어의 표준화의 필요성이 대두 되었다. 차량 OEM 및 ECU 제조업체를 중심으로 소프트웨어 개발의 부담을 경감하고 소프트웨어의 품질을 확보하기 위하여 소프트웨어, 데이터 포맷, 개발 프로세스 등의 재사용을 목표로 AUTOSAR (AUTomotive Open System ARchitecture) 컨소시엄이 출범하였다. AUTOSAR는 인터페이스, 데이터 교환 방식 및 개발방법론을 표준화하였다. Recently produced vehicles use dozens to hundreds of ECUs. Accordingly, the size and complexity of the software that controls the electronic control unit (ECU) and the micro controller unit (MCU) has increased, and the need for standardization of software has emerged. The AUTOSAR (AUTomotive Open System ARchitecture) consortium was launched with the aim of reusing software, data formats, and development processes to reduce the burden of software development and secure the quality of software, mainly for vehicle OEMs and ECU manufacturers. AUTOSAR standardized the interface, data exchange method and development methodology.

ISO 26262(자동차 기능 안전성 국제 표준)는 기능 안전 표준 IEC 61508을 자동차 전기/전자 시스템에 적응시킨 것이다. ISO 26262에 따르면 기능 안전을 검증하기 위하여 차량용 소프트웨어에서 결함 주입 테스트를 수행하여야 한다.ISO 26262 (International Standard for Automotive Functional Safety) is the adaptation of the functional safety standard IEC 61508 to automotive electrical/electronic systems. According to ISO 26262, in order to verify functional safety, a defect injection test must be performed in the vehicle software.

AUTOSAR 기반의 차량용 소프트웨어에 결함을 주입하기 위한 방법은 크게 외부 하드웨어 장치를 이용하는 방법과 소프트웨어 기반한 방법으로 나뉜다. 외부 하드웨어 장치를 이용하는 방법은 디버거(debugger) 모듈을 이용하여 결함 주입을 하는 방법이다. 소프트웨어 통한 결함 주입은 크게 세 가지로 나뉜다. 첫 번째는 AUTOSAR에서 제공하는 함수(trace hook)를 이용하는 방법이다. 두 번째 방법은 직접 코드를 수정하는 방법이다. 세 번째는 래퍼(wrapper) 함수를 생성하여 결함을 주입하는 방법이다.Methods for injecting defects into AUTOSAR-based vehicle software are largely divided into methods using external hardware devices and software-based methods. A method of using an external hardware device is a method of injecting defects using a debugger module. There are three main types of defect injection through software. The first is to use a function (trace hook) provided by AUTOSAR. The second way is to modify the code yourself. The third method is to create a wrapper function to inject defects.

한국공개특허 제10-2014-0008547호Korean Patent Publication No. 10-2014-0008547

하드웨어 장치를 이용하는 방법은 장치 연결을 위한 인터페이스가 필요하고, 전체 실행을 디버거를 통해 모니터링하므로 오버헤드가 크다는 단점이 있다. 소프트웨어를 이용하는 방법도 다음과 같은 문제점이 있다. AUTOSAR가 제공하는 후킹(hooking) 함수를 이용하는 방법은 함수의 매개변수나 리턴값을 변경하지 못하는 한계가 있다. 직접 코드를 수정하는 방법은 소프트웨어가 변경되는 것이기 때문에 결함 주입 전/후의 동작이 달라질 위험이 있다. 래퍼 함수를 이용하는 방법은 다양한 결함 주입이 가능하다 구현이 어렵다는 문제가 있다. 또한 소프트웨어를 이용하는 결함 주입 방법은 결함 주입 결과에 대한 모니터링이 어렵다는 문제도 있다.The method of using the hardware device has a disadvantage in that an interface for connecting the device is required, and since the entire execution is monitored through a debugger, overhead is large. The method of using the software also has the following problems. The method using the hooking function provided by AUTOSAR has a limitation that it cannot change the parameter or return value of the function. Since the method of directly modifying the code is that the software is changed, there is a risk that the operation before and after the injection of the defect is changed. The method using the wrapper function has a problem that various defect injections are possible and is difficult to implement. In addition, the defect injection method using software has a problem that it is difficult to monitor the defect injection result.

이하 설명하는 기술은 AUTOSAR 모든 계층에 결함 주입이 가능한 테스트 기법을 제공하고자 한다. 이하 설명하는 기술은 결함 주입 후 결과에 대한 모니터링이 가능한 테스트 기법을 제공하고자 한다. The technique described below is intended to provide a test technique capable of injecting defects into all AUTOSAR layers. The technique described below is intended to provide a test technique capable of monitoring the results after injection of a defect.

AUTOSAR 기반 차량 소프트웨어의 결함 테스트 방법은 차량제어장치(ECU)가 BSW(Basic Software) 계층에서 태스크(task) 실행 여부를 모니터링하는 단계, 상기 차량제어장치가 상기 BSW 계층에서 상기 태스크 실행 전 호출되는 적어도 하나의 함수에 대한 래퍼(wrapper) 함수를 선택하는 단계, 상기 차량제어장치가 상기 BSW 계층, RTE(Runtime Environment) 계층 및 SWC(SoftWare Component)에서 실행되는 상기 적어도 하나의 함수 중 결함주입 대상인 타깃 함수를 확인하는 단계, 상기 차량제어장치가 상기 타깃 함수에 대한 결함 코드를 상기 타깃 함수에 대한 래퍼 함수에 전달하여 특정 결함을 실행하는 단계 및 상기 차량제어장치가 호스트장치로 상기 특정 결함을 실행한 결과를 송신하는 단계를 포함한다.The defect test method of the AUTOSAR-based vehicle software includes monitoring whether a vehicle control unit (ECU) executes a task in a basic software (BSW) layer, and at least that is called before the vehicle control device executes the task in the BSW layer. Selecting a wrapper function for one function, a target function that is a defect injection target among the at least one function in which the vehicle control apparatus is executed in the BSW layer, runtime environment (RTE) layer, and software component (SWC) Checking, the vehicle control device passes a defect code for the target function to a wrapper function for the target function to execute a specific defect, and the vehicle control device executes the specific defect as a host device. It includes the step of transmitting.

AUTOSAR 기반 차량 소프트웨어의 결함 테스트 시스템은 BSW(Basic Software) 계층에서 태스크(task) 실행을 모니터링하고, 상기 BSW 계층, RTE(Runtime Environment) 계층 및 SWC(SoftWare Component)에서 상기 태스크 실행 전 호출되는 함수에 대한 래퍼(wrapper) 함수를 선택하는 모니터링 모듈, 상기 BSW 계층, RTE(Runtime Environment) 계층 및 SWC(SoftWare Component)에서 실행되는 상기 적어도 하나의 함수 중 결함주입 대상인 타깃 함수에 대한 래퍼 함수에 결함 코드를 전달하는 결함 주입 모듈 및 상기 결함 코드의 전달 여부, 상기 결함 코드 실행 결과 및 상기 결함 코드 실행 후 호출 스택 정보를 포함하는 테스트 결과 정보를 생성하는 결과보고 모듈을 포함하는 차량제어장치를 포함한다. 상기 모니터링 모듈, 상기 결함 주입 모듈 및 상기 결과보고 모듈은 소프트웨어 모듈이고, 상기 BSW 계층에 위치한다.The defect test system of AUTOSAR-based vehicle software monitors the task execution in the Basic Software (BSW) layer, and the BSW layer, the Runtime Environment (RTE) layer, and the SWC (SoftWare Component) function called before the task execution. A defect code is assigned to a wrapper function for a target function that is a defect injection target among the at least one function executed in a monitoring module, a BSW layer, a runtime environment (RTE) layer, and a software component (SWC) that selects a wrapper function for And a vehicle control device including a defect injection module to transmit and a result report module to generate test result information including whether the defect code is delivered, the defect code execution result, and call stack information after the defect code execution. The monitoring module, the defect injection module and the result reporting module are software modules and are located in the BSW layer.

소프트웨어를 이용한 결함 주입 방법은 별도의 하드웨어 장치 없이 실제 차량 환경(내지 유사 환경)에서도 결함 주입이 가능하다. 이하 설명하는 기술은 래퍼 함수를 이용하여 AUTOSAR 기반 차량용 소프트웨어의 코드 변경 없이 다양한 결함을 손쉽게 주입한다. 이하 설명하는 기술은 결함 주입 후 결과에 대한 모니터링 및 분석이 용이하다.The defect injection method using software enables defect injection in a real vehicle environment (or similar environment) without a separate hardware device. The technology described below can easily inject various defects without changing the code of AUTOSAR-based vehicle software using a wrapper function. The technique described below is easy to monitor and analyze the results after the injection of defects.

도 1은 AUTOSAR 소프트웨어 계층 구조에 대한 예이다.
도 2는 AUTOSAR 기반 소프트웨어의 결함 테스트를 위한 차량제어장치의 예이다.
도 3은 AUTOSAR 기반 소프트웨어의 결함 테스트 시스템에 대한 예이다.
도 4는 AUTOSAR 기반 소프트웨어의 결함 테스트 과정에 대한 예이다.
1 is an example of an AUTOSAR software hierarchy.
2 is an example of a vehicle control device for defect testing of AUTOSAR based software.
3 is an example of a defect test system of AUTOSAR based software.
4 is an example of a defect test process of AUTOSAR based software.

이하 설명하는 기술은 다양한 변경을 가할 수 있고 여러 가지 실시례를 가질 수 있는 바, 특정 실시례들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 이하 설명하는 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 이하 설명하는 기술의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.The technique described below may be applied to various changes and may have various embodiments, and specific embodiments will be illustrated in the drawings and described in detail. However, this is not intended to limit the techniques described below to specific embodiments, and should be understood to include all changes, equivalents, or substitutes included in the spirit and scope of the techniques described below.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 상기 용어들에 의해 한정되지는 않으며, 단지 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 이하 설명하는 기술의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, A, B, etc. can be used to describe various components, but the components are not limited by the above terms, and only for distinguishing one component from other components Used only. For example, the first component may be referred to as a second component, and similarly, the second component may be referred to as a first component without departing from the scope of the technology described below. The term and/or includes a combination of a plurality of related described items or any one of a plurality of related described items.

본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설시된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.In the terminology used herein, a singular expression should be understood to include a plurality of expressions unless clearly interpreted differently in the context, and terms such as “comprises” describe features, numbers, steps, operations, and components described. It is to be understood that it means that a part or a combination thereof is present, and does not exclude the presence or addition possibility of one or more other features or numbers, step operation components, parts or combinations thereof.

도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.Prior to the detailed description of the drawings, it is intended to clarify that the division of components in this specification is only divided by the main functions of each component. That is, two or more components to be described below may be combined into one component, or one component may be divided into two or more for each subdivided function. In addition, each of the components to be described below may additionally perform some or all of the functions in charge of other components in addition to the main functions in charge thereof, and some of the main functions in charge of each of the components are different. Needless to say, it may also be carried out in a dedicated manner.

또, 방법 또는 동작 방법을 수행함에 있어서, 상기 방법을 이루는 각 과정들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 과정들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In addition, in performing the method or the method of operation, each process constituting the method may occur differently from the specified order unless a specific order is explicitly stated in the context. That is, each process may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.

이하 설명하는 기술은 AUTOSAR 기반의 차량 소프트웨어에 대한 결함 주입 방법과 결함 주입을 이용한 테스트 기법에 해당한다. 이하 도면을 참조하여 관련된 실시예들을 설명한다. The technique described below corresponds to a defect injection method for AUTOSAR-based vehicle software and a test technique using the defect injection. Hereinafter, related embodiments will be described with reference to the drawings.

도 1은 AUTOSAR 소프트웨어 계층 구조에 대한 예이다. 차량은 다수의 ECU를 포함한다. 이하 ECU는 차량제어장치와 동일한 의미이다. 도 1은 버스로 연결된 2개의 ECU(ECU1 및 ECU2)를 예로 도시한다. ECU1(100)을 기준으로 AUTOSAR 소프트웨어 계층 구조에 대하여 설명한다.1 is an example of an AUTOSAR software hierarchy. The vehicle includes multiple ECUs. Hereinafter, the ECU has the same meaning as the vehicle control device. 1 shows two ECUs (ECU1 and ECU2) connected by a bus as an example. The AUTOSAR software hierarchy will be described based on the ECU1 100.

AUTOSAR 소프트웨어 계층 구조는 크게 BSW(Basic Software) 계층(110), RTE(Runtime Environment) 계층(120) 및 애플리케이션 계층(응용 소프트웨어 계층,130)으로 구분된다. The AUTOSAR software layer structure is largely divided into a basic software (BSW) layer 110, a runtime environment (RTE) layer 120, and an application layer (application software layer 130).

BSW 계층(110)은 표준 소프트웨어 모듈로 구성되는데, 그 모듈의 역할에 따라 하위 계층으로 그룹화된다. BSW 계층의 하위 계층에는 SRVL (SeRVice Layer, 서비스 계층), ECUAL, MCAL(미도시)이 있다. The BSW layer 110 is composed of standard software modules, and is grouped into lower layers according to the role of the module. The lower layers of the BSW layer include SRVL (SeRVice Layer), ECUAL, and MCAL (not shown).

MCAL은 마이크로컨트롤러를 제어하는데 필요한 계층으로서 쉽게 말하면 일종의 디바이스 드라이버이다. 따라서 ECU로부터는 독립적이지만 마이크로콘트롤러에는 종속적이고, 마이크로콘트롤러를 제어할 수 있는 메모리, 통신, I/O 표준 드라이버로 구성된다. AUTOSAR MCAL은 AUTOSAR에서 규정한 API(APplication Interface) 이름을 사용하여 Device Driver를 제어한다. AUTOSAR MCAL은 XML 형식을 이용한 소스코드 자동 생성이므로, MCU 벤더(Vendor)에 의존한 별도의 파라미터를 사용할 경우, XML 형식으로 별도의 파라미터 설정이 가능해야 하고, 동시에 자동으로 별도의 파라미터 확장에 필요한 API 소스코드를 생성해야 한다. MCAL은 AUTOSAR 소프트웨어 계층에서 Microcontroller 상위에 위치한다.MCAL is a layer required to control a microcontroller, and is simply a device driver. Therefore, it is independent of the ECU, but is dependent on the microcontroller, and consists of the memory, communication, and I/O standard drivers that can control the microcontroller. AUTOSAR MCAL uses the API (APplication Interface) name defined in AUTOSAR to control the device driver. Since AUTOSAR MCAL automatically generates source code using XML format, if you use separate parameters depending on the MCU vendor, you must be able to set separate parameters in XML format, and at the same time, API required for automatic extension of separate parameters Source code must be generated. MCAL is located above the Microcontroller in the AUTOSAR software layer.

ECUAL은 ECU의 기능을 추상화하고 있는데, ECU 제어에 관련된 메모리, 통신, I/O에 접근할 수 있는 표준 소프트웨어들로 구성된 계층으로서, 마이크로콘트롤러에는 독립적이지만 ECU에는 종속적으로 구현된다. BSW에 속해있는 거의 모든 정형화된 인터페이스는 이 계층에 맵핑되어 있다.ECUAL is an abstraction of the functions of the ECU. It is a layer composed of standard software that can access memory, communication, and I/O related to ECU control. It is independent of the microcontroller, but implemented independently of the ECU. Almost all standardized interfaces belonging to BSW are mapped to this layer.

서비스 계층은 통신, 서비스, OS 블록을 포함하고 있는 계층으로 ECU와 하드웨어를 추상화하여 응용 프로그램과 BSW 모듈을 위한 서비스를 자신의 상위 계층에 제공하는 역할을 담당한다. 따라서, 네트워크 서비스, 메모리 관리 및 애플리케이션 계층에 대한 버스 통신 서비스와 같은 서비스를 제공하는 표준 소프트웨어들로 구성된다.The service layer is a layer that includes communication, service, and OS blocks. It abstracts the ECU and hardware to provide services for applications and BSW modules to their upper layers. Thus, it consists of standard software that provides services such as network services, memory management and bus communication services to the application layer.

RTE 계층(120)은 상위 계층인 애플리케이션 계층(130)과 하위 계층인 BSW 계층(110) 사이에 위치하여 미들웨어 성격을 갖는다. 애플리케이션 계층(130)의 사용자 소프트웨어와 BSW 계층(110)의 기본 소프트웨어가 이 계층을 통해 분리되고, 상위 계층인 애플리케이션 계층(130)에 속한 SWC들(131, 132) 사이의 연결 또는 상위 계층 SWC(131, 132)에서 하위 계층 BSW(110)로의 연결을 매개한다. 실제로 RTE 계층(120)에는 애플리케이션 계층(130)에 속한 SWC(131, 132)의 런타임 행동을 제어하고 데이터 교환에 필요한 코드가 구현되어 있다.The RTE layer 120 is located between the upper layer application layer 130 and the lower layer BSW layer 110 and has a middleware characteristic. The user software of the application layer 130 and the basic software of the BSW layer 110 are separated through this layer, and a connection between SWCs 131 and 132 belonging to the application layer 130, which is a higher layer, or a higher layer SWC ( 131, 132) to mediate the connection to the lower layer BSW (110). In fact, the RTE layer 120 controls the runtime behavior of the SWCs 131 and 132 belonging to the application layer 130 and code necessary for data exchange is implemented.

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에 존재할 수도 있다.The RTE layer 120 is a layer implementing a concept called Virtual Functional Bus (VFB). Since all SWC-to-SWC communication or SWC-to-BSW communication is based on VFB, it means a separate state from ECU hardware. Because the RTE layer 120 serves as a VFB, AUTOSAR software is not hardware dependent and can be reused. The RTE layer 120 supports a Client/Server and Sender/Receiver communication model. The Client/Server model refers to a communication method in which the Client SWC requests a predefined service from the Server SWC and receives the result. In the Sender/Receiver model, Sender SWC distributes data, and Receiver SWC receives the distributed data. The RTE layer 120 is responsible for communication between all SWCs, and the SWCs may be in the same ECU or may exist in different ECUs.

애플리케이션 계층(130)은 SWC(SoftWare Component)를 포함한다. 도 1은 2개의 SWC(131, 132)를 예로 도시하였다. 응용 소프트웨어는 SWC 형태로 개발된다. The application layer 130 includes SWC (SoftWare Component). 1 shows two SWCs 131 and 132 as examples. Application software is developed in the form of 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 응용서비스를 구현한다. The software development process using AUTOSAR will be briefly described. AUTOSAR software development is divided into system setup and ECU setup. The system setting stage is SW-C specification (Component Description) describing the data type, interface and connection status of the SWC, ECU Resource Description describing the HW configuration of each ECU, and system constraints such as bus signal and topology. Write a description (Constraint Description). In each SW-C, task operation definition and trigger conditions for application SW implementation are defined. Next, SWC is mapped to each ECU and the network is designed to describe the system configuration description. The created file uses a template in XML format, and by using XML, data sharing and delivery can be standardized. The next step is to extract each ECU information from the system design specification, design the ECU, and design the task definition and assignment, RTE generation, BSW, etc., and describe the ECU design description. Generates AUTOSAR software module codes such as RTE, OS, and Communication along with application SW, and compiles and links to create executable files to implement ECU application services.

이하 생성된 AUTOSAR 소프트웨어에 대한 결함을 삽입하여 테스트하는 과정에 대하여 설명한다. 도 2는 AUTOSAR 기반 소프트웨어의 결함 테스트를 위한 차량제어장치(200)의 예이다. 차량제어장치(200)는 전술한 ECU에 해당한다. 차량제어장치(200)는 애플리케이션 계층, RTE 계층, BSW 계층을 포함한다. BSW 계층에 래퍼 함수를 이용하여 결함을 주입하고 모니터링하기 위한 모듈들이 위치한다. Hereinafter, a process of inserting and testing a defect for the generated AUTOSAR software will be described. 2 is an example of a vehicle control apparatus 200 for defect testing of AUTOSAR-based software. The vehicle control device 200 corresponds to the aforementioned ECU. The vehicle control device 200 includes an application layer, an RTE layer, and a BSW layer. Modules for injecting and monitoring defects using wrapper functions are located in the BSW layer.

차량제어장치(200)는 모니터링 모듈(211), 결함 주입 모듈(212) 및 결과보고 모듈(213)을 포함한다. 차량제어장치(200)는 래퍼 함수 풀(pool)을 포함한다. 래퍼 함수 풀은 다양한 래퍼 함수의 집합이다. 래퍼 함수 풀은 태스크 실행을 위한 다양한 실행 함수들에 대한 래퍼 함수를 포함할 수 있다. 래퍼 함수는 개별 실행함수에 대하여 사전에 마련될 수 있다. 래퍼 함수는 특정 함수를 자신의 함수로 덮어쓰는 기능을 수행한다.The vehicle control device 200 includes a monitoring module 211, a defect injection module 212, and a result reporting module 213. The vehicle control device 200 includes a wrapper function pool. A wrapper function pool is a set of various wrapper functions. The wrapper function pool may include wrapper functions for various execution functions for task execution. Wrapper functions can be prepared in advance for individual execution functions. A wrapper function overwrites a specific function with its own function.

모니터링 모듈(211)은 BSW 계층의 태스크(task) 실행 전에 호출되는 모듈이다. 이때 모니터링 모듈(211)은 래퍼 함수 풀에서 특정한 결함과 관련된 래퍼 함수를 선택할 수 있다. 모니터링 모듈(211)은 래퍼 함수 풀에서 특정한 소프트웨어와 관련된 래퍼 함수를 선택할 수도 있다. 선택된 래퍼 함수는 태스크 내의 해당 함수가 실행되기 전에 먼저 호출되어 결함 주입 여부를 모니터링한다. 결함 주입 요청이 입력된 경우, 모니터링 모듈(211)은 현재 BSW 계층(110), RTE 계층(120) 및 애플리케이션 계층(130)에서 실행되는 함수가 결함 주입 대상인지 확인한다. 이하 결함 주입 대상인 함수를 타깃 함수라고 명명한다.The monitoring module 211 is a module that is called before the task of the BSW layer is executed. At this time, the monitoring module 211 may select a wrapper function related to a specific defect from the wrapper function pool. The monitoring module 211 may select a wrapper function related to specific software from a wrapper function pool. The selected wrapper function is called before the corresponding function in the task is executed to monitor for defect injection. When a defect injection request is input, the monitoring module 211 checks whether a function executed in the current BSW layer 110, the RTE layer 120, and the application layer 130 is a defect injection target. Hereinafter, a function that is a target for injection of a defect is called a target function.

결함 주입 모듈(212)은 모니터링 모듈(211)에서 선택한 타깃 함수에 대하여 결함을 수행하게 한다. 결함 주입 모듈(212)은 특정한 결함 코드를 선택하여 타깃 함수에 전달한다. 이 과정에서 래퍼 함수가 타깃 함수에 대한 결함 코드를 덮어쓴다. 결함 코드의 유형은 데이터 결함(data error), 프로그램 흐름 결함(program flow error), 접근 결함(access error), 시간 결함(timing error) 및 비대칭 결함(asymmetric error) 중 적어도 하나일 수 있다.The defect injection module 212 performs a defect on the target function selected by the monitoring module 211. The defect injection module 212 selects a specific defect code and delivers it to the target function. In this process, the wrapper function overwrites the fault code for the target function. The type of the defect code may be at least one of a data error, a program flow error, an access error, a timing error, and an asymmetric error.

결과보고 모듈(213)은 결함 주입 함수가 실행된 후에 결함 주입 함수의 실행 여부, 결함 주입 실행 결과 및 이후 호출 스택과 같이 결함 주입으로 인한 예외 처리 루틴 동작에 대한 정보를 생성한다. 결과보고 모듈(213)이 생성하는 정보를 테스트 결과 정보라고 명명하다. 테스트 결과 정보는 결함 주입 이후 소프트웨어 동작에 대한 정보를 제공하며, 이를 통해 결함 주입 결과에 대한 모니터링을 할 수 있다. 테스트 결과 정보는 결함 코드의 전달 여부, 결함 코드 실행 결과 및 상기 결함 코드 실행 후 호출 스택 정보 중 적어도 하나를 포함한다. 결과보고 모듈(213)은 테스트 결과 정보에 해당하는 로그 정보를 저장할 수 있다. 테스트 결과 정보는 차량제어장치 또는 별도의 저장 매체에 저장될 수 있다.The result reporting module 213 generates information on whether a defect injection function is executed after a defect injection function is executed, a result of the defect injection execution, and an exception handling routine operation due to a defect injection, such as a call stack. The information generated by the result reporting module 213 is called test result information. The test result information provides information about the software operation after the defect injection, and through this, the defect injection result can be monitored. The test result information includes at least one of whether a defect code is delivered, a defect code execution result, and call stack information after executing the defect code. The result reporting module 213 may store log information corresponding to test result information. The test result information may be stored in a vehicle control device or a separate storage medium.

나아가 결과보고 모듈(213)은 테스트 결과 정보를 외부 객체인 호스트 장치(호스트 PC)에 전달할 수 있다. 결과보고 모듈(213)은 통신 기능을 갖는 에이전트를 이용하여 차량 통신을 통해 연결된 호스트 장치에 테스트 결과 정보를 송신할 수 있다.Furthermore, the result reporting module 213 may transmit test result information to a host device (host PC) as an external object. The result reporting module 213 may transmit test result information to a host device connected through vehicle communication using an agent having a communication function.

도 3은 AUTOSAR 기반 소프트웨어의 결함 테스트 시스템(300)에 대한 예이다. 소프트웨어 결함 테스트 시스템(300)은 차량제어장치(310) 및 호스트 장치(320)를 포함한다. 차량제어장치(310)는 도 2에서 설명한 차량제어장치(200)와 동일한 객체이다. 차량제어장치(320)는 모니터링 모듈(311), 결함 주입 모듈(312) 및 결과보고 모듈(313)을 포함한다. 각 모듈의 동작은 도 2에서 설명한 바와 같다. 3 is an example of a defect test system 300 of AUTOSAR based software. The software defect test system 300 includes a vehicle control device 310 and a host device 320. The vehicle control device 310 is the same object as the vehicle control device 200 described with reference to FIG. 2. The vehicle control device 320 includes a monitoring module 311, a defect injection module 312, and a result reporting module 313. The operation of each module is as described in FIG. 2.

모니터링 모듈(311)은 BSW 계층에서 태스크 실행 전에 호출되는 함수에 대한 래퍼 함수를 선택한다. 모니터링 모듈(311)은 모든 계층에서 현재 실행되는 함수가 결함 주입 대상인지 확인한다. 모니터링 모듈(311)은 결함 주입 대상인 타깃 함수에 대한 정보를 결함 주입 모듈(312)에 전달한다. 결함 주입 모듈(312)은 타깃 함수에 대한 래퍼 함수를 이용하여 결함 코드를 실행한다. 결함 주입 모듈(312)은 결함 주입 시점에 대한 정보를 결과보고 모듈(313)에 전송한다. 결과보고 모듈(313)은 타깃 함수의 실행 여부, 결함 코드의 실행 결과, 결함 코드 시행 후의 호출 스택 정보 등을 수집하여 테스트 결과 정보를 생성한다. 모니터링 모듈(311), 결함 주입 모듈(312) 및 결과보고 모듈(313)은 BSW 계층에서 독자적인 채널을 통해 서로 통신할 수 있다. 또 모니터링 모듈(311), 결함 주입 모듈(312) 및 결과보고 모듈(313)은 RTE 계층을 통해 다른 계층의 모듈 내지 함수와 통신할 수 있다. The monitoring module 311 selects a wrapper function for a function that is called before task execution in the BSW layer. The monitoring module 311 checks whether a function currently executed in all layers is a defect injection target. The monitoring module 311 transmits information on the target function, which is a target of the defect injection, to the defect injection module 312. The defect injection module 312 executes the defect code using a wrapper function for the target function. The defect injection module 312 transmits information on the timing of the defect injection to the result reporting module 313. The result reporting module 313 generates test result information by collecting whether the target function is executed, the execution result of the defective code, and call stack information after the execution of the defective code. The monitoring module 311, the defect injection module 312, and the result reporting module 313 may communicate with each other through independent channels in the BSW layer. Also, the monitoring module 311, the defect injection module 312, and the result reporting module 313 may communicate with modules or functions of other layers through the RTE layer.

결과보고 모듈(313)은 테스트 결과 정보를 에이전트를 통해 연결된 외부 객체인 호스트 장치(320)에 전달할 수 있다. 호스트 장치(320)와 연결이 불가능한 경우, 결과보고 모듈(313)은 테스트 결과 정보를 로그 파일로 저장할 수 있다. The result reporting module 313 may transmit test result information to the host device 320 which is an external object connected through the agent. If connection with the host device 320 is not possible, the result reporting module 313 may store test result information as a log file.

차량제어장치(310)와 호스트 장치(320)는 차량 통신(CAN 등)을 통해 정보를 교환할 수 있다. 호스트 장치(320)는 내부에 설치된 분석 프로그램(321)을 이용하여 테스트 결과 정보를 분석할 수 있다. 분석 프로그램(321)은 검증 대상 소프트웨어의 결함 위치, 결함 데이터, 결함 발생 시점, 결함 발생 후 동작 등을 분석하여 결함 주입 이후의 차량제어장치(310) 동작을 모니터링하고 분석할 수 있다.The vehicle control device 310 and the host device 320 may exchange information through vehicle communication (CAN, etc.). The host device 320 may analyze test result information using the analysis program 321 installed therein. The analysis program 321 may analyze and analyze a defect location, defect data, a defect generation time, and a post-defect operation of the software to be verified to monitor and analyze the operation of the vehicle control device 310 after injection of the defect.

도 4는 AUTOSAR 기반 소프트웨어의 결함 테스트 과정(400)에 대한 예이다. 도 4는 도 3의 소프트웨어 결함 테스트 시스템(300)의 동작을 예로 설명한다. 4 is an example of a defect test process 400 of AUTOSAR-based software. 4 illustrates the operation of the software defect test system 300 of FIG. 3 as an example.

모니터링 모듈(311)은 BSW 계층에서 전체 소프트웨어 실행을 모니터링한다. 모니터링 모듈(311)은 BSW 계층의 태스크를 모니터링한다(401). 모니터링 모듈(311)은 태스크의 실행 전에 호출되는 함수에 대한 정보를 수신한다(402). The monitoring module 311 monitors the entire software execution in the BSW layer. The monitoring module 311 monitors the tasks of the BSW layer (401). The monitoring module 311 receives information on a function that is called before execution of the task (402).

모니터링 모듈(311)은 호출되는 함수에 매칭되는 래퍼 함수를 선택한다(412). 모니터링 모듈(311)은 래퍼 함수 풀에서 매칭되는 래퍼 함수를 선택할 수 있다. 모니터링 모듈(311)은 태스크의 종류에 따라 특정 래퍼 함수를 선택할 수 있다. 모니터링 모듈(311)은 태스크 실행을 위해 호출되는 함수 또는 함수의 종류에 따라 특정 래퍼 함수를 선택할 수 있다. 차량제어장치는 선택된 래퍼 함수를 실행한다. The monitoring module 311 selects a wrapper function matching the function to be called (412). The monitoring module 311 may select a matching wrapper function from the wrapper function pool. The monitoring module 311 may select a specific wrapper function according to the type of task. The monitoring module 311 may select a specific wrapper function according to a function called for task execution or a type of function. The vehicle control device executes the selected wrapper function.

모니터링 모듈(311)은 결함 주입 요청이 입력된 경우 현재 BSW 계층, RTE 계층 및 애플리케이션 계층에서 실행되는 함수가 타깃 함수인지 확인한다. 결함 주입 모듈(312)은 타깃 함수에 대한 정보를 결함 주입 모듈(312)에 전달한다(421). 결함 주입 모듈(312)은 모니터링 모듈(311)에서 선택한 타깃 함수에 대한 결함 코드를 선택할 수 있다. 결함 주입 모듈(312)은 소프트웨어 단위 또는 통합 테스트 단계별로 서로 다른 결함 코드를 선택할 수 있다. 이 경우 특정 함수에 대한 결함 코드도 사전에 마련된 결함 코드 풀에서 선택될 수 있다. 결함 코드의 유형은 데이터 결함(data error), 프로그램 흐름 결함(program flow error), 접근 결함(access error), 시간 결함(timing error) 및 비대칭 결함(asymmetric error) 중 적어도 하나일 수 있다. 결함 주입 모듈(312)은 선택된 타깃 함수에 대하여 결함 코드를 주입한다(423). When the defect injection request is input, the monitoring module 311 checks whether a function executed in the current BSW layer, RTE layer, and application layer is a target function. The defect injection module 312 transfers information on the target function to the defect injection module 312 (421 ). The defect injection module 312 may select a defect code for the target function selected by the monitoring module 311. The defect injection module 312 may select different defect codes for each software unit or integration test step. In this case, a defect code for a specific function may also be selected from a previously prepared defect code pool. The type of the defect code may be at least one of a data error, a program flow error, an access error, a timing error, and an asymmetric error. The defect injection module 312 injects a defect code for the selected target function (423).

이후 BSW 계층(110), RTE 계층(120) 및 애플리케이션 계층(130) 중 적어도 하나의 계층에서 결함 코드로 타깃 함수가 실행된다(431). 결함 주입 모듈(312)은 결함 주입 시점 또는 결함 실행 시점에 대한 정보를 결과보고 모듈(313)에 전달할 수 있다(미도시). Thereafter, a target function is executed with a defect code in at least one of the BSW layer 110, the RTE layer 120, and the application layer 130 (431). The defect injection module 312 may transmit information on a defect injection time or a defect execution time to the result report module 313 (not shown).

결과보고 모듈(313)은 결함 주입 함수가 실행된 후에 결함 주입 함수의 실행 여부, 결함 주입 실행 결과 및 이후 호출 스택과 같이 결함 주입으로 인한 예외 처리 루틴 동작에 대한 정보 중 적어도 하나를 포함하는 테스트 결과 정보를 생성한다(442). 결과보고 모듈(313)은 테스트 결과 정보를 로그 파일 형태로 저장할 수도 있다(451). 결과보고 모듈(313)은 테스트 결과 정보를 정보 전달용 에이전트를 이용하여 차량 통신으로 호스트 장치(320)에 전송할 수 있다(452). The result reporting module 313 is a test result including at least one of information about whether a defect injection function is executed after a defect injection function is executed, a defect injection execution result, and an exception handling routine operation due to a defect injection, such as a call stack. Information is generated (442). The result reporting module 313 may store the test result information in the form of a log file (451). The result reporting module 313 may transmit the test result information to the host device 320 through vehicle communication using an agent for transmitting information (452).

호스트 장치(320)는 내부에 설치된 분석 프로그램을 이용하여 테스트 결과 정보를 분석할 수 있다(461). 분석 프로그램(321)은 검증 대상 소프트웨어의 결함 위치, 결함 데이터, 결함 발생 시점, 결함 발생 후 동작 등을 분석하여 결함 주입 이후의 차량제어장치(310) 동작을 모니터링하고 분석할 수 있다.The host device 320 may analyze test result information using an analysis program installed therein (461). The analysis program 321 may analyze and analyze a defect location, defect data, a defect generation time, and a post-defect operation of the software to be verified to monitor and analyze the operation of the vehicle control device 310 after injection of the defect.

실험실 환경에서 AUTOSAR 기반 소프트웨어의 결함 테스트 시스템을 구현하여 실험 결과를 모니터링하였다. 실험 환경은 다음과 같다. ECU 환경을 재현하기 위한 개발용 평가 보드와 PC를 이용하여, 개발용 평가 보드는 결함 주입에 사용하고, PC에서는 결함 주입 결과를 확인하였다. 결함 주입 테스트는 SWC 내의 Runnable-Runnable 간 통합테스트 단계에서 Timing Error 결함 유형 중 CPU clock corruption 결함을 주입하였다. In the laboratory environment, the defect test system of AUTOSAR-based software was implemented to monitor the experimental results. The experimental environment is as follows. Using the development evaluation board and PC to reproduce the ECU environment, the development evaluation board was used for defect injection, and the defect injection result was confirmed on the PC. In the defect injection test, the CPU clock corruption defect was injected among the types of Timing Error defects during the integration test between Runnable and Runnable in SWC.

아래는 실험 과정에서 결함을 주입하고, 주입된 결함에 대한 결과를 확인한 과정의 예이다. 도 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). The following is an example of the process of injecting a defect in the experiment process and confirming the result of the injected defect. The monitoring module 311 of FIG. 4 monitors the task execution and monitors the invocation of all tasks including Runnable A (ESCLPowerSupply()), which is a target for injection of defects (401). When the call function information (name and function type of the runnable to be injected with defects) is received to initiate the injection of a defect (411), select the wrapper function Runnable A'(Wrap_ESCLPowerSupply()) that matches the calling function from the library and select Runnable A )), so that Runnable A'(Wrap_ESCLPowerSupply()) is called (412). Afterwards, the defect injection module checks whether the target function is every time Runnable A'is called (421). If it is confirmed as the target function, the CPU clock register value, which is the fault to be injected, is received (422) and the CPU clock register value is changed before calling the original function Runnable A (ESCLPowerSupply()) from Runnable A'(Wrap_ESCLPowerSupply()). Whether the defect injection has been executed and the values necessary for confirming the result are generated (442) as test result information, and stored (451), and the test result information is transmitted to the PC (452). The PC analyzes the execution result received from the evaluation board for development (461).

또한, 상술한 바와 같은 AUTOSAR 기반의 차량 소프트웨어에 대한 결함 주입 방법 및 결함 주입을 이용한 테스트 방법은 컴퓨터에서 실행될 수 있는 실행가능한 알고리즘을 포함하는 프로그램(또는 애플리케이션)으로 구현될 수 있다. 상기 프로그램은 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.In addition, the defect injection method for the AUTOSAR based vehicle software and the test method using the defect injection as described above may be implemented as a program (or application) including an executable algorithm that can be executed on a computer. The program may be stored and provided in a non-transitory computer readable medium.

비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.The non-transitory readable medium means a medium that stores data semi-permanently and that can be read by a device, rather than a medium that stores data for a short time, such as registers, caches, and memory. Specifically, the various applications or programs described above may be stored and provided in a non-transitory readable medium such as a CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, and the like.

본 실시례 및 본 명세서에 첨부된 도면은 전술한 기술에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 전술한 기술의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형 예와 구체적인 실시례는 모두 전술한 기술의 권리범위에 포함되는 것이 자명하다고 할 것이다.The drawings attached to the present embodiment and the present specification merely show a part of the technical spirit included in the above-described technology, and are easily understood by those skilled in the art within the scope of the technical spirit included in the above-described technical specification and drawings. It will be apparent that all of the examples and specific examples that can be inferred are included in the scope of the above-described technology.

100 : 차량제어장치
110 : BSW 계층
120 : RTE 계층
130 : 애플리케이션 계층
200 : 차량제어장치
211 : 모니터링 모듈
212 : 결함 주입 모듈
213 : 결과보고 모듈
300 : 차량 소프트웨어의 결함 테스트 시스템
310 : 차량제어장치
311 : 모니터링 모듈
312 : 결함 주입 모듈
313 : 결과보고 모듈
320 : 호스트 장치
321 : 분석 프로그램
100: vehicle control device
110: BSW layer
120: RTE layer
130: application layer
200: vehicle control device
211: monitoring module
212: fault injection module
213: result reporting module
300: vehicle software defect test system
310: vehicle control device
311: monitoring module
312: fault injection module
313: result reporting module
320: host device
321: analysis program

Claims (12)

차량제어장치(ECU)가 BSW(Basic Software) 계층에서 결함주입 대상인 타깃 함수가 포함된 태스크(task) 실행 여부를 모니터링하는 단계;
상기 차량제어장치가 상기 BSW 계층에서 상기 태스크 실행을 위하여, 상기 태스크 실행 전에 호출되는 적어도 하나의 타깃 함수에 대한 래퍼(wrapper) 함수를 선택하는 단계:
상기 차량제어장치가 상기 BSW 계층, RTE(Runtime Environment) 계층 및 SWC(SoftWare Component)에서 각각 상기 타깃 함수가 실행되는지 모니터링하는 단계;
상기 차량제어장치가 상기 BSW 계층, 상기 RTE 계층 및 상기 SWC 중 어느 하나에서 실행되는 상기 타깃 함수에 대한 결함 코드를 상기 래퍼 함수에 전달하여 특정 결함을 실행하는 단계; 및
상기 차량제어장치가 호스트장치로 상기 특정 결함을 실행한 결과를 송신하는 단계를 포함하되,
상기 차량제어장치는 사전에 마련된 래퍼 함수 풀 중에서 상기 타깃 함수에 특정 결함 유도를 위한 상기 래퍼 함수를 선택하고,
상기 차량제어장치는 상기 BSW 계층에 위치하는 결함 주입 모듈을 이용하여 상기 타깃 함수에 대한 결함 코드를 전달하는 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 방법.
Monitoring whether a vehicle control unit (ECU) executes a task including a target function that is a target of defect injection in a basic software (BSW) layer;
In order for the vehicle control apparatus to execute the task in the BSW layer, selecting a wrapper function for at least one target function called before the task execution:
Monitoring whether the target function is executed by the vehicle control device in the BSW layer, the runtime environment (RTE) layer, and the software component (SWC), respectively;
Executing, by the vehicle control device, a defect code for the target function executed in any one of the BSW layer, the RTE layer, and the SWC to the wrapper function to execute a specific defect; And
And transmitting, by the vehicle control device, a result of executing the specific defect to a host device.
The vehicle control device selects the wrapper function for inducing a specific defect in the target function from a pool of previously provided wrapper functions,
The vehicle control device using the defect injection module located in the BSW layer defect test method of AUTOSAR-based vehicle software to deliver the defect code for the target function.
삭제delete 제1항에 있어서,
상기 차량제어장치는 상기 BSW 계층에 위치하는 모니터링 모듈을 이용하여 상기 태스크 실행 여부를 모니터링하고, 상기 래퍼 함수를 선택하는 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 방법.
According to claim 1,
The vehicle control device monitors whether the task is executed using a monitoring module located in the BSW layer, and selects the wrapper function.
삭제delete 제1항에 있어서,
상기 결함 코드의 유형은 데이터 결함(data error), 프로그램 흐름 결함(program flow error), 접근 결함(access error), 시간 결함(timing error) 및 비대칭 결함(asymmetric error) 중 적어도 하나인 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 방법.
According to claim 1,
The type of the defect code is AUTOSAR-based vehicle software that is at least one of a data error, a program flow error, an access error, a timing error, and an asymmetric error. Defect testing method.
제1항에 있어서,
상기 차량제어장치는 상기 결함 코드의 전달 여부, 상기 결함 코드 실행 결과 및 상기 결함 코드 실행 후 호출 스택 정보를 포함하는 테스트 결과 정보를 생성하는 단계를 더 포함하는 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 방법.
According to claim 1,
The vehicle control apparatus further comprises generating test result information including whether the defect code is delivered, the defect code execution result, and the call stack information after executing the defect code.
제6항에 있어서,
상기 차량제어장치는 상기 BSW 계층에 위치하는 결과보고 모듈을 이용하여 상기 테스트 결과 정보를 네트워크 통신으로 상기 호스트 장치에 전달하는 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 방법.
The method of claim 6,
The vehicle control device using the result reporting module located in the BSW layer, the defect test method of the AUTOSAR-based vehicle software to transmit the test result information to the host device via network communication.
BSW(Basic Software) 계층에서 결함주입 대상인 타깃 함수가 포함된 태스크(task) 실행을 모니터링하고, 상기 태스크 실행을 위하여, 상기 태스크 실행 전에 호출되는 적어도 하나의 타깃 함수에 대한 래퍼(wrapper) 함수를 선택하고, 상기 BSW 계층, RTE(Runtime Environment) 계층 및 SWC(SoftWare Component) 각각에서 상기 타깃 함수의 실행 여부를 모니터링하는 모니터링 모듈;
상기 BSW 계층, 상기 RTE 계층 및 상기 SWC 중 어느 하나에서 실행되는 상기 타깃 함수에 대한 상기 래퍼 함수에 결함 코드를 전달하는 결함 주입 모듈; 및
상기 결함 코드의 전달 여부, 상기 결함 코드 실행 결과 및 상기 결함 코드 실행 후 호출 스택 정보를 포함하는 테스트 결과 정보를 생성하는 결과보고 모듈을 포함하는 차량제어장치를 포함하되,
상기 모니터링 모듈, 상기 결함 주입 모듈 및 상기 결과보고 모듈은 소프트웨어 모듈이고, 상기 BSW 계층에 위치하고,
상기 모니터링 모듈은 사전에 마련된 래퍼 함수 풀 중에서 상기 타깃 함수에 특정 결함 유도를 위한 상기 래퍼 함수를 선택하는 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 시스템.
In the Basic Software (BSW) layer, a task execution including a target function targeted for defect injection is monitored, and for the task execution, a wrapper function is selected for at least one target function called before the task execution And, the BSW layer, RTE (Runtime Environment) layer and SWC (SoftWare Component) monitoring module for monitoring whether the target function is executed;
A defect injection module that delivers a defect code to the wrapper function for the target function executed in any one of the BSW layer, the RTE layer, and the SWC; And
And a vehicle control device including a result reporting module for generating test result information including whether the defect code is delivered, the defect code execution result, and the call stack information after the defect code execution,
The monitoring module, the defect injection module and the result reporting module are software modules, located in the BSW layer,
The monitoring module is a defect test system of AUTOSAR based vehicle software that selects the wrapper function for inducing a specific defect in the target function from a pool of previously provided wrapper functions.
제8항에 있어서,
상기 결함 코드의 유형은 데이터 결함(data error), 프로그램 흐름 결함(program flow error), 접근 결함(access error), 시간 결함(timing error) 및 비대칭 결함(asymmetric error) 중 적어도 하나인 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 시스템.
The method of claim 8,
The type of the defect code is AUTOSAR-based vehicle software that is at least one of a data error, a program flow error, an access error, a timing error, and an asymmetric error. Defect testing system.
제8항에 있어서,
상기 결과보고 모듈은 상기 테스트 결과 정보를 상기 차량제어장치 또는 별도의 저장장치에 저장하는 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 시스템.
The method of claim 8,
The result reporting module is a defect test system of AUTOSAR based vehicle software that stores the test result information in the vehicle control device or a separate storage device.
제8항에 있어서,
상기 결과보고 모듈은 상기 테스트 결과를 에이전트(agent)를 통해 차량 통신으로 외부 호스트 장치에 송신하는 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 시스템.
The method of claim 8,
The result reporting module is a defect test system of AUTOSAR-based vehicle software that transmits the test results to an external host device through vehicle communication through an agent.
컴퓨터에서 제1항, 제3항 및 제5항 내지 제7항 중 어느 하나의 항에 기재된 AUTOSAR 기반 차량 소프트웨어의 결함 테스트 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
A computer-readable recording medium recording a program for executing a defect test method of the AUTOSAR-based vehicle software according to any one of claims 1, 3 and 5 to 7, in a computer.
KR1020180154370A 2018-12-04 2018-12-04 Fault injection test method and system for vehicle software based on autosar KR102141287B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180154370A KR102141287B1 (en) 2018-12-04 2018-12-04 Fault injection test method and system for vehicle software based on autosar

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180154370A KR102141287B1 (en) 2018-12-04 2018-12-04 Fault injection test method and system for vehicle software based on autosar

Publications (2)

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

Family

ID=71088376

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180154370A KR102141287B1 (en) 2018-12-04 2018-12-04 Fault injection test method and system for vehicle software based on autosar

Country Status (1)

Country Link
KR (1) KR102141287B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112653607B (en) * 2020-12-26 2022-09-23 潍柴动力股份有限公司 Message transmission method and device, electronic equipment and computer storage medium
CN112783736B (en) * 2021-03-01 2024-04-19 苏州挚途科技有限公司 Method and device for monitoring running body time of software component and electronic equipment
CN116232969B (en) * 2023-02-21 2024-05-03 深蓝汽车科技有限公司 Network communication state monitoring and reporting method of network node and vehicle
CN116643998B (en) * 2023-07-27 2023-09-22 上海鉴智其迹科技有限公司 AUTOSAR RTM-based test method and device

Citations (1)

* 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

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102008029310C5 (en) * 2008-06-20 2019-01-03 Knorr-Bremse Systeme für Nutzfahrzeuge GmbH Monitoring device for monitoring systems of a vehicle
WO2013016576A1 (en) * 2011-07-26 2013-01-31 United Parcel Service Of American, Inc. Systems and methods for managing fault codes
KR101695015B1 (en) 2012-07-05 2017-01-11 한국전자통신연구원 Method of testing a software based on a fault-injection and system for the same

Patent Citations (1)

* 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

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.*

Also Published As

Publication number Publication date
KR20200067474A (en) 2020-06-12

Similar Documents

Publication Publication Date Title
KR102141287B1 (en) Fault injection test method and system for vehicle software based on autosar
KR102537875B1 (en) Method and apparatus for dinamically injecting fault for vehicle ecu software test
CN111651366B (en) SDK test method, device, equipment and storage medium
US9355017B2 (en) Automated error checking system for a software application and method therefor
US8800047B2 (en) System, method and program product for dynamically performing an audit and security compliance validation in an operating environment
CN110673576B (en) Automatic test method and device, vehicle and storage medium
JP2014203314A (en) ECU simulation device
CN108459850B (en) Method, device and system for generating test script
US20150100831A1 (en) Method and system for selecting and executing test scripts
US10274919B2 (en) Method, device and computer program product for programming a plurality of control units
US8762781B2 (en) Method and apparatus useful in manufacturing test case operations
CN113742215A (en) Method and system for automatically configuring and calling test tool to perform test analysis
CN103197947A (en) Script processing method and device
CN111984524A (en) Fault injection method, fault simulation method, fault injection device, and storage medium
CN100359485C (en) Testing device and method for flush-bonding system
CN115495129A (en) Firmware upgrading method, device, equipment, medium and product
US20220138083A1 (en) Method for operating a control unit when testing software of the control unit, and method for operating a test computer when testing software of a control unit
CN106250123B (en) A kind of system test mode and operational mode compatibility method
US8639978B2 (en) Topology independent network-based automation infrastructure
CN112256554B (en) Method and equipment for testing based on scene test cases
CN114911531B (en) Hardware environment simulation method and hardware environment simulation system
US20240231347A1 (en) Fault injection test method and apparatus, and fault injection method
KR20130088990A (en) Apparatus and method for middleware
Krishnamoorthy et al. Blending Hardware-in-the-Loop System with Automation
CN116662159A (en) Automobile BootLoader abnormal downloading file testing system and testing method

Legal Events

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