KR102618391B1 - 호스트 가상화를 통한 임베디드 장치의 테스트 방법 및 이를 수행하는 컴퓨팅 장치 - Google Patents

호스트 가상화를 통한 임베디드 장치의 테스트 방법 및 이를 수행하는 컴퓨팅 장치 Download PDF

Info

Publication number
KR102618391B1
KR102618391B1 KR1020230121240A KR20230121240A KR102618391B1 KR 102618391 B1 KR102618391 B1 KR 102618391B1 KR 1020230121240 A KR1020230121240 A KR 1020230121240A KR 20230121240 A KR20230121240 A KR 20230121240A KR 102618391 B1 KR102618391 B1 KR 102618391B1
Authority
KR
South Korea
Prior art keywords
execution environment
test
user
subhost
testing
Prior art date
Application number
KR1020230121240A
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 KR1020230121240A priority Critical patent/KR102618391B1/ko
Application granted granted Critical
Publication of KR102618391B1 publication Critical patent/KR102618391B1/ko

Links

Images

Classifications

    • 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
    • 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/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • 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/2294Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by remote test
    • 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/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • 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/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

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

Abstract

본 발명은 임베디드 장치의 테스트 방법에 관한 것이다. 바람직하게는 특정 기능 수행을 위해 설계된 임베디드 장치의 기능 테스트를 위한 방법에 관한 것이다. 본 발명에 따른 컴퓨팅 장치에서 수행되는 계층적 호스트 구조를 갖는 임베디드 장치의 테스트 방법은, 메인 호스트가 대상 장치의 실행 환경의 설정 정보를 입력 받는 단계; 상기 설정 정보에 따라 가상화된 실행 환경을 서브 호스트에 구축하는 단계; 상기 구축된 실행 환경에서 특정 소프트웨어 또는 테스트 케이스를 수행하는 단계; 및 상기 수행 결과를 모니터링하는 단계를 포함한다. 본 발명에 따르면 임베디드 장치의 개발 및 테스트 과정에서 물리적인 하드웨어 자원을 매번 새롭게 구성하고 준비할 필요가 없기 때문에 자원을 효율적으로 활용할 수 있다.

Description

호스트 가상화를 통한 임베디드 장치의 테스트 방법 및 이를 수행하는 컴퓨팅 장치{A Method for testing embedded devices through host virtualization and computing devices performing the same method}
본 발명은 임베디드 장치의 테스트 방법에 관한 것이다. 바람직하게는 특정 기능 수행을 위해 설계된 임베디드 장치의 기능 테스트를 위한 방법에 관한 것이다.
종래에는 임베디드 장치를 테스트하기 위해서는 각각의 호스트 장치에 테스트하기 위한 임베디드 장치와 관련된 모든 하드웨어 환경을 구축한후에 해당 임베디드 장치에 소프트웨어를 다운로드해서 테스트를 진행하고 있다.
이때 같은 환경에서 같은 임베디드 장치를 동시에 여러 대 테스트하기 위해서는 하나의 호스트에 여러 개의 임베디드 장치를 연결해서 동시에 여러 대를 테스트할 수도 있다.
사용자는 해당 테스트장비를 갖추고 있어야 하며, 본인이 원하는 환경에 따라서 해당 하드웨어 구성과 소프트웨어를 변경하면서 테스트를 진행해야 한다.
따라서 하나의 하드웨어 장비를 여러 사용자가 공유하면서 테스트를 진행한다면 그때마다 본인이 원하는 환경을 다시 구성하고 테스트를 진행해야 하는 비효율적인 반복 작업이 필요하다.
또한 모든 사용자에게 해당 테스트 장비를 배포하기 위해서는 개발 초기에는 높은 제작비용이 요구되며 잦은 하드웨어 변경으로 비용적으로도 쉽지 않은 단점이 있다.
본 발명은 개발 초기에는 개발 단가가 높거나, 지속적으로 개선이 되는 임베디드 장치의 제한된 수량의 장치를 효율적으로 테스트하기 위한 방법을 제안하는 것을 목적으로 한다.
또한, 본 발명은 소프트웨어 개발되는 과정에서 다양한 환경에서 테스트를 진행하기 위한 환경과 조합에 따라서 하드웨어를 구성하고 소프트웨어를 설치할 수 있는 환경을 구성하는 방법을 제안하는 것을 목적으로 한다.
구체적으로 본 발명은 예상되는 환경이나 조건을 가상화한 해당 환경에서 소프트웨어를 선택하여 미리 설정된 모든 환경이나 조건에서 해당 소프트웨어를 테스트할 수 있는 환경을 제안하는 것을 목적으로 한다.
상기 기술적 과제를 해결하기 위해 본 발명의 일 실시예에 따른 컴퓨팅 장치에서 수행되는 계층적 호스트 구조를 갖는 임베디드 장치의 테스트 방법은, 메인 호스트가 대상 장치의 실행 환경의 설정 정보를 입력 받는 단계; 상기 설정 정보에 따라 가상화된 실행 환경을 서브 호스트에 구축하는 단계; 상기 구축된 실행 환경에서 특정 소프트웨어 또는 테스트 케이스를 수행하는 단계; 및 상기 수행 결과를 모니터링하는 단계를 포함한다.
상기 구축된 실행 환경을 저장하는 단계를 더 포함하고, 상기 서브 호스트에 구축하는 단계는 상기 설정 정보의 이력에 따라 기 구축된 실행 환경을 재사용할 수 있다.
상기 메인 호스트가 사용자의 테스트 요청을 스케쥴링하는 단계; 및 상기 스케쥴링된 스케쥴에 따라 상기 사용자의 대상 장치와 실행 환경이 사용 가능해지면 상기 서브 호스트를 할당하는 단계를 더 포함하고, 상기 서브 호스트에 구축하는 단계는 상기 할당된 서브 호스트에 상기 실행 환경을 구축할 수 있다.
상기 메인 호스트가 상기 테스트 케이스 및 상기 테스트 케이스의 수정 이력을 저장하는 단계를 더 포함한다.
상기 메인 호스트는 사용자를 인증하는 단계를 더 포함하고, 상기 실행 환경의 설정 정보를 입력 받는 단계는 상기 인증된 사용자의 접근 권한에 따른 설정 정보를 입력 받을 수 있다.
본 발명에 따르면 임베디드 장치의 개발 및 테스트 과정에서 물리적인 하드웨어 자원을 매번 새롭게 구성하고 준비할 필요가 없기 때문에 자원을 효율적으로 활용할 수 있다.
또한, 본 발명은 실제 하드웨어를 매번 구매하지 않아도 되므로 초기 비용과 유지 보수 비용을 크게 줄일 수 있다.
또한, 본 발명은 미리 설정된 다양한 가상화 환경을 이용하므로 다양한 테스트 케이스와 조건에 쉽게 대응할 수 있다.
또한, 본 발명은 하드웨어를 물리적으로 준비하는 시간을 단축시킬 수 있으며 필요한 환경을 빠르게 복제하거나 스케일링 할 수 있다.
또한, 본 발명은 동일한 테스트 환경을 쉽게 복제할 수 있으므로 테스트의 정확성과 신뢰성을 높일 수 있다.
또한, 본 발명은 자동화와 표준화가 쉽게 이루어져, 사람에 의한 오류를 줄이고, 테스트 결과의 일관성을 유지할 수 있다.
또한, 본 발명은 중앙 집중형의 메인 호스트에서 모든 가상화된 환경을 중앙에서 관리할 수 있으므로, 복잡성을 크게 줄이고 관리가 용이하다.
또한, 본 발명은 메인 호스트로 사용자별로 원하는 장치, 환경, TC 등을 관리할 수 있으므로, 여러 개발자나 팀이 동시에 효율적으로 작업을 수행할 수 있다.
도 1은 본 발명의 일 실시예에 따른 컴퓨팅 장치의 테스트 시스템의 구성을 개념적으로 나타내는 예시도이다.
도 2은 본 발명의 일 실시예에 따른 임베디드 장치의 테스트 방법의 프로세스를 나타낸 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 테스트를 위한 컴퓨팅 장치의 메인 호스트 구성을 예시하는 도이다.
도 4 내지 5는 본 발명의 일 실시예에 따른 임베디드 장치의 테스트 방법의 세부 프로세스를 나타낸 흐름도이다.
도 6 내지 8은 본 발명의 일 실시예에 따른 테스트를 위한 컴퓨팅 장치의 서브 호스트 구성을 예시하는 도이다.
도 9는 본 발명의 일 실시예에 따른 테스트를 위한 컴퓨팅 장치의 하드웨어 구현을 나타낸 예시도이다.
이하의 내용은 단지 발명의 원리를 예시한다. 그러므로 당업자는 비록 본 명세서에 명확히 설명되거나 도시 되지 않았지만 발명의 원리를 구현하고 발명의 개념과 범위에 포함된 다양한 장치를 발명할 수 있는 것이다. 또한, 본 명세서에 열거된 모든 조건부 용어 및 실시 예들은 원칙적으로, 발명의 개념이 이해되도록 하기 위한 목적으로만 명백히 의도되고, 이외같이 특별히 열거된 실시 예들 및 상태들에 제한적이지 않는 것으로 이해되어야 한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다.
또한, 발명을 설명함에 있어서 발명과 관련된 공지 기술에 대한 구체적인 설명이 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하에는 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예에 대해 상세하게 설명한다.
도 1은 본 발명에 따른 계층적 호스트 구조를 갖는 테스트 시스템을 나타내는 예시도이다.
도 1을 참조하면 본 실시예에 따른 시스템은 테스트를 위한 설정 정보를 입력하는 사용자(10)와 사용자(10)의 설정 정보에 따른 환경을 구축하고 테스트를 수행하는 테스트 장치(100) 및 테스트 대상인 대상 장치(200)로 구성될 수 있다.
사용자(10)는 테스트 장치(100)에서 제공하는 인터페이스를 이용하여 테스트 설정 정보를 입력할 수 있다.
이때, 사용자(10)는 원격으로 테스트 장치(100)에 접속하여 설정 정보를 입력할 수 있다. 또한 사용자(10)는 복수의 사용자 그룹으로 구성될 수 있으며 각각의 사용자(10)가 원격에서 테스트 장치(100)에 접속하여 테스트하고자 하는 대상 장치(200)에 대한 설정 정보를 입력할 수 있으며 테스트 장치(100)는 사용자(10)들의 테스트 스케쥴을 관리할 수 있다.
테스트 장치(100)는 메인 호스트(110)와 서브 호스트(120)의 계층 구조로 구성될 수 있다.
메인 호스트(110)는 연결된 모든 장치와 환경 및 사용자(10), TC(Test Case)등을 관리한다. 서브 호스트(120)는 각각의 임베디드 대상 장치(200)가 연결되어 있는 실제 테스트를 진행한다.
사용자(10)가 메인 호스트(110)에서 테스트할 대상 장치(200) 및 환경을 선택하면 해당 환경이 서브 호스트(120) 장치 상에 가상화 되어 설정되고 소프트웨어들은 설치될 수 있다.
설치된 가상환경(1250)은 테스트를 진행할 대상 장치(200)와 연결되어 있어 사용자(10)가 원하는 장치 및 환경이 가변적으로 구축될 수 있으며 사용자(10)가 선택한 소프트웨어나 TC가 수행된다.
서브 호스트(120)는 하드웨어나 소프트웨어적으로 다양한 환경을 가상화된 환경에 설정한 후 필요에 따라서 설치해서 다양한 환경의 테스트를 가변적으로 수행할 수 있도록 한다.
본 실시예에서 메인 호스트(110)와 서브 호스트(120)는 물리적으로 분리될 수 있으며 따라서 추후 대상 장치(200)가 추가될 때 다양한 서브 호스트(120)와 논리적인 결합을 통해 테스트 장치(100)를 구성할 수 있다.
이하, 도 2를 참고하여 구체적인 테스트 방법을 설명한다.
도 2는 본 발명의 일 실시예에 따른 테스트 방법을 나타내는 흐름도이다.
메인 호스트(110)가 대상 장치(200)의 실행 환경의 설정 정보를 입력 받는다.
설정 정보의 입력은 테스트 장치(100)에서 제공하는 인터페이스를 통하여 사용자(10)가 입력할 수 있다.
메인 호스트(110)는 사용자(10)에게 다양한 테스트 환경을 제공한다. 여기서 사용자(10)는 테스트할 장치와 실행할 소프트웨어, 그리고 이들이 동작할 환경을 선택할 수 있다.
사용자(10)는 GUI (Graphical User Interface)나 텍스트 기반의 사용자 인터페이스 CLI (Command Line Interface)를 통해 원하는 설정을 선택한다.
도 3은 본 발명의 일 실시예에 따른 메인 호스트(110)의 구성을 나타낸다.
본 실시예에 따른 대상 장치(200)를 테스트하기 위한 메인 호스트(110)는 다양한 구성을 포함할 수 있다.
예를 들어 웹서버(Web Server)(112)는 사용자(10)가 테스트 환경을 쉽게 설정하고 관리할 수 있는 웹 기반 인터페이스를 제공할 수 있으며 사용자(10)는 원격으로 접속하여 테스트를 요청할 수 있다.
또한 웹 서버(112)는 외부 시스템이나 서비스가 호스트 시스템과 상호작용할 수 있도록 API 엔드포인트를 제공함으로써 외부의 정보를 요청하거나 사용자(10)의 장치에 처리 결과를 제공해 줄 수 있다.
또한 웹 서버(112)는 사용자의 클라이언트와 메인 호스트(110) 간에 HTTP/HTTPS 프로토콜을 사용하여 데이터를 전송할 수 있도록 지원하며 사용자(10)는 데이터를 메인 호스트(110)에 전송하고 메인 호스트(110)가 데이터를 참고하여 테스트를 수행할 수 있도록 한다.
잡 매니저(Job Manager) (114)는 테스트가 언제, 어떤 장치에서 실행될지 관리하며, 테스트에 필요한 컴퓨팅 리소스와 장치를 동적으로 할당할 수 있다.
또한, 여러 테스트 작업 중 어떤 것이 먼저 실행되어야 하는지 우선순위를 결정한다.
구체적으로 도 4를 참고하면 메인 호스트(110)는 사용자(10)의 테스트 요청을 스케쥴링한다(S10).
다음, 메인 호스트(110)는 스케쥴링된 스케쥴에 따라 상기 사용자(10)의 대상 장치(200)와 실행 환경이 사용 가능해지면 상기 서브 호스트(120)를 할당한다(S20).
디바이스 매니저(116)는 테스트되는 대상 장치(200)들을 관리하고, 장치의 현재 상태를 실시간으로 모니터링한다. 또한, 잡 매니저(114)에 따라 테스트를 실행할 적절한 장치를 선택하고 리소스들을 할당하는 것도 가능하다.
로그 매니저(Log Manager) (118)는 장치의 테스트에서 발생하는 로그 및 사용자(10)의 요청이나 피드백을 수집하고 문제 진단이나 성능 모니터링을 위해 로그 데이터를 저장할 수 있다.
도 5를 참고하면, 본 실시예에서 메인 호스트(110)는 메인 호스트(110)가 상기 테스트 케이스 및 상기 테스트 케이스의 수정 이력을 저장한다(S30). 저장된 이력을 통해 테스트 케이스를 재사용하거나 이력들을 통하여 대상 장치(200)의 성능 이력을 확인할 수 있도록 한다(S40).
이어서 메인 호스트(110)는 설정 정보의 이력에 따라 기 구축된 실행 환경을 재사용할 수 있도록 한다.
나아가 ML Perf (Machine Learning Performance) (119)는 대상 장치(200)가 머신러닝을 포함하는 경우 머신러닝 모델의 성능을 측정하고, 성능 데이터를 분석하여 최적화 포인트를 찾거나 이후에 AutoML 을 이용한 하이퍼파라미터들의 조절에 이용될 수 있도록 한다. 또한, AutoML 기반의 성능 측정 결과를 요약하여 리포트를 생성하여 제공할 수 있다.
TC 매니저 (Test Case Manager) (115)는 테스트에 사용할 테스트 케이스의 목록과 속성을 관리하고 각 테스트 케이스의 실행 결과를 테스트 단위로 추적하고 분석한다. 또한 테스트 케이스의 변경 이력을 추적하고 버전으로 관리한다.
TC 매니저 (Test Case Manager) (115)는 축적된 정상/비정상 로그 및 결과를 AI기반으로 분석/학습하여 향후 수행시에 발생하는 로그를 기반으로 동작 중의 비정상 상태 및 원인을 파악하는데 활용할 수 있도록 하는 것도 가능하다.
즉, 이상의 구성들은 메인 호스트(110) 내에서 서로 연계되어 복잡한 테스트 환경에서도 효율적으로 대상 장치(200)의 테스트를 수행할 수 있게 도와줄 수 있다.
다음 테스트 장치(100)는 설정 정보에 따라 가상화된 실행 환경을 서브 호스트(120)에 구축한다(S200).
본 실시예에서 시스템은 사용자(10)가 선택한 환경을 자동으로 도커 컨테이너나 가상 머신(VM)으로 서브 호스트(120)에 설정하며 가상 환경 내 필요한 소프트웨어와 라이브러리가 설치될 수 있다.
본 실시예에서 시스템은 대상 장치(200)를 테스트하기 위한 OS(105) 상에 가상 환경을 하이퍼바이저(103)와 게스트 OS(107)를 활용한 VM(Virtual Machine) (109) 기반 구성과 도커 컨테이너(104) 기반 구성으로 특정 목적과 상황에 따라 결정할 수 있다.
먼저 도 6을 참조하면 본 실시예에 따른 시스템은 VM(Virtual Machine) 기반 가상 환경(125) 구성을 수행할 수 있다.
하이퍼바이저 (Hypervisor) (103)는 하드웨어를 에뮬레이션하여 여러 개의 독립적인 가상 머신을 실행할 수 있게 한다.
게스트 OS (Operating System) (107)는 가상 머신 위에서 돌아가는 운영체제로 전체 운영체제를 포함하므로 높은 수준의 격리와 복잡한 애플리케이션을 실행할 수 있도록 한다.
예를 들어 테스트 케이스의 내용이 고도의 격리 필요하며, 다양한 OS 환경에서의 테스트가 필요할 때 VM 기반의 구성을 할 수 있다.
또한, 복잡한 네트워크 토폴로지와 상호작용을 테스트해야 할 경우 가상 머신을 이용하여 서브 호스트 상에 환경을 구현할 수 있다.
반면, 가상 머신은 리소스 사용량이 많고 느린 시작/종료 시간과 높은 오버헤드를 가지게 되므로 본 실시예에 따른 메인 호스트(110)는 잡 매니저(114)의 스케쥴을 참고하여 VM 구성 여부를 결정할 수 있다.
또한, 도 7을 참고하면 시스템은 도커 기반 가상 환경(125)을 통해 테스트 케이스를 수행하는 것도 가능하다.
도커 엔진(102)은 컨테이너화된 애플리케이션을 실행하고 관리한다.
컨테이너(104)는 애플리케이션과 그에 필요한 라이브러리, 설정 등을 하나의 패키지로 묶어 실행하는 단위로 구성하고, 빠른 배포와 확장성을 가지도록 한다.
또한 본 실시예에 따른 시스템은 환경 일관성이 유지될 필요가 있는 테스트의 경우 개발부터 배포까지 환경을 도커를 통해 유지할 수 있다.
다만, OS 수준에서의 격리가 가상 머신보다 약할 수 있고, 리눅스 커널을 공유하기 때문에 다양한 OS 환경에서의 테스트에 제약이 있을 수 있다.
즉, 본 실시예에 따른 시스템은 높은 수준의 격리와 다양한 OS 환경을 필요로 테스트르 수행할 때 가상 머신 기반으로 구성할 수 있으며 반대로 빠르고 효율적인 배포와 실행을 원할 때 도커 기반의 테스트 환경을 구성할 수 있다.
따라서, 메인 호스트의 TC 매니저(115)에서 설정된 격리 수준을 정의하는 제1 임계값과, 배포 수준을 정의하는 제2 임계값을 테스트 케이스 별로 관리하며, 잡 매니저(114)는 서브 호스트 별 할당된 테스트 케이스의 격리 수준과 배포 수준을 통하여 서브 호스트를 결정하고 스케쥴링을 수행할 수 있다.
다음, 테스트 장치(100)는 구축된 실행 환경에서 특정 소프트웨어 또는 테스트 케이스를 수행한다(S300).
이어서 테스트 장치(100)는 서브 호스트(120)의 테스트 케이스 수행 결과를 모니터링한다(S400).
상술한 바와 같이 로그 매니저(118)는 장치의 테스트에서 발생하는 로그 및 사용자(10)의 요청이나 피드백을 수집하고 문제 진단이나 성능 모니터링을 위해 로그 데이터를 저장할 수 있다.
나아가, 본 실시예에서 시스템은 머신 러닝 기반의 테스트를 위하여 추가적으로 NPU 또는 GPU 드라이버(106)를 도커 상에 구성할 수 있다.
구체적으로 시스템은 컨테이너가 메인 호스트의 GPU 리소스를 사용할 수 있도록 서브 호스트에 연결되거나 장착된 GPU에 대한 GPU 드라이버를 설치하고, GPU를 컨테이너에 할당할 수 있다. 또한 드라이버 라이브러리와 유틸리티를 컨테이너에 마운트하여 컨테이너 내에서 사용할 수 있도록 한다.
이때 ML Perf(119)는 성능 데이터를 분석하여 최적화 포인트를 찾거나 하이퍼파라미터들을 조절할 수 있도록 한다. 또한, AutoML 기반의 자동화된 테스트 결과를 요약하여 리포트를 생성하여 제공할 수 있다.
나아가 TC 매니저(115)는 테스트에 사용할 테스트 케이스의 목록과 속성을 관리하고 각 테스트 케이스의 실행 결과를 테스트 단위로 추적하고 분석합니다. 또한 테스트 케이스의 변경 이력을 추적하고 버전으로 관리한다.
상술한 바와 같이 메인 호스트(110)는 설정 정보의 이력에 따라 기 구축된 실행 환경을 재사용할 수 있도록 한다.
구체적으로 가상 머신을 재사용하기 위해 스냅샷 (Snapshot)을 이용할 수 있다.
가상 머신의 특정 상태를 스냅샷으로 저장하고 필요할 때 복원하여 사용하도록 한다. 스냅샷을 통해 테스트 전/후의 상태를 쉽게 비교할 수 있고, 오류 발생 시 원상복구가 가능하도록 한다.
또는 특정 설정과 소프트웨어가 설치된 가상 머신을 템플릿으로 저장하며, 동일한 설정의 가상 머신이 여러 개 필요한 경우, 템플릿을 통해 빠르게 생성이 가능하도록 한다.
나아가, 실행 중인 가상 머신을 복제하여 동일한 환경을 생성하는 것도 가능하다. 즉 현재 상태가 유지된 채로 새 환경을 만들 수 있어, 동적인 테스트 조건 하에서 이용될 수 있다.
반면, 도커를 재사용하기 위한 방법으로 도커 컨테이너의 상태를 이미지로 저장하고 이미지를 통해 새로운 컨테이너를 실행할 수 있도록 한다.
이미지를 이용하여 빠른 환경 구성과 배포가 가능하며 이미지는 레지스트리에 업로드되어 여러 사람이 쉽게 접근할 수 있도록 함으로써 사용성을 높일 수 있다.
또는 도커 이미지를 생성하기 위한 스크립트를 도커 파일에 작성하고 이를 통해 동일한 환경을 재생성할 수 있다. 이미지와 달리 코드를 통해 환경을 구성하기 때문에, 환경 설정이 명확하고, 버전 관리가 쉽다는 장점이 있다.
그외 데이터를 컨테이너 외부에 저장하여, 여러 컨테이너에서 동일한 데이터를 재사용할 수 있도록 하며 데이터의 영속성이 유지되며, 여러 컨테이너에서 쉽게 데이터를 공유할 수 있도록 한다.
이때 재사용 되는 가상 머신 또는 도커 컨테이너의 격리 수준 및 배포 수준을 로그 매니저(118)를 통해 갱신할 수 있으며, 재사용 시 가상 환경을 결정할 수 있도록 한다.
추가적으로 상기 메인 호스트(110)는 사용자(10)를 인증하고, 실행 환경의 설정 정보를 입력 받는 단계는 상기 인증된 사용자(10)의 접근 권한에 따른 설정 정보를 입력 받는 것도 가능하다.
도 9를 참조하면, 본 발명의 몇몇 실시예들에서 서비스 서버(300)는 컴퓨팅 장치의 형태로 구현될 수 있다. 서비스 서버(300)를 구성하는 각각의 모듈 중 하나 이상은 범용 컴퓨팅 프로세서 상에서 구현되며 따라서 프로세서(processor)(388), 입출력 I/O(382), 메모리 (memory)(384), 인터페이스(interface)(386) 및 버스(, bus)(385)를 포함할 수 있다. 프로세서(388), 입출력 장치(382), 메모리 (384) 및/또는 인터페이스(386)는 버스(385)를 통하여 서로 결합될 수 있다. 버스(385)는 데이터들이 이동되는 통로(path)에 해당한다.
구체적으로, 프로세서(388)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit), 마이크로프로세서, 디지털 신호 프로세스, 마이크로컨트롤러, 어플리케이션 프로세서(AP, application processor) 및 이들과 유사한 기능을 수행할 수 있는 논리 소자들 중에서 적어도 하나를 포함할 수 있다.
입출력 I/O(382)는 키패드(keypad), 키보드, 터치스크린 및 디스플레이 장치 중 적어도 하나를 포함할 수 있다. 메모리 장치(384)는 데이터 및/또는 프로그램 등을 저장할 수 있다.
인터페이스(386)는 통신 네트워크로 데이터를 전송하거나 통신 네트워크로부터 데이터를 수신하는 기능을 수행할 수 있다. 인터페이스(386)는 유선 또는 무선 형태일 수 있다. 예컨대, 인터페이스(386)는 안테나 또는 유무선 트랜시버 등을 포함할 수 있다. 메모리 (384)는 프로세서(388)의 동작을 향상시키되, 개인정보의 보호를 위한 휘발성의 동작 메모리로서, 고속의 디램 및/또는 에스램 등을 더 포함할 수도 있다.
또한, 메모리(384) 내에는 여기에 설명된 일부 또는 모든 모듈의 기능을 제공하는 프로그래밍 및 데이터 구성을 저장한다. 예를 들어, 상술한 학습 방법의 선택된 양태들을 수행하도록 하는 로직을 포함할 수 있다.
메모리 (384)에 저장된 상술한 학습 방법을 수행하는 각 동작을 포함하는 명령어들의 집합으로 프로그램 또는 어플리케이션을 로드하고 프로세서가 각 동작을 수행할 수 있도록 한다.
이상 여기에 설명되는 다양한 실시예는 예를 들어, 소프트웨어, 하드웨어 또는 이들의 조합된 것을 이용하여 컴퓨터 또는 이와 유사한 장치로 읽을 수 있는 기록매체 내에서 구현될 수 있다.
하드웨어적인 구현에 의하면, 여기에 설명되는 실시예는 ASICs (application specific integrated circuits), DSPs (digital signal processors), DSPDs (digital signal processing devices), PLDs (programmable logic devices), FPGAs (field programmable gate arrays, 프로세서(processors), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 전기적인 유닛 중 적어도 하나를 이용하여 구현될 수 있다. 일부의 경우에 본 명세서에서 설명되는 실시예들이 제어 모듈 자체로 구현될 수 있다.
소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상기 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다. 적절한 프로그램 언어로 쓰여진 소프트웨어 어플리케이션으로 소프트웨어 코드가 구현될 수 있다. 상기 소프트웨어 코드는 메모리 모듈에 저장되고, 제어모듈에 의해 실행될 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다.
따라서, 본 발명에 개시된 실시 예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (10)

  1. 계층적 호스트 구조를 갖는 임베디드 장치의 테스트 방법에 있어서,
    메인 호스트가 대상 장치의 실행 환경의 설정 정보를 입력 받는 단계;
    상기 메인 호스트가 사용자의 테스트 요청을 스케쥴링하는 단계;
    상기 스케쥴링된 스케쥴에 따라 상기 사용자의 대상 장치와 실행 환경이 사용 가능해지면 서브 호스트를 할당하는 단계;
    상기 설정 정보에 따라 가상화된 실행 환경을 상기 할당된 서브 호스트에 구축하는 단계;
    상기 구축된 실행 환경에서 특정 소프트웨어 또는 테스트 케이스를 수행하는 단계; 및
    상기 수행 결과를 모니터링하는 단계를 포함하고,
    상기 할당하는 단계는,
    상기 테스트를 위한 상기 테스트 케이스의 실행 결과를 분석하여 설정된 상기 테스트 케이스 별 격리 수준을 정의하는 제1 임계값 및 배포 수준을 정의하는 제2 임계값에 따라 상기 테스트 요청된 테스트의 실행 환경을 구축할 상기 서브 호스트를 결정하는 것을 특징으로 하는 임베디드 장치의 테스트 방법.
  2. 제 1 항에 있어서,
    상기 구축된 실행 환경을 저장하는 단계를 더 포함하고,
    상기 서브 호스트에 구축하는 단계는 상기 설정 정보의 이력에 따라 기 구축된 실행 환경을 재사용하는 임베디드 장치의 테스트 방법.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 메인 호스트가 상기 테스트 케이스 및 상기 테스트 케이스의 수정 이력을 저장하는 단계를 더 포함하는 임베디드 장치의 테스트 방법.
  5. 제 1 항에 있어서,
    상기 메인 호스트는 사용자를 인증하는 단계를 더 포함하고,
    상기 실행 환경의 설정 정보를 입력 받는 단계는 상기 인증된 사용자의 접근 권한에 따른 설정 정보를 입력 받는 임베디드 장치의 테스트 방법.
  6. 프로세서, 및
    상기 프로세서와 통신하는 메모리를 포함하고,
    상기 메모리는 상기 프로세서로 하여금 동작들을 수행하게 하는 명령들을 저장하고,
    상기 동작들은,
    메인 호스트가 대상 장치의 실행 환경의 설정 정보를 입력 받는 동작,
    상기 메인 호스트가 사용자의 테스트 요청을 스케쥴링하는 동작,
    상기 스케쥴링된 스케쥴에 따라 상기 사용자의 대상 장치와 실행 환경이 사용 가능해지면 서브 호스트를 할당하는 동작,
    상기 설정 정보에 따라 가상화된 실행 환경을 상기 할당된 서브 호스트에 구축하는 동작,
    상기 구축된 실행 환경에서 특정 소프트웨어 또는 테스트 케이스를 수행하는 동작, 및
    상기 수행 결과를 모니터링하는 동작을 포함하고,
    상기 할당하는 동작은,
    상기 테스트를 위한 상기 테스트 케이스의 실행 결과를 분석하여 설정된 상기 테스트 케이스 별 격리 수준을 정의하는 제1 임계값 및 배포 수준을 정의하는 제2 임계값에 따라 상기 테스트 요청된 테스트의 실행 환경을 구축할 상기 서브 호스트를 결정하는 것을 특징으로 하는 컴퓨팅 장치.
  7. 제 6 항에 있어서,
    상기 구축된 실행 환경을 저장하는 동작을 더 포함하고,
    상기 서브 호스트에 구축하는 동작은 상기 설정 정보의 이력에 따라 기 구축된 실행 환경을 재사용하는 컴퓨팅 장치.
  8. 삭제
  9. 제 6 항에 있어서,
    상기 메인 호스트가 상기 테스트 케이스 및 상기 테스트 케이스의 수정 이력을 저장하는 동작을 더 포함하는 컴퓨팅 장치.
  10. 제 6 항에 있어서,
    상기 메인 호스트는 사용자를 인증하는 동작을 더 포함하고,
    상기 실행 환경의 설정 정보를 입력 받는 동작은 상기 인증된 사용자의 접근 권한에 따른 설정 정보를 입력 받는 컴퓨팅 장치.
KR1020230121240A 2023-09-12 2023-09-12 호스트 가상화를 통한 임베디드 장치의 테스트 방법 및 이를 수행하는 컴퓨팅 장치 KR102618391B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230121240A KR102618391B1 (ko) 2023-09-12 2023-09-12 호스트 가상화를 통한 임베디드 장치의 테스트 방법 및 이를 수행하는 컴퓨팅 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230121240A KR102618391B1 (ko) 2023-09-12 2023-09-12 호스트 가상화를 통한 임베디드 장치의 테스트 방법 및 이를 수행하는 컴퓨팅 장치

Publications (1)

Publication Number Publication Date
KR102618391B1 true KR102618391B1 (ko) 2023-12-27

Family

ID=89029681

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230121240A KR102618391B1 (ko) 2023-09-12 2023-09-12 호스트 가상화를 통한 임베디드 장치의 테스트 방법 및 이를 수행하는 컴퓨팅 장치

Country Status (1)

Country Link
KR (1) KR102618391B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090030363A (ko) * 2007-09-20 2009-03-25 엠디에스테크놀로지 주식회사 임베디드 디바이스 테스트 시스템 및 그 방법
KR20140072726A (ko) * 2012-12-05 2014-06-13 경북대학교 산학협력단 단위 테스트 케이스 재사용 기반의 함수 테스트 장치 및 그 함수 테스트 방법
KR101517893B1 (ko) * 2013-10-28 2015-05-06 (주) 제이앤디테크 임베디드 소프트웨어 검사 장치 및 임베디드 소프트웨어 검사 방법
JP2018014098A (ja) * 2016-07-20 2018-01-25 フィッシャー−ローズマウント システムズ,インコーポレイテッド プロセスプラント内のプロセス制御装置へのアクセスを制御する認証と権限付与
KR20200048633A (ko) * 2018-10-30 2020-05-08 삼성에스디에스 주식회사 소프트웨어 자동 테스트 시스템 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090030363A (ko) * 2007-09-20 2009-03-25 엠디에스테크놀로지 주식회사 임베디드 디바이스 테스트 시스템 및 그 방법
KR20140072726A (ko) * 2012-12-05 2014-06-13 경북대학교 산학협력단 단위 테스트 케이스 재사용 기반의 함수 테스트 장치 및 그 함수 테스트 방법
KR101517893B1 (ko) * 2013-10-28 2015-05-06 (주) 제이앤디테크 임베디드 소프트웨어 검사 장치 및 임베디드 소프트웨어 검사 방법
JP2018014098A (ja) * 2016-07-20 2018-01-25 フィッシャー−ローズマウント システムズ,インコーポレイテッド プロセスプラント内のプロセス制御装置へのアクセスを制御する認証と権限付与
KR20200048633A (ko) * 2018-10-30 2020-05-08 삼성에스디에스 주식회사 소프트웨어 자동 테스트 시스템 및 방법

Similar Documents

Publication Publication Date Title
US20230297364A1 (en) System And Method For Upgrading Kernels In Cloud Computing Environments
US10203974B2 (en) Probe insertion via background virtual machine
US9509553B2 (en) System and methods for management virtualization
US20180039507A1 (en) System and method for management of a virtual machine environment
US20150169346A1 (en) Method for controlling a virtual machine and a virtual machine system
US10838754B2 (en) Virtualized systems having hardware interface services for controlling hardware
JP7143417B2 (ja) コンピューティング・デバイス
JP5352890B2 (ja) 計算機システムの運用管理方法、計算機システム及びプログラムを記憶する計算機読み取り可能な媒体
US11442765B1 (en) Identifying dependencies for processes for automated containerization
Armstrong et al. Performance issues in clouds: An evaluation of virtual image propagation and I/O paravirtualization
KR20210036874A (ko) 개발 키트 조작 임무 처리 방법, 장치, 기기 및 저장매체
US11487878B1 (en) Identifying cooperating processes for automated containerization
US20190332409A1 (en) Identification and storage of logical to physical address associations for components in virtualized systems
US11650810B1 (en) Annotation based automated containerization
CN115965517A (zh) 图形处理器资源管理方法及装置、电子设备和存储介质
US20220214928A1 (en) Workload Configuration Extractor
US10642718B2 (en) Framework for testing distributed systems
US10530892B2 (en) Processing request for multi-versioned service
US20220413902A1 (en) Partition migration with critical task prioritization
Robert et al. Software frameworks for SDR
KR102618391B1 (ko) 호스트 가상화를 통한 임베디드 장치의 테스트 방법 및 이를 수행하는 컴퓨팅 장치
US20150331705A1 (en) Allocating hypervisor resources
US20220382576A1 (en) Performing an application snapshot using process virtual machine resources
CN114860401A (zh) 异构云桌面调度系统、方法、服务系统、装置及介质
KR102660882B1 (ko) 임베디드 장치의 물리적 연결 테스트 방법 및 이를 수행하는 컴퓨팅 장치

Legal Events

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