KR100992622B1 - 임베디드 플랫폼에서 테스트 자동화 방법 및 시스템 - Google Patents
임베디드 플랫폼에서 테스트 자동화 방법 및 시스템 Download PDFInfo
- Publication number
- KR100992622B1 KR100992622B1 KR1020080101992A KR20080101992A KR100992622B1 KR 100992622 B1 KR100992622 B1 KR 100992622B1 KR 1020080101992 A KR1020080101992 A KR 1020080101992A KR 20080101992 A KR20080101992 A KR 20080101992A KR 100992622 B1 KR100992622 B1 KR 100992622B1
- Authority
- KR
- South Korea
- Prior art keywords
- event
- embedded platform
- state
- test
- embedded
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
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)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 임베디드 플랫폼 하에서 만들어진 결과물의 자동화 테스트 시에 임베디드 플랫폼 상태의 저장 및 복구를 통해 좀 더 안정적이면서 테스팅에 필요한 시간과 인력을 줄여 비용을 절감할 수 있는 임베디드 플랫폼에서 테스트 자동화 방법 및 시스템을 제공하기 위한 것으로서, 임베디드 플랫폼의 상태를 저장하고 복구하는 시스템을 내장하여 테스트를 수행하면서 내부적인 상태를 저장하거나 복구하여 추후 재현 테스트(반복 테스트)에 이용함으로서, 지원하여 반복적인 테스트를 쉽고 빠르고 정확하게 수행하여 테스트가 불편한 임베디드 시스템을 안정화할 수 있으며, 또한 임베디드 플랫폼에 평가 시스템을 내장하여 많은 종류의 테스트를 진행하는 경우 눈에 보이는 GUI나 동작 자체의 오동작뿐만 아니라 잘못된 인자를 사용하는 것까지 평가를 내려 그 오동작 여부를 미리 정확히 파악할 수 있다.
임베디드 플랫폼, 테스트 자동화, RTOS, 이벤트 수행, 이벤트 모니터
Description
본 발명은 임베디드 플랫폼을 이용하는 시스템에서 테스트 자동화 방법에 관한 것으로, 특히 임베디드 플랫폼을 이용하여 개발하는 응용프로그램을 자동으로 테스트하여 응용프로그램의 오류를 최소화시킬 수 있도록 도와주는 테스트 자동화 방법 및 시스템에 관한 것이다.
임베디드 시스템(embedded system)은 시스템을 동작시키는 소프트웨어를 하드웨어에 내장하여 특수한 기능만을 가진 시스템을 말하며, 개인용 컴퓨터와는 달리 특정한 요구사항을 가지고 있으며, 미리 정의된 작업(task)만을 수행한다. 즉, PC가 하드디스크와 같은 대용량 저장장치에 운영체제를 내장하고 있는 것과 달리 임베디드 시스템은 OS와 응용프로그램들이 ROM(flash)에 이미지 형태로 저장되어 있다가 부팅과 동시에 RAM 디스크를 만든 후, RAM 디스크 상에 OS와 응용프로그램들이 구동되는 시스템이다.
이처럼, 임베디드 시스템은 응용프로그램과 아주 밀접하게 관련이 되어 있고, 시스템의 변화에 따라 크게 달라진다. 또한 응용프로그램의 오류를 찾아내는 테스트 작업도 빈번히 발생하는데, 프로그램의 업데이트가 용이하지 않아 처음부터 안정적으로 프로그램을 개발하지 않는다면 추후 큰 비용 증가로 이어지며, 또한 신뢰성을 회복하기 매우 힘들어질 수도 있다.
따라서 임베디드 시스템은 개발 초기부터 매우 신중하게 프로그램이 개발되어야 하지만 테스트가 용이하지 않아 많은 테스트가 이루어지지 않으며, 개발 후 많은 테스트 인력이 투입되지만 시간이나 비용의 문제로 인하여 충분한 테스트가 이루어지지 않는 경우가 많다.
일반적인 테스트 방법은 코드자체가 무결한지 테스트하기 위한 유닛 테스트(unit test) 기반의 화이트 박스 테스트(white box test) 방법과, 프로그램의 개발 내용을 이해하지 않고 스펙과 결과물만을 비교하는 블랙 박스 테스트(black box test) 방법이 있다.
화이트 박스 테스트는 개발자가 개발 과정에서 테스트 코드를 프로그램에 주입하여 개발 중 코드가 안정적인지 지속적으로 테스트하는 방법을 말하며, 블랙 박스 테스트는 결과물을 인수받은 테스터가 입력값과 그 출력물을 비교함으로써 오류가 있는지 없는지 비교하는 방법이다.
임베디드 시스템에서는 주로 전문 테스터가 만들어놓은 테스트 시나리오에 따라 반복적인 블랙 박스 테스트를 수행하며, 응용프로그램의 수나 복잡도에 따라 매우 많은 양의 테스트 시나리오를 갖게 된다. 이에 따라, 테스트 인력의 수나 시간이 기하급수적으로 증가하게 된다. 이를 해결하기 위해 테스트 자동화 방법이 이용된다.
테스트 자동화란 사용자가 직접 키(key) 입력이나 폴더 개폐 같이 수동으로 입력하여 테스트하던 방식을 자동화하여 한번 입력된 동작을 반복적으로 테스트 할 수 있도록 도와주는 방법이다. 이때 입력된 동작도 편집이 가능하며 동작 이외의 명령을 수행하여 임베디드 플랫폼이 여러 가지 명령을 수행하도록 명령을 내릴 수도 있다.
그러나 테스트 자동화 방법을 이용하는 경우는 임베디드 시스템의 상태는 적용하지 않고 단지 입력 이벤트만을 일정하게 입력시켜 테스트 하는 방식으로 이루어지고 있기 때문에 임베디드 시스템의 상태에 따라 서로 다른 동작을 보일 수 있어 정확한 정보의 검출이 이루어지지 못하고 있다.
또한 종래의 테스트 진행 결과는 테스터가 직접 임베디드 시스템을 테스트하면서, 테스터가 직접 눈으로 확인하여 오류가 발생한 시점을 파악하고, 그 오류의 원인 등을 생각해서 디버깅을 수행하고 있는데, 이에 따라 오류 발생에 따른 정확한 정보를 검출할 수 없으며, 또한 테스터의 능력에 따라 테스터 결과가 달라지는 결과가 초래되어 디버깅 효율이 저하되는 문제가 있다.
따라서 본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, 임베디드 플랫폼 하에서 만들어진 결과물의 자동화 테스트 시에 임베디드 플랫폼 상태의 저장 및 복구를 통해 좀 더 안정적이면서 테스팅에 필요한 시간과 인력을 줄여 비용을 절감할 수 있는 임베디드 플랫폼에서 테스트 자동화 방법 및 시스템을 제공하는데 그 목적이 있다.
본 발명의 다른 목적은 임베디드 플랫폼에 평가 시스템을 내장하여 테스트 후에 남은 결과 및 테스트 내용을 정확한 기록으로 남겨 개발자와 테스터간의 의사소통이 명확해 지며, 테스트를 원격에서 진행하는 경우에도 복잡한 테스트를 원활하게 해줄 수 있도록 하는 임베디드 플랫폼에서 테스트 자동화 방법 및 시스템을 제공하는데 있다.
본 발명의 또 다른 목적은 임베디드 플랫폼이 가지고 있는 시스템 독립적인 특징을 이용하여 임베디드 시스템을 PC 상에서 에뮬레이션하여 테스트를 진행하고 그 테스트 시나리오를 임베디드 시스템에서도 동일하게 테스트 할 수 있어 문제의 재현 및 해결에 도움을 줄 수 있는 임베디드 플랫폼에서 테스트 자동화 방법 및 시스템을 제공하는데 있다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 임베디드 플랫폼에서 테스트 자동화 방법의 특징은 (A) 임베디드 플랫폼의 상태를 수집하고 분석하여 추후 로드가 가능한 상태로 저장하는 단계와, (B) 임베디드 플랫폼의 테스트를 진행하는 단계와, (C) 상기 저장된 임베디드 플랫폼의 이전 상태로 임베디드 플랫폼을 복구하는 단계와, (D) 상기 임베디드 플랫폼이 이전 상태로 복구된 상태에서 상기 (B) 내지 (C) 단계를 반복하여 재현 테스트(반복 테스트)를 수행하는 단계를 포함하는데 있다.
바람직하게 상기 재현 테스트의 수행이 완료되면, 테스트 결과를 미리 저장 된 자동 평가식에 기반하는 허용치와 비교하여 허용치 평가를 수행하는 단계와, 상기 평가를 통해 테스트 결과가 상기 허용치를 벗어나는 모든 값에 대하여 미리 규격화된 출력값을 출력하는 단계를 더 포함하는 것을 특징으로 한다.
바람직하게 상기 (A) 단계는 이벤트 모니터를 통해 임베디드 플랫폼의 상태 저장 요청이 수신되면, 현재의 임베디드 플랫폼의 상태를 수집하고 분석하는 단계와, 상기 분석된 상태 정보를 전송이 가능한 형태로 변경되어 요청한 이벤트 모니터로 전송하는 단계와, 상기 전송된 임베디드 플랫폼의 상태 정보를 수신하여 상태 정보를 분석하고 추후 로드가 가능한 상태로 상태파일 DB에 저장하는 단계를 포함하는 것을 특징으로 한다.
바람직하게 상기 (B) 단계는 실제 하드웨어(H/W) 디바이스 또는 PC용 에뮬레이터 내의 키 입력부를 통해 입력되는 이벤트가 키 이벤트인 경우는 키 로그 형식에 맞추어 문자열을 생성하고, 키 이벤트가 아닌 경우는 일반 로그 형태로 생성하여 이벤트파일 DB에 기록함으로써 이벤트 로그 작성을 수행하는 단계와, 상기 이벤트파일 DB에 기록된 이벤트 또는 형식에 맞추어 작성된 이벤트 로그를 재생하여 이벤트를 해석하고, 해석된 이벤트는 임베디드 플랫폼으로 전달하는 이벤트 재생 단계와, 상기 전달받은 이벤트를 분석하고, 분석된 이벤트를 이벤트 큐에 푸시(push)하여 H/W 디바이스가 동작한 것과 동일한 이벤트 처리를 수행하는 이벤트 수행 단계를 포함하는 것을 특징으로 한다.
바람직하게 상기 (C) 단계는 상기 저장된 이전의 임베디드 플랫폼의 상태를 이벤트 모니터로 로드하여 메모리에 적재하는 단계와, 상기 적재된 메모리에서 파 일이 분석되고 임베디드 플랫폼으로의 전송이 가능한 상태로 가공하는 단계와, 상기 가공된 데이터를 임베디드 플랫폼에서 전송받는 단계와, 상기 전송받은 데이터를 분석한 후 임베디드 플랫폼의 상태를 복구하고, 완료 메시지를 이벤트 모니터 쪽으로 전달하는 단계를 포함하는 것을 특징으로 한다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 임베디드 플랫폼에서 테스트 자동화 시스템의 특징은 하드웨어 디바이스 또는 PC 에뮬레이터에서 입력된 이벤트를 우선순위에 기반하여 처리하는 RTOS(Real Time Operating System)와, 응용 프로그램이 실행될 수 있는 응용 프로그램 인터페이스를 제공하는 임베디드 플랫폼과, 상기 임베디드 플랫폼의 이전 상태를 저장하고 테스트를 수행하면서 재현 테스트(반복 테스트)의 수행 시에 상기 저장된 이전 상태로 상기 임베디드 플랫폼을 복구하여 실행시키는 이벤트 모니터를 포함하는데 있다.
바람직하게 상기 임베디드 플랫폼은 응용 프로그램이 실행될 수 있는 응용 프로그램 인터페이스를 제공하는 응용 프로그램 API 모듈과, 임베디드 플랫폼의 테스트 결과를 출력하는 테스트 윈도우 관리모듈과, 상기 RTOS를 통해 전달된 이벤트를 처리하는 이벤트 관리모듈과, 상기 이벤트 모니터로부터 요청된 임베디드 플랫폼의 상태 정보를 수집하고 분석하여, 분석된 정보를 전송이 가능한 형태로 변경하여 상기 이벤트 모니터로 전송하는 상태 관리모듈과, 자동 평가식을 내장시켜 테스트 결과를 기반으로 내부에서 허용치에 대한 값을 매번 평가하고, 이벤트 또는 특정 입력에 따라 평가를 수행하여 문제 발생시 그 내용을 이벤트 모니터로 전달하는 이벤트 평가모듈을 포함하는 것을 특징으로 한다.
바람직하게 상기 이벤트 모니터는 임베디드 플랫폼의 상태를 테스트 수행에 기반하여 저장 및 복구하는 상태 처리부와, 입력되는 이벤트를 상기 임베디드 플랫폼 상에서 임베디드 플랫폼을 테스팅하기 위한 이벤트 처리부를 포함하는 것을 특징으로 한다.
바람직하게 상기 상태 처리부는 재현 테스트의 수행 시에 상태파일 DB에 미리 저장된 이전 임베디드 플랫폼의 상태 정보를 로드하고 파일을 분석하여 상기 임베디드 플랫폼으로 전송하는 상태 재생부와, 임베디드 플랫폼에서 수신된 임베디드 플랫폼의 상태 정보를 수신하여 상태 정보를 분석하고 추후 로드가 가능한 상태로 상태파일 DB에 저장하는 상태 기록부를 포함하는 것을 특징으로 한다.
바람직하게 상기 이벤트 처리부는 입력되는 이벤트를 판별하여 키(key) 로그 형식 또는 일반 로그 형태로 변경하는 이벤트 재생부와, 상기 이벤트 재생부에서 변경된 이벤트를 이벤트 모니터의 윈도우에 출력하고 이벤트파일 DB에 저장하는 이벤트 기록부와, 이벤트 재생을 위해 상기 이벤트파일 DB에 저장된 이벤트를 이벤트 적재부로 로드하여 이벤트를 분석하고, 분석된 이벤트를 임베디드 플랫폼으로 전송하는 이벤트 송신부를 포함하는 것을 특징으로 한다.
이상에서 설명한 바와 같은 본 발명에 따른 임베디드 플랫폼에서 테스트 자동화 방법 및 시스템은 다음과 같은 효과가 있다.
첫째, 임베디드 플랫폼 상에서 수동으로 진행하던 테스트를 자동으로 테스트 할 수 있도록 지원하여 반복적인 테스트를 쉽고 빠르고 정확하게 수행하여 테스트 가 불편한 임베디드 시스템을 안정화할 수 있는 효과가 있다.
둘째, 기존의 테스트 자동화 시스템과는 차별적으로 임베디드 플랫폼의 상태를 저장하고 복구하는 기능을 이용하여 재현 테스트(반복 테스트)시에도 동일한 임베디드 플랫폼의 상태에서 테스트 할 수 있으므로 보다 정확히 이벤트에 대한 테스팅이 가능한 효과가 있다.
셋째, 임베디드 플랫폼에 평가식을 내장하여 많은 종류의 테스트를 진행하는 경우에 눈에 보이는 GUI나 동작 자체의 오동작뿐만 아니라 잘못된 인자를 사용하는 것까지 평가를 내려 그 오동작 여부를 미리 정확히 파악할 수 있는 효과가 있다.
본 발명의 다른 목적, 특성 및 이점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.
본 발명에 따른 임베디드 플랫폼에서 테스트 자동화 방법 및 시스템의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다. 그러나 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록하며 통상의 지식을 가진자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.
도 1 은 본 발명의 실시예에 따른 임베디드 플랫폼에서 테스트 자동화 시스템을 구성을 나타낸 블록도이다.
도 1과 같이, 테스트 자동화 시스템은 하드웨어(H/W) 디바이스 또는 PC 에뮬레이터(100)와, 상기 H/W 디바이스 또는 PC 에뮬레이터(100)에서 입력된 이벤트를 우선순위가 높은 전위에서 실시간 다중 프로그래밍하며, 우선순위가 낮은 후위에서는 일괄 처리하는 RTOS(Real Time Operating System)(200)와, 응용 프로그램이 실행될 수 있는 응용 프로그램 인터페이스를 제공하는 임베디드 플랫폼(300)과, 상기 임베디드 플랫폼(300)의 이전 상태를 저장하고 테스트를 수행하면서 재현 테스트의 수행 시에 상기 저장된 이전 상태로 상기 임베디드 플랫폼을 복구하여 실행시키는 이벤트 모니터(400)를 포함한다.
이때, 상기 임베디드 플랫폼(300)은 응용 프로그램이 실행될 수 있는 응용 프로그램 인터페이스를 제공하는 응용 프로그램 API 모듈(310)과, 임베디드 플랫폼의 테스트 결과를 출력하는 테스트 윈도우 관리모듈(330)과, 상기 RTOS를 통해 전달된 이벤트를 처리하는 이벤트 관리모듈(320)과, 이벤트 모니터(400)로부터 요청된 임베디드 플랫폼의 상태 정보를 수집하고 분석하여, 분석된 정보를 전송이 가능한 형태로 변경하여 이벤트 모니터(400)로 전송하는 상태 관리모듈(340)과, 자동 평가식을 내장시켜 테스트 결과를 기반으로 내부에서 허용치에 대한 값을 매번 평가하고, 이벤트 또는 특정 입력에 따라 평가를 수행하여 문제 발생시 그 내용을 이벤트 모니터로 전달하는 이벤트 평가모듈(350)을 포함한다.
이때 상기 자동 평가식은 임베디드 플랫폼의 각종 함수나 UI 컴포넌트들이 가지고 있는 특성에 따라 예측하는 동작의 범위를 포함하고, 이 범위를 초과하거나 미달할 때 메시지를 출력하여 오동작이 어느 시점에서 시작했는지 알려줄 수 있는 수단이다.
그리고 상기 이벤트 모니터(400)는 임베디드 플랫폼(300)의 상태를 테스트 수행에 기반하여 저장 및 복구하는 상태 처리부(410)와, 상기 입력되는 이벤트를 상기 임베디드 플랫폼(300) 상에서 임베디드 플랫폼을 테스팅하기 위한 이벤트 처리부(430)를 포함한다.
이때, 상기 상태 처리부(410)는 재현 테스트의 수행 시에 상태파일 DB(420)에 미리 저장된 이전 임베디드 플랫폼(300)의 상태 정보를 로드하고 파일을 분석하여 상기 임베디드 플랫폼으로 전송하는 상태 재생부(412)와, 임베디드 플랫폼(300)에서 수신된 임베디드 플랫폼의 상태 정보를 수신하여 상태 정보를 분석하고 추후 로드가 가능한 상태로 상태파일 DB(420)에 저장하는 상태 기록부(414)를 포함한다.
또한 상기 이벤트 처리부(430)는 입력되는 이벤트를 판별하여 키(key) 로그 형식 또는 일반 로그 형태로 변경하는 이벤트 재생부(434)와, 상기 이벤트 재생부에서 변경된 이벤트를 이벤트 모니터의 윈도우에 출력하고 이벤트파일 DB에 저장하는 이벤트 기록부(438)와, 이벤트 재생을 위해 상기 이벤트파일 DB(440)에 저장된 이벤트를 이벤트 적재부(432)로 로드하여 이벤트를 분석하고, 분석된 이벤트를 임베디드 플랫폼으로 전송하는 이벤트 송신부(436)를 포함한다.
이와 같이 구성된 본 발명에 따른 임베디드 플랫폼에서 테스트 자동화 시스템의 동작을 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.
도 2 내지 도 7 은 본 발명의 실시예에 따른 임베디드 플랫폼에서 테스트 자동화 방법을 설명하기 위한 흐름도이다.
도 2를 참조하여 설명하면, 임베디드 플랫폼을 테스트하기 전에 먼저 이벤트 모니터(400)는 임베디드 플랫폼(300)의 상태를 수집하고 분석하여 추후 로드가 가능한 상태로 저장한다(S100).
이때, 도 3을 참조하여 임베디드 플랫폼 상태를 저장하는 과정을 상세히 살펴보면, 먼저 이벤트 모니터(400)는 임베디드 플랫폼(300)에 상태 저장을 요청하면(S110), 임베디드 플랫폼(300)은 상태관리모듈(340)을 통해 요청 명령을 시리얼이나 기타 통신 수단으로 수신하고(S120) 현재의 임베디드 플랫폼의 상태를 수집하고 분석한다(S130). 이때, 임베디드 플랫폼(300)의 상태는 스테이트 머신의 콜스텍과 각종 환경변수 및 DB에 좌우되며, 이 모든 기능은 임베디드 플랫폼에 기록되어 있다.
상기 임베디드 플랫폼(300)은 상기 상태관리모듈(340)에서 분석된 상태 정보를 전송이 가능한 형태로 변경하여 요청한 이벤트 모니터(400)로 송신한다(S140).
상기 이벤트 모니터(400)는 전송된 임베디드 플랫폼의 상태 정보를 수신하여(S150) 상태 기록부(414)를 통해 상태 정보를 분석하고 파일저장이 유용한 상태로 변경한다(S160). 그리고 상기 상태 기록부(414)에서 분석된 상태 정보는 추후 로드가 가능한 상태로 상태파일 DB(420)에 저장된다(S170).
이처럼, 임베디드 플랫폼(300)의 상태 정보의 저장이 완료되면(S100), 이후 임베디드 플랫폼의 테스트를 진행한다(S1000).
1. 이벤트 로그 작성.
상기 임베디드 플랫폼의 테스트의 진행(S110)으로 먼저, 이벤트 로그 작성을 수행한다(S200). 도 4를 참조하여 이벤트 로그 작성하는 과정을 상세히 살펴보면,
실제 하드웨어(H/W) 디바이스 또는 PC용 에뮬레이터(100) 내의 키 입력부를 통해 키가 눌리면, 이에 상응하는 입력 신호가 RTOS(Real Time Operating System)(200)에 전달되고, 이어 상기 RTOS(200)는 전달된 입력 신호에 따른 이벤트를 우선순위에 기반하여 임베디드 플랫폼(300)으로 전달한다. 이때 상기 H/W 디바이스에서는 시리얼을 통해 이벤트를 수신하고, PC용 에뮬레이터는 윈도우 이벤트를 통해 이벤트를 수신하게 된다.
이처럼 상기 임베디드 플랫폼(300)은 전달된 이벤트를 이벤트 관리모듈(320)을 통해 이벤트 처리가 시작되는데, 이때 처리된 이벤트는 시리얼 장치 또는 다른 통신수단을 통해 ASCⅡ 문자열로 변환하여 이벤트 모니터(400)로 전달한다(S210).
이에 상기 이벤트 모니터(400)는 이벤트 처리부(430)를 통해 ASCⅡ 문자열로 변환되어 전달된 이벤트를 재생시켜 입력되는 이벤트가 키(key) 이벤트인지를 판별한다(S220).
상기 판별결과(S220), 입력된 이벤트가 키 이벤트인 경우는 키 로그 형식에 맞추어 어떤 키가 어떤 상태로 눌렸는지 문자열을 생성하고(S240), 상기 판별결과, 키 이벤트가 아닌 경우는 일반 로그 형태로 생성한다(S230).
그리고 이렇게 생성된 키 이벤트와 일반 로그는 이벤트 기록부(438)를 통해 이벤트파일 DB(440)에 기록함으로써 이벤트 로그 작성을 수행한다(S250).
2. 이벤트 재생.
이어 상기 임베디드 플랫폼의 테스트의 진행(S1000)으로 이벤트를 재생한다(S300). 도 5를 참조하여 이벤트 재생 과정을 상세히 살펴보면,
이벤트 재생이 진행되면, 먼저 이벤트파일 DB(440)에 이미 기록된 이벤트 또는 형식에 맞추어 작성된 이벤트 로그를 메모리로 로드한다(S310). 그리고 이벤트 재생부(434)를 통해 입력된 이벤트를 재생하여 키 이벤트인지 아니면, 명령인지, 그밖에 내용인지 분석한다(S320).
상기 분석결과(S320), 분석된 이벤트가 명령코드이면 내부적인 명령처리를 수행한다(S340). 내부적인 명령처리의 일실시예로는 특정라인으로 점프한다거나, 시간을 대기하는 등의 명령 동작 등을 말한다. 또한 상기 분석결과(S320), 분석된 이벤트가 키 이벤트이면 키 이벤트를 해석한다(S330).
그리고 명령 처리 또는 해석된 이벤트는 이벤트 송신부(436)를 통해 임베디드 플랫폼(300)으로 전달된다(S350).
2. 이벤트 수행.
이어 상기 임베디드 플랫폼의 테스트의 진행(S1000)으로 이벤트를 수행한다(S300). 도 6을 참조하여 이벤트 수행 과정을 상세히 살펴보면,
상기 임베디드 플랫폼(300)은 이벤트 모니터(400)를 통해 수신받고(S410), 상기 수신받은 이벤트를 분석한다(S420).
그리고 분석된 이벤트가 명령인지 키 이벤트인지를 판별하고(S430), 상기 판별된 이벤트가 명령이면 내부적인 명령처리를 수행하고(S440), 상기 판별된 이벤트가 키 이벤트이면 해당 이벤트를 이벤트 큐에 푸시(push)하여 H/W 디바이스가 동작한 것과 동일한 이벤트 처리를 수행한다(S450).
이어 수신받은 이벤트 처리가 끝나면 처리 작업에 대한 결과를 다시 이벤트 로 만들어 전달하고 수행 작업을 종료 처리한다(S460).
이처럼 수신된 이벤트에 다른 임베디드 플랫폼의 테스트의 진행(S1000) 과정이 종료되면, 상태파일 DB에 저장된 임베디드 플랫폼의 이전 상태로 임베디드 플랫폼을 복구한다.
이때, 도 7을 참조하여 임베디드 플랫폼 상태를 저장하는 과정을 상세히 살펴보면, 먼저 상기 이벤트 모니터(400)는 상태파일 DB(420)에 저장된 이전의 임베디드 플랫폼의 상태를 로드하고 메모리에 적재한다(S510).
그리고 적재된 메모리에서 파일을 분석하고 전송이 가능한 상태로 가공한다(S520). 이렇게 가공된 데이터를 임베디드 플랫폼(300)으로 전송하고(S530), 상기 임베디드 플랫폼(300)은 시리얼이나 기타 전송매체를 통해 수신한다(S540).
이어 상기 임베디드 플랫폼(300)은 수신된 데이터를 분석한 후 임베디드 플랫폼의 상태를 복구하고(S550), 상태 정보의 복구가 완료되면, 완료 메시지를 이벤트 모니터(400) 쪽으로 전달한다(S560).
그러면 상기 이벤트 모니터(400)는 전송된 메시지를 수신받고 복구를 완료한다(S570).
그리고 상기 임베디드 플랫폼(300)이 이전 상태로 복구된 상태에서 상기 이벤트파일 DB(440)에 저장된 이벤트를 재생하여 이벤트 수행을 처리하여 재현 테스트를 수행한다(S600).
이처럼 임베디드 플랫폼(300)의 상태를 테스트하기 전 상태를 기억해 둔 후, 재현 테스트 시 상기 기억된 최초 임베디드 플랫폼의 상태로 복구된 후에 테스트가 수행됨에 따라 테스트에 보다 정확성을 기할 수 있다. 이때 모든 어플리케이션은 임베디드 플랫폼 위에서 동작하며 임베디드 플랫폼이 제공하는 API(Application Programming Interface)에 종속적이므로 임베디드 플랫폼의 상태를 저장 및 복구를 통해 테스트 전의 상태로 바꿀 수 있다.
그리고 임베디드 플랫폼(300)내의 이벤트 평가모듈(350)은 자동 평가식을 통해 임베디드 플랫폼의 GUI 제어나 각종 함수들이 입력 값에 따른 허용치를 포함하고 있으며, 테스트된 결과를 상기 허용치와 비교하여 허용치가 초과되는지의 여부를 통해 허용치 평가를 수행한다(S700). 이때 상기 자동 평가식은 임베디드 플랫폼의 각종 함수나 UI 컴포넌트들이 가지고 있는 특성에 따라 예측하는 동작의 범위를 포함한다.
상기 허용치 평가 결과(S700), 테스트 결과가 허용치를 벗어나는 경우를 문제가 발생된 것으로 평가하고, 문제가 발생된 경우에 모든 값에 대하여 미리 규격화되어 저장된 출력값을 출력한다(S800). 이때 미리 규격화되어 저장된 출력값은 임베디드 플랫폼 내부에서 문제 발생시 출력된 파일로 로드하여 어떤 상태에서 문제가 발생했으며, 그 이벤트는 어떤 것인지 분석하여 저장된 정보로써, 저장된 출력값은 문제 발생상태, 문제 발생 이벤트, 문제 발생원인, 시스템의 중요도 및 영향성을 포함한다.
그리고 상기 발생된 출력값 및 문제 발생 정보를 이벤트 모니터로 전달하여 파일로 저장한다(S900).
이에 따라 문제 발생시 내부적으로 먼저 문제를 탐지해 낼 수 있으며, 이는 임베디드 플랫폼이 예측하는 범위를 벗어난 동작을 하는 경우에 경고 메시지를 출력함으로써, 개발 중에 화이트 박스 테스트와 블랙 박스 테스트를 겸하여 진행 할 수 있도록 도와준다.
상기에서 설명한 본 발명의 기술적 사상은 바람직한 실시예에서 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술적 분야의 통상의 지식을 가진자라면 본 발명의 기술적 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
도 1 은 본 발명의 실시예에 따른 임베디드 플랫폼에서 테스트 자동화 시스템을 구성을 나타낸 블록도
도 2 내지 도 7 은 본 발명의 실시예에 따른 임베디드 플랫폼에서 테스트 자동화 방법을 설명하기 위한 흐름도
*도면의 주요부분에 대한 부호의 설명
100 : 하드웨어(H/W) 디바이스 또는 PC 에뮬레이터
200 : RTOS 300 : 임베디드 플랫폼
310 : 응용 프로그램 API 모듈 320 : 이벤트 관리모듈
330 : 윈도우 관리모듈 340 : 상태 관리모듈
350 : 이벤트 평가모듈 400 : 이벤트 모니터
410 : 상태 처리부 412 : 상태 재생부
414 : 상태 기록부 420 : 상태파일 DB
430 : 이벤트 처리부 432 : 이벤트 적재부
434 : 이벤트 재생부 436 : 이벤트 송신부
438 : 이벤트 기록부 440 : 이벤트파일 DB
Claims (13)
- 하드웨어 디바이스 또는 PC 에뮬레이터에서 입력된 이벤트를 우선순위에 기반하여 처리하는 RTOS(Real Time Operating System)와, 응용 프로그램이 실행될 수 있는 응용 프로그램 인터페이스를 제공하는 임베디드 플랫폼과, 상기 임베디드 플랫폼의 이전 상태를 저장하고 테스트를 수행하면서 재현 테스트의 수행 시에 상기 저장된 이전 상태로 상기 임베디드 플랫폼을 복구하여 실행시키는 이벤트 모니터를 포함하는 임베디드 플랫폼에서 테스트 자동화 시스템을 통한 테스트 자동화 방법에 있어서,(A) 상기 임베디드 플랫폼 내의 상태 관리모듈을 통해 임베디드 플랫폼의 상태를 수집하고 분석하여 추후 로드가 가능한 상태로 저장하는 단계와,(B) 상기 임베디드 플랫폼 내의 테스트 윈도우 관리모듈을 통해 임베디드 플랫폼의 테스트를 진행하는 단계와,(C) 상기 이벤트 모니터를 통해 상기 저장된 임베디드 플랫폼의 이전 상태로 임베디드 플랫폼을 복구하는 단계와,(D) 상기 임베디드 플랫폼이 이전 상태로 복구된 상태에서 상기 (B) 내지 (C) 단계를 반복하여 재현 테스트를 수행하는 단계를 포함하는 것을 특징으로 하는 임베디드 플랫폼에서 테스트 자동화 방법.
- 제 1 항에 있어서,상기 재현 테스트의 수행이 완료되면, 상기 임베디드 플랫폼 내의 이벤트 평가모듈을 통해 테스트 결과를 미리 저장된 자동 평가식에 기반하는 허용치와 비교하여 허용치 평가를 수행하는 단계와,상기 임베디드 플랫폼은 상기 평가를 통해 테스트 결과가 상기 허용치를 벗어나는 모든 값에 대하여 미리 규격화된 출력값을 출력하는 단계를 더 포함하는 것을 특징으로 하는 임베디드 플랫폼에서 테스트 자동화 방법.
- 제 2 항에 있어서,상기 자동 평가식은 임베디드 플랫폼의 각종 함수나 UI 컴포넌트들이 가지고 있는 특성에 따라 예측하는 동작의 범위를 갖는 허용치를 포함하는 것을 특징으로 하는 임베디드 플랫폼에서 테스트 자동화 방법.
- 제 2 항에 있어서,상기 미리 규격화되어 저장된 출력값은 임베디드 플랫폼 내부에서 문제 발생시 출력된 파일로 로드하여 어떤 상태에서 문제가 발생했으며, 그 이벤트는 어떤 것인지 분석되어 저장된 정보인 것을 특징으로 하는 임베디드 플랫폼에서 테스트 자동화 방법.
- 제 1 항 및 제 2 항 중 어느 하나에 있어서, 상기 (A) 단계는이벤트 모니터를 통해 임베디드 플랫폼의 상태 저장 요청이 수신되면, 현재의 임베디드 플랫폼의 상태를 수집하고 분석하는 단계와,상기 분석된 상태 정보를 전송이 가능한 형태로 변경되어 요청한 이벤트 모니터로 전송하는 단계와,상기 전송된 임베디드 플랫폼의 상태 정보를 수신하여 상태 정보를 분석하고 추후 로드가 가능한 상태로 상태파일 DB에 저장하는 단계를 포함하는 것을 특징으로 하는 임베디드 플랫폼에서 테스트 자동화 방법.
- 제 1 항 및 제 2 항 중 어느 하나에 있어서, 상기 (B) 단계는실제 하드웨어(H/W) 디바이스 또는 PC용 에뮬레이터 내의 키 입력부를 통해 입력되는 이벤트가 키 이벤트인 경우는 키 로그 형식에 맞추어 문자열을 생성하고, 키 이벤트가 아닌 경우는 일반 로그 형태로 생성하여 이벤트파일 DB에 기록함으로써 이벤트 로그 작성을 수행하는 단계와,상기 이벤트파일 DB에 기록된 이벤트 또는 형식에 맞추어 작성된 이벤트 로그를 재생하여 이벤트를 해석하고, 해석된 이벤트는 임베디드 플랫폼으로 전달하는 이벤트 재생 단계와,상기 전달받은 이벤트를 분석하고, 분석된 이벤트를 이벤트 큐에 푸시(push)하여 H/W 디바이스가 동작한 것과 동일한 이벤트 처리를 수행하는 이벤트 수행 단계를 포함하는 것을 특징으로 하는 임베디드 플랫폼에서 테스트 자동화 방법.
- 제 1 항 및 제 2 항 중 어느 하나에 있어서, 상기 (C) 단계는상기 저장된 이전의 임베디드 플랫폼의 상태를 이벤트 모니터로 로드하여 메모리에 적재하는 단계와,상기 적재된 메모리에서 파일이 분석되고 임베디드 플랫폼으로의 전송이 가능한 상태로 가공하는 단계와,상기 가공된 데이터를 임베디드 플랫폼에서 전송받는 단계와,상기 전송받은 데이터를 분석한 후 임베디드 플랫폼의 상태를 복구하고, 완료 메시지를 이벤트 모니터 쪽으로 전달하는 단계를 포함하는 것을 특징으로 하는 임베디드 플랫폼에서 테스트 자동화 방법.
- 하드웨어 디바이스 또는 PC 에뮬레이터에서 입력된 이벤트를 우선순위에 기반하여 처리하는 RTOS(Real Time Operating System)와,응용 프로그램이 실행될 수 있는 응용 프로그램 인터페이스를 제공하는 임베디드 플랫폼과,상기 임베디드 플랫폼의 이전 상태를 저장하고 테스트를 수행하면서 재현 테스트의 수행 시에 상기 저장된 이전 상태로 상기 임베디드 플랫폼을 복구하여 실행시키는 이벤트 모니터를 포함하는 것을 특징으로 하며,이때, 상기 임베디드 플랫폼은응용 프로그램이 실행될 수 있는 응용 프로그램 인터페이스를 제공하는 응용 프로그램 API 모듈과,임베디드 플랫폼의 테스트 결과를 출력하는 테스트 윈도우 관리모듈과,상기 RTOS를 통해 전달된 이벤트를 처리하는 이벤트 관리모듈과,상기 이벤트 모니터로부터 요청된 임베디드 플랫폼의 상태 정보를 수집하고 분석하여, 분석된 정보를 전송이 가능한 형태로 변경하여 상기 이벤트 모니터로 전송하는 상태 관리모듈과,자동 평가식을 내장시켜 테스트 결과를 기반으로 내부에서 허용치에 대한 값을 매번 평가하고, 이벤트 또는 특정 입력에 따라 평가를 수행하여 문제 발생시 그 내용을 이벤트 모니터로 전달하는 이벤트 평가모듈을 포함하는 것을 특징으로 하는 임베디드 플랫폼에서 테스트 자동화 시스템.
- 삭제
- 제 8 항에 있어서,상기 자동 평가식은 임베디드 플랫폼의 각종 함수나 UI 컴포넌트들이 가지고 있는 특성에 따라 예측하는 동작의 범위를 포함하는 것을 특징으로 하는 임베디드 플랫폼에서 테스트 자동화 시스템.
- 제 8 항에 있어서, 상기 이벤트 모니터는임베디드 플랫폼의 상태를 테스트 수행에 기반하여 저장 및 복구하는 상태 처리부와,입력되는 이벤트를 상기 임베디드 플랫폼 상에서 임베디드 플랫폼을 테스팅하기 위한 이벤트 처리부를 포함하는 것을 특징으로 하는 임베디드 플랫폼에서 테스트 자동화 시스템.
- 제 11 항에 있어서, 상기 상태 처리부는재현 테스트의 수행 시에 상태파일 DB에 미리 저장된 이전 임베디드 플랫폼의 상태 정보를 로드하고 파일을 분석하여 상기 임베디드 플랫폼으로 전송하는 상태 재생부와,임베디드 플랫폼에서 수신된 임베디드 플랫폼의 상태 정보를 수신하여 상태 정보를 분석하고 추후 로드가 가능한 상태로 상태파일 DB에 저장하는 상태 기록부 를 포함하는 것을 특징으로 하는 임베디드 플랫폼에서 테스트 자동화 시스템.
- 제 11 항에 있어서, 상기 이벤트 처리부는입력되는 이벤트를 판별하여 키(key) 로그 형식 또는 일반 로그 형태로 변경하는 이벤트 재생부와,상기 이벤트 재생부에서 변경된 이벤트를 이벤트 모니터의 윈도우에 출력하고 이벤트파일 DB에 저장하는 이벤트 기록부와,이벤트 재생을 위해 상기 이벤트파일 DB에 저장된 이벤트를 이벤트 적재부로 로드하여 이벤트를 분석하고, 분석된 이벤트를 임베디드 플랫폼으로 전송하는 이벤트 송신부를 포함하는 것을 특징으로 하는 임베디드 플랫폼에서 테스트 자동화 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080101992A KR100992622B1 (ko) | 2008-10-17 | 2008-10-17 | 임베디드 플랫폼에서 테스트 자동화 방법 및 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080101992A KR100992622B1 (ko) | 2008-10-17 | 2008-10-17 | 임베디드 플랫폼에서 테스트 자동화 방법 및 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100042825A KR20100042825A (ko) | 2010-04-27 |
KR100992622B1 true KR100992622B1 (ko) | 2010-11-05 |
Family
ID=42218077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080101992A KR100992622B1 (ko) | 2008-10-17 | 2008-10-17 | 임베디드 플랫폼에서 테스트 자동화 방법 및 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100992622B1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101575649B1 (ko) * | 2014-10-20 | 2015-12-21 | 현대자동차주식회사 | 임베디드 시스템의 테스트 장치 및 그 방법 |
KR102030167B1 (ko) * | 2017-08-04 | 2019-10-08 | 주식회사 한컴엠디에스 | 임베디드 기기를 위한 디버깅 방법 |
-
2008
- 2008-10-17 KR KR1020080101992A patent/KR100992622B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR20100042825A (ko) | 2010-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8473919B2 (en) | System and method for repeating program flow for debugging and testing | |
CN111651366B (zh) | Sdk测试方法、装置、设备及存储介质 | |
US5022028A (en) | Software verification apparatus | |
US20020091968A1 (en) | Object-oriented data driven software GUI automated test harness | |
KR20140056478A (ko) | 내장형 소프트웨어의 자동 테스트 장치 및 자동 테스트 방법 | |
CN111274154A (zh) | 一种自动化测试的方法、装置、设备及存储介质 | |
KR100985749B1 (ko) | 내장형 시스템 소프트웨어 자동 테스트 시스템 및 방법과테스트 시나리오 작성 방법 | |
US20170004060A1 (en) | Device, method and program for performing system testing | |
KR20190019009A (ko) | 게임 테스트 자동화 장치 및 방법 | |
CN112732576B (zh) | 基于用户界面的自动化测试方法、装置及设备 | |
CN110610089B (zh) | 用户行为模拟方法、装置及计算机设备 | |
CN115080398A (zh) | 一种接口自动化测试系统及方法 | |
CN107608873B (zh) | 软件测试方法和系统及测试平台 | |
WO2007061241A1 (en) | Error test method for mobile communication terminals | |
CN113094251B (zh) | 嵌入式系统测试方法、装置、计算机设备和存储介质 | |
KR100992622B1 (ko) | 임베디드 플랫폼에서 테스트 자동화 방법 및 시스템 | |
CN112860587B (zh) | Ui自动测试方法和装置 | |
CN112363909B (zh) | 一种继电保护装置中文件系统可靠性的自动测试方法 | |
US8997048B1 (en) | Method and apparatus for profiling a virtual machine | |
CN117648257A (zh) | 一种Linux操作系统下的Web自动化测试方法及系统 | |
CN110806981B (zh) | 一种应用程序测试方法、装置、设备和存储介质 | |
KR100901780B1 (ko) | 내장형 시스템 오류 수정을 위한 비정지 디버깅 장치 및방법 | |
CN113656319A (zh) | 一种回归测试方法、装置、电子设备及存储介质 | |
CN112131110A (zh) | 一种智能手机系统的多源异构数据探针方法及装置 | |
JP6911082B2 (ja) | 状況情報併記型実使用ベースのモバイル端末のスクリプト生成方法 |
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 | ||
LAPS | Lapse due to unpaid annual fee |