KR101648969B1 - 메시지 기반 테스트를 위한 테스트 서버 및 그 방법 - Google Patents
메시지 기반 테스트를 위한 테스트 서버 및 그 방법 Download PDFInfo
- Publication number
- KR101648969B1 KR101648969B1 KR1020150109352A KR20150109352A KR101648969B1 KR 101648969 B1 KR101648969 B1 KR 101648969B1 KR 1020150109352 A KR1020150109352 A KR 1020150109352A KR 20150109352 A KR20150109352 A KR 20150109352A KR 101648969 B1 KR101648969 B1 KR 101648969B1
- Authority
- KR
- South Korea
- Prior art keywords
- message
- test
- value
- test server
- byte stream
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Environmental & Geological Engineering (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 타겟 대상에 대해 사전적으로 테스트를 수행해 봄으로써 타겟 대상의 정상작동여부를 미리 판별하기 위한 테스트 방법 및 이러한 테스트를 실시하기 위한 테스트 서버에 관한 것이다. 구체적으로, 본 발명은 타겟 대상에 대해 테스트를 실시함에 있어 테스트 서버로 하여금 제어 장치와 상기 타겟 대상 사이 송수신 되는 메시지를 캡쳐하여 데이터베이스화 하고, 이를 기초로 타겟 대상의 정상작동여부를 파악하는 메시지 기반의 테스트를 위한 서버 및 그 방법에 관한 것이다.
Description
본 발명은 타겟 대상에 대해 사전적으로 테스트를 수행해 봄으로써 타겟 대상의 정상작동여부를 미리 판별하기 위한 테스트 방법 및 이러한 테스트를 실시하기 위한 테스트 서버에 관한 것이다. 구체적으로, 본 발명은 타겟 대상에 대해 테스트를 실시함에 있어 테스트 서버로 하여금 제어 장치와 상기 타겟 대상 사이 송수신 되는 메시지를 캡쳐하여 데이터베이스화 하고, 이를 기초로 타겟 대상의 정상작동여부를 파악하는 메시지 기반의 테스트를 위한 서버 및 그 방법에 관한 것이다.
전자제품의 다양성과 사용량이 크게 증가하고 있다. 한편, 전자제품들은 내부적으로 해당 전자제품의 구동을 위한 소프트웨어가 내장되어 생산되는데 출시 전 이들 전자제품들이 정상적으로 작동하는지에 대한 테스트는 필수적인 요소에 해당한다.
일반적으로 이렇게 출시되기 전 상태의 제품들에 대해서 수행하는 테스트를 시스템 테스트라 하는데, 개발자들은 이러한 시스템 테스트를 통해 해당 제품에 내장된 소프트웨어의 오류를 발견하여 수정한다.
한편 종래 테스트 방식의 경우, 테스팅 시스템에 의한 시나리오가 진행되고 시나리오 진행이 도중에 오류에 의해 정지하면 그 때마다 어떤 오류가 발생하였는지를 오류 식별자와 함께 출력하는 방식으로 이루어져 왔다. 또한, 개발자는 이러한 오류가 어떤 테스트 환경에서 발생하였는지를 일일이 체크하여 보고하여 왔다.
그러나 이러한 종래 테스트 방식의 경우, 수 많은 조건, 환경에서의 해당 제품에 대한 테스트를 충분히 실시해 볼 수 없는 점, 대량 생산되는 제품의 경우 극소수의 제품에 대해서만 테스트를 실시해 볼 수 있어 제품의 신뢰도가 떨어지게 된다는 점 등 문제점을 내포하고 있다.
특히 오늘날과 같이 다양한 제품이 대량 생산되는 상황에서 위와 같은 종래 방식의 테스트 수행은 많은 문제점을 야기하고 있으며, 이에 개선된 테스트 방법 또는 테스트를 위한 장치에 대한 수요가 증가하고 있다.
본 발명은 이와 같은 종래 제품 테스트의 문제점을 해결하기 위한 것으로, 이 건 발명은 앞서 살핀 기술적 요구를 충족시킴은 물론, 본 기술분야에서 통상의 지식을 가진 자가 용이하게 발명할 수 없는 추가적인 기술요소들을 제공하기 위해 발명되었다.
본 발명은 타겟 장치에 대해 메시지 기반의 테스트를 수행하는 방법 및 이를 위한 테스트 서버를 제공하는 것을 목적으로 한다.
특히 본 발명은 타겟 장치를 테스트 함에 있어 제어 장치와 주고 받는 데이터 스트림으로부터 개별 메시지들을 추출해 내고, 이들 메시지들을 데이터베이스화 하여 테스트하는 것을 목적으로 한다.
또한 본 발명은 상기 메시지들을 데이터베이스화 할 때에 상기 메시지를 구성하는 복수의 필드 및 해당 필드들의 값을 분류하여 저장하며, 사용자의 의사 또는 필요에 따라 특정 필드의 값을 변경할 수 있게 함으로써 더 다양한 환경에서의 테스트가 가능하게 하는 것을 목적으로 한다.
위와 같은 문제점을 해결하기 위하여, 본 발명에 따른 메시지 기반 테스트 방법은, 테스트 서버가 타겟 장치에 대한 메시지 기반의 테스트를 수행하는 방법에 있어서, (a) 테스트 서버가, 제어 장치와 상기 타겟 장치가 상호 송수신하는 바이트 스트림으로부터 메시지를 추출하는 단계; (b) 추출된 메시지가 포함하는 필드별 값을 획득하고, 상기 필드 및 변수가 분류된 각 메시지를 테스트 서버 내 저장공간에 저장하는 단계;를 포함한다.
또한 상기 메시지 기반 테스트 방법에 있어서 상기 (a)단계는, (a-1) 제어 장치와 타겟 장치가 송수신하는 바이트 스트림을 읽는 단계; (a-2) 메시지 정의 및 매칭룰을 참조하여 메시지를 추출하는 단계;를 포함한다.
한편, 상기 메시지 기반 테스트 방법은, 상기 저장된 메시지들 중 하나 이상의 특정 메시지의 필드 값을 변경하는 단계, 소위 메시지 동적 제어 단계를 더 포함할 수 있다.
이 때, 상기 특정 메시지의 값을 변경하는 단계는, 상기 테스트 서버가 사용자로부터 입력값을 수신하고, 수신된 입력값을 상기 특정 메시지의 필드 값으로 변경하는 단계, 상기 테스트 서버가 특정 함수의 실행에 따른 결과값을 상기 특정 메시지의 필드 값으로 변경하는 단계, 또는 상기 테스트 서버가 외부 데이터의 값을 참조하여 상기 값을 상기 특정 메시지의 필드 값으로 변경하는 단계 중 어느 하나의 방식으로 이루어질 수 있다.
다른 한편, 상기 메시지 기반 테스트 방법은 테스트 시나리오 진행에 따라 상기 테스트 서버와 타겟 장치 간 송수신 된 메시지들을 분석하여 오류여부를 판단하는 단계; 및 오류여부 판단결과가 포함된 결과 리포트를 생성하는 단계;를 더 포함할 수 있다.
한편, 본 발명의 또 다른 측면에 따른 테스트 서버는 상기 타겟 장치와의 데이터 송수신을 위한 통신부; 제어 장치와 상기 타겟 장치가 송수신하는 바이트 스트림으로부터 메시지를 추출하는 메시지 캡쳐부; 캡쳐한 메시지가 포함하는 필드 및 필드별 값을 획득하고, 상기 필드 및 필드별 값이 분류된 각 메시지를 저장하는 데이터베이스 생성부; 메시지가 저장되는 저장부; 및 상기 통신부, 메시지 캡쳐부, 데이터베이스 생성부 및 저장부를 제어하는 제어부;를 포함한다.
상기 테스트 서버에 있어서 상기 메시지 캡쳐부는 제어 장치와 타겟 장치가 송수신하는 바이트 스트림을 읽고, 메시지 정의 및 매칭룰을 참조하여 상기 바이트 스트림으로부터 매칭되는 메시지를 추출하는 것을 특징으로 한다.
또한 이 때 상기 테스트 서버는, 저장된 메시지 내 하나 이상의 필드의 값을 변경하는 메시지 동적 제어부;를 더 포함할 수 있다.
또한 상기 테스트 서버는, 사용자로부터 입력을 수신하기 위한 입력부;를 더 포함할 수 있으며, 나아가 테스트 시나리오 진행상 테스트 서버와 타겟 장치 간 송수신 되는 메시지들을 분석하여 오류여부를 판단하는 검사부;를 더 포함할 수 있다.
본 발명에 의하면 타겟 장치를 테스트 함에 있어 자동적으로 메시지들을 데이터베이스화 할 수 있으며, 데이터베이스화 된 메시지를 사용자 의사에 따라 제어할 수 있는 효과가 있다.
또한 본 발명에 의하면 다양한 테스트 환경을 쉽게 구현해 볼 수 있는 효과가 있다.
또한 본 발명에 의하면 방대한 양의 메시지 기반 테스트를 쉽고 빠르게 진행할 수 있는 효과가 있다.
도 1은 본 발명에 따른 메시지 기반 테스트 방법이 수행을 위한 시스템을 개략적으로 도시한 것이다.
도 2는 본 발명에 따른 메시지 기반 테스트 방법을 순서에 따라 나타낸 것이다.
도 3은 타겟 장치와 테스트 서버가 상호 메시지를 송수신 하는 모습 및 송수신 되는 메시지의 예시를 도시한 것이다.
도 4는 메시지의 구조를 간략하게 도시한 것이다.
도 5는 메시지 정의 및 매칭룰을 예시적으로 나타낸 것이다.
도 6은 메시지 정의 및 매칭룰을 기초로 데이터 스트림으로부터 메시지를 추출해 내는 과정을 도시한 것이다.
도 7은 도 6의 과정에 의해 추출된 메시지의 예를 나타낸 것이다.
도 8은 사용자가 테스트 시나리오를 편집할 수 있도록 제공되는 인터페이스의 예시를 나타낸 것이다.
도 9는 사용자가 테스트 시나리오를 편집하는 모습을 예시적으로 나타낸 것이다.
도 10 내지 도 12는 메시지 동적 제어의 실시예를 나타낸 것이다.
도 13은 테스트 진행상 메시지가 올바르게 송수신 되었는지 필드별로 확인하는 모습을 나타낸 것이다.
도 14 내지 도 15는 메시지 동적 비교의 실시예를 나타낸 것이다.
도 16은 메시지 기반 테스트 방법의 실행 후 생성된 결과 리포트의 예시를 나타낸 것이다.
도 17은 본 발명에 따른 테스트 서버의 세부구성을 나타낸 블록도이다.
도 2는 본 발명에 따른 메시지 기반 테스트 방법을 순서에 따라 나타낸 것이다.
도 3은 타겟 장치와 테스트 서버가 상호 메시지를 송수신 하는 모습 및 송수신 되는 메시지의 예시를 도시한 것이다.
도 4는 메시지의 구조를 간략하게 도시한 것이다.
도 5는 메시지 정의 및 매칭룰을 예시적으로 나타낸 것이다.
도 6은 메시지 정의 및 매칭룰을 기초로 데이터 스트림으로부터 메시지를 추출해 내는 과정을 도시한 것이다.
도 7은 도 6의 과정에 의해 추출된 메시지의 예를 나타낸 것이다.
도 8은 사용자가 테스트 시나리오를 편집할 수 있도록 제공되는 인터페이스의 예시를 나타낸 것이다.
도 9는 사용자가 테스트 시나리오를 편집하는 모습을 예시적으로 나타낸 것이다.
도 10 내지 도 12는 메시지 동적 제어의 실시예를 나타낸 것이다.
도 13은 테스트 진행상 메시지가 올바르게 송수신 되었는지 필드별로 확인하는 모습을 나타낸 것이다.
도 14 내지 도 15는 메시지 동적 비교의 실시예를 나타낸 것이다.
도 16은 메시지 기반 테스트 방법의 실행 후 생성된 결과 리포트의 예시를 나타낸 것이다.
도 17은 본 발명에 따른 테스트 서버의 세부구성을 나타낸 블록도이다.
본 발명의 목적과 기술적 구성 및 그에 따른 작용 효과에 관한 자세한 사항은 본 발명의 명세서에 첨부된 도면에 의거한 이하의 상세한 설명에 의해 보다 명확하게 이해될 것이다. 첨부된 도면을 참조하여 본 발명에 따른 실시 예를 상세하게 설명한다.
본 명세서에서 개시되는 실시 예들은 본 발명의 범위를 한정하는 것으로 해석되거나 이용되지 않아야 할 것이다. 이 분야의 통상의 기술자에게 본 명세서의 실시 예를 포함한 설명은 다양한 응용을 갖는다는 것이 당연하다. 따라서, 본 발명의 상세한 설명에 기재된 임의의 실시 예들은 본 발명을 보다 잘 설명하기 위한 예시적인 것이며 본 발명의 범위가 실시 예들로 한정되는 것을 의도하지 않는다.
도면에 표시되고 아래에 설명되는 기능 블록들은 가능한 구현의 예들일 뿐이다. 다른 구현들에서는 상세한 설명의 사상 및 범위를 벗어나지 않는 범위에서 다른 기능 블록들이 사용될 수 있다. 또한, 본 발명의 하나 이상의 기능 블록이 개별 블록들로 표시되지만, 본 발명의 기능 블록들 중 하나 이상은 동일 기능을 실행하는 다양한 하드웨어 및 소프트웨어 구성들의 조합일 수 있다.
또한, 어떤 구성요소들을 포함한다는 표현은 개방형의 표현으로서 해당 구성요소들이 존재하는 것을 단순히 지칭할 뿐이며, 추가적인 구성요소들을 배제하는 것으로 이해되어서는 안 된다.
나아가 어떤 구성요소가 다른 구성요소에 연결되어 있다거나 접속되어 있다고 언급될 때에는, 그 다른 구성요소에 직접적으로 연결 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 한다.
이하에서는 도 1을 참조하여 메시지 기반 테스트 수행의 기반이 되는 전체 시스템에 대해 간략하게 살펴보기로 한다.
도 1에 따르면, 메시지 기반의 테스트가 수행되는 시스템은 타겟 장치(100), 네트워크, 제어 장치(300), 그리고 테스트 서버(200)를 포함한다.
먼저 타겟 장치(100)란, 테스트의 대상이 되는 제품 또는 소프트웨어를 총칭하는 것으로, 여기에는 휴대단말기를 비롯한 각종 전자제품이 포함될 수 있으며 더 나아가서는 자동차 또는 비행기의 내부에 구비되는 전장제품까지도 포함될 수 있다.
한편, 본 발명에서의 타겟 장치(100)는 더 구체적으로는 해당 제품을 구동시키기 위한 제어를 담당하는 기능부, 즉 제어부를 의미하며 상기 타겟장치의 제어부는 외부로부터 제어 메시지를 수신하고, 이에 따른 응답 메시지를 송신할 수 있는 기능을 갖출 것을 전제로 한다.
다음으로 테스트 서버(200)는 본 발명의 핵심 구성으로서, 타겟 장치(100)에 대한 메시지 기반 테스트를 실질적으로 수행하는 주체이다. 본 테스트 서버(200)는 향후 상기 타겟 장치(100)가 출시되어 실제 사용될 때에 타겟 장치(100)를 제어하는 주체(제어 장치)를 임시적으로 대신하는 것으로, 개발자 등의 사용자는 본 테스트 서버(200)를 통해 다양한 타겟 장치(100) 구동 시나리오를 시험해 볼 수 있게 된다.
이러한 테스트 서버(200)는 일반적으로 컴퓨터 프로그램이 실행될 수 있는 정보 통신 단말로서 데스크탑 컴퓨터, 랩탑 컴퓨터 등으로 구현될 수 있으며, 사용자는 상기 타겟 장치(100)의 제어와 관련된 테스트 소프트웨어를 상기 테스트 서버(200)로 실행시키면서 테스트를 진행하게 된다.
한편 테스트 소프트웨어란, 상기 테스트 서버(200) 상에서 실행되는 개발자 전용의 소프트웨어로서 상기 타겟 장치(100), 더 구체적으로는 타겟 장치(100)의 제어부와의 통신을 통해 일련의 테스트를 진행하기 위해 로직, 명령어 등으로 구성 된 프로그램을 의미한다. 테스트 소프트웨어는 바람직하게는 사용자가 테스트를 수행하는 데에 필요한 사항들을 쉽게 조작하거나 편집할 수 있도록 인터페이스를 제공하는 용도로도 활용될 수 있으며, 예를 들어 메시지 내 필드의 값을 조정하는 기능, 타겟 장치(100)의 구동 시나리오를 편집하는 기능, 캡쳐된 메시지를 목록으로 나열하여 디스플레이 상에 출력하는 기능 등을 할 수 있도록 구현될 수 있다. 또한 이러한 테스트 소프트웨어는 테스트 서버(200)에 플러그 인 형태 또는 독립적인 프로그램으로 설치되어 실행될 수 있다.
테스트 서버(200)의 세부구성에 대하여는 도 17에 대한 설명 부분에서 후술하기로 한다.
한편, 제어 장치(300)는 향후 타겟 장치가 상용화 된 이후 실질적으로 상기 타겟 장치를 제어하게 될 장치를 일컫는 것으로, 상기 타겟 장치에 메시지가 포함된 데이터를 직접 전송함으로써 제어하게 된다.
본 발명에 따른 테스트 서버(200)는 도 1에서 볼 수 있듯 제어 장치(300)가 상기 타겟 장치(100)를 제어하기 위해 메시지를 송수신할 때에 이렇게 송수신 되는 메시지를 중간에서 획득하고, 획득한 메시지들을 데이터베이스화 하며, 데이터베이스화 한 메시지를 기반으로 더 이상 제어 장치(300)의 개입 없이 상기 타겟 장치와의 시스템 테스트를 하는 것을 목적으로 한다. 따라서 본 발명에 따른 테스트 서버(200)가 정상적인 시스템 테스트를 진행하기 위해서는 전제적으로 상기 타겟 장치(100)와 제어 장치(300)가 메시지를 주고 받으며 제어, 피제어 되는 상황이 존재하여야 하며, 테스트 서버(200)는 위와 같은 제어, 피제어 상황에서 제어 장치(300)와 타겟 장치(100)가 송수신 하는 메시지를 중간에서 캡쳐하여 데이터베이스화 함을 이해해야 할 것이다.
도 1을 참조할 때 상기 타겟 장치(100)와 테스트 서버(200)는 네트워크를 통해 연결됨을 알 수 있다. 이 때 네트워크란 유선 또는 무선을 모두 포함하는 것으로서 비트 또는 바이트로 구성된 데이터 스트림을 전송할 수 있는 망은 모두 포함하는 것으로 이해되어야 할 것이다. 상기 네트워크는 예를 들어 타겟 장치(100)와 테스트 서버(200)를 연결하는 근거리 무선 통신망(블루투스, 와이파이 등)일 수 있으며, 또는 기지국을 통해 데이터 통신을 하는 이동통신망일 수도 있다. 또 다른 예로서 상기 네트워크는 타겟 장치(100)의 USB모듈과 테스트 서버(200)의 USB모듈을 연결하는 유선의 USB 통신라인이 될 수도 있다.
이상 도 1을 참조하여 메시지 기반 테스트의 전제가 되는 시스템에 대해 살펴보았다.
이하에서는 도 2를 참조하여 본 발명에 따른 메시지 기반 테스트 방법을 살펴보기로 한다. 본 발명에 따른 메시지 기반 테스트 방법은 크게 네 단계로 나뉠 수 있으며, 동적 제어 기능의 사용여부에 따라 단계가 더 추가될 수 있다.
첫 번째 단계는 테스트 서버(200)가 상기 제어 장치(300)와 타겟 장치(100)와의 사이에서 송수신하는 메시지를 캡쳐 하는 단계(S10)이다.
앞서도 언급하였듯, 제어 장치(300)는 타겟 장치(100)와 제어 또는 피제어를 위한 메시지를 송수신하게 되는데, 테스트 서버(200)는 위와 같이 송수신 되는 메시지를 중간에서 획득, 캡쳐한다.
제어 장치(300)는 상기 타겟 장치(100)에 대해 일련의 제어 메시지를 비트 또는 바이트로 구성된 데이터 형태로 전송하고, 이를 수신한 타겟 장치(100)는 위 제어 메시지에 상응하는 응답 메시지를 회신한다. 본 발명에서 인용하는 메시지란 위와 같이 테스트 서버(200) 및 타겟 장치(100)가 상호 송수신하는 제어 메시지 및 응답 메시지를 포함하는 것으로 이해되어야 할 것이다.
한편, 테스트 서버(200)는 제어 장치(300)와 타겟 장치(100)가 송수신 하는 메시지를 캡쳐하여 이를 체계적으로 데이터베이스화 시키는데 이 과정을 자세히 살펴보면 아래와 같다.
도 3은 테스트 서버(200)가 제어 장치(300)와 타겟 장치(100)가 네트워크를 통해 데이터, 즉 일련의 메시지가 포함된 데이터를 송수신한 것을 캡쳐하는 모습, 그리고 상기 데이터가 16진수로 표현된 모습을 개략적으로 도시한 것이다. 이에 따르면, 타겟 장치(100)와 제어 장치(300)는 짧은 시간 동안 복수 개의 제어 메시지, 응답 메시지를 송수신하게 되는데 이 때 각 메시지들은 상기 짧은 시간 동안 전송되는 데이터 청크(data chunk) 내에 혼재되어 존재한다.
도 3을 참조할 때, 예를 들어 테스트 서버가 복수의 메시지를 캡쳐하였다고 가정할 때, 상기 메시지는 일련의 문자 또는 숫자, 바람직한 예로는 16진수로 표시될 수 있다. 한편, 도 3에서 볼 수 있는 일련의 16진수 (00 11 00 00 ~ 1F 04 D2 ~)는 일정 단위로 끊겨 각각 하나의 메시지(MSG1, MSG2, MSG3, MSG4, MSG5 등)를 구성한다.
본 발명에 따른 테스트 서버(200)는 위와 같이 송수신 되는 메시지를 캡쳐하되, 데이터 청크를 구성하고 있는 일련의 비트 또는 바이트로부터 특정 메시지들을 식별하고 이를 추출해 낼 수 있는데, 이와 같은 단계가 곧 메시지 캡쳐에 이은 메시지 데이터베이스화 단계이다.
이 때 메시지에 대해 보다 상세하게 살펴보면, 하나의 메시지는 일반적으로 다양한 속성(property)정보를 가지게 되는데, 도 4에는 본 발명에서 인용되는 메시지의 내부구조를 간략하게 도시한 것이다. 즉, 하나의 메시지는 해당 메시지를 식별하기 위한 메시지 식별자를 하나의 필드로서 포함하며, 그 외에 다양한 필드 및 각 필드의 값을 가진다. 메시지 식별자란 해당 메시지가 어떤 제어명령에 관한 것인지 또는 어떤 응답에 관한 것인지를 테스트 서버(200) 또는 사용자가 인지할 수 있게 하는 것이며, 이러한 메시지 식별자는 타겟 장치(100)의 소프트웨어를 개발한 개발자, 즉 사용자에 의해 개별적으로 정의되는 것을 원칙으로 한다. 또한 일반적으로 필드란, 상기 메시지가 포함할 수 있는 다양한 정보를 구분해 둔 영역으로서, 필요에 따라 상기 필드는 복수 개가 존재할 수 있다.
한편 테스트 서버(200)는 캡쳐된 일련의 데이터로부터 특정 메시지를 식별해 내기 위해 메시지 정의 및 매칭룰을 참조하게 된다.
메시지 정의란, 각각의 메시지 별로 메시지 식별자, 메시지 크기, 그리고 각 메시지가 포함하는 필드 등을 정의해 둔 일종의 규칙이며, 매칭룰(matching rule)이란, 상기 테스트 서버(200)가 일련의 데이터 청크로부터 특정 메시지를 추출해 낼 때에 상기 메시지 정의와 데이터 청크를 비교하게 되는데, 이 때 비교 로직을 정의해 둔 것을 의미한다. 즉, 테스트 서버(200)는 상기 데이터 청크 내 포함된 비트 또는 바이트를 읽어 들인 후 상기 메시지 정의 및 매칭룰을 참조하여 데이터 청크 내 포함된 일련의 메시지를 식별 내지 추출한다.
도 5는 본 발명에 따른 테스트 서버(200)가 참조하는 메시지 정의 및 매칭룰을 예시적으로 나타낸 것이다.
도 5는 타겟 장치(100)가 스마트폰인 경우 해당 스마트폰과 제어 장치(300)가 송수신 하는 메시지, 그 중에서도 세션열기요청이라는 메시지의 정의 및 이를 추출해 내기 위한 매칭룰을 나타낸 것이다.
이에 따르면 '세션열기요청'이라는 메시지는 Cmd, SessionID, AckRv, Length, NodelID, AuthCode라는 6개의 필드로 이루어져 있으며, 테스트 서버(200)는 Cmd 필드의 값이 0x11이고 AckRv 필드의 값이 0x00인 경우 해당 메시지가 세션열기요청 메시지임을 식별하게 된다.
도 6은 본 발명에 따른 테스트 서버(200)가 메시지 정의 및 매칭룰을 참조하여 일련의 데이터 청크로부터 메시지를 추출해 내는 과정을 상세히 나타낸 것이다.
도 6은 테스트 서버(200)가 데이터 청크의 첫 번째 바이트 스트림부터 매칭룰을 참조하여 각각의 메시지 정의와 비교하는 모습을 나타낸 것이다.
우선 테스트 서버(200)는 '시스템조회요청' 메시지의 메시지 정의 및 매칭룰을 참조하여 데이터 청크의 첫 번째 바이트 스트림부터 비교한다. 시스템조회요청 메시지는 Cmd 필드가 0x20 이고 AckRv 필드가 00의 값을 가지는 경우 추출될 수 있는데, 도 6에서도 볼 수 있듯 현재 읽히고 있는 데이터 청크는 첫 번째 바이트 스트림이 0011의 값을 가지므로 Cmd 필드에서의 매칭룰에 어긋나므로, 결국 테스트 서버(200)는 첫 번째 메시지가 시스템조회요청 메시지가 아님(매칭 실패)을 인지할 수 있게 된다.
시스템조회요청 메시지의 메시지 정의 및 매칭룰을 참조하여 첫 번째 바이트 스트림이 시스템조회요청 메시지가 아님을 인지한 이후, 테스트 서버(200)는 다음 순서로서 상기 첫 번째 바이트 스트림이 '시스템조회응답' 메시지인지 여부를 판단한다. 도 6에 따를 때, 시스템조회응답 메시지는 Cmd 필드가 0x20이고 AckRv 필드가 01의 값을 가지는 경우 추출될 수 있는데, 현재 읽히고 있는 첫 번째 바이트 스트림은 0011의 값을 가지므로 역시 Cmd 필드에서의 매칭룰에 어긋나 테스트 서버(200)는 첫 번째 메시지가 시스템조회응답 메시지가 아님(매칭 실패)을 인지할 수 있게 된다.
한편, 테스트 서버(200)는 수신된 바이트 스트림이 메시지 정의에 따라 각 필드 값이 일치하는지 여부를 따지는 것뿐 아니라, 특정 필드의 값이 옳은 값을 가지는지 여부를 판단하여서도 해당 메시지의 매칭 여부를 판단할 수 있다.
예를 들어, 시스템조회응답 메시지의 경우 ResultLen 필드는 ResultValue 필드 값의 길이를 나타내는데, 실제 수신된 바이트 스트림이 상기 ResultLen 필드 값과 일치할 수 없는 경우인 때에도 테스트 서버(200)는 해당 메시지가 시스템조회응답 메시지가 아님을 인지할 수 있다. 도 6에서 살펴볼 때, 만약 현재 읽히고 있는 바이트 스트림이 시스템조회응답 메시지라면 ResultLen의 필드 값은 74C7이 되고, ResultValue 필드에는 74C7의 십진수 값인 29820 바이트 크기만큼의 스트림이 수신되었어야 하나, 현재 수신된 스트림은 위 바이트 크기에 미치지 못하므로 결국 테스트 서버(200)는 해당 수신된 바이트 스트림이 시스템조회응답 메시지가 아님을 인지할 수 있다.
도 6의 하단은 테스트 서버(200)가 세션열기요청 메시지의 메시지 정의 및 매칭룰을 참조하여 상기 바이트 스트림이 세션열기요청 메시지인지 여부를 판단하는 과정을 나타낸 것이다.
이에 따르면, 세션열기요청 메시지는 Cmd 필드 값이 0011이고 AckRv 필드 값이 0000일 때 매칭에 성공하게 되는데, 현재 읽히고 있는 바이트 스트림을 순서에 따라 각 필드 값에 매칭시킬 때 상기 세션열기요청 메시지의 메시지 정의 및 매칭룰을 만족시키는바, 상기 테스트 서버(200)는 해당 바이트 스트림이 세션열기요청 메시지임을 인지하게 된다.
한편, 테스트 서버(200)가 메시지 정의 및 매칭룰에 따라 바이트 스트림의 메시지를 식별해 낸 이후, 상기 테스트 서버는 해당 메시지의 크기를 인지하여 그 크기만큼의 바이트 스트림을 스킵한 후 다음 바이트 스트림에 대한 메시지 판단을 계속하게 된다.
테스트 서버(200)는 이와 같은 방식으로 데이터 청크 내에 혼재되어 있는 메시지를 각각 식별해 내어 인식 및 추출한다.
S10단계 이후의 다음 단계는 앞서 캡쳐한 메시지들을 테스트 서버(200) 내 저장수단에 데이터베이스화 하여 저장하는 단계(S20)이다.
이 때, 상기 테스트 서버(200)는 캡쳐한 각각의 메시지들에 대해 메시지 식별자, 메시지 크기, 필드, 필드 별 값 등을 하나의 세트(set)로 묶어 테스트 서버(200) 내 저장수단에 저장한다.
도 7은 테스트 서버(200)가 바이트 스트림으로부터 식별 및 추출해 낸 메시지를 분류하여 일정 형식에 따라 저장한 모습을 나타낸 것이다. 이에 따르면, 앞서 추출된 세션열기요청 메시지는 Cmd, SessionID, AckRv, Length, NodeID, AuthCode 필드를 포함하며, 각 필드의 값은 바이트 스트림으로부터 추출된 값이 대입되어 저장된다. 세션열기요청 메시지 이외에 여타의 메시지들, 즉 세션열기응답, 시스템설정요청, 시스템설정응답 등의 메시지들에 대해서도 같은 방식으로 저장된다.
한편, 저장수단에는 테스트 서버(200) 내에 장착된 모든 형태의 저장수단이 포함되며(캐쉬메모리, RAM, HDD, SSD 등) 더 나아가서는 상기 테스트 서버(200)에 삽입된 USB 디스크도 포함될 수 있음을 이해해야 할 것이다.
도 8은 앞서 데이터베이스화 된 메시지 정보들을 기초로 개발자가 시나리오를 작성하는 인터페이스, 그리고 시나리오에 따라 테스트가 진행될 때에 개발자에게 제공되는 인터페이스의 모습을 나타낸 것이다.
구체적으로, 도 8은 타겟 장치(100)가 스마트폰인 경우 상기 스마트폰에 대해 테스트 시나리오를 실행시켰을 때, 더 구체적으로는 스마트폰의 디스크용량이 100% 일 때의 환경에서 스마트폰의 카메라 기능이 정상적으로 구동되는지를 알아보기 위한 시나리오 상에서의 메시지 저장 상태를 나타낸 것인데, A영역에는 스마트폰과 테스트 서버(200)가 상호 제어 메시지 및 응답 메시지를 주고 받은 내역이 기록되며, B영역에는 테스트 서버(200) 내 저장수단에 저장된 메시지가 출력되고, C영역에는 선택된 메시지의 세부 속성정보, 즉 메시지 식별자, 메시지 크기, 필드 및 필드 별 값이 포함된 정보들이 출력되고 있음을 확인할 수 있다.
특히 B영역은 타겟 장치(100)인 스마트폰과 테스트 서버(200)가 주고 받은 메시지를 저장한 것인데, 여기에는 스마트폰과의 접속을 위한 메시지(세션초기화, 세션열기, 링크설정, 모드변경), 스마트폰의 카메라를 구동시키기 위한 메시지(카메라제어), 디스크의 남은 용량 정도를 설정하기 위한 메시지(디스크설정), 카메라로 찍은 이미지를 저장하기 위한 메시지(영상저장)가 포함된다.
한편 C영역에는 B영역에서 선택된 메시지의 세부 속성정보가 표시된다. 도 6을 참조하면, 테스트 서버(200)가 스마트폰으로 전송한 메시지 중 '디스크설정요청' 메시지는 메시지 기본 정보로서 메시지명, 메시지 길이, 메시지 필드 개수 등을 포함하며, 각 필드마다의 값을 포함하고 있음을 확인할 수 있다.
이와 같이 테스트 서버(200)는 타겟 장치(100) 상에 테스트 시나리오를 실행시키는 과정에서 송수신 된 메시지를 모두 데이터베이스화 하여 저장하며, 개발자, 즉 사용자로서는 상기 저장된 메시지들을 쉽게 확인할 수 있음은 물론 후술할 바와 같이 메시지 내 속성정보, 특히 필드의 값을 용이하게 제어할 수 있게 되어 보다 효과적으로 테스트를 수행할 수 있게 된다.
도 9는 본 발명에 따른 테스트 서버(200)상에서 개발자가 직접 타겟 장치(100)에 대한 시스템 테스트를 진행하기 위해 시나리오를 작성하는 실시예를 나타낸 것이다.
개발자, 즉 사용자는 타겟 장치(100)에 대한 시스템 테스트를 진행하기 위해 앞서 데이터베이스화 하였던 메시지를 활용하여 시나리오를 작성할 수 있다. 도 9는 사용자가 타겟 장치(100), 즉 스마트폰에 대한 시스템 테스트를 수행하기 위해 두 가지 단계(타겟 장치와 네트워크 연결을 수행하는 단계; 타겟 장치에 세션생성을 요청하는 단계;)가 포함된 시나리오를 작성한 예시를 나타낸 것이다.
이러한 시나리오는 도 8 또는 도 9에서와 같은 인터페이스 상에서 사용자가 직접 테스트 하고자 하는 명령어를 입력하거나 또는 명령어가 나열된 목록으로부터 사용자로 하여금 선택케 함으로써 작성하도록 환경을 제공할 수 있다.
사용자는 이와 같은 방식으로 타겟 장치에 대한 시나리오 작성을 수행할 수 있다.
한편, 다시 도 2를 참조할 때, 캡쳐한 메시지들을 데이터베이스화 하여 저장한 이후 테스트 서버(200)는 상기 저장된 메시지들 중 일부에 대해 필드 값을 변경하여 동적 제어(S30)를 수행할 수 있다.
메시지 동적 제어 단계(S30)는 본 발명에 따른 메시지 기반 테스트 방법의 특징적인 단계 중 하나로서, 메시지들이 데이터베이스화 되어 저장되어 있음을 기화로 개발자, 즉 사용자가 상기 메시지들을 상황에 맞게 값을 바꾸어 제어할 수 있게 한다는 점에서 의미가 있다.
메시지 동적 제어 단계는 기본적으로 테스트 서버(200)가 외부로부터의 입력을 받거나 또는 기설정된 조건이 만족된 경우 저장수단 내 저장된 메시지의 속성정보 중 일부, 그 중에서도 특히 특정 필드의 값을 변경하는 것을 특징으로 한다. 테스트 서버(200)가 외부로부터 입력을 받는다는 것의 의미는 테스트 서버(200)에 구비된 입력장치, 예를 들어 키보드 또는 마우스 등의 입력장치를 통해 개발자(사용자)가 직접 제어하고자 하는 메시지를 선택하고 변경하고자 하는 필드의 값을 입력하는 경우를 의미한다. 또한 기설정된 조건이 만족된 경우 필드의 값을 변경하는 것이란, 개발자(사용자)가 특정 조건에서 특정 메시지, 특정 필드의 값을 변경시킬 것을 정해 둔 경우 테스트 서버(200)가 테스트 수행 과정에서 위 조건에 만족하는 경우가 존재하는지를 판단하여 존재하는 경우 정해진 바에 따라 해당 값을 변경하는 것을 의미한다.
메시지 동적제어의 일 실시 예를 들면 다음과 같다.
예를 들어 타겟 장치(100)를 제어할 때에 반드시 날짜정보가 포함되어야 하는 경우, 테스트 서버(200)는 상기 타겟 장치(100)로 제어 메시지를 전송할 때에 날짜 필드 및 해당 날짜 필드에 오늘 날짜(20150710)를 값으로 입력하여 전송하게 된다. 그런데 해당 타겟 장치(100)에 대한 테스트가 하루가 아닌 이틀에 걸쳐 이루어져야 하는 경우, 다음날 테스트를 수행하기 위해 시나리오를 실행시키면 이미 타겟 장치(100)로 전송된 제어 메시지에는 어제 날짜(20150710)가 필드 값으로서 포함되어 있어 해당 제어 메시지를 타겟 장치(100)로 전송하더라도 상기 타겟 장치(100)는 정상적으로 구동을 하지 않게 된다. 이 때 개발자(사용자)는 본 발명에서의 메시지 동적 제어단계(S30)를 이용하여 상기 메시지 내 날짜 필드 값을 20150711로 변경함으로써 테스트가 원활히 진행될 수 있게 한다.
메시지 동적제어의 또 다른 실시 예를 살펴보면 다음과 같다.
예를 들어, 앞서 스마트폰에 대한 테스트를 상기해 볼 때, 개발자(사용자)가 스마트폰 디스크의 용량이 100% 찼을 때가 아닌 90%가 찼을 때의 카메라 구동을 살펴보고자 하는 경우, 상기 개발자(사용자)는 테스트 서버(200)의 입력장치를 이용하여 저장되어 있는 메시지 중 디스크설정요청을 선택하고, 이 메시지의 필드 중 CtrlIntValue값을 100에서 90으로 바꿈으로써 상기 스마트폰의 저장용량이 90%인 환경으로 테스트 환경을 조절할 수 있다.
도 10 내지 도 12는 테스트 서버(200)를 통해 메시지 동적 제어를 실시하는 예시를 나타낸 것이다.
도 10은 앞서 도 9에서 작성된 시나리오에서 세션열기요청을 하기 이전 사용자가 잘못된 암호를 입력한 상황을 테스트 하기 위한 시나리오가 작성된 예시를 나타낸 것이다. 이하에서는 잘못된 암호가 입력된 경우를 테스트하기 위해 테스트 서버(200)가 세션열기요청 메시지 내 AuthCodeValue 필드에 메시지 동적 제어를 실시하여 잘못된 값을 입력하는 경우를 전제로 설명하기로 한다.
잘못된 암호가 입력된 상황을 테스트 하기 위해서는 틀린 암호가 전송되는 메시지가 테스트 서버(200) 내에 저장되어 있어야 하는데, 앞서 테스트 서버(200)가 캡쳐한 메시지들은 타겟 장치(100)와 제어 장치(300)가 정상적인 암호를 주고 받은 상황에서 캡쳐된 것이기 때문에 상기 캡쳐한 메시지를 임의로 잘못된 암호로 변경을 해 주어야 할 필요성이 있다. 메시지 동적 제어란 이와 같이 사용자가 임의로 메시지를 수정하여 다양한 테스트 환경을 구현할 수 있게 해 주는 기능이다.
한편, 테스트 서버(200) 상에서 메시지 동적 제어는 다양한 방식으로 구현될 수 있는데, 도 10은 그 중에서도 사용자가 직접 원하는 필드의 값을 변경하는 방식을 나타낸 것이다.
즉, 사용자는 인터페이스를 통해 직접 AuthCodeValue로서 "잘못된암호"라는 값이 대응되도록 명령어를 입력할 수 있으며, 이로써 타겟 장치와 테스트 서버(200)간 연결 시 틀린 암호가 입력된 경우의 상황을 테스트 할 수 있게 된다.
도 11은 상기 AuthCodeValue에 다른 함수, 즉 today()라는 함수를 실행시킴에 따른 결과값을 입력시키기 위한 것으로, 사용자가 상기 AuthCodeValue 필드에 도 11과 같이 정의해 둔 경우 해당 시나리오를 진행할 때마다 AuthCodeValue에는 올바른 암호가 아닌 전혀 다른 값이 입력되도록 할 수가 있다. 즉, 도 11은 사용자가 직접 AuthCodeValue의 값을 변경하는 것이 아니라 타 함수의 결과값을 이용하는 실시예를 나타낸 것으로, 이와 같이 정의해 두는 경우 사용자는 매번 AuthCodeValue의 값을 지정해 주어야 하는 불편함을 덜 수 있다.
한편, 도 12는 테스트 서버(200)가 외부 데이터를 참조하여 상기 AuthCodeValue의 값을 변경하는 실시예를 나타낸 것이다. 즉, 테스트 서버(200)는 별도로 작성되어 있는 데이터 그리드, 즉 별도의 외부 데이터를 참조하여 잘못된 암호가 입력되도록 제어할 수도 있다. 도 12는 테스트 서버(200)로 하여금 외부 데이터 시트에 정의되어 있는 임의의 값인 "패스"를 암호로서 지정하도록 제어하고 있는 실시예를 나타낸 것이다.
이와 같이 본 발명에 따른 테스트 서버(200)는 데이터베이스화 되어 있는 메시지의 각 필드 값을 제어할 수 있는데, 이 때 제어 방식은 사용자가 직접 입력하는 방식도 존재할 수 있으나, 도 11 또는 도 12에서와 같이 사용자가 정의한 로직에 따라 자동적으로 이루어지도록 구현하는 방식도 존재할 수 있다. 이러한 메시지 필드 값의 제어 방식을 메시지 동적 제어라 한다.
이와 같이 본 발명에 따른 메시지 기반 테스트 방법은 테스트 서버(200) 내 데이터베이스화 하여 저장한 메시지들을 개발자(사용자)의 편의에 따라 또는 테스트 환경에 따라 적절하게 변경할 수 있도록 하여 개발자(사용자)로 하여금 보다 쉽게 여러 상황에서의 제품 테스트를 해 볼 수 있는 환경을 제공한다.
다시 도 2를 참조할 때, 본 발명에 따른 테스트 방법은 메시지의 전송 및 응답 상황을 분석하여 오류가 있는지 여부를 모니터링 하는 오류 여부 분석 단계(S40)를 포함한다.
본 단계는 테스트 서버(200)가 타겟 장치(100)로 전송한 제어 메시지, 그리고 타겟 장치(100)가 테스트 서버(200)로 전송한 응답 메시지가 상호 대응되는 메시지인지 여부를 판단하는 것으로, 테스트 서버(200)는 S40단계를 수행할 때에 앞서 데이터베이스화 해 두었던 메시지를 참조하여 상기 메시지 송수신의 오류 여부를 분석한다.
예를 들어, 테스트 서버(200)가 메시지 식별자로서 1000의 값을 가지는 '디스크설정요청' 메시지를 전송하였을 때, 스마트폰은 이에 대한 응답으로서 메시지 식별자 8000의 값을 가지는 '디스크설정응답' 메시지를 테스트 서버(200)로 전송하여야 하는데, 9000의 메시지 식별자 값을 가지는 다른 메시지가 응답으로서 수신되는 경우 상기 테스트 서버(200)는 오류를 인지하여 이를 기록 및 보고한다. 앞서도 언급하였지만, 테스트 시나리오 상에서 타겟 장치(100)로 전송된 메시지, 그리고 타겟 장치(100)로부터 테스트 서버(200)로 수신되는 메시지는 데이터베이스화 되어 저장되어 있으며, 메시지 간 상호 송수신 관계 역시 데이터베이스화 되어 있으므로 테스트 서버(200)는 이를 참조하여 메시지의 오류 여부를 판별해 낼 수 있다.
한편, 테스트 서버(200)의 메시지 오류 분석은 타겟 장치(100)로부터 수신된 메시지와 데이터베이스화 되어 있는 메시지의 각 필드 별 값을 비교함으로써 이루어진다. 관련하여 도 13에는 수신된 메시지와 데이터베이스화 된 메시지를 비교하는 모습이 도시되어 있다.
도 13에 따르면, 어느 테스트 시나리오 상 타겟 장치(100)로부터 수신된 메시지는 Cmd, SessionID, AckRv, Length, Result 와 같은 5개의 필드를 가지며, 각각의 필드는 값을 가지는데, 이 때 테스트 서버(200)는 데이터베이스화 되어 있는 해당 메시지의 각 필드별 값과 위 수신된 메시지의 필드별 값을 비교하여 오류 여부를 판단할 수 있다.
한편, 이 때 테스트 서버(200)는 오류 여부 판단의 효율성을 위해 모든 필드를 대비시킬 필요는 없으며, 반드시 확인이 필요한 특정된 필드만을 비교 대상으로 삼을 수 있다. 도 13에서는 Cmd, AckRv, Result 필드에 대하여만 비교를 수행하는 실시예가 개시되어 있다. 이 경우 상기 특정된 3개 필드 이외에 대해서는 필드 값이 상이하더라도 테스트 서버는 이를 오류로 인식하지 않게 된다.
또한 이 때, 사용자는 메시지 오류 분석 시 비교대상이 되는 필드를 임의로 설정하여 테스트 서버(200)가 오류 분석 시 선택된 필드만을 기준으로 비교 수행을 하도록 구현할 수도 있다.
한편, 앞서 검토한 메시지 동적 제어와 같은 맥락에서, 본 발명에 따른 테스트 서버는 메시지의 오류 여부를 판단할 때에도 데이터베이스화 된 메시지의 필드 값을 임의로 제어하여 수신된 메시지와의 비교시 원활한 오류 분석이 이루어질 수 있도록 소위 메시지 동적 비교 기능을 제공할 수 있다.
예를 들어, 앞서 세션열기요청 시 잘못된 암호를 입력하였을 때의 테스트 시나리오를 진행하기 위해 메시지 동적 제어를 통해 관련 메시지의 필드 값을 임의로 변경하는 내용을 검토한 바 있는데, 메시지의 오류 여부를 판단할 때에도 현재 데이터베이스에 저장되어 있는 메시지는 애초에 정상적인 암호가 입력되었을 때의 메시지가 캡쳐되어 있을 것이므로, 타겟 장치(100)에서 "잘못된 암호"에 대한 정상적인 메시지를 송신하였음에도 불구하고 테스트 서버(200)는 "정상적인 암호"에 대한 메시지만을 저장하고 있기 때문에 오류 분석시 "오류"로 판단할 수가 있다. 본 발명에 따른 테스트 서버(200)는 이와 같이 잘못된 오류 여부 판단을 방지하기 위해 비교 대상의 기준이 되는 데이터베이스화 된 메시지의 필드 값을 미리 변경해 줌으로써 정상적인 시나리오 진행 및 오류 분석이 가능하게 한다.
도 14 및 도 15는 메시지 동적 비교를 수행하기 위해 데이터베이스화 된 메시지의 특정 필드 값을 임의로 변경하는 모습을 나타낸 것이다.
잘못된 암호에 대한 세션열기요청 메시지가 수신된 경우 경우, 타겟 장치(100)는 이에 대한 응답, 즉 세션열기응답 메시지의 Result 필드에 0이라는 값을 삽입시켜 테스트 서버(200)로 보내는데, 테스트 서버(200)에는 Result 필드의 값이 1인 경우의 세션열기응답 메시지만 저장되어 있으므로 상기 타겟 장치(100)로부터 수신되는 세션열기응답 메시지를 올바르게 비교 판단할 수가 없다.
이에 본 발명에 따른 테스트 서버(200)는 도 14, 도 15와 같이 테스트 서버(200) 내 저장되어 있는 메시지의 필드 값을 임의로 변경할 수 있도록 하고 있다.
도 14는 사용자가 직접 테스트 서버(200)에 저장되어 있는 세션열기응답 메시지의 Result 필드 값을 0으로 설정할 수 있도록 인터페이스를 제공하는 모습을 나타낸 것이다.
도 15는 도 12에서의 메시지 동적 제어 실시예와 유사하게 외부 데이터를 참조하여 Result 필드 값이 0이 되도록 정의한 모습을 나타낸 것이다.
이와 같이 본 발명에 따른 테스트 서버(200)는 데이터베이스화 되어 있는 메시지들에 대해 각 필드의 값을 변경할 수 있도록 함으로써 사전에 메시지를 캡쳐할 때의 상황 이외에 다양한 테스트 환경을 구축할 수 있으며, 이에 따라 정확한 오류 여부 판단도 할 수 있게 한다는 점에서 의의가 있다.
한편, 도 14 및 도 15의 실시예는 메시지 동적 비교의 두 가지 예에 불과한 것이며, 설명한 방식 이외에도 사용자가 정의한 로직에 따라 테스트 서버(200) 내 저장된 메시지의 각 필드 값을 변경할 수 있으며, 이에 따라 타겟 장치(100)로부터 수신된 메시지와의 정확한 비교 수행이 가능해질 수 있음을 이해해야 할 것이다.
마지막으로, 본 발명에 따른 테스트 방법은 일련의 과정을 거쳐 실시한 테스트의 결과를 리포트로 생성(S50)하여 개발자(사용자)에게 제공한다.
결과 리포트에는 테스트 시나리오의 시작시각, 종료시각, 수행 횟수, 메시지가 송수신 된 횟수(전체 스텝), 그 중에서 성공 또는 실패한 횟수 등이 기록되며, 더 세부적으로는 송수신 된 메시지의 세부 속성정보, 필드 값 변경 이력 등도 함께 포함될 수 있다.
도 16은 테스트 서버(200)에 의해 생성된 결과 리포트의 예시를 나타낸 것이다.
이상 본 발명에 따른 메시지 기반 테스트 방법에 대하여 순서에 따라 살펴보았다.
이하에서는 도 17을 참조하여 본 발명에 따른 테스트 서버(200)의 세부구성에 대해 살펴보기로 한다.
도 8에 따르면, 테스트 서버(200)는 통신부(210), 메시지 캡쳐부(220), 데이터베이스 생성부(230), 저장부(240) 및 제어부를 기본구성으로 포함하며, 부가적으로 메시지 동적 제어부(250), 입력부(260), 검사부(270)를 더 포함할 수 있다.
통신부(210)는 테스트 서버(200)가 외부 타겟 장치(100)와 데이터를 송수신하기 위해 필요한 구성으로서, 이 때 통신부(210)는 유선 또는 무선으로 타겟 장치(100)와 연결 채널을 구축하며 이를 통해 일련의 데이터를 주고 받게 된다. 이 때 상기 통신부(210)는 타겟 장치(100)와 테스트 서버(200)를 근거리 무선 통신망(블루투스, 와이파이 등)을 통해 연결할 수도 있으며, 또는 기지국을 통한 이동통신망을 통해 연결할 수도 있다. 또한 상기 통신부(210)는 타겟 장치(100)와 USB 라인을 통해 연결되어 데이터를 송수신 할 수도 있다.
메시지 캡쳐부(220)는 본격적인 테스트 시나리오 진행 이전에 타겟 장치(100)와 제어 장치(300) 간 주고 받는 메시지를 캡쳐한다. 이 때, 메시지 캡쳐는 테스트 서버(200) 내 저장수단에 저장되어 있는 메시지 정의 및 매칭룰을 참조하여 이루어진다.
다음으로, 데이터베이스 생성부(230)는 상기 캡쳐한 메시지를 테스트 서버(200) 내 저장수단에 데이터베이스화 하여 저장하는 기능을 한다. 구체적으로, 데이터베이스 생성부(230)는 상기 캡쳐한 메시지가 포함하는 필드, 필드별 값을 획득하고, 이를 분류하여 저장수단에 저장한다. 캡쳐된 메시지가 데이터베이스화 되어 저장되는 과정은 도 7 및 관련 설명 부분을 참조하기로 한다.
저장부(240)는 본 발명에 따른 테스트를 진행함에 따라 필요한 데이터, 파생되는 데이터가 저장되는 저장수단을 이르는 것으로서, 여기에는 개발자(사용자)가 정의한 메시지 정의, 매칭룰이 저장되어 테스트 서버(200)가 테스트 진행시 참조할 수 있게 한다.
또한, 상기 저장부(240)에는 상기 메시지 캡쳐부(220)가 캡쳐한 메시지들도 저장된다.
상기 저장부(240)는 테스트 서버(200) 내에 장착된 HDD, SSD 등 물리적으로 데이터를 저장할 수 있는 수단을 모두 포함하며, 나아가 테스트 서버(200)의 내부에 장착되지는 않으나 테스트 서버(200)의 슬롯에 삽입되는 형식으로 연결된 저장수단, 예를 들어 USB 저장수단도 포함될 수 있고, 더 나아가서는 상기 테스트 서버(200)와 네트워크망을 통해 연결된 클라우드 저장수단도 포함될 수 있는 것으로 이해되어야 할 것이다.
한편, 상기 테스트 서버(200)는 앞서 언급한 기능부, 또한 후술할 기능부들을 총괄적으로 제어하기 위한 제어부(280)를 더 포함한다. 이 때 제어부(280)는 적어도 하나의 연산 장치를 포함할 수 있는데, 이 때 연산장치로는 범용적인 중앙연산장치(CPU), 특정 목적에 적합하게 구현된 프로그래머블 디바이스 소자(CPLD, FPGA), 주문형 반도체 연산장치(ASIC) 또는 마이크로 컨트롤러 칩일 수 있다.
한편, 본 발명에 따른 테스트 서버(200)는 위 기본 구성 이외에 메시지 동적 제어부(250)를 더 포함할 수 있다. 메시지 동적 제어부(250)는 상기 저장부(240)에 저장된 메시지 내 하나 이상의 필드 값을 변경하는 기능부로서, 개발자(사용자)는 테스트 환경에 따라 적절하게 값을 제어하여 다양한 시나리오를 테스트 해 보거나 또는 원활한 테스트 진행을 할 수 있게 된다. 이 때 상기 메시지 동적 제어부(250)는 다양한 테스트 시나리오를 구현하기 위한 메시지 동적 제어 기능은 물론, 테스트 시나리오 진행에 따라 정확한 오류 분석을 가능케 하기 위한 메시지 동적 비교 기능에 관여한다.
한편, 개발자(사용자)는 상기 테스트 서버(200)를 제어하기 위한 명령어를 입력하기 위해, 특히 상기 메시지 동적 제어부(250)를 활용하여 메시지 내 특정 필드의 값을 변경하기 위한 명령어를 입력할 수단이 필요한데, 본 발명에 따른 테스트 서버(200)는 이를 위해 입력부(260)를 더 포함할 수 있다. 이 때 입력부(260)에는 키보드, 마우스, 터치패드 등 사용자가 의도하고자 하는 명령어를 입력할 수 있는 수단이 모두 포함될 수 있다.
또 다른 한편, 상기 테스트 서버(200)는 테스트 시나리오를 실시한 결과 저장된 메시지들을 분석하여 타겟 장치(100)의 구동에 오류가 존재하는지 여부를 판단하는 검사부(270)가 더 포함될 수 있다. 본 검사부(270)는 상기 저장부(240)에 저장된 메시지 정의를 참조하여 테스트 서버(200)가 타겟 장치(100)로 전송한 제어 메시지, 그리고 타겟 장치(100)가 이에 대응하여 전송한 응답 메시지가 올바르게 매칭되는지를 검사하고 이를 기초로 상기 타겟 장치(100)의 정상구동상태를 파악하게 된다.
한편, 상기 검사부(270)는 타겟 장치(100)의 정상구동상태를 파악하는 데에 그치지 않고 상기 검사 결과를 기초로 결과 리포트를 생성하여 사용자에게 제공하는 기능도 수행할 수 있다.
이상 본 발명의 바람직한 실시예 및 응용예에 대하여 도시하고 설명하였으나, 본 발명은 상술한 특정의 실시예 및 응용예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 구별되어 이해되어서는 안 될 것이다.
100 타겟 장치
200 테스트 서버
210 통신부
220 메시지 캡쳐부
230 데이터베이스 생성부
240 저장부
250 메시지 동적 제어부
260 입력부
270 검사부
280 제어부
300 제어 장치
200 테스트 서버
210 통신부
220 메시지 캡쳐부
230 데이터베이스 생성부
240 저장부
250 메시지 동적 제어부
260 입력부
270 검사부
280 제어부
300 제어 장치
Claims (10)
- 테스트 서버가 타겟 장치에 대한 메시지 기반의 테스트를 수행하는 방법에 있어서,
(a) 테스트 서버가, 제어 장치와 상기 타겟 장치가 상호 송수신하는 바이트 스트림으로부터 특정 메시지를 추출하는 단계;
(b) 추출된 메시지가 포함하는 필드별 값을 획득하고, 상기 필드 및 변수가 분류된 각 메시지를 테스트 서버 내 저장공간에 저장하는 단계; 및
(c) 상기 저장된 메시지들 중 하나 이상의 특정 메시지의 필드 값을 변경하는 단계;
를 포함하고,
상기 (a)단계는
(a-1) 제어 장치와 타겟 장치가 송수신하는 바이트 스트림을 읽는 단계;
(a-2) 메시지 정의 및 매칭룰을 참조하여 상기 읽은 바이트 스트림이 특정 메시지인지 여부를 판단하는 단계;
(a-3) 상기 바이트 스트림이 특정 메시지인 경우 당해 특정 메시지를 추출하는 단계;
를 포함하고,
상기 (a-2)단계에서의 판단 결과 상기 바이트 스트림이 특정 메시지가 아닌 경우 당해 메시지의 크기를 인지하여 그 크기만큼의 바이트 스트림을 스킵한 후 다음 바이트 스트림을 읽는 것을 특징으로 하며,
상기 (c)단계는
상기 테스트 서버가 특정 함수의 실행에 따른 결과값을 상기 특정 메시지의 필드 값으로 변경하는 것 또는 상기 테스트 서버가 외부 데이터의 값을 참조하여 상기 값을 상기 특정 메시지의 필드 값으로 변경하는 것을 특징으로 하는 메시지 기반 테스트 방법.
- 삭제
- 삭제
- 삭제
- 제1항에 있어서,
테스트 시나리오 진행에 따라 상기 테스트 서버와 타겟 장치 간 송수신 된 메시지들을 분석하여 오류여부를 판단하는 단계;
오류여부 판단결과가 포함된 결과 리포트를 생성하는 단계;
를 더 포함하는 메시지 기반 테스트 방법.
- 타겟 장치에 대한 메시지 기반의 테스트를 수행하는 테스트 서버에 있어서,
상기 타겟 장치와의 데이터 송수신을 위한 통신부;
제어 장치와 상기 타겟 장치가 송수신하는 바이트 스트림으로부터 메시지를 추출하는 메시지 캡쳐부;
캡쳐한 메시지가 포함하는 필드 및 필드별 값을 획득하고, 상기 필드 및 필드별 값이 분류된 각 메시지를 저장하는 데이터베이스 생성부;
메시지가 저장되는 저장부;
저장된 메시지 내 하나 이상의 필드의 값을 변경하는 메시지 동적 제어부; 및
상기 통신부, 메시지 캡쳐부, 데이터베이스 생성부, 저장부 및 메시지 동적 제어부를 제어하는 제어부;
를 포함하고,
상기 메시지 캡쳐부는
제어 장치와 타겟 장치가 송수신하는 바이트 스트림을 읽고, 메시지 정의 및 매칭룰을 참조하여 상기 읽은 바이트 스트림이 특정 메시지인지 여부를 판단하며, 상기 바이트 스트림이 특정 메시지인 경우 당해 특정 메시지를 추출하고, 상기 바이트 스트림이 특정 메시지가 아닌 경우 당해 메시지의 크기를 인지하여 그 크기만큼의 바이트 스트림을 스킵한 후 다음 바이트 스트림을 읽는 것을 특징으로 하며,
상기 메시지 동적 제어부는
특정 함수의 실행에 따른 결과값을 상기 특정 메시지의 필드 값으로 변경하는 것 또는 외부 데이터의 값을 참조하여 상기 값을 상기 특정 메시지의 필드 값으로 변경하는 것을 특징으로 하는 테스트 서버.
- 삭제
- 삭제
- 제6항에 있어서,
사용자로부터 입력을 수신하기 위한 입력부;
를 더 포함하는 테스트 서버.
- 제6항에 있어서,
테스트 시나리오 진행상 테스트 서버와 타겟 장치 간 송수신 되는 메시지들을 분석하여 오류여부를 판단하는 검사부;
를 더 포함하는 테스트 서버.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150109352A KR101648969B1 (ko) | 2015-08-03 | 2015-08-03 | 메시지 기반 테스트를 위한 테스트 서버 및 그 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150109352A KR101648969B1 (ko) | 2015-08-03 | 2015-08-03 | 메시지 기반 테스트를 위한 테스트 서버 및 그 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101648969B1 true KR101648969B1 (ko) | 2016-08-18 |
Family
ID=56874594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150109352A KR101648969B1 (ko) | 2015-08-03 | 2015-08-03 | 메시지 기반 테스트를 위한 테스트 서버 및 그 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101648969B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101734462B1 (ko) * | 2016-10-19 | 2017-05-24 | 티엔씨 퍼스트 주식회사 | 주차설비 원격 관리 방법 및 그 장치 |
CN111414305A (zh) * | 2020-03-18 | 2020-07-14 | 中国工商银行股份有限公司 | 测试方法、测试装置、测试设备以及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060057008A (ko) * | 2003-09-18 | 2006-05-25 | 노키아 코포레이션 | 통신을 모니터링하는 방법 및 시스템 및 모니터링 프로토콜 |
US20120084060A1 (en) | 2010-10-01 | 2012-04-05 | Autodesk, Inc. | Modifying a parametrically defined model with an explicit modeler |
KR20140044028A (ko) * | 2012-10-04 | 2014-04-14 | 한국항공우주연구원 | 메시지 로깅 기반 프로그램 테스팅 시스템 및 방법 |
-
2015
- 2015-08-03 KR KR1020150109352A patent/KR101648969B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060057008A (ko) * | 2003-09-18 | 2006-05-25 | 노키아 코포레이션 | 통신을 모니터링하는 방법 및 시스템 및 모니터링 프로토콜 |
US20120084060A1 (en) | 2010-10-01 | 2012-04-05 | Autodesk, Inc. | Modifying a parametrically defined model with an explicit modeler |
KR20140044028A (ko) * | 2012-10-04 | 2014-04-14 | 한국항공우주연구원 | 메시지 로깅 기반 프로그램 테스팅 시스템 및 방법 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101734462B1 (ko) * | 2016-10-19 | 2017-05-24 | 티엔씨 퍼스트 주식회사 | 주차설비 원격 관리 방법 및 그 장치 |
CN111414305A (zh) * | 2020-03-18 | 2020-07-14 | 中国工商银行股份有限公司 | 测试方法、测试装置、测试设备以及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9569325B2 (en) | Method and system for automated test and result comparison | |
WO2018120721A1 (zh) | 用户界面的测试方法、系统、电子装置及计算机可读存储介质 | |
US9984244B2 (en) | Controller, information processing apparatus, and recording medium | |
CN102752294B (zh) | 基于设备能力的多终端数据同步方法和系统 | |
EP3179321B1 (en) | System and method for testing configuration and operation of i/o devices | |
CN101882108A (zh) | 嵌入式软件自动测试系统及其方法 | |
US20210111967A1 (en) | Graphical user interface for traffic capture and debugging tool | |
KR101648969B1 (ko) | 메시지 기반 테스트를 위한 테스트 서버 및 그 방법 | |
CN108293199A (zh) | 提供事件管理服务的电子装置和方法 | |
CN112698640B (zh) | 一种ecu升级测试系统 | |
CN113133039A (zh) | 一种网关系统的性能测试方法以及装置 | |
US8855799B2 (en) | Automated mass production method and system thereof | |
CN111970166A (zh) | 一种测试方法、装置、设备、系统及计算机可读存储介质 | |
CN105323748A (zh) | 一种测试错误上传方法及装置 | |
KR101794016B1 (ko) | 분산 컴퓨팅 기반의 어플리케이션 객체 분석 방법, 이를 수행하는 어플리케이션 객체 분석 서버 및 이를 저장하는 기록매체 | |
CN112463067A (zh) | 一种NVMe-oF场景下的数据保护方法及设备 | |
JP2015049659A (ja) | テスト実行システム、テスト実行装置、テスト実行方法及びテスト実行プログラム | |
CN114679402B (zh) | 一种医疗机器人上下位机间通信协议的测试方法及装置 | |
CN111538666B (zh) | 批量收集测试结果的方法、装置、计算机设备及存储介质 | |
Lee et al. | Collecting big data from automotive ECUs beyond the CAN bandwidth for fault visualization | |
CN114356061B (zh) | 电源故障检测方法、装置、系统以及检测设备 | |
CN115426297B (zh) | 子设备的功能测试方法、装置、计算机设备和存储介质 | |
CN117538672B (zh) | 一种针对目标电容屏的测试方法、装置以及电子设备 | |
JP2015072531A (ja) | テスト支援方法、テスト支援装置およびプログラム | |
CN118519893A (zh) | 区块链平台的试验验证方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |