KR102087209B1 - 색차 기반의 gui 테스트 자동화 방법 및 이를 이용하는 장치 - Google Patents

색차 기반의 gui 테스트 자동화 방법 및 이를 이용하는 장치 Download PDF

Info

Publication number
KR102087209B1
KR102087209B1 KR1020180015056A KR20180015056A KR102087209B1 KR 102087209 B1 KR102087209 B1 KR 102087209B1 KR 1020180015056 A KR1020180015056 A KR 1020180015056A KR 20180015056 A KR20180015056 A KR 20180015056A KR 102087209 B1 KR102087209 B1 KR 102087209B1
Authority
KR
South Korea
Prior art keywords
gui
menu
test
color difference
module
Prior art date
Application number
KR1020180015056A
Other languages
English (en)
Other versions
KR20190095717A (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 KR1020180015056A priority Critical patent/KR102087209B1/ko
Publication of KR20190095717A publication Critical patent/KR20190095717A/ko
Application granted granted Critical
Publication of KR102087209B1 publication Critical patent/KR102087209B1/ko

Links

Images

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/3696Methods 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)
  • User Interface Of Digital Computer (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은, GUI 테스트 대상 애플리케이션을 실행하는 애플리케이션 실행모듈; 실행된 애플리케이션의 GUI 메뉴 항목에 표시된 색차를 판독하여 GUI 메뉴 항목의 실행 영역을 감지하는 색차 판독모듈; 색차 판독모듈의 판독 결과를 이용하여 입력 디바이스를 제어함으로써 GUI 메뉴 항목을 테스트하는 입력 디바이스 제어모듈; 및 상기 테스트를 통해 GUI 메뉴 항목에 할당된 핸들값을 분석하는 분석모듈을 포함하는 색차 기반의 GUI 테스트 자동화 장치를 개시한다. 본 발명에 따르면, 메뉴에 표시된 색차를 이용하여 메뉴를 빠르게 찾고, 해당 메뉴를 실행함으로써 입력 디바이스를 제어하는 범위 및 테스트 시간을 획기적으로 줄일 수 있다.

Description

색차 기반의 GUI 테스트 자동화 방법 및 이를 이용하는 장치{COLOR DIFFERENCE BASED METHOD FOR GUI TEST AUTOMATION AND APPARATUS USING THE SAME}
본 발명은 색차 기반의 GUI 테스트 자동화 방법 및 이를 이용하는 장치에 관한 것으로, 더욱 상세하게는 애플리케이션의 메뉴 실행을 통해 기능을 점검함으로써, 애플리케이션이 설계된 사용자 인터페이스에 따라 제대로 동작하는지 여부를 자동으로 테스트하고 그 결과를 분석하는 방법 및 이를 이용하는 장치에 관한 것이다.
최근 개발되는 소프트웨어, 애플리케이션 또는 프로그램들은 다양한 플랫폼 및 다양한 운영체제 환경에서 동작하도록 개발되고 있으며, 또한 과거와 비교하여 여러 가지 기술의 융합에 따라 다양한 기능 포함하고 있는 것이 특징이다.
이러한 애플리케이션은 제작 단계에서 GUI의 기능이 설계대로 제대로 동작하는지 테스트 하는 과정을 거치게 된다. 즉, 애플리케이션이 다양한 플랫폼 및 운영체제 환경에서 GUI를 통한 입력에 대해 기대되는 기능을 실행하고 합당한 결과를 출력하는지, 무한 루프의 오류로 인해서 애플리케이션을 구동하는 장치가 정지되는 일은 없는지를 판단하는 테스트가 수행된다.
그런데 개발자는 이러한 테스트를 위해서 점검 항목 및 메뉴 분석 등의 작업을 수작업을 통해 수행해야 하는 경우가 대부분이다. 이는 테스트 환경을 사용자들이 애플리케이션을 이용하는 환경과 동일하게 맞추고, 사용자들이 애플리케이션을 이용하는 방법과 동일한 방법으로 테스트를 수행함으로써 실제 사용환경에서 발생하는 오류가 검출될 수 있기 때문이다. 그리고 오류 검출의 신뢰도 확립을 위해 사용자의 사용환경과 동일한 사용환경에서 사용자가 수행하는 방법과 동일한 방법에 의한 테스트가 반복적으로 수행되어야 한다.
상기 수작업에 의한 테스트 과정에서 개발자는 직접 점검 범위를 계획하고, 일반 사용자가 애플리케이션을 사용하는 환경 및 방법과 동일하도록 테스트 동작을 프로그래밍에 의해 설정하게 된다.
따라서 테스트를 진행하기 위해서는 사용자가 애플리케이션을 사용하는 과정을 모두 설정하여 수행해야 하며, 테스트 항목을 추가할수록 테스트의 준비를 위한 과정이 복잡해지고, 준비 시간이 크게 증가하게 되는 문제점이 있다.
한국 공개특허 10-2014-0004495(공개일 2014.01.13) "응용 프로그램의 자동 테스트 방법 및 그 전자 장치"
본 발명이 해결하고자 하는 과제는, 메뉴에 표시된 색차를 이용하여 메뉴를 빠르게 찾고, 해당 메뉴를 실행함으로써 입력 디바이스를 제어하는 범위를 획기적으로 줄일 수 있는 GUI 테스트 자동화 방법 및 이를 이용하는 장치를 제공하는 것이다.
본 발명이 추가적으로 해결하려는 과제는, 메뉴에 표시된 색차를 이용하여 메뉴의 실행 영역을 찾고, 메뉴 실행에 있어서 복수의 입력 디바이스를 이용함으로써 복수의 테스트를 동시에 수행하고 그 결과를 복합적으로 분석할 수 있는 GUI 테스트 자동화 방법 및 이를 이용하는 장치를 제공하는 것이다.
본 발명의 일 실시 예에 따른 GUI 테스트 자동화 장치는, GUI 테스트 대상 애플리케이션을 실행하는 애플리케이션 실행모듈; 실행된 애플리케이션의 GUI 메뉴 항목에 표시된 색차를 판독하여 GUI 메뉴 항목의 실행 영역을 감지하는 색차 판독모듈; 색차 판독모듈의 판독 결과를 이용하여 입력 디바이스를 제어함으로써 GUI 메뉴 항목을 테스트하는 입력 디바이스 제어모듈; 및 상기 테스트를 통해 GUI 메뉴 항목에 할당된 핸들값을 분석하는 분석모듈을 포함하는 것을 특징으로 한다.
여기서, 상기 애플리케이션 실행모듈은, GUI 테스트 자동화 장치 내의 로컬 영역 또는 외부 리모트 영역에서 상기 GUI 테스트 대상 애플리케이션을 실행하는 것을 특징으로 한다.
여기서, 상기 애플리케이션 실행모듈은, 외부 복수의 리모트 영역에서 각각의 GUI 테스트 대상 애플리케이션을 실행하는 것을 특징으로 한다.
여기서, 상기 애플리케이션 실행모듈은, 이종의 운영체제 및 이종의 하드웨어로 구성되는 다양한 플랫폼의 외부 복수의 리모트 영역에서 각각의 GUI 테스트 대상 애플리케이션을 실행하는 것을 특징으로 한다.
여기서, 상기 입력 디바이스 제어모듈은, 상기 GUI 메뉴 항목의 실행 영역으로 입력 디바이스의 포인터를 이동시키고 해당 메뉴를 실행하도록 입력 디바이스를 제어하는 것을 특징으로 한다.
여기서, 상기 색차 판독모듈은, 상기 GUI 메뉴 영역을 복수 개로 구분하고, 구분된 영역별로 실행 가능 메뉴 영역 및 GUI 변화를 감지하는 것을 특징으로 한다.
여기서, 상기 자동화 장치는, GUI 설계시에 테스트 대상 애플리케이션을 구성하는 요소에 할당된 기본값을 저장하는 저장 장치를 더 포함하고, 상기 분석모듈은, GUI 테스트를 통해 핸들값을 획득하고, 획득한 핸들값과 상기 할당된 기본값의 비교를 통해 GUI 설계상의 오류를 검출하는 것을 특징으로 한다.
여기서, 상기 기본값은, GUI 설계시에 GUI 최상위 메뉴와 이로부터 분기되는 메뉴의 위치, 형태 및 메뉴에 의해 호출되는 기능에 할당된 핸들값인 것을 특징으로 한다.
본 발명의 일 실시 예에 따른 색차 기반의 GUI 테스트 자동화 방법은, GUI 테스트 대상 애플리케이션 실행하는 단계; 실행된 애플리케이션의 GUI 메뉴 항목에 표시된 색차를 판독하여 GUI 메뉴 항목의 실행 영역을 감지하는 단계; 색차 판독모듈의 판독 결과를 이용하여 입력 디바이스를 제어함으로써 GUI 메뉴 항목을 테스트하는 단계; 및 상기 테스트를 통해 GUI 테스트 항목에 할당된 핸들값을 분석하는 단계를 포함하는 것을 특징으로 한다.
여기서, 상기 GUI 테스트 대상 애플리케이션 실행하는 단계는, GUI 테스트 자동화 장치 내의 로컬 영역 또는 외부 리모트 영역에서 상기 GUI 테스트 대상 애플리케이션을 실행하는 것을 특징으로 한다.
여기서, 상기 GUI 테스트 대상 애플리케이션 실행하는 단계는, 외부 복수의 리모트 영역에서 각각의 GUI 테스트 대상 애플리케이션을 실행하는 것을 특징으로 한다.
여기서, 상기 테스트 대상 애플리케이션을 실행하는 단계는, 이종의 운영체제 및 이종의 하드웨어로 구성되는 다양한 플랫폼의 외부 복수의 리모트 영역에서 각각의 GUI 테스트 대상 애플리케이션을 실행하는 것을 특징으로 한다.
여기서, 상기 GUI 메뉴 항목을 테스트하는 단계는, 상기 GUI 메뉴 항목의 실행 영역으로 입력 디바이스의 포인터를 이동시키고 해당 메뉴를 실행하도록 입력 디바이스를 제어하는 것을 특징으로 한다.
여기서, 상기 GUI 메뉴 항목의 실행 영역을 감지하는 단계는, 상기 GUI 메뉴 영역을 복수 개로 구분하고, 구분된 영역별로 실행 가능 메뉴 영역 및 GUI 변화를 감지하는 것을 특징으로 한다.
여기서, 상기 GUI 테스트 자동화 방법은, GUI 설계시에 테스트 대상 애플리케이션을 구성하는 요소에 할당된 기본값을 저장하는 단계를 더 포함하고, 상기 핸들값을 분석하는 단계는, GUI 테스트를 통해 핸들값을 획득하고, 획득한 핸들값과 상기 할당된 기본값의 비교를 통해 GUI 설계상의 오류를 검출하는 것을 특징으로 한다.
여기서, 상기 기본값은, GUI 설계시에 GUI 최상위 메뉴와 이로부터 분기되는 메뉴의 위치, 형태 및 메뉴에 의해 호출되는 기능에 할당된 핸들값인 것을 특징으로 한다.
본 발명에 의하면, 메뉴에 표시된 색차를 이용하여 메뉴를 빠르게 찾고, 해당 메뉴를 실행함으로써 입력 디바이스를 제어하는 범위 및 테스트 시간을 획기적으로 줄일 수 있다.
또한, 메뉴에 표시된 색차를 이용하여 메뉴의 실행 영역을 찾고, 메뉴 실행에 있어서 복수의 입력 디바이스를 이용하여 복수의 테스트를 동시에 수행함으로써 일회 테스트 범위를 확장시킬 수 있다.
도 1은 본 발명의 일 실시 예에 따른 GUI 테스트 자동화 장치의 대략적인 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 GUI 테스트 자동화 장치를 포함하는 시스템 환경의 예시도이다.
도 3은 도 2에 관한 상세한 예시도이다.
도 4는 본 발명의 일 실시 예에 따른 GUI 테스트 자동화 장치의 블록도이다.
도 5는 도 4의 제어부에 관한 상세한 블록도이다.
도 6은 본 발명의 일 실시 예에 따른 대상 애플리케이션 구동 장치에 해당하는 컴퓨팅 장치의 블록도이다.
도 7은 본 발명의 일 실시 예에 따른 GUI 테스트 자동화 방법의 흐름도이다.
도 8은 본 발명의 일 실시 예에 따른 색차를 설명하기 위한 예시도이다.
이하, 첨부한 도면을 참조하여 GUI 테스트 자동화 장치 및 방법에 대한 바람직한 실시 예를 상세히 설명하기로 한다.
각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다. 또한 본 발명의 일 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는 것이 바람직하다.
도 1은 본 발명의 일 실시 예에 따른 GUI 테스트 자동화 장치의 대략적인 블록도이다.
도 1을 참조하면, 본 발명의 일 실시 예에 따른 GUI 테스트 자동화 장치(100)는 스탠드 얼론 형태로 운영체제(176), 테스트 애플리케이션 모듈(175) 및 대상 애플리케이션 모듈(179)을 모두 메모리(177)에 탑재할 수 있다.
또한, GUI 테스트 자동화 장치(100)는 네트워크를 통해 여러 대의 컴퓨팅 장치(200)에서 구동되는 대상 애플리케이션 모듈(275)을 테스트할 수 있다.
도 2는 본 발명의 일 실시 예에 따른 GUI 테스트 자동화 장치를 포함하는 시스템 환경의 예시도이다.
도 2를 참조하면, 본 발명의 일 실시 예에 따른 시스템 환경(1)은 GUI 테스트 자동화 장치(100), 다수의 대상 애플리케이션 구동 장치(200), 데이터베이스(300) 및 네트워크(400)를 포함한다. 도 2를 구체적으로 나타내면 도 3과 같다.
도 3은 도 2에 관한 상세한 예시도이다.
도 3을 참조하면, GUI 테스트 자동화 장치(100)는 운영체제(176) 및 테스트 애플리케이션 모듈(175)을 메모리(177)에 탑재하고, 대상 애플리케이션 구동 장치(200)는 운영체제(276) 및 대상 애플리케이션 모듈(275)을 메모리(277)에 탑재한다.
네트워크(400)는 유선 및 무선 네트워크, 예를 들어 인터넷(internet), 인트라넷(intranet) 및 엑스트라넷(extranet), 셀룰러, 예를 들어 무선 전화 네트워크, LAN(local area network), WAN(wide area network), WiFi 네트워크, 애드혹 네트워크 및 이들의 조합을 비롯한 임의의 적절한 통신 네트워크 일 수 있다.
데이터베이스(300)는 색차 판독을 위한 기준 이미지 및 테스트 결과에 기초하여 GUI 변화를 판독하는데 이용되는 기준 이미지에 관한 데이터베이스를 포함할 수 있다.
네트워크(400)는 허브, 브리지, 라우터, 스위치 및 게이트웨이와 같은 네트워크 요소들의 연결을 포함할 수 있다. 네트워크(400)는 인터넷과 같은 공용 네트워크 및 안전한 기업 사설 네트워크와 같은 사설 네트워크를 비롯한 하나 이상의 연결된 네트워크들, 예컨대 다중 네트워크 환경을 포함할 수 있다. 네트워크(400)에의 액세스는 하나 이상의 유선 또는 무선 액세스 네트워크들을 통해 제공될 수 있다. 이하 도 3에 나타낸 구성에 따라 GUI 테스트 자동화 장치(100)에 대해 설명하기로 한다.
도 4는 본 발명의 일 실시 예에 따른 GUI 테스트 자동화 장치의 블록도이다.
도 4를 참조하면, GUI 테스트 자동화 장치(100)는 입력 디바이스(110), 디스플레이 디바이스(120), 출력 디바이스(130), 저장 장치(140), 통신 장치(150), 전원 장치(160) 및 제어부(170)를 포함한다. 그리고 제어부(170)는 테스트 애플리케이션 모듈(175)을 포함한다. 통신 장치(150)는 송신부(151) 및 수신부(152)를 포함한다.
입력 디바이스(110)는 대상 애플리케이션 모듈을 테스트하기 위해 테스트 애플리케이션 모듈을 구동하고 조작하는 데 필요한 입력을 수행하는 키보드, 터치스크린, 마우스, 전자펜 및 음성 입력장치, 예를 들어 마이크로폰을 포함하되, 이에 한정되는 것은 아니다.
디스플레이 디바이스(120)는 테스트 애플리케이션 모듈을 구동하는 화면의 프레임 출력을 수행하는 브라운관(cathode-ray tube, CRT), 액정 디스플레이(liquid crystal display, LCD), 플라즈마 디스플레이 패널(plasma display panel, PDP), 발광다이오드 (light emitting diode, LED) 디스플레이, 유기 발광다이오드(organic light emitting diode, OLED) 디스플레이를 포함하되, 이에 한정되는 것은 아니다.
출력 디바이스(130)는 프린터, 플로터, 빔프로젝터, 텍스트 음성 변환(text to sound, TTS) 장치와 스피커 및 이어폰을 포함하되, 이에 한정되는 것은 아니다.
저장 장치(140)는 GUI 테스트 자동화 장치(100)로부터 분리가 가능/불가능한 모든 형태로서, 자기테이프, 자기드럼, 플로피 디스크, ZIP 드라이브 및 하드 디스크 드라이브(hard disk drive, HDD)와 같은 자기 방식의 저장장치, SD 카드, USB 메모리 및 솔리드 스테이트 드라이브(solid state drive, SSD)와 같은 플래시 메모리를 이용하는 전기 방식의 저장장치 및 CD-ROM 드라이브, DVD-ROM 드라이브, 블루레이 디스크(blu-ray disc) 드라이브와 같은 광학 방식의 저장장치를 포함하되, 이에 한정되는 것은 아니다.
통신 장치(150)는 네트워크(400)의 각종 통신망에 대응하는 통신 모듈, 예를 들어 블루투스 모듈, WiFi 모듈, 이더넷 인터페이스 카드, USB 모듈, 셀룰러 무선통신 모듈, 모뎀 및 무선 공유기를 포함하되, 이에 한정되는 것은 아니다. 통신 장치(150)는 내부에 송신부(151) 및 수신부(152)를 포함한다.
전원 장치(160)는 AC를 DC로 변환하는 파워 서플라이, 어댑터, SMPS와 리튬이온 전지, 납축전지, 연료 전지 및 바이오에탄올 전지와 같은 2차 전지와 그 밖의 1차 전지를 포함하되, 이에 한정되는 것은 아니다.
제어부(170)는 프로세서 및 운영체제와 테스트 애플리케이션 모듈(175)이 로드된 메모리 영역을 포함한다. 그리고 제어부(170)는 사용자 선택 또는 설정에 따라 테스트 애플리케이션 모듈이 포함하는 명령어 셋을 실행한다. 이하 제어부(170)에 대하여 상세히 설명하도록 한다.
도 5는 도 4의 제어부에 관한 상세한 블록도이다.
도 5를 참조하면, 제어부(170)는 프로세서(central processing unit, CPU)(178)와, 운영체제(176) 및 본 발명의 일 실시 예에 따른 GUI 테스트 자동화 방법에 관한 테스트 애플리케이션 모듈(175)이 로드된 메모리(177)를 포함한다. 구체적으로 제어부(170)는 메모리(176) 영역에서, 본 발명의 일 실시 예에 따른 GUI 테스트 자동화 방법을 수행하는 컴퓨터 명령어 셋이 포함된 애플리케이션 실행모듈(171), 색차 판독모듈(172), 입력 디바이스 제어모듈(173) 및 분석모듈(174)을 포함한다.
제어부(170)는 본 발명의 일 실시 예에 따른 GUI 테스트 자동화 방법이 구현되도록 GUI 테스트 자동화 장치(100) 내의 각 구성요소 및 모듈들을 제어한다.
운영 체제(175)는 GUI 테스트 자동화 장치(100)의 파일 시스템, 각종 인터페이스를 관리 및 컴포넌트들의 동작을 제어하기 위한 컴퓨터 운영 프로그램이다. 운영 체제(175)는 그 예로서, 유선 및 모바일 디바이스의 운영 체제, 예를 들어 MS 윈도우, 유닉스, 리눅스, XOS, 안드로이드, iOS 운영 체제를 포함하고, 다만 이에만 한정되는 것은 아니다.
테스트 애플리케이션 모듈(174)은 본 발명에 기술된 것과 같은 다양한 기능을 제공하기 위해 운영 체제(176) 상에서 실행되도록 구성된 실행가능 프로그램이다. 테스트 애플리케이션 모듈(175)은 애플리케이션 실행모듈(171), 색차 판독모듈(172), 입력 디바이스 제어모듈(173) 및 분석모듈(174)을 포함한다. 테스트 애플리케이션 모듈(175)이 포함하는 각종 모듈들(171 내지 174)에 대한 자세한 설명은 후술하기로 한다.
도 4 및 도 5에 도시된 GUI 테스트 자동화 장치(100) 구성에서 테스트 애플리케이션 모듈(175) 내의 구성은 설명의 편의를 위해 기능적으로 구분한 구성으로, 하드웨어적으로는 하나의 프로세서에 의해 처리되는 논리적인 기능으로 구성될 수 있는 것으로, 제시된 구분에 의해 본 발명을 한정하는 것은 아니다.
또한, 각 구성간의 연결 관계가 연결선으로 도시되어 있거나, 상호 간의 연결 관계가 일일이 표현되어 있지 않지만, 연결선이 도시되지 않은 구성 간에도 제어 또는 데이터 교환을 위한 통신, 전달이 발생될 수 있으며, 제시된 바에 의해서만 본 발명을 한정하는 것은 아니다.
본 발명의 일 실시 예에 따른 대상 애플리케이션 구동 장치(200)는 컴퓨팅 장치(500)에 해당될 수 있다. 이하 컴퓨팅 장치(500)에 해당하는 본 발명의 일 실시 예에 따른 대상 애플리케이션 구동 장치(200)는 실시 예를 통해 보다 구체적으로 설명될 수 있다.
컴퓨팅 장치(500)는 하나 이상의 CPU(central processing unit)들, 메모리, 대용량 저장소, 입력 인터페이스 장치, 출력 인터페이스 장치로 구성된 컴퓨팅 시스템을 포함할 수 있다. 컴퓨팅 시스템의 요소들은 버스를 통해 서로 통신할 수 있다.
컴퓨팅 장치의 하드웨어 플랫폼은 개인용 컴퓨터, 핸드헬드 또는 랩톱 디바이스, 다중 프로세서 시스템, 마이크로프로세서 기반 시스템, 프로그램 가전제품, 및 이상의 시스템들 또는 디바이스들 중 임의의 것을 포함하는 분산 컴퓨팅 환경, 예컨대 클라우드 기반 컴퓨팅 시스템을 비롯한 많은 형태들로 구현될 수 있다.
도 6은 본 발명의 일 실시 예에 따른 대상 애플리케이션 구동 장치에 해당하는 컴퓨팅 장치의 블록도이다.
도 6을 참조하면, 컴퓨팅 장치(500)는 입력 인터페이스 장치(510), 출력 인터페이스 장치(520), 메모리(531), 저장장치(532), 전원 장치(540), 프로세서(550), 네트워크 인터페이스 장치(560), 무선통신 장치(570) 및 버스(580)를 포함한다.
입력 인터페이스 장치(510)는 사용자의 입력에 따라 문서작성에 필요한 문자 또는 개체를 입력한다. 입력 인터페이스 장치(510)는 키보드(keyboard), 터치스크린(touch screen), 마우스(mouse), 전자펜(stylus pen) 및 펜 태블릿(pen tablet)을 포함하되, 이에 한정되는 것은 아니다.
출력 인터페이스 장치(520)는 문서편집 애플리케이션 모듈 관련 사용자 인터페이스 등을 표시하는 디스플레이(display) 및 문서를 프린트 출력하는 프린터(printer)를 포함한다. 또한, 출력 인터페이스 장치(520)는 문서 내의 문자를 음성합성(text to speech, TTS) 엔진을 이용하여 음성으로 출력하는 스피커(speaker), 헤드폰(head-phone) 및 헤드셋(head-set)을 포함한다.
프로세서(550)는 메모리(531) 및/또는 저장 장치(532)에 저장된 본 발명의 일 실시 예에 따른 데이터 백업 방법에 관한 문서편집 애플리케이션/서버 모듈(174/274)이 포함하고 있는 컴퓨터 명령어 셋을 실행할 수 있다. 프로세서(550)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU) 또는 본 발명에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리(531)와 저장 장치(532)는 휘발성 저장 매체 및/또는 비휘발성 저장 매체로 구성될 수 있다. 예를 들어, 메모리(531)는 읽기 전용 메모리(read only memory, ROM) 및/또는 랜덤 액세스 메모리(random access memory, RAM)로 구성될 수 있다.
무선통신 장치(570)는 근거리 무선통신, 무선 데이터 통신 및 무선 음성 통신을 위한 장치를 포함한다.
컴퓨팅 장치(500)에 포함된 각각의 구성 요소들은 버스(580)에 의해 연결되어 서로 통신을 수행한다.
이하 상기 설명한 GUI 테스트 자동화 장치(100)가 테스트 애플리케이션 모듈(175)에 포함된 컴퓨터 명령어 셋의 연산을 통해 실행하는 본 발명의 일 실시 예에 따른 GUI 테스트 자동화 방법에 대해 도 4, 도 5 및 도 7을 참조하여 설명하기로 한다.
도 7은 본 발명의 일 실시 예에 따른 GUI 테스트 자동화 방법의 흐름도이다.
도 7을 참조하면, 저장 장치(140)는 대상 애플리케이션을 구성하는 요소에 할당된 기본값을 저장한다(S110).
기본값은 GUI 설계시에 최상위 메뉴와 이로부터 분기되는 메뉴의 위치, 형태 및 메뉴에 의해 호출되는 기능에 할당된 핸들값에 해당한다. 여기서 핸들(handle)값이란 구체적인 어떤 대상에 붙여진 번호이며 문법적으로는 32비트의 정수값이다. 도스 프로그래밍에서는 거의 유일하게 파일 핸들만이 사용되었으며 그래서 도스에서 핸들은 곧 파일 핸들을 의미하는 경우가 많았다. 그러나 윈도우즈에서는 여러 가지 종류의 핸들이 사용되고 있다. 만들어진 윈도우에는 윈도우 핸들(hWnd)을 붙여 윈도우를 번호로 관리한다.
입력 디바이스(110)를 이용하여 메뉴를 선택하면 운영체제는 메시지를 발생시키고, 이 메시지와 함께 해당 메뉴 항목의 ID를 메뉴를 선택한 윈도우에 보낸다. 이때 분석모듈(174)은 함수를 이용하여 ID를 획득할 수 있다. 메뉴 항목의 ID도 일종의 핸들값에 해당한다. 또한 분석모듈(174)은 API 함수를 사용하여 해당 윈도우에 할당된 핸들값을 획득할 수 있다.
다음으로, 애플리케이션 실행모듈(171)은 테스트 대상 애플리케이션 모듈을 실행한다(S120). 구체적으로 애플리케이션 실행모듈(171)은, 일반 사용자가 테스트 대상 애플리케이션을 실제로 실행하는 방법과 동일한 방법으로, 예를 들면 마우스 더블 클릭 또는 마우스 선택 후 키보드 엔터 키 입력 또는 명령 입력창을 통한 실행파일명 입력 후 엔터키 입력에 의한 방법으로 테스트 대상 애플리케이션을 실행할 수 있다.
다음으로, 디스플레이 디바이스(120)는 대상 애플리케이션 모듈의 GUI 화면을 출력한다(S130). GUI 화면은 본 발명에서 테스트 대상이 되는 GUI 메뉴의 모습을 포함한다.
다음으로 색차 판독모듈(172)은 GUI 메뉴 항목을 나타나는 색차를 판독하여 메뉴 항목의 실행 영역을 감지한다(S140). 이 경우 색차 판독모듈(172)은 이미지 판독 방법을 이용하여 색차를 판독할 수 있다.
즉 색차 판독모듈(172)은 애플리케이션이 실행된 메인 창에 표시된 GUI 메뉴 상에 표시되는 색차를 이미지 판독하여 메뉴의 실행 영역을 감지한다. 이미지 판독에는 다양한 방법이 사용될 수 있다. 그 중에서 예를 들면 이미 판독에 경계선 판독 방법이 이용될 수 있다. 즉 색차 판독모듈(172)은 메뉴 항목에 표시된 주변 색과 구별되는 색으로 인한 색차로 인한 경계선을 판독하여 메뉴 항목을 감지할 수 있다.
본 발명의 실시 예에서 수행되는 색차 판독은 픽셀 단위의 색차까지 분석하는 정교한 작업 보다는, 하나의 색에서 다른 계통의 색으로 변하는 패턴을 분석하는 작업이다. 따라서 색차 분석 작업을 신속하고 단순화하기 위해 흑백의 GUI 영상 또는 이진화된 영상이 사용될 수 있다.
도 8은 본 발명의 일 실시 예에 따른 색차를 설명하기 위한 예시도이다.
도 8을 참조하면, 색차는 메뉴 영역을 쉽게 확인시키기 위해 메뉴 명칭의 백그라운 색이 주변의 색과 구별되게 표시한 것이다.
입력 디바이스 제어모듈(173)은 색차 판독을 이용하여 입력 디바이스를 제어하여 메뉴 항목을 테스트한다(S150). 특히 색차 판독 방법은 최상위 메뉴의 위치를 파악하는데 효율적으로 사용될 수 있다. 그리고 색차 판독 방법에 추가적으로 이미지 대조를 통해 메뉴의 명칭을 파악할 수도 있다. 즉 최상의 메뉴의 위치를 파악함에 있어서 입력 디바이스(110)로서 특히 마우스가 단독으로 사용될 수 있다.
메뉴 항목을 빨리 찾아서 테스트하기 위한 방법으로 화면을 분할을 이용하는 방법이 있다. 즉 메뉴 영역을 복수의 영역으로 나누고, 각 영역별로 마우스 포인터를 이동시켜 GUI의 변화를 감지한다.
여기서, GUI의 변화란 메뉴 항목이 선택된 경우 하이라이트 되는 것도 포함되고, 하위 메뉴 창이 열리는 것도 포함된다. 즉 GUI 변화란 색체적인 변화와 동적인 변화를 의미한다.
따라서 GUI 변화는 이미지 대조에 의해 감지될 수 있다. 예를 들어 데이터베이스(300)에 저장된 이미지를 이용하여 메뉴 실행 전의 메뉴의 색과 메뉴 선택시의 메뉴의 색을 비교하여 GUI 변화를 감지할 수 있다.
본래 사용자의 손동작에 의해 움직이는 마우스의 포인터 및 눌려지는 키보드의 키이지만, 본 발명의 실시 예에서는 입력 디바이스 제어모듈(173)이 마우스의 포인터를 움직이고, 클릭 명령을 수행하고, 추가적으로 키보드의 키를 눌러서 테스트를 수행한다(S151). 색차를 기초로 메뉴의 실행 가능한 영역이 찾아지면, 메뉴 실행은 마우스 및/또는 키보드를 이용할 수 있다.
다음으로 분석모듈(174)은 테스트를 통해 테스트 항목에 할당된 핸들값을 분석한다(S160). 구체적으로 분석모듈(174)은 테스트 과정에서 획득한 핸들값과 GUI 설계시에 할당된 기본값을 비교하여 설계 오류가 있는지 여부를 분석한다.
그 밖에 분석모듈(174)은 실행되는 테스트 프로그램의 실행화면에 대해 기본값을 설정하고, 이를 복수의 블럭으로 구분하여, 블럭별 변화를 파악하며, 블럭별 변화를 통해 메뉴의 존재, 메뉴의 실행에 따른 기능의 존재와 같은 사항들을 분석한다. 이러한 분석이 이루어지면, 분석모듈(174)은 각 기능을 미리 지정된 형태로 반복적으로 실행시켜 애플리케이션의 실행을 테스트하고, 실행에 따른 오류, 정상 동작여부와 같은 사항을 기록한 리포트를 생성한다.
분석모듈(174)은 기준값 및 리포트를 저장 장치(140)에 저장한다.
저장 장치(140)는 분석모듈(174)에 의해 생성되는 기준값을 저장하고, 분석모듈(174)의 요청에 따라 기준값들을 제공한다. 또한, 저장 장치(140)에는 분석모듈(174)에서 테스트 진행에 따라 생성되는 리포트가 저장된다. 이러한 리포트는 사용자의 요청에 따라 디스플레이 디바이스(120)와 같은 다른 장치에 제공될 수 있다.
이와 같이 본 발명의 일 실시 예에 따르면, 메뉴에 표시된 색차를 이용하여 메뉴를 빠르게 찾고, 해당 메뉴를 실행함으로써 입력 디바이스를 제어하는 범위 및 테스트 시간을 획기적으로 줄일 수 있다.
또한, 메뉴에 표시된 색차를 이용하여 메뉴의 실행 영역을 찾고, 메뉴 실행에 있어서 복수의 입력 디바이스를 이용하여 복수의 테스트를 동시에 수행함으로써 일회 테스트 범위를 확장시킬 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: GUI 테스트 자동화 장치
110: 입력 디바이스
120: 디스플레이 디바이스
140: 저장 장치
171: 프로그램 실행모듈
172: 색차 판독모듈
173: 입력 디바이스 제어모듈
174: 분석모듈
200: 대상 애플리케이션 구동 장치

Claims (16)

  1. GUI 테스트 대상 애플리케이션을 실행하는 애플리케이션 실행모듈;
    실행된 애플리케이션의 GUI 메뉴 항목에 표시된 색차를 판독하여 GUI 메뉴 항목의 실행 영역을 감지하는 색차 판독모듈;
    색차 판독모듈의 판독 결과를 이용하여 입력 디바이스를 제어함으로써 GUI 메뉴 항목을 테스트하는 입력 디바이스 제어모듈; 및
    상기 테스트를 통해 GUI 메뉴 항목에 할당된 핸들값을 분석하는 분석모듈을 포함하는 것을 특징으로 하는, 색차 기반의 GUI 테스트 자동화 장치.
  2. 청구항 1에 있어서,
    상기 애플리케이션 실행모듈은,
    GUI 테스트 자동화 장치 내의 로컬 영역 또는 외부 리모트 영역에서 상기 GUI 테스트 대상 애플리케이션을 실행하는 것을 특징으로 하는, GUI 테스트 자동화 장치.
  3. 청구항 1에 있어서,
    상기 애플리케이션 실행모듈은,
    외부 복수의 리모트 영역에서 각각의 GUI 테스트 대상 애플리케이션을 실행하는 것을 특징으로 하는, 색차 기반의 GUI 테스트 자동화 장치.
  4. 청구항 1에 있어서,
    상기 애플리케이션 실행모듈은,
    이종의 운영체제 및 이종의 하드웨어로 구성되는 다양한 플랫폼의 외부 복수의 리모트 영역에서 각각의 GUI 테스트 대상 애플리케이션을 실행하는 것을 특징으로 하는, 색차 기반의 GUI 테스트 자동화 장치.
  5. 청구항 1에 있어서,
    상기 입력 디바이스 제어모듈은,
    상기 GUI 메뉴 항목의 실행 영역으로 입력 디바이스의 포인터를 이동시키고 해당 메뉴를 실행하도록 입력 디바이스를 제어하는 것을 특징으로 하는, 색차 기반의 GUI 테스트 자동화 장치.
  6. 청구항 1에 있어서,
    상기 색차 판독모듈은,
    상기 GUI 메뉴 영역을 복수 개로 구분하고, 구분된 영역별로 실행 가능 메뉴 영역 및 GUI 변화를 감지하는 것을 특징으로 하는, 색차 기반의 GUI 테스트 자동화 장치.
  7. 청구항 1에 있어서,
    상기 자동화 장치는,
    GUI 설계시에 테스트 대상 애플리케이션을 구성하는 요소에 할당된 기본값을 저장하는 저장 장치를 더 포함하고,
    상기 분석모듈은,
    GUI 테스트를 통해 핸들값을 획득하고, 획득한 핸들값과 상기 할당된 기본값의 비교를 통해 GUI 설계상의 오류를 검출하는 것을 특징으로 하는, 색차 기반의 GUI 테스트 자동화 장치.
  8. 청구항 7에 있어서,
    상기 기본값은,
    GUI 설계시에 GUI 최상위 메뉴와 이로부터 분기되는 메뉴의 위치, 형태 및 메뉴에 의해 호출되는 기능에 할당된 핸들값인 것을 특징으로 하는, 색차 기반의 GUI 테스트 자동화 장치.
  9. GUI 테스트 대상 애플리케이션 실행하는 단계;
    실행된 애플리케이션의 GUI 메뉴 항목에 표시된 색차를 판독하여 GUI 메뉴 항목의 실행 영역을 감지하는 단계;
    색차 판독모듈의 판독 결과를 이용하여 입력 디바이스를 제어함으로써 GUI 메뉴 항목을 테스트하는 단계; 및
    상기 테스트를 통해 GUI 테스트 항목에 할당된 핸들값을 분석하는 단계를 포함하는 것을 특징으로 하는, 색차 기반의 GUI 테스트 자동화 방법.
  10. 청구항 9에 있어서,
    상기 GUI 테스트 대상 애플리케이션 실행하는 단계는,
    GUI 테스트 자동화 장치 내의 로컬 영역 또는 외부 리모트 영역에서 상기 GUI 테스트 대상 애플리케이션을 실행하는 것을 특징으로 하는, 색차 기반의 GUI 테스트 자동화 방법.
  11. 청구항 9에 있어서,
    상기 GUI 테스트 대상 애플리케이션 실행하는 단계는,
    외부 복수의 리모트 영역에서 각각의 GUI 테스트 대상 애플리케이션을 실행하는 것을 특징으로 하는, 색차 기반의 GUI 테스트 자동화 방법.
  12. 청구항 9에 있어서,
    상기 테스트 대상 애플리케이션을 실행하는 단계는,
    이종의 운영체제 및 이종의 하드웨어로 구성되는 다양한 플랫폼의 외부 복수의 리모트 영역에서 각각의 GUI 테스트 대상 애플리케이션을 실행하는 것을 특징으로 하는, 색차 기반의 GUI 테스트 자동화 방법.
  13. 청구항 9에 있어서,
    상기 GUI 메뉴 항목을 테스트하는 단계는,
    상기 GUI 메뉴 항목의 실행 영역으로 입력 디바이스의 포인터를 이동시키고 해당 메뉴를 실행하도록 입력 디바이스를 제어하는 것을 특징으로 하는, 색차 기반의 GUI 테스트 자동화 방법.
  14. 청구항 9에 있어서,
    상기 GUI 메뉴 항목의 실행 영역을 감지하는 단계는,
    상기 GUI 메뉴 영역을 복수 개로 구분하고, 구분된 영역별로 실행 가능 메뉴 영역 및 GUI 변화를 감지하는 것을 특징으로 하는, 색차 기반의 GUI 테스트 자동화 방법.
  15. 청구항 9에 있어서,
    상기 GUI 테스트 자동화 방법은,
    상기 GUI 테스트 대상 애플리케이션 실행하는 단계 이전에 GUI 설계시에 테스트 대상 애플리케이션을 구성하는 요소에 할당된 기본값을 저장하는 단계를 더 포함하고,
    상기 핸들값을 분석하는 단계는,
    GUI 테스트를 통해 핸들값을 획득하고, 획득한 핸들값과 상기 할당된 기본값의 비교를 통해 GUI 설계상의 오류를 검출하는 것을 특징으로 하는, 색차 기반의 GUI 테스트 자동화 방법.
  16. 청구항 15에 있어서,
    상기 기본값은,
    GUI 설계시에 GUI 최상위 메뉴와 이로부터 분기되는 메뉴의 위치, 형태 및 메뉴에 의해 호출되는 기능에 할당된 핸들값인 것을 특징으로 하는, 색차 기반의 GUI 테스트 자동화 방법.
KR1020180015056A 2018-02-07 2018-02-07 색차 기반의 gui 테스트 자동화 방법 및 이를 이용하는 장치 KR102087209B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180015056A KR102087209B1 (ko) 2018-02-07 2018-02-07 색차 기반의 gui 테스트 자동화 방법 및 이를 이용하는 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180015056A KR102087209B1 (ko) 2018-02-07 2018-02-07 색차 기반의 gui 테스트 자동화 방법 및 이를 이용하는 장치

Publications (2)

Publication Number Publication Date
KR20190095717A KR20190095717A (ko) 2019-08-16
KR102087209B1 true KR102087209B1 (ko) 2020-03-10

Family

ID=67806763

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180015056A KR102087209B1 (ko) 2018-02-07 2018-02-07 색차 기반의 gui 테스트 자동화 방법 및 이를 이용하는 장치

Country Status (1)

Country Link
KR (1) KR102087209B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014067106A (ja) 2012-09-24 2014-04-17 Canon Marketing Japan Inc Guiテスト装置、guiテスト方法ならびにプログラム
KR101491848B1 (ko) 2013-06-19 2015-02-11 주식회사 큐에이엔씨 스크립트 유지보수 기능을 갖는 gui 소프트웨어 테스트 자동화 시스템 및 방법
KR101796009B1 (ko) 2017-03-07 2017-12-01 주식회사 한글과컴퓨터 프로그램 자동 분석 시스템 및 이를 이용한 자동분석 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140004495A (ko) 2012-07-03 2014-01-13 삼성전자주식회사 응용프로그램의 자동 테스트 방법 및 그 전자 장치
KR20160060499A (ko) * 2014-11-20 2016-05-30 삼성전자주식회사 화상독취장치 및 그의 제어 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014067106A (ja) 2012-09-24 2014-04-17 Canon Marketing Japan Inc Guiテスト装置、guiテスト方法ならびにプログラム
KR101491848B1 (ko) 2013-06-19 2015-02-11 주식회사 큐에이엔씨 스크립트 유지보수 기능을 갖는 gui 소프트웨어 테스트 자동화 시스템 및 방법
KR101796009B1 (ko) 2017-03-07 2017-12-01 주식회사 한글과컴퓨터 프로그램 자동 분석 시스템 및 이를 이용한 자동분석 방법

Also Published As

Publication number Publication date
KR20190095717A (ko) 2019-08-16

Similar Documents

Publication Publication Date Title
US9665473B2 (en) Smart tester application for testing other applications
RU2673008C2 (ru) Опыт поддержки пользователей с автоматически генерируемой виртуальной средой
US8826240B1 (en) Application validation through object level hierarchy analysis
US9280451B2 (en) Testing device
WO2017165071A1 (en) Visual regression analysis
US20140211021A1 (en) Test system for evaluating mobile device and driving method thereof
US20130263090A1 (en) System and method for automated testing
US10235281B2 (en) Automated test runs in an integrated development environment system and method
CN109783388A (zh) Ui自动化测试方法、装置及电子设备
US11269616B1 (en) Impact driven continuous deployment system
CN109388569B (zh) 远程检测客户端环境异常的方法、测试服务器及存储介质
CN104375934A (zh) 一种Android手机软件可靠性测试方法
WO2020177385A1 (zh) 虚拟机性能检测方法及装置、电子设备、存储介质
US20140325281A1 (en) Testing apparatus and testing method
TWI476587B (zh) 測試電子裝置之功能的測試方法以及測試裝置
CN112765043A (zh) 一种基于docker的自动化测试方法和装置
CN112231206A (zh) 应用程序测试的脚本编辑方法、计算机可读存储介质及测试平台
CN102622233A (zh) 自动生成适应于某交互终端设备用户界面的系统及方法
KR101796009B1 (ko) 프로그램 자동 분석 시스템 및 이를 이용한 자동분석 방법
CN109240928A (zh) 一种测试方法、装置、设备及存储介质
KR102087208B1 (ko) 니모닉 기반의 gui 테스트 자동화 방법 및 이를 이용하는 장치
KR102087209B1 (ko) 색차 기반의 gui 테스트 자동화 방법 및 이를 이용하는 장치
KR101794016B1 (ko) 분산 컴퓨팅 기반의 어플리케이션 객체 분석 방법, 이를 수행하는 어플리케이션 객체 분석 서버 및 이를 저장하는 기록매체
KR20190084827A (ko) 프로그램 호환성 자동테스트 방법 및 이를 이용하는 장치
KR20120111618A (ko) Plc 명령어 테스트 장치 및 방법

Legal Events

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