KR102279268B1 - 전자 장치를 검증하기 위한 장치 및 방법 - Google Patents

전자 장치를 검증하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR102279268B1
KR102279268B1 KR1020200002932A KR20200002932A KR102279268B1 KR 102279268 B1 KR102279268 B1 KR 102279268B1 KR 1020200002932 A KR1020200002932 A KR 1020200002932A KR 20200002932 A KR20200002932 A KR 20200002932A KR 102279268 B1 KR102279268 B1 KR 102279268B1
Authority
KR
South Korea
Prior art keywords
verification
processor
input data
output
virtual
Prior art date
Application number
KR1020200002932A
Other languages
English (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 KR1020200002932A priority Critical patent/KR102279268B1/ko
Application granted granted Critical
Publication of KR102279268B1 publication Critical patent/KR102279268B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 전자 장치를 검증하기 위한 장치 및 방법에 관한 것이다. 본 발명의 일 실시예에 따른 전자 장치 검증 장치는 사용자에 의하여 미리 설정된 입력 테이블에 따라 가상 입력 데이터를 생성하는 가상 입력 데이터 생성 프로세서, 사용자에 의하여 미리 설정된 제약 조건에 따라 검증 코드를 생성하는 검증 코드 생성 프로세서, 상기 가상 입력 데이터에 기초하여 검증 대상 소프트웨어 및 가상 환경 모델을 동작시키는 시뮬레이션 프로세서 및 상기 검증 코드를 이용하여 상기 시뮬레이션 프로세서의 동작에 따른 출력을 검증하는 검증 프로세서를 포함한다.

Description

전자 장치를 검증하기 위한 장치 및 방법{APPARATUS AND METHOD FOR VERIFYING ELECTRONIC APPARATUS}
본 발명은 전자 장치를 검증하기 위한 장치 및 방법에 관한 것이다.
냉장고, 세탁기 등과 같은 전자 장치는 기기의 동작을 위한 소프트웨어가 탑재된 프로세서를 포함한다. 그리고 프로세서가 소프트웨어를 구동시켜 출력한 결과에 따라 전자 장치의 하드웨어가 동작한다.
이와 같은 전자 장치는 출시되기 전에 하드웨어 및 소프트웨어가 올바르게 동작하는 지 검증하는 단계가 필요하다. 이때 하드웨어의 동작에 대한 검증, 소프트웨어의 동작에 대한 검증 및 하드웨어와 소프트웨어의 결합된 동작에 대한 검증이 각각 필요하다.
이때 가상 소프트웨어 플랫폼을 이용하여 전자 장치를 검증하는 방법의 일 실시예가 등록특허 KR 10-1470319에 개시된다.
그러나 이와 같은 방법은 하드웨어의 동작에 대한 검증에 중점을 두고 있어서, 소프트웨어의 동작에 대한 검증 및 하드웨어와 소프트웨어의 결합된 동작에 대한 검증은 부족하다.
또한, 전자 장치의 검증을 올바르게 함과 동시에 보다 빠른 시간 안에 검증을 마침으로써, 전자 장치의 개발 시간을 단축하는 것도 필요하다.
본 발명의 목적은 미리 설정된 제약 조건에 따라 검증 코드를 생성하고, 이를 통해 시뮬레이션 프로세서의 동작을 검증하는 검증 장치를 제공하는 것이다.
또한 본 발명의 목적은 가상 입력 데이터를 생성함과 동시에 검증 코드를 생성하는 검증 장치를 제공하는 것이다.
또한 본 발명의 목적은 시뮬레이션 프로세서의 동작에 따른 출력을 시뮬레이션 프로세서가 동작하는 중에 검증 프로세서가 검증하는 검증 장치를 제공하는 것이다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
본 발명에서 검증 장치는 가상 입력 데이터에 기초하여 검증 대상 소프트웨어 및 가상 환경 모델을 동작시키고, 검증 코드를 이용하여 시뮬레이션 프로세서의 동작에 따른 출력을 검증할 수 있다.
이와 같은 구성에 의하면 시뮬레이션 프로세서의 동작을 검증함으로써 전자 장치의 동작을 검증할 수 있다.
본 발명의 일 실시예에 따르면, 검증 장치는 사용자에 의하여 미리 설정된 입력 테이블에 따라 가상 입력 데이터를 생성하는 가상 입력 데이터 생성 프로세서, 사용자에 의하여 미리 설정된 제약 조건에 따라 검증 코드를 생성하는 검증 코드 생성 프로세서, 상기 가상 입력 데이터에 기초하여 검증 대상 소프트웨어 및 가상 환경 모델을 동작시키는 시뮬레이션 프로세서 및 상기 검증 코드를 이용하여 상기 시뮬레이션 프로세서의 동작에 따른 출력을 검증하는 검증 프로세서를 포함한다.
또한 본 발명의 일 실시예에서, 상기 가상 입력 데이터 생성 프로세서는 상기 입력 테이블에 기초하여 입력 조합을 생성하고, 상기 입력 조합에 대응되는 상기 가상 입력 데이터를 생성한다.
또한 본 발명의 일 실시예에서, 상기 가상 입력 데이터 생성 프로세서는 상기 가상 입력 데이터에 포함된 시간 데이터에 따라 상기 시뮬레이션 프로세서에 상기 가상 입력 데이터를 인가한다.
또한 본 발명의 일 실시예에서, 상기 검증 코드 생성 프로세서는 상기 제약 조건에 대응되는 상태 기계(State Machine)를 생성하고, 상기 상태 기계에 정의되지 않은 동작이 감지되면 오류를 출력하도록 하는 검증 코드를 생성한다.
또한 본 발명의 일 실시예에서, 상기 시뮬레이션 프로세서는 상기 가상 입력 데이터에 따라 상기 검증 대상 소프트웨어의 출력을 연산하고, 상기 가상 입력 데이터 및 상기 검증 대상 소프트웨어의 출력에 따라 상기 가상 환경 모델의 출력을 연산하고, 상기 가상 환경 모델의 출력에 따라 상기 검증 대상 소프트웨어의 출력을 연산한다.
또한 본 발명의 일 실시예에서, 상기 검증 프로세서는 상기 검증 대상 소프트웨어의 출력 및 상기 가상 환경 모델의 출력을 이용하여 상기 검증 코드를 실행하고, 상기 검증 코드를 실행한 결과에 기초하여 오류 메시지를 출력한다.
본 발명의 다른 실시예에서, 검증 방법은 가상 입력 데이터 생성 프로세서가 사용자에 의하여 미리 설정된 입력 테이블에 따라 가상 입력 데이터를 생성하는 단계, 검증 코드 생성 프로세서가 사용자에 의하여 미리 설정된 제약 조건에 따라 검증 코드를 생성하는 단계, 시뮬레이션 프로세서가 상기 가상 입력 데이터에 기초하여 검증 대상 소프트웨어 및 가상 환경 모델을 동작시키는 단계 및 검증 프로세서가 상기 검증 코드를 이용하여 상기 시뮬레이션 프로세서의 동작에 따른 출력을 검증하는 단계를 포함한다.
또한 본 발명의 다른 실시예에서, 상기 가상 입력 데이터를 생성하는 단계는 상기 가상 입력 데이터 생성 프로세서가 상기 입력 테이블에 기초하여 입력 조합을 생성하는 단계 및 상기 가상 입력 데이터 생성 프로세서가 상기 입력 조합에 대응되는 상기 가상 입력 데이터를 생성하는 단계를 포함한다.
또한 본 발명의 다른 실시예에서, 상기 검증 방법은 상기 가상 입력 데이터 생성 프로세서가 상기 가상 입력 데이터를 생성하고 나서, 상기 가상 입력 데이터 생성 프로세서가 상기 가상 입력 데이터에 포함된 시간 데이터에 따라 상기 시뮬레이션 프로세서에 상기 가상 입력 데이터를 인가하는 단계를 더 포함한다.
또한 본 발명의 다른 실시예에서, 상기 검증 코드를 생성하는 단계는 상기 검증 코드 생성 프로세서가 상기 제약 조건에 대응되는 상태 기계(State Machine)를 생성하는 단계 및 상기 상태 기계에 정의되지 않은 동작이 감지되면 오류를 출력하도록 하는 검증 코드를 생성하는 단계를 포함한다.
또한 본 발명의 다른 실시예에서, 상기 검증 대상 소프트웨어 및 가상 환경 모델을 동작시키는 단계는 상기 시뮬레이션 프로세서가 상기 가상 입력 데이터에 따라 상기 검증 대상 소프트웨어의 출력을 연산하는 단계, 상기 시뮬레이션 프로세서가 상기 가상 입력 데이터 및 상기 검증 대상 소프트웨어의 출력에 따라 상기 가상 환경 모델의 출력을 연산하는 단계 및 상기 시뮬레이션 프로세서가 상기 가상 환경 모델의 출력에 따라 상기 검증 대상 소프트웨어의 출력을 연산하는 단계를 포함한다.
또한 본 발명의 다른 실시예에서, 상기 시뮬레이션 프로세서의 동작에 따른 출력을 검증하는 단계는 상기 검증 프로세서가 상기 검증 대상 소프트웨어의 출력 및 상기 가상 환경 모델의 출력을 이용하여 상기 검증 코드를 실행하는 단계 및 상기 검증 프로세서가 상기 검증 코드를 실행한 결과에 기초하여 오류 메시지를 출력하는 단계를 포함한다.
본 발명에 따른 검증 장치는, 가상 입력 데이터에 기초하여 검증 대상 소프트웨어 및 가상 환경 모델을 동작시키고, 검증 코드를 이용하여 시뮬레이션 프로세서의 동작에 따른 출력을 검증하므로, 전자 장치의 검증을 올바르게 할 수 있는 장점이 있다.
또한 본 발명에 따른 검증 장치는, 가상 입력 데이터를 생성함과 동시에 검증 코드를 생성하므로, 보다 빠르게 전자 장치의 검증을 수행할 수 있는 장점이 있다.
또한 본 발명에 따른 검증 장치는, 검증 프로세서가 시뮬레이션 프로세서가 동작하는 중에 시뮬레이션 프로세서의 동작에 따른 출력을 검증하므로, 보다 빠르게 전자 장치의 검증을 수행할 수 있는 장점이 있다.
상술한 효과와 더불어 본 발명의 구체적인 효과는 이하 발명을 실시하기 위한 구체적인 사항을 설명하면서 함께 기술한다.
도 1은 본 발명의 일 실시예에 따른 검증 장치를 나타낸 블록도이다.
도 2는 본 발명의 일 실시예에 따른 검증 방법을 나타낸 순서도이다.
도 3은 입력 테이블의 일 실시예를 나타낸 도면이다.
도 4는 도 3의 입력 테이블에 기초하여 생성된 입력 조합의 일 실시예를 나타낸 도면이다.
도 5는 도 4의 입력 조합에 대응되는 가상 입력 데이터의 일 실시예를 나타낸 도면이다.
도 6은 제약 조건에 따라 생성된 상태 기계의 일 실시예를 나타낸 도면이다.
도 7은 도 6의 상태 기계에 따라 생성된 검증 코드의 일 실시예를 나타낸 도면이다.
도 8은 본 발명의 일 실시예에 따른 검증 장치에 포함된 시뮬레이션 프로세서의 동작을 나타낸 도면이다.
전술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되며, 이에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다. 도면에서 동일한 참조부호는 동일 또는 유사한 구성요소를 가리키는 것으로 사용된다.
비록 제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것으로, 특별히 반대되는 기재가 없는 한, 제1 구성요소는 제2 구성요소일 수도 있음은 물론이다.
또한 어떤 구성요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 상기 구성요소들은 서로 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성요소 사이에 다른 구성요소가 "개재"되거나, 각 구성요소가 다른 구성요소를 통해 "연결", "결합" 또는 "접속"될 수도 있는 것으로 이해되어야 할 것이다.
명세서 전체에서, 특별히 반대되는 기재가 없는 한, 각 구성요소는 단수일 수도 있고 복수일 수도 있다.
본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
이하에서는, 본 발명의 몇몇 실시예에 따른 전자 장치를 검증하기 위한 장치 및 방법을 설명하도록 한다.
도 1은 본 발명의 일 실시예에 따른 검증 장치를 나타낸 블록도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 검증 장치(100)는 가상 입력 데이터 생성 프로세서(110), 검증 코드 생성 프로세서(120), 시뮬레이션 프로세서(130) 및 검증 프로세서(140)를 포함한다
가상 입력 데이터 생성 프로세서(110)는 사용자에 의하여 미리 설정된 입력 테이블에 따라 가상 입력 데이터를 생성한다.
보다 상세히, 가상 입력 데이터 생성 프로세서(110)는 입력 테이블에 기초하여 입력 조합을 생성한다. 이때 가상 입력 데이터 생성 프로세서(110)는 입력 테이블에 포함된 각각의 동작이 가질 수 있는 값들의 모든 조합을 입력 조합으로 생성할 수 있다. 또한, 시뮬레이션 프로세서(130)의 동작 시간을 단축시키기 위해 가상 입력 데이터 생성 프로세서(110)는 각각의 동작들 간의 상호 작용을 고려하여 모든 조합에서 불필요한 조합을 제외한 것을 입력 조합으로 생성할 수 있다.
그리고 나서, 가상 입력 데이터 생성 프로세서(110)는 입력 조합에 대응되는 가상 입력 데이터를 생성한다.
여기서 입력 테이블은 검증 장치(100)를 통해 검증하려는 전자 장치의 동작들의 순서의 일 예시를 나타낸 테이블이다. 입력 테이블의 일 예시가 도 3에 도시되어 있으며, 입력 테이블에 관한 보다 상세한 설명은 도 3을 이용하여 후술하도록 한다.
그리고 입력 조합은 입력 테이블에 포함된 각 동작들이 가질 수 있는 값들의 조합을 산출한 것이다. 입력 조합의 일 예시가 도 4에 도시되어 있으며, 입력 조합에 관한 보다 상세한 설명은 도 4를 이용하여 후술하도록 한다.
그리고 가상 입력 데이터는 입력 조합에 따라 생성된 검증 장치(100)를 통해 검증하려는 전자 장치의 동작들의 순서, 값, 각 동작 사이의 입력 간격 등을 포함하는 데이터이다. 이때 가상 입력 데이터는 각 동작 사이의 입력 간격을 시간 데이터의 형태로 포함할 수 있다. 가상 입력 데이터의 일 예시가 도 5에 도시되어 있으며, 가상 입력 데이터에 관한 보다 상세한 설명은 도 5를 이용하여 후술하도록 한다.
이와 같은 가상 입력 데이터가 생성되고 나서, 가상 입력 데이터 생성 프로세서(110)는 가상 입력 데이터에 포함된 시간 데이터에 따라 시뮬레이션 프로세서(130)에 가상 입력 데이터를 인가할 수 있다.
검증 코드 생성 프로세서(120)는 사용자에 의하여 미리 설정된 제약 조건에 따라 검증 코드를 생성한다.
보다 상세히, 검증 코드 생성 프로세서(120)는 제약 조건에 대응되는 상태 기계(State Machine)을 생성한다. 그리고 나서, 검증 코드 생성 프로세서(120)는 상태 기계에 정의되지 않은 동작이 감지되면 오류를 출력하도록 하는 검증 코드를 생성한다.
여기서 상태 기계는 제약 조건에 따라 검증 코드를 생성하는 데 이용되는 수학적 모델을 나타낸다. 상태 기계의 일 예시가 도 6에 도시되어 있으며, 상태 기계에 관한 보다 상세한 설명은 도 6을 이용하여 후술하도록 한다.
그리고 검증 코드는 제약 조건 및 상태 기계에 따라 생성된 코드로, 제약 조건에 부합하지 않는 동작, 즉 상태 기계에 정의되지 않은 동작이 감지되면, 오류를 출력하는 코드이다. 검증 코드의 일 예시가 도 7에 도시되어 있으며, 검증 코드에 관한 보다 상세한 설명은 도 7을 이용하여 후술하도록 한다.
이때 검증 코드 생성 프로세서(120)는 가상 입력 데이터 생성 프로세서(110)가 가상 입력 데이터를 생성하는 것과 동시에 검증 코드를 생성할 수 있다. 본 발명의 일 실시예에 따른 검증 장치(100)는 이와 같이 동작함으로써, 검증 장치(100)가 보다 빠르게 전자 장치의 검증을 수행할 수 있다.
시뮬레이션 프로세서(130)는 가상 입력 데이터에 기초하여 검증 대상 소프트웨어 및 가상 환경 모델을 동작시킨다.
보다 상세히, 시뮬레이션 프로세서(130)는 가상 입력 데이터에 따라 검증 대상 소프트웨어의 출력을 연산한다. 그리고 시뮬레이션 프로세서(130)는 가상 입력 데이터 및 검증 대상 소프트웨어의 출력에 따라 가상 환경 모델의 출력을 연산한다. 그리고 시뮬레이션 프로세서(130)는 가상 환경 모델의 출력에 따라 검증 대상 소프트웨어의 출력을 연산한다.
이때 시뮬레이션 프로세서(130)는 검증 대상 소프트웨어의 출력을 연산하는 동작과 가상 환경 모델의 출력을 연산하는 동작을 반복하여 수행할 수 있다.
여기서 검증 대상 소프트웨어는 검증 장치(100)를 통해 검증하려는 전자 장치의 하드웨어 구동에 이용되는 소프트웨어를 의미한다. 그리고 가상 환경 모델은 검증 장치(100)를 통해 검증하려는 전자 장치의 하드웨어를 수학적으로 모델링한 결과를 의미한다.
이와 같은 시뮬레이션 프로세서(130)의 보다 상세한 동작은 도 8을 이용하여 후술하도록 한다.
본 발명의 일 실시예에 따른 검증 장치(100)는 이와 같이 가상 환경 모델을 통해 전자 장치의 하드웨어에 대한 동작을 검증하면서, 검증 대상 소프트웨어를 통해 전자 장치의 소프트웨어의 동작을 검증하고, 가상 환경 모델의 출력을 검증 대상 소프트웨어에 입력하면서 검증 대상 소프트웨어의 출력을 가상 환경 모델에 입력하면서 전자 장치의 하드웨어와 소프트웨어의 결합된 동작에 대한 검증을 할 수 있다.
검증 프로세서(140)는 검증 코드를 이용하여 시뮬레이션 프로세서(130)의 동작에 따른 출력을 검증한다.
보다 상세히, 검증 프로세서(140)는 검증 대상 소프트웨어의 출력 및 가상 환경 모델의 출력을 이용하여 검증 코드를 실행한다. 그리고 나서 검증 프로세서(140)는 검증 코드를 실행한 결과에 기초하여 오류 메시지를 출력한다.
즉, 검증 프로세서(140)는 검증 코드를 실행한 후, 상태 기계에 정의되지 않은 동작이 감지되지 않으면, 오류 메시지를 출력하지 않는다. 또한 검증 프로세서(140)는 검증 코드를 실행한 후, 상태 기계에 정의되지 않은 동작이 감지되면, 오류 메시지를 출력한다.
이때 검증 프로세서(140)는 별도의 디스플레이, LED, 스피커 등을 이용하여 오류 메시지를 출력할 수 있다.
이때 검증 프로세서(140)는 시뮬레이션 프로세서(130)의 동작에 따른 출력을 실시간으로 시뮬레이션 프로세서(130)가 동작하는 중에 검증할 수 있다. 본 발명의 일 실시예에 따른 검증 장치(100)는 이와 같이 동작함으로써, 보다 빠르게 전자 장치의 검증을 수행할 수 있다.
도 2는 본 발명의 일 실시예에 따른 검증 방법을 나타낸 순서도이다.
도 2를 참조하면, 가상 입력 데이터 생성 프로세서(110)가 사용자에 의하여 미리 설정된 입력 테이블에 따라 가상 입력 데이터를 생성한다(S210).
보다 상세히, 가상 입력 데이터 생성 프로세서(110)는 입력 테이블에 기초하여 입력 조합을 생성한다.
입력 테이블은 검증 장치(100)를 통해 검증하려는 전자 장치의 동작들의 순서의 일 예시를 나타낸 테이블이다. 이와 같은 입력 테이블은 도 3을 이용하여 보다 상세히 설명될 수 있다.
도 3은 입력 테이블의 일 실시예를 나타낸 도면이다. 이때 도 3은 세탁기를 검증하려는 전자 장치로 한 경우에 사용될 수 있는 입력테이블의 일 예시이다.
도 3을 참조하면, 입력 테이블의 첫 번째 행은 각 동작이 입력되는 순번을 의미하고, 두 번째 행은 각 동작의 타입을 의미하고, 세 번째 행은 동작의 종류를 의미한다.
이때 동작의 타입 중 c는 가상 환경 모델의 상태를 조절하는 동작을 의미한다. 그리고 동작의 타입 중 i는 사용자의 입력에 따라 기능하게 되는 동작을 의미한다. 마지막으로 동작의 타입 중 w는 특정 조건이 만족될 때까지 대기하는 동작을 의미한다.
이때 도 3의 입력 테이블은 세탁기가 수위 조절 동작을 수행하고, 동작 종류, 동작 옵션, 헹굼 횟수, 회전 속도 및 동작 시작 명령을 사용자로부터 수신하고, 동작을 시작하여 동작을 수행하다가, 일시 중지 명령, 동작 종류 및 동작 시작 명령을 사용자로부터 수신하는 것을 예시로 한 입력 테이블이다.
다시 도 2로 돌아와서, 입력 조합은 입력 테이블에 포함된 각 동작들이 가질 수 있는 값들의 조합을 산출한 것이다. 이와 같은 입력 조합은 도 4를 이용하여 보다 상세히 설명될 수 있다.
도 4는 도 3의 입력 테이블에 기초하여 생성된 입력 조합의 일 실시예를 나타낸 도면이다.
도 4를 참조하면, 입력 조합의 첫 번째 행은 입력 테이블에 포함된 동작의 종류를 의미하며, 두 번째 행부터는 입력 테이블에 포함된 각각의 동작에 대하여 선택될 수 있는 값들을 나타낸 것이다.
예를 들어, 두 번째 행은 세탁기가 수위를 0으로 조절한 후, 사용자로부터 면 세탁 동작을 터보 세탁 동작으로 수행하는데 행굼 동작를 2회 수행하고 1000rpm으로 회전하여 세탁하는 명령을 입력 받아서 세탁 동작을 수행하다가, 사용자로부터 일시 중지 명령을 수신하여 동작을 중지하고, 사용자로부터 면+ 세탁 동작 명령을 입력 받아서 동작하는 것을 의미한다.
이와 같이 가상 입력 데이터 생성 프로세서(110)는 입력 테이블을 통해 복수 개의 입력 조합을 생성한다.
다시 도 2로 돌아와서, 입력 조합이 생성되고 나서, 가상 입력 데이터 생성 프로세서(110)는 입력 조합에 대응되는 가상 입력 데이터를 생성한다. 가상 입력 데이터는 입력 조합에 따라 생성된 검증 장치(100)를 통해 검증하려는 전자 장치의 하드웨어를 통해 사용자가 입력 할 수 있는 명령들의 순서, 값, 각 명령 사이의 입력 간격 등을 포함하는 데이터이다. 이와 같은 가상 입력 데이터는 도 5를 이용하여 보다 상세히 설명될 수 있다.
도 5는 도 4의 입력 조합에 대응되는 가상 입력 데이터의 일 실시예를 나타낸 도면이다.
도 5를 참조하면, 본 발명의 일 실시예에서 가상 입력 데이터는 상태 기계의 형태로 저장된다. 도 5의 가상 입력 데이터는 도 4의 입력 조합 중 테스트 순번이 1인 입력 조합을 기초로 생성된 것이다.
즉, 도 5의 가상 입력 데이터는 시뮬레이션 프로세서(130)에 세탁기가 수위를 0으로 조절하는 명령, 면 세탁 동작 명령, 터보 세탁 동작 명령, 헹굼 2회 수행 명령, 1000rpm 회전 명령, 동작 시작 명령, 세탁 동작 명령, 일시 중지 명령, 면+ 세탁 동작 명령 및 동작 시작 명령을 순서대로 입력하도록 하는 데이터이다.
이때 도 5에는 도시되어 있지 않지만, 가상 입력 데이터는 시간 데이터를 더 포함할 수 있다. 따라서 가상 입력 데이터 생성 프로세서(110)는 가상 입력 데이터를 생성하고 나서, 가상 입력 데이터에 포함된 시간 데이터에 따라 시뮬레이션 프로세서(130)에 가상 입력 데이터를 인가할 수 있다.
다시 도 2로 돌아와서, 검증 코드 생성 프로세서(120)가 사용자에 의하여 미리 설정된 제약 조건에 따라 검증 코드를 생성한다(S220).
도 2에는 가상 입력 데이터 생성 프로세서(110)가 가상 입력 데이터를 생성하고 나서, 검증 코드 생성 프로세서(120)가 사용자에 의하여 미리 설정된 제약 조건에 따라 검증 코드를 생성하는 것으로 도시되었으나, 본 발명이 이에 한정되는 것은 아니다. 즉, 가상 입력 데이터 생성 프로세서(110)가 가상 입력 데이터를 생성하는 것과 동시에, 검증 코드 생성 프로세서(120)가 사용자에 의하여 미리 설정된 제약 조건에 따라 검증 코드를 생성하도록 함으로써, 검증 장치(100)가 보다 빠르게 전자 장치의 검증을 수행할 수 있다.
보다 상세히, 검증 코드 생성 프로세서(120)는 제약 조건에 대응되는 상태 기계(State Machine)을 생성한다.
여기서 상태 기계는 제약 조건에 따라 검증 코드를 생성하는 데 이용되는 수학적 모델을 나타낸다. 이와 같은 제약 조건에 대응되는 상태 기계는 도 6을 이용하여 보다 상세히 설명될 수 있다.
도 6은 제약 조건에 따라 생성된 상태 기계의 일 실시예를 나타낸 도면이다. 이때 도 6은 세탁기를 검증하려는 전자 장치로 한 경우에 이용될 수 있는 제약 조건에 따라 생성된 상태 기계의 일 예시이다.
도 6을 참조하면, 제약 조건이 세탁 동작 이후에는 세탁 동작, 헹굼 동작, 탈수 동작, 일시 중지 동작 및 종료 동작만 수행 가능하며, 헹굼 동작 이후에는 헹굼 동작, 탈수 동작, 일시 중지 동작 및 종료 동작만 수행 가능하며, 탈수 동작 이후에는 탈수 동작, 일시 중지 동작 및 종료 동작만 수행 가능한 것을 가정하여 생성된 상태 기계를 확인할 수 있다.
즉, 상태 기계의 초기 상태(S610)에서는 초기 상태(S610), 세탁 동작 상태(S620), 헹굼 동작 상태(S630) 및 탈수 동작 상태(S640)로 이동 가능하다. 그리고 세탁 동작 상태(S620)에서는 세탁 동작 상태(S620), 헹굼 동작 상태(S630), 탈수 동작 상태(S640) 및 초기 상태(S610)로 이동 가능하다. 그리고 헹굼 동작 상태(S630)에서는 헹굼 동작 상태(S630), 탈수 동작 상태(S640) 및 초기 상태(S610)로 이동 가능하다. 마지막으로 탈수 동작 상태(S640)에서는 탈수 동작 상태(S640) 및 초기 상태(S610)로 이동 가능하다. 이때 각 상태에서 일시 중지 명령 또는 종료 명령이 수신되면 초기 상태(S610)가 되는 것이다.
다시 도 2로 돌아와서, 검증 코드 생성 프로세서(120)는 상태 기계에 정의되지 않은 동작이 감지되면 오류를 출력하도록 하는 검증 코드를 생성한다.
검증 코드는 제약 조건 및 상태 기계에 따라 생성된 코드로, 제약 조건에 부합하지 않는 동작, 즉 상태 기계에 정의되지 않은 동작이 감지되면, 오류를 출력하는 코드이다. 이와 같은 검증 코드는 도 7을 이용하여 보다 상세히 설명될 수 있다.
도 7은 도 6의 상태 기계에 따라 생성된 검증 코드의 일 실시예를 나타낸 도면이다.
도 7을 참조하면, 도 6의 상태 기계에 따라 생성된 검증 코드의 일부가 도시되어 있다. 우선 검증 코드는 초기 상태(S610)에서 오류 상태로 변경한다. 그리고 만약에 다음 동작이 제약 조건에 대응되는 상태 기계에 정의된 동작이면 다음 동작 상태로 변경하고, 그렇지 않으면 오류 상태가 유지된다.
이와 같이 검증 코드는 전자 장치의 동작 상태가 오류 상태인 것을 출력한다.
다시 도 2로 돌아와서, 시뮬레이션 프로세서(130)가 가상 입력 데이터에 기초하여 검증 대상 소프트웨어 및 가상 환경 모델을 동작시킨다(S230).
보다 상세히, 시뮬레이션 프로세서(130)는 가상 입력 데이터에 따라 검증 대상 소프트웨어의 출력을 연산한다. 그리고 시뮬레이션 프로세서(130)는 가상 입력 데이터 및 검증 대상 소프트웨어의 출력에 따라 가상 환경 모델의 출력을 연산한다. 그리고 시뮬레이션 프로세서(130)는 가상 환경 모델의 출력에 따라 검증 대상 소프트웨어의 출력을 연산한다.
이때 시뮬레이션 프로세서(130)는 검증 대상 소프트웨어의 출력을 연산하는 동작과 가상 환경 모델의 출력을 연산하는 동작을 반복하여 수행할 수 있다. 이와 같은 시뮬레이션 프로세서(130)의 동작은 도 8을 이용하여 보다 상세히 설명될 수 있다.
도 8은 본 발명의 일 실시예에 따른 검증 장치에 포함된 시뮬레이션 프로세서의 동작을 나타낸 도면이다.
도 8을 참조하면, 시뮬레이션 프로세서(130)는 검증 대상 소프트웨어(131)를 구동시킨다. 이때 검증 대상 소프트웨어(131)는 ISR(Interrupt Service Routine)에 의해 동작할 수 있다. 즉, 검증 대상 소프트웨어(131)는 인터럽트가 발생할 때마다 실행될 수 있다. 이와 같이 시뮬레이션 프로세서(130)는 인터럽트가 발생할 때마다 검증 대상 소프트웨어(131)를 구동시켜서 출력을 연산한다.
검증 대상 소프트웨어(131)의 출력은 출력 장치 모델(132)로 입력된다. 이때 출력 장치 모델(132)은 actuator를 수학적으로 모델링한 결과일 수 있다. 즉, 시뮬레이션 프로세서(130)는 출력 장치 모델(132)을 통해 검증 대상 소프트웨어의 출력을 가상 환경 모델(133)로 입력시킨다.
그리고 시뮬레이션 프로세서(130)는 가상 입력 데이터 및 출력 장치 모델(132)을 통해 나온 검증 대상 소프트웨어(131)의 출력에 따라 가상 환경 모델(133)의 출력을 연산한다.
가상 환경 모델(133)의 출력은 입력 장치 모델(134)로 입력된다. 이때 입력 장치 모델(134)은 sensor를 수학적으로 모델링한 결과일 수 있다. 즉, 시뮬레이션 프로세서(130)는 입력 장치 모델(134)을 통해 가상 환경 모델(133)의 출력을 검증 대상 소프트웨어(131)로 입력시킨다.
이와 같이 시뮬레이션 프로세서(130)가 검증하려는 전자 장치의 하드웨어 구동에 이용되는 소프트웨어인 검증 대상 소프트웨어(131)의 출력과 검증하려는 전자 장치의 하드웨어를 수학적으로 모델링한 가상 환경 모델(133)의 출력을 루프와 같이 입력시켜서 출력을 연산함으로써, 전자 장치의 하드웨어와 소프트웨어의 결합된 동작에 대한 검증을 할 수 있다.
그리고 검증 프로세서(140)가 검증 코드를 이용하여 시뮬레이션 프로세서(130)의 동작에 따른 출력을 검증한다(S240).
보다 상세히, 검증 프로세서(140)는 검증 대상 소프트웨어의 출력 및 가상 환경 모델의 출력을 이용하여 검증 코드를 실행한다. 그리고 나서 상태 기계에 정의되지 않은 동작이 감지되지 않으면, 검증 프로세서(140)는 오류 메시지를 출력하지 않고, 상태 기계에 정의되지 않은 동작이 감지되면, 검증 프로세서(140)는 오류 메시지를 출력한다.
이때 검증 프로세서(140)는 시뮬레이션 프로세서(130)의 동작에 따른 출력을 실시간으로 시뮬레이션 프로세서(130)가 동작하는 중에 검증할 수 있다. 본 발명의 일 실시예에 따른 검증 장치(100)는 이와 같이 동작함으로써, 보다 빠르게 전자 장치의 검증을 수행할 수 있다.
이상과 같이 본 발명에 대해서 예시한 도면을 참조로 하여 설명하였으나, 본 명세서에 개시된 실시 예와 도면에 의해 본 발명이 한정되는 것은 아니며, 본 발명의 기술사상의 범위 내에서 통상의 기술자에 의해 다양한 변형이 이루어질 수 있음은 자명하다. 아울러 앞서 본 발명의 실시 예를 설명하면서 본 발명의 구성에 따른 작용 효과를 명시적으로 기재하여 설명하지 않았을 지라도, 해당 구성에 의해 예측 가능한 효과 또한 인정되어야 함은 당연하다.
100: 전자 장치 110: 가상 입력 데이터 생성 프로세서
120: 검증 코드 생성 프로세서 130: 시뮬레이션 프로세서
140: 검증 프로세서

Claims (12)

  1. 사용자에 의하여 미리 설정된 입력 테이블에 따라 가상 입력 데이터를 생성하는 가상 입력 데이터 생성 프로세서;
    사용자에 의하여 미리 설정된 제약 조건에 따라 검증 코드를 생성하는 검증 코드 생성 프로세서;
    상기 가상 입력 데이터에 기초하여 검증 대상 소프트웨어 및 가상 환경 모델을 동작시키는 시뮬레이션 프로세서; 및
    상기 검증 코드를 이용하여 상기 시뮬레이션 프로세서의 동작에 따른 출력을 검증하는 검증 프로세서를 포함하고,
    상기 검증 코드 생성 프로세서는
    상기 제약 조건에 대응되는 상태 기계(State Machine)를 생성하고, 상기 상태 기계에 정의되지 않은 동작이 감지되면 오류를 출력하도록 하는 검증 코드를 생성하는
    검증 장치.
  2. 제1항에 있어서,
    상기 가상 입력 데이터 생성 프로세서는
    상기 입력 테이블에 기초하여 입력 조합을 생성하고, 상기 입력 조합에 대응되는 상기 가상 입력 데이터를 생성하는
    검증 장치.
  3. 제2항에 있어서,
    상기 가상 입력 데이터 생성 프로세서는
    상기 가상 입력 데이터에 포함된 시간 데이터에 따라 상기 시뮬레이션 프로세서에 상기 가상 입력 데이터를 인가하는
    검증 장치.
  4. 삭제
  5. 제1항에 있어서,
    상기 시뮬레이션 프로세서는
    상기 가상 입력 데이터에 따라 상기 검증 대상 소프트웨어의 출력을 연산하고, 상기 가상 입력 데이터 및 상기 검증 대상 소프트웨어의 출력에 따라 상기 가상 환경 모델의 출력을 연산하고, 상기 가상 환경 모델의 출력에 따라 상기 검증 대상 소프트웨어의 출력을 연산하는
    검증 장치.
  6. 제1항에 있어서,
    상기 검증 프로세서는
    상기 검증 대상 소프트웨어의 출력 및 상기 가상 환경 모델의 출력을 이용하여 상기 검증 코드를 실행하고, 상기 검증 코드를 실행한 결과에 기초하여 오류 메시지를 출력하는
    검증 장치.
  7. 가상 입력 데이터 생성 프로세서가 사용자에 의하여 미리 설정된 입력 테이블에 따라 가상 입력 데이터를 생성하는 단계;
    검증 코드 생성 프로세서가 사용자에 의하여 미리 설정된 제약 조건에 따라 검증 코드를 생성하는 단계;
    시뮬레이션 프로세서가 상기 가상 입력 데이터에 기초하여 검증 대상 소프트웨어 및 가상 환경 모델을 동작시키는 단계; 및
    검증 프로세서가 상기 검증 코드를 이용하여 상기 시뮬레이션 프로세서의 동작에 따른 출력을 검증하는 단계를 포함하고,
    상기 검증 코드를 생성하는 단계는
    상기 검증 코드 생성 프로세서가 상기 제약 조건에 대응되는 상태 기계(State Machine)를 생성하는 단계; 및
    상기 상태 기계에 정의되지 않은 동작이 감지되면 오류를 출력하도록 하는 검증 코드를 생성하는 단계를 포함하는
    검증 방법.
  8. 제7항에 있어서,
    상기 가상 입력 데이터를 생성하는 단계는
    상기 가상 입력 데이터 생성 프로세서가 상기 입력 테이블에 기초하여 입력 조합을 생성하는 단계; 및
    상기 가상 입력 데이터 생성 프로세서가 상기 입력 조합에 대응되는 상기 가상 입력 데이터를 생성하는 단계를 포함하는
    검증 방법.
  9. 제8항에 있어서,
    상기 가상 입력 데이터 생성 프로세서가 상기 가상 입력 데이터를 생성하고 나서, 상기 가상 입력 데이터 생성 프로세서가 상기 가상 입력 데이터에 포함된 시간 데이터에 따라 상기 시뮬레이션 프로세서에 상기 가상 입력 데이터를 인가하는 단계를 더 포함하는
    검증 방법.
  10. 삭제
  11. 제7항에 있어서,
    상기 검증 대상 소프트웨어 및 가상 환경 모델을 동작시키는 단계는
    상기 시뮬레이션 프로세서가 상기 가상 입력 데이터에 따라 상기 검증 대상 소프트웨어의 출력을 연산하는 단계;
    상기 시뮬레이션 프로세서가 상기 가상 입력 데이터 및 상기 검증 대상 소프트웨어의 출력에 따라 상기 가상 환경 모델의 출력을 연산하는 단계; 및
    상기 시뮬레이션 프로세서가 상기 가상 환경 모델의 출력에 따라 상기 검증 대상 소프트웨어의 출력을 연산하는 단계를 포함하는
    검증 방법.
  12. 제7항에 있어서,
    상기 시뮬레이션 프로세서의 동작에 따른 출력을 검증하는 단계는
    상기 검증 프로세서가 상기 검증 대상 소프트웨어의 출력 및 상기 가상 환경 모델의 출력을 이용하여 상기 검증 코드를 실행하는 단계; 및
    상기 검증 프로세서가 상기 검증 코드를 실행한 결과에 기초하여 오류 메시지를 출력하는 단계를 포함하는
    검증 방법.
KR1020200002932A 2020-01-09 2020-01-09 전자 장치를 검증하기 위한 장치 및 방법 KR102279268B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200002932A KR102279268B1 (ko) 2020-01-09 2020-01-09 전자 장치를 검증하기 위한 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200002932A KR102279268B1 (ko) 2020-01-09 2020-01-09 전자 장치를 검증하기 위한 장치 및 방법

Publications (1)

Publication Number Publication Date
KR102279268B1 true KR102279268B1 (ko) 2021-07-19

Family

ID=77125979

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200002932A KR102279268B1 (ko) 2020-01-09 2020-01-09 전자 장치를 검증하기 위한 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102279268B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090078696A (ko) * 2008-01-15 2009-07-20 포항공과대학교 산학협력단 사용자 환경 프로파일링에 기반을 두어 테스트 대상소프트웨어의 테스트를 지원하는 시뮬레이션 방법
KR20130088506A (ko) * 2012-01-31 2013-08-08 한국전자통신연구원 무인항공기에 대한 비행 제어 소프트웨어를 검증하기 위한 장치 및 방법
WO2018007822A1 (en) * 2016-07-08 2018-01-11 Cocotec Limited An interoperable extensible system for the generation of verified software code
US20190087513A1 (en) * 2017-09-20 2019-03-21 International Business Machines Corporation Learning framework for software-hardware model generation and verification

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090078696A (ko) * 2008-01-15 2009-07-20 포항공과대학교 산학협력단 사용자 환경 프로파일링에 기반을 두어 테스트 대상소프트웨어의 테스트를 지원하는 시뮬레이션 방법
KR20130088506A (ko) * 2012-01-31 2013-08-08 한국전자통신연구원 무인항공기에 대한 비행 제어 소프트웨어를 검증하기 위한 장치 및 방법
WO2018007822A1 (en) * 2016-07-08 2018-01-11 Cocotec Limited An interoperable extensible system for the generation of verified software code
US20190087513A1 (en) * 2017-09-20 2019-03-21 International Business Machines Corporation Learning framework for software-hardware model generation and verification

Similar Documents

Publication Publication Date Title
Jensen et al. A model-based design methodology for cyber-physical systems
CN106980597B (zh) 片上系统验证方法及验证系统
CN106599343A (zh) 一种提高仿真效率的soc系统验证方法和装置
JP6030237B2 (ja) マイコン故障注入方法及びシステム
CN101667134A (zh) 一种构建编译系统的方法、一种编译系统及其构建装置
CN108038283B (zh) 一种虚拟时钟同步的高效高覆盖率SoC验证平台
JPWO2015166563A1 (ja) シミュレーションシステム、プログラマブルコントローラ、シミュレーション装置、エンジニアリングツール
CN106055368A (zh) 应用更新方法和装置
CN112417795B (zh) 一种电路验证方法、装置、电子设备及存储介质
JP2016510498A (ja) データ依存型回路経路応答を使用する一意でクローン化不能なプラットフォーム識別子
KR102279268B1 (ko) 전자 장치를 검증하기 위한 장치 및 방법
US8140315B2 (en) Test bench, method, and computer program product for performing a test case on an integrated circuit
CN113190238A (zh) 框架的部署方法、装置、计算机设备和存储介质
KR100404284B1 (ko) 브랜치 히스토리 테이블의 증진된 로직 검증을 위한시뮬레이션 환경을 생성하는 방법
Kortik et al. Formal verification of ros based systems using a linear logic theorem prover
CN114492266A (zh) 一种芯片验证方法及装置、电子设备、存储介质
Malohlava et al. Sofa 2 component framework and its ecosystem
CN114461225B (zh) 编译方法及装置、电子设备和存储介质
KR20130101222A (ko) 플랫폼 최적화 가이드 정보 제공 시스템 및 그 가이드 제공 방법
US20220300316A1 (en) Verification system, verification method, and recording medium
CN109976773A (zh) 游戏测试环境的部署方法和装置
KR101127469B1 (ko) 네트워크 기반 로봇의 소프트웨어 개발 시스템 및 방법
US20240330552A1 (en) Automatic verification of hardware cryptographic implementations
JP2011048605A (ja) プログラム実行装置及びアプリケーションプログラムの実行方法
JP2017138911A (ja) シミュレーション装置

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20200109

PA0201 Request for examination
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20201221

Patent event code: PE09021S01D

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

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20210624

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20210713

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20210714

End annual number: 3

Start annual number: 1

PG1601 Publication of registration