KR102020994B1 - Method and apparatus for fault injection test - Google Patents
Method and apparatus for fault injection test Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3692—Test 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.
Description
본 발명은 결함 주입 테스트 방법 및 장치에 관한 것으로, 좀 더 상세하게는 전자제어장치에 인위적으로 주입할 결함을 자동으로 생성하고, 결함이 주입된 전자제어장치의 동작을 모니터링할 수 있는 결함 주입 테스트 방법 및 장치에 관한 것이다.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
결함 주입 테스트 장치(10)는 본 발명의 실시 형태에 따른 결함 주입 테스트 방법을 수행한다. 여기서, 결함 주입 테스트 장치(10)는 노트북, 랩탑, 태블릿 및 스마트폰 중 어느 하나에 설치된 프로그램(또는 어플리케이션)일 수도 있고, 결함 주입 테스트 방법만을 수행하는 전용 단말기일 수도 있다.The defect
인터페이스 장치(30)는 전자제어장치(50)를 디버깅하는 디버거(Debugger)일 수 있다. 인터페이스 장치(30)를 통해 전자제어장치(50)의 CPU 레지스터 또는 메모리에 접근할 수 있다. 또한, 태스크(Task) 스케쥴링, 인터럽트(interrupt) 등의 RTOS(Real Time Operating System)의 커널 영역도 접근할 수 있다. 인터페이스 장치(30)를 통해 결함 주입 테스트 장치(10)에서 생성된 인위적인 결함을 전자제어장치(50)로 주입할 수 있다. 인터페이스 장치(30)는 결함 주입 테스트 장치(10)와 유선(예를 들면, USB 케이블) 또는 무선으로 연결될 수 있다. The
또는, 인터페이스 장치(30)는 전자제어장치(50)로 CAN 데이터를 송신하고, 전자제어장치(50)로부터 CAN 데이터를 수신할 수 있는 어댑터(Adapter)일 수도 있다.Alternatively, the
전자제어장치(50)는 차량용 전자제어장치일 수 있다. 인터페이스 장치(30)와 디버깅용 JTAG 포트에 의해 연결될 수 있고, CAN 통신이 가능하도록 유선 또는 무선으로 연결될 수 있다. 여기서, 전자제어장치(50)가 차량용 전자제어장치로 한정되는 것은 아니다. 전자제어장치(50)는 차량 산업뿐만 아니라 다른 산업에서 사용되는 전자제어장치일 수 있다. 예를 들어, 전자제어장치(50)는 전력 시스템에서 사용되는 RTU(Remote Terminal Unit)일 수 있다. 전자제어장치(50)가 다른 산업에서 사용되는 전자제어장치인 경우, 인터페이스 장치(30)와 전자제어장치(50)는 이더넷, USB, 또는 시리얼 통신으로 서로 연결될 수 있다. 본 발명의 실시 형태를 상세히 설명함에 있어서 편의상 전자제어장치(50)가 차량용 전자제어장치인 것으로 가정한다.The
도 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
운영체제(11)는 윈도우(Windows)일 수 있으나, 이에 한정하지 않고 리눅스, 맥, 안드로이드 등 다양한 운영체제일 수 있다.The
테스트 시나리오 관리 모듈(12)는 전자제어장치(50)에 인위적으로 주입될 결함(Fault) 정보를 생성한다. 예를 들어 결함 시나리오를 생성할 수 있다.The test
테스트 실행 모듈(13)은 생성된 결함 정보를 전자제어장치(50)에 주입시키기 위한 테스트를 실행한다. 테스트 실행 모듈(13)은 미리 정해진 시간에 전자제어장치(50)에서 결함이 발생되도록 한다. 예를 들어, 테스트 실행 모듈(13)은 미리 정해진 시간에 전자제어장치(50)의 메모리 값을 변경시키는 제어를 수행하거나 메모리 값 변경을 위한 CAN 신호를 전송하도록 제어한다.The
태스크 모니터링 모듈(14)은 전자제어장치(50) 내에서 동작되는 태스크의 상태 변화를 모니터링한다. 예를 들어, 태스크의 상태 변화를 그래프 또는 목록으로 디스플레이한다.The
변수 모니터링 모듈(15)은 전자제어장치(50)의 변수값의 변화 추이를 모니터링한다. 예를 들어, 변수값의 변화 추이를 그래프 또는 목록으로 디스플레이한다.The
테스트 결과 관리 모듈(16)은 테스트 결과를 저장하거나 분석한다.The test
보고서 생성 모듈(17)은 전자제어장치(50)에 결함이 발생하기 전과 발생된 후의 태스크 상태와 변수값의 추이에 대한 테스트 결과 보고서를 자동으로 생성한다.The
통신 모듈(18)은 테스트 시나리오 관리 모듈(12)에서 생성된 결함 정보를 전자제어장치(50)로 출력하고, 전자제어장치(50)로부터 태스크 실행 정보와 변수값 정보를 수신한다.The
GUI(19)는 테스트 시나리오 관리 모듈(12), 테스트 실행 모듈(13), 태스크 모니터링 모듈(14), 변수 모니터링 모듈(15), 테스트 결과 관리 모듈(16), 보고서 생성 모듈(17) 및 통신 모듈(18)을 사용자가 제어 및 모니터링할 수 있는 인터페이스를 제공한다.
도 2에 도시된 전자제어장치(50)는 운영체제(51)와 다수의 태스크(53)들을 포함한다.The
운영체제(51)는 RTOS(Real Time Operating System)일 수 있다. 여기서, 운영체제(51)가 RTOS로 한정되는 것은 아니다. 본 발명의 실시 형태를 설명함에 있어서 전자제어장치(50)를 차량용 전자제어장치로 예를 든 것이기 때문에, 운영체제(51)를 RTOS로 가정한 것임을 유의해야 한다. 따라서, 운영체제(51)는 전자제어장치(50)에 따라 달라질 수 있다. The
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
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.
여기서, 유의할 점은, 본 발명의 실시 형태에 따른 결함 주입 테스트 방법과 결함 주입 테스트 장치가 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
도 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
결함 정보(500)를 생성하는 단계(s310)는, 결함 주입 대상인 전자제어장치(50)의 설정정보(100)와 입력창(400)으로 입력된 사용자 선택정보에 기초하여 결함 시나리오를 생성하는 단계일 수 있다. 여기서, 결함 정보(500)는 생성된 결함 시나리오를 포함한다. Generating the defect information 500 (s310), generating a defect scenario based on the setting
결함 시나리오는, 결함의 발생 시점, 결함의 대상, 결함의 유형, 및 결함의 발생 횟수 중 적어도 하나 이상을 포함한다. 여기서, 결함 시나리오는 결함의 발생 시점, 결함의 대상, 결함의 유형, 및 결함의 발생 횟수 중 둘 이상을 조합한 것일 수도 있다.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.
Instruction Pointer 조작: 실행중인 Task의 오동작 유도.Forcibly interrupt a running task.
Instruction Pointer operation: Induce malfunction of running task.
Active_count 값을 변경하여 실행중인 Task의 오동작 유도.Interrupt the task from going to standby after scheduling.
Induce malfunction of running task by changing Active_count value.
Alarm주기를 조작하여 실행 방해.Interfere not to execute task that is executed periodically by Alarm.
Interrupt the execution by operating the alarm cycle.
대기 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.
리소스 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.
Stack Pointer에 Max값을 할당하여 전체 시스템 오동작 유도.Cause overflow of the running task by making it full.
Induce overall system malfunction by assigning Max value to Stack Pointer.
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.
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.
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.
레지스터 값을 변경.Change register value to any value.
Change register value.
Event 설정정보 변경, Runable 함수 주소 변경.It classifies S / W components and changes information such as event and runable.
Change event setting information, change runable function address.
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
입력창(400)은 전자제어장치(50)의 설정정보(100)에서 결함 시나리오를 생성하기 위해 필요한 정보들을 사용자에게 보기 쉽게 제공한다. 입력창(400)을 통해 제공되는 정보들을 중 사용자가 원하는 정보를 선택하면, 입력창(400)으로 입력된 사용자 선택정보가 생성되고, 생성된 사용자 선택정보에 결합하여 결함 시나리오가 생성된다.The
한편, 결함 정보(500)를 생성하는 단계(s310)는, 기본 테스트 시나리오를 생성할 수 있다. 여기서, 기본 테스트 시나리오는 전자제어장치(50)의 설정정보(100)에서 발생 가능한 모든 결함(Fault)들을 조합하여 자동으로 추출된 결함 시나리오이다. Meanwhile, in operation S310 of generating the
생성된 결함 정보(500)를 전자제어장치(50)에 주입하는 단계(s330)는, 결함 시나리오에 따라 결함 정보(500)를 전자제어장치(50)로 주입하는 단계이다. 여기서, 결함 정보(500)를 전자제어장치(50)로 주입하는 방법은, 결함 시나리오에 기입된 미리 정해진 시간에 전자제어장치(50)의 메모리 값을 직접 변경하거나 메모리 값 변경 CAN 신호를 전송하는 것에 의할 수 있다. Injecting the generated
전자제어장치(50)의 동작을 모니터링하는 단계(s350)는, 전자제어장치(50)에서 출력되는 태스크 실행 정보와 변수값 정보를 수신하고, 수신된 태스크 실행 정보와 변수값 정보 각각을 모니터링부(600)를 통해 디스플레이하는 단계이다. 여기서, 태스크 실행 정보와 변수값 정보는 그래프 형태로 디스플레이 될 수 있다. 예를 들어, 태스크 실행 정보는 태스크 상태 변화 그래프로 디스플레이되고, 변수값 정보는 변수값 변화 그래프로 디스플레이될 수 있다. In operation S350 of monitoring the operation of the
도 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
도 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
다시, 도 3 및 도 4를 참조하면, 테스트 결과 보고서(800)를 생성하는 단계(s370)는, 전자제어장치(50)에 결함을 주입하기 전과 주입한 후의 정보가 포함된 테스트 결과 보고서(800)를 생성하는 단계이다. 3 and 4, in operation S370 of generating a
도 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
도 7에 도시된 테스트 결과 보고서(800)는, 테스트 제목, 보고서 종류, 시나리오 명, 시나리오 설명, 테스트 시간 검사유형, 테스트 시간 검사대상, 테스트 시간 조건, 테스트 대상, 테스트 시작시간, 테스트 종료시간, 테스트 킬 시도 시간, ECU 리셋 추정 시간, 테스트 결과 개요, 조치 결과, 변수 목록, 변수 모니터링, 태스크 상태 변화 그래프 및 변수값 변화 그래프를 더 포함할 수 있다. 이러한 정보들도 사용자가 직접 작성하는 것이 아니라 자동으로 출력된다.The
도 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
도 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
입력창(400)의 테스트 실행 조건 입력부(410)와 결함 유도 방법 입력부(430) 각각에 포함된 정보는, 결함을 주입할 대상인 전자제어장치(50)의 설정정보(100)로부터 구성될 수 있다. 전자제어장치(50)의 설정정보(100)에 따라 테스트 실행 조건 입력부(410)와 결함 유도 방법 입력부(430) 각각에 포함된 정보는 결정된다. 전자제어장치(50)별로 설정정보(100)에 차이가 있으며, 설정정보(100)의 차이에 의해서 테스트 실행 조건 입력부(410)와 결함 유도 방법 입력부(430) 각각에 포함된 정보는 달라진다.Information included in each of the test execution
예를 들어, 도 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
생성된 결함 정보(500)가 전자제어장치(50)에 주입되면, 도 9의 붉은색 박스와 같이, TASK_A_function 주소(현재 실행중인 위치)를 TASK_B_function 주소로 대체하여 TASK_A이름으로 TASK_B 기능이 수행됨을 태스크 변화 그래프를 통해 확인할 수 있다. 참고로, 파란색 박스는 전자제어장치(50)의 각 태스크들이 정상적으로 동작하고 있음을 보여주고, 붉은색 실선은 결함이 시작된 시점을 의미한다.When the generated
도 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
생성된 결함 정보가 전자제어장치(50)에 주입되면, 도 11의 붉은색 박스와 같이, Task_C가 킬(Kill)되었음을 태스크 정보창과 태스크 변화 그래프를 통해 확인할 수 있다. 참고로, 파란색 박스는 전자제어장치(50)의 각 태스크들이 정상적으로 동작하고 있음을 보여주고, 붉은색 실선은 결함이 시작된 시점을 의미한다.When the generated defect information is injected into the
도 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
생성된 결함 정보가 전자제어장치(50)에 주입되면, 도 13의 붉은색 박스와 같이, Task_E의 알람이 한 번 실행되고 더 이상 실행되지 않음을 태스크 변화 그래프를 통해 확인할 수 있다. 참고로, 파란색 박스는 전자제어장치(50)의 각 태스크들이 정상적으로 동작하고 있음을 보여주고, 붉은색 실선은 결함이 시작된 시점을 의미한다.When the generated defect information is injected into the
도 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
생성된 결함 정보가 전자제어장치(50)에 주입되면, 도 15의 붉은색 박스와 같이, Task_E가 킬(Kill)되었음을 태스크 변화 그래프를 통해 확인할 수 있다. 참고로, 파란색 박스는 전자제어장치(50)의 각 태스크들이 정상적으로 동작하고 있음을 보여주고, 붉은색 실선은 결함이 시작된 시점을 의미한다.When the generated defect information is injected into the
도 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
도 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
생성된 결함 정보가 전자제어장치(50)에 주입되면, 도 18의 붉은색 박스와 같이, Segmentation fault 오류가 발생하고 시스템 전체가 킬(Kill)되었음을 태스크 변화 그래프를 통해 확인할 수 있다. 참고로, 파란색 박스는 전자제어장치(50)의 각 태스크들이 정상적으로 동작하고 있음을 보여주고, 붉은색 실선은 결함이 시작된 시점을 의미한다.When the generated defect information is injected into the
도 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
생성된 결함 정보가 전자제어장치(50)에 주입되면, 도 20의 붉은색 박스와 같이, Task_A가 실행될 부분에서 Task_F의 함수를 실행되면서 Task_A 의 실행부분이 길어지는 '태스크 오버런'이 발생하였음을 태스크 변화 그래프를 통해 확인할 수 있다. 참고로, 파란색 박스는 전자제어장치(50)의 각 태스크들이 정상적으로 동작하고 있음을 보여주고, 붉은색 실선은 다른 태스크의 함수 교체가 시작된 시점을 의미한다.When the generated defect information is injected into the
도 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
생성된 결함 정보가 전자제어장치(50)에 주입되면, 도 22의 파란색 타원 부분과 같이, 변수값 변경에 따라 변수값 변화 그래프의 모양이 달라짐을 확인할 수 있다. 참고로, 붉은색 실선은 결함이 시작된 시점을 의미한다.When the generated defect information is injected into the
도 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
도 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
생성된 결함 정보가 전자제어장치(50)에 주입되면, 도 25와 같이, 시스템 다운이 발생하였음을 태스크 변화 그래프를 통해 확인할 수 있다. 참고로, 파란색 박스는 전자제어장치(50)의 각 태스크들이 정상적으로 동작하고 있음을 보여주고, 붉은색 실선은 결함이 시작된 시점을 의미한다.When the generated defect information is injected into the
도 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
생성된 결함 정보가 전자제어장치(50)에 주입되면, 도 27과 같이, 변수값이 변경되었음을 변수값 변화 그래프를 통해 확인할 수 있다. 참고로, 파란색 타원은 비트값 변경에 따른 그래프의 모양을 보여주고, 붉은색 실선은 결함이 시작된 시점을 의미한다.When the generated defect information is injected into the
도 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
테스트 시나리오 관리부(2830)는 전자제어장치(50)에 주입할 수 있는 다수의 시나리오를 디스플레이한다. 여기서, 다수의 시나리오는 사용자의 선택에 따라 전부 또는 일부의 시나리오들 일괄적으로 실행될 수도 있다.The
태스크/변수 상태정보 조회부(2850)는 전자제어장치(50)의 태스크별/변수별 정보를 행렬로 표시하여 디스플레이 한다. 여기서, 태스크의 상태가 변경되면 구별되는 색상으로 변경된 태스크가 표시될 수도 있다.The task / variable status
도 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.
상기 결함 시나리오는 상기 전자제어장치의 설정정보와 입력창으로 입력된 사용자 선택정보에 기초하여 생성된, 결함 주입 테스트 방법.
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.
상기 결함 시나리오는 상기 전자제어장치의 설정정보에서 발생 가능한 모든 결함들을 조합하여 추출된, 결함 주입 테스트 방법.
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.
상기 결함 시나리오는 결함의 발생 시점, 결함의 대상, 결함의 유형 및 결함의 발생 횟수 중 적어도 하나 이상을 포함하는, 결함 주입 테스트 방법.
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.
태스크 실행 중단, 스케줄러에 의한 태스크 재실행 방지, 알람(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.
상기 태스크 상태 변화 그래프는, 시간에 흐름에 따른 태스크별 상태의 변화, 결함 발생 시점 및 시스템 리셋 시점을 포함하는, 결함 주입 테스트 방법.
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.
상기 변수값 변화 그래프는, 시간에 흐름에 따른 변수값(들)의 추이, 결함 발생 시점 및 시스템 리셋 시점을 포함하는, 결함 주입 테스트 방법.
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.
상기 전자제어장치의 태스크의 시작과 종료 정보를 추출하고, 추출된 상기 태스크의 시작과 종료 정보를 기초로 모니터링 주기를 보정하는, 결함 주입 테스트 방법.
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.
보고서 생성 모듈이 테스트 결과 보고서를 생성하는, 테스트 결과 보고서 생성 단계;를 더 포함하고,
상기 테스트 결과 보고서는, 상기 태스크 상태 변화와 상기 변수값 추이를 문자로 출력한 부분을 포함하는, 결함 주입 테스트 방법.
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.
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.
상기 전자제어장치에 결함이 발생하기 전과 발생된 후의 상기 태스크의 상태 변화와 상기 변수값의 추이 변화를 포함하는 테스트 결과 보고서를 생성하는, 보고서 생성 모듈;을 더 포함하는 결함 주입 테스트 장치.
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.
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)
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)
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)
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)
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 |
-
2017
- 2017-06-09 KR KR1020170072731A patent/KR102020994B1/en active Active
Patent Citations (1)
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)
Title |
---|
윤경섭 외 2인, "결함 주입 방법을 이용한 하드웨어 검증시스템 구현," 전기전자학회논문지, 제15권 제4호, pp.267-273, 2011.12. |
이동우 외 2인, "결함주입기법을 이용한 차량용 고신뢰성 임베디드 시스템의 안전성 검증방안," 정보보호학회지, 제24권 제2호, pp.50-55, 2014.04 |
Cited By (1)
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 |