KR20080095528A - 이뮬레이트를 활용한 임베디드 소프트웨어 테스트 장치 및그 방법 - Google Patents

이뮬레이트를 활용한 임베디드 소프트웨어 테스트 장치 및그 방법

Info

Publication number
KR20080095528A
KR20080095528A KR1020070040128A KR20070040128A KR20080095528A KR 20080095528 A KR20080095528 A KR 20080095528A KR 1020070040128 A KR1020070040128 A KR 1020070040128A KR 20070040128 A KR20070040128 A KR 20070040128A KR 20080095528 A KR20080095528 A KR 20080095528A
Authority
KR
South Korea
Prior art keywords
test
embedded software
interface
software
emulator
Prior art date
Application number
KR1020070040128A
Other languages
English (en)
Other versions
KR101019210B1 (ko
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 KR1020070040128A priority Critical patent/KR101019210B1/ko
Priority to US12/018,347 priority patent/US8156475B2/en
Publication of KR20080095528A publication Critical patent/KR20080095528A/ko
Application granted granted Critical
Publication of KR101019210B1 publication Critical patent/KR101019210B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by 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

Landscapes

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

Abstract

여기에 개시된 이뮬레이터를 활용한 임베디드 소프트웨어의 테스트 장치는 임베디드 소프트웨어의 코드를 전송받고, 상기 임베디드 소프트웨어의 각 인터페이스에 해당하는 인터페이스 심볼이 코드에서 매핑되는 위치를 식별하고, 임베디드 소프트웨어의 인터페이스를 테스트하기 위한 테스트 케이스를 생성하고, 상기 생성된 테스트 케이스를 이뮬레이터에 제공하고, 상기 이뮬레이터가 실행되도록 제어하고, 상기 이뮬레이터로부터 테스트 케이스가 실행된 결과를 제공받고, 상기 제공된 결과를 분석한다.

Description

이뮬레이트를 활용한 임베디드 소프트웨어 테스트 장치 및 그 방법{Test Device of Embedded Software using the emulator and Method thereof}
본 발명은 임베디스 소프트웨어 테스트(Embedded Software Test)에 관한 것으로, 좀 더 구체적으로는 임베디스 소프트웨어를 자동으로 테스트하기 위한 장치 및 방법에 관한 것이다.
기존 임베디드 소프트웨어 테스트 도구는 임베디드 소프트웨어 통합 개발 도구 내의 디버거이거나 임베디드 소프트웨어 성능 분석에 국한된 테스트 도구이다.
기존 임베디드 소프트웨어 통합 개발 도구 내의 디버거의 경우 일반적으로 브레이크 포인트, 심볼 모니터링, 메모리 모니터링, 스택 모니터링과 같은 기능을 제공한다. 일례로 현재 임베디드 소프트웨어 도구 시장 점유율의 상위를 차지하고 있는 WindRiver의 TORNADO II나 Microsoft의 WinCE를 기본으로 한 모바일 닷넷 솔루션인 Visual.Studio.NET의 경우 디버깅을 위해 코드의 모든 영역에 브레이크포인트를 설정할 수 있고, 글로벌 변수뿐만 아니라 로컬 변수까지 모니터링하거나 값을 변경할 수 있고, 코드와 데이터 공간의 모든 메모리 영역을 읽거나 변경할 수 있는 기능을 제공한다. 그러나, 이러한 기능은 디버깅을 수행하는 소프트웨어 엔지니어의 개인적 경험과 전문 지식 수준에 따라 전문적인 테스트보다는 ad-hoc 방식의 테스트가 이루어 질 수 밖에 없다.
디버거 형태가 아닌 기존 임베디드 소프트웨어 성능 분석에 관한 테스트 도구의 경우 일반적으로 메모리 사용 분석, 성능 분석, 실행 경로 분석과 같은 소프트웨어 분석 기능을 제공한다. 현재 임베디드 소프트웨어 테스트 도구 분야에서 세계 시장 점유율 1, 2위를 차지하고 있는 IBM Rational의 Test RealTime과 Metrowerks의 CodeTEST의 경우 이러한 소프트웨어 분석 기능을 중심으로 전체 임베디드 소프트웨어를 블랙박스화한 시스템 테스트 관점에서의 테스트에 집중되어 있다. 그러나, 임베디드 소프트웨어는 OS, 디바이스드라이버 등의 서로 다른 특징의 소프트웨어 컴포넌트와 하드웨어 컴포넌트들이 매우 밀접히 결합되어 있기 때문에 이들 구성요소들 사이의 통합 테스트가 매우 중요하며 이를 지원하는 테스트 방법이 필요하다.
기존 임베디드 소프트웨어 테스트 기술 중 임베디드 소프트웨어 통합 개발 도구 내의 디버거를 기반으로 소프트웨어를 테스트할 경우, 단순히 불특정 메모리 영역과 CPU 상태를 모니터링하는 수준에 머무르는, 소프트웨어 엔지니어의 개인적 경험을 바탕으로 하는 ad-hoc 방식의 테스트가 이루어 질 수 밖에 없다. 즉 결함을 발견하거나 결함 원인을 식별하는데 있어서 객관적 지표보다는 테스트를 수행하는 소프트웨어 엔지니어의 주관에 의존하여 수행되게 된다. 효율적인 임베디드 소프트웨어 테스트를 위해선 임베디드 소프트웨어 특징을 정확히 반영한 테스트 데이터의 선정 기술과 객관적 결함 판정 및 원인 분석을 위해선 임베디드 소프트웨어 테스트를 자동화하는 방법이 필요하다.
또한, 임베디드 소프트웨어는 독립적인 테스트가 불가능하기 때문에 대부분의 경우 완제품 상태에서 소프트웨어와 하드웨어의 경계 구분 없이 테스트가 이루어진다. 이러한 임베디드 소프트웨어 특성은 소프트웨어의 잠재적 결함을 발견하기 어렵고, 발견된 결함도 발생 위치와 결함 원인에 대해 파악하기 매우 힘들게 한다. 기존 테스트 도구들이 지향하는 시스템 테스트 보다는 구성요소 중 어느 부분에 결함이 존재하는 지 식별하는데 매우 중요한 기준이 되는 통합 테스트에 대한 기술 및 자동화 방법이 필요하다.
기존 임베디드 소프트웨어 테스트 도구들은 노동집약적 작업인 임베디드 테스트 수행 자동화에 주력하고 있다. 그러나, 기술집약적 작업인 임베디드 소프트웨어 특성을 반영한 테스트 케이스 설계와 테스트 케이스 선정, 테스트 결과 분석 작업을 지원하지 못하고 있다. 일반적인 경우 소스 코드 기반의 화이트 박스 테스트 기법이나 리얼타임 소프트웨어 테스트를 위한 스테이트 챠트 기반의 테스트를 지원한다. 그러나, 이것은 일반 패키지 소프트웨어 테스트와 구별되는 하드웨어와 다른 소프트웨어 컴포넌트 사이의 통합과 같은 임베디드 소프트웨어 특성을 반영하지는 못하고 있다. 즉 임베디드 소프트웨어 계층 간 통합 테스트를 지원하는 테스트 기술 및 자동화 방법이 필요하다.
또한, 테스트 도구가 실질적으로 임베디드 소프트웨어 개발자에게 도움이 되도록 하기 위하여는 기본적인 테스트 케이스 선정과 테스트 수행뿐 아니라, 결함이 존재하는 지에 대한 판정과 결함 원인을 분석할 수 있는 디버깅 기능과 테스트 작업이 연동될 필요가 있으며, 이에 대한 테스트 기술 및 자동화 방법이 필요하다.
따라서, 본 발명에서는 임베디드 소프트웨어를 자동으로 테스트를 하기 위한 장치 및 방법을 제안한다.
따라서, 본 발명의 목적은 임베디드 소프트웨어를 자동으로 테스트를 하기 위한 장치를 제공한다.
본 발명의 또 다른 목적은 임베디드 소프트웨어를 자동으로 테스트를 하기 위한 방법을 제공한다.
상술한 바와 같은 본 발명의 목적을 달성하기 위한 본 발명의 특징에 의하면 이뮬레이터를 활용한 임베디드 소프트웨어의 테스트 장치는 임베디드 소프트웨어의 코드를 전송받고, 상기 임베디드 소프트웨어의 각 인터페이스에 해당하는 인터페이스 심볼이 코드에서 매핑되는 위치를 식별하고, 임베디드 소프트웨어의 인터페이스를 테스트하기 위한 테스트 케이스를 생성하고, 상기 생성된 테스트 케이스를 이뮬레이터에 제공하고, 상기 이뮬레이터가 실행되도록 제어하고, 상기 이뮬레이터로부터 테스트 케이스가 실행된 결과를 제공받고, 상기 제공된 결과를 분석한다.
(실시예)
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시예를 첨부된 도면을 참조하여 설명한다.
본 발명은 이뮬레이트 테스트 환경 기반의 임베디드 소프트웨어 테스트 자동화 방법에 관한 것이다. 이를 위해 본 발명은 임베디드 소프트웨어 인터페이스 유형, 임베디드 소프트웨어 인터페이스 테스트 커버리지, 임베디드 소프트웨어 인터페이스 테스트 자동화 방법을 핵심 구성으로 한다. 특히 임베디드 소프트웨어 인터페이스 테스트 자동화 방법을 위해 임베디드 소프트웨어 인터페이스 테스트 자동화 플랫폼을 정의하며 임베디드 소프트웨어 분석엔진, 테스트 케이스 생성엔진, 테스트 실행엔진, 테스트 결과 분석엔진으로 구성된다.
도 1은 본 발명에 따른 실시예를 도시한 블록도이다.
도 1을 참조하면, 임베디드 소프트웨어의 테스트 시스템(100)은 호스트 시스템(Host System ; 10), 이뮬레이터(Emulator ; 20), 평가 보드(Evaluation Board ; 30), 및 OS 서버(OS Server ; 40)를 포함한다.
호스트 시스템(10)은 본 발명에 따른 임베디드 소프트웨어의 인터페이스를 테스트하기 위한 테스트 케이스를 생성한다. 또한, 생성된 테스트 케이스는 이뮬레이터(20)에 의하여 실행되도록 제어한다. 이뮬레이터(20)는 호스트 시스템(10)으로부터 생성된 테스트 케이스를 실행하고, 실행된 결과를 출력한다. 평가 보드(30)는 임베디드 소프트웨어(41)를 하드웨어와 함께 테스트하기 위하여 제공된다. OS 서버(40)는 임베디드 소프트웨어(41)를 포함하며, 이뮬레이터(20)의 제어에 따라 임베디스 소프트웨어(41)를 평가 보드(30)에 로딩한다.
호스트 시스템(10)은 임베디드 소프트웨어 분석엔진(11), 테스트 케이스 생성엔진(12), 테스트 실행엔진(13), 및 테스트 결과 분석엔진(14)를 포함한다. 임베디드 소프트웨어 분석엔진(11)은 OS 서버(40)으로부터 임베디드 소프트웨어(41)의 소스 코드(Source Code) 또는 오브젝트 코드(Object code)를 전송받는다. 임베디드 소프트웨어 분석엔진(11)은 임베디드 소프트웨어의 각 인터페이스에 해당하는 인터페이스 심볼이 소스 코드(Source Code) 또는 오브젝트 코드(Object Code)에서 매핑(mapping)되는 위치를 ELF(Executable Linker Format) 파일로부터 자동으로 식별한다. 테스트 케이스 생성엔진(12)은 임베디드 소프트웨어(41)를 테스트하기 위한 테스트 케이스를 생성한다. 테스트 케이스 생성엔진(12)은 이뮬레이터(30)에서 실행할 수 있도록 스크립트 형태의 테스트 케이스를 제공한다. 테스트 실행엔진(13)은 테스트 케이스 생성엔진(12)로부터 제공된 테스트 케이스를 이뮬레이터(20)에 제공하고, 이뮬레이터(20)가 실행되도록 제어한다. 테스트 결과 분석엔진(14)은 이뮬레이터(20)로부터 테스트 케이스가 실행된 결과를 제공받고, 제공된 결과를 분석한다. 테스트 결과 분석엔진(14)은 테스트 커버리지(Test Coverage), 결함 정보(Fault Information), 및 성능(Performance)에 관하여 리포트한다.
본 발명의 실시예는 임베디드 소프트웨어를 기반으로 하는 테스트 자동화 장치를 예시한다.
도 2는 본 발명에 따른 임베디드 시스템의 인터페이스를 예시한다.
도 2를 참조하면, 임베디드 시스템은 물리적인 하드웨어 계층(Hardware Layer ; 31), HAL(Hardware Abstraction Layer ; 32), OS 계층(Operation System Layer ; 35), 및 어플리케이션 계층(Application Layer ; 36)을 포함한다. 예를 들어, 디바이스 드라이버는 운영체제와 HAL에 걸쳐진 형태로 소프트웨어 유닛이 존재한다.
임베디드 소프트웨어(33)는 각 계층에 있는 소프트웨어 유닛들이 서로 유기적으로 결합된다. 각 계층에 존재하는 소프트웨어 유닛은 SUk, SUd, 및 SUp로 구분된다. SUk (Kernel-dependent Software Unit)는 커널에 의존적인 소프트웨어로, 운영체제의 API(Application Program Interface)와 같은 운영체제 서비스이다. SUd(Device-dependent Software Unit)는 LCD Controller와 같이 물리적 장치(device)를 지원하기 위한 소프트웨어이다. SUp (Processor-dependent Software Unit)는 HAL의 소프트웨어로, 하드웨어 장치 초기화 및 설정(configuration)과 같이 대상 프로세서(processor)에 의존적인 소프트웨어이다.
도 3은 도 2에 도시된 임베이드 시스템의 인터페이스를 도시한다.
도 3을 참조하면, 임베디드 소프트웨어에서 하드웨어에 직접 접근하는 하드웨어 유닛(Hardware Unit)은 프로세서의 레지스터, 메모리, 입출력 디바이스, 타이머이다. 이 경우를 하드웨어 파트와의 인터페이스 (HPI)라 정의한다. 임베디드 소프트웨어에서 운영체제의 서비스를 사용할 경우, 운영체제 파트와의 인터페이스를 (OPI) 라 정의한다. 각 Layer의 소프트웨어 유닛에는 이들 인터페이스가 동그라미로써 나타남을 알 수 있다. 즉 본 발명에서 정의된 인터페이스(Interface)란, 서로 다른 두 계층이 중첩되는 부분으로 임베디드 소프트웨어는 하드웨어와의 인터페이스와 OS와의 인터페이스에 대하여 모두 다섯 종류의 인터페이스를 정의한다.
첫째, 하드웨어 부분 인터페이스 HPI1 이다. HPI1의 경우, SUd, SUp와 같은 소프트웨어 유닛에서 램(RAM)와 같은 독출/기입(Read/Write) 가능한 하드웨어 유닛 (HUa1) 에 직접 접근하여 값을 읽거나 쓰는 경우의 인터페이스이다.
둘째, 하드웨어 부분 인터페이스 HPI2이다. HPI2의 경우, SUp와 같은 소프트웨어 유닛에서 Register (HUa1) 의 주소를 통해 타이머, LED와 같은 다른 하드웨어 유닛 (HUa2)을 간접적으로 제어하는 경우의 인터페이스이다.
셋째, OS부분 인터페이스 OPI1이다. OPI1의 경우, SUd와 SUp에서 하드웨어 제어에 직접적인 관련이 없는 SUk의 함수들이 호출되는 경우의 인터페이스이다. 이때, 호출되는 SUk의 함수에는 태스크 관리, 태스크 간 통신, 예외 처리와 관련된 시스템 콜(System Call) 및 API가 해당된다.
넷째, OS부분 인터페이스 OPI2이다. OPI2의 경우, SUd와 SUp에서 직접적인 하드웨어 제어와 관련이 없는 SUk의 함수들이 호출되는 경우의 인터페이스이다. 이때, 호출되는 SUk의 함수에는 리눅스(Linux)의 가상 주소(Virtual Address)를 관리하기 위한 시스템 콜 및 API가 해당된다.
다섯째, OS부분 인터페이스 OPI3이다. OPI3의 경우, SUd와 SUp에서 직접적인 하드웨어 제어와 관련이 있는 SUk의 함수들이 호출되는 경우의 인터페이스이다. 이때 호출되는 SUk의 함수에는 물리적인 메모리 (Physical Memory) 및 타이머와 같이 실제 하드웨어(HUa1) 제어를 위한, 메모리 관리, 시간 관리, 인터럽트 처리, IO 관리, 네트워킹, 및 파일 시스템을 처리하기 위한 시스템 콜 및 API가 해당된다. 본 발명은 이 다섯 유형의 인터페이스를 중요한 테스트 위치로 정의한다.
본 발명의 실시예는 임베디드 소프트웨어 인터페이스를 테스트하는 자동화 장치에 관한 것이다. 본 발명의 임베디드 소프트웨어 테스트 자동화는 기본 디버깅과 성능 모니터링 기능을 갖는 이뮬레이터에 임베디드 소프트웨어 테스트를 위한 인터페이스 테스트 커버리지에 따른 테스트 작업 자동화를 통합한다. 즉 본 발명은 자동으로 인터페이스를 파악하고, 인터페이스 테스트 기준에 따른 테스트 케이스를 자동 생성하여, 테스트 수행할 수 있도록 하며, 결함 발견과 결함 원인 추적과 같은 디버깅 작업을 테스트 작업에 통합한 임베디드 소프트웨어 테스트 자동화 방법이다.
도 4는 본 발명에 따른 실시예의 동작 순서를 도시한 흐름도이다.
도 4를 참조하면, 본 발명의 임베디드 소프트웨어 테스트 장치(100)는 임베디드 소프트웨어 분석엔진(Embedded SW Analyzing Engine ; 11), 테스트 케이스 생성엔진(Test Case Generating Engine ; 12), 테스트 실행엔진(Test Executing Engine ; 13), 및 테스트 결과 분석엔진(Test Result Analyzing Engine ; 14)를 포함한다.
임베디드 소프트웨어 분석엔진(11)은 디버깅 정보를 포함한 실행 이미지 포맷의 임베디드 소프트웨어(41)로부터 인터페이스 위치를 자동 식별한다. (111) 임베디드 소프트웨어 분석엔진(11)은 테스트 대상 임베디드 소프트웨어의 디버깅 정보를 포함한 실행 이미지로부터 테스트 정보와 디버깅 및 모니터링 심볼 정보를 추출하는 기능을 수행한다.(112) 모니터링 심볼 정보는 인터페이스 특징에 따라 정의되어있는 함수 호출 관계를 기반으로 결정된다. 즉, 모니터링 심볼 정보는 해당 함수의 입력과 리턴 파라미터가 해당 인터페이스가 실행되었을 때 통과/실패를 결정하게 한다. 임베디드 소프트웨어 분석엔진(11)은 임베디드 소프트웨어 내에 있는 모든 함수의 호출관계(caller-callee)를 추출한다.(113) 임베디드 소프트웨어 분석엔진(11)은 각 임베디드 소프트웨어 계층에 속하는 함수를 식별한다.(114) 예를 들면, 임베디드 소프트웨어 계층은 OS 시스템 콜과 OS API 함수의 경우 OS Kernel Layer에 속하는 SUk 함수로 자동 식별된다. 함수 명칭이 디바이스 드라이버 명으로 시작되는 함수, 즉 함수 경로가 디바이스 드라이버에 속하는 함수는 디바이스 드라이버 계층인 SUd로 자동 식별된다. 또한, 함수 명칭이 프로세서 명으로 시작되는 함수는 HAL 계층인 SUp로 자동 식별된다. 임베디드 소프트웨어 분석엔진(11)은 임베디드 소프트웨어 계층 사이의 함수 호출 관계에 따라 도 3에서 도시한 바와 같이 구분되는 인터페이스 유형으로 추출한다.(115) 예를들면, SUd와 HUa1 (RAM) 사이의 함수 호출 관계, 또는 SUp와 HUa1 (RAM) 사이의 함수 호출 관계는 인터페이스 HPI1으로 자동 추출한다. SUp와 HUa1 (Special Register) 사이의 함수 호출 관계는 인터페이스 HPI2으로 자동 추출한다. SUk와 SUd 사이의 함수 호출 관계, 또는 SUk와 SUp 사이의 함수 호출 관계 중 SUk가 태스크 관리, 태스크 간 통신, 예외 처리 관련 시스템 콜과 OS API 함수인 경우 인터페이스 OPI1으로 자동 추출한다. SUk와 SUd 사이의 함수 호출 관계, 또는 SUk와 SUp 사이의 함수 호출 관계 중 SUk가 가상 메모리 관리 관련 시스템 콜과 OS API 함수인 경우 인터페이스 OPI2로 자동 추출한다. SUk, SUd와 HUa1 (RAM, Special Register) 사이의 함수 호출 관계, 또는 SUk, SUp와 HUa1 (RAM, Special Register) 사이의 함수 호출 관계 중 SUk가 메모리 관리, 시간 관리, 인터럽트 처리, I/O 관리, 네트워킹, 파일 시스템 관련 시스템 콜과 OS API 함수인 경우 인터페이스 OPI3으로 자동 추출한다. 임베디드 소프트웨어 분석엔진(11)은 인터페이스 특징에 해당하는 인터페이스를 최종 핵심 테스트 위치로 추출한다.(116) HPI 인터페이스 유형의 경우는 HUa1가 RAM이냐, Special Register이냐에 따라 인터페이스 특징에 해당하는 인터페이스를 최종 결정할 수 있으며, OPI 인터페이스 유형의 경우는 SUk가 어떤 시스템 콜 혹은 OS API 함수이냐에 따라 인터페이스 특징에 해당하는 인터페이스 정보가 최종 결정된다.(117)
계속해서 도 4를 참조하면, 테스트 케이스 생성엔진(12)은 해당 인터페이스에서 모티터링되어야 할 심볼, 입력 데이터와 예상 출력으로 구성되는 테스트 케이스를 자동 생성한다. 예를 들면, 임베디드 소프트웨어 인터페이스에 해당하는 함수의 파라미터나 리턴 값은 하드웨어 프로세서 스펙에 명시된 표준 프로시저 호출 규약에 따라 R0, R1, R2, R3 등의 레지스터로 제한되기 때문에 기계적으로 자동 결정된다.
테스트 케이스 생성엔진(12)은 인터페이스별 테스트 케이스를 생성한다.(121) 즉, 테스트 케이스(122)는 모니터링 심볼 결정, 입력 데이터에 해당하는 통과/실패 기준 결정, 예상 출력 결정을 포함한다. 테스트 케이스 생성엔진(12)은 테스트 케이스를 이뮬레이터에서 자동 실행할 수 있도록 테스트 스크립트로 변환한다.(123) 테스트 스크립트는 인터페이스 위치에 브레이크하는 스크립트 명령, 테스트 타겟 실행을 자동화하는 스크립트 명령, 테스트 심볼의 통과/실패 기준의 실제 값을 모니터링하는 스크립트 명령, 예상 출력과 모니터링된 실제 값을 비교하여 테스트 결과의 통과/실패를 판정하는 스크립트 명령, 및 테스트 결과 분석을 위해 테스트 수행 결과를 로그로 저장하는 스크립트 명령으로 구성한다. 테스트 케이스 생성엔진(12)은 인터페이스 커버리지 기준에 따른 테스트 케이스의 집합인 테스트 슈트 (Test Suites)를 자동 생성한다.(124) 테스트 케이스는 이뮬레이터를 자동으로 실행시킬 수 있도록 하는 스크립트 언어로 포맷(Format)되어 이뮬레이터의 디버깅과 모니터링 기능을 활용할 수 있도록 한다. 테스트 케이스는 해당 인터페이스에서 모니터링되어야 할 심볼과 입력 데이터, 예상 출력으로 구성한다.
테스트 실행엔진(13)은 테스트해야 할 테스트 케이스를 GUI 버튼(테스트 슈트 툴바)으로 연결하고, 테스트하고자 하는 대상 임베디드 소프트웨어를 위한 테스트 슈트 툴바를 이뮬레이터를 통해 실행시킨다.(131) 테스트 실행엔진(13)은 테스트 수행한 결과 테스트 로그(132) 형태의 결과를 저장한다.
테스트 결과 분석엔진(14)은 테스트 로그의 통과/실패 정보로부터 테스트가 수행된 인터페이스와 수행되지 않은 인터페이스를 식별하여 인터페이스 테스트 커버리지(144)를 계산한다.(141) 테스트 결과 분석엔진(14)은 테스트 로그의 통과, 실패 정보로부터 결함이 발생한 위치와 원인을 분석한다.(142) 즉, 테스트 결과 분석엔진(14)은 결함 정보(145)를 출력한다. 테스트 결과 분석엔진(14)은 테스트 로그의 성능 측정 값으로부터 성능의 최대(max), 최소(min), 및 평균(average)를 계산한다.(143) 즉, 테스트 결과 분석엔진(14)은 시스템(100)의 성능(146)을 리포트한다.
테스트가 어느 정도 진행되었는지를 나타내는 테스트 커버리지 데이터와 함께 테스트된 인터페이스 영역과 테스트되지 않은 인터페이스 영역을 분석함으로 테스트 완료 시점과 테스트가 추가적으로 이루어져야 할 인터페이스에 대하여 알 수 있도록 한다. 이뮬레이터에서 단순히 제공하는 디버깅과 성능 모니터링을 테스트 커버리지와 관련한 테스트 작업 자동화에 통합함으로써 테스트 커버리지 정보 이외에도 결함 발생 여부와 발생 위치, 발생 원인과 같은 결함 정보를 분석한다.
일반적으로 소프트웨어 테스트를 위해서 코드 기반의 화이트박스 테스트와 요구사항 스펙 기반의 블랙박스 테스트 등 다양한 테스트 커버리지 기준이 있다. 그러나, 이것은 임베디드 소프트웨어 테스트 커버리지 기준으로 사용되기에는 불충분하다. 왜냐하면 임베디드 시스템은 하드웨어, OS 커널, 미들웨어, 디바이스 드라이버, HAL, 어플리케이션과 같은 이질적 계층간 상호작용이 핵심이며, 이들 인터페이스들이 테스트되어야 할 핵심 부분이기 때문이다. 본 발명은 수학식 1에 나타난 바와 같이 임베디드 소프트웨어 인터페이스를 임베디드 소프트웨어 테스트 커버리지의 기반으로 정의하며, 이 부분은 결함 발견 및 인터페이스 계층 간의 결함 원인 유추를 위한 모니터링 대상이 된다. 본 발명의 인터페이스 테스트 커버리지는 다음과 같이 정의하며, 임베디드 소프트웨어 테스트는 인터페이스 테스트 커버리지 100%를 테스트 목표로 한다.
인터페이스 테스트 커버리지 (Interface Test Coverage) = 실행된 인터페이스 / 테스트 대상 임베디드 소프트웨어에서 인터페이스 특징에 따라 결정되는 모든 인터페이스
본 발명은 소프트웨어가 실제 하드웨어에 임베디드되어 제품이 완성되기 이전에 타겟 하드웨어를 이뮬레이트할 수 있는 환경에서 소프트웨어를 테스트하는 방법과 그 자동화를 위한 임베디드 소프트웨어 테스트 자동화 장치에 관한 것이다.
따라서, 본 발명의 임베디드 소프트웨어 테스트 방법과 자동화 장치는 다음과 같은 효과를 가진다. 첫째, 본 발명은 임베디드 소프트웨어의 인터페이스를 기반으로 테스트할 수 있도록 새로운 테스트 커버리지 기준을 제공함으로 하드웨어와 여러 계층의 소프트웨어 유닛이 밀접히 결합된 임베디드 소프트웨어의 특징을 반영하여 결함 발생 위치 식별에 효과적인 테스트 방법을 제공한다. 둘째, 본 발명은 테스트 대상 임베디드 소프트웨어의 인터페이스를 자동 파악하여 테스트 케이스를 자동 생성할 수 있으며, 특히 자동화하기 매우 힘든 부분이었던 테스트 케이스의 예상 출력 부분도 자동 추출함으로 기술집약적인 테스트 케이스 생성의 전 작업을 자동화할 수 있다. 즉, 하드웨어에 의존적인 소프트웨어 계층과 임베디드 OS Kernel에 의존적인 계층의 인터페이스 위치를 찾고, 각 인터페이스 유형을 HPI1, HPI2, OPI1, OPI2, 및 OPI3의 다섯 가지로 구분하고, 이 유형에 따라 모니터링 되어야 할 심볼과 입력 데이터, 예상 출력을 자동적으로 결정할 수 있는 방법을 제공한다. 셋째, 본 발명은 이뮬레이터의 디버깅 및 모니터링 기능을 테스트 자동화 도구에 통합함으로써 테스트 케이스를 실행한 후, 결함을 자동 발견하고, 결함 원인을 제시할 수 있도록 하는 방법을 제공한다.
일반적으로 소프트웨어 엔지니어는 임베디드 소프트웨어 파트만을 단독으로 실행시킬 수 없어서, 임베디드 소프트웨어의 코드를 포함한 전체 소프트웨어를 이뮬레이터에서 테스트하고 디버깅한다. 이때 테스트를 제대로 다 하였는지, 결함 판정은 올바른지, 결함 발생 위치가 정확히 어디인지를 판별하기 위해서는 하드웨어, OS kernel, 디바이스 드라이버, HAL 와 같은 모든 임베디드 소프트웨어 컴포넌트에 대한 전문 지식과 경험을 필요로 한다. 이것은 임베디드 소프트웨어 테스트를 제대로 할 수 없게 만드는 주요 장애 요인이 되었다. 그러나 이 문제는 테스트 작업을 이뮬레이터에서 제공하는 단순한 디버깅 및 모니터링 기능과 통합하고, 이때 테스트 입력 심볼에 대한 통과/실패의 자동 판단 기능을 테스트 케이스에 추가함으로써 해결하는 방법을 제공한다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명은 임베디드 소프트웨어의 인터페이스를 테스트 할 수 있도록 새로운 테스트 커버리지 기준을 제공한다.
본 발명은 하드웨어와 여러 계층의 소프트웨어 유닛이 밀접히 결합된 임베디드 소프트웨어의 특징을 반영하여 결함 발생 위치 식별에 용이하다.
본 발명은 테스트 대상 임베디드 소프트웨어의 인터페이스를 자동 파악하여 테스트 케이스를 자동 생성한다.
본 발명은 임베디드 소프트웨어의 테스트 케이스 생성의 모든 과정을 자동화할 수 있다.
본 발명은 이뮬레이터의 디버깅 및 모니터링 기능을 테스트 자동화 도구에 통합함으로써 테스트 케이스를 실행한 후, 결함을 자동 발견하고, 결함 원인을 제시하는 효과가 있다.
도 1은 본 발명에 따른 실시예를 도시한 블록도이다.
도 2는 본 발명에 따른 임베디드 시스템의 인터페이스를 도시한다.
도 3은 도 2에 도시된 임베이드 시스템의 인터페이스를 도시한다.
도 4는 본 발명에 따른 실시예의 동작 순서를 도시한 흐름도이다.
*도면의 주요 부분에 대한 부호의 설명*
10 : 호스트 시스템 20 : 이뮬레이터
30 : 평가 보드 40 : OS 서버
11 : 임베디드 소프트웨어 분석엔진 12 : 테스트 케이스 생성엔진
13 : 테스트 실행 엔진 14 : 테스트 결과 분석엔진

Claims (34)

  1. 에뮬레이터;
    임베디드 소프트웨어를 포함하는 서버;
    상기 서버로부터 상기 임베디드 소프트웨어를 전송받고, 상기 에뮬레이터에 의하여 제어되는 평가 보드; 그리고
    상기 서버로부터 상기 임베디드 소프트웨어를 전송받고, 상기 에뮬레이터를 이용하여 상기 임베디드 소프트웨어를 테스트하는 테스트 케이스를 생성하는 호스트 시스템을 포함하는 임베디드 소프트웨어의 테스트 장치.
  2. 제 1 항에 있어서,
    상기 호스트 시스템은,
    임베디드 소프트웨어의 테스트 항목을 제공하고, 상기 임베디드 소프트웨어로부터 브레이크 포인트와 상기 임베디드 소프트웨어 테스트의 통과/실패 기준을 추출하는 모니터링 심볼을 제공하는 임베디드 소프트웨어 분석엔진;
    상기 브레이크 포인트와 상기 모니터링 심볼을 이용하여 상기 임베디드 소프트웨어를 테스트하기 위한 테스트 케이스를 생성하는 테스트 케이스 생성엔진; 그리고
    상기 에뮬레이터에 의하여 상기 테스트 케이스를 실행하고, 상기 실행된 결과를 출력하는 테스트 실행엔진을 포함하는 임베디드 소프트웨어의 테스트 장치.
  3. 제 2 항에 있어서,
    상기 실행된 결과를 분석하여 테스트 커버리지, 결함 위치 정보, 및 성능 정보를 제공하는 테스트 결과 분석엔진을 더 포함하는 임베디드 소프트웨어의 테스트 장치.
  4. 제 3 항에 있어서,
    상기 테스트 케이스는 상기 이뮬레이터에서 실행하기 위하여 스크립트 형태로 생성되는 것을 특징으로 하는 임베디드 소프트웨어의 테스트 장치.
  5. 제 1 항에 있어서,
    상기 임베디드 소프트웨어는 소스 코드 또는 오브젝트 코드 중 어느 하나인 것을 특징으로 하는 임베디드 소프트웨어의 테스트 장치.
  6. 제 1 항에 있어서,
    상기 임베디드 소프트웨어 분석엔진은 상기 임베디드 소프트웨어의 계층간 인터페이스 위치를 자동으로 추출하는 것을 특징으로 하는 임베디드 소프트웨어의 테스트 장치.
  7. 제 6 항에 있어서,
    상기 임베디드 소프트웨어의 계층간 인터페이스 위치를 자동 추출은 임베디드 소프트웨어 계층 간 함수 호출 패턴에 따라 인터페이스 유형을 정의하고, 상기 임베디드 소프트웨어의 함수 호출 관계와 인터페이스 유형을 매핑을 통하여 추출하는 것을 특징으로 하는 임베디드 소프트웨어의 테스트 장치.
  8. 제 2 항에 있어서,
    상기 테스트 커버리지는 테스트가 수행된 인터페이스와 테스트가 수행되지 않은 인터페이스를 식별하는 것을 특징으로 하는 임베디드 소프트웨어의 테스트 장치.
  9. 제 2 항에 있어서,
    상기 결함 위치 정보는 상기 테스트 결함이 발생한 위치와 원인에 관한 정보를 제공하는 것을 특징으로 하는 임베디드 소프트웨어의 테스트 장치.
  10. 제 2 항에 있어서,
    상기 성능 정보는 테스트 방법의 최대, 최소, 및 평균 수행시간에 관한 성능 정보를 제공하는 것을 특징으로 하는 임베디드 소프트웨어의 테스트 장치.
  11. 제 1 항에 있어서,
    상기 임베디드 소프트웨어는,
    하드웨어, 상기 하드웨어의 구동을 명령하는 어플리케이션 프로그램, 상기 하드웨어의 초기화 및 설정하는 HAL, 및 상기 어플리케이션 프로그램을 구동하기 위한 환경을 제공하는 OS와 연동되는 것을 특징으로 하는 임베디드 소프트웨어의 테스트 장치.
  12. 제 11 항에 있어서,
    상기 임베디드 소프트웨어는 소프트웨어 유닛과 하드웨어 유닛을 포함하는 임베디드 소프트웨어의 테스트 장치.
  13. 제 12 항에 있어서,
    상기 소프트웨어 유닛은 커널에 제어를 받는 SUk, 상기 하드웨어를 구동하는 SUd, 및 프로세서에 제어를 받는 SUp를 포함하고,
    상기 하드웨어 유닛은 직접적으로 소프트웨어에서 하드웨어에 독출/기입이 가능한 HUd
    상기 HUd의 주소를 통해 독출/기입이 간접적으로 제어되는 HUi를 포함하는 임베디드 소프트웨어의 테스트 장치.
  14. 제 13 항에 있어서,
    상기 임베디드 소프트웨어의 인터페이스는,
    상기 SUd 또는 상기 SUp에서 상기 HUd에 접근하여 값을 독출/기입하는 HPI1,
    상기 SUd 또는 상기 SUp에서 상기 HUd의 주소를 통해 HUd를 제어하는 HPI2,
    상기 SUd 또는 상기 SUp에서 상기 HUd 및 상기 HUi 제어와 관련이 없는 상기 SUk를 호출하는 OPI1,
    SUd 또는 SUp 에서 가상 메모리 제어와 관련이 있는 SUk를 호출하는 OPI2, 및
    SUd 또는 SUp에서 HUd 및 HUi 제어와 관련이 있는 SUk를 호출하는 OPI3을 포함하는 임베디드 소프트웨어의 테스트 장치.
  15. 제 1 항에 있어서,
    상기 브레이크 포인트는 상기 임베디드 소프트웨어의 테스트 대상과 테스트 포인트인 것을 특징으로 하는 임베디드 소프트웨어의 테스트 장치.
  16. 제 1 항에 있어서,
    상기 모니터링 심볼은 프로세서 아키텍처에 따른 표준 함수 호출 규약에 따라 자동으로 추출되는 것을 특징으로 하는 임베디드 소프트웨어의 테스트 장치.
  17. 제 4 항에 있어서,
    상기 테스트 스크립트는 인터페이스 위치에 브레이크하는 스크립트 명령, 테스트 타겟 실행을 자동화하는 스크립트 명령, 테스트 심볼의 Pass/Fail 기준의 실제 값을 모니터링하는 스크립트 명령, 예상 출력과 모니터링된 실제 값을 비교하여 테스트 결과의 Pass/Fail을 판정하는 스크립트 명령, 및 테스트 결과 분석을 위해 테스트 수행 결과를 로그로 저장하는 스크립트 명령을 포함하는 것을 특징으로 하는 임베디드 소프트웨어의 테스트 장치.
  18. 서버로부터 임베디드 소프트웨어를 호스트와 평가 보드에 전송하고;
    에뮬레이터에 의하여 상기 평가 보드는 제어되고;
    상기 호스트에 의하여 상기 평가 보드의 상기 임베디드 소프트웨어를 테스트하기 위한 테스트 케이스를 생성하고; 그리고
    상기 호스트에 제어에 따라 상기 에뮬레이터는 상기 테스트 케이스를 실행하고, 그 결과를 출력하는 것을 포함하는 임베디드 소프트웨어의 테스트 방법.
  19. 제 18 항에 있어서,
    상기 임베디드 소프트웨어의 테스트 항목을 제공하고;
    상기 임베디드 소프트웨어로부터 브레이크 포인트와 상기 임베디드 소프트웨어 테스트의 통과/실패 기준을 추출하고;
    상기 브레이크 포인트와 상기 모니터링 심볼을 이용하여 상기 임베디드 소프트웨어를 테스트하기 위한 테스트 케이스를 생성하고; 그리고
    상기 에뮬레이터에 의하여 상기 테스트 케이스를 실행하고, 상기 실행된 결과를 출력하는 것을 포함하는 테스트 실행엔진을 더 포함하는 임베디드 소프트웨어의 테스트 방법.
  20. 제 19 항에 있어서,
    상기 실행된 결과를 분석하여 테스트 커버리지, 결함 위치 정보, 및 성능 정보를 제공하는 테스트 결과 분석엔진을 더 포함하는 임베디드 소프트웨어의 테스트 방법.
  21. 제 20 항에 있어서,
    상기 테스트 케이스는 상기 이뮬레이터에서 실행하기 위하여 스크립트 형태로 생성되는 것을 특징으로 하는 임베디드 소프트웨어의 테스트 방법.
  22. 제 18 항에 있어서,
    상기 임베디드 소프트웨어는 소스 코드 또는 오브젝트 코드 중 어느 하나인 것을 특징으로 하는 임베디드 소프트웨어의 테스트 방법.
  23. 제 18 항에 있어서,
    상기 임베디드 소프트웨어 분석엔진은 상기 임베디드 소프트웨어의 계층간 인터페이스 위치를 자동으로 추출하는 것을 특징으로 하는 임베디드 소프트웨어의 테스트 방법.
  24. 제 23 항에 있어서,
    상기 임베디드 소프트웨어의 계층간 인터페이스 위치를 자동 추출은 임베디드 소프트웨어 계층 간 함수 호출 패턴에 따라 인터페이스 유형을 정의하고, 상기 임베디드 소프트웨어의 함수 호출 관계와 인터페이스 유형을 매핑을 통하여 추출하는 것을 특징으로 하는 임베디드 소프트웨어의 테스트 방법.
  25. 제 19 항에 있어서,
    상기 테스트 커버리지는 테스트가 수행된 인터페이스와 테스트가 수행되지 않은 인터페이스를 식별하는 것을 특징으로 하는 임베디드 소프트웨어의 테스트 방법.
  26. 제 19 항에 있어서,
    상기 결함 위치 정보는 상기 테스트 결함이 발생한 위치와 원인에 관한 정보를 제공하는 것을 특징으로 하는 임베디드 소프트웨어의 테스트 방법.
  27. 제 19 항에 있어서,
    상기 성능 정보는 테스트 방법의 최대, 최소, 및 평균 수행시간에 관한 성능 정보를 제공하는 것을 특징으로 하는 임베디드 소프트웨어의 테스트 방법.
  28. 제 18 항에 있어서,
    상기 임베디드 소프트웨어는,
    하드웨어, 상기 하드웨어의 구동을 명령하는 어플리케이션 프로그램, 상기 하드웨어의 초기화 및 설정하는 HAL, 및 상기 어플리케이션 프로그램을 구동하기 위한 환경을 제공하는 OS와 연동되는 것을 특징으로 하는 임베디드 소프트웨어의 테스트 방법.
  29. 제 28 항에 있어서,
    상기 임베디드 소프트웨어는 소프트웨어 유닛과 하드웨어 유닛을 포함하는 임베디드 소프트웨어의 테스트 방법.
  30. 제 29 항에 있어서,
    상기 소프트웨어 유닛은 커널에 제어를 받는 SUk, 상기 하드웨어를 구동하는 SUd, 및 프로세서에 제어를 받는 SUp를 포함하고,
    상기 하드웨어 유닛은 직접적으로 소프트웨어에서 하드웨어에 독출/기입이 가능한 HUd
    상기 HUd의 주소를 통해 독출/기입이 간접적으로 제어되는 HUi를 포함하는 임베디드 소프트웨어의 테스트 방법.
  31. 제 30 항에 있어서,
    상기 임베디드 소프트웨어의 인터페이스는,
    상기 SUd 또는 상기 SUp에서 상기 HUd에 접근하여 값을 독출/기입하는 HPI1,
    상기 SUd 또는 상기 SUp에서 상기 HUd의 주소를 통해 HUd를 제어하는 HPI2,
    상기 SUd 또는 상기 SUp에서 상기 HUd 및 상기 HUi 제어와 관련이 없는 상기 SUk를 호출하는 OPI1,
    SUd 또는 SUp 에서 가상 메모리 제어와 관련이 있는 SUk를 호출하는 OPI2, 및
    SUd 또는 SUp에서 HUd 및 HUi 제어와 관련이 있는 SUk를 호출하는 OPI3을 포함하는 임베디드 소프트웨어의 테스트 방법.
  32. 제 18 항에 있어서,
    상기 브레이크 포인트는 상기 임베디드 소프트웨어의 테스트 대상과 테스트 포인트인 것을 특징으로 하는 임베디드 소프트웨어의 테스트 방법.
  33. 제 18 항에 있어서,
    상기 모니터링 심볼은 프로세서 아키텍처에 따른 표준 함수 호출 규약에 따라 자동으로 추출되는 것을 특징으로 하는 임베디드 소프트웨어의 테스트 방법.
  34. 제 21 항에 있어서,
    상기 테스트 스크립트는 인터페이스 위치에 브레이크하는 스크립트 명령, 테스트 타겟 실행을 자동화하는 스크립트 명령, 테스트 심볼의 Pass/Fail 기준의 실제 값을 모니터링하는 스크립트 명령, 예상 출력과 모니터링된 실제 값을 비교하여 테스트 결과의 Pass/Fail을 판정하는 스크립트 명령, 및 테스트 결과 분석을 위해 테스트 수행 결과를 로그로 저장하는 스크립트 명령을 포함하는 것을 특징으로 하는 임베디드 소프트웨어의 테스트 방법.
KR1020070040128A 2007-04-25 2007-04-25 이뮬레이트를 활용한 임베디드 소프트웨어 테스트 장치 및그 방법 KR101019210B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070040128A KR101019210B1 (ko) 2007-04-25 2007-04-25 이뮬레이트를 활용한 임베디드 소프트웨어 테스트 장치 및그 방법
US12/018,347 US8156475B2 (en) 2007-04-25 2008-01-23 Device and method for testing embedded software using emulator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070040128A KR101019210B1 (ko) 2007-04-25 2007-04-25 이뮬레이트를 활용한 임베디드 소프트웨어 테스트 장치 및그 방법

Publications (2)

Publication Number Publication Date
KR20080095528A true KR20080095528A (ko) 2008-10-29
KR101019210B1 KR101019210B1 (ko) 2011-03-04

Family

ID=39888477

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070040128A KR101019210B1 (ko) 2007-04-25 2007-04-25 이뮬레이트를 활용한 임베디드 소프트웨어 테스트 장치 및그 방법

Country Status (2)

Country Link
US (1) US8156475B2 (ko)
KR (1) KR101019210B1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011065781A3 (ko) * 2009-11-26 2011-10-20 애니포인트 미디어 그룹 미디어 재생 장치에서 실행되는 사용자 애플리케이션을 제공하는 컴퓨팅 장치 및 제공 방법
KR101251792B1 (ko) * 2010-11-30 2013-04-08 주식회사 현대케피코 디버거를 이용한 임베디드 소프트웨어 단위 테스트 자동화 장치 및 방법
WO2014046672A1 (en) * 2012-09-21 2014-03-27 Hewlett-Packard Development Company, L.P. Monitor usable with continuous deployment
KR20200007133A (ko) * 2018-07-12 2020-01-22 현대자동차주식회사 차량 ecu 소프트웨어 검증을 위한 동적 결함 주입 방법 및 장치
CN110737581A (zh) * 2018-07-20 2020-01-31 北京君正集成电路股份有限公司 一种测试方法和装置
KR20210076811A (ko) * 2019-12-16 2021-06-24 경북대학교 산학협력단 시뮬레이터를 이용한 임베디드 소프트웨어 자동 채점 시스템 및 방법
KR20230080860A (ko) * 2021-11-30 2023-06-07 한국과학기술원 이동통신 표준 문서를 기반으로 이동통신 베이스밴드 소프트웨어를 자동으로 비교 분석하는 방법 및 시스템

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110113409A1 (en) * 2009-11-10 2011-05-12 Rodrick Evans Symbol capabilities support within elf
US20120124558A1 (en) * 2010-11-17 2012-05-17 Microsoft Corporation Scenario testing composability across multiple components
CN103246600B (zh) * 2012-02-10 2016-04-06 广州博纳信息技术有限公司 软件测评快速校验方法
CN102622295B (zh) * 2012-02-17 2015-01-14 北京航空航天大学 一种基于谓词执行信息分析的自适应软件缺陷定位方法
CN102662648B (zh) * 2012-03-05 2015-09-30 广东天波信息技术股份有限公司 一种通讯终端的嵌入式软件开发仿真平台及其应用
US9703950B2 (en) * 2012-03-30 2017-07-11 Irdeto B.V. Method and system for preventing and detecting security threats
CN102722436B (zh) * 2012-05-29 2016-03-02 百度在线网络技术(北京)有限公司 一种增量覆盖信息的统计方法和装置
US8930761B2 (en) * 2012-08-30 2015-01-06 International Business Machines Corporation Test case result processing
CN102831065B (zh) * 2012-09-13 2015-02-04 北京航空航天大学 一种面向巧合一致性问题的统计学软件缺陷定位方法
KR20140056478A (ko) * 2012-10-26 2014-05-12 삼성전자주식회사 내장형 소프트웨어의 자동 테스트 장치 및 자동 테스트 방법
CN103064785B (zh) * 2012-12-04 2016-03-30 北京奇虎科技有限公司 一种终端性能的检测方法和装置
CN103019943B (zh) * 2013-01-04 2015-06-17 北京航空航天大学 一种面向失败测试用例稀少情况的软件错误定位方法
CN103559114B (zh) * 2013-11-12 2015-08-19 福建联迪商用设备有限公司 嵌入式模块驱动功能测试系统及方法
US10169127B2 (en) * 2014-03-06 2019-01-01 International Business Machines Corporation Command execution results verification
CN107562969B (zh) * 2016-06-30 2021-03-05 中国航发商用航空发动机有限责任公司 航空发动机控制系统软件的集成方法和装置
CN107608873B (zh) * 2016-07-11 2021-05-25 珠海优特电力科技股份有限公司 软件测试方法和系统及测试平台
CN106201892B (zh) * 2016-07-20 2019-02-01 中国航空工业集团公司航空动力控制系统研究所 用于嵌入式软件的异常中断源定位检测方法
CN106326107B (zh) * 2016-07-27 2019-03-08 北京计算机技术及应用研究所 基于仿真环境的非侵入式嵌入式软件异常处理验证方法
CN108628734B (zh) * 2017-03-21 2023-03-28 中兴通讯股份有限公司 一种功能程序调试方法和终端
KR102025553B1 (ko) 2017-05-18 2019-09-26 경북대학교 산학협력단 Rios 기반 임베디드 시스템 소프트웨어 테스트 장치 및 방법
CN107608895A (zh) * 2017-09-22 2018-01-19 深圳航天科技创新研究院 基于静态模型的软件测试文档生成方法、系统及存储介质
CN109190281A (zh) * 2018-09-19 2019-01-11 北京润科通用技术有限公司 一种多核dsp平台算法开发方法及装置
JP7184199B2 (ja) * 2019-07-19 2022-12-06 日本電信電話株式会社 試験システム、試験方法および試験プログラム
CN112416797A (zh) * 2020-12-02 2021-02-26 未来汽车科技(深圳)有限公司 嵌入式软件运行异常时自动报警及维持现场的方法及系统
CN112597006B (zh) * 2020-12-14 2023-10-03 中国航发控制系统研究所 一种嵌入式软件集成测试自动化执行系统及方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5500941A (en) 1994-07-06 1996-03-19 Ericsson, S.A. Optimum functional test method to determine the quality of a software system embedded in a large electronic system
US5600790A (en) 1995-02-10 1997-02-04 Research In Motion Limited Method and system for loading and confirming correct operation of an application program in a target system
US7047176B2 (en) 2000-05-05 2006-05-16 Fujitsu Limited Method and system for hardware simulation
US20030061292A1 (en) * 2001-03-23 2003-03-27 Mark Underseth System and method for providing an interface for com-compliant applications to communicate with embedded systems
KR100403195B1 (ko) * 2001-06-27 2003-10-23 (주)바이탈즈시스템 웹 기반 인서킷 에뮬레이터, 이를 이용한 타겟 임베디드시스템의 웹 기반 개발 시스템 및 방법
US7426717B1 (en) * 2001-11-27 2008-09-16 Adobe Systems Incorporated System and method for debugging files in a runtime environment
KR20030053675A (ko) * 2001-12-22 2003-07-02 엘지전자 주식회사 시스템 소프트웨어 시험을 위한 하드웨어 어드레스 맵에뮬레이트 방법
US7216340B1 (en) * 2002-08-19 2007-05-08 Sprint Communications Company L.P. Analysis data validation tool for use in enterprise architecture modeling with result based model updating
KR20040087767A (ko) 2003-04-09 2004-10-15 바산네트워크(주) 리얼타임, 임베디드 s/w 컴포넌트 테스팅 및 실시간 분석 방법 및 시스템
US8130661B2 (en) * 2003-08-01 2012-03-06 Opnet Technologies, Inc. Systems and methods for intelligent probe testing
KR20070035570A (ko) * 2004-07-16 2007-03-30 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 에뮬레이션 및 디버그 시스템, 집적 회로 목표 장치 및에뮬레이션 방법
US7478281B2 (en) * 2005-06-06 2009-01-13 Denniston William B System and methods for functional testing of embedded processor-based systems
US20070016829A1 (en) 2005-07-14 2007-01-18 Microsoft Corporation Test case generator
US7496791B2 (en) * 2005-08-04 2009-02-24 Microsoft Corporation Mock object generation by symbolic execution
US7925659B2 (en) * 2006-10-09 2011-04-12 Sap Ag Business process change analysis and test case adaptation based on change detection

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011065781A3 (ko) * 2009-11-26 2011-10-20 애니포인트 미디어 그룹 미디어 재생 장치에서 실행되는 사용자 애플리케이션을 제공하는 컴퓨팅 장치 및 제공 방법
US9606898B2 (en) 2009-11-26 2017-03-28 Sk Planet Co., Ltd. Computing apparatus and method for providing a user application to be executed in a media playback apparatus
KR101251792B1 (ko) * 2010-11-30 2013-04-08 주식회사 현대케피코 디버거를 이용한 임베디드 소프트웨어 단위 테스트 자동화 장치 및 방법
WO2014046672A1 (en) * 2012-09-21 2014-03-27 Hewlett-Packard Development Company, L.P. Monitor usable with continuous deployment
US9703687B2 (en) 2012-09-21 2017-07-11 Hewlett Packard Enterprise Development Lp Monitor usable with continuous deployment
KR20200007133A (ko) * 2018-07-12 2020-01-22 현대자동차주식회사 차량 ecu 소프트웨어 검증을 위한 동적 결함 주입 방법 및 장치
CN110737581A (zh) * 2018-07-20 2020-01-31 北京君正集成电路股份有限公司 一种测试方法和装置
KR20210076811A (ko) * 2019-12-16 2021-06-24 경북대학교 산학협력단 시뮬레이터를 이용한 임베디드 소프트웨어 자동 채점 시스템 및 방법
KR20230080860A (ko) * 2021-11-30 2023-06-07 한국과학기술원 이동통신 표준 문서를 기반으로 이동통신 베이스밴드 소프트웨어를 자동으로 비교 분석하는 방법 및 시스템

Also Published As

Publication number Publication date
KR101019210B1 (ko) 2011-03-04
US8156475B2 (en) 2012-04-10
US20080270840A1 (en) 2008-10-30

Similar Documents

Publication Publication Date Title
KR101019210B1 (ko) 이뮬레이트를 활용한 임베디드 소프트웨어 테스트 장치 및그 방법
KR101019209B1 (ko) 임베디드 소프트웨어의 인터페이스 자동 추출 장치 및 그방법
US9342437B2 (en) Backward post-execution software debugger
US7721265B1 (en) Source code debugging method and apparatus for use in script testing environment
US8930912B2 (en) Method and system for performing software verification
US8584097B2 (en) Post-execution software debugger with event display
CN110580226B (zh) 操作系统级程序的目标码覆盖率测试方法、系统及介质
US20070079288A1 (en) System and method for capturing filtered execution history of executable program code
KR102537875B1 (ko) 차량 ecu 소프트웨어 검증을 위한 동적 결함 주입 방법 및 장치
TWI361978B (en) Method for debugging a computer system
US20080127119A1 (en) Method and system for dynamic debugging of software
CN104699617A (zh) 一种游戏用自动化测试方法
Jeong et al. Fifa: A kernel-level fault injection framework for arm-based embedded linux system
US20080127118A1 (en) Method and system for dynamic patching of software
US7243059B2 (en) Simulation of hardware based on smart buffer objects
US7827540B2 (en) Method for program debugging
US10229029B2 (en) Embedded instruction sets for use in testing and error simulation of computing programs
CN117422026A (zh) 一种基于risc-v架构的处理器验证系统
JP2008135008A (ja) プログラムモジュール検証方式
CN115905012A (zh) 嵌入式系统软件开发场景下的调试分析系统、方法、电子设备及存储介质
Seo et al. Automating embedded software testing on an emulated target board
KR101251792B1 (ko) 디버거를 이용한 임베디드 소프트웨어 단위 테스트 자동화 장치 및 방법
CN112765021A (zh) 一种引导程序的调试检验方法、装置、设备及存储介质
US20220027262A1 (en) Information processing system with intelligent program smoke testing
CN117215901B (zh) 基于动态追踪的编程练习评价方法、系统、设备及介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140129

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150202

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200131

Year of fee payment: 10