KR102289884B1 - 애플리케이션 테스트에서 객체를 추출하는 방법 및 시스템 - Google Patents

애플리케이션 테스트에서 객체를 추출하는 방법 및 시스템 Download PDF

Info

Publication number
KR102289884B1
KR102289884B1 KR1020200016710A KR20200016710A KR102289884B1 KR 102289884 B1 KR102289884 B1 KR 102289884B1 KR 1020200016710 A KR1020200016710 A KR 1020200016710A KR 20200016710 A KR20200016710 A KR 20200016710A KR 102289884 B1 KR102289884 B1 KR 102289884B1
Authority
KR
South Korea
Prior art keywords
test
terminal
application
information
gui
Prior art date
Application number
KR1020200016710A
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 KR1020200016710A priority Critical patent/KR102289884B1/ko
Application granted granted Critical
Publication of KR102289884B1 publication Critical patent/KR102289884B1/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/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler

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)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

일 실시예는, 스크립트에 포함된 객체 정보를 이용하여 애플리케이션의 GUI에 대한 소스 코드에서 객체의 고유값을 추출 및 저장하는 방법 및 시스템을 제공한다.

Description

애플리케이션 테스트에서 객체를 추출하는 방법 및 시스템{METHOD AND SYSTEM FOR EXTRACTING OBJECTS FROM APPLICATION TEST}
본 실시예는 애플리케이션 테스트에서 객체를 추출하는 방법 및 시스템에 관한 것이다.
스마트폰 시장이 급속히 팽창을 하면서 이와 비례하여 모바일 소프트웨어 분야도 급속한 성장세를 이루고 있으며 애플리케이션(Application)이라는 모바일 애플리케이션이 급속하게 시장에 나타나고 있다.
이러한 애플리케이션의 개발 및 배포 단계에서 애플리케이션의 안정성 테스트가 필수적으로 요구되는데, 애플리케이션의 특성상 한가지 이상의 기기들에서 기능이 정확히 작동하는지 알아보기 위하여 안정성 테스트를 거치게 된다.
블랙박스 테스트(Blackbox Test)라고 불리는 안정성 테스트는 애플리케이션의 최초 개발 및 배포시뿐만 아니라 애플리케이션의 업데이트(Update)시에도 필수적으로 진행되어야 하는 것으로, 애플리케이션의 수명 주기 동안 수 회에서 수십 회까지 수행되고 있으며 그 작업은 단순 반복작업이 주류를 이룬다.
스마트 폰의 대중화에 따라 다수의 애플리케이션이 매일마다 출시되고 있고, 이러한 다수의 애플리케이션이 설치되는 스마트 폰의 종류도 다양하기 때문에 위와 같은 안정성 테스트를 수동으로 진행할 경우, 그에 필요한 테스트 인력이 과다하게 증가하는 문제점이 있다.
위와 같은 문제를 해결하기 위해 각 개발사들은 자동화 테스트 시스템을 개발하여 간단한 반복 테스트에 적용하고 있다.
이러한 애플리케이션의 자동화 테스트는 단순한 검사 진행 순서에 따른 스크립트를 구성하고, 테스트 대상 애플리케이션을 테스트할 다수의 스마트 폰에서 스크립트에 해당하는 단순 검사를 순차적으로 반복 수행한다. 여기서, 스크립트는 테스트 대상 애플리케이션이 예상대로 작동하는지를 테스트하기 위한 명령어 집합으로서, 프로그래밍 언어가 아닌 언어로 작성한 짧은 프로그램이나 명령어들을 의미하는 스크립트 언어로 작성된다.
이러한 스크립트는 일반적인 프로그래밍 언어에 비해 단순한 구문으로 작성되기 때문에 테스트 대상 애플리케이션의 GUI(Graphical User Interface)에 포함된 아이콘, 버튼 등과 같은 객체들의 정보(예를 들어, 객체 명칭, 객체 좌표, 객체 이미지 등)가 스크립트에 포함될 수 있다.
여기서, 일반적인 자동화 테스트 시스템에서는 사용자 컴퓨터가 스크립트를 생성하고, 사용자 컴퓨터와 유무선 인터넷망을 통해 연결된 에이전트 컴퓨터에서 스크립트를 수신한다.
그리고 에이전트 컴퓨터가 다수의 테스트 폰에 설치된 테스트 대상 애플리케이션을 스크립트에 따라 반복적으로 테스트한다. 여기서, 에이전트 컴퓨터는 다수의 테스트 폰과 통신 케이블로 연결될 수 있고, 다수의 테스트 폰은 각각 상이한 기종으로 구성될 수 있다.
한편, 스크립트는 테스트 대상 애플리케이션의 GUI에 포함된 객체들의 객체 명칭을 포함하고, 객체 좌표 및 객체 이미지 중 하나 이상을 포함할 수 있기 때문에 종래에 에이전트 컴퓨터는 자동화 테스트를 수행시에 다수의 테스트 폰으로 객체 명칭과 함께 객체 좌표 또는 객체 이미지를 전송하였다.
여기서, 다수의 테스트 폰은 테스트 대상 애플리케이션의 GUI에서 객체 좌표에 해당하는 위치에 객체 명칭을 가지는 객체를 검색하거나 객체 명칭을 가지고 객체 이미지와 유사한 이미지를 가지는 객체를 검색하는 과정을 수행해야 했다.
위와 같이 종래에는 테스트 대상 애플리케이션의 테스트 시에 객체 좌표 또는 객체 이미지를 이용하였다.
여기서, 다수의 테스트 폰은 각각 상이한 기종으로 구성되므로, 다수의 테스트 폰 각각의 해상도나 환경 설정도 각각 상이할 수 있다.
이러한 경우, 스크립트에 포함된 객체 좌표와 다른 위치에 객체가 표시되어 객체를 검색하지 못하거나, 객체 이미지의 색상과 다른 색상으로 객체가 표시되어 객체를 검색하지 못하는 테스트 폰이 발생할 수 있고, 이로 인해 에이전트 컴퓨터에서 자동화 테스트를 수행하지 못하거나, 부정확하게 수행할 수 있는 문제점이 있었다.
이러한 배경에서, 본 실시예의 목적은, 일 측면으로, 스크립트에 포함된 객체 정보를 이용하여 애플리케이션의 GUI에 대한 소스 코드에서 객체의 고유값을 추출 및 저장하는 방법 및 시스템을 제공하는 것이다.
전술한 목적을 달성하기 위하여, 일 실시예는, 테스트 대상 애플리케이션의 GUI(Graphical User Interface)에 포함된 일 객체의 객체 정보인 일 객체 정보 및 상기 일 객체 정보에 매칭된 일 객체 조작 정보를 포함한 스크립트를 에이전트 단말기에서 수신하는 데이터 수신 단계; 상기 에이전트 단말기가 상기 일 객체 정보에 포함된 일 객체 명칭 및 일 객체 좌표를 제 1 테스트 단말기 - 상기 테스트 대상 애플리케이션이 설치된 이동통신 단말기 - 에 전송하는 정보 전송 단계; 상기 제 1 테스트 단말기가 상기 GUI의 소스 코드인 GUI 소스 코드를 호출하는 코드 호출 단계; 상기 제 1 테스트 단말기가 상기 GUI 소스 코드에서 상기 일 객체 좌표로부터 일정 범위 이내의 객체 좌표를 가지는 하나 이상의 후보 객체를 선별하는 객체 선별 단계; 상기 제 1 테스트 단말기가 상기 하나 이상의 후보 객체 중에서 상기 일 객체 명칭과 동일한 명칭을 가지는 특정 객체를 선별하고, 상기 GUI 소스 코드에서 상기 특정 객체의 엑스패스(XPAth: XML Path Language)값을 추출하여 상기 에이전트 단말기로 전송하는 고유값 전송 단계; 및 상기 에이전트 단말기가 상기 엑스패스값을 전송하는 고유값 전송 단계를 포함하는 애플리케이션 테스트에서 객체를 추출하는 방법을 제공한다.
고유값 전송 단계 이후에 상기 스크립트를 상기 에이전트 단말기에 전송한 중계 서버에서 상기 엑스패스값을 수신하여 저장하는 고유값 저장 단계를 더 포함할 수 있다.
고유값 저장 단계 이후에 상기 에이전트 단말기가 상기 엑스패스값 및 상기 일 객체 조작 정보를 상기 중계 서버로부터 수신하는 단계; 및 상기 에이전트 단말기가 상기 엑스패스값 및 상기 일 객체 조작 정보를 상기 제 1 테스트 단말기 내지 제 N 테스트 단말기에 전송하여 상기 제 1 테스트 단말기 내지 제 N 테스트 단말기에서 상기 테스트 대상 애플리케이션의 테스트를 진행하는 단계를 더 포함할 수 있다.
특정 객체는 상기 테스트 대상 애플리케이션의 GUI에 포함된 특정 아이콘, 특정 버튼 및 정보 입력 박스 중 어느 하나일 수 있다.
에이전트 단말기는 상기 제 1 테스트 단말기와 케이블 통신을 수행하여 상기 일 객체 명칭 및 상기 일 객체 좌표를 상기 제 1 테스트 단말기에 전송하고, 상기 제 1 테스트 단말기로부터 상기 엑스패스값을 수신할 수 있다.
다른 실시예는, 상기 테스트 대상 애플리케이션의 GUI(Graphical User Interface)에 포함된 일 객체 정보 및 상기 일 객체 정보에 매칭된 일 객체 조작 정보를 포함한 스크립트를 인터넷 통신망을 통해 수신하고, 상기 일 객체 정보에 포함된 일 객체 명칭 및 일 객체 좌표를 케이블 통신을 통해 전송하는 에이전트 단말기; 및 상기 에이전트 단말기와의 케이블 통신을 통해 상기 일 객체 명칭 및 상기 일 객체 좌표를 수신하고, 기설치된 상기 테스트 대상 애플리케이션의 GUI 소스 코드를 호출한 후에 상기 GUI 소스 코드에서 상기 일 객체 좌표와 일정값 이내로 인접한 객체 좌표를 가지는 하나 이상의 후보 객체를 선별하고, 상기 하나 이상의 후보 객체 중에서 상기 일 객체 명칭과 동일한 명칭을 가지는 특정 객체를 선별한 후에 상기 특정 객체의 엑스패스(XPAth: XML Path Language)값을 상기 GUI 소스 코드에서 추출하여 상기 에이전트 단말기로 전송하는 제 1 테스트 단말기를 포함하는 애플리케이션 테스트에서 객체를 추출하는 시스템을 제공한다.
상기 시스템은 스크립트를 상기 에이전트 단말기에 전송하고, 상기 에이전트 단말기로부터 상기 엑스패스값을 수신하여 저장하는 중계 서버를 더 포함할 수 있다.
상기 시스템은 테스트 대상 애플리케이션을 기설치하고, 상기 에이전트 단말기와의 케이블 통신을 통해 상기 엑스패스값 및 상기 일 객체 조작 정보를 수신해서 상기 테스트 대상 애플리케이션의 테스트를 진행하는 제 2 테스트 단말기 내지 제 N 테스트 단말기를 더 포함할 수 있다.
이상에서 설명한 바와 같이 본 실시예에 의하면, 스크립트에 포함된 객체 정보를 이용하여 애플리케이션의 GUI에 대한 소스 코드에서 객체의 고유값을 추출 및 저장할 수 있기 때문에 애플리케이션의 자동화 테스트에서 테스트 단말기가 객체의 고유값을 이용하여 객체를 정확하게 검색할 수 있고, 이로 인해 정확한 자동화 테스트를 수행할 수 있게 된다.
도 1은 일 실시예에 따른 앱 자동화 테스트 시스템의 구성도이다.
도 2 및 도 3은 일 실시예에 따른 사용자 단말기의 화면을 예시적으로 나타낸 도면이다.
도 4는 일 실시예에 따른 앱 자동화 테스트의 객체 추출 시스템의 구성도이다.
도 5는 일 실시예에 따른 테스트 단말기의 화면을 예시적으로 나타낸 도면이다.
도 6은 일 실시예에 따른 객체 추출 시스템에서 특정 객체를 추출하는 과정을 나타낸 순서도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
도 1은 일 실시예에 따른 앱 자동화 테스트 시스템의 구성도이다.
도 1을 참조하면, 앱 자동화 테스트 시스템(100)은 사용자 단말기(110), 중계 서버(120), 에이전트 단말기(130) 및 다수의 테스트 단말기(140)를 포함한다.
사용자 단말기(110)는 모바일 애플리케이션의 자동화 테스트 툴을 사용하는 사용자의 데스크 탑 컴퓨터, 노트북, 태블릿 PC(Personal Computer) 등 일 수 있다.
일 실시예에서 사용자 단말기(110)는 도 2와 같이 앱 자동화 테스트를 위한 자동화 테스트 툴을 웹브라우저 상에서 실행할 수 있다.
이를 통해 사용자 단말기(110)는 자동화 테스트 툴에서 자동화 테스트를 수행할 모바일 애플리케이션인 테스트 대상 애플리케이션의 GUI(Graphical User Interface)를 도 3과 같이 에뮬레이션할 수 있다.
이 상태에서 사용자 단말기(110)는 사용자의 정보 입력장치(예를 들어, 마우스, 키보드 등) 조작을 통해 선택된 객체 정보 및 이에 대한 객체 조작 정보를 포함한 스크립트를 생성할 수 있다.
예를 들어, 도 3에서 사용자가 마우스의 커서를 회원 가입 버튼(310)에 위치시킨 상태에서 회원 가입 버튼(310)을 클릭하고, 다시 마우스의 커서를 뒤로 가기 버튼(320)에 위치시킨 상태에서 뒤로 가기 버튼(320)을 클릭하며, 마우스의 커서를 지문 인식 아이콘(330)에 위치시킨 상태에서 지문 아이콘(330)을 클릭하면, 사용자 단말기(110)는 "회원 가입-클릭, 뒤로 가기-클릭, 지문 인식-클릭"과 같은 정보를 포함한 스크립트를 생성할 수 있다.
위와 같이 테스트 대상 애플리케이션의 스크립트를 생성한 사용자 단말기(110)는 인터넷 통신망으로 연결된 중계 서버(120)에 스크립트를 전송할 수 있다. 여기서, 스크립트는 위와 같이 일 객체 정보 및 일 객체 정보에 매칭된 일 객체 조작 정보를 포함할 수 있다. 그리고 일 객체 정보는 테스트 대상 애플리케이션의 GUI에 포함된 일 객체의 객체 명칭 및 GUI 상에서 일 객체가 위치한 지점의 좌표인 일 객체 좌표를 포함할 수 있다.
일 실시예에서 일 객체, 즉 특정 객체는 테스트 대상 애플리케이션의 GUI에 포함된 아이콘, 버튼 및 정보 입력 박스(예를 들어, 비밀 번호 입력 박스, 아이디 입력 박스 등) 중 어느 하나일 수 있다.
중계 서버(120)는 사용자 단말기(110)에 자동화 테스트 툴을 제공하고, 사용자 단말기(110)에서 생성 및 전송한 테스트 대상 애플리케이션의 스크립트를 수신 및 저장할 수 있고, 스크립트를 에이전트 단말기(130)로 중계할 수 있다.
그리고 중계 서버(120)는 에이전트 단말기(130)로부터 스크립트에 포함된 객체 정보들의 엑스패스값을 에이전트 단말기(130)로부터 수신하여 저장할 수 있다. 여기서, 중계 서버(120)는 일 객체 정보와 엑스패스값 및 일 객체 조작 정보를 대응시켜서 저장할 수 있다.
이러한, 중계 서버(120)는 자동화 테스트 툴을 웹 페이지 형태로 제공하는 웹 서버일 수 있다.
에이전트 단말기(130)는 자동화 테스트 프레임워크가 설치된 데스크 탑 컴퓨터, 노트북, 태블릿 PC 등 일 수 있다.
이러한 에이전트 단말기(130)는 중계 서버(120)를 통해 중계된 스크립트를 수신할 수 있다. 여기서, 에이전트 단말기(130)는 인터넷 통신망을 통해 중계 서버(120)에 연결될 수 있다.
그리고, 에이전트 단말기(130)는 다수의 테스트 폰(140)과 통신 케이블을 통해 연결될 수 있다. 에이전트 단말기(130)는 일대다 연결을 위한 멀티 포트 허브(미도시)를 통해 다수의 테스트 폰(140)과 연결될 수 있다.
일 실시예에서 에이전트 단말기(130)는 스크립트에 따라 다수의 테스트 폰(140)을 테스트하기 전에 스크립트에 포함된 객체 정보에 대응하는 고유값인 엑스패스(XPAth)값의 추출을 하나의 테스트 단말기에 요청 및 수신할 수 있다. 여기서, 에이전트 단말기(130)는 미러링 방식을 통해 하나의 테스트 단말기에 엑스패스값의 추출을 요청할 수 있다.
이에 대한 자세한 설명은 도 4에서 하도록 한다.
한편, 스크립트에 포함된 하나 이상의 객체 정보에 대응하는 하나 이상의 고유값인 엑스패스(XPAth)값을 수신한 후, 에이전트 단말기(130)는 중계 서버(120)에 하나 이상의 엑스패스값을 전송할 수 있다.
그리고 에이전트 단말기(130)는 하나 이상의 엑스패스값을 통해 다수의 테스트 폰(140)에 설치된 테스트 대상 애플리케이션을 테스트할 수 있다. 여기서, 에이전트 단말기(130)는 미러링 방식을 통해 다수의 테스트 폰(140)에 대한 테스트를 수행할 수 있다. 그리고 엑스패스값은 테스트 대상 애플리케이션의 GUI에 대한 소스 코드에서 GUI의 객체별로 고유하게 부여된 식별값을 의미할 수 있다.
다수의 테스트 단말기(140)는 테스트 대상 애플리케이션이 설치된 이동통신 단말기로써, 자동화 테스트를 위한 전용 프로그램이 설치될 수 있다. 예를 들어 다수의 테스트 단말기(140)는 자동화 테스트를 위한 미러링 앱이 설치될 수 있다.
이러한 다수의 테스트 단말기(140)는 에이전트 단말기(130)와 통신 케이블을 통해 연결될 수 있다.
그리고 다수의 테스트 단말기(140)의 기종은 각각 상이할 수 있다.
일 실시예에서 다수의 테스트 단말기(140)는 에이전트 단말기(130)로부터 하나 이상의 엑스패스값과 하나 이상의 엑스패스값에 대응하는 객체 조작 정보를 수신할 수 있다.
이를 통해, 테스트 대상 애플리케이션의 GUI에서 하나 이상의 엑스패스값에 해당하는 하나 이상의 객체를 객체 조작 정보에 따라 조작할 수 있다.
여기서, 다수의 테스트 단말기(140) 각각은 테스트 대상 애플리케이션의 GUI에 대한 소스 코드에서 하나 이상의 엑스패스값에 대응하는 하나 이상의 객체를 정확하게 검색할 수 있다. 따라서, 종래에 객체 좌표 또는 객체 이미지를 통해 자동화 테스트를 수행하는 방식에 비해서 보다 정확한 자동화 테스트를 수행할 수 있다.
한편, 일 실시예에서는 다수의 테스트 단말기(140)가 위와 같은 자동화 테스트를 수행하기 전에 다수의 테스트 단말기(140) 중 어느 하나의 테스트 단말기가 에이전트 단말기(130)로부터 객체 정보에 대응하는 고유값인 엑스패스값의 추출을 요청받을 수 있고, 이를 통해 객체 정보에 대응하는 엑스패스값을 에이전트 단말기(130)로 전송할 수 있다.
이에 대한 자세한 설명은 아래와 같다.
도 4는 일 실시예에 따른 앱 자동화 테스트의 객체 추출 시스템의 구성도이다.
도 4를 참조하면, 객체 추출 시스템(400)은 에이전트 단말기(130) 및 제 1 테스트 단말기(140a)를 포함할 수 있다. 이하의 설명에서는 설명의 편의상 에이전트 단말기(130)가 스크립트에 포함된 하나의 객체 정보에 대한 엑스패스값의 추출을 요청하는 구성에 대해서만 설명하기로 한다. 하지만 일 실시예를 실제로 구현하는 경우, 에이전트 단말기(130)는 스크립트에 포함된 모든 객체 정보에 대한 엑스패스값의 추출을 요청할 수 있음은 물론이다.
에이전트 단말기(130)는 일 객체 정보 및 일 객체 정보에 매칭된 일 객체 조작 정보를 포함한 스크립트를 인터넷 통신망을 통해 중계 서버(120)로부터 수신한다. 여기서, 중계 서버(120)는 자동화 테스트 툴을 에뮬레이션한 사용자 단말기(110)로부터 스크립트를 수신하여 저장할 수 있다.
이후, 에이전트 단말기(130)는 스크립트에서 일 객체 정보에 포함된 일 객체 명칭 및 일 객체 좌표를 제 1 테스트 단말기(140a)에 전송할 수 있다.
일 객체 명칭 및 일 객체 좌표를 전송한 후, 에이전트 단말기(130)는 제 1 테스트 단말기(140a)로부터 일 객체 정보에 해당하는 고유값인 엑스패스값을 수신하여 중계 서버(120)에 전송할 수 있다. 여기서, 에이전트 단말기(130)는 제 1 테스트 단말기(140a)와 케이블 통신을 수행하여 일 객체 명칭 및 일 객체 좌표를 제 1 테스트 단말기(140a)에 전송하고, 제 1 테스트 단말기((140a)로부터 엑스패스값을 수신할 수 있다.
에이전트 단말기(130)는 위와 같은 방식을 통해 스크립트에 포함된 객체 정보들의 엑스패스값을 제 1 테스트 단말기(140a)로부터 수신하여 중계 서버(120)에 전송할 수 있다.
한편, 에이전트 단말기(130)는 제 1 테스트 단말기(140a)를 포함하는 다수의 테스트 단말기(140), 즉 제 1 테스트 단말기(140a) 내지 제 N 테스트 단말기(미도시)의 자동화 테스트시에 객체 명칭에 해당하는 객체 좌표 또는 객체 이미지와 객체 조작 정보를 다수의 테스트 단말기(140)에 전송하지 않고, 중계 서버(120)로부터 객체 명칭에 해당하는 엑스패스값과 객체 조작 정보만을 수신하여 다수의 테스트 단말기(140)에 전송할 수 있다. 이를 통해, 다수의 테스트 단말기(140)가 기종에 상관없이 테스트 대상 애플리케이션의 GUI 소스 코드에서 엑스패스값에 해당하는 객체를 정확하게 검색할 수 있도록 한다.
제 1 테스트 단말기(140a)는 다수의 테스트 단말기(140)에 포함된 어느 하나의 테스트 단말기로써, 에이전트 단말기(130)로부터 일 객체 명칭 및 일 객체 좌표를 수신할 수 있다.
이후, 제 1 테스트 단말기(140a)는 기설치된 테스트 대상 애플리케이션의 GUI 소스 코드를 호출할 수 있다.
그리고 제 1 테스트 단말기(140a)는 GUI 소스 코드에서 일 객체 좌표로부터 일정 범위 이내의 객체 좌표를 가지는 하나 이상의 후보 객체를 선별할 수 있다.
예를 들어, 일 객체 명칭이 도 5와 같이 회원가입이고, 일 객체 좌표가 (360, 620)일 경우, 제 1 테스트 단말기(140a)는 도 5와 같은 GUI에서 흑색원으로 표시된 일 객체 좌표로부터 일정 범위 이내의 객체 좌표를 가지는 후보 객체인 "회원가입" 버튼, "ID/PW로그인" 아이콘, "지문인식 로그인" 아이콘, "앱 둘러보기" 버튼을 선별할 수 있다.
이후, 제 1 테스트 단말기(140a)는 하나 이상의 후보 객체 중에서 일 객체 명칭과 동일한 명칭을 가지는 특정 객체를 선별할 수 있다.
그리고, GUI 소스 코드에서 특정 객체의 엑스패스값을 추출하여 에이전트 단말기(130)로 전송할 수 있다.
예를 들어, 도 5에서 "회원가입" 버튼을 특정 객체로 선별할 수 있고, GUI 소스 코드에서 특정 객체의 엑스패스값(예를 들어, 도 5의 //[@resource-id="회원가입"])을 추출하여 에이전트 단말기(130)로 전송할 수 있다.
제 1 테스트 단말기(140a)는 위와 같은 방식을 통해 에이전트 단말기(130)로부터 수신한 객체 명칭들에 대한 엑스패스값을 추출하고, 이를 에이전트 단말기(130)에 전송할 수 있다.
여기서, 특정 객체는 테스트 대상 애플리케이션의 GUI에 포함된 특정 아이콘, 특정 버튼 및 정보 입력 박스 중 어느 하나일 수 있다.
한편, 일 실시예에서 제 1 테스트 단말기(140a)가 하나 이상의 후보 객체를 선별하는 이유는 사용자 단말기(110)가 자동화 테스트 툴을 통해 에뮬레이션한 GUI의 해상도와 제 1 테스트 단말기(140a)에서 표시한 GUI의 해상도가 상이한 경우에는 자동화 테스트 툴에서의 좌표와 제 1 테스트 단말기(140a)에서의 좌표가 불일치할 수도 있기 때문이다.
이하에서는 객체 추출 시스템(400)에서 특정 객체를 추출하는 과정에 대해서 설명하도록 한다.
도 6은 일 실시예에 따른 객체 추출 시스템에서 특정 객체를 추출하는 과정을 나타낸 순서도이다.
도 6을 참조하면, 에이전트 단말기(130)는 일 객체 정보 및 일 객체 정보에 매칭된 일 객체 조작 정보를 포함한 스크립트를 인터넷 통신망을 통해 중계 서버(120)로부터 수신한다(S610).
이후, 에이전트 단말기(130)는 스크립트에서 일 객체 정보에 포함된 일 객체 명칭 및 일 객체 좌표를 제 1 테스트 단말기(140a)에 전송한다(S620).
제 1 테스트 단말기(140a)는 에이전트 단말기(130)로부터 일 객체 명칭 및 일 객체 좌표를 수신하고, 기설치된 테스트 대상 애플리케이션의 GUI 소스 코드를 호출한 후에 GUI 소스 코드에서 일 객체 좌표로부터 일정 범위 이내의 객체 좌표를 가지는 하나 이상의 후보 객체를 선별할 수 있다(S630).
이후, 제 1 테스트 단말기(140a)는 하나 이상의 후보 객체 중에서 일 객체 명칭과 동일한 명칭을 가지는 특정 객체를 선별할 수 있다(S640).
그리고, GUI 소스 코드에서 특정 객체의 엑스패스값을 추출하여 에이전트 단말기(130)로 전송할 수 있다(S650).
에이전트 단말기(130)는 제 1 테스트 단말기(140a)로부터 일 객체 정보에 해당하는 고유값인 엑스패스값을 수신하여 중계 서버(120)로 전송한다(S660). 여기서, 중계 서버(120)는 일 객체 정보와 엑스패스값 및 일 객체 조작 정보를 대응시켜서 저장할 수 있다.
에이전트 단말기(130)는 위와 같은 과정을 통해 스크립트에 포함된 객체 정보들의 엑스패스값을 제 1 테스트 단말기(140a)로부터 수신하여 중계 서버(120)로 전송할 수 있다.
그리고 에이전트 단말기(130)는 제 1 테스트 단말기(140a)를 포함하는 다수의 테스트 단말기(140), 즉 제 1 테스트 단말기(140a) 내지 제 N 테스트 단말기(미도시)의 자동화 테스트시에 객체 명칭에 해당하는 엑스패스값과 객체 조작 정보를 중계 서버(120)로부터 수신하여 다수의 테스트 단말기(140)에 전송할 수 있다. 이를 통해, 다수의 테스트 단말기(140)가 기종에 상관없이 테스트 대상 애플리케이션의 GUI 소스 코드에서 엑스패스값에 해당하는 객체를 정확하게 검색할 수 있도록 한다.
이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥 상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (8)

  1. 테스트 대상 애플리케이션의 GUI(Graphical User Interface)에 포함된 일 객체의 객체 정보인 일 객체 정보 및 상기 일 객체 정보에 매칭된 일 객체 조작 정보를 포함한 스크립트를 에이전트 단말기에서 수신하는 데이터 수신 단계;
    상기 에이전트 단말기가 상기 일 객체 정보에 포함된 일 객체 명칭 및 일 객체 좌표를 제 1 테스트 단말기 - 상기 테스트 대상 애플리케이션이 설치된 이동통신 단말기 - 에 전송하는 정보 전송 단계;
    상기 제 1 테스트 단말기가 상기 GUI의 소스 코드인 GUI 소스 코드를 호출하는 코드 호출 단계;
    상기 제 1 테스트 단말기가 상기 GUI 소스 코드에서 상기 일 객체 좌표로부터 일정 범위 이내의 객체 좌표를 가지는 하나 이상의 후보 객체를 선별하는 객체 선별 단계;
    상기 제 1 테스트 단말기가 상기 하나 이상의 후보 객체 중에서 상기 일 객체 명칭과 동일한 명칭을 가지는 특정 객체를 선별하고, 상기 GUI 소스 코드에서 상기 특정 객체의 엑스패스(XPAth: XML Path Language)값을 추출하여 상기 에이전트 단말기로 전송하는 고유값 전송 단계; 및
    상기 에이전트 단말기가 상기 엑스패스값을 전송하는 고유값 전송 단계
    를 포함하는 애플리케이션 테스트에서 객체를 추출하는 방법.
  2. 제 1 항에 있어서, 상기 고유값 전송 단계 이후에
    상기 스크립트를 상기 에이전트 단말기에 전송한 중계 서버에서 상기 엑스패스값을 수신하여 저장하는 고유값 저장 단계
    를 더 포함하는 애플리케이션 테스트에서 객체를 추출하는 방법.
  3. 제 2 항에 있어서, 상기 고유값 저장 단계 이후에
    상기 에이전트 단말기가 상기 엑스패스값 및 상기 일 객체 조작 정보를 상기 중계 서버로부터 수신하는 단계; 및
    상기 에이전트 단말기가 상기 엑스패스값 및 상기 일 객체 조작 정보를 상기 제 1 테스트 단말기 내지 제 N 테스트 단말기에 전송하여 상기 제 1 테스트 단말기 내지 제 N 테스트 단말기에서 상기 테스트 대상 애플리케이션의 테스트를 진행하는 단계
    를 더 포함하는 애플리케이션 테스트에서 객체를 추출하는 방법.
  4. 제 1 항에 있어서,
    상기 특정 객체는 상기 테스트 대상 애플리케이션의 GUI에 포함된 특정 아이콘, 특정 버튼 및 정보 입력 박스 중 어느 하나인 애플리케이션 테스트에서 객체를 추출하는 방법.
  5. 제 1 항에 있어서,
    상기 에이전트 단말기는 상기 제 1 테스트 단말기와 케이블 통신을 수행하여 상기 일 객체 명칭 및 상기 일 객체 좌표를 상기 제 1 테스트 단말기에 전송하고, 상기 제 1 테스트 단말기로부터 상기 엑스패스값을 수신하는 애플리케이션 테스트에서 객체를 추출하는 방법.
  6. 테스트 대상 애플리케이션의 GUI(Graphical User Interface)에 포함된 일 객체 정보 및 상기 일 객체 정보에 매칭된 일 객체 조작 정보를 포함한 스크립트를 인터넷 통신망을 통해 수신하고, 상기 일 객체 정보에 포함된 일 객체 명칭 및 일 객체 좌표를 케이블 통신을 통해 전송하는 에이전트 단말기; 및
    상기 에이전트 단말기와의 케이블 통신을 통해 상기 일 객체 명칭 및 상기 일 객체 좌표를 수신하고, 기설치된 상기 테스트 대상 애플리케이션의 GUI 소스 코드를 호출한 후에 상기 GUI 소스 코드에서 상기 일 객체 좌표와 일정값 이내로 인접한 객체 좌표를 가지는 하나 이상의 후보 객체를 선별하고, 상기 하나 이상의 후보 객체 중에서 상기 일 객체 명칭과 동일한 명칭을 가지는 특정 객체를 선별한 후에 상기 특정 객체의 엑스패스(XPAth: XML Path Language)값을 상기 GUI 소스 코드에서 추출하여 상기 에이전트 단말기로 전송하는 제 1 테스트 단말기
    를 포함하는 애플리케이션 테스트에서 객체를 추출하는 시스템.
  7. 제 6 항에 있어서,
    상기 스크립트를 상기 에이전트 단말기에 전송하고, 상기 에이전트 단말기로부터 상기 엑스패스값을 수신하여 저장하는 중계 서버
    를 더 포함하는 애플리케이션 테스트에서 객체를 추출하는 시스템.
  8. 제 6 항에 있어서,
    상기 테스트 대상 애플리케이션을 기설치하고, 상기 에이전트 단말기와의 케이블 통신을 통해 상기 엑스패스값 및 상기 일 객체 조작 정보를 수신해서 상기 테스트 대상 애플리케이션의 테스트를 진행하는 제 2 테스트 단말기 내지 제 N 테스트 단말기
    를 더 포함하는 애플리케이션 테스트에서 객체를 추출하는 시스템.
KR1020200016710A 2020-02-12 2020-02-12 애플리케이션 테스트에서 객체를 추출하는 방법 및 시스템 KR102289884B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200016710A KR102289884B1 (ko) 2020-02-12 2020-02-12 애플리케이션 테스트에서 객체를 추출하는 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200016710A KR102289884B1 (ko) 2020-02-12 2020-02-12 애플리케이션 테스트에서 객체를 추출하는 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR102289884B1 true KR102289884B1 (ko) 2021-08-17

Family

ID=77466092

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200016710A KR102289884B1 (ko) 2020-02-12 2020-02-12 애플리케이션 테스트에서 객체를 추출하는 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR102289884B1 (ko)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100069147A (ko) * 2008-12-16 2010-06-24 주식회사 트로젝트 웹사이트 품질 테스트 방법 및 시스템
KR20120107193A (ko) * 2011-03-21 2012-10-02 엔에이치엔비즈니스플랫폼 주식회사 키워드에 기반하여 웹 서비스의 테스트를 자동적으로 수행하는 시스템 및 방법
KR20150027426A (ko) * 2013-09-03 2015-03-12 에스케이플래닛 주식회사 애플리케이션 자동검증 시스템 및 방법
JP2019021341A (ja) * 2018-10-11 2019-02-07 日本電気株式会社 アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム
KR20190105439A (ko) * 2018-03-05 2019-09-17 어니컴 주식회사 애플리케이션 테스트 방법 및 장치
KR20190113680A (ko) * 2018-03-28 2019-10-08 주식회사 테스트웍스 웹 페이지의 테스트 케이스 생성 방법 및 장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100069147A (ko) * 2008-12-16 2010-06-24 주식회사 트로젝트 웹사이트 품질 테스트 방법 및 시스템
KR20120107193A (ko) * 2011-03-21 2012-10-02 엔에이치엔비즈니스플랫폼 주식회사 키워드에 기반하여 웹 서비스의 테스트를 자동적으로 수행하는 시스템 및 방법
KR20150027426A (ko) * 2013-09-03 2015-03-12 에스케이플래닛 주식회사 애플리케이션 자동검증 시스템 및 방법
KR20190105439A (ko) * 2018-03-05 2019-09-17 어니컴 주식회사 애플리케이션 테스트 방법 및 장치
KR20190113680A (ko) * 2018-03-28 2019-10-08 주식회사 테스트웍스 웹 페이지의 테스트 케이스 생성 방법 및 장치
JP2019021341A (ja) * 2018-10-11 2019-02-07 日本電気株式会社 アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문(2018.04.10) *

Similar Documents

Publication Publication Date Title
CN108959068B (zh) 软件界面测试方法、设备及存储介质
US9720799B1 (en) Validating applications using object level hierarchy analysis
US9189377B1 (en) Automation testing using descriptive maps
CN103984626B (zh) 一种生成测试用例脚本的方法及装置
US20210073108A1 (en) Virtualized device-based test system and method thereof
CN111209202A (zh) 终端应用测试方法和装置
US11245601B2 (en) Automated integrated test system and method thereof
CN110716853A (zh) 一种测试脚本录制方法、应用程序测试方法和相关装置
CN111444103B (zh) 一种Web页面自动化测试方法及相关设备
Zhang et al. Crowdsourced testing services for mobile apps
US11954013B2 (en) Method of testing applet performance, electronic device, and computer-readable medium
CN109614325B (zh) 一种确定控件属性的方法及装置、电子设备和存储介质
CN110320378B (zh) 质控测试申请方法、装置、设备及计算机可读存储介质
US9454463B2 (en) Rapid automation front-end framework library and executable graphic user interface testing system and method
JP6525043B2 (ja) データ生成装置、データ生成方法及びプログラム
CN112231206A (zh) 应用程序测试的脚本编辑方法、计算机可读存储介质及测试平台
CN112506778A (zh) Web用户界面自动化测试方法、装置、设备和存储介质
US9723489B1 (en) Automated vulnerability discovery in mobile device applications
CN116627849B (zh) 系统测试方法、装置、设备及存储介质
KR102289884B1 (ko) 애플리케이션 테스트에서 객체를 추출하는 방법 및 시스템
US20160292067A1 (en) System and method for keyword based testing of custom components
CN107229565B (zh) 测试方法和装置
KR20180076020A (ko) 애플리케이션 테스트 자동화 장치 및 방법
CN116028356A (zh) 基于蓝牙的终端软件测试方法及装置
CN112346991B (zh) 一种接口测试脚本的生成方法及装置

Legal Events

Date Code Title Description
GRNT Written decision to grant