[go: up one dir, main page]

KR102020994B1 - Method and apparatus for fault injection test - Google Patents

Method and apparatus for fault injection test Download PDF

Info

Publication number
KR102020994B1
KR102020994B1 KR1020170072731A KR20170072731A KR102020994B1 KR 102020994 B1 KR102020994 B1 KR 102020994B1 KR 1020170072731 A KR1020170072731 A KR 1020170072731A KR 20170072731 A KR20170072731 A KR 20170072731A KR 102020994 B1 KR102020994 B1 KR 102020994B1
Authority
KR
South Korea
Prior art keywords
defect
task
information
electronic control
variable value
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020170072731A
Other languages
Korean (ko)
Other versions
KR20180134677A (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 KR1020170072731A priority Critical patent/KR102020994B1/en
Publication of KR20180134677A publication Critical patent/KR20180134677A/en
Application granted granted Critical
Publication of KR102020994B1 publication Critical patent/KR102020994B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

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

Abstract

본 발명은 결함 주입 테스트 방법 및 장치에 관한 것으로, 좀 더 상세하게는 전자제어장치에 인위적으로 주입할 결함을 자동으로 생성하고, 결함이 주입된 전자제어장치의 동작을 모니터링할 수 있는 결함 주입 테스트 방법 및 장치에 관한 것이다.
실시 형태에 따른 결함 주입 방법은, 전자제어장치의 결함 시나리오를 포함하는 결함 정보를 생성하는, 결함 정보 생성 단계; 생성된 상기 결함 정보를 상기 전자제어장치에 주입하는, 결함 정보 주입 단계; 및 상기 결함 정보가 주입된 상기 전자제어장치로부터 태스크 실행 정보와 변수값 정보를 수신받아 상기 전자제어장치의 동작을 모니터링하는, 모니터링 단계;를 포함한다.
The present invention relates to a defect injection test method and apparatus, and more particularly, a defect injection test capable of automatically generating a defect to be artificially injected into an electronic control device and monitoring the operation of the electronic control device in which the defect is injected. A method and apparatus are disclosed.
The defect injection method according to the embodiment includes a defect information generation step of generating defect information including a defect scenario of the electronic control apparatus; A defect information injection step of injecting the generated defect information into the electronic control apparatus; And monitoring the operation of the electronic control apparatus by receiving task execution information and variable value information from the electronic control apparatus in which the defect information is injected.

Figure 112017055241616-pat00003
Figure 112017055241616-pat00003

Description

결함 주입 테스트 방법 및 장치{METHOD AND APPARATUS FOR FAULT INJECTION TEST}Fault injection test method and apparatus {METHOD AND APPARATUS FOR FAULT INJECTION TEST}

본 발명은 결함 주입 테스트 방법 및 장치에 관한 것으로, 좀 더 상세하게는 전자제어장치에 인위적으로 주입할 결함을 자동으로 생성하고, 결함이 주입된 전자제어장치의 동작을 모니터링할 수 있는 결함 주입 테스트 방법 및 장치에 관한 것이다.The present invention relates to a defect injection test method and apparatus, and more particularly, a defect injection test capable of automatically generating a defect to be artificially injected into an electronic control device and monitoring the operation of the electronic control device in which the defect is injected. A method and apparatus are disclosed.

최근 자동차에 다양한 기능이 탑재됨에 따라 이를 처리하기 위한 전자제어장치(ECU)가 많이 사용되고 있다. 기계식 제어장치가 전자제어장치로 대체됨에 따라, 도요타 사태와 같은 안전 관련 이슈가 발생될 때마다 전자제어장치에 탑재된 소프트웨어(SW)에 대한 신뢰성에 의문을 제기하고 있다. 이에 따라 ISO26262 표준에서는 기존의 안전산업 분야(철도, 항공, 원자력 등)에서 적용되던 기능 안정성(Functional Safety)을 자동차산업 분야에 적용하여, 안전에 민감한 SW 컴포넌트에 대해 결함 주입 테스트(Fault Injection Test)를 수행할 것을 규정하고 있다.Recently, as various functions are mounted in an automobile, an electronic control unit (ECU) for processing the same has been widely used. As mechanical control devices are replaced by electronic control devices, whenever a safety-related issue such as a Toyota situation arises, the reliability of the software (SW) mounted in the electronic control device is questioned. Accordingly, the ISO26262 standard applies Fault Injection Test for safety-sensitive SW components by applying functional safety applied in the safety industry (railroad, aviation, nuclear power, etc.) to the automotive industry. It requires that

전자제어장치는 기본적으로 결함(Fault)를 회피하고 예방할 수 있도록 설계되어야 한다. 만약, 결함이 발생하더라도 빠른 시간 안에 에러(Error)를 감지하고 자가 복구를 할 수 있는 매커니즘을 갖추어야 한다. 따라서, 비록 실제 상황에서 발생 확률이 낮지만 발생할 수도 있는 결함들을 강제로 유발시켜 자가 복구가 원활이 이루어지는지를 검증하는 방법이 필요하다.Electronic controllers should be designed to basically avoid and prevent faults. If a fault occurs, a mechanism for detecting an error and recovering itself in a short time should be provided. Therefore, there is a need for a method of verifying that the self-healing is smooth by forcibly causing defects that may occur even though the probability of occurrence in the actual situation is low.

종래에는 설계자가 디버거(debugger)를 통해 전자제어장치에 인위적인 결함을 일일이 주입하고, 결함 주입 전과 후를 모니터링하여 설계자가 직접 수기로 테스트 결과 보고서를 작성해야 하는 시간적, 비용적 불편함이 존재하였다.Conventionally, designers inject artificial defects into the electronic control device through a debugger, and monitor the before and after defect injection, and designers have to write a test result report by hand.

따라서, 전자제어장치에 결함을 자동으로 유발시키고, 결함이 주입된 전자제어장치의 동작을 실시간으로 모니터링하며, 테스트 결과 보고서를 자동으로 생성할 수 있는 결함 주입 자동화 테스트 방법이 절실히 필요한 실정이다.Therefore, there is an urgent need for an automated defect injection test method that automatically induces a defect in the electronic controller, monitors the operation of the electronic controller injecting the defect in real time, and automatically generates a test result report.

본 발명의 해결하고자 하는 과제는, 전자제어장치에 인위적인 결함을 자동으로 생성 및 주입시킬 수 있는 결함 주입 테스트 방법과 장치를 제시하는 것을 목적으로 한다.An object of the present invention is to provide a defect injection test method and apparatus capable of automatically generating and injecting artificial defects into an electronic control apparatus.

또한, 결함이 주입된 전자제어장치가 정상적으로 동작하는지를 모니터링할 수 있는 결함 주입 테스트 방법과 장치를 제시하는 것을 목적으로 한다.Another object of the present invention is to provide a defect injection test method and apparatus capable of monitoring whether an electronic control device in which a defect is injected is normally operated.

또한, 결함이 주입된 전자제어장치의 테스트 결과 보고서를 자동으로 생성할 수 있는 결함 주입 테스트 방법과 장치를 제시하는 것을 목적으로 한다.In addition, an object of the present invention is to provide a defect injection test method and apparatus capable of automatically generating a test result report of a defect-injected electronic control apparatus.

본 발명의 해결과제는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problem of the present invention is not limited to those mentioned above, and other problems not mentioned will be clearly understood by those skilled in the art from the following description.

실시 형태에 따른 결함 주입 방법은, 전자제어장치의 결함 시나리오를 포함하는 결함 정보를 생성하는, 결함 정보 생성 단계; 생성된 상기 결함 정보를 상기 전자제어장치에 주입하는, 결함 정보 주입 단계; 및 상기 결함 정보가 주입된 상기 전자제어장치로부터 태스크 실행 정보와 변수값 정보를 수신받아 상기 전자제어장치의 동작을 모니터링하는, 모니터링 단계;를 포함한다.The defect injection method according to the embodiment includes a defect information generation step of generating defect information including a defect scenario of the electronic control apparatus; A defect information injection step of injecting the generated defect information into the electronic control apparatus; And monitoring the operation of the electronic control apparatus by receiving task execution information and variable value information from the electronic control apparatus in which the defect information is injected.

상기 결함 정보 생성 단계에서, 상기 결함 시나리오는 상기 전자제어장치의 설정정보와 입력창으로 입력된 사용자 선택정보에 기초하여 생성될 수 있다.In the defect information generation step, the defect scenario may be generated based on the setting information of the electronic controller and the user selection information input to the input window.

상기 결함 정보 생성 단계에서, 상기 결함 시나리오는 상기 전자제어장치의 설정정보에서 발생 가능한 모든 결함들을 조합하여 추출될 수 있다.In the defect information generating step, the defect scenario may be extracted by combining all the defects that may occur in the setting information of the electronic control apparatus.

상기 결함 정보 생성 단계에서, 상기 결함 시나리오는 결함의 발생 시점, 결함의 대상, 결함의 유형 및 결함의 발생 횟수 중 적어도 하나 이상을 포함할 수 있다.In the defect information generating step, the defect scenario may include at least one or more of a timing of occurrence of a defect, a target of the defect, a type of the defect, and a number of occurrences of the defect.

상기 결함의 유형은, 태스크 실행 중단, 스케줄러에 의한 태스크 재실행 방지, 알람(Alarm) 발생 방해를 통한 태스크 재실행 방지, 이벤트 대기 후 태스크 재실행 방지, 리소스 대기 중 데드락(Deadlock) 유도로 태스크 재실행 방지, 스택 오버플로우(Stack overflow) 발생 유도하여 태스크 재실행 방지, 태스크 오버런(Task overrun), 변수값의 오염, 코드 변이, CPU 레지스터 값 오염, S/W 컴포넌트 오염, 및 비트 플립(Bit Flip) 중 적어도 하나 이상을 포함할 수 있다.Types of defects include: interrupting task execution, preventing task rerun by the scheduler, preventing task rerun by interrupting alarm generation, preventing rerun of the task after waiting for an event, preventing task rerun by inducing deadlock during resource wait, stacking At least one or more of prevention of task rerun by causing overflow overflow, task overrun, contamination of variable value, code variation, CPU register value contamination, S / W component contamination, and bit flip It may include.

상기 모니터링 단계는, 상기 전자제어장치의 상기 태스크 실행 정보에 기초한 태스크 상태 변화 그래프와 상기 전자제어장치의 상기 변수값 정보에 기초한 변수값 상태 변화 그래프를 디스플레이할 수 있다.The monitoring may include displaying a task state change graph based on the task execution information of the electronic control apparatus and a variable value state change graph based on the variable value information of the electronic control apparatus.

상기 태스크 상태 변화 그래프는, 시간에 흐름에 따른 태스크별 상태의 변화, 결함 발생 시점 및 시스템 리셋 시점을 포함할 수 있다.The task state change graph may include a state change for each task over time, a defect occurrence time point, and a system reset time point.

상기 변수값 변화 그래프는, 시간에 흐름에 따른 변수값(들)의 추이, 결함 발생 시점 및 시스템 리셋 시점을 포함할 수 있다.The variable value change graph may include a trend of a variable value (s) over time, a defect occurrence time point, and a system reset time point.

상기 변수값 변화 그래프는, 변수값이 미리 설정된 임계치를 초과하는지 여부를 알려주는 알림을 포함할 수 있다.The variable value graph may include a notification indicating whether the variable value exceeds a preset threshold.

상기 모니터링 단계는, 상기 전자제어장치의 태스크의 시작과 종료 정보를 추출하고, 추출된 상기 태스크의 시작과 종료 정보를 기초로 모니터링 주기를 보정할 수 있다.The monitoring may include extracting start and end information of a task of the electronic control apparatus and correct a monitoring period based on the extracted start and end information of the task.

여기서, 테스트 결과 보고서를 생성하는, 테스트 결과 보고서 생성 단계;를 더 포함하고, 상기 테스트 결과 보고서는, 상기 태스크 상태 변화와 상기 변수값 추이를 문자로 출력한 부분을 포함할 수 있다.Here, a test result report generation step of generating a test result report, the test result report may further include a portion outputting the task state change and the variable value trend in text.

실시 형태에 따른 결함 주입 테스트 장치는, 전자제어장치의 결함 시나리오를 포함하는 결함 정보를 생성하는, 테스트 시나리오 관리 모듈; 생성된 상기 결함 정보를 상기 전자제어장치에 주입시기 위한 테스트를 실행하는, 테스트 실행 모듈; 상기 결함 정보가 주입된 상기 전자제어장치로부터 태스크 실행 정보를 수신받아 상기 전자제어장치 내의 태스크의 상태 변화를 모니터링하는, 태스크 모니터링 모듈; 및 상기 결함 정보가 주입된 상기 전자제어장치로부터 변수값 정보를 수신받아 상기 전자제어장치의 변수값의 변화 추이를 모니터링하는, 변수값 모니터링 모듈;를 포함한다.The defect injection test apparatus according to the embodiment includes a test scenario management module that generates defect information including a defect scenario of the electronic control apparatus; A test execution module for executing a test for injecting the generated defect information into the electronic control apparatus; A task monitoring module configured to receive task execution information from the electronic control apparatus in which the defect information is injected, and monitor a state change of a task in the electronic control apparatus; And a variable value monitoring module configured to receive variable value information from the electronic control device in which the defect information is injected, and monitor a change in the variable value of the electronic control device.

상기 전자제어장치에 결함이 발생하기 전과 발생된 후의 상기 태스크의 상태 변화와 상기 변수값의 추이 변화를 포함하는 테스트 결과 보고서를 생성하는, 보고서 생성 모듈;을 더 포함할 수 있다.And a report generation module configured to generate a test result report including a change in the state of the task and a change in the value of the variable before and after a defect occurs in the electronic control apparatus.

본 발명의 실시 형태에 따른 결함 주입 테스트 방법과 장치를 사용하면, 전자제어장치에 인위적인 결함을 자동으로 생성 및 주입시킬 수 있는 이점이 있다.Using the defect injection test method and apparatus according to the embodiment of the present invention has the advantage of automatically generating and injecting artificial defects into the electronic control apparatus.

또한, 결함이 주입된 전자제어장치가 정상적으로 동작하는지를 모니터링할 수 있는 이점이 있다.In addition, there is an advantage that it is possible to monitor whether the electronic control device injected with a defect is operating normally.

또한, 결함이 주입된 전자제어장치의 테스트 결과 보고서를 자동으로 생성할 수 있는 이점이 있다.In addition, there is an advantage that can automatically generate a test result report of the electronic control device injected with a defect.

또한, ISO26262 기반의 테스트 환경을 확대할 수 있는 이점이 있다.It also has the advantage of expanding the ISO26262 based test environment.

또한, 테스트 자동화에 따른 비용을 절감할 수 있는 이점이 있다.In addition, there is an advantage that can reduce the cost of test automation.

또한, 비정상 상황 테스트를 위한 인프라를 구축할 수 있는 이점이 있다.In addition, there is an advantage to build an infrastructure for testing abnormal conditions.

또한, 코드 수정 없이 테스팅 범위를 BSW까지 확대할 수 있는 이점이 있다.It also has the advantage of extending the testing range to BSW without code modification.

또한, 결함 발견 프로세스에 대한 선제적 대응전략을 마련할 수 있는 이점이 있다.In addition, there is an advantage to prepare a preemptive response strategy for the defect detection process.

도 1은 본 발명의 실시 형태에 따른 결함 주입 테스트 방법이 구현될 수 있는 시스템 구성도의 일 예이다.
도 2는 본 발명의 실시 형태에 따른 결함 주입 테스트 장치와 전자제어장치의 내부 구성도이다.
도 3은 본 발명의 실시 형태에 따른 결함 주입 테스트 방법의 순서도이다.
도 4는 도 3에 도시된 본 발명의 실시 형태에 따른 결함 주입 테스트 방법을 설명하기 위한 개념도이다.
도 5는 태스크 상태 변화 그래프의 일 예를 보여주는 도면이다.
도 6은 변수값 변화 그래프의 일 예를 보여주는 도면이다.
도 7은 생성된 테스트 결과 보고서의 일 예를 보여주는 도면이다.
도 8 및 도 9는 <표 2>에 기재된 결함의 유형 중 '태스크 실행 중단'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다.
도 10 및 도 11은 <표 2>에 기재된 결함의 유형 중 '스케줄러에 의한 태스크 재실행 방지'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다.
도 12 및 도 13은 <표 2>에 기재된 결함의 유형 중 '알람(Alarm) 발생 방해를 통한 태스크 재실행 방지'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다.
도 14 및 도 15는 <표 2>에 기재된 결함의 유형 중 '이벤트 대기 후 Task 재실행 방지'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다.
도 16은 <표 2>에 기재된 결함의 유형 중 '리소스 대기 중 Deadlock 유도로 Task 재실행 방지'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다.
도 17 및 도 18은 <표 2>에 기재된 결함의 유형 중 'Stack overflow 발생 유도하여 Task 재실행 방지'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다.
도 19 및 도 20은 <표 2>에 기재된 결함의 유형 중 'Task overrun(다른 Task omission, delay 유발)'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다.
도 21 및 도 22는 <표 2>에 기재된 결함의 유형 중 '변수 값의 오염'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다.
도 23은 <표 2>에 기재된 결함의 유형 중 '코드 변이'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다.
도 24 및 도 25는 <표 2>에 기재된 결함의 유형 중 'CPU 레지스트 값 오염'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다.
도 26 및 도 27은 <표 2>에 기재된 결함의 유형 중 'Bit Flip'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다.
도 28은 도 3에 도시된 본 발명의 실시 형태에 따른 결함 주입 테스트 방법에서 전자제어장치의 동작을 모니터링하는 단계(s350)를 설명하기 위한 예시 도면이다.
도 29는 메모리 폴링에 의한 모니터링 오차를 보완하는 기능을 설명하기 위한 도면이다.
1 is an example of a system configuration in which a defect injection test method according to an embodiment of the present invention can be implemented.
2 is an internal configuration diagram of a defect injection test apparatus and an electronic control apparatus according to an embodiment of the present invention.
3 is a flowchart of a defect injection test method according to an embodiment of the present invention.
4 is a conceptual diagram for describing a defect injection test method according to an exemplary embodiment of the present invention illustrated in FIG. 3.
5 is a diagram illustrating an example of a task state change graph.
6 is a diagram illustrating an example of a variable value change graph.
7 is a diagram illustrating an example of a generated test result report.
8 and 9 are diagrams for describing a method of generating a defect scenario of 'task execution interruption' among the types of defects described in Table 2;
10 and 11 are diagrams for describing a method of generating a defect scenario of 'preventing task rerun by a scheduler' among the types of defects described in <Table 2>.
12 and 13 are diagrams for describing a method of generating a defect scenario of 'preventing task rerun by interrupting alarm generation' among the types of defects described in Table 2. FIG.
14 and 15 are diagrams for describing a method of generating a defect scenario of 'preventing task re-execution after waiting for an event' among the types of defects described in <Table 2>.
FIG. 16 is a diagram for describing a method of generating a defect scenario of preventing a task re-execution by inducing deadlock while waiting for resources among the types of defects described in Table 2. FIG.
17 and 18 are diagrams for describing a method of generating a defect scenario of 'avoid task re-execution by inducing a stack overflow' among the types of defects described in <Table 2>.
19 and 20 are diagrams for describing a method of generating a defect scenario of 'Task overrun (other task omission, delay initiation)' among the types of defects described in <Table 2>.
21 and 22 are diagrams for explaining a method of generating a defect scenario of 'contamination of variable values' among the types of defects described in Table 2. FIG.
FIG. 23 is a diagram for describing a method of generating a defect scenario of 'code variation' among the types of defects described in Table 2. FIG.
24 and 25 are diagrams for explaining a method of generating a defect scenario of 'CPU resist value contamination' among the types of defects described in Table 2. FIG.
26 and 27 are diagrams for describing a method of generating a defect scenario of 'Bit Flip' among the types of defects described in <Table 2>.
FIG. 28 is an exemplary diagram for describing an operation (S350) of monitoring an operation of an electronic control apparatus in a defect injection test method according to an exemplary embodiment of the present disclosure illustrated in FIG. 3.
29 is a diagram for describing a function of compensating for a monitoring error due to memory polling.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시 형태를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시 형태는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시형태는 서로 다르지만 상호 배타적일 필요는 없음을 이해하여야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시형태에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시형태로 구현될 수 있다. 또한, 각각의 개시된 실시 형태 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정될 수 있다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭할 수 있다. DETAILED DESCRIPTION OF THE INVENTION The following detailed description of the invention refers to the accompanying drawings that show, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It is to be understood that the various embodiments of the invention are different but need not be mutually exclusive. For example, certain shapes, structures, and characteristics described herein may be embodied in other embodiments without departing from the spirit and scope of the invention in connection with one embodiment. In addition, it is to be understood that the location or arrangement of individual components within each disclosed embodiment may be changed without departing from the spirit and scope of the invention. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present invention, if properly described, may be defined only by the appended claims, along with the full range of equivalents to which such claims are entitled. Like reference numerals in the drawings may refer to the same or similar functions throughout the several aspects.

이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시 형태에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.DETAILED DESCRIPTION Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily implement the present invention.

도 1은 본 발명의 실시 형태에 따른 결함 주입 테스트 방법이 구현될 수 있는 시스템 구성도의 일 예이다.1 is an example of a system configuration in which a defect injection test method according to an embodiment of the present invention can be implemented.

도 1을 참조하면, 실시 형태에 따른 결함 주입 테스트 방법이 구현될 수 있는 시스템은, 결함 주입 테스트 장치(10), 인터페이스 장치(30) 및 전자제어장치(ECU, 50)을 포함한다.Referring to FIG. 1, a system in which a defect injection test method according to an embodiment may be implemented includes a defect injection test apparatus 10, an interface device 30, and an electronic controller (ECU) 50.

결함 주입 테스트 장치(10)는 본 발명의 실시 형태에 따른 결함 주입 테스트 방법을 수행한다. 여기서, 결함 주입 테스트 장치(10)는 노트북, 랩탑, 태블릿 및 스마트폰 중 어느 하나에 설치된 프로그램(또는 어플리케이션)일 수도 있고, 결함 주입 테스트 방법만을 수행하는 전용 단말기일 수도 있다.The defect injection test apparatus 10 performs the defect injection test method which concerns on embodiment of this invention. Here, the defect injection test apparatus 10 may be a program (or application) installed in any one of a notebook, a laptop, a tablet, and a smartphone, or may be a dedicated terminal that performs only a defect injection test method.

인터페이스 장치(30)는 전자제어장치(50)를 디버깅하는 디버거(Debugger)일 수 있다. 인터페이스 장치(30)를 통해 전자제어장치(50)의 CPU 레지스터 또는 메모리에 접근할 수 있다. 또한, 태스크(Task) 스케쥴링, 인터럽트(interrupt) 등의 RTOS(Real Time Operating System)의 커널 영역도 접근할 수 있다. 인터페이스 장치(30)를 통해 결함 주입 테스트 장치(10)에서 생성된 인위적인 결함을 전자제어장치(50)로 주입할 수 있다. 인터페이스 장치(30)는 결함 주입 테스트 장치(10)와 유선(예를 들면, USB 케이블) 또는 무선으로 연결될 수 있다. The interface device 30 may be a debugger for debugging the electronic controller 50. The CPU device or the memory of the electronic controller 50 may be accessed through the interface device 30. In addition, the kernel region of the Real Time Operating System (RTOS), such as task scheduling and interrupt, can be accessed. The artificial defect generated in the defect injection test apparatus 10 may be injected into the electronic controller 50 through the interface device 30. The interface device 30 may be connected to the defect injection test device 10 by wire (eg, a USB cable) or wirelessly.

또는, 인터페이스 장치(30)는 전자제어장치(50)로 CAN 데이터를 송신하고, 전자제어장치(50)로부터 CAN 데이터를 수신할 수 있는 어댑터(Adapter)일 수도 있다.Alternatively, the interface device 30 may be an adapter capable of transmitting CAN data to the electronic controller 50 and receiving CAN data from the electronic controller 50.

전자제어장치(50)는 차량용 전자제어장치일 수 있다. 인터페이스 장치(30)와 디버깅용 JTAG 포트에 의해 연결될 수 있고, CAN 통신이 가능하도록 유선 또는 무선으로 연결될 수 있다. 여기서, 전자제어장치(50)가 차량용 전자제어장치로 한정되는 것은 아니다. 전자제어장치(50)는 차량 산업뿐만 아니라 다른 산업에서 사용되는 전자제어장치일 수 있다. 예를 들어, 전자제어장치(50)는 전력 시스템에서 사용되는 RTU(Remote Terminal Unit)일 수 있다. 전자제어장치(50)가 다른 산업에서 사용되는 전자제어장치인 경우, 인터페이스 장치(30)와 전자제어장치(50)는 이더넷, USB, 또는 시리얼 통신으로 서로 연결될 수 있다. 본 발명의 실시 형태를 상세히 설명함에 있어서 편의상 전자제어장치(50)가 차량용 전자제어장치인 것으로 가정한다.The electronic controller 50 may be an electronic controller for a vehicle. The interface device 30 may be connected by the JTAG port for debugging and may be connected by wire or wirelessly to enable CAN communication. Here, the electronic control device 50 is not limited to the vehicle electronic control device. The electronic controller 50 may be an electronic controller used in the vehicle industry as well as other industries. For example, the electronic controller 50 may be a remote terminal unit (RTU) used in a power system. When the electronic control device 50 is an electronic control device used in another industry, the interface device 30 and the electronic control device 50 may be connected to each other by Ethernet, USB, or serial communication. In describing the embodiments of the present invention in detail, it is assumed that the electronic control device 50 is a vehicle electronic control device for convenience.

도 2는 본 발명의 실시 형태에 따른 결함 주입 테스트 장치와 전자제어장치의 내부 구성도이다.2 is an internal configuration diagram of a defect injection test apparatus and an electronic control apparatus according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 실시 형태에 따른 결함 주입 테스트 장치(10)는 운영체제(OS, 11), 테스트 시나리오 관리 모듈(12), 테스트 실행 모듈(13), 태스크 모니터링 모듈(14), 변수 모니터링 모듈(15), 테스트 결과 관리 모듈(16), 보고서 생성 모듈(17), 통신 모듈(18), 및 GUI(19)를 포함할 수 있다.2, a defect injection test apparatus 10 according to an embodiment of the present invention may include an operating system (OS) 11, a test scenario management module 12, a test execution module 13, a task monitoring module 14, The variable monitoring module 15 may include a test result management module 16, a report generation module 17, a communication module 18, and a GUI 19.

운영체제(11)는 윈도우(Windows)일 수 있으나, 이에 한정하지 않고 리눅스, 맥, 안드로이드 등 다양한 운영체제일 수 있다.The operating system 11 may be Windows, but is not limited thereto and may be various operating systems such as Linux, Mac, and Android.

테스트 시나리오 관리 모듈(12)는 전자제어장치(50)에 인위적으로 주입될 결함(Fault) 정보를 생성한다. 예를 들어 결함 시나리오를 생성할 수 있다.The test scenario management module 12 generates fault information to be artificially injected into the electronic controller 50. For example, you can create a defect scenario.

테스트 실행 모듈(13)은 생성된 결함 정보를 전자제어장치(50)에 주입시키기 위한 테스트를 실행한다. 테스트 실행 모듈(13)은 미리 정해진 시간에 전자제어장치(50)에서 결함이 발생되도록 한다. 예를 들어, 테스트 실행 모듈(13)은 미리 정해진 시간에 전자제어장치(50)의 메모리 값을 변경시키는 제어를 수행하거나 메모리 값 변경을 위한 CAN 신호를 전송하도록 제어한다.The test execution module 13 executes a test for injecting the generated defect information into the electronic control device 50. The test execution module 13 causes a defect to occur in the electronic controller 50 at a predetermined time. For example, the test execution module 13 performs a control to change the memory value of the electronic controller 50 at a predetermined time or controls to transmit a CAN signal for changing the memory value.

태스크 모니터링 모듈(14)은 전자제어장치(50) 내에서 동작되는 태스크의 상태 변화를 모니터링한다. 예를 들어, 태스크의 상태 변화를 그래프 또는 목록으로 디스플레이한다.The task monitoring module 14 monitors a state change of a task operated in the electronic controller 50. For example, display the status change of a task as a graph or list.

변수 모니터링 모듈(15)은 전자제어장치(50)의 변수값의 변화 추이를 모니터링한다. 예를 들어, 변수값의 변화 추이를 그래프 또는 목록으로 디스플레이한다.The variable monitoring module 15 monitors the change of the variable value of the electronic controller 50. For example, the change in the value of a variable is displayed in a graph or a list.

테스트 결과 관리 모듈(16)은 테스트 결과를 저장하거나 분석한다.The test result management module 16 stores or analyzes the test result.

보고서 생성 모듈(17)은 전자제어장치(50)에 결함이 발생하기 전과 발생된 후의 태스크 상태와 변수값의 추이에 대한 테스트 결과 보고서를 자동으로 생성한다.The report generation module 17 automatically generates a test result report on the status of the task state and the variable value before and after the defect occurs in the electronic control device 50.

통신 모듈(18)은 테스트 시나리오 관리 모듈(12)에서 생성된 결함 정보를 전자제어장치(50)로 출력하고, 전자제어장치(50)로부터 태스크 실행 정보와 변수값 정보를 수신한다.The communication module 18 outputs defect information generated in the test scenario management module 12 to the electronic controller 50 and receives task execution information and variable value information from the electronic controller 50.

GUI(19)는 테스트 시나리오 관리 모듈(12), 테스트 실행 모듈(13), 태스크 모니터링 모듈(14), 변수 모니터링 모듈(15), 테스트 결과 관리 모듈(16), 보고서 생성 모듈(17) 및 통신 모듈(18)을 사용자가 제어 및 모니터링할 수 있는 인터페이스를 제공한다.GUI 19 includes test scenario management module 12, test execution module 13, task monitoring module 14, variable monitoring module 15, test result management module 16, report generation module 17 and communication. The module 18 provides an interface for user control and monitoring.

도 2에 도시된 전자제어장치(50)는 운영체제(51)와 다수의 태스크(53)들을 포함한다.The electronic control device 50 shown in FIG. 2 includes an operating system 51 and a plurality of tasks 53.

운영체제(51)는 RTOS(Real Time Operating System)일 수 있다. 여기서, 운영체제(51)가 RTOS로 한정되는 것은 아니다. 본 발명의 실시 형태를 설명함에 있어서 전자제어장치(50)를 차량용 전자제어장치로 예를 든 것이기 때문에, 운영체제(51)를 RTOS로 가정한 것임을 유의해야 한다. 따라서, 운영체제(51)는 전자제어장치(50)에 따라 달라질 수 있다. The operating system 51 may be a real time operating system (RTOS). Here, the operating system 51 is not limited to the RTOS. In describing the embodiment of the present invention, since the electronic control device 50 is taken as an electronic control device for a vehicle, it should be noted that the operating system 51 is assumed to be an RTOS. Therefore, the operating system 51 may vary depending on the electronic control device 50.

RTOS는 주어진 작업을 정해진 시간 안에 수행할 수 있는 환경을 제공한다. 각 작업은 태스크(Task, 53) 단위로 동작하며, 태스크(53)는 실행(Running), 중지(Suspended), 대기(Waiting), 준비(Ready)의 네 가지 상태를 가진다. 또한, 한 순간에는 하나의 태스크(53)만 실행할 수 있기 때문에, 모든 태스크(53)들은 스케쥴러에 의해 관리되며, 태스크 우선순위에 따라 동작한다.RTOS provides an environment in which a given task can be performed within a given time. Each task operates in a unit of task 53, and task 53 has four states of running, suspended, waiting, and ready. In addition, since only one task 53 can be executed at a time, all tasks 53 are managed by a scheduler and operate according to task priority.

RTOS의 대표적인 예로서, 임베디드 분야에서 사용되는 OSEK/VDX가 있다. OSEK/VDX는 아래의 <표 1>에 기재된 요소들로 구성된다. <표 1>에 나타난 요소들을 이용하여 본 발명의 실시 형태에 따른 결함 주입 방법과 장치는, 결함을 인위적으로 생성할 수 있다. A representative example of the RTOS is OSEK / VDX used in the embedded field. OSEK / VDX consists of the elements described in Table 1 below. Using the elements shown in Table 1, a defect injection method and apparatus in accordance with an embodiment of the present invention can artificially create a defect.

TaskTask RTOS의 가장 기본이 되는 실행 단위RTOS's most basic execution unit InterruptInterrupt 하드웨어 mechanism. 비동기적 이벤트를 처리 시 사용Hardware mechanism. Used to handle asynchronous events ResourceResource Task간의 자원을 공유하는데 사용Used to share resources between tasks AlarmAlarm 주기적으로 Task를 실행 가능함Task can be executed periodically EventEvent Task 간 이벤트 신호에 의해 동기화 처리Synchronization processing by event signal between tasks MessageMessage Task 간 데이터 전송에 사용Used to transfer data between tasks

여기서, 유의할 점은, 본 발명의 실시 형태에 따른 결함 주입 테스트 방법과 결함 주입 테스트 장치가 OSEK/VDX 운영체제로 한정되는 것은 아니고, 다른 운영체제에서 동일 또는 유사하게 적용될 수 있다. It should be noted that the defect injection test method and the defect injection test apparatus according to the embodiment of the present invention are not limited to the OSEK / VDX operating system, and may be applied to the same or similarly in other operating systems.

한편, 전자제어장치(50)의 운영체제(51)는 필수적인 것은 아니다. 소정의 전자제어장치(50)는 별도의 운영체제없이 펌웨어(Firmware)로 동작할 수도 있다.On the other hand, the operating system 51 of the electronic control device 50 is not essential. The predetermined electronic controller 50 may operate as firmware without a separate operating system.

도 3은 본 발명의 실시 형태에 따른 결함 주입 테스트 방법의 순서도이고, 도 4는 도 3에 도시된 본 발명의 실시 형태에 따른 결함 주입 테스트 방법을 설명하기 위한 개념도이다.3 is a flow chart of a defect injection test method according to an embodiment of the present invention, Figure 4 is a conceptual diagram for explaining a defect injection test method according to an embodiment of the present invention shown in FIG.

도 3 및 도 4를 참조하면, 본 발명의 실시 형태에 따른 결함 주입 테스트 방법은, 결함 정보(500)를 생성하는 단계(s310), 생성된 결함 정보(500)를 전자제어장치(50)에 주입하는 단계(s330), 전자제어장치(50)의 동작을 모니터링하는 단계(s350) 및 테스트 결과 보고서(800)를 생성하는 단계(s370)를 포함할 수 있다. 3 and 4, in the defect injection test method according to an exemplary embodiment of the present disclosure, generating the defect information 500 (S310), and generating the generated defect information 500 to the electronic controller 50. Injecting (S330), monitoring the operation of the electronic controller 50 (S350), and generating a test result report 800 (S370) may be included.

결함 정보(500)를 생성하는 단계(s310)는, 결함 주입 대상인 전자제어장치(50)의 설정정보(100)와 입력창(400)으로 입력된 사용자 선택정보에 기초하여 결함 시나리오를 생성하는 단계일 수 있다. 여기서, 결함 정보(500)는 생성된 결함 시나리오를 포함한다. Generating the defect information 500 (s310), generating a defect scenario based on the setting information 100 of the electronic control device 50 that is the defect injection target and the user selection information input to the input window 400 Can be. Here, the defect information 500 includes the generated defect scenario.

결함 시나리오는, 결함의 발생 시점, 결함의 대상, 결함의 유형, 및 결함의 발생 횟수 중 적어도 하나 이상을 포함한다. 여기서, 결함 시나리오는 결함의 발생 시점, 결함의 대상, 결함의 유형, 및 결함의 발생 횟수 중 둘 이상을 조합한 것일 수도 있다.The defect scenario includes at least one of the timing of occurrence of the defect, the object of the defect, the type of the defect, and the number of occurrences of the defect. Here, the defect scenario may be a combination of two or more of the occurrence time of the defect, the object of the defect, the type of the defect, and the number of occurrence of the defect.

결함의 발생 시점은, 결함 발생 시간, 태스크 실행 횟수, 및 변수값을 포함한다.The occurrence time of the defect includes a defect occurrence time, a task execution count, and a variable value.

결함의 대상은, 태스크, 메모리, CPU 레지스터, 태스크 스케줄러, 시스템, 변수 또는 코드 영역, 및 S/W 컴포넌트를 포함한다.Targets of defects include tasks, memory, CPU registers, task schedulers, systems, variables, or code areas, and software components.

결함의 발생 횟수는, 결함이 반복적으로 발생되도록 하기 위한 것으로서, 결함의 발생 간격과 종료 값을 포함한다.The number of occurrences of the defects is for causing the defects to be repeatedly generated, and includes the occurrence interval and the end value of the defects.

결함의 유형은, 아래 <표 2>에 나타난 유형들 중 적어도 하나 이상을 포함한다.The type of defect includes at least one or more of the types shown in Table 2 below.

결함(Fault) 유형Fault type 결함(Fault)의 설명과 유발 방법의 예시Description of faults and examples of how to trigger them 1One Task 실행 중단Interrupt Task 실행중인 Task를 강제로 중단시킴.
Instruction Pointer 조작: 실행중인 Task의 오동작 유도.
Forcibly interrupt a running task.
Instruction Pointer operation: Induce malfunction of running task.
22 스케줄러에 의한 Task 재실행 방지Prevent task rerun by scheduler Task가 스케줄링에 의해 대기상태로 간 후 다시 실행되지 않도록 방해.
Active_count 값을 변경하여 실행중인 Task의 오동작 유도.
Interrupt the task from going to standby after scheduling.
Induce malfunction of running task by changing Active_count value.
33 Alarm 발생 방해를 통한 Task 재실행 방지Prevent task rerun by interrupting alarm Alarm에 의해 주기적으로 실행되는 Task를 실행되지 않도록 방해.
Alarm주기를 조작하여 실행 방해.
Interfere not to execute task that is executed periodically by Alarm.
Interrupt the execution by operating the alarm cycle.
44 이벤트 대기 후 Task 재실행 방지Prevent task rerun after waiting for event Task를 Event 대기 상태로 만든 후 다시 실행되지 못하도록 방해.
대기 Event Mask를 조작하여 재실행 방해.
Prevent a task from running again after putting it in an event standby state.
Interrupt the redo by manipulating the standby Event Mask.
55 리소스 대기 중 Deadlock 유도로 Task 재실행 방지Prevent task rerun by inducing deadlock while waiting for resources Resource를 사용하는 Task의 Resource 해제를 방해하여 해제를 기다리는 다른 Task의 실행을 방해.
리소스 ID를 조작하여 태스크 정상 동작을 방해.
Interferes with the release of a task using a resource, preventing execution of other tasks that are waiting to be released.
Manipulate resource IDs to disrupt task normal operation.
66 Stack overflow 발생 유도하여 Task 재실행 방지Prevents task rerun by inducing stack overflow 실행중인 Task의 Stack을 Full로 만들어 overflow 유발.
Stack Pointer에 Max값을 할당하여 전체 시스템 오동작 유도.
Cause overflow of the running task by making it full.
Induce overall system malfunction by assigning Max value to Stack Pointer.
77 Task overrun (다른 Task omission, delay 유발)Task overrun (induces other task omissions and delays) 1) Task 실행시간을 예측한 시간보다 지연시킴.
Task 실행 중 실행시간이 긴 다른 function으로 전이 시킴. (지연된 Task에 의해 다음 실행할 Task가 누락되거나 지연됨)

2) Task overrun을 배제한 Task omission 유도.
실행 시간이 긴 Task를 짧은 Task보다 우선순위를 높임.
1) Delay the task execution time more than expected time.
Transition to another function with long execution time while executing task. (Delayed Task is missing or delayed the next task to run)

2) Induction of task omission excluding task overrun.
Tasks with long execution time have priority over short tasks.
88 변수값의 오염Contamination of Variable Values 특정 변수 값을 임의의 값으로 변경시킴(범위 내 또는 이를 벗어난 값).
Map 파일을 참고하여 특정 변수 주소의 값을 변경.
Change the value of a specific variable to any value (in or out of range).
Refer to the map file and change the value of a specific variable address.
99 코드 변이Code variation 코드 영역의 코드 값을 임의의 값으로 변경 시킴.
Map 파일을 참고하여 코드 주소 영역의 코드 값을 변경.
Change the code value of the code area to an arbitrary value.
Refer to the map file and change the code value in the code address area.
1010 CPU 레지스터 값 오염CPU register value contamination 레지스터 값을 임의의 값으로 변경 시킴.
레지스터 값을 변경.
Change register value to any value.
Change register value.
1111 S/W 컴포넌트 오염S / W component contamination S/W 컴포넌트를 구분하고 Event, Runable 등의 정보를 변경시킴.
Event 설정정보 변경, Runable 함수 주소 변경.
It classifies S / W components and changes information such as event and runable.
Change event setting information, change runable function address.
1212 Bit FlipBit flip 임의의 메모리 영역의 비트 하나를 변경.
Bit단위로 특정 메모리의 값을 변경.
Change one bit of random memory area.
Change the value of specific memory in bit unit.

전자제어장치(50)의 설정정보(100)는 전자제어장치(50)별 고유한 정보이다. 예를 들어, 전자제어장치(50)가 OSEK/VDX 운영체제를 갖는 경우, 설정정보(100)는 전자제어장치(50)의 설계정보를 포함하는 *.oil 파일과 해당 전자제어장치(50)의 어드레스 또는 심볼 정보를 포함하는 *.map 파일을 포함할 수 있다. 여기서, 전자제어장치(50)가 OSEK/VDX 운영체제가 아닌 다른 운영체제를 갖는 경우, 전자제어장치(50)의 설정정보는 다른 유형의 파일 또는 소스코드 자체에 의해 정의될 수 있다.The setting information 100 of the electronic controller 50 is information unique to the electronic controller 50. For example, when the electronic controller 50 has an OSEK / VDX operating system, the setting information 100 may include a * .oil file including design information of the electronic controller 50 and the corresponding electronic controller 50. It may include a * .map file containing address or symbol information. Here, when the electronic controller 50 has an operating system other than the OSEK / VDX operating system, the setting information of the electronic controller 50 may be defined by another type of file or the source code itself.

입력창(400)은 전자제어장치(50)의 설정정보(100)에서 결함 시나리오를 생성하기 위해 필요한 정보들을 사용자에게 보기 쉽게 제공한다. 입력창(400)을 통해 제공되는 정보들을 중 사용자가 원하는 정보를 선택하면, 입력창(400)으로 입력된 사용자 선택정보가 생성되고, 생성된 사용자 선택정보에 결합하여 결함 시나리오가 생성된다.The input window 400 provides the user with the information necessary for generating the defect scenario in the setting information 100 of the electronic control apparatus 50 so that the user can easily see it. When the user selects the desired information among the information provided through the input window 400, user selection information input to the input window 400 is generated, and a defect scenario is generated by combining the generated user selection information.

한편, 결함 정보(500)를 생성하는 단계(s310)는, 기본 테스트 시나리오를 생성할 수 있다. 여기서, 기본 테스트 시나리오는 전자제어장치(50)의 설정정보(100)에서 발생 가능한 모든 결함(Fault)들을 조합하여 자동으로 추출된 결함 시나리오이다. Meanwhile, in operation S310 of generating the defect information 500, a basic test scenario may be generated. Here, the basic test scenario is a defect scenario automatically extracted by combining all the faults that may occur in the setting information 100 of the electronic controller 50.

생성된 결함 정보(500)를 전자제어장치(50)에 주입하는 단계(s330)는, 결함 시나리오에 따라 결함 정보(500)를 전자제어장치(50)로 주입하는 단계이다. 여기서, 결함 정보(500)를 전자제어장치(50)로 주입하는 방법은, 결함 시나리오에 기입된 미리 정해진 시간에 전자제어장치(50)의 메모리 값을 직접 변경하거나 메모리 값 변경 CAN 신호를 전송하는 것에 의할 수 있다. Injecting the generated defect information 500 into the electronic controller 50 (s330) is a step of injecting the defect information 500 into the electronic controller 50 according to a defect scenario. Here, the method of injecting the defect information 500 into the electronic control device 50, which directly changes the memory value of the electronic control device 50 or transmits a memory value change CAN signal at a predetermined time written in the defect scenario. It can be by.

전자제어장치(50)의 동작을 모니터링하는 단계(s350)는, 전자제어장치(50)에서 출력되는 태스크 실행 정보와 변수값 정보를 수신하고, 수신된 태스크 실행 정보와 변수값 정보 각각을 모니터링부(600)를 통해 디스플레이하는 단계이다. 여기서, 태스크 실행 정보와 변수값 정보는 그래프 형태로 디스플레이 될 수 있다. 예를 들어, 태스크 실행 정보는 태스크 상태 변화 그래프로 디스플레이되고, 변수값 정보는 변수값 변화 그래프로 디스플레이될 수 있다. In operation S350 of monitoring the operation of the electronic controller 50, the task execution information and the variable value information output from the electronic controller 50 are received, and each of the received task execution information and the variable value information is monitored. The display through 600 is performed. Here, task execution information and variable value information may be displayed in a graph form. For example, task execution information may be displayed as a task state change graph, and variable value information may be displayed as a variable value change graph.

도 5에 태스크 상태 변화 그래프의 일 예가 도시되어 있다. 도 5를 참조하면, 태스크 상태 변화 그래프는 시간에 흐름에 따른 태스크별 상태의 변화, 결함 발생 시점(610) 및 와치독(Watchdog)에 의한 시스템 리셋 시점(630)을 표시할 수 있다.An example of a task state change graph is shown in FIG. 5. Referring to FIG. 5, the task state change graph may display a state change for each task over time, a defect occurrence time 610, and a system reset time 630 due to a watchdog.

도 6에 변수값 변화 그래프의 일 예가 도시되어 있다. 도 6을 참조하면, 변수값 변화 그래프는 시간에 흐름에 따른 변수값(들)의 추이, 결함 발생 시점(650) 및 시스템 리셋 시점(670)을 표시할 수 있다. 또한, 변수값 변화 그래프는 변화되는 변수값이 미리 설정된 임계치를 초과하는지를 알려주는 알림(690)을 설정 및 표시할 수 있다. 알림(690)은 해당 변수값 곡선에서 임계치를 초과하는 부분만 굵게 표시하도록 설정될 수 있다.An example of a variable value change graph is shown in FIG. 6. Referring to FIG. 6, the variable value change graph may display the trend of the variable value (s) over time, a defect occurrence time 650, and a system reset time 670. In addition, the variable value graph may set and display a notification 690 that indicates whether the variable value to be changed exceeds a preset threshold. The notification 690 may be set to display in bold only a portion of the corresponding variable value curve that exceeds the threshold.

다시, 도 3 및 도 4를 참조하면, 테스트 결과 보고서(800)를 생성하는 단계(s370)는, 전자제어장치(50)에 결함을 주입하기 전과 주입한 후의 정보가 포함된 테스트 결과 보고서(800)를 생성하는 단계이다. 3 and 4, in operation S370 of generating a test result report 800, a test result report 800 including information before and after injecting a defect into the electronic controller 50 is included. ) Step.

도 7에 생성된 테스트 결과 보고서의 일 예가 도시되어 있다. 도 7을 참조하면, 테스트 결과 보고서(800)는 태스크 상태 변화와 변수값 추이를 문자로 출력하는 '특이사항' 부분(810)을 포함한다. '특이사항' 부분(810)은 태스크 실행 정보와 변수값 정보에서 결함 주입 전과 후에서의 특이한 변화나 상태를 글로 자동으로 출력하는 부분이다. 이러한 '특이사항' 부분(810)이 테스트 결과 보고서(800)에 포함되면, 사용자가 직접 보고서를 써야하는 불편함과 사용자가 모니터링부(600)를 통해 제공되는 그래프를 잘못 이해할 수 있는 오류를 사전에 차단할 수 있다.An example of the test result report generated in FIG. 7 is shown. Referring to FIG. 7, the test result report 800 includes a 'specials' part 810 that outputs a text message of a task status change and a variable value trend. The 'specifications' part 810 is a part for automatically outputting a specific change or state before and after the defect injection in the task execution information and the variable value information. When the 'specifications' part 810 is included in the test result report 800, the user may write a report directly and an error in which the user may misunderstand the graph provided through the monitoring unit 600 may be proactive. Can block on.

도 7에 도시된 테스트 결과 보고서(800)는, 테스트 제목, 보고서 종류, 시나리오 명, 시나리오 설명, 테스트 시간 검사유형, 테스트 시간 검사대상, 테스트 시간 조건, 테스트 대상, 테스트 시작시간, 테스트 종료시간, 테스트 킬 시도 시간, ECU 리셋 추정 시간, 테스트 결과 개요, 조치 결과, 변수 목록, 변수 모니터링, 태스크 상태 변화 그래프 및 변수값 변화 그래프를 더 포함할 수 있다. 이러한 정보들도 사용자가 직접 작성하는 것이 아니라 자동으로 출력된다.The test result report 800 illustrated in FIG. 7 includes a test title, a report type, a scenario name, a scenario description, a test time check type, a test time check target, a test time condition, a test target, a test start time, a test end time, Test kill attempt time, ECU reset estimated time, test result overview, action results, variable list, variable monitoring, task status change graph and variable value change graph may further include. This information is also output automatically, rather than written by the user.

도 3에 도시된 결함 정보(500)를 생성하는 단계(s310), 생성된 결함 정보(500)를 전자제어장치(50)에 주입하는 단계(s330), 전자제어장치(50)의 동작을 모니터링하는 단계(s350) 및 테스트 결과 보고서(800)를 생성하는 단계(s370)는, 도 2에 도시된 결함 주입 테스트 장치(10)에서 수행될 수 있다. 예를 들어, s310 단계는 도 2에 도시된 테스트 시나리오 관리 모듈(12)에서, s330 단계는 도 2에 도시된 테스트 실행 모듈(13)과 통신 모듈(18)에서, s350 단계는 도 2에 도시된 태스크 모니터링 모듈(14)와 변수값 모니터링 모듈(15)에서, s370 단계는 도 2에 도시된 보고서 생성 모듈(17)에서 수행될 수 있다.Generating the defect information 500 shown in Figure 3 (s310), injecting the generated defect information 500 into the electronic control device 50 (s330), monitoring the operation of the electronic control device 50 In operation S350 and generating the test result report 800, operation S370 may be performed by the defect injection test apparatus 10 illustrated in FIG. 2. For example, step s310 is in the test scenario management module 12 shown in FIG. 2, step s330 is in the test execution module 13 and communication module 18 shown in FIG. 2, and step s350 is shown in FIG. 2. In the task monitoring module 14 and the variable value monitoring module 15, the step s370 may be performed by the report generation module 17 shown in FIG. 2.

도 8 및 도 9는 <표 2>에 기재된 결함의 유형 중 '태스크 실행 중단'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다.8 and 9 are diagrams for describing a method of generating a defect scenario of 'task execution interruption' among the types of defects described in Table 2;

도 8을 참조하면, '태스크 실행 중단'의 결함 시나리오는, 입력창(400)의 테스트 실행 조건 입력부(410)와 결함 유도 방법 입력부(430)를 통해 제공되는 정보들 중에서 사용자가 선택한 정보들을 결합하여 생성될 수 있다. Referring to FIG. 8, the defect scenario of 'stopping task execution' may combine information selected by a user from among information provided through the test execution condition input unit 410 and the defect induction method input unit 430 of the input window 400. Can be generated.

입력창(400)의 테스트 실행 조건 입력부(410)와 결함 유도 방법 입력부(430) 각각에 포함된 정보는, 결함을 주입할 대상인 전자제어장치(50)의 설정정보(100)로부터 구성될 수 있다. 전자제어장치(50)의 설정정보(100)에 따라 테스트 실행 조건 입력부(410)와 결함 유도 방법 입력부(430) 각각에 포함된 정보는 결정된다. 전자제어장치(50)별로 설정정보(100)에 차이가 있으며, 설정정보(100)의 차이에 의해서 테스트 실행 조건 입력부(410)와 결함 유도 방법 입력부(430) 각각에 포함된 정보는 달라진다.Information included in each of the test execution condition input unit 410 and the defect induction method input unit 430 of the input window 400 may be configured from the setting information 100 of the electronic control apparatus 50 to be injected with a defect. . Information included in each of the test execution condition input unit 410 and the defect induction method input unit 430 is determined according to the setting information 100 of the electronic controller 50. There is a difference in the setting information 100 for each of the electronic controllers 50, and the information included in each of the test execution condition input unit 410 and the defect induction method input unit 430 varies according to the difference in the setting information 100.

예를 들어, 도 8에 도시된 바와 같이, 테스트 실행 조건 입력부(410)에서 사용자가 'Task_A'라는 태스크를 선택하며, '10'라는 태스크 실행 횟수를 지정하며, '1000'이라는 결함 발생 시간(또는, 대기시간)을 지정하고, 결함 유도 방법 입력부(430)에서 사용자가 'Instruction Pointer 조작'이라는 Fault 유도 방법을 선택하며, 'Task_A'라는 실행 중단의 대상 태스크를 선택하며, 'R.S IP'라는 레지스터 이름을 기재하며, 'Task_B_function'이라는 대체 함수를 선택한 후 확인을 누르면, 위에서 선택 및 지정된 정보들이 결합된 '태스크 실행 중단'의 결함 시나리오를 포함하는 결함 정보(500)가 자동으로 생성된다. 여기서, 대기시간은, Task_A가 10회 실행한 시점에 바로 결함을 주입하지 않고 1000ms를 기다렸다가 주입한다는 의미이다.For example, as illustrated in FIG. 8, in the test execution condition input unit 410, a user selects a task named 'Task_A', specifies a task execution number of '10', and a defect occurrence time of '1000' ( Or a waiting time), the user selects a fault induction method called 'Instruction Pointer operation' in the fault induction method input unit 430, selects a target task for stopping execution of 'Task_A', Entering a register name, selecting an alternative function called 'Task_B_function' and pressing OK, automatically generates fault information 500 including a fault scenario of 'Task Execution' combined with the information selected and specified above. Here, the waiting time means that the task waits 1000 ms without injecting a defect immediately after Task_A executes ten times.

생성된 결함 정보(500)가 전자제어장치(50)에 주입되면, 도 9의 붉은색 박스와 같이, TASK_A_function 주소(현재 실행중인 위치)를 TASK_B_function 주소로 대체하여 TASK_A이름으로 TASK_B 기능이 수행됨을 태스크 변화 그래프를 통해 확인할 수 있다. 참고로, 파란색 박스는 전자제어장치(50)의 각 태스크들이 정상적으로 동작하고 있음을 보여주고, 붉은색 실선은 결함이 시작된 시점을 의미한다.When the generated defect information 500 is injected into the electronic controller 50, as shown in the red box of FIG. 9, the TASK_B function is performed under the TASK_A name by replacing the TASK_A_function address (currently executed position) with the TASK_B_function address. This can be seen in the change graph. For reference, the blue box shows that each task of the electronic controller 50 is operating normally, and the solid red line indicates the time point at which the defect is started.

도 10 및 도 11은 <표 2>에 기재된 결함의 유형 중 '스케줄러에 의한 태스크 재실행 방지'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다.10 and 11 are diagrams for describing a method of generating a defect scenario of 'preventing task rerun by a scheduler' among the types of defects described in <Table 2>.

도 10에 도시된 바와 같이, 테스트 실행 조건 입력부(410)에서 사용자가 'Task_A'라는 태스크를 선택하며, '10'라는 태스크 실행 횟수를 지정하며, '1000'이라는 결함 발생 시간(또는, 대기시간)을 지정하고, 결함 유도 방법 입력부(430)에서 사용자가 '재실행정보 조작'이라는 Fault 유도 방법을 선택하며, 'Task_C'라는 재실행 방지 대상 태스크를 선택한 후 확인을 누르면, 위에서 선택 및 지정된 정보들이 결합된 '스케줄러에 의한 태스크 재실행 방지'의 결함 시나리오를 포함하는 결함 정보가 자동으로 생성된다. 여기서, 대기시간은, Task_A가 10회 실행한 시점에 바로 결함을 주입하지 않고 1000ms를 기다렸다가 주입한다는 의미이다.As shown in FIG. 10, in the test execution condition input unit 410, a user selects a task called 'Task_A', specifies a task execution number of '10', and a defect occurrence time (or waiting time) of '1000'. ), The fault induction method input unit 430, the user selects a fault induction method of 'manipulation of rerun information', select the task to be prevented to run again 'Task_C' and press OK, the selected and specified information is combined Fault information is automatically generated, including the Fault Scenario of the 'Prevent Task Replay by Scheduler'. Here, the waiting time means that the task waits 1000 ms without injecting a defect immediately after Task_A executes ten times.

생성된 결함 정보가 전자제어장치(50)에 주입되면, 도 11의 붉은색 박스와 같이, Task_C가 킬(Kill)되었음을 태스크 정보창과 태스크 변화 그래프를 통해 확인할 수 있다. 참고로, 파란색 박스는 전자제어장치(50)의 각 태스크들이 정상적으로 동작하고 있음을 보여주고, 붉은색 실선은 결함이 시작된 시점을 의미한다.When the generated defect information is injected into the electronic controller 50, it can be confirmed through the task information window and the task change graph that Task_C is killed, as shown in the red box of FIG. 11. For reference, the blue box shows that each task of the electronic controller 50 is operating normally, and the solid red line indicates the time point at which the defect is started.

도 12 및 도 13은 <표 2>에 기재된 결함의 유형 중 '알람(Alarm) 발생 방해를 통한 태스크 재실행 방지'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다.12 and 13 are diagrams for describing a method of generating a defect scenario of 'preventing task rerun by preventing alarm generation' among the types of defects described in Table 2. FIG.

도 12에 도시된 바와 같이, 테스트 실행 조건 입력부(410)에서 사용자가 'Task_E'라는 태스크를 선택하며, '10'라는 태스크 실행 횟수를 지정하며, '1000'이라는 결함 발생 시간(또는, 대기시간)을 지정하고, 결함 유도 방법 입력부(430)에서 사용자가 '알람 주기를 조작'이라는 Fault 유도 방법을 선택하며, 라는 알람을 실행시키는 태스크 E가 동작되지 않도록 하는 'ALARM_E'를 선택한 후 확인을 누르면, 위에서 선택 및 지정된 정보들이 결합된 '알람(Alarm) 발생 방해를 통한 태스크 재실행 방지'의 결함 시나리오를 포함하는 결함 정보가 자동으로 생성된다. 여기서, 대기시간은, Task_A가 10회 실행한 시점에 바로 결함을 주입하지 않고 1000ms를 기다렸다가 주입한다는 의미이다.As shown in FIG. 12, in the test execution condition input unit 410, a user selects a task named 'Task_E', specifies a task execution number of '10', and a defect occurrence time (or waiting time) of '1000'. ), The fault induction method input unit 430, the user selects a fault induction method of 'manipulate the alarm cycle', select 'ALARM_E' to disable the task E that triggers the alarm and press OK , Defect information including a defect scenario of 'preventing task replay through interruption of alarm generation' combined with the information selected and specified above is automatically generated. Here, the waiting time means that the task waits 1000 ms without injecting a defect immediately after Task_A executes ten times.

생성된 결함 정보가 전자제어장치(50)에 주입되면, 도 13의 붉은색 박스와 같이, Task_E의 알람이 한 번 실행되고 더 이상 실행되지 않음을 태스크 변화 그래프를 통해 확인할 수 있다. 참고로, 파란색 박스는 전자제어장치(50)의 각 태스크들이 정상적으로 동작하고 있음을 보여주고, 붉은색 실선은 결함이 시작된 시점을 의미한다.When the generated defect information is injected into the electronic control device 50, as shown in the red box of FIG. 13, it can be confirmed through the task change graph that the alarm of Task_E is executed once and is no longer executed. For reference, the blue box shows that each task of the electronic controller 50 is operating normally, and the solid red line indicates the time point at which the defect is started.

도 14 및 도 15는 <표 2>에 기재된 결함의 유형 중 '이벤트 대기 후 Task 재실행 방지'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다.14 and 15 are diagrams for describing a method of generating a defect scenario of 'preventing task re-execution after waiting for an event' among the types of defects described in <Table 2>.

도 14에 도시된 바와 같이, 테스트 실행 조건 입력부(410)에서 사용자가 'Task_A'라는 태스크를 선택하며, '20'라는 태스크 실행 횟수를 지정하며, '1000'이라는 결함 발생 시간(또는, 대기시간)을 지정하고, 결함 유도 방법 입력부(430)에서 사용자가 '대기 Event Mask 조작'이라는 Fault 유도 방법을 선택하며, 'Task_D_task_evts (0x40000128)'라는 이벤트를 선택한 후 확인을 누르면, 위에서 선택 및 지정된 정보들이 결합된 '이벤트 대기 후 Task 재실행 방지'의 결함 시나리오를 포함하는 결함 정보가 자동으로 생성된다. 여기서, 대기시간은, Task_A가 20회 실행한 시점에 바로 결함을 주입하지 않고 1000ms를 기다렸다가 주입한다는 의미이다.As shown in FIG. 14, in the test execution condition input unit 410, a user selects a task named 'Task_A', specifies a task execution number of '20', and a defect occurrence time (or waiting time) of '1000'. ), The user selects a fault induction method called 'waiting event mask manipulation' in the fault induction method input unit 430, and selects an event called 'Task_D_task_evts (0x40000128)' and presses the information selected and specified above. Defect information is automatically generated, including the combined fault scenarios of Combined 'Prevent Task Restart After Waiting'. Here, the waiting time means that the task waits 1000 ms without injecting a defect immediately after Task_A executes 20 times.

생성된 결함 정보가 전자제어장치(50)에 주입되면, 도 15의 붉은색 박스와 같이, Task_E가 킬(Kill)되었음을 태스크 변화 그래프를 통해 확인할 수 있다. 참고로, 파란색 박스는 전자제어장치(50)의 각 태스크들이 정상적으로 동작하고 있음을 보여주고, 붉은색 실선은 결함이 시작된 시점을 의미한다.When the generated defect information is injected into the electronic controller 50, it can be confirmed through the task change graph that Task_E is killed, as shown in the red box of FIG. 15. For reference, the blue box shows that each task of the electronic controller 50 is operating normally, and the solid red line indicates the time point at which the defect is started.

도 16은 <표 2>에 기재된 결함의 유형 중 '리소스 대기 중 Deadlock 유도로 Task 재실행 방지'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다.FIG. 16 is a diagram for describing a method of generating a defect scenario of preventing a task re-execution by inducing deadlock while waiting for resources among the types of defects described in Table 2. FIG.

도 16에 도시된 바와 같이, 테스트 실행 조건 입력부(410)에서 사용자가 'Task_A'라는 태스크를 선택하며, '10'라는 태스크 실행 횟수를 지정하며, '1000'이라는 결함 발생 시간(또는, 대기시간)을 지정하고, 결함 유도 방법 입력부(430)에서 사용자가 '리소스 대기 중 Deadlock 유도'라는 Fault 유도 방법을 선택하며, 'RES_DATA_1'이라는 이벤트를 선택한 후 확인을 누르면, 위에서 선택 및 지정된 정보들이 결합된 '리소스 대기 중 Deadlock 유도로 Task 재실행 방지'의 결함 시나리오를 포함하는 결함 정보가 자동으로 생성된다. 여기서, 대기시간은, Task_A가 10회 실행한 시점에 바로 결함을 주입하지 않고 1000ms를 기다렸다가 주입한다는 의미이다.As shown in FIG. 16, in the test execution condition input unit 410, a user selects a task called 'Task_A', specifies a task execution number of '10', and a defect occurrence time (or waiting time) of '1000'. ), The user selects a fault induction method called 'Derivation of deadlock while waiting for resources' at the fault induction method input unit 430, selects an event called 'RES_DATA_1' and presses OK, and the information selected and specified above is combined. Defect information is automatically generated, including the defect scenario of 'Preventing task rerun by inducing deadlock while waiting for resources'. Here, the waiting time means that the task waits 1000 ms without injecting a defect immediately after Task_A executes ten times.

도 17 및 도 18은 <표 2>에 기재된 결함의 유형 중 'Stack overflow 발생 유도하여 Task 재실행 방지'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다.17 and 18 are diagrams for describing a method of generating a defect scenario of 'avoid task re-execution by inducing a stack overflow' among the types of defects described in <Table 2>.

도 17에 도시된 바와 같이, 테스트 실행 조건 입력부(410)에서 사용자가 'Task_A'라는 태스크를 선택하며, '10'라는 태스크 실행 횟수를 지정하며, '1000'이라는 결함 발생 시간(또는, 대기시간)을 지정하고, 결함 유도 방법 입력부(430)에서 사용자가 'Stack Pointer에 Max값 할당'이라는 Fault 유도 방법을 선택한 후 확인을 누르면, 위에서 선택 및 지정된 정보들이 결합된 'Stack overflow 발생 유도하여 Task 재실행 방지'의 결함 시나리오를 포함하는 결함 정보가 자동으로 생성된다. 여기서, 대기시간은, Task_A가 10회 실행한 시점에 바로 결함을 주입하지 않고 1000ms를 기다렸다가 주입한다는 의미이다.As shown in FIG. 17, in the test execution condition input unit 410, a user selects a task named 'Task_A', specifies a task execution number of '10', and a defect occurrence time (or waiting time) of '1000'. ), And in the fault induction method input unit 430, when the user selects a fault induction method called 'Assign Max value to the stack pointer' and presses OK, the user selects and executes a stack overflow in which the information selected and specified above is combined to rerun the task. Defect information is automatically generated, including fault scenarios of 'prevent'. Here, the waiting time means that the task waits 1000 ms without injecting a defect immediately after Task_A executes ten times.

생성된 결함 정보가 전자제어장치(50)에 주입되면, 도 18의 붉은색 박스와 같이, Segmentation fault 오류가 발생하고 시스템 전체가 킬(Kill)되었음을 태스크 변화 그래프를 통해 확인할 수 있다. 참고로, 파란색 박스는 전자제어장치(50)의 각 태스크들이 정상적으로 동작하고 있음을 보여주고, 붉은색 실선은 결함이 시작된 시점을 의미한다.When the generated defect information is injected into the electronic control device 50, as shown in the red box of FIG. 18, it can be confirmed through a task change graph that a segmentation fault error occurs and the entire system is killed. For reference, the blue box shows that each task of the electronic controller 50 is operating normally, and the solid red line indicates the time point at which the defect is started.

도 19 및 도 20은 <표 2>에 기재된 결함의 유형 중 'Task overrun(다른 Task omission, delay 유발)'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다.19 and 20 are diagrams for describing a method of generating a defect scenario of 'Task overrun (other task omission, delay initiation)' among the types of defects described in <Table 2>.

도 19에 도시된 바와 같이, 테스트 실행 조건 입력부(410)에서 사용자가 'Task_A'라는 태스크를 선택하며, '10'라는 태스크 실행 횟수를 지정하며, '1000'이라는 결함 발생 시간(또는, 대기시간)을 지정하고, 결함 유도 방법 입력부(430)에서 사용자가 '실행중인 Task의 함수 교체'라는 Fault 유도 방법을 선택하며, 'Task_A'를 태스크로 선택하며, 'Task_F_function (0x000058FE)'라는 대체할 함수를 선택한 후 확인을 누르면, 위에서 선택 및 지정된 정보들이 결합된 'Task overrun'의 결함 시나리오를 포함하는 결함 정보가 자동으로 생성된다. 여기서, 대기시간은, Task_A가 10회 실행한 시점에 바로 결함을 주입하지 않고 1000ms를 기다렸다가 주입한다는 의미이다.As shown in FIG. 19, in the test execution condition input unit 410, a user selects a task named 'Task_A', specifies a task execution number of '10', and a defect occurrence time (or waiting time) of '1000'. ), The fault induction method input unit 430, the user selects a fault induction method called 'replace function of a running task', selects 'Task_A' as a task, and replaces 'Task_F_function (0x000058FE)' If you select and press OK, defect information including the fault scenario of 'Task overrun' combined with the information selected and specified above is automatically generated. Here, the waiting time means that the task waits 1000 ms without injecting a defect immediately after Task_A executes ten times.

생성된 결함 정보가 전자제어장치(50)에 주입되면, 도 20의 붉은색 박스와 같이, Task_A가 실행될 부분에서 Task_F의 함수를 실행되면서 Task_A 의 실행부분이 길어지는 '태스크 오버런'이 발생하였음을 태스크 변화 그래프를 통해 확인할 수 있다. 참고로, 파란색 박스는 전자제어장치(50)의 각 태스크들이 정상적으로 동작하고 있음을 보여주고, 붉은색 실선은 다른 태스크의 함수 교체가 시작된 시점을 의미한다.When the generated defect information is injected into the electronic control device 50, as shown in the red box of FIG. 20, 'task overrun' occurs in which the execution part of Task_A is long while executing a function of Task_F in the part where Task_A is to be executed. This can be checked through the task change graph. For reference, the blue box shows that each task of the electronic controller 50 is operating normally, and the red solid line indicates a time point at which a function replacement of another task is started.

도 21 및 도 22는 <표 2>에 기재된 결함의 유형 중 '변수 값의 오염'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다.21 and 22 are diagrams for explaining a method of generating a defect scenario of 'contamination of variable values' among the types of defects described in Table 2. FIG.

도 21에 도시된 바와 같이, 테스트 실행 조건 입력부(410)에서 사용자가 'Task_A'라는 태스크를 선택하며, '10'라는 태스크 실행 횟수를 지정하며, '1000'이라는 결함 발생 시간(또는, 대기시간)을 지정하고, 결함 유도 방법 입력부(430)에서 사용자가 '메모리 오염'이라는 Fault 유도 방법을 선택하며, 메모리 오염 입력창(450)을 통해 특정 변수값을 변경한 후 확인을 누르면, 위에서 선택 및 지정된 정보들이 결합된 '변수 값의 오염'의 결함 시나리오를 포함하는 결함 정보가 자동으로 생성된다. 여기서, 대기시간은, Task_A가 10회 실행한 시점에 바로 결함을 주입하지 않고 1000ms를 기다렸다가 주입한다는 의미이다.As shown in FIG. 21, in the test execution condition input unit 410, a user selects a task named 'Task_A', specifies a task execution number of '10', and a defect occurrence time (or waiting time) of '1000'. ), The fault induction method input unit 430, the user selects a fault induction method called 'memory contamination', and after pressing a certain variable value through the memory pollution input window 450, the selection and Defect information is automatically generated, including a fault scenario of 'contamination of variable values' in which the specified information is combined. Here, the waiting time means that the task waits 1000 ms without injecting a defect immediately after Task_A executes ten times.

생성된 결함 정보가 전자제어장치(50)에 주입되면, 도 22의 파란색 타원 부분과 같이, 변수값 변경에 따라 변수값 변화 그래프의 모양이 달라짐을 확인할 수 있다. 참고로, 붉은색 실선은 결함이 시작된 시점을 의미한다.When the generated defect information is injected into the electronic control device 50, it can be seen that the shape of the variable value change graph changes according to the variable value change, as shown in the blue ellipse portion of FIG. For reference, the solid red line indicates the time when the defect is started.

도 23은 <표 2>에 기재된 결함의 유형 중 '코드 변이'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다.FIG. 23 is a diagram for describing a method of generating a defect scenario of 'code variation' among the types of defects described in Table 2. FIG.

도 23에 도시된 바와 같이, 테스트 실행 조건 입력부(410)에서 사용자가 'Task_A'라는 태스크를 선택하며, '10'라는 태스크 실행 횟수를 지정하며, '1000'이라는 결함 발생 시간(또는, 대기시간)을 지정하고, 결함 유도 방법 입력부(430)에서 사용자가 '메모리 오염'이라는 Fault 유도 방법을 선택하며, 메모리 오염 입력창(450)을 통해 'Task_A_function'이라는 이름, '0x00005742'라는 주소, '3'이라는 오프셋, '184'라는 크기를 지정한 후 확인을 누르면, 위에서 선택 및 지정된 정보들이 결합된 '코드 변이'의 결함 시나리오를 포함하는 결함 정보가 자동으로 생성된다. 여기서, 대기시간은, Task_A가 10회 실행한 시점에 바로 결함을 주입하지 않고 1000ms를 기다렸다가 주입한다는 의미이다.As shown in FIG. 23, in the test execution condition input unit 410, a user selects a task named 'Task_A', specifies a task execution count of '10', and a defect occurrence time (or a waiting time of '1000'). ), The fault induction method input unit 430, the user selects a fault induction method called 'memory contamination', through the memory pollution input window 450, the name 'Task_A_function', '0x00005742' address, '3 Pressing OK after specifying an offset of '184' and a size of '184' automatically generates defect information including a defect scenario of 'code variation' combined with the information selected and specified above. Here, the waiting time means that the task waits 1000 ms without injecting a defect immediately after Task_A executes ten times.

도 24 및 도 25는 <표 2>에 기재된 결함의 유형 중 'CPU 레지스트 값 오염'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다.24 and 25 are diagrams for explaining a method of generating a defect scenario of 'CPU resist value contamination' among the types of defects described in Table 2. FIG.

도 24에 도시된 바와 같이, 테스트 실행 조건 입력부(410)에서 사용자가 'Task_A'라는 태스크를 선택하며, '10'라는 태스크 실행 횟수를 지정하며, '1000'이라는 결함 발생 시간(또는, 대기시간)을 지정하고, 결함 유도 방법 입력부(430)에서 사용자가 'CPU 레지스터 값 오염'이라는 Fault 유도 방법을 선택하며, 'R.S R1'이라는 레지스터 이름(스택포인터)을 지정하며, '4000000'이라는 설정 값(16진수)을 지정한 후 확인을 누르면, 위에서 선택 및 지정된 정보들이 결합된 'CPU 레지스트 값 오염'의 결함 시나리오를 포함하는 결함 정보가 자동으로 생성된다. 여기서, 대기시간은, Task_A가 10회 실행한 시점에 바로 결함을 주입하지 않고 1000ms를 기다렸다가 주입한다는 의미이다.As shown in FIG. 24, in the test execution condition input unit 410, a user selects a task named 'Task_A', specifies a task execution number of '10', and a defect occurrence time (or waiting time) of '1000'. ), The user selects a fault induction method of 'CPU register value contamination' in the fault induction method input unit 430, specifies a register name (stack pointer) named 'RS R1', and a setting value of '4000000'. After specifying (Hexadecimal) and pressing OK, defect information is automatically generated including a defect scenario of 'CPU resist value contamination' combined with the above selected and specified information. Here, the waiting time means that the task waits 1000 ms without injecting a defect immediately after Task_A executes ten times.

생성된 결함 정보가 전자제어장치(50)에 주입되면, 도 25와 같이, 시스템 다운이 발생하였음을 태스크 변화 그래프를 통해 확인할 수 있다. 참고로, 파란색 박스는 전자제어장치(50)의 각 태스크들이 정상적으로 동작하고 있음을 보여주고, 붉은색 실선은 결함이 시작된 시점을 의미한다.When the generated defect information is injected into the electronic control device 50, it can be confirmed through the task change graph that a system down has occurred, as shown in FIG. For reference, the blue box shows that each task of the electronic controller 50 is operating normally, and the solid red line indicates the time point at which the defect is started.

도 26 및 도 27은 <표 2>에 기재된 결함의 유형 중 'Bit Flip'의 결함 시나리오를 생성하는 방법을 설명하기 위한 도면이다. 26 and 27 are diagrams for describing a method of generating a defect scenario of 'Bit Flip' among the types of defects described in <Table 2>.

여기서, 'Bit Flip'이란 HW의 충격에 의해서 특정 memory의 data(bit)가 0에서 1 또는 1에서 0으로 변경되는 것을 의미한다.Here, 'Bit Flip' means that the data (bit) of a specific memory is changed from 0 to 1 or 1 to 0 by the impact of HW.

도 26에 도시된 바와 같이, 테스트 실행 조건 입력부(410)에서 사용자가 'Task_A'라는 태스크를 선택하며, '10'라는 태스크 실행 횟수를 지정하며, '1000'이라는 결함 발생 시간(또는, 대기시간)을 지정하고, 결함 유도 방법 입력부(430)에서 사용자가 '메모리 오염'이라는 Fault 유도 방법을 선택하며, 메모리 오염 입력창(450)을 통해 'value'라는 이름, '0x40000114'라는 주소, '3'이라는 오프셋, '4'라는 크기를 지정하고, 변경할 값 입력창(470)을 통해 8bit 중 바꾸고 싶은 bit를 선택한 후에 확인을 누르면, 위에서 선택 및 지정된 정보들이 결합된 'Bit Flip'의 결함 시나리오를 포함하는 결함 정보가 자동으로 생성된다. 여기서, 대기시간은, Task_A가 10회 실행한 시점에 바로 결함을 주입하지 않고 1000ms를 기다렸다가 주입한다는 의미이다.As shown in FIG. 26, in the test execution condition input unit 410, a user selects a task named 'Task_A', specifies a task execution number of '10', and a defect occurrence time (or waiting time) of '1000'. ), The user selects a fault induction method called 'memory contamination' in the fault induction method input unit 430, and names 'value', '0x40000114', and '3' through the memory pollution input window 450. After selecting 'offset' and '4' size and selecting the bit to change among 8 bits through the value input window 470 to change, press 'OK', the above 'Bit Flip' combination of selected and specified information is combined. Including defect information is automatically generated. Here, the waiting time means that the task waits 1000 ms without injecting a defect immediately after Task_A executes ten times.

생성된 결함 정보가 전자제어장치(50)에 주입되면, 도 27과 같이, 변수값이 변경되었음을 변수값 변화 그래프를 통해 확인할 수 있다. 참고로, 파란색 타원은 비트값 변경에 따른 그래프의 모양을 보여주고, 붉은색 실선은 결함이 시작된 시점을 의미한다.When the generated defect information is injected into the electronic control device 50, as shown in FIG. 27, it can be confirmed through the variable value change graph that the variable value has been changed. For reference, the blue ellipse shows the shape of the graph according to the change of the bit value, and the solid red line indicates the time when the defect starts.

도 3에 도시된 본 발명의 실시 형태에 따른 결함 주입 테스트 방법에서 전자제어장치의 동작을 모니터링하는 단계(s350)는, 도 28에 도시된 바와 같이, 모니터링부(600)뿐만 아니라 프로젝트 관리부(2810), 테스트 시나리오 관리부(2830) 및 태스크/변수 상태정보 조회부(2850)를 디스플레이할 수 있다. In step s350 of monitoring the operation of the electronic control apparatus in the defect injection test method according to the embodiment of the present invention illustrated in FIG. 3, the project management unit 2810 as well as the monitoring unit 600 is illustrated in FIG. 28. ), The test scenario manager 2830 and the task / variable status information inquiry unit 2850 may be displayed.

테스트 시나리오 관리부(2830)는 전자제어장치(50)에 주입할 수 있는 다수의 시나리오를 디스플레이한다. 여기서, 다수의 시나리오는 사용자의 선택에 따라 전부 또는 일부의 시나리오들 일괄적으로 실행될 수도 있다.The test scenario manager 2830 displays a plurality of scenarios that can be injected into the electronic controller 50. Here, the plurality of scenarios may be executed in batches of all or some scenarios according to the user's selection.

태스크/변수 상태정보 조회부(2850)는 전자제어장치(50)의 태스크별/변수별 정보를 행렬로 표시하여 디스플레이 한다. 여기서, 태스크의 상태가 변경되면 구별되는 색상으로 변경된 태스크가 표시될 수도 있다.The task / variable status information inquiry unit 2850 displays and displays task-specific / variable information of the electronic controller 50 in a matrix. Here, when the state of the task changes, the changed task may be displayed in a distinct color.

도 3에 도시된 본 발명의 실시 형태에 따른 결함 주입 테스트 방법에서 전자제어장치의 동작을 모니터링하는 단계(s350)는, 메모리 폴링에 의한 모니터링 오차를 보완할 수 있다. 도 29를 참조하여 구체적으로 설명한다.In the defect injection test method according to the embodiment of the present invention illustrated in FIG. 3, in operation S350, the monitoring error due to memory polling may be compensated for. This will be described in detail with reference to FIG. 29.

도 29는 메모리 폴링에 의한 모니터링 오차를 보완하는 기능을 설명하기 위한 도면이다. 여기서, 도 29의 (a)는 메모리 폴링 방법에 의한 모니터링 오차가 발생되는 이유를 설명하기 위한 것이고, 도 29의 (b)는 거의 실시간으로 태스크의 상태 변화를 모니터링할 수 있는 방법을 설명하기 위한 것이다.29 is a diagram for describing a function of compensating for a monitoring error due to memory polling. Here, FIG. 29A illustrates a reason why a monitoring error occurs due to a memory polling method, and FIG. 29B illustrates a method of monitoring a state change of a task in near real time. will be.

도 29의 (a)를 참조하면, 모니터링 주기가 커질수록 태스크의 실시간 상태 변화와 태스크 상태 변화 그래프를 통해 모니터링되는 태스크의 상태 변화에 오차가 커진다. 이러한 문제를 해결하기 위해서, 도 29의 (b)에 도시된 바와 같이, 전자제어장치의 태스크의 시작과 종료 정보를 추출하고, 추출된 태스크의 시작과 종료 정보를 이용하여 모니터링 주기를 보정함으로써, 모니터링 주기가 태스크의 실시간 상태 변화에 따라가도록 보완한다. 여기서, 전자제어장치의 태스크의 시작과 종료 정보는 PreTaskHook과 PostTaskHook을 활용하여 추출할 수 있고, 원형 큐를 이용하여 일정 기간동안 누적된 모니터링 정보들을 한꺼번에 수집 및 복원하여 결함 주입 테스트 장치의 모니터링 주기와 상관 없이 태스크의 실시간 상태 변화를 누락하지 않고 정확히 표현할 수 있다.Referring to (a) of FIG. 29, as the monitoring period increases, an error occurs in a state change of a task monitored through a real-time state change of the task and a task state change graph. In order to solve this problem, as shown in (b) of FIG. 29, by extracting the start and end information of the task of the electronic control device, and correcting the monitoring period by using the extracted start and end information, Complement the monitoring cycle to keep up with the real-time state of the task. Here, the start and end information of the task of the electronic control device can be extracted by using PreTaskHook and PostTaskHook, and the monitoring cycle of the defect injection test device by collecting and restoring the monitoring information accumulated for a certain period at a time by using the circular queue. Regardless, the real-time state changes of tasks can be accurately represented without missing them.

도 1 내지 도 29에 도시된 본 발명의 실시 형태에 따른 결함 주입 테스트 방법과 장치는, 전자제어장치의 실행환경을 분석하고 테스트 시나리오 설계에 적용될 수 있을 뿐만 아니라, 타겟으로 하는 실제 ECU와의 단품 테스트가 가능하며, 가상의 ECU와의 힐(HIL) 테스트도 가능하며, 실차 테스트도 가능하다.The defect injection test method and apparatus according to the embodiment of the present invention shown in Figs. 1 to 29 can be applied not only to analyzing the execution environment of the electronic control device and to designing the test scenario, but also to test the unit separately with the actual ECU targeted. It is possible to test the heel (HIL) with the virtual ECU, and also to test the vehicle.

본 발명의 실시 형태에 따른 결함 주입 테스트 방법은, 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독가능 기록매체를 통하여 실시될 수 있다. 상기 컴퓨터 판독가능 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 기록매체는 실시 형태를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크와 같은 자기-광 매체 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.The defect injection test method according to an embodiment of the present invention may be implemented through a computer readable recording medium including program instructions for performing a computer-implemented operation. The computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination. The recording medium may be one specially designed and configured for the embodiment or be known and available to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical recording media such as CD-ROMs, DVDs, magnetic-optical media such as floppy disks, and ROM, RAM, flash memory, and the like. Hardware devices specifically configured to store and execute program instructions are included. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.

이상 첨부된 도면을 참조하여 본 발명의 실시 형태를 설명하였으나 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 실시 형태의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 실시 형태에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.The embodiments of the present invention have been described above with reference to the accompanying drawings, which are merely exemplary and are not intended to limit the present invention, and those skilled in the art do not depart from the essential characteristics of the present embodiment. It will be appreciated that various modifications and applications which are not illustrated above in the scope are possible. For example, each component specifically shown in embodiment can be modified and implemented. And differences relating to such modifications and applications will have to be construed as being included in the scope of the invention defined in the appended claims.

10: 결함 주입 테스트 장치
30: 인터페이스 장치
50: 전자제어장치
10: Fault injection test device
30: interface device
50: electronic controller

Claims (14)

결합 주입 테스트 장치에서의 결함 주입 방법에 있어서,
테스트 시나리오 관리 모듈이 전자제어장치의 결함 시나리오를 포함하는 결함 정보를 생성하는, 결함 정보 생성 단계;
생성된 상기 결함 정보를 테스트 실행 모듈이 상기 전자제어장치에 주입하는, 결함 정보 주입 단계; 및
태스크 모니터링 모듈이 상기 결함 정보가 주입된 상기 전자제어장치로부터 태스크 실행 정보를 수신받아 상기 전자제어장치의 동작을 모니터링하고, 변수값 모니터링 모듈이 상기 결함 정보가 주입된 상기 전자제어장치로부터 변수값 정보를 수신받아 상기 전자제어장치의 동작을 모니터링하는, 모니터링 단계;를 포함하고,
상기 모니터링 단계는,
상기 전자제어장치의 상기 태스크 실행 정보에 기초한 태스크 상태 변화 그래프와 상기 전자제어장치의 상기 변수값 정보에 기초한 변수값 상태 변화 그래프를 디스플레이하고,
상기 변수값 변화 그래프는, 상기 변수값이 미리 설정된 임계치를 초과하는지 여부를 알려주는 알림을 포함하는, 결함 주입 테스트 방법.
In the defect injection method in a combined injection test device,
A defect information generating step of the test scenario management module generating defect information including a defect scenario of the electronic control apparatus;
A defect information injection step of injecting the generated defect information into the electronic control apparatus by a test execution module; And
The task monitoring module receives task execution information from the electronic control apparatus in which the defect information is injected and monitors the operation of the electronic control apparatus, and the variable value monitoring module receives variable value information from the electronic control apparatus in which the defect information is injected. And receiving a monitoring step of monitoring the operation of the electronic control apparatus.
The monitoring step,
Displaying a task state change graph based on the task execution information of the electronic control apparatus and a variable value state change graph based on the variable value information of the electronic control apparatus;
And the variable value change graph comprises a notification indicating whether the variable value exceeds a preset threshold.
제 1 항에 있어서, 상기 결함 정보 생성 단계에서,
상기 결함 시나리오는 상기 전자제어장치의 설정정보와 입력창으로 입력된 사용자 선택정보에 기초하여 생성된, 결함 주입 테스트 방법.
The method of claim 1, wherein in the defect information generating step,
The defect scenario is generated based on the setting information of the electronic control device and the user selection information input to the input window.
제 1 항에 있어서, 상기 결함 정보 생성 단계에서,
상기 결함 시나리오는 상기 전자제어장치의 설정정보에서 발생 가능한 모든 결함들을 조합하여 추출된, 결함 주입 테스트 방법.
The method of claim 1, wherein in the defect information generating step,
The defect scenario is extracted by combining all the defects that can occur in the setting information of the electronic control device.
제 1 항에 있어서, 상기 결함 정보 생성 단계에서,
상기 결함 시나리오는 결함의 발생 시점, 결함의 대상, 결함의 유형 및 결함의 발생 횟수 중 적어도 하나 이상을 포함하는, 결함 주입 테스트 방법.
The method of claim 1, wherein in the defect information generating step,
Wherein the defect scenario comprises at least one of a timing of occurrence of a defect, a target of the defect, a type of defect, and a number of occurrences of the defect.
제 4 항에 있어서, 상기 결함의 유형은,
태스크 실행 중단, 스케줄러에 의한 태스크 재실행 방지, 알람(Alarm) 발생 방해를 통한 태스크 재실행 방지, 이벤트 대기 후 태스크 재실행 방지, 리소스 대기 중 데드락(Deadlock) 유도로 태스크 재실행 방지, 스택 오버플로우(Stack overflow) 발생 유도하여 태스크 재실행 방지, 태스크 오버런(Task overrun), 변수값의 오염, 코드 변이, CPU 레지스터 값 오염, S/W 컴포넌트 오염, 및 비트 플립(Bit Flip) 중 적어도 하나 이상을 포함하는, 결함 주입 테스트 방법.
The method of claim 4, wherein the type of defect is
Stop task execution, prevent task rerun by scheduler, prevent task rerun by interrupting alarm, prevent task rerun after waiting for event, prevent task rerun by inducing deadlock during resource wait, stack overflow Defect injection, including at least one of preventing task rerun by causing occurrence, task overrun, contamination of variable values, code variation, CPU register value contamination, software component contamination, and bit flip Testing method.
삭제delete 제 1 항에 있어서,
상기 태스크 상태 변화 그래프는, 시간에 흐름에 따른 태스크별 상태의 변화, 결함 발생 시점 및 시스템 리셋 시점을 포함하는, 결함 주입 테스트 방법.
The method of claim 1,
The task state change graph includes a task change state over time, a defect occurrence time point, and a system reset time point.
제 1 항에 있어서,
상기 변수값 변화 그래프는, 시간에 흐름에 따른 변수값(들)의 추이, 결함 발생 시점 및 시스템 리셋 시점을 포함하는, 결함 주입 테스트 방법.
The method of claim 1,
The variable value change graph includes a trend of a variable value (s) over time, a defect occurrence time point, and a system reset time point.
삭제delete 제 1 항에 있어서, 상기 모니터링 단계는,
상기 전자제어장치의 태스크의 시작과 종료 정보를 추출하고, 추출된 상기 태스크의 시작과 종료 정보를 기초로 모니터링 주기를 보정하는, 결함 주입 테스트 방법.
The method of claim 1, wherein the monitoring step,
Extracting start and end information of a task of the electronic controller and correcting a monitoring period based on the extracted start and end information of the task.
제 1 항에 있어서,
보고서 생성 모듈이 테스트 결과 보고서를 생성하는, 테스트 결과 보고서 생성 단계;를 더 포함하고,
상기 테스트 결과 보고서는, 상기 태스크 상태 변화와 상기 변수값 추이를 문자로 출력한 부분을 포함하는, 결함 주입 테스트 방법.
The method of claim 1,
The report generation module further includes a test result report generation step of generating a test result report.
The test result report, the defect injection test method comprising a portion that outputs the task state change and the variable value trend in text.
제 1 항 내지 제 5 항, 제 7 항, 제 8 항, 제 10 항, 제 11 항 중 어느 한 항의 결함 주입 테스트 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체.
A computer-readable recording medium having recorded thereon a program for executing the defect injection test method according to any one of claims 1 to 5, 7, 8, 10, and 11.
전자제어장치의 결함 시나리오를 포함하는 결함 정보를 생성하는, 테스트 시나리오 관리 모듈;
생성된 상기 결함 정보를 상기 전자제어장치에 주입시기 위한 테스트를 실행하는, 테스트 실행 모듈;
상기 결함 정보가 주입된 상기 전자제어장치로부터 태스크 실행 정보를 수신받아 상기 전자제어장치 내의 태스크의 상태 변화를 모니터링하는, 태스크 모니터링 모듈; 및
상기 결함 정보가 주입된 상기 전자제어장치로부터 변수값 정보를 수신받아 상기 전자제어장치의 변수값의 변화 추이를 모니터링하는, 변수값 모니터링 모듈;
를 포함하고,
상기 태스크 모니터링 모듈은 상기 전자제어장치의 상기 태스크 실행 정보에 기초한 태스크 상태 변화 그래프를 디스플레이하고,
상기 변수값 모니터링 모듈은 상기 전자제어장치의 상기 변수값 정보에 기초한 변수값 상태 변화 그래프를 디스플레이하고,
상기 변수값 변화 그래프는, 상기 변수값이 미리 설정된 임계치를 초과하는지 여부를 알려주는 알림을 포함하는,
결함 주입 테스트 장치.
A test scenario management module for generating defect information including a defect scenario of the electronic controller;
A test execution module for executing a test for injecting the generated defect information into the electronic control apparatus;
A task monitoring module configured to receive task execution information from the electronic control apparatus in which the defect information is injected, and monitor a state change of a task in the electronic control apparatus; And
A variable value monitoring module configured to receive variable value information from the electronic control device into which the defect information has been injected and monitor a change in the variable value of the electronic control device;
Including,
The task monitoring module displays a task state change graph based on the task execution information of the electronic controller,
The variable value monitoring module displays a variable value state change graph based on the variable value information of the electronic controller,
The variable value graph includes a notification indicating whether the variable value exceeds a preset threshold,
Fault injection test device.
제 13 항에 있어서,
상기 전자제어장치에 결함이 발생하기 전과 발생된 후의 상기 태스크의 상태 변화와 상기 변수값의 추이 변화를 포함하는 테스트 결과 보고서를 생성하는, 보고서 생성 모듈;을 더 포함하는 결함 주입 테스트 장치.
The method of claim 13,
And a report generation module for generating a test result report including a change in state of the task and a change in the value of the variable before and after a fault occurs in the electronic control device.
KR1020170072731A 2017-06-09 2017-06-09 Method and apparatus for fault injection test Active KR102020994B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170072731A KR102020994B1 (en) 2017-06-09 2017-06-09 Method and apparatus for fault injection test

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170072731A KR102020994B1 (en) 2017-06-09 2017-06-09 Method and apparatus for fault injection test

Publications (2)

Publication Number Publication Date
KR20180134677A KR20180134677A (en) 2018-12-19
KR102020994B1 true KR102020994B1 (en) 2019-09-16

Family

ID=65008905

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170072731A Active KR102020994B1 (en) 2017-06-09 2017-06-09 Method and apparatus for fault injection test

Country Status (1)

Country Link
KR (1) KR102020994B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240112059A (en) 2023-01-11 2024-07-18 현대자동차주식회사 Fault injection test mehtod and apparatus and, fault injection method

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102841653B1 (en) * 2019-07-31 2025-08-04 삼성전자주식회사 Electronic device for predicting faulty and method for controlling electronic device thereof
CN112785101A (en) * 2019-11-06 2021-05-11 中国石油化工股份有限公司 Memory, oil refining chemical equipment defect disposal method, device and equipment
CN112214411B (en) * 2020-10-20 2024-05-14 腾讯科技(深圳)有限公司 Disaster recovery system testing method, device, equipment and storage medium
KR20240145752A (en) 2023-03-28 2024-10-07 슈어소프트테크주식회사 Apparatus for fault injection test, method for fault injection test, and computer program
CN118733369B (en) * 2024-06-12 2025-08-05 北京智芯微电子科技有限公司 Fault injection method, device and electronic device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005050329A (en) 2003-07-11 2005-02-24 Yogitech Spa Dependable microcontroller, method for detecting fault in microcontroller, method for designing fault permission system for dependable microcontroller, and computer program product therefor

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100897412B1 (en) * 2006-11-09 2009-05-14 한국전자통신연구원 Automatic software testing system and method using faulted file

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005050329A (en) 2003-07-11 2005-02-24 Yogitech Spa Dependable microcontroller, method for detecting fault in microcontroller, method for designing fault permission system for dependable microcontroller, and computer program product therefor

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
윤경섭 외 2인, "결함 주입 방법을 이용한 하드웨어 검증시스템 구현," 전기전자학회논문지, 제15권 제4호, pp.267-273, 2011.12.
이동우 외 2인, "결함주입기법을 이용한 차량용 고신뢰성 임베디드 시스템의 안전성 검증방안," 정보보호학회지, 제24권 제2호, pp.50-55, 2014.04

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240112059A (en) 2023-01-11 2024-07-18 현대자동차주식회사 Fault injection test mehtod and apparatus and, fault injection method

Also Published As

Publication number Publication date
KR20180134677A (en) 2018-12-19

Similar Documents

Publication Publication Date Title
KR102020994B1 (en) Method and apparatus for fault injection test
US10353763B2 (en) Fault processing method, related apparatus, and computer
US20190205233A1 (en) Fault injection testing apparatus and method
US9483383B2 (en) Injecting faults at select execution points of distributed applications
US7962798B2 (en) Methods, systems and media for software self-healing
US9519495B2 (en) Timed API rules for runtime verification
CN102521098B (en) Processing method and processing device for monitoring dead halt of CPU (Central Processing Unit)
US20170060671A1 (en) Anomaly recovery method for virtual machine in distributed environment
US20070256082A1 (en) Monitoring and controlling applications executing in a computing node
US8756583B2 (en) Thread-specific event management in a non-stop debugging environment
CN105159832A (en) Method, apparatus and system for collecting application exception information in application test
US11055416B2 (en) Detecting vulnerabilities in applications during execution
CN105511937A (en) Batch virtual machine blue screen monitoring method suitable for cloud platform
CN114184885A (en) Fault detection method, device and storage medium
US20110153073A1 (en) Fault tolerance method and apparatus for robot software component
KR102053849B1 (en) Airplane system and control method thereof
CN103995759A (en) High-availability computer system failure handling method and device based on core internal-external synergy
JP2006277115A (en) Abnormality detection program and abnormality detection method
CN111090575B (en) Test method
KR20240112059A (en) Fault injection test mehtod and apparatus and, fault injection method
JP5700532B2 (en) Interface failure processing method, information processing apparatus, and interface failure processing method
KR102471314B1 (en) A System and Method of Health Management for On-the-fly Repairing of Order Violation in Airborne Software
JP2020107206A (en) Microcomputer, debug information output method, and debug system
CN107291591A (en) One kind storage fault repairing method and device
US20250293917A1 (en) Auto-healing control in consideration of silent failures

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7