KR101796009B1 - 프로그램 자동 분석 시스템 및 이를 이용한 자동분석 방법 - Google Patents

프로그램 자동 분석 시스템 및 이를 이용한 자동분석 방법 Download PDF

Info

Publication number
KR101796009B1
KR101796009B1 KR1020170028876A KR20170028876A KR101796009B1 KR 101796009 B1 KR101796009 B1 KR 101796009B1 KR 1020170028876 A KR1020170028876 A KR 1020170028876A KR 20170028876 A KR20170028876 A KR 20170028876A KR 101796009 B1 KR101796009 B1 KR 101796009B1
Authority
KR
South Korea
Prior art keywords
program
change
pointer
menu
analyzing
Prior art date
Application number
KR1020170028876A
Other languages
English (en)
Inventor
최윤석
Original Assignee
주식회사 한글과컴퓨터
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 한글과컴퓨터 filed Critical 주식회사 한글과컴퓨터
Priority to KR1020170028876A priority Critical patent/KR101796009B1/ko
Application granted granted Critical
Publication of KR101796009B1 publication Critical patent/KR101796009B1/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/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
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • G06F9/4443

Abstract

본 발명은 분석 시스템이 프로그램의 메뉴를 자동으로 분석하고, 각 메뉴의 실행을 통해 기능을 점검하는 과정을 수행하도록 함으로써, 테스트에 소요되는 비용, 노력, 시간을 최소화하도록 한 프로그램 자동 분석 시스템 및 이를 이용한 자동 분석 방법에 관한 것이다.
본 발명에 따른 프로그램 자동 분석 시스템은 메뉴 또는 기능의 호출을 위한 인터페이스를 가지는 테스트 대상 프로그램을 실행시키는 프로그램 실행부; 상기 테스트 대상 프로그램에서 마우스 포인터를 이동시켜 상기 인터페이스 상에 위치시키거나, 선택하는 포인터 제어부; 및 상기 마우스 포인터의 이동 또는 선택에 따른 상기 테스트 대상 프로그램의 변화를 검출하여 상기 인터페이스의 위치 또는 상기 인터페이스의 형태 또는 상기 인터페이스에 의해 호출되는 기능 또는 상기 인터페이스에 종속되는 인터페이스의 종류 중 어느 하나 이상을 포함하는 실행상태를 분석하는 분석부;를 포함하여 구성되는 것을 특징으로 한다.

Description

프로그램 자동 분석 시스템 및 이를 이용한 자동분석 방법{PROGRAM AUTOMATIC ANALYSIS SYSTEM AND AUTOMATIC ANALYSIS METHOD USING THE SAME}
본 발명은 분석 시스템이 프로그램의 메뉴를 자동으로 분석하고, 각 메뉴의 실행을 통해 기능을 점검하는 과정을 수행하도록 함으로써, 테스트에 소요되는 비용, 노력, 시간을 최소화하도록 한 프로그램 자동 분석 시스템 및 이를 이용한 자동 분석 방법에 관한 것이다.
최근에 개발되는 소프트웨어, 어플리케이션 프로그램은 다양한 장치 다양한 운영체계와 같은 환경에서 운영되도록 개발되고 있으며, 또한 과거에 비해 많은 기능을 실행할 수 있는 방향으로 개발이 이루어지고 있다.
이와 같이, 프로그램이 다양한 환경에서 원활하게 실행되도록 하기 위해서는 개발 단계에서 프로그램의 정상실행, 특히, 다양한 환경에서 안정적으로 기능이 실행되는지를 확인하는 테스트 과정이 필수적이다.
그런데 이러한 테스트를 위해서는 점검 항목 및 메뉴 분석 등의 작업을 개발자가 수작업으로 수행해야 하는 경우가 대부분이다. 왜냐하면, 테스트를 사용자들이 프로그램을 이용하는 상황과 동일한 상황, 동일한 방법에 의해 수행되도록 함으로써 실제 사용과정에서 발생하는 오류를 검출하기 위한 것으로, 이 오류의 검출을 위해 사용환경과 동일한 상태의 테스트를 반복적으로 수행하게 된다.
이를 위해, 수작업으로 테스트를 수행하는 경우 개발자가 직접 점검 범위를 계획하고, 일반 사용자가 사용하는 상황 또는 방법과 동일하도록 테스트 동작을 프로그래밍에 의해 설정하게 된다.
때문에, 테스트를 진행하기 위해서는 사용자가 프로그램을 사용하는 과정을 모두 설정하여 수행해야 하며, 테스트 항목을 추가할수록 테스트의 준비를 위한 과정이 복잡해지고, 준비 시간이 크게 증가하게 되는 문제점이 있다.
한국 공개특허 10-2014-0004495(공개일 2014.01.13) "응용 프로그램의 자동 테스트 방법 및 그 전자 장치"
따라서, 본 발명의 목적은 분석 시스템이 프로그램의 메뉴를 자동으로 분석하고, 각 메뉴의 실행을 통해 기능을 점검하는 과정을 수행하도록 함으로써, 테스트에 소요되는 비용, 노력, 시간을 최소화하도록 한 프로그램 자동 분석 시스템 및 이를 이용한 자동 분석 방법을 제공하는 것이다.
상기 목적을 달성하기 위하여 본 발명에 따른 프로그램 자동 분석 시스템은 메뉴 또는 기능의 호출을 위한 인터페이스를 가지는 테스트 대상 프로그램을 실행시키는 프로그램 실행부; 상기 테스트 대상 프로그램에서 마우스 포인터를 이동시켜 상기 인터페이스 상에 위치시키거나, 선택하는 포인터 제어부; 및 상기 마우스 포인터의 이동 또는 선택에 따른 상기 테스트 대상 프로그램의 변화를 검출하여 상기 인터페이스의 위치 또는 상기 인터페이스의 형태 또는 상기 인터페이스에 의해 호출되는 기능 또는 상기 인터페이스에 종속되는 인터페이스의 종류 중 어느 하나 이상을 포함하는 실행상태를 분석하는 분석부;를 포함하여 구성되는 것을 특징으로 한다.
상기 분석부는 상기 테스트 대상 프로그램에 의해 상기 인터페이스가 제공되는 영역을 미리 정해진 복수의 영역으로 구분하고, 상기 영역별로 변화의 발생여부를 판단하는 것을 특징으로 한다.
상기 분석부는 복수의 상기 영역 중 변화가 발생한 영역은 미리 정해진 복수의 하위 영역으로 구분하고, 복수의 상기 하위 영역별 변화의 발생여부를 재판단하여 상기 실행상태를 판단하는 것을 특징으로 한다.
상기 분석부는 상기 포인터를 미리 획득한 핸들값에 의해 상기 인터페이스 상에 이동시키거나, 상기 인터페이스를 선택하여 변화 발생 여부를 판단하는 것을 특징으로 한다.
상기 분석부는 상기 포인터를 상기 테스트 대상 프로그램에서 이동시켜 상기 테스트 대상 프로그램의 변화 발생여부를 판단하고, 상기 변화가 발생된 위치를 미리 획득한 핸들값과 비교하는 것을 특징으로 한다.
상기 분석부는 상기 변화 발생여부를 판단하기 위해 변화 발생전 상기 테스트 대상 프로그램의 실행상태를 기록한 기본값을 획득하여 저장하는 것을 특징으로 한다.
상기 기본값은 상기 인터페이스 위치, 형태, 상기 인터페이스 선택시 실행되는 기능 및 상기 인터페이스의 선택시 호출되는 하위 메뉴 중 어느 하나 이상의 정보를 가지는 핸들값을 포함하여 구성되는 것을 특징으로 한다.
또한 본 발명에 따른 프로그램 분석 방법은 프로그램 실행부가 메뉴 또는 기능의 호출을 위한 인터페이스를 가지는 테스트 대상 프로그램을 실행시키는 단계; 포인터 제어부가 상기 테스트 대상 프로그램에서 마우스 포인터를 이동시켜 상기 인터페이스 상에 위치시키거나, 선택하는 포인터 이동단계 단계; 분석부가 상기 마우스 포인터의 이동 또는 선택에 따른 상기 테스트 대상 프로그램의 변화를 검출하여 상기 인터페이스의 위치 또는 상기 인터페이스의 형태 또는 상기 인터페이스에 의해 호출되는 기능 또는 상기 인터페이스에 종속되는 인터페이스의 종류 중 어느 하나 이상을 포함하는 실행상태를 분석하는 단계;를 포함하여 구성되는 것을 특징으로 한다.
상기 분석하는 단계는 상기 분석부가 상기 테스트 대상 프로그램에 의해 상기 인터페이스가 제공되는 영역을 미리 정해진 복수의 영역으로 구분하고, 상기 영역별로 변화의 발생여부를 판단하는 단계를 포함하여 구성되는 것을 특징으로 한다.
상기 분석하는 단계는 상기 분석부가 복수의 상기 영역 중 변화가 발생한 영역은 미리 정해진 복수의 하위 영역으로 구분하고, 복수의 상기 하위 영역별 변화의 발생여부를 재판단하는 단계를 더 포함하여 구성되는 것을 특징으로 한다.
상기 포인터 이동 단계 또는 상기 분석하는 단계는 상기 분석부가 상기 포인터 제어부를 제어하여 상기 포인터를 미리 획득한 핸들값에 의해 상기 인터페이스 상에 이동시키거나, 상기 인터페이스를 선택하여 변화 발생여부를 판단하는 것을 특징으로 한다.
상기 포인터 이동 단계 또는 상기 분석하는 단계는 상기 분석부가 상기 포인터 제어부를 제어하여 상기 테스트 대상 프로그램에서 상기 포인트를 이동시켜 상기 테스트 대상 프로그램의 변화 발생여부를 판단하고, 상기 변화가 발생된 위치를 미리 획득한 핸들값과 비교하는 것을 특징으로 한다.
상기 분석하는 단계는 상기 분석부가 상기 변화 발생여부를 판단하기 위해 변화 발생 전 상기 테스트 대상 프로그램의 실행상태를 기록한 기본값을 획득하여 저장하는 단계를 더 포함하여 구성되는 것을 특징으로 한다.
상기 기본값은 상기 인터페이스의 위치, 형태, 상기 인터페이스의 선택시 실행되는 기능 및 상기 인터페이스의 선택시 호출되는 하위 메뉴 중 어느 하나 이상의 정보를 가지는 핸들값을 포함하여 구성되는 것을 특징으로 한다.
본 발명에 따른 프로그램 자동 분석 시스템 및 자동 분석 방법은 분석 시스템이 프로그램의 메뉴를 자동으로 분석하고, 각 메뉴의 실행을 통해 기능을 점검하도록 함으로써, 테스트에 소요되는 비용, 노력, 시간을 최소화하는 것이 가능해진다.
도 1은 본 발명에 따른 프로그램 자동 분석 시스템의 구성을 설명하기 위한 예시도.
도 2는 분석부가 프로그램 실행화면을 블럭으로 구분하여 분석하는 과정을 설명하기 위한 예시도.
도 3 내지 도 4는 본 발명의 분석과정을 좀 더 상세히 설명하기 위한 예를 도시한 예시도들.
도 5는 본 발명에 따른 분석시스템에 의해 분석이 수행되는 과정을 상세히 도시한 순서도.
이하, 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 당해 분야의 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 설명하기로 한다. 첨부된 도면들에서 구성에 표기된 도면번호는 다른 도면에서도 동일한 구성을 표기할 때에 가능한 한 동일한 도면번호를 사용하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어서 관련된 공지의 기능 또는 공지의 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고 도면에 제시된 어떤 특징들은 설명의 용이함을 위해 확대 또는 축소 또는 단순화된 것이고, 도면 및 그 구성요소들이 반드시 적절한 비율로 도시되어 있지는 않다. 그러나 당업자라면 이러한 상세 사항들을 쉽게 이해할 것이다.
도 1은 본 발명에 따른 프로그램 자동 분석 시스템의 구성을 설명하기 위한 예시도이다.
도 1을 참조하면, 본 발명에 따른 자동 분석 시스템은 프로그램 실행부(10), 포인터 제어부(20), 출력부(30), 분석부(40) 및 저장부(50)를 포함하여 구성된다.
도 1에 도시된 자동 분석 시스템의 구성은 설명의 편의를 위해 기능적으로 구분한 구성으로, 하드웨어적으로는 하나의 프로세서에 의해 처리되는 논리적인 기능으로 구성될 수 있다. 또는, 자동 분석 시스템이 어플리케이션 프로그램 형태로 구성되어, 프로세서에 의해 실행됨으로써 분석을 수행하도록 할 수도 있는 것으로 제시된 구분에 의해 본 발명을 한정하는 것은 아니다. 또한, 각 구성간의 연결관계가 하나의 연결선으로 도시되어 있고, 상호 간의 연결관계가 일일이 표현되어 있지 않지만, 연결선이 도시되지 않은 구성 간에도 제어 또는 데이터 교환을 위한 통신, 전달이 발생될 수 있으며, 제시된 바에 의해서만 본 발명을 한정하는 것은 아니다.
프로그램 실행부(10)는 테스트를 수행할 대상 프로그램 및 프로그램의 각 기능을 실행하는 역할을 한다. 구체적으로 프로그램 실행부(10)는 테스트 대상 프로그램이 일반 사용자가 이용하는 환경에서 사용되는 것과 같이 실행되도록 함과 아울러, 포인터 제어부(20)에 의해 선택되는 메뉴 또는 명령을 실행하는 역할을 한다.
포인터 제어부(20)는 분석부(40)의 제어에 따라 프로그램의 실행화면을 이동하며, 메뉴를 선택하거나 기능을 실행시키는 역할을 한다. 이 포인터 제어부(20)는 사용자가 프로그램 사용시 이용하는 입력장치를 대신하여 마우스 포인터 또는 커서의 움직임을 발생시키는 역할을 한다. 특히, 포인터 제어부(20)는 분석부(40)의 요청에 따라 출력부(30)에 표시되는 포인터를 이동시키고, 분석부(40)가 지정한 위치에서 선택, 메뉴 호출과 같은 조작을 수행하며, 이를 통해 사용자가 프로그램을 사용하는 상태와 동일한 입력이 테스트 프로그램에 적용될 수 있게 하는 역할을 한다. 이 포인터 제어부(20)는 프로그램이 실행되는 영역, 예를 들어, 프로그램이 실행되어 해당 프로그램이 실행되는 화면 내에서 포인터가 분석부의 요청에 따라 동작하도록 제어하게 된다.
출력부(30)는 프로그램 실행부(10)에 의해 실행되는 테스트 프로그램의 실행과정을 출력하는 역할을 한다. 이러한 출력부(30)는 모니터와 같은 영상출력장치로 구성될 수 있다. 여기서, 출력부(30)는 직접 구성되지 않을 수 있다. 좀 더 구체적으로 출력부(30)로 전달되는 영상데이터를 분석부(40)로 바로 전달하는 경우 출력부(30)가 구성되지 않고 생략될 수 있으나, 이로써 본 발명을 한정하는 것은 아니다.
분석부(40)는 테스트 프로그램의 실행에 따라 테스트 프로그램의 메뉴를 분석하고, 각 메뉴를 선택하여 기능을 실행하여 분석을 수행한다. 이를 위해, 분석부(40)는 프로그램 실행부(10)를 통해 테스트 프로그램 및 테스트 프로그램의 각 기능을 실행시키며, 포인터 제어부(20)에 의해 테스트 진행에 필요한 위치로 포인터를 이동시키도록 함과 아울러 포인터를 통해 메뉴의 호출 또는 기능이 실행되도록 프로그램 실행부(10)와 포인터 제어부(20)를 제어한다.
그리고 분석부(40)는 실행되는 테스트 프로그램의 실행화면에 대해 기본값을 설정하고, 이를 복수의 블럭으로 구분하여, 블럭별 변화를 파악하며, 블럭별 변화를 통해 메뉴의 존재, 메뉴의 실행에 따른 기능의 존재와 같은 사항들을 분석한다. 이러한 분석이 이루어지면, 분석부(40)는 각 기능을 미리 지정된 형태로 반복적으로 실행시켜 프로그램의 실행을 테스트하고, 실행에 따른 오류, 정상 동작여부와 같은 사항을 기록한 리포트를 생성한다. 분석부(40)는 기준값, 리포트를 저장부(50)에 전달하여 저장되게 한다. 이러한 분석부(40)의 분석과정은 하기에서 다른 도면을 참조하여 좀 더 상세히 설명하기로 한다.
저장부(50)는 분석부(40)에 의해 생성되는 기준값들이 저장되고, 분석부(40)의 요청에 따라 기준값들을 제공하는 역할을 한다. 또한, 저장부(50)에는 분석부(40)에서 테스트 진행에 따라 생성되는 리포트가 저장된다. 이러한 리포트는 사용자의 요청에 따라 출력부(30)와 같은 다른 장치에 제공될 수 있다.
도 2는 분석부가 프로그램 실행화면을 블럭으로 구분하여 분석하는 과정을 설명하기 위한 예시도이다.
도 2를 참조하면, 본 발명에 따른 프로그램 자동 분석 시스템은 컴퓨터와 같은 운영체제에서 실행되는 각종 프로그램, 스마트폰과 같은 환경에서 실행되는 어플리케이션 프로그램과 같은 프로그램의 분석을 사용자가 사용하는 조건과 유사한 조건에서 테스트 할 수 있다. 일례로, 테스트의 대상이 되는 프로그램은 실행화면에 기능의 실행을 위한 명령 또는 메뉴 인터페이스가 구성되거나, 포인터에 의한 서브메뉴 호출에 의해 기능을 실행할 수 있도록 하는 기능이 있는 프로그램이 테스트의 대상이 될 수 있다.
이러한 프로그램들은 도 2의 (a)와 같이 실행시 컴퓨터와 같은 장치의 모니터(31)를 통해 실행창 형태로 제공되거나, 실행시 모니터(31)의 전화면을 차지하는 형태로 실행될 수 있다. 도 2의 경우 컴퓨터와 컴퓨터에서 실행되는 프로그램을 예로 든 것으로 이로써만 본 발명을 제한하는 것은 아니다.
이러한 테스트 프로그램은 모니터 전체 화면(31)을 통해 실행될 수도 있고, 도 2의 (a)에서와 같이 부분 화면을 통해 실행될 수도 있다.
(a)에서와 같이 테스트 프로그램이 실행되면, 분석 시스템은 테스트 프로그램의 크기를 확인하고, 초기 상태 값을 기본값으로 저장하게 된다. 특히, 이때 핸들값의 현재 크기 및 위치를 기본값에 포함시켜 저장하게 된다. 그리고, (b)에서와 같이 이를 미리 정해진 크기의 블럭으로 영역을 나누게 된다. (b)의 경우 3×3의 9개 블럭으로 나뉘어질 수 있으며, 분석시스템은 이 나뉘어진 블럭을 기본값과 비교하여 변화가 발생했는지를 비교하게 된다. 여기서 각 블럭에 별도의 표기를 하지는 않았지만, 각 블럭을 (행, 열)로 하여 좌측 상단 블럭부터 (1, 1)로 시작하여 우측 하단 블럭을 (3,3)으로 가정하여 설명하기로 한다.
비교 결과 (c)에서와 같이 (2, 2) 블럭에서 변화가 검출되면, 이를 더욱 정확하게 분석하기 위해 분석시스템은 (2,2) 블럭을 다시 미리 정해진 크기의 하위블럭으로 영역을 나누게 된다. 도 2에서는 상위 블럭 하나를 9개의 하위블럭으로 나누는 경우의 예가 도시되어 있다. 여기서, 이하에서는 하위 블럭을 (메인블럭 행열, 하위블럭의 행, 하위블럭의 열)로 표기하여 구분하기로 하며, (c)의 좌측 상단 하위 블럭은 (22, 1, 1), 우측 하단의 하위 블럭은(22, 3, 3)으로 표기하기로 한다.
분석시스템은 변화가 발생된 상위 블럭을 복수의 하위 블럭으로 나누고, 이를 재분석하여 변화가 발생한 부분을 정확하게 파악하여 메뉴 인터페이스의 인지, 활성창의 동작, 오류의 검출과 같은 상태에 이용하게 된다.
이러한 상위 블럭과 하위 블럭은 도 2에서는 균등한 크기로 9개가 나뉘어지는 것으로 도시되어 있으나, 이로써 본 발명을 제한하는 것은 아니다. 구체적으로 각 영역의 크기를 다르게 설정할 수도 있고, 영역의 수도 다르게 할 수 있으며, 하위 블럭의 단계도 다르게 설정할 수 있다.
본 발명에서는 이와 같이 상위 블럭과 하위블럭을 구분하고, 각 블럭의 수를 조절한 영역을 기본값과 비교함으로써, 동작에 따른 새로운 메뉴(또는 명령), 팝업창, 새로운 명령 세트의 확인을 정확하고 빠르게 수행할 수 있다.
특히, 변경이 블럭의 크기가 다른 상위 블럭과 하위블럭을 이용함으로써 정확도가 향상되며, 변화가 발생된 상위 블럭에 대해서만 하위 블럭을 생성하여 비교함으로써 전체 화면을 비교하는 때에 비해 빠르게 비교하여 테스트를 수행하는 것이 가능해진다.
도 3 내지 도 4는 본 발명의 분석과정을 좀 더 상세히 설명하기 위한 예를 도시한 예시도들이다.
도 3 내지 도 4를 참조하면, 전술한 바와 같이 테스트 프로그램에는 명령의 입력 또는 메뉴의 선택을 위한 인터페이스가 메뉴 형태로 제공된다. 이러한 입력인터페이스들은 마우스 포인터 또는 키 입력에 의해 선택될 수 있으며, 선택되는 경우 추가적으로 입력될 수 있는 명령 또는 메뉴 세트를 포함하여 구성된다.
최근의 프로그램들은 키입력에 의해 지정된 문자를 입력하는 경우나 마우스 포인터 해당위치로 이동되는 경우 도 3에서와 같이 포인터의 위치를 나타내도록 대기상태, 즉, 색상의 반전, 무늬의 적용과 같은 효과를 제공하여 사용자의 시각적 인지도를 향상시키도록 구성된다.
본 발명의 분석 시스템은 이러한 명령 인터페이스의 특징을 이용하여 메뉴를 분석하며, 이를 통해 테스트 프로그램의 검증을 실시하게 된다.
구체적으로 전술한 바와 같이 테스트 프로그램 영역(65)을 상위블럭으로 구분하고, 제어부(40)의 제어에 따라 포인터 제어부(20)가 마우스 포인터를 테스트 프로그램 영역(65)에서 이동을 시키게 된다. 이때 제어부(20)는 테스트 프로그램 영역(65)을 구분한 상위블럭 중 마우스 포인터 이동에 따라 달라지는 블럭을 검출하게 되고, 변화가 발생된 상위 블럭에 대해 하위블럭을 생성하여 이 과정을 반복함으로써 메뉴의 정확한 위치와 크기를 파악하게 된다. 이와 같은 과정에서 마우스 포인터의 이동은 전술한 기본값에 포함된 핸들값에 의해 이루어질 수 있다. 즉, 핸들값에 표시된 메뉴 위치로 마우스 포인터를 이동하는 경우 메뉴의 표시가 바뀌는지, 기능이 실행되는지의 여부도 분석할 수 있게 된다. 또는 마우스 포인터를 이동하여 확인되는 메뉴를 핸들값과 비교함으로써 메뉴의 위치 및 크기를 분석하도록 할 수도 있다. 이러한 과정은 프로그램 실행부(10)에 의해 테스트 프로그램이 처음 구동되는 초기상태를 기본값으로 하여 저장되고, 이 기본값을 기준으로 상위블럭과 하위블럭을 비교하여 변화된 부분을 검출함으로써 이루어진다.
그리고, 메뉴의 위치가 확정된 후 분석부(40)에 의해 해당 메뉴의 선택이 이루어지도록 포인터 제어부(20)를 제어하여 마우스 포인터에 의해 메뉴를 선택하도록 하는 경우, 드롭다운, 팝업 또는 별도의 활성창을 통해 새로운 변화가 발생하면 이를 해당 메뉴에 대한 메뉴 기본값으로 저장하고, 메뉴 등장 이후에 메뉴 분석 또는 오류 분석을 수행함으로써 메뉴의 확인 또는 오류 분석을 수행하게 된다.
오류 분석의 경우 반복적인 메뉴의 호출 시 정상동작인 경우 오류의 경우 비교값이 상이해 지며, 반복적인 정상적인 동작의 기본값을 누적함으로써 오류를 검출할 수 있게 된다.
도 4는 이러한 과정의 일례가 도시되어 있다. 도 4에서와 같이 제어부(40)가 포인터 제어부(20)를 통해 '차트' 메뉴를 선택하도록 제어하면, '차트' 메뉴의 선택에 따라 테스트 프로그램 영역(65)의 메뉴 형태가 변경된다.
분석부(40)는 테스트 프로그램 영역(65)의 변경된 부분을 전술한 과정에 의해 확인하여, 하위 메뉴들의 위치와 크기를 분석하게 된다.
메뉴의 분석이 종료되면 분석부(40)는 다시 메뉴를 하나씩 선택하여 하위 메뉴를 찾거나, 기능의 실행을 확인하게 된다. 이때, 도 4에서와 같이 하위 메뉴(67) 영역에 표출되는 예시적인 '차트메뉴'가 활성화되고, 이를 검출한 분석부(40)가 이 중 하나를 선택하도록 포인터 제어부(20)를 제어하게 된다.
이에 따라 하위 메뉴(67) 중 예시적인 차트가 하나 선택되면, 문서 편집 영역에 차트(68)가 입력되고, 분석부(40)는 블럭 분할 및 비교에 의해 차트의 생성여부 및 크기를 확인하게 된다. 이때 차트가 생성된 화면은 기준값으로 또다시 저장될 수 있다.
이러한 과정을 통해 분석부(40)는 각 메뉴를 확인하고, 기능을 실행시킴으로써 메뉴의 분석을 할 수 있으며, 이러한 과정에서 저장된 기준값과 반복적인 기능테스트에 의해 확인되는 과정을 통해 테스트 프로그램의 실행 중에 발생할 수 있는 오류를 검출할 수 있게 된다.
특히, 종래에는 사용자가 이러한 과정을 일일이 프로그래밍 형태로 입력하거나, 해당 동작을 직접 수행함으로써 테스트가 진행되었으나, 본 발명에서는 이러한 과정을 분석부(40)가 자동으로 수행함으로써 떠 빠르고 정확하게 메뉴의 분석 및 오류의 검출이 가능해진다.
도 5는 본 발명에 따른 분석시스템에 의해 분석이 수행되는 과정을 상세히 도시한 순서도이다.
분석을 시작하면 프로그램 실행부(10)의 테스트 프로그램(여기서, '테스트 프로그램'은 검증이 필요한 대상 프로그램을 의미한다)을 구동하고, 기능의 실행에 따른 유지를 위한 각종 처리를 수행한다(S1, S2).
그리고, 분석부(40)는 테스트 프로그램의 실행을 확인하고, 테스트 프로그램의 영역 및 크기를 확인하는 한편, 테스트 프로그램의 핸들값의 크기와 위치를 확인한다. 여기서 핸들값은 전술한 바와 같이 테스트 프로그램에 의해 제공되고, 메뉴나 명령의 실행을 위한 인터페이스 위치를 의미한다. 또한 분석부(40)는 테스트 프로그램이 실행된 초기 상태 값을 먼저 기본값으로 저장하게 된다. 여기서, 기본값은 오류가 발생하지 않은 상태의 프로그램 실행상태를 의미하는 것으로 화면의 이미지일 수도 있고, 프로그램의 상태를 나타내는 코드일 수도 있으나, 본 발명에서는 설명의 편의를 위해 기본값과 이에 관련된 데이터를 의미하는 것으로 가정하여 설명하기로 한다. 아울러, 기본값은 메뉴의 실행시마다 각 조건에 따라 생성되며, 이를 각 단계별로 구분하지 않고 기본값으로 언급하기로 한다. 즉, 기본값은 각 단계별, 각 메뉴의 호출별, 각 기능별로 복수로 마련될 수 있으며, 변화가 발생되기 전 상태값을 의미하는 용어로 이해되는 것이 바람직히다.(S3)
이와 같이 초기 상태에 대한 기본값이 준비되면 분석부(40)는 프로그램의 전체 영역을 상위 블럭으로 구분하여 변화발생을 분석하게 된다. 이때, 상위블럭 각각에 대해 기본값을 마련하고 변화 발생 여부를 블럭별로 비교할 수 있으나, 이로써 본 발명을 한정하는 것은 아니다.(S4)
그리고, 분석부(40)는 상위 블럭을 각각 미리 정해진 숫자의 하위 블럭으로 구분하고 하위 블럭 각각에 대한 기본값을 저장할 수 있다. 이러한 분석을 위한 기본값의 저장은 전술한 바와 같이 메뉴의 선택적, 메뉴의 선택 후와 같이 기능의 실행, 선택과 같은 각각의 상황에서 반복적으로 수행될 수 있으며, 제시된 단계에서만 수행되는 것으로 본 발명을 한정하는 것은 아니다.(S5)
기본값이 마련되면 분석부(40)는 미리 확인된 핸들값에 따라 테스트 프로그램 영역에서 마우스 포인터를 이동시키도록 포인터 제어부(20)를 제어하며, 포인터가 핸들값에 따라 미리 정해진 메뉴 상으로 이동하게 된다. 여기서, 포인터의 이동은 해당 메뉴에 해당하는 키입력으로 대체될 수도 있고, 핸들값을 적용하지 않고 마우스 포인터가 먼저 이동하여 메뉴의 위치를 확인한 후 핸들값과 비교되도록 할 수도 있다. 그러나, 마우스 포인터를 먼저 이동시키고 핸들값을 비교하는 경우 분석에 소요되는 시간이 증가할 수 있으며, 본 발명에서는 핸들값에 따라 마우스 포인터를 이동시키는 것으로 가정하여 설명하기로 한다.(S6)
이때, 분석부(40)는 메뉴의 형태, 색, 모양과 같이 상태가 변화되었는지 블럭과 기본값을 비교하여 확인하고, 상태변화를 기록하게 된다. 이때, 상태 변화가 발생된 부분의 크기와 위치를 기록하고 이를 핸들값과 비교하여 오류 여부를 판단할 수 있게 된다.(S7, S8)
그리고, 메뉴의 위치가 확인되면 분석부(40)는 해당 메뉴를 선택하도록 포인터 제어부(20)를 제어하게 된다. 포인터 제어부(20)가 해당 메뉴를 선택하게 되면, 프로그램 실행부(10)는 포인터 제어부(20)에 의해 선택된 기능을 실행하거나, 해당 메뉴의 하위 메뉴를 호출하게 된다. 그리고, 분석부(40)는 상위 블럭 또는 하위블럭의 비교를 통해 메뉴 선택에 따른 변화를 검출하여 기록하거나 분석하게 된다.(S9)
특히, 분석부(40)는 메뉴의 선택에 따라 활성화되는 기능(여기서, '기능'은 메뉴의 호출, 선택된 기능의 실행, 기능 실행을 위한 설정창의 팝업과 같은 사항을 포함할 수 있다)이 메뉴, 팝업창과 같이 핸들값을 가지는 기능이면, 분석부(40)는 새로운 핸들값을 확인하고, 핸들값에 의해 마우스 포인터를 이동시켜 새로운 메뉴의 위치, 입력필드의 위치와 같은 변경사항을 파악하고 기록하게 된다.(S10)
그리고, 이러한 과정은 전술한 과정(S3 내지 S8)을 메뉴 선택에 의해 실행된 기능에 대해 수행(S11 내지 S15)하게 되며, 선택된 메뉴에 대해 이러한 과정이 종료되면 분석부(40)는 다른 메뉴나 기능이 존재하는지 판단하게 된다(S16)
추가적인 메뉴 또는 하위 메뉴가 있는 것으로 확인되면 분석부(40)는 전술한 과정(S2 내지 S16)을 재수행하여 메뉴나, 기능의 위치, 크기, 이때 활성되는 기능을 반복적으로 확인 및 기록하게 된다.(S17 내지 S20)
그리고, 이와 같이 메뉴의 위치와 기능이 확인되면, 핸들값과의 비교, 메뉴나 기능의 반복실행을 수행하면, 전술한 과정에서 생성된 기본값과 이를 비교하여 오류의 발생을 파악하고, 이를 리포트로 작성하여 저장부(50)에 저장하게 된다.
아울러 도 5를 통해서는 마우스 포인터의 이동을 통한 메뉴의 분석과 오류의 검증에 관련된 사항을 설명하였지만, 이러한 분석 및 오류의 검증은 키보드와 같은 글자판에 의해 명령어를 직접 입력하여 이루어질 수 있다.
이와 같이 본 발명에 따른 자동분석 시스템 및 방법은 메뉴의 위치 및 크기와 같이 인터페이스의 형태와 위치뿐만 아니라, 인터페이스를 이용한 명령 입력에 따른 기능의 실행여부도 판단하여 오류여부를 확인하는 것이 가능하며, 블럭 단위로 구분되는 영역을 비교하여 빠르고 정확하게 비교하는 것이 가능하며, 특히, 이를 위해 개발자의 프로그래밍과 같이 번거롭고 어려운 과정을 거치지 않고 수행할 수 있도록 하여 테스트에 소요되는 노력, 비용 및 시간을 절감하는 것이 가능해진다.
이상에서 본 발명의 기술적 사상을 예시하기 위해 구체적인 실시 예로 도시하고 설명하였으나, 본 발명은 상기와 같이 구체적인 실시 예와 동일한 구성 및 작용에만 국한되지 않고, 여러 가지 변형이 본 발명의 범위를 벗어나지 않는 한도 내에서 실시될 수 있다. 따라서 그와 같은 변형도 본 발명의 범위에 속하는 것으로 간주해야 하며, 본 발명의 범위는 후술하는 특허청구범위에 의해 결정되어야 한다.
10 : 프로그램 실행부
20 : 포인터 제어부
30 : 출력부
40 : 분석부
50 : 저장부

Claims (14)

  1. 메뉴 또는 기능의 호출을 위한 사용자 인터페이스(User Interface, UI)를 가지는 테스트 대상 프로그램을 실행시키는 프로그램 실행부;
    마우스 포인터를 이동시켜 상기 UI 상에 위치시키거나, 선택함으로써 마우스를 제어하는 포인터 제어부; 및
    상기 마우스 포인터의 이동 또는 선택에 따른 상기 UI의 변화를 검출하여 상기 UI 상의 버튼의 위치 및 존재를 탐색하고, 상기 버튼의 형태, 상기 버튼에 의해 호출되는 기능 및 상기 버튼에 종속되는 하위 메뉴의 유무 중 어느 하나 이상을 포함하는 실행상태를 분석하는 분석부를 포함하고,
    상기 분석부는,
    상기 UI 변화의 검출을 이미지비교를 이용하여 수행하고,
    상기 테스트 대상 프로그램에 의해 상기 UI가 제공되는 영역을 미리 정해진 복수의 영역으로 구분하고, 상기 영역별로 UI 변화의 발생여부를 판단하고,
    복수의 상기 영역 중 UI 변화가 발생한 영역은 미리 정해진 복수의 하위 영역으로 구분하고, 복수의 상기 하위 영역별 UI 변화의 발생여부를 재판단하여 상기 실행상태를 판단하는, UI 설계 오류를 자동으로 검출하는 것을 특징으로 하는 프로그램 분석 시스템.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서,
    상기 분석부는,
    상기 포인터를 미리 획득한 핸들값에 의해 상기 UI 상에 이동시키거나, 상기 UI를 선택하여 UI 변화의 발생여부를 판단하는 것을 특징으로 하는 프로그램 분석 시스템.
  5. 제 1 항에 있어서,
    상기 분석부는,
    상기 포인터를 상기 테스트 대상 프로그램에서 이동시켜 상기 테스트 대상 프로그램의 UI 변화의 발생여부를 판단하고, 상기 UI 변화가 발생된 위치를 기본값과 비교하는 것을 특징으로 하는 프로그램 분석 시스템.
  6. 제 1 항, 제 4 항 및 제 5 항 중 어느 한 항에 있어서,
    상기 분석부는,
    상기 UI 변화의 발생여부를 판단하기 위해 변화 발생전 상기 테스트 대상 프로그램의 실행상태를 기록한 기본값을 획득하여 저장하는 것을 특징으로 하는 프로그램 분석 시스템.
  7. 제 6 항에 있어서,
    상기 기본값은,
    상기 UI 상의 버튼의 위치, 형태, 상기 버튼의 선택시 실행되는 기능 및 상기 UI의 선택시 호출되는 하위 메뉴 중 어느 하나 이상의 정보를 가지는 핸들값을 포함하여 구성되는 것을 특징으로 하는 프로그램 분석 시스템.
  8. 프로그램 실행부가 메뉴 또는 기능의 호출을 위한 사용자 인터페이스(User Interface, UI)를 가지는 테스트 대상 프로그램을 실행시키는 단계;
    포인터 제어부가 마우스 포인터를 이동시켜 상기 UI 상에 위치시키거나, 선택함으로써 포인터를 제어하는 단계;
    분석부가 상기 마우스 포인터의 이동 또는 선택에 따른 상기 UI 변화를 검출하여 상기 UI 상의 버튼의 위치 및 존재를 탐색하고, 상기 버튼의 형태, 상기 버튼에 의해 호출되는 기능 및 상기 버튼에 종속되는 하위 메뉴의 유무 중 어느 하나 이상을 포함하는 실행상태를 분석하는 단계를 포함하되,
    상기 분석하는 단계는,
    상기 UI 변화의 검출을 이미지비교를 이용하여 수행하고,
    상기 분석부가 상기 테스트 대상 프로그램에 의해 상기 UI가 제공되는 영역을 미리 정해진 복수의 영역으로 구분하고, 상기 영역별로 UI 변화의 발생여부를 판단하는 단계; 및
    상기 분석부가 복수의 상기 영역 중 UI 변화가 발생한 영역은 미리 정해진 복수의 하위 영역으로 구분하고, 복수의 상기 하위 영역별 UI 변화의 발생여부를 재판단하는 단계를 포함하는, UI 설계 오류를 자동으로 검출하는 것을 특징으로 하는 프로그램 분석 방법.
  9. 삭제
  10. 삭제
  11. 제 8 항에 있어서,
    상기 포인터를 제어하는 단계 또는 상기 분석하는 단계는,
    상기 분석부가 상기 포인터 제어부를 제어하여 상기 포인터를 미리 획득한 핸들값에 의해 상기 인터페이스 상에 이동시키거나, 상기 인터페이스를 선택하여 UI 변화의 발생여부를 판단하는 것을 특징으로 하는 프로그램 분석 방법.
  12. 제 8 항에 있어서,
    상기 포인터를 제어하는 단계 또는 상기 분석하는 단계는,
    상기 분석부가 상기 포인터 제어부를 제어하여 상기 테스트 대상 프로그램에서 상기 포인터를 이동시켜 상기 테스트 대상 프로그램의 UI 변화의 발생여부를 판단하고, 상기 UI 변화가 발생된 위치를 미리 획득한 핸들값과 비교하는 것을 특징으로 하는 프로그램 분석 방법.
  13. 제 8 항, 제 11 항 및 제 12 항 중 어느 한 항에 있어서,
    상기 분석하는 단계는,
    상기 분석부가 상기 UI 변화의 발생여부를 판단하기 위해 변화 발생전 상기 테스트 대상 프로그램의 실행상태를 기록한 기본값을 획득하여 저장하는 단계를 더 포함하여 구성되는 것을 특징으로 하는 프로그램 분석 방법.
  14. 제 13 항에 있어서,
    상기 기본값은,
    상기 UI 상의 버튼의 위치, 형태, 상기 버튼의 선택시 실행되는 기능 및 상기 버튼의 선택시 호출되는 하위 메뉴 중 어느 하나 이상의 정보를 가지는 핸들값을 포함하여 구성되는 것을 특징으로 하는 프로그램 분석 방법.
KR1020170028876A 2017-03-07 2017-03-07 프로그램 자동 분석 시스템 및 이를 이용한 자동분석 방법 KR101796009B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170028876A KR101796009B1 (ko) 2017-03-07 2017-03-07 프로그램 자동 분석 시스템 및 이를 이용한 자동분석 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170028876A KR101796009B1 (ko) 2017-03-07 2017-03-07 프로그램 자동 분석 시스템 및 이를 이용한 자동분석 방법

Publications (1)

Publication Number Publication Date
KR101796009B1 true KR101796009B1 (ko) 2017-12-01

Family

ID=60921998

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170028876A KR101796009B1 (ko) 2017-03-07 2017-03-07 프로그램 자동 분석 시스템 및 이를 이용한 자동분석 방법

Country Status (1)

Country Link
KR (1) KR101796009B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190087724A (ko) * 2018-01-17 2019-07-25 주식회사 한글과컴퓨터 니모닉 기반의 gui 테스트 자동화 방법 및 이를 이용하는 장치
KR20190095717A (ko) * 2018-02-07 2019-08-16 주식회사 한글과컴퓨터 색차 기반의 gui 테스트 자동화 방법 및 이를 이용하는 장치
KR20200029073A (ko) * 2018-09-07 2020-03-18 주식회사 한글과컴퓨터 다국어로 제작된 프로그램에 대한 자동화 점검 장치 및 그 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010249565A (ja) * 2009-04-13 2010-11-04 Dainippon Screen Mfg Co Ltd 欠陥検出装置及び欠陥検出方法
JP2013504139A (ja) * 2010-08-10 2013-02-04 インターナショナル・ビジネス・マシーンズ・コーポレーション ウェブ・アプリケーションを自動的にテストする方法およびシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010249565A (ja) * 2009-04-13 2010-11-04 Dainippon Screen Mfg Co Ltd 欠陥検出装置及び欠陥検出方法
JP2013504139A (ja) * 2010-08-10 2013-02-04 インターナショナル・ビジネス・マシーンズ・コーポレーション ウェブ・アプリケーションを自動的にテストする方法およびシステム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190087724A (ko) * 2018-01-17 2019-07-25 주식회사 한글과컴퓨터 니모닉 기반의 gui 테스트 자동화 방법 및 이를 이용하는 장치
KR102087208B1 (ko) * 2018-01-17 2020-03-10 주식회사 한글과컴퓨터 니모닉 기반의 gui 테스트 자동화 방법 및 이를 이용하는 장치
KR20190095717A (ko) * 2018-02-07 2019-08-16 주식회사 한글과컴퓨터 색차 기반의 gui 테스트 자동화 방법 및 이를 이용하는 장치
KR102087209B1 (ko) 2018-02-07 2020-03-10 주식회사 한글과컴퓨터 색차 기반의 gui 테스트 자동화 방법 및 이를 이용하는 장치
KR20200029073A (ko) * 2018-09-07 2020-03-18 주식회사 한글과컴퓨터 다국어로 제작된 프로그램에 대한 자동화 점검 장치 및 그 동작 방법
KR102119745B1 (ko) * 2018-09-07 2020-06-08 주식회사 한글과컴퓨터 다국어로 제작된 프로그램에 대한 자동화 점검 장치 및 그 동작 방법

Similar Documents

Publication Publication Date Title
US9280451B2 (en) Testing device
US9317403B2 (en) Method for creating a label
CN107122119B (zh) 信息处理方法、装置、电子设备及计算机可读存储介质
JP5803910B2 (ja) 領域推薦装置、領域推薦方法およびプログラム
US6871327B2 (en) Method and apparatus for extending coverage of GUI tests
US20160350137A1 (en) Guide file creation program
US20090103769A1 (en) Cognitive control framework for automatic control of application programs exposure a graphical user interface
KR101796009B1 (ko) 프로그램 자동 분석 시스템 및 이를 이용한 자동분석 방법
JP2011192296A (ja) ヘルプユーティリティアプリケーションプログラム
CN108595343A (zh) 应用程序的测试方法及装置
EP2784679A1 (en) Test equipment and test method
JP2011081778A (ja) ディスプレイ非依存のコンピュータによるガイダンス方法および装置
CN109476014A (zh) 用于接合动态定位的目标特征的触摸屏测试平台
CN105808257B (zh) 一种应用弹窗识别方法和装置
TW201324141A (zh) 測試電子裝置之功能的測試方法以及測試裝置
CN112231206A (zh) 应用程序测试的脚本编辑方法、计算机可读存储介质及测试平台
US8621370B2 (en) Batch processing information processing including simultaneously moving a plurality of objects and independently moving an object from the rest of the plurality of objects
CN105824401A (zh) 一种移动终端的控制方法及其移动终端
CN112286782A (zh) 控件遮挡检测方法、软件检测方法、装置及介质
CN108845924B (zh) 控制响应区域显示控制方法、电子装置及存储介质
US20060236265A1 (en) Dynamically composed user interface help
CN115543831A (zh) 一种测试脚本生成方法、装置、设备和存储介质
CN106708705B (zh) 终端后台进程监控方法和系统
KR101999321B1 (ko) 프로그램 검증 시스템 및 검증 방법
KR20190087724A (ko) 니모닉 기반의 gui 테스트 자동화 방법 및 이를 이용하는 장치

Legal Events

Date Code Title Description
AMND Amendment
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant