KR20220049334A - Method and system for application test - Google Patents

Method and system for application test Download PDF

Info

Publication number
KR20220049334A
KR20220049334A KR1020200132849A KR20200132849A KR20220049334A KR 20220049334 A KR20220049334 A KR 20220049334A KR 1020200132849 A KR1020200132849 A KR 1020200132849A KR 20200132849 A KR20200132849 A KR 20200132849A KR 20220049334 A KR20220049334 A KR 20220049334A
Authority
KR
South Korea
Prior art keywords
test
terminal
application
script
terminals
Prior art date
Application number
KR1020200132849A
Other languages
Korean (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 KR1020200132849A priority Critical patent/KR20220049334A/en
Publication of KR20220049334A publication Critical patent/KR20220049334A/en

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
    • 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/3676Test management for coverage analysis
    • 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

Abstract

A method for operating a test management server includes: receiving a test terminal registration request including terminal information of terminals; storing the terminal information of the terminals in a test terminal pool; receiving a test request including at least one test application and scripts for defining an interaction execution operation through the test application; selecting the test terminals as a terminal group based on the terminal information stored in the test terminal pool, the test terminals configured to execute the test application according to each of the scripts; transmitting the test application and a script defined from among the scripts to the test terminals; and receiving execution results of executing the test application according to the transmitted script from the test terminals. According to the present invention, it is possible to test the application only with a simple procedure.

Description

어플리케이션 테스트 방법 및 테스트 시스템{METHOD AND SYSTEM FOR APPLICATION TEST}Application test method and test system

본 개시는 어플리케이션 테스트에 관한 것이다.This disclosure relates to application testing.

개발자는 어플리케이션의 동작에 이상이 있는지 테스트한 후, 어플리케이션을 배포한다. 어플리케이션 배포 후, 추가 기능이 개발되거나 기존 기능이 변경되면, 개발자는 어플리케이션을 다시 테스트한 후, 배포해야 한다. 개발자가 일일이 어플리케이션의 다양한 동작을 수동 테스트할 수 있으나, 시간 및 비용이 많이 필요하다. 셀레늄(selenium) 등과 같이 스크립트를 이용하여 자동으로 어플리케이션을 테스트하는 기술이 있으나, 단말 또는 서버를 각각 테스트하도록 구성되어 있거나, 전체 테스트 과정이 자동화되어 있지 않거나, 신규 서비스에 맞춰 테스트 프로그램을 다시 개발해야 하는 경우도 많이 있다. 한편, 개발자는 어플리케이션이 남긴 로그를 통해 테스트 결과를 확인할 수 있는데, 이를 위해 어플리케이션에 미리 테스트 코드를 넣어 개발해야 한다. 이로 인해 상용 어플리케이션에 테스트 코드와 기능 코드가 섞일 수 있다. After testing whether there is any abnormality in the operation of the application, the developer distributes the application. After application deployment, if additional functions are developed or existing functions are changed, the developer must test the application again before deploying. Developers can manually test various operations of the application, but it requires a lot of time and money. There is a technology that automatically tests an application using a script, such as selenium, but it is configured to test each terminal or server, the entire test process is not automated, or the test program needs to be redeveloped for a new service. There are many cases where On the other hand, the developer can check the test result through the log left by the application. For this, the test code must be developed in advance in the application. This can result in a mix of test and functional code in commercial applications.

특히, 단말간의 전화 발신 및 수신, 주문 요청 및 주문 수신 등 단말간 인터랙션 테스트는 동시적인(simultaneously) 테스트가 필요한 데, 수동 테스트가 쉽지 않고, 자동 테스트를 위해서는 테스트 코드를 어플리케이션에 넣어 개발해야 한다.In particular, inter-terminal interaction tests such as making and receiving calls between terminals, order request and order reception, etc. require simultaneous testing. Manual testing is not easy, and for automatic testing, test codes must be put into the application.

최근 패스트푸드에서 사용자 주문을 받는 키오스크 단말, 호텔에서 어메니티/컨시어지 요청을 받는 컨시어지 단말이 증가하고 있다. 단말을 통한 비대면 서비스가 증가하고, 단말의 종류가 다양화되어, 단말과 서버 사이 인터랙션이나 단말과 단말 사이 인터랙션의 무결성 검증을 빠르게 테스트하는 기술이 필요하다.Recently, kiosk terminals that receive user orders from fast food and concierge terminals that receive amenity/concierge requests from hotels are increasing. As non-face-to-face services through terminals increase and types of terminals are diversified, there is a need for a technology for quickly testing the integrity verification of an interaction between a terminal and a server or between a terminal and a terminal.

해결하고자 하는 과제는, 테스트 관리 서버가 테스트 단말 풀(pool)에서 인터랙션 테스트를 위한 단말 그룹을 선택하고, 단말 그룹으로 어플리케이션의 실행 동작이 정의된 스크립트를 제공한 후, 스크립트에 따라 어플리케이션이 실행된 결과를 획득하는 어플리케이션 테스트 방법을 제공하는 것이다.The task to be solved is that the test management server selects a terminal group for an interaction test from a test terminal pool, provides a script in which the execution operation of the application is defined to the terminal group, and then executes the application according to the script. It is to provide an application test method that obtains the result.

해결하고자 하는 과제는, 테스트를 위해 선택된 단말이 어플리케이션의 실행 동작이 정의된 스크립트에 따라 어플리케이션을 실행하고, 실행 결과를 테스트 관리 서버로 제공하는 어플리케이션 테스트 방법을 제공하는 것이다.An object to be solved is to provide an application test method in which a terminal selected for testing executes an application according to a script in which an execution operation of the application is defined, and provides an execution result to a test management server.

한 실시예에 따른 테스트 관리 서버의 동작 방법으로서, 단말들의 단말 정보를 포함하는 테스트 단말 등록 요청을 수신하는 단계, 상기 단말들의 단말 정보를 테스트 단말 풀(pool)에 저장하는 단계, 적어도 하나의 테스트 어플리케이션과, 상기 테스트 어플리케이션을 통한 인터랙션 실행 동작이 정의된 스크립트들을 포함하는 테스트 요청을 수신하는 단계, 상기 테스트 단말 풀에 저장된 단말 정보를 기초로, 상기 스크립트들 각각에 따라 상기 테스트 어플리케이션을 실행할 수 있는 테스트 단말들을 단말 그룹으로 선택하는 단계, 상기 테스트 단말들로 상기 테스트 어플리케이션과, 상기 스크립트들 중 지정된 스크립트를 전송하는 단계, 그리고 상기 테스트 단말들로부터, 상기 테스트 어플리케이션을 전송된 스크립트에 따라 실행한 실행 결과들을 수신하는 단계를 포함한다.A method of operating a test management server according to an embodiment, comprising: receiving a test terminal registration request including terminal information of terminals; storing terminal information of the terminals in a test terminal pool; at least one test Receiving a test request including an application and scripts in which an interaction execution operation through the test application is defined, based on terminal information stored in the test terminal pool, executing the test application according to each of the scripts Selecting test terminals as a terminal group, transmitting the test application and a specified one of the scripts to the test terminals, and executing the test application from the test terminals according to the transmitted script and receiving results.

상기 테스트 단말들을 단말 그룹으로 선택하는 단계는 각 스크립트가 테스트하는 역할에 따라 상기 테스트 단말 풀에서, 상기 역할을 수행할 테스트 단말을 선택할 수 있다.In the step of selecting the test terminals as a terminal group, a test terminal to perform the role may be selected from the test terminal pool according to a role tested by each script.

상기 스크립트들 중 지정된 스크립트를 전송하는 단계는 각 테스트 단말로 역할에 해당하는 스크립트를 전송할 수 있다.The step of transmitting a specified script among the scripts may transmit a script corresponding to a role to each test terminal.

상기 스크립트들은 상기 테스트 어플리케이션의 통화 기능을 테스트하는 발신측 스크립트와 수신측 스크립트를 포함할 수 있다. 상기 발신측 스크립트는 발신자 역할을 수행하는 테스트 단말로 전송되고, 상기 수신측 스크립트는 수신자 역할을 수행하는 테스트 단말로 전송될 수 있다.The scripts may include a calling-side script and a receiving-side script for testing the call function of the test application. The sender script may be transmitted to a test terminal serving as a sender, and the receiver script may be transmitted to a test terminal serving as a receiver.

상기 실행 결과를 수신하는 단계는 상기 테스트 단말들 중 적어도 일부의 테스트 단말들로 스크립트 실행 명령을 전송하고, 상기 스크립트 실행 명령을 수신한 테스트 단말들로부터, 상기 테스트 어플리케이션을 전송된 스크립트에 따라 실행한 실행 결과를 수신할 수 있다.The receiving of the execution result includes transmitting a script execution command to at least some of the test terminals and executing the test application according to the transmitted script from the test terminals receiving the script execution command. You can receive the execution result.

상기 테스트 단말 등록 요청은 테스트 관리 프로그램을 설치한 단말로부터 수신할 수 있다.The test terminal registration request may be received from a terminal in which the test management program is installed.

상기 단말 정보는 어플리케이션 테스트를 요구되는 소프트웨어 정보 및 하드웨어 정보를 포함할 수 있다.The terminal information may include software information and hardware information required for application testing.

상기 스트립트들은 서버 단말과 클라이언트 단말 사이의 인터랙션 테스트를 위한 서버측 스크립트 및 클라이언트측 스크립트를 포함하거나, 제1 클라이언트 단말과 제2 클라이언트 단말 사이의 인터랙션 테스트를 위한 제1 클라이언트측 스크립트 및 제2 클라이언트측 스크립트를 포함하거나, 서버 단말과 복수의 클라이언트 단말들 사이의 1: N 인터랙션 테스트를 위한 복수의 스크립트들을 포함할 수 있다.The scripts include a server-side script and a client-side script for testing an interaction between a server terminal and a client terminal, or a first client-side script and a second client-side script for testing an interaction between the first client terminal and the second client terminal It may include a script or a plurality of scripts for a 1:N interaction test between the server terminal and a plurality of client terminals.

상기 동작 방법은 상기 실행 결과들을 포함하는 테스트 결과를 상기 테스트 요청에 대한 응답으로 제공하는 단계를 더 포함할 수 있다.The operating method may further include providing a test result including the execution results in response to the test request.

한 실시예에 따른 단말의 동작 방법으로서, 테스트 관리 프로그램을 설치하고, 단말 정보를 포함하는 테스트 단말 등록 요청을 테스트 관리 서버로 전송하는 단계, 상기 테스트 관리 서버로부터 테스트 어플리케이션 및 스크립트를 수신하는 단계, 상기 스크립트에 따라 상기 테스트 어플리케이션을 동작시키고, 상기 테스트 어플리케이션의 실행 결과들을 획득하는 단계, 그리고 상기 테스트 관리 서버로 상기 실행 결과들을 전송하는 단계를 포함한다.A method of operating a terminal according to an embodiment, comprising: installing a test management program, transmitting a test terminal registration request including terminal information to a test management server; receiving a test application and a script from the test management server; operating the test application according to the script, obtaining execution results of the test application, and transmitting the execution results to the test management server.

상기 실행 결과들을 획득하는 단계는 상기 스크립트에 따라 동작한 상기 테스트 어플리케이션의 동작 정보로부터 상기 어플리케이션의 화면을 구성하는 컨트롤의 정보를 확인하고, 상기 컨트롤의 정보를 기초로 상기 테스트 어플리케이션의 실행 결과들을 확인할 수 있다.In the obtaining of the execution results, the information of the control constituting the screen of the application is checked from the operation information of the test application operated according to the script, and the execution results of the test application are checked based on the information of the control. can

실시예에 따르면, 어플리케이션의 인터랙션 기능을 어플리케이션과 별도의 스크립트로 자동 테스트할 수 있어서, 어플리케이션에 독립된 테스트 환경을 구축할 수 있고, 인터랙션 기능을 단말들에서 동시에 확인할 수 있으며, 어플리케이션의 기능이 추가되거나 변경되면, 스크립트를 변경해서 추가되거나 변경된 기능을 테스트할 수 있다.According to an embodiment, since the interaction function of the application can be automatically tested with a script separate from the application, a test environment independent of the application can be built, the interaction function can be checked simultaneously on terminals, and the function of the application is added or If it changes, you can change the script to test the added or changed functionality.

실시예에 따르면, 어플리케이션에 테스트를 위한 코드를 삽입할 필요 없이 어플리케이션을 개발한 후에 테스트를 할 수 있다.According to the embodiment, it is possible to test the application after developing the application without needing to insert a test code into the application.

실시예에 따르면, 단말 화면을 통해 어플리케이션의 실행 결과를 확인할 수 있고, 단말에서의 실행 결과가 기록된 로그파일을 분석할 필요 없이, 단말 화면 정보(UI)로부터 가져온 실행 결과를 통해 테스트 결과를 확인할 수 있다.According to the embodiment, it is possible to check the execution result of the application through the terminal screen, and to check the test result through the execution result obtained from the terminal screen information (UI) without the need to analyze the log file in which the execution result is recorded in the terminal can

실시예에 따르면, 개발자는 테스트 대상인 어플리케이션과, 어플리케이션의 인터랙션 실행 동작이 정의된 스크립트들을 테스트 관리 서버에 등록하면, 테스트 관리 서버에서 선택된 단말이 어플리케이션의 실행 동작이 정의된 스크립트를 실행한 결과를 테스트 관리 서버로부터 획득할 수 있다. 따라서, 실시예에 따르면, 개발자는 단말에 어플리케이션을 설치하고 테스트하는 테스트 환경을 구축할 필요 없고, 복잡한 테스트 과정을 거칠 필요 없이, 어플리케이션의 인터랙션 실행 동작이 정의된 스크립트들을 등록하는 간단한 절차만으로 어플리케이션을 테스트할 수 있다.According to the embodiment, when the developer registers the application to be tested and the scripts in which the interaction execution operation of the application is defined in the test management server, the terminal selected in the test management server executes the script in which the execution operation of the application is defined. It can be obtained from the management server. Therefore, according to the embodiment, the developer does not need to build a test environment to install and test the application in the terminal, and without the need to go through a complicated test process, the application can be implemented with only a simple procedure of registering scripts in which the interaction execution operation of the application is defined. can be tested

도 1은 한 실시예에 따른 테스트 시스템의 구성도이다.
도 2는 한 실시예에 따른 인터랙션 테스트 환경을 설명하는 도면이다.
도 3은 한 실시예에 따른 인터랙션 테스트를 예시적으로 설명하는 도면이다.
도 4는 한 실시예에 따른 테스트 관리 서버가 어플리케이션 테스트하는 방법의 흐름도이다.
도 5는 한 실시예에 따른 테스트 단말이 어플리케이션 테스트하는 방법의 흐름도이다.
도 6은 한 실시예에 따른 테스트 관리 서버의 구성도이다.
도 7은 한 실시예에 따른 테스트 단말의 구성도이다.
1 is a configuration diagram of a test system according to an embodiment.
2 is a diagram illustrating an interaction test environment according to an exemplary embodiment.
3 is a diagram exemplarily illustrating an interaction test according to an embodiment.
4 is a flowchart of a method for a test management server to test an application according to an embodiment.
5 is a flowchart of a method for a test terminal to test an application according to an embodiment.
6 is a configuration diagram of a test management server according to an embodiment.
7 is a configuration diagram of a test terminal according to an embodiment.

아래에서는 첨부한 도면을 참고로 하여 본 개시의 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, with reference to the accompanying drawings, the embodiments of the present disclosure will be described in detail so that those of ordinary skill in the art to which the present disclosure pertains can easily implement them. However, the present disclosure may be implemented in several different forms and is not limited to the embodiments described herein. And in order to clearly explain the present disclosure in the drawings, parts irrelevant to the description are omitted, and similar reference numerals are attached to similar parts throughout the specification.

명세서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 네트워크를 구성하는 장치들은 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.In the specification, when a part "includes" a certain component, it means that other components may be further included, rather than excluding other components, unless otherwise stated. The devices constituting the network may be implemented by hardware or software or a combination of hardware and software.

명세서에서, 서버 및 단말은 적어도 하나의 프로세서에 의해 동작하는 장치로서, 하나 이상의 프로세서, 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드하는 메모리, 프로그램 및 각종 데이터를 저장하는 스토리지, 통신 인터페이스를 포함할 수 있다. 컴퓨터 프로그램은 메모리에 로드될 때 프로세서로 하여금 본 개시의 다양한 실시예에 따른 방법/동작을 수행하도록 하는 명령어들(instruction)을 포함할 수 있다. 즉, 프로세서는 명령어들을 실행함으로써, 본 개시의 다양한 실시예에 따른 방법/동작들을 수행할 수 있다. 명령어는 기능을 기준으로 묶인 일련의 컴퓨터 판독가능 명령어들로서 컴퓨터 프로그램의 구성 요소이자 프로세서에 의해 실행되는 것을 가리킨다.In the specification, the server and the terminal are devices operated by at least one processor, and may include one or more processors, a memory for loading a computer program executed by the processor, a storage for storing programs and various data, and a communication interface. . A computer program may include instructions that, when loaded into memory, cause a processor to perform methods/operations according to various embodiments of the present disclosure. That is, the processor may perform the method/operations according to various embodiments of the present disclosure by executing the instructions. An instruction refers to a set of computer readable instructions grouped by function, which is a component of a computer program and is executed by a processor.

도 1은 한 실시예에 따른 테스트 시스템의 구성도이고, 도 2는 한 실시예에 따른 인터랙션 테스트 환경을 설명하는 도면이다.1 is a configuration diagram of a test system according to an embodiment, and FIG. 2 is a diagram for explaining an interaction test environment according to an embodiment.

도 1을 참고하면, 테스트 시스템(1)은 테스트 관리 서버(100), 테스트 관리 서버(100)에 테스트 단말로 등록된 복수의 단말들(200a, 200b, …., 200n), 그리고 개발자 단말(300)을 포함할 수 있다. 테스트 단말로 등록된 단말들은 범용 모바일 단말일 수 있고, 특정 서비스를 위해 제작된 전용 단말일 수 있다. Referring to FIG. 1 , the test system 1 includes a test management server 100 , a plurality of terminals 200a , 200b , ..., 200n registered as test terminals in the test management server 100 , and a developer terminal ( 300) may be included. The terminals registered as test terminals may be general-purpose mobile terminals or dedicated terminals manufactured for a specific service.

단말들(200a, 200b, …., 200n)은 테스트 어플리케이션을 설치 및 실행할 수 있는 다양한 타입의 단말일 수 있고, 예를 들면, 모바일 단말, PC 단말, 노트북 단말, 키오스크 단말, 로봇 단말, IoT 단말, 네비게이션 단말 등 다양할 수 있다. 일부 단말들은 서버 기능을 테스트할 수 있는 자원을 가지고 있고, 서버에서 동작하는 서버 테스트 어플리케이션을 테스트할 수 있다고 가정한다. 또한, 일부 단말들은 테스트에 사용되는 단말(예를 들면, 키오스크 단말이나 로봇 단말)의 에뮬레이터를 탑재할 수 있다. 일부 단말들은 테스트 관리 프로그램을 설치하고, 직접 테스트 관리 서버(100)에 연결될 수 있다. 테스트 관리 프로그램을 설치할 수 없어서, 직접 테스트 관리 서버(100)에 연결되기 어려운 일부 단말들(예를 들면, 로봇 단말)은 중계 단말(400)을 통해 테스트 관리 서버(100)에 연결될 수 있다. 중계 단말(400)에 복수의 단말들이 연결될 수 있다. 중계 단말(400)은 테스트 관리 프로그램을 설치할 수 있고, 테스트 단말들이 유무선으로 연결될 수 있는 단말이면 충분하고, 예를 들면, 노트북 단말일 수 있다.The terminals 200a, 200b, . , a navigation terminal, etc. may be various. It is assumed that some terminals have the resources to test the server function and can test the server test application running on the server. In addition, some terminals may be equipped with an emulator of a terminal used for testing (eg, a kiosk terminal or a robot terminal). Some terminals may install a test management program and may be directly connected to the test management server 100 . Some terminals (eg, robot terminals) that are difficult to directly connect to the test management server 100 because the test management program cannot be installed may be connected to the test management server 100 through the relay terminal 400 . A plurality of terminals may be connected to the relay terminal 400 . The relay terminal 400 may install a test management program, and a terminal to which the test terminals can be connected by wire or wireless is sufficient, for example, a notebook terminal.

예를 들면, 단말(200a)은 테스트 관리 프로그램을 설치하고, 테스트 관리 프로그램을 통해 테스트 관리 서버(100)에 연결되고, 단말 정보를 테스트 관리 서버(100)에 전송하여 등록 요청할 수 있다. 테스트 관리 프로그램은 실행된 단말의 정보를 추출해서, 테스트 관리 서버(100)로 전송하고, 등록 요청하는 명령어들을 포함할 수 있다. For example, the terminal 200a installs a test management program, is connected to the test management server 100 through the test management program, and transmits terminal information to the test management server 100 to request registration. The test management program extracts information of the executed terminal, transmits it to the test management server 100, and may include commands for requesting registration.

또는, 중계 단말(400)이 테스트 관리 프로그램을 설치하고, 테스트 관리 프로그램을 통해 테스트 관리 서버(100)에 연결되고, 연결된 단말들(200c, 200d, 200e)의 정보를 추출해서, 테스트 관리 서버(100)로 전송하고, 단말들(200c, 200d, 200e)의 등록을 요청할 수 있다. 테스트 관리 서버(100)는 중계 단말(400)과 단말들(200c, 200d, 200e)을 매핑하여 등록할 수 있다. 단말들(200c, 200d, 200e)은 중계 단말(400)의 제어에 따라 어플리케이션을 실행할 수 있다.Alternatively, the relay terminal 400 installs the test management program, is connected to the test management server 100 through the test management program, and extracts information on the connected terminals 200c, 200d, and 200e, and the test management server ( 100), and may request registration of the terminals 200c, 200d, and 200e. The test management server 100 may register the mapping between the relay terminal 400 and the terminals 200c, 200d, and 200e. The terminals 200c, 200d, and 200e may execute an application under the control of the relay terminal 400 .

테스트 관리 서버(100)는 테스트에 사용되는 다양한 종류의 단말들(200a, 200b, …., 200n)을 테스트 단말 풀(pool)에 등록하고, 단말 정보를 관리한다. 단말 정보는 테스트 대상인 어플리케이션을 실행하고 테스트할 수 있는지를 판단하는데 요구되는 소프트웨어 정보, 하드웨어 정보, 설정 정보 등을 포함할 수 있다. 예를 들면, 단말 정보는 설치된 운영체제, 운영체제 버전, IP 주소, 전화 번호, 가입된 통신사 정보, 제조사 정보, 카메라, 마이크, 디스플레이 크기, 센서 종류, 프로세서, 메모리 등을 포함할 수 있다. 단말 정보는 단말 타입을 더 포함할 수 있다.The test management server 100 registers various types of terminals 200a, 200b, ..., 200n used for testing in a test terminal pool, and manages terminal information. The terminal information may include software information, hardware information, setting information, etc. required to determine whether the test target application can be executed and tested. For example, the terminal information may include an installed operating system, an operating system version, an IP address, a phone number, affiliated carrier information, manufacturer information, camera, microphone, display size, sensor type, processor, memory, and the like. The terminal information may further include a terminal type.

테스트 관리 서버(100)는 개발자 단말(300)로부터, 테스트 대상인 적어도 하나의 테스트 어플리케이션과, 테스트 어플리케이션의 인터랙션 실행 동작이 정의된 스크립트를 포함하는 테스트 요청을 수신한다. 테스트 대상인 테스트 어플리케이션은 클라이언트 단말에 설치되는 테스트 어플리케이션을 포함할 수 있고, 스크립트는 클라이언트 단말 간의 인터랙션 테스트를 위해 작성된 실행 동작들을 포함할 수 있다. 테스트 대상인 테스트 어플리케이션은 클라이언트 단말에 설치되는 클라이언트 테스트 어플리케이션과, 서버에 설치되는 서버 테스트 어플리케이션을 포함할 수 있다. 이 경우, 스크립트는 클라이언트 단말과 서버 간의 인터랙션 테스트를 위해 작성된 실행 동작들을 포함할 수 있다.The test management server 100 receives, from the developer terminal 300 , a test request including at least one test application to be tested and a script in which an interaction execution operation of the test application is defined. The test application to be tested may include the test application installed in the client terminal, and the script may include execution operations written for testing the interaction between the client terminals. The test application to be tested may include a client test application installed in a client terminal and a server test application installed in a server. In this case, the script may include execution actions written for testing the interaction between the client terminal and the server.

스크립트는 테스트 어플리케이션의 실행 환경, 테스트 어플리케이션의 테스트 항목, 테스트 절차, 실행 시 기록 정보, 에러 시 기록 정보 등이 정의될 수 있다. 예를 들면, 테스트 어플리케이션의 통화 기능을 테스트하는 스크립트는 발신측 스크립트와 수신측 스크립트를 포함할 수 있다. 발신측 스크립트는 테스트 어플리케이션을 실행해서 지정된 수신자에게 통화 발신하고, 통화 종료 시 실행 결과(예를 들면, 통화 성공 여부)를 기록하도록 정의될 수 있다. 수신측 스크립트는 테스트 어플리케이션을 실행해서 대기하고, 전화가 오면 통화 버튼을 선택(예를 들면, 터치 또는 스와이프)하여 통화 수락하고, 통화 종료 시 실행 결과(예를 들면, 통화 성공 여부)를 기록하도록 정의될 수 있다.In the script, the execution environment of the test application, the test item of the test application, the test procedure, execution record information, error record information, etc. may be defined. For example, a script for testing the call function of the test application may include a calling-side script and a receiving-side script. The caller script may be defined to execute a test application, transmit a call to a designated recipient, and record an execution result (eg, call success or failure) when the call is terminated. The script on the receiving side runs the test application and waits, when a call comes in, selects the call button (for example, by touching or swiping) to accept the call, and when the call ends, the execution result (for example, call success or not) is recorded. can be defined to

테스트 관리 서버(100)는 테스트 요청에 포함된 테스트 어플리케이션 및 스크립트에 식별자를 부여할 수 있다. 테스트 관리 서버(100)는 테스트 요청에 포함된 테스트 어플리케이션의 테스트 스케줄을 설정할 수 있다. The test management server 100 may assign an identifier to the test application and script included in the test request. The test management server 100 may set a test schedule of a test application included in the test request.

테스트 관리 서버(100)는 테스트 요청에 포함된 스크립트의 오류를 분석하고, 테스트 요청한 개발자에게 오류 정보를 제공하여 수정할 수 있도록 하거나, 지정된 방식으로 오류를 수정할 수 있다.The test management server 100 may analyze errors in the script included in the test request, provide error information to the developer who requested the test, so that they can be corrected, or the error may be corrected in a specified manner.

테스트 관리 서버(100)는 테스트 스케줄을 기초로 테스트 시점이 되면, 다음의 동작을 수행할 수 있다.The test management server 100 may perform the following operation when a test time is reached based on the test schedule.

테스트 관리 서버(100)는 테스트 대상인 테스트 어플리케이션 및 스크립트를 확인하고, 테스트 단말 풀에 등록된 단말 정보를 기초로, 테스트 어플리케이션 및 스크립트를 실행하여 테스트할 수 있는 단말 그룹을 선택할 수 있다. 예를 들어, 테스트 관리 서버(100)는 테스트 어플리케이션에서 제공하는 일대일 통신 기능을 테스트하는 경우, 발신측 단말과 수신측 단말을 선택할 수 있다. 테스트 관리 서버(100)는 테스트 어플리케이션에서 제공하는 다자간 통신 기능을 테스트하는 경우, 그룹 통화를 위한 복수의 단말들을 선택할 수 있다. The test management server 100 may check a test application and script as a test target, and select a terminal group that can be tested by executing the test application and script based on terminal information registered in the test terminal pool. For example, when testing the one-to-one communication function provided by the test application, the test management server 100 may select a sending terminal and a receiving terminal. When testing the multi-party communication function provided by the test application, the test management server 100 may select a plurality of terminals for a group call.

테스트 관리 서버(100)는 테스트 어플리케이션에서 제공하는 서버와 단말 사이의 통신 기능을 테스트하는 경우, 서버 역할을 하는 단말과 클라이언트 역할을 하는 단말을 선택할 수 있다. 예를 들면, 콜센터에서 사용하는 영상통화단말과 이와 연동하는 웹서버 사이의 테스트인 경우, 웹 브라우저를 실행할 수 있는 단말이 웹서버로 선택되고, 영상통화단말의 기능을 실행할 수 있는 사양의 안드로이드 단말이 선택될 수 있다. 선택된 단말들은 미리 정의된 스크립트를 통해서 테스트 정보를 얻고, 실할 수 있다. 이를 통해, 웹서버에서 각 영상통화단말로 전화를 걸고, 영상통화단말은 전화를 받아 일정시간 대기 후, 종료하는 기능의 테스트가 진행될 수 있고, 테스트를 위해 선택된 단말들은 실행 결과를 테스트 관리 서버(100)로 전송할 수 있다.When testing the communication function between the server and the terminal provided by the test application, the test management server 100 may select a terminal serving as a server and a terminal serving as a client. For example, in the case of a test between a video call terminal used in a call center and a web server linked thereto, a terminal capable of executing a web browser is selected as the web server, and an Android terminal with specifications capable of executing the function of a video call terminal can be chosen. The selected terminals can obtain and execute test information through a predefined script. Through this, the web server makes a call to each video call terminal, and the video call terminal receives a call and waits for a certain period of time, then terminates the function test can be conducted, and the terminals selected for the test report the execution result to the test management server ( 100) can be transmitted.

테스트 관리 서버(100)는 선택된 단말 그룹으로 테스트 어플리케이션 및 스크립트를 전송할 수 있다. 이때, 테스트 관리 서버(100)는 테스트 관리 프로그램을 통해 스크립트를 직접 실행할 수 있는 단말(200a)이라면 스크립트 실행 명령을 전송하고, 스크립트 실행 명령을 수신한 단말(200a)은 스크립트에 따라 테스트 어플리케이션을 동작시키고, 실행 결과를 기록할 수 있다. 또는, 선택된 단말 그룹에서 중계 단말(400)을 통해 테스트에 참여하는 단말(200c)이 있으면, 테스트 관리 서버(100)는, 테스트에 참여하는 단말들이 연결된 중계 단말(400)로, 테스트 어플리케이션 및 스크립트와 함께 외부 제어 요청을 전송할 수 있다. 그러면, 중계 단말(400)이 단말(200c)에 테스트 어플리케이션을 설치하고, 스크립트에 따라 단말(200c)의 테스트 어플리케이션을 동작시키고, 실행 결과를 기록할 수 있다.The test management server 100 may transmit a test application and a script to the selected terminal group. At this time, if the test management server 100 is the terminal 200a capable of directly executing the script through the test management program, it transmits the script execution command, and the terminal 200a that receives the script execution command operates the test application according to the script. and record the execution results. Alternatively, if there is a terminal 200c participating in the test through the relay terminal 400 in the selected terminal group, the test management server 100 is a relay terminal 400 to which terminals participating in the test are connected, a test application and a script. can send an external control request with Then, the relay terminal 400 may install the test application in the terminal 200c, operate the test application of the terminal 200c according to the script, and record the execution result.

테스트 관리 서버(100)는 선택된 단말 그룹으로부터 실행 결과들을 수신하고, 실행 결과들을 포함하는 테스트 결과를 개발자 단말(300)에게 제공할 수 있다.The test management server 100 may receive execution results from the selected terminal group and provide the test results including the execution results to the developer terminal 300 .

한편, 단말 화면(UI) 정보를 통해 어플리케이션의 실행 결과가 확인될 수 있다. 먼저, UI는 컨트롤의 조합이고, 각 컨트롤은 고유의 이름과 고유 ID를 가지고 있다. 따라서, 테스트 관리 서버(100) 또는 테스트 단말은 다양한 방법으로 단말에서 실행된 화면 정보를 얻을 수 있다. 예를 들면, 안드로이드 단말에 설치된 UIAutomator를 통해, 실행된 어플리케이션의 화면 정보가 획득되고, 컨트롤 존재 여부나 화면변경을 통해 확인될 수 있다. 또는, 셀레늄을 통해, 텍스트 박스 같은 웹 컨트롤의 값이 조회되거나 자바스크립트가 실행될 수 있다. 윈도우의 경우, 고유 ID를 가지는 화면 컨트롤의 핸들을 통해 컨트롤의 내용이 획득될 수 있습니다. On the other hand, the execution result of the application may be confirmed through the terminal screen (UI) information. First, the UI is a collection of controls, and each control has a unique name and unique ID. Accordingly, the test management server 100 or the test terminal may obtain screen information executed in the terminal in various ways. For example, screen information of an executed application may be acquired through UIAutomator installed in an Android terminal, and it may be confirmed through existence of a control or screen change. Alternatively, through selenium, the value of a web control such as a text box can be retrieved or JavaScript can be executed. In the case of windows, the contents of the control can be obtained through the handle of the on-screen control with a unique ID.

다음에서, 테스트 관리 서버(100)가 어플리케이션 테스트를 위해 단말(200a)과 단말(200b)을 테스트 단말로 선택한 경우를 예로 들어 설명한다.Hereinafter, a case in which the test management server 100 selects the terminals 200a and 200b as test terminals for the application test will be described as an example.

도 2를 참고하면, 테스트 관리 서버(100)는 개발자 단말(300)로부터, 테스트 요청을 수신하고, 테스트 요청에 포함된 클라이언트 테스트 어플리케이션(10), 서버 테스트 어플리케이션(20), 그리고 클라이언트와 서버 간의 인터랙션 테스트를 위한 실행 동작들이 포함된 스크립트를 저장한다고 가정한다. 이때, 스크립트는 클라이언트 테스트 어플리케이션의 테스트를 위한 클라이언트측 스크립트(11)와 서버 테스트 어플리케이션의 테스트를 위한 서버측 스크립트(21)를 포함할 수 있다. 클라이언트측 스크립트(11)와 서버측 스크립트(21)는, 클라이언트와 서버의 인터랙션을 테스트하기 위해 서로 주고받는 절차를 포함할 수 있다.Referring to FIG. 2 , the test management server 100 receives a test request from the developer terminal 300 , and includes a client test application 10 , a server test application 20 , and between the client and the server included in the test request. Assume that you save a script containing execution actions for an interaction test. In this case, the script may include a client-side script 11 for testing the client test application and a server-side script 21 for testing the server test application. The client-side script 11 and the server-side script 21 may include a procedure for exchanging each other in order to test the interaction between the client and the server.

테스트 관리 서버(100)는 테스트 단말 풀에 등록된 단말 정보를 기초로, 단말(200a)과 단말(200b)을 테스트를 위한 클라이언트 단말과 서버 단말로 선택할 수 있다. 단말(200a)과 단말(200b) 각각은 테스트 관리 프로그램(30, 32)을 탑재하고, 테스트 관리 프로그램을 통해 스크립트를 실행하여 어플리케이션을 동작시키고, 어플리케이션의 실행 결과를 기록할 수 있다고 가정한다.The test management server 100 may select the terminals 200a and 200b as client terminals and server terminals for testing based on terminal information registered in the test terminal pool. It is assumed that each of the terminals 200a and 200b mounts the test management programs 30 and 32 , executes a script through the test management program to operate the application, and records the execution result of the application.

테스트 관리 서버(100)는 단말(200a)로 클라이언트 테스트 어플리케이션(10)과 클라이언트측 스크립트(11)를 전송하고, 단말(200b)로 서버 테스트 어플리케이션(20)과 서버측 스크립트(21)를 전송할 수 있다. 테스트 관리 서버(100)는 단말(200a)과 단말(200b)로 스크립트 실행 명령을 전송할 수 있다. The test management server 100 transmits the client test application 10 and the client-side script 11 to the terminal 200a, and transmits the server test application 20 and the server-side script 21 to the terminal 200b. there is. The test management server 100 may transmit a script execution command to the terminal 200a and the terminal 200b.

이때, 테스트 관리 서버(100)는 스크립트의 테스트 항목에서 요구되는 단말 정보(예를 들면, 전화 번호나 IP 주소)를 확인하고, 테스트 단말 풀에 저장된 단말 정보에서 선택된 단말(200a, 200b)의 정보를 추출한 후, 단말(200a, 200b)로 전송할 스크립트를 완성할 수 있다. At this time, the test management server 100 checks the terminal information (eg, phone number or IP address) required in the test item of the script, and the information of the terminals 200a and 200b selected from the terminal information stored in the test terminal pool. After extracting , a script to be transmitted to the terminals 200a and 200b may be completed.

단말(200a)은 클라이언트 테스트 어플리케이션(10)과 클라이언트측 스크립트(11)를 다운로드하고, 스크립트 실행 명령을 수신한 테스트 관리 프로그램(30)이 클라이언트측 스크립트(11)에 따라 클라이언트 테스트 어플리케이션(10)을 동작시킨다.The terminal 200a downloads the client test application 10 and the client-side script 11 , and the test management program 30 receiving the script execution command executes the client test application 10 according to the client-side script 11 . make it work

단말(200b)은 서버 테스트 어플리케이션(20)과 서버측 스크립트(21)를 저장하고, 스크립트 실행 명령을 수신한 테스트 관리 프로그램(32)이 서버측 스크립트(21)에 따라 서버 테스트 어플리케이션(20)을 동작시킨다.The terminal 200b stores the server test application 20 and the server-side script 21 , and the test management program 32 receiving the script execution command executes the server test application 20 according to the server-side script 21 . make it work

테스트 관리 프로그램(30)은 테스트 관리 서버(100)로부터 스크립트 실행 명령을 수신하면, 클라이언트측 스크립트(11)를 실행하여 클라이언트 테스트 어플리케이션(10)을 동작시키고, 어플리케이션의 실행 결과를 테스트 관리 서버(100)로 전송할 수 있다.When the test management program 30 receives a script execution command from the test management server 100 , it executes the client-side script 11 to operate the client test application 10 , and returns the execution result of the application to the test management server 100 . ) can be transmitted.

테스트 관리 프로그램(32)은 테스트 관리 서버(100)로부터 스크립트 실행 명령을 수신하면, 서버측 스크립트(21)를 실행하여 서버 테스트 어플리케이션(20)을 동작시키고, 어플리케이션의 실행 결과를 테스트 관리 서버(100)로 전송할 수 있다.When the test management program 32 receives a script execution command from the test management server 100 , it executes the server-side script 21 to operate the server test application 20 , and returns the execution result of the application to the test management server 100 . ) can be transmitted.

테스트 관리 서버(100)는 단말(200a)과 단말(200b)로부터 실행 결과들을 수신하고, 실행 결과들을 실행 결과 저장소(50)에 저장할 수 있다. 테스트 관리 서버(100)는 개발자 단말(300)에게 테스트 결과 페이지를 제공하고, 테스트 결과 페이지에서 실행 결과 저장소(50)에 저장된 실행 결과를 표시할 수 있다. The test management server 100 may receive execution results from the terminal 200a and the terminal 200b and store the execution results in the execution result storage 50 . The test management server 100 may provide a test result page to the developer terminal 300 and display the execution result stored in the execution result storage 50 on the test result page.

도 3은 한 실시예에 따른 인터랙션 테스트를 예시적으로 설명하는 도면이다.3 is a diagram exemplarily illustrating an interaction test according to an embodiment.

도 3을 참고하면, 단말(200a)은 클라이언트 테스트 어플리케이션(10)과 테스트 관리 프로그램(30)을 탑재하고, 테스트 관리 프로그램(30)이 클라이언트측 스크립트(11)를 실행해서 클라이언트 테스트 어플리케이션(10)를 동작시키는데, 클라이언트 테스트 어플리케이션(10)은 객실 단말에 설치되는 객실 어플리케이션일 수 있다.Referring to FIG. 3 , the terminal 200a is equipped with a client test application 10 and a test management program 30 , and the test management program 30 executes the client-side script 11 to execute the client test application 10 . to operate, the client test application 10 may be a room application installed in the guest room terminal.

단말(200b)은 서버 테스트 어플리케이션(20)과 테스트 관리 프로그램(32)을 탑재하고, 테스트 관리 프로그램(32)이 서버측 스크립트(21)를 실행해서 서버 테스트 어플리케이션(20)를 동작시키는데, 서버 테스트 어플리케이션(20)은 호텔 프론트 단말이나 호텔 관리 서버에 설치되는 객실 관리 어플리케이션일 수 있다. The terminal 200b is loaded with the server test application 20 and the test management program 32 , and the test management program 32 executes the server-side script 21 to operate the server test application 20 , the server test The application 20 may be a room management application installed in a hotel front terminal or a hotel management server.

클라이언트 테스트 어플리케이션(10)과 서버 테스트 어플리케이션(20)은 WebRTC(Web Real-Time Communication) 기반으로, 음성 통화, 영상 통화, 또는 채팅 등의 서비스를 제공한다고 가정한다. 이때, 클라이언트 테스트 어플리케이션(10)과 서버 테스트 어플리케이션(20)의 통화 기능을 테스트하는 경우, 서버측 스크립트(21)는 세션이 생성되는 수신자 정보(예를 들면, 1001호)가 기재되어 있고, 서버 테스트 어플리케이션(20)을 실행해서 수신자에게 통화 발신하고, 통화 종료 시 실행 결과(예를 들면, 통화 성공 여부, 착발신 시각, 통화 시간)를 기록하도록 정의될 수 있다. 클라이언트측 스크립트(11)는 클라이언트 테스트 어플리케이션(10)을 실행하고, 전화가 오면 통화 버튼을 선택(예를 들면, 터치 또는 스와이프)하여 통화 수락하고, 일정 시간 후 종료 버튼을 선택하여 통화 종료한 후, 실행 결과(예를 들면, 통화 성공 여부, 착발신 시각, 통화 시간)를 기록하도록 정의될 수 있다.It is assumed that the client test application 10 and the server test application 20 provide services such as a voice call, a video call, or a chatting based on Web Real-Time Communication (WebRTC). At this time, when testing the call function of the client test application 10 and the server test application 20, the server-side script 21 describes the recipient information (eg, No. 1001) for which the session is created, and the server It may be defined to execute the test application 20 to transmit a call to the receiver, and to record the execution result (eg, whether the call is successful, incoming/outgoing time, and call time) when the call is terminated. The client-side script 11 executes the client test application 10, selects the call button when a call comes in (for example, touch or swipe) to accept the call, and selects the end button after a certain period of time to end the call. After that, it may be defined to record the execution result (eg, call success, incoming/outgoing time, call time).

테스트 관리 프로그램(32)은 서버측 스크립트(21)에 따라 객실 관리 어플리케이션인 서버 테스트 어플리케이션(20)을 실행하고, 서버 테스트 어플리케이션(20)이 수신자에게 통화 발신하도록 제어하고, 서버 테스트 어플리케이션(20)이 통화 종료 시 실행 결과(예를 들면, 통화 성공 여부, 착발신 시각, 통화 시간)를 기록하도록 제어할 수 있다. 그리고, 테스트 관리 프로그램(32)은 서버 테스트 어플리케이션(20)에 기록된 실행 결과를 획득하여 테스트 관리 서버(100)로 전송할 수 있다.The test management program 32 executes the server test application 20, which is a room management application, according to the server-side script 21, controls the server test application 20 to send a call to the receiver, and the server test application 20 When the call is terminated, it is possible to control to record the execution result (eg, whether the call was successful, incoming/outgoing time, and call time). In addition, the test management program 32 may acquire the execution result recorded in the server test application 20 and transmit it to the test management server 100 .

테스트 관리 프로그램(30)은 클라이언트측 스크립트(11)에 따라 객실 어플리케이션인 클라이언트 테스트 어플리케이션(20)을 실행하고, 클라이언트 테스트 어플리케이션(20)이 전화가 오면 통화 버튼을 선택하도록 제어하고, 클라이언트 테스트 어플리케이션(20)이 일정 시간 후 종료 버튼을 선택하도록 제어하며, 통화 종료 후 실행 결과를 기록하도록 제어할 수 있다. 테스트 관리 프로그램(30)은 클라이언트 테스트 어플리케이션(20)에 기록된 실행 결과를 획득하여 테스트 관리 서버(100)로 전송할 수 있다.The test management program 30 executes the client test application 20, which is a room application, according to the client-side script 11, controls the client test application 20 to select a call button when a call comes in, and the client test application ( 20) can be controlled to select the end button after a certain period of time, and to record the execution result after the call ends. The test management program 30 may acquire the execution result recorded in the client test application 20 and transmit it to the test management server 100 .

한편, 테스트 관리 서버(100)는 복수의 객실 단말들에 탑재된 객실 어플리케이션들과 프론트 단말에 설치되는 객실 관리 어플리케이션의 인터랙션 테스트가 요청되는 경우, 객실 단말들과 프론트 단말에 해당하는 복수의 테스트 단말들을 선택하고, 선택된 복수의 테스트 단말들 중 객실 단말에 해당하는 테스트 단말들로 클라이언트 테스트 어플리케이션과 클라이언트측 스크립트를 전송하고, 프론트 단말에 해당하는 테스트 단말로 서버 테스트 어플리케이션과 서버측 스크립트를 전송할 수 있다. 이때, 각 테스트 단말로 전송되는 스크립트는 테스트 시나리오에 따라 결정된 인터랙션 실행 동작들이 정의될 수 있다.On the other hand, the test management server 100 is a plurality of test terminals corresponding to the guest room terminals and the front terminal when an interaction test of the room applications mounted on the plurality of guest room terminals and the room management application installed on the front terminal is requested. , and transmit the client test application and the client-side script to the test terminals corresponding to the guest room terminal among the selected plurality of test terminals, and transmit the server test application and the server-side script to the test terminal corresponding to the front terminal. . In this case, in the script transmitted to each test terminal, interaction execution operations determined according to a test scenario may be defined.

도 4는 한 실시예에 따른 테스트 관리 서버가 어플리케이션 테스트하는 방법의 흐름도이다.4 is a flowchart of a method for a test management server to test an application according to an embodiment.

도 4를 참고하면, 테스트 관리 서버(100)는 테스트 단말 등록 요청을 수신한다(S110). 테스트 관리 서버(100)는 테스트 관리 프로그램을 설치한 단말들로부터 자신의 단말 정보를 포함하는 테스트 단말 등록 요청을 수신할 수 있다. 테스트 관리 서버(100)는 테스트 관리 프로그램을 설치한 중계 단말(400)로부터, 연결된 단말 정보를 포함하는 테스트 단말 등록 요청을 수신할 수 있다. 단말 정보는 테스트 대상인 어플리케이션을 실행하고 테스트할 수 있는지를 판단하는데 요구되는 소프트웨어 정보, 하드웨어 정보, 설정 정보 등을 포함할 수 있다. 예를 들면, 단말 정보는 설치된 운영체제, 운영체제 버전, IP 주소, 전화 번호, 가입된 통신사 정보, 제조사 정보, 카메라, 마이크, 디스플레이 크기, 센서 종류, 프로세서, 메모리 등을 포함할 수 있다. Referring to FIG. 4 , the test management server 100 receives a test terminal registration request ( S110 ). The test management server 100 may receive a test terminal registration request including its own terminal information from terminals in which the test management program is installed. The test management server 100 may receive a test terminal registration request including connected terminal information from the relay terminal 400 in which the test management program is installed. The terminal information may include software information, hardware information, setting information, etc. required to determine whether the test target application can be executed and tested. For example, the terminal information may include an installed operating system, an operating system version, an IP address, a phone number, affiliated carrier information, manufacturer information, camera, microphone, display size, sensor type, processor, memory, and the like.

테스트 관리 서버(100)는 테스트 단말 등록 요청에 포함된 단말 정보를 확인하고, 테스트 단말들을 테스트 단말 풀에 등록한다(S120).The test management server 100 checks the terminal information included in the test terminal registration request, and registers the test terminals in the test terminal pool (S120).

테스트 관리 서버(100)는 개발자 단말(300)로부터, 적어도 하나의 테스트 어플리케이션과, 테스트 어플리케이션을 통한 인터랙션 실행 동작이 정의된 스크립트들을 포함하는 테스트 요청을 수신한다(S130). 각 스크립트는 단말들 사이의 인터랙션 테스트를 위해 작성된 실행 동작들을 포함할 수 있고, 테스트 어플리케이션의 실행 환경, 테스트 어플리케이션의 테스트 항목, 테스트 절차, 실행 시 기록 정보, 에러 시 기록 정보 등이 정의될 수 있다. 예를 들어, 스트립트들은 서버 단말과 클라이언트 단말 사이의 인터랙션 테스트를 위한 서버측 스크립트 및 클라이언트측 스크립트를 포함할 수 있다. 스트립트들은 제1 클라이언트 단말과 제2 클라이언트 단말 사이의 인터랙션 테스트를 위한 제1 클라이언트측 스크립트 및 제2 클라이언트측 스크립트를 포함할 수 있다. 스트립트들은 서버 단말과 복수의 클라이언트 단말들 사이의 1: N 인터랙션 테스트를 위한 복수의 스크립트들을 포함할 수 있다.The test management server 100 receives, from the developer terminal 300, a test request including at least one test application and scripts in which an interaction execution operation through the test application is defined (S130). Each script may include execution actions written for an interaction test between terminals, and an execution environment of the test application, test items of the test application, test procedures, information recorded during execution, information recorded during error, etc. may be defined. . For example, the scripts may include a server-side script and a client-side script for testing an interaction between the server terminal and the client terminal. The scripts may include a first client-side script and a second client-side script for testing an interaction between the first client terminal and the second client terminal. The scripts may include a plurality of scripts for a 1:N interaction test between a server terminal and a plurality of client terminals.

테스트 관리 서버(100)는 테스트 요청된 테스트 어플리케이션 및 스크립트들을 확인하고, 테스트 단말 풀에 등록된 단말 정보를 기초로, 테스트 어플리케이션 및 스크립트를 실행하여 테스트할 수 있는 단말 그룹을 선택한다(S140). 테스트 관리 서버(100)는 각 스크립트가 테스트하는 역할(예를 들면, 수신 단말, 발신 단말)에 따라 단말을 선택하고, 각 단말의 역할에 해당하는 스크립트를 제공할 수 있다.The test management server 100 checks the test applications and scripts requested to be tested, and selects a terminal group that can be tested by executing the test application and script based on terminal information registered in the test terminal pool (S140). The test management server 100 may select a terminal according to a role (eg, a receiving terminal, an outgoing terminal) to be tested by each script, and may provide a script corresponding to the role of each terminal.

테스트 관리 서버(100)는 선택된 단말 그룹으로 테스트 어플리케이션 및 스크립트들을 전송한다(S150). 테스트 관리 서버(100)는 단말 그룹에 속하는 테스트 단말의 역할에 맞춰 스크립트를 전송할 수 있다.The test management server 100 transmits the test application and scripts to the selected terminal group (S150). The test management server 100 may transmit the script according to the role of the test terminal belonging to the terminal group.

테스트 관리 서버(100)는 선택된 단말 그룹 중 적어도 일부의 테스트 단말들로 스크립트 실행 명령을 전송한다(S160). 예를 들면, 서버 단말과 복수의 클라이언트 단말들 간의 1: N 인터랙션 테스트인 경우, 테스트 관리 서버(100)는 클라이언트 단말들에게 순차적으로 스크립트 실행 명령을 전송할 수 있다. 또는 서버 단말과 클라이언트 단말의 인터랙션 테스트이거나, 클라이언트 단말과 클라이언트 단말의 인터랙션 테스트인 경우라면, 테스트 관리 서버(100)는 두 단말들로 스크립트 실행 명령을 전송할 수 있다.The test management server 100 transmits a script execution command to at least some test terminals of the selected terminal group (S160). For example, in the case of a 1:N interaction test between a server terminal and a plurality of client terminals, the test management server 100 may sequentially transmit a script execution command to the client terminals. Alternatively, in the case of an interaction test between a server terminal and a client terminal or an interaction test between a client terminal and a client terminal, the test management server 100 may transmit a script execution command to the two terminals.

테스트 관리 서버(100)는 선택된 단말 그룹으로부터 실행 결과들을 수신한다(S170).The test management server 100 receives execution results from the selected terminal group (S170).

테스트 관리 서버(100)는 실행 결과들을 포함하는 테스트 결과를 개발자 단말(300)에게 제공한다(S180). 테스트 관리 서버(100)는 테스트 결과를 테스트 요청에 대한 응답으로 제공할 수 있다.The test management server 100 provides test results including execution results to the developer terminal 300 (S180). The test management server 100 may provide the test result in response to the test request.

도 5는 한 실시예에 따른 테스트 단말이 어플리케이션 테스트하는 방법의 흐름도이다.5 is a flowchart of a method for a test terminal to test an application according to an embodiment.

도 5를 참고하면, 단말(200a)은 테스트 관리 프로그램을 설치하고, 자신의 단말 정보를 포함하는 테스트 단말 등록 요청을 테스트 관리 서버(100)로 전송한다(S210).Referring to FIG. 5 , the terminal 200a installs a test management program and transmits a test terminal registration request including its own terminal information to the test management server 100 ( S210 ).

단말(200a)은 테스트 관리 서버(100)로부터 테스트 어플리케이션 및 스크립트를 수신한다(S220). 스크립트는 단말들 사이의 인터랙션 테스트를 위해 작성된 실행 동작들을 포함할 수 있고, 테스트 어플리케이션의 실행 환경, 테스트 어플리케이션의 테스트 항목, 테스트 절차, 실행 시 기록 정보, 에러 시 기록 정보 등이 정의될 수 있다.The terminal 200a receives the test application and the script from the test management server 100 (S220). The script may include execution actions written for testing the interaction between terminals, and an execution environment of the test application, a test item of the test application, a test procedure, information recorded during execution, information recorded in case of an error, etc. may be defined.

단말(200a)은 테스트 관리 서버(100)로부터 스크립트 실행 명령을 수신한다(S230).The terminal 200a receives a script execution command from the test management server 100 (S230).

단말(200a)은 스크립트에 따라 테스트 어플리케이션을 동작시키고, 테스트 어플리케이션의 실행 결과들을 획득한다(S240). 테스트 어플리케이션의 동작 정보는 메모리에 프로그램 정보로 저장되고, 어플리케이션의 화면(UI)을 구성하는 컨트롤 및 컨트롤 속성을 포함할 수 있다. 따라서, 단말(200a)은 프로그램 정보로 확인한 UI 컨트롤 및 컨트롤 속성을 기초로, 테스트 어플리케이션의 테스트 성공/실패, 결과 텍스트 또는 실행 결과 컨트롤의 유무를 포함하는 실행 결과를 확인할 수 있다. 여기서, UI는 화면을 구성하는 컨트롤의 조합이고, 각 컨트롤은 고유의 이름과 고유 ID을 가지고 있어서, 실행된 컨트롤의 확인이 가능하다.The terminal 200a operates the test application according to the script, and obtains execution results of the test application (S240). The operation information of the test application is stored as program information in the memory, and may include controls and control properties constituting a screen (UI) of the application. Accordingly, the terminal 200a may check the execution result including the test success/failure of the test application, the result text, or the presence or absence of the execution result control, based on the UI control and control properties confirmed by the program information. Here, the UI is a combination of controls composing the screen, and each control has a unique name and unique ID, so that the executed control can be checked.

단말(200a)은 테스트 관리 서버(100)로 실행 결과들을 전송한다(S250).The terminal 200a transmits the execution results to the test management server 100 (S250).

단말(200a)은 스크립트에서 테스트 어플리케이션의 이름 또는 패키지 이름을 확인하고, 메모리에서 패키지 이름으로 실행된 프로그램 정보를 가지고 온다. 단말(200a)은 프로그램 정보에서 실행 결과를 확인할 컨트롤의 정보를 확인하고, 컨트롤 정보를 기초로 테스트 성공/실패를 확인할 수 있다. 컨트롤의 정보는 객체명(class name)과 객체 속성 중 컨트롤명(name property)을 포함할 수 있다. 단말(200a)은 테스트 어플리케이션의 테스트 성공/실패, 결과 텍스트 또는 실행 결과 컨트롤의 유무를 포함하는 실행 결과를 테스트 관리 서버(100)로 전송할 수 있다.The terminal 200a checks the name of the test application or the package name in the script, and brings information about the executed program as the package name from the memory. The terminal 200a may check information of a control for which an execution result is to be confirmed from program information, and may check test success/failure based on the control information. Control information may include an object name (class name) and a control name (name property) among object properties. The terminal 200a may transmit an execution result including test success/failure of the test application, result text, or the presence or absence of an execution result control to the test management server 100 .

예를 들어, 단말(200a)은, 테스트 기능이 텍스트 출력인 경우, 해당 컨트롤의 텍스트 속성을 확인하여 스크립트에서 입력된 결과와 매칭되는지 확인할 수 있다. 단말(200a)은 테스트 기능이 텍스트 출력이지만 가변적이고, 다른 컨트롤의 입력 값으로 사용되는 경우, 해당 값을 다른 컨트롤에 입력 및 버튼 클릭 등 다른 인터랙션 동작을 한 후, 실행 결과를 확인하여 예상 결과와 맞는지 확인할 수 있다. 단말(200a)은 테스트 기능이 특정 컨트롤 노출인 경우, 검색된 컨트롤 정보의 유무로 실행된 결과를 확인할 수 있다. For example, when the test function is text output, the terminal 200a may check the text property of the corresponding control to determine whether it matches the result input in the script. Although the test function is text output, the terminal 200a is variable, and when it is used as an input value for another control, input the corresponding value to another control and perform other interaction actions such as clicking a button, and then check the execution result to obtain the expected result and You can check if it is correct. When the test function is a specific control exposure, the terminal 200a may check the execution result in the presence or absence of the searched control information.

단말(200a)은, 테스트 기능이 제대로 동작하지 않거나 에러가 발생한 경우, 스크립트에 따라 테스트를 실패로 완료하거나, 다음 테스트 기능으로 넘어갈 수 있다. 예를 들어, 스크립트에 실패에 대한 처리가 없는 경우, 단말(200a)은, 테스트를 모두 실패로 완료할 수 있다. 단말(200a)은, 테스트 기능이 텍스트 출력이고, 스크립트의 결과와 실제 결과가 다른 경우, 화면에서 출력하는 에러 내용을 확인하여 이전 버튼을 클릭하여 해당 화면에 대한 테스트는 건너뛸 수 있다. 단말(200a)은, 입력해야 하는 값이 여러 개이고, 일부 입력 값에 대한 결과만 수신 가능한 경우, 성공 결과와 에러 내용을 모두 저장하고, 다음 테스트로 넘어갈 수 있다. 다음 테스트로 넘어 갈 수 없는 경우, 단말(200a)은, 성공한 값 중 한 개의 값을 다시 입력하여 기능을 실행한 후, 다음 테스트로 넘어가거나, 초기 화면으로 이동 후, 다음 화면 테스트를 진행할 수 있다. 단말(200a)은, 다음 화면 테스트를 진행할 수 없는 경우, 이후 테스트는 모두 실행 실패로 완료할 수 있다. 단말(200a)은, 실패에 대한 대응을 프로그램에서 지원하는 경우, 도움말을 호출하여 특정 컨트롤을 터치하거나 이전화면으로 넘어가는 화면 전환을 한 후, 다른 테스트를 이어갈 수 있다.When the test function does not operate properly or an error occurs, the terminal 200a may complete the test as a failure or move on to the next test function according to a script. For example, if there is no process for failure in the script, the terminal 200a may complete all tests as failures. When the test function is text output and the actual result is different from the script result, the terminal 200a checks the error content output on the screen and clicks the Previous button to skip the test on the corresponding screen. When there are several values to be input and only the results for some input values can be received, the terminal 200a may store both the success result and the error content and proceed to the next test. If it is not possible to move on to the next test, the terminal 200a re-enters one of the successful values to execute the function, then moves on to the next test or moves to the initial screen, and then proceeds with the next screen test. . When the terminal 200a cannot proceed with the next screen test, all subsequent tests may be completed as execution failure. When the program supports response to failure, the terminal 200a may call help, touch a specific control or change a screen to a previous screen, and then continue another test.

도 6은 한 실시예에 따른 테스트 관리 서버의 구성도이다.6 is a configuration diagram of a test management server according to an embodiment.

도 6을 참고하면, 테스트 관리 서버(100)는 컴퓨터 프로그램의 명령어들을 실행하는 프로세서(110), 메모리(120), 저장 장치(130), 통신 인터페이스(140)를 포함할 수 있고, 버스를 통해 연결될 수 있다. 컴퓨터 프로그램은 본 개시의 동작을 실행하도록 기술된 명령어들을 포함한다. 컴퓨터 프로그램은 비일시적-컴퓨터 판독가능 저장매체(non-transitory computer readable storage medium)에 저장될 수 있다.Referring to FIG. 6 , the test management server 100 may include a processor 110 that executes instructions of a computer program, a memory 120 , a storage device 130 , and a communication interface 140 , and via a bus can be connected A computer program includes instructions described to carry out the operations of the present disclosure. The computer program may be stored in a non-transitory computer readable storage medium.

프로세서(110)는 테스트 관리 서버(100)의 동작을 제어하는 장치로서, 컴퓨터 프로그램에 포함된 명령들을 처리하는 다양한 형태의 프로세서일 수 있고, 예를 들면, CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 등 일 수 있다. The processor 110 is a device for controlling the operation of the test management server 100 , and may be various types of processors that process instructions included in a computer program, for example, a CPU (Central Processing Unit), MPU (Micro). processor unit), microcontroller unit (MCU), graphic processing unit (GPU), or the like.

메모리(120)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(120)는 본 개시의 동작을 실행하도록 기술된 명령들이 프로세서(110)에 의해 처리되도록 해당 컴퓨터 프로그램을 저장 장치(130)로부터 로드할 수 있다. 메모리(120)는 예를 들면, ROM(read only memory), RAM(random access memory) 등 일 수 있다. 저장 장치(130)는 본 개시의 동작을 실행하는데 요구되는 각종 데이터, 컴퓨터 프로그램 등을 저장할 수 있다. 저장 장치(130)는 컴퓨터 프로그램을 비임시적으로 저장할 수 있다. 저장 장치(130)는 비휘발성 메모리로 구현될 수 있다. 등록된 테스트 단말들의 정보를 저장하는 테스트 단말 풀, 개발자 단말로부터 수신한 테스트 어플리케이션 및 스크립트, 그리고 테스트 단말들로부터 수신한 실행 결과들은 저장 장치(130)의 지정된 장소에 저장될 수 있다.The memory 120 stores various data, commands and/or information. The memory 120 may load a corresponding computer program from the storage device 130 so that the instructions described to execute the operations of the present disclosure are processed by the processor 110 . The memory 120 may be, for example, read only memory (ROM), random access memory (RAM), or the like. The storage device 130 may store various data, computer programs, etc. required to execute the operations of the present disclosure. The storage device 130 may non-temporarily store a computer program. The storage device 130 may be implemented as a non-volatile memory. The test terminal pool for storing information of the registered test terminals, the test application and script received from the developer terminal, and the execution results received from the test terminals may be stored in a designated place of the storage device 130 .

통신 인터페이스(140)는 유/무선 통신 모듈일 수 있다.The communication interface 140 may be a wired/wireless communication module.

본 개시의 동작을 실행하는 명령어들을 포함하는 컴퓨터 프로그램은 컴퓨팅 장치가 읽을 수 있는 매체에 저장되고, 컴퓨팅 장치가 읽을 수 있는 매체는 이동형 기록 매체이거나 고정식 기록 매체일 수 있다. 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 다른 컴퓨팅 장치에 설치되어 실행될 수 있다.A computer program including instructions for executing an operation of the present disclosure is stored in a medium readable by a computing device, and the medium readable by the computing device may be a removable recording medium or a fixed recording medium. The computer program may be transmitted to another computing device through a network, such as the Internet, and installed and executed in the other computing device.

프로세서(110)는 메모리(120)에 로드된 컴퓨터 프로그램의 명령어들을 실행하는데, 컴퓨터 프로그램은 본 개시의 동작을 실행하도록 기술된 명령어들을 포함한다.The processor 110 executes instructions of a computer program loaded into the memory 120 , which includes instructions described to execute the operations of the present disclosure.

프로세서(110)는 테스트 단말 등록 요청을 수신하고, 테스트 단말 등록 요청에 포함된 단말 정보를 확인하고, 테스트 단말들을 테스트 단말 풀에 등록할 수 있다. 프로세서(110)는 적어도 하나의 테스트 어플리케이션과, 테스트 어플리케이션을 통한 인터랙션 실행 동작이 정의된 스크립트들을 포함하는 테스트 요청을 수신하고, 테스트 요청된 테스트 어플리케이션 및 스크립트들을 확인한 후, 테스트 단말 풀에 등록된 단말 정보를 기초로, 테스트 어플리케이션 및 스크립트들을 실행하여 테스트할 수 있는 단말 그룹을 선택할 수 있다. 프로세서(110)는 선택된 단말 그룹으로 테스트 어플리케이션 및 스크립트들을 전송하고, 선택된 단말 그룹 중 적어도 일부의 테스트 단말들로 스크립트 실행 명령을 전송할 수 있다. 프로세서(110)는 선택된 단말 그룹으로부터 실행 결과들을 수신하고, 실행 결과들을 포함하는 테스트 결과를 테스트 요청한 개발자에게 제공할 수 있다.The processor 110 may receive the test terminal registration request, check terminal information included in the test terminal registration request, and register the test terminals in the test terminal pool. The processor 110 receives a test request including at least one test application and scripts in which an interaction execution operation through the test application is defined, checks the test-requested test application and scripts, and then a terminal registered in the test terminal pool Based on the information, it is possible to select a terminal group that can be tested by executing test applications and scripts. The processor 110 may transmit a test application and scripts to the selected terminal group and transmit a script execution command to at least some test terminals of the selected terminal group. The processor 110 may receive execution results from the selected terminal group and provide a test result including the execution results to the developer who requested the test.

테스트 관리 서버(100)에 설치되는 컴퓨터 프로그램은 다음과 같은 명령어들을 포함할 수 있고, 비일시적-컴퓨터 판독가능 저장매체(non-transitory computer readable storage medium)에 저장될 수 있다. The computer program installed in the test management server 100 may include the following instructions, and may be stored in a non-transitory computer readable storage medium.

컴퓨터 프로그램은 테스트 단말 등록 요청을 수신하는 명령어, 테스트 단말 등록 요청에 포함된 단말 정보를 확인하는 명령어, 테스트 단말들을 테스트 단말 풀에 등록하는 명령어를 포함할 수 있다. 컴퓨터 프로그램은 적어도 하나의 테스트 어플리케이션과, 테스트 어플리케이션을 통한 인터랙션 실행 동작이 정의된 스크립트들을 포함하는 테스트 요청을 수신하는 명령어, 테스트 요청된 테스트 어플리케이션 및 스크립트들을 확인하는 명령어, 테스트 단말 풀에 등록된 단말 정보를 기초로, 테스트 어플리케이션 및 스크립트들을 실행하여 테스트할 수 있는 단말 그룹을 선택하는 명령어, 선택된 단말 그룹으로 테스트 어플리케이션 및 스크립트들을 전송하는 명령어, 선택된 단말 그룹 중 적어도 일부의 테스트 단말들로 스크립트 실행 명령을 전송하는 명령어를 포함할 수 있다. 컴퓨터 프로그램은 선택된 단말 그룹으로부터 실행 결과들을 수신하는 명령어, 실행 결과들을 포함하는 테스트 결과를 테스트 요청한 개발자에게 제공하는 명령어를 포함할 수 있다.The computer program may include a command for receiving a test terminal registration request, a command for checking terminal information included in the test terminal registration request, and a command for registering test terminals in a test terminal pool. The computer program includes at least one test application, a command for receiving a test request including scripts in which an interaction execution operation through the test application is defined, a command for checking the requested test application and scripts, and a terminal registered in the test terminal pool Based on the information, a command to select a terminal group that can be tested by executing the test application and scripts, a command to transmit the test application and scripts to the selected terminal group, and a script execution command to at least some test terminals of the selected terminal group may include a command to transmit The computer program may include a command for receiving execution results from the selected terminal group and a command for providing a test result including the execution results to the developer who requested the test.

도 7은 한 실시예에 따른 테스트 단말의 구성도이다.7 is a configuration diagram of a test terminal according to an embodiment.

도 7을 참고하면, 테스트 단말(200) 역시, 컴퓨터 프로그램의 명령어들을 실행하는 프로세서(210), 메모리(220), 저장 장치(230), 통신 인터페이스(240), 그리고 디스플레이(250)를 포함할 수 있고, 버스를 통해 연결될 수 있다. 컴퓨터 프로그램은 본 개시의 동작을 실행하도록 기술된 명령어들을 포함하고, 테스트 관리 프로그램과 각종 테스트 어플리케이션 및 스크립트를 포함할 수 있다. 컴퓨터 프로그램은 비일시적-컴퓨터 판독가능 저장매체(non-transitory computer readable storage medium)에 저장될 수 있다. Referring to FIG. 7 , the test terminal 200 may also include a processor 210 for executing instructions of a computer program, a memory 220 , a storage device 230 , a communication interface 240 , and a display 250 . and may be connected via a bus. The computer program includes instructions described to execute the operations of the present disclosure, and may include a test management program and various test applications and scripts. The computer program may be stored in a non-transitory computer readable storage medium.

테스트 어플리케이션은 서비스 제공을 위해 동작하도록 기술된 명령어들을 포함한다. 테스트 어플리케이션은 테스트 관리 프로그램에 의해 제어될 수 있다.The test application includes instructions that are described to operate in order to provide a service. The test application may be controlled by the test management program.

테스트 관리 프로그램은 단말 정보를 수집하는 명령어, 그리고 단말 정보를 포함하는 테스트 단말 등록 요청을 테스트 관리 서버로 전송하는 명령어를 포함할 수 있다. 테스트 관리 프로그램은 테스트 어플리케이션 및 스크립트를 수신하고 테스트 어플리케이션을 설치하는 명령어, 스크립트 실행 명령을 수신하는 명령어, 스크립트에 따라 테스트 어플리케이션을 동작시키는 명령어, 그리고 테스트 어플리케이션의 실행 결과들을 획득하는 명령어, 그리고, 테스트 관리 서버로 실행 결과들을 전송하는 명령어를 포함할 수 있다.The test management program may include a command for collecting terminal information and a command for transmitting a test terminal registration request including the terminal information to the test management server. The test management program includes a command for receiving a test application and script and installing the test application, a command for receiving a script execution command, a command for operating the test application according to the script, a command for obtaining execution results of the test application, and a test It may include a command to transmit execution results to the management server.

구체적으로, 테스트 관리 프로그램은 테스트 관리 서버(100)에 의해 선택된 단말에 설치되고, 프로세서가 본 개시의 동작을 실행하도록 기술된 명령어들(instructions)을 포함한다. 테스트 관리 프로그램은 비일시적-컴퓨터 판독가능 저장매체(non-transitory computer readable storage medium)에 저장될 수 있다. 예를 들면, 도 2의 테스트 관리 프로그램(30)은 단말(200a)의 프로세서에 의해 실행되고, 스크립트에 따라 테스트 어플리케이션을 동작시키고, 테스트 어플리케이션의 실행 결과들을 획득한 후, 테스트 관리 서버(100)로 실행 결과들을 전송하는 명령어들을 포함한다. Specifically, the test management program is installed in the terminal selected by the test management server 100, and includes instructions described so that the processor executes the operation of the present disclosure. The test management program may be stored in a non-transitory computer readable storage medium. For example, the test management program 30 of FIG. 2 is executed by the processor of the terminal 200a, operates the test application according to the script, and after obtaining the execution results of the test application, the test management server 100 Contains instructions that send execution results to

프로세서에 의해 실행되는 테스트 관리 프로그램은 다음과 같이 동작할 수 있다.The test management program executed by the processor may operate as follows.

테스트 관리 프로그램은 테스트 어플리케이션에서, 스크립트에 명시된 위치의 버튼을 클릭하거나 입력창에 입력값을 입력한다. 이후, 테스트 관리 프로그램은 단말의 화면에 출력된 결과를 읽는다. The test management program clicks a button at the location specified in the script in the test application or enters an input value in the input window. Thereafter, the test management program reads the result output on the screen of the terminal.

구체적으로, 테스트 관리 프로그램은 스크립트에서 테스트 어플리케이션의 이름 또는 패키지 이름을 가지고 오고, 메모리에서 패키지 이름으로 실행된 프로그램 정보를 가지고 온다. 프로그램 정보는 프로세서가 테스트 어플리케이션을 실행하여 메모리에 존재하는 정보로서, UI 컨트롤 및 컨트롤 속성을 포함할 수 있다. Specifically, the test management program brings the name of the test application or package name from the script, and brings the executed program information as the package name from memory. The program information is information that exists in a memory when the processor executes a test application, and may include UI controls and control properties.

테스트 관리 프로그램은 프로그램 정보에서 실행 결과를 확인할 컨트롤의 정보를 가지고 온다. 컨트롤의 정보는 객체명(class name)과 객체 속성 중 컨트롤명(name property)을 포함할 수 있다. 테스트 관리 프로그램은 컨트롤명으로 컨트롤 정보를 가지고 올 수 있는 경우, 프로그램 정보에서 해당 이름으로 컨트롤 정보를 가지고 온다. 컨트롤의 속성은 이름을 나타내는 이름(name) 속성과 화면으로 출력되는 텍스트(text) 속성을 가지고 있다. 한편, 테스트 관리 프로그램은 객체명으로 컨트롤 정보를 가지고 올 수 없는 경우, 컨트롤의 객체명(class name)으로 컨트롤 목록을 모두 확인하고, 컨트롤 목록의 객체 속성 중 컨트롤명(name property)을 모두 확인하여 컨트롤 정보를 가지고 올 수 있다.The test management program brings the information of the control to check the execution result from the program information. Control information may include an object name (class name) and a control name (name property) among object properties. If the test management program can bring the control information by the control name, it brings the control information to the corresponding name from the program information. The properties of the control have a name property indicating the name and a text property to be displayed on the screen. On the other hand, if the test management program cannot bring control information by object name, it checks all the control lists by the class name of the control, and checks all the control names among the object properties of the control list. You can bring control information.

테스트 관리 프로그램은 컨트롤 정보를 기초로 테스트 성공/실패를 확인할 수 있다. 예를 들어, 테스트 관리 프로그램은, 테스트 기능이 텍스트 출력인 경우, 해당 컨트롤의 텍스트 속성을 확인하여 스크립트에서 입력된 결과와 매칭되는지 확인할 수 있다. 테스트 관리 프로그램은, 테스트 기능이 테스트 출력이지만 가변적이고, 다른 컨트롤의 입력 값으로 사용되는 경우, 해당 값을 다른 컨트롤에 입력 및 버튼 클릭 등 다른 인터랙션 동작을 한 후, 실행 결과를 확인하여 예상 결과와 맞는지 확인할 수 있다. 테스트 관리 프로그램은, 테스트 기능이 특정 컨트롤 노출인 경우, 검색된 컨트롤 정보의 유무로 실행된 결과를 확인할 수 있다.The test management program can check the test success/failure based on the control information. For example, if the test function is a text output, the test management program may check the text property of the corresponding control to see if it matches the result input in the script. In the test management program, if the test function is a test output but variable, and is used as an input value of another control, the value is input to another control and other interaction actions such as clicking a button are performed, then the execution result is checked and the expected result is You can check if it is correct. The test management program may check the execution result in the presence or absence of the retrieved control information when the test function is a specific control exposure.

테스트 기능이 제대로 동작하지 않거나 에러가 발생한 경우, 테스트 관리 프로그램은 스크립트에 따라 테스트를 실패로 완료하거나, 다음 테스트 기능으로 넘어갈 수 있다. 예를 들어, 스크립트에 실패에 대한 처리가 없는 경우, 테스트 관리 프로그램은 테스트를 모두 실패로 완료할 수 있다. 테스트 관리 프로그램은, 테스트 결과가 텍스트 출력이고, 스크립트의 결과와 실제 결과가 다른 경우, 화면에서 출력하는 에러 내용을 확인하여 이전 버튼을 클릭하여 해당 화면에 대한 테스트는 건너뛸 수 있다. 테스트 관리 프로그램은, 입력해야 하는 값이 여러 개이고, 일부 입력 값에 대한 결과만 수신 가능한 경우, 성공 결과와 에러 내용을 모두 저장하고, 다음 테스트로 넘어갈 수 있다. 다음 테스트로 넘어 갈 수 없는 경우, 테스트 관리 프로그램은, 성공한 값 중 한 개의 값을 다시 입력하여 기능을 실행한 후, 다음 테스트로 넘어가거나, 초기 화면으로 이동 후, 다음 화면 테스트를 진행할 수 있다. 테스트 관리 프로그램은, 다음 화면 테스트를 진행할 수 없는 경우, 이후 테스트는 모두 실행 실패로 완료할 수 있다. 테스트 관리 프로그램은 실패에 대한 대응을 프로그램에서 지원하는 경우, 도움말을 호출하여 특정 컨트롤을 터치하거나 이전화면으로 넘어가는 화면 전환을 한후, 다른 테스트를 이어갈 수 있다.If the test function does not work properly or an error occurs, the test management program may either complete the test as a failure or move on to the next test function according to the script. For example, if there is no handling for failure in the script, the test management program may complete the tests as all failures. In the test management program, if the test result is text output and the script result and the actual result are different, check the error content displayed on the screen and click the Previous button to skip the test on the screen. In the test management program, when there are several values to be input and only the results for some input values can be received, the test management program can store both the success result and the error content and move on to the next test. If it is impossible to move on to the next test, the test management program may execute a function by re-entering one of the successful values, then move on to the next test or move to the initial screen, and then proceed with the next screen test. If the test management program cannot proceed with the next screen test, all subsequent tests may be completed as execution failure. If the program supports the response to failure, the test management program can call help, touch a specific control or change the screen to the previous screen, and then continue other tests.

테스트 관리 프로그램은 테스트 어플리케이션의 테스트 성공/실패, 결과 텍스트 또는 실행 결과 컨트롤의 유무를 포함하는 실행 결과를 테스트 관리 서버(100)로 전송할 수 있다.The test management program may transmit an execution result including test success/failure of the test application, result text, or presence or absence of an execution result control to the test management server 100 .

또는, 테스트 관리 서버(100)가, 테스트 단말로부터 스크립트에 따라 실행된테스트 어플리케이션의 실행 결과를 읽어서, 테스트 어플리케이션의 성공/실패, 결과 텍스트 또는 실행 결과 컨트롤의 유무를 확인할 수 있다.Alternatively, the test management server 100 may read the execution result of the test application executed according to the script from the test terminal, and check the success/failure of the test application, the result text, or the presence or absence of an execution result control.

이와 같이, 실시예에 따르면, 어플리케이션의 인터랙션 기능을 어플리케이션과 별도의 스크립트로 자동 테스트할 수 있어서, 어플리케이션에 독립된 테스트 환경을 구축할 수 있고, 인터랙션 기능을 단말들에서 동시에 확인할 수 있으며, 어플리케이션의 기능이 추가되거나 변경되면, 스크립트를 변경해서 추가되거나 변경된 기능을 테스트할 수 있다.As described above, according to the embodiment, the interaction function of the application can be automatically tested with a script separate from the application, so that a test environment independent of the application can be built, the interaction function can be simultaneously checked on terminals, and the function of the application When this is added or changed, you can change the script to test the added or changed functionality.

실시예에 따르면, 단말 화면 정보를 실행 결과로 기록하기 때문에, 개발자는 단말에서의 실행 결과가 기록된 로그파일을 분석할 필요 없이, 단말 화면 정보가 기록된 실행 결과를 통해 직관적으로 테스트 결과를 확인할 수 있다.According to the embodiment, since the terminal screen information is recorded as the execution result, the developer can intuitively check the test result through the execution result in which the terminal screen information is recorded, without the need to analyze the log file in which the execution result is recorded in the terminal. can

실시예에 따르면, 개발자는 테스트 대상인 어플리케이션과, 어플리케이션의 인터랙션 실행 동작이 정의된 스크립트들을 테스트 관리 서버에 등록하면, 테스트 관리 서버에서 선택된 단말이 어플리케이션의 실행 동작이 정의된 스크립트를 실행한 결과를 테스트 관리 서버로부터 획득할 수 있다. 따라서, 실시예에 따르면, 개발자는 단말에 어플리케이션을 설치하고 테스트하는 테스트 환경을 구축할 필요 없고, 복잡한 테스트 과정을 거칠 필요 없이, 어플리케이션의 인터랙션 실행 동작이 정의된 스크립트들을 등록하는 간단한 절차만으로 어플리케이션을 테스트할 수 있다.According to an embodiment, when the developer registers the test target application and the scripts in which the interaction execution operation of the application is defined in the test management server, the terminal selected in the test management server executes the script in which the execution operation of the application is defined. It can be obtained from the management server. Therefore, according to the embodiment, the developer does not need to build a test environment to install and test the application in the terminal, and without the need to go through a complicated test process, the application can be implemented with only a simple procedure of registering the scripts in which the interaction execution operation of the application is defined. can be tested

이상에서 설명한 본 개시의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 개시의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다.The embodiments of the present disclosure described above are not implemented only through apparatus and methods, and may be implemented through a program for realizing a function corresponding to the configuration of the embodiment of the present disclosure or a recording medium in which the program is recorded.

이상에서 본 개시의 실시예에 대하여 상세하게 설명하였지만 본 개시의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 개시의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 개시의 권리범위에 속하는 것이다.Although the embodiment of the present disclosure has been described in detail above, the scope of the present disclosure is not limited thereto, and various modifications and improved forms of the present disclosure are also provided by those skilled in the art using the basic concept of the present disclosure as defined in the following claims. is within the scope of the right.

Claims (11)

테스트 관리 서버의 동작 방법으로서,
단말들의 단말 정보를 포함하는 테스트 단말 등록 요청을 수신하는 단계,
상기 단말들의 단말 정보를 테스트 단말 풀(pool)에 저장하는 단계,
적어도 하나의 테스트 어플리케이션과, 상기 테스트 어플리케이션을 통한 인터랙션 실행 동작이 정의된 스크립트들을 포함하는 테스트 요청을 수신하는 단계,
상기 테스트 단말 풀에 저장된 단말 정보를 기초로, 상기 스크립트들 각각에 따라 상기 테스트 어플리케이션을 실행할 수 있는 테스트 단말들을 단말 그룹으로 선택하는 단계,
상기 테스트 단말들로 상기 테스트 어플리케이션과, 상기 스크립트들 중 지정된 스크립트를 전송하는 단계, 그리고
상기 테스트 단말들로부터, 상기 테스트 어플리케이션을 전송된 스크립트에 따라 실행한 실행 결과들을 수신하는 단계
를 포함하는 동작 방법.
As a method of operating a test management server,
Receiving a test terminal registration request including terminal information of terminals;
storing the terminal information of the terminals in a test terminal pool;
Receiving a test request including at least one test application and scripts in which an interaction execution operation through the test application is defined;
selecting, as a terminal group, test terminals capable of executing the test application according to each of the scripts based on terminal information stored in the test terminal pool;
transmitting the test application and a specified one of the scripts to the test terminals; and
Receiving execution results of executing the test application according to the transmitted script from the test terminals
operation method comprising
제1항에서,
상기 테스트 단말들을 단말 그룹으로 선택하는 단계는
각 스크립트가 테스트하는 역할에 따라 상기 테스트 단말 풀에서, 상기 역할을 수행할 테스트 단말을 선택하는, 동작 방법.
In claim 1,
The step of selecting the test terminals as a terminal group is
An operation method of selecting a test terminal to perform the role from the test terminal pool according to a role tested by each script.
제2항에서,
상기 스크립트들 중 지정된 스크립트를 전송하는 단계는
각 테스트 단말로 역할에 해당하는 스크립트를 전송하는 동작 방법.
In claim 2,
The step of transmitting a specified script among the scripts is
The operation method of sending the script corresponding to the role to each test terminal.
제2항에서,
상기 스크립트들은 상기 테스트 어플리케이션의 통화 기능을 테스트하는 발신측 스크립트와 수신측 스크립트를 포함하고,
상기 발신측 스크립트는 발신자 역할을 수행하는 테스트 단말로 전송되고,
상기 수신측 스크립트는 수신자 역할을 수행하는 테스트 단말로 전송되는, 동작 방법.
In claim 2,
The scripts include a calling-side script and a receiving-side script for testing the call function of the test application,
The sender script is transmitted to a test terminal serving as a sender,
The receiving-side script is transmitted to a test terminal serving as a receiver, the operating method.
제1항에서,
상기 실행 결과를 수신하는 단계는
상기 테스트 단말들 중 적어도 일부의 테스트 단말들로 스크립트 실행 명령을 전송하고, 상기 스크립트 실행 명령을 수신한 테스트 단말들로부터, 상기 테스트 어플리케이션을 전송된 스크립트에 따라 실행한 실행 결과를 수신하는, 동작 방법.
In claim 1,
Receiving the execution result is
Transmitting a script execution command to at least some of the test terminals, and receiving an execution result of executing the test application according to the transmitted script from the test terminals receiving the script execution command .
제1항에서,
상기 테스트 단말 등록 요청은
테스트 관리 프로그램을 설치한 단말로부터 수신하는, 동작 방법.
In claim 1,
The test terminal registration request is
Receiving from a terminal in which the test management program is installed, an operating method.
제1항에서,
상기 단말 정보는
어플리케이션 테스트를 요구되는 소프트웨어 정보 및 하드웨어 정보를 포함하는, 동작 방법.
In claim 1,
The terminal information is
A method of operation, comprising software information and hardware information required for application testing.
제1항에서,
상기 스트립트들은
서버 단말과 클라이언트 단말 사이의 인터랙션 테스트를 위한 서버측 스크립트 및 클라이언트측 스크립트를 포함하거나,
제1 클라이언트 단말과 제2 클라이언트 단말 사이의 인터랙션 테스트를 위한 제1 클라이언트측 스크립트 및 제2 클라이언트측 스크립트를 포함하거나,
서버 단말과 복수의 클라이언트 단말들 사이의 1: N 인터랙션 테스트를 위한 복수의 스크립트들을 포함하는, 동작 방법.
In claim 1,
The scripts are
Includes a server-side script and a client-side script for testing the interaction between the server terminal and the client terminal, or
a first client-side script and a second client-side script for testing an interaction between the first client terminal and the second client terminal, or
A method of operation comprising a plurality of scripts for a 1:N interaction test between a server terminal and a plurality of client terminals.
제1항에서,
상기 실행 결과들을 포함하는 테스트 결과를 상기 테스트 요청에 대한 응답으로 제공하는 단계
를 더 포함하는 동작 방법.
In claim 1,
providing a test result including the execution results in response to the test request;
An operation method further comprising a.
단말의 동작 방법으로서,
테스트 관리 프로그램을 설치하고, 단말 정보를 포함하는 테스트 단말 등록 요청을 테스트 관리 서버로 전송하는 단계,
상기 테스트 관리 서버로부터 테스트 어플리케이션 및 스크립트를 수신하는 단계,
상기 스크립트에 따라 상기 테스트 어플리케이션을 동작시키고, 상기 테스트 어플리케이션의 실행 결과들을 획득하는 단계, 그리고
상기 테스트 관리 서버로 상기 실행 결과들을 전송하는 단계
를 포함하는, 동작 방법.
As a method of operating a terminal,
Installing a test management program and transmitting a test terminal registration request including terminal information to the test management server;
receiving test applications and scripts from the test management server;
operating the test application according to the script and obtaining execution results of the test application; and
transmitting the execution results to the test management server
Including, a method of operation.
제10항에서,
상기 실행 결과들을 획득하는 단계는
상기 스크립트에 따라 동작한 상기 테스트 어플리케이션의 동작 정보로부터 상기 어플리케이션의 화면을 구성하는 컨트롤의 정보를 확인하고, 상기 컨트롤의 정보를 기초로 상기 테스트 어플리케이션의 실행 결과들을 확인하는, 동작 방법.
In claim 10,
The step of obtaining the execution results is
An operation method of confirming information of a control constituting a screen of the application from operation information of the test application operated according to the script, and confirming execution results of the test application based on the information of the control.
KR1020200132849A 2020-10-14 2020-10-14 Method and system for application test KR20220049334A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200132849A KR20220049334A (en) 2020-10-14 2020-10-14 Method and system for application test

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200132849A KR20220049334A (en) 2020-10-14 2020-10-14 Method and system for application test

Publications (1)

Publication Number Publication Date
KR20220049334A true KR20220049334A (en) 2022-04-21

Family

ID=81437350

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200132849A KR20220049334A (en) 2020-10-14 2020-10-14 Method and system for application test

Country Status (1)

Country Link
KR (1) KR20220049334A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102620693B1 (en) * 2023-01-27 2024-01-04 쿠팡 주식회사 Electronic apparatus for providing configuration for application testing and method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102620693B1 (en) * 2023-01-27 2024-01-04 쿠팡 주식회사 Electronic apparatus for providing configuration for application testing and method thereof

Similar Documents

Publication Publication Date Title
CN108595329B (en) Application testing method and device and computer storage medium
US11467816B1 (en) Method and system of running an application
CN109344065B (en) Remote debugging method, debugging server and target machine
US20120284696A1 (en) Method, Apparatuses and a System for Compilation
CN106325847B (en) Method and device for acquiring application program function based on iOS platform
CN110013672B (en) Method, device, apparatus and computer-readable storage medium for automated testing of machine-run games
CN103634592A (en) Automatic test method and system for intelligent televisions
CN110119350B (en) Software development kit testing method, device and equipment and computer storage medium
US20150331784A1 (en) System and method for controlling test script execution by smartphone
CN113312064B (en) Method and device for installing and configuring physical machine and computer readable medium
CN113672441A (en) Method and device for testing intelligent equipment
KR102352265B1 (en) System and method for providing web application development platform
CN112231206A (en) Script editing method for application program test, computer readable storage medium and test platform
CN109032705B (en) Application program execution method and device, electronic equipment and readable storage medium
CN112911283B (en) Smart television testing method and device
KR20220049334A (en) Method and system for application test
JP2016071398A (en) Test execution device, test execution method, and computer program
CN110825370B (en) Mobile terminal application development method, device and system
CN112732265A (en) Data processing method and related device
JP7230951B2 (en) Mobile terminal, information processing system, control method, and program
CN115237481A (en) Method, device and equipment for driving external equipment and storage medium
CN116521251A (en) Service management method, device, computer equipment and storage medium
KR101418390B1 (en) system for remotely debugging an application programming and controlling method therefor
US20230308533A1 (en) Streaming method and system for mobile electronic device diagnostics
JP2016071397A (en) Test execution device, test execution method, and computer program