KR102303182B1 - Automated Test Network System and Automated Test Method - Google Patents

Automated Test Network System and Automated Test Method Download PDF

Info

Publication number
KR102303182B1
KR102303182B1 KR1020200017380A KR20200017380A KR102303182B1 KR 102303182 B1 KR102303182 B1 KR 102303182B1 KR 1020200017380 A KR1020200017380 A KR 1020200017380A KR 20200017380 A KR20200017380 A KR 20200017380A KR 102303182 B1 KR102303182 B1 KR 102303182B1
Authority
KR
South Korea
Prior art keywords
job
worker
scenario
information
machine
Prior art date
Application number
KR1020200017380A
Other languages
Korean (ko)
Other versions
KR20210103074A (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 KR1020200017380A priority Critical patent/KR102303182B1/en
Publication of KR20210103074A publication Critical patent/KR20210103074A/en
Application granted granted Critical
Publication of KR102303182B1 publication Critical patent/KR102303182B1/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/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/28
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

테스트 자동화 네트워크 시스템 및 테스트 자동화 방법이 제공된다. 상기 테스트 자동화 네트워크 시스템은 시나리오 정보를 입력받고, 상기 시나리오 정보에 기초한 유한 상태 기계(Finite State Machine, FSM) 시나리오를 생성하는 어플리케이션 서버로서, 상기 유한 상태 기계 시나리오는 적어도 하나의 스테이트(state)와, 상기 스테이트 간의 트랜지션과, 상기 스테이트에 임베딩되어 상기 트랜지션의 수행 조건으로 설정된 잡(job)을 포함하는 어플리케이션 서버, 상기 유한 상태 머신 시나리오를 수신하여 실행하는 머신 워커, 상기 시나리오 정보 및 상기 잡에 대응하는 잡 정보를 저장하고, 상기 시나리오 정보를 상기 어플리케이션 서버에 제공하고, 상기 잡 정보를 상기 머신 워커에 제공하는 데이터베이스, 상기 머신 워커로부터 상기 잡의 실행을 요청받고, 상기 잡을 처리하는 잡 워커 및 상기 잡 워커로부터 상기 잡에 대응하는 작업을 요청받아 응답하고, 외부 네트워크와 고립된 내부 네트워크를 포함한다.A test automation network system and test automation method are provided. The test automation network system is an application server that receives scenario information and generates a finite state machine (FSM) scenario based on the scenario information, wherein the finite state machine scenario includes at least one state; An application server including a transition between the states, a job embedded in the state and set as an execution condition of the transition, a machine worker receiving and executing the finite state machine scenario, the scenario information and corresponding to the job A database for storing job information, providing the scenario information to the application server, and providing the job information to the machine worker, a job worker requesting execution of the job from the machine worker, and processing the job, and the job It receives and responds to a request for a job corresponding to the job from a worker, and includes an external network and an isolated internal network.

Description

테스트 자동화 네트워크 시스템 및 테스트 자동화 방법{Automated Test Network System and Automated Test Method}Automated Test Network System and Automated Test Method

본 발명은 테스트 자동화 네트워크 시스템 및 테스트 자동화 방법에 관한 것이다. 구체적으로는, 유한 상태 기계(FSM; Finite State Machine)를 이용하여 자동으로 테스트를 수행하는 네트워크 시스템 및 방법에 관한 것이다.The present invention relates to a test automation network system and a test automation method. Specifically, it relates to a network system and method for automatically performing a test using a finite state machine (FSM).

HTTP(HyperText Transfer Protocol) 통신 입/출력을 제공하는 소프트웨어의 개발은 개발자의 단계별 작업 및 테스트를 통해서 이루어져 왔다. 즉, 개발하는 소프트웨어를 단계별로 모듈화 하고 모듈별로 테스트를 하여 결합하는 형식으로 소프트웨어가 개발되었다.The development of software that provides HTTP (HyperText Transfer Protocol) communication input/output has been accomplished through developer's step-by-step work and testing. In other words, software was developed in the form of modularizing the software to be developed step by step, testing each module and combining them.

이러한 개발 방식은 모듈의 결합에 따라 개별 모듈의 테스트에서 발견되지 않은 문제가 발생할 수 있어 완성된 소프트웨어의 최종 테스트 및 디버그(debug)가 필수적이고, 이에 따라 개별 모듈의 수정도 빈번하게 나타날 수 있다. 이에 따라서, 소프트웨어 개발의 비용 및 개발 기간이 늘어나고 불필요한 인적 리소스가 소모되는 불합리가 존재하였다. 따라서, 개발자가 손쉽게 소프트웨어를 제작하고 자동으로 테스트하여 디버그할 수 있는 시스템에 대한 니즈가 발생하고 있다.In this development method, problems that are not discovered in testing of individual modules may occur depending on the combination of modules, so final testing and debugging of the finished software is essential, and accordingly, modifications of individual modules may occur frequently. Accordingly, there is an irrationality in that the cost and development period of software development increase, and unnecessary human resources are consumed. Accordingly, there is a need for a system in which a developer can easily produce software and automatically test and debug the software.

본 발명이 해결하려는 과제는, 용이하게 HTTP 기반 소프트웨어를 테스트할 수 있는 테스트 자동화 네트워크 시스템을 제공하는 것이다.An object of the present invention is to provide a test automation network system that can easily test HTTP-based software.

본 발명이 해결하려는 다른 과제는, 용이하게 HTTP 기반 소프트웨어를 테스트할 수 있는 테스트 자동화 방법을 제공하는 것이다.Another problem to be solved by the present invention is to provide a test automation method that can easily test HTTP-based software.

본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다. The problems to be solved by the present invention are not limited to the above-mentioned problems, and other problems not mentioned will be clearly understood by those skilled in the art from the following description.

상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 테스트 자동화 네트워크 시스템은, 시나리오 정보를 입력받고, 상기 시나리오 정보에 기초한 유한 상태 기계(Finite State Machine, FSM) 시나리오를 생성하는 어플리케이션 서버로서, 상기 유한 상태 기계 시나리오는 적어도 하나의 스테이트(state)와, 상기 스테이트 간의 트랜지션과, 상기 스테이트에 임베딩되어 상기 트랜지션의 수행 조건으로 설정된 잡(job)을 포함하는 어플리케이션 서버, 상기 유한 상태 머신 시나리오를 수신하여 실행하는 머신 워커, 상기 시나리오 정보 및 상기 잡에 대응하는 잡 정보를 저장하고, 상기 시나리오 정보를 상기 어플리케이션 서버에 제공하고, 상기 잡 정보를 상기 머신 워커에 제공하는 데이터베이스, 상기 머신 워커로부터 상기 잡의 실행을 요청받고, 상기 잡을 처리하는 잡 워커 및 상기 잡 워커로부터 상기 잡에 대응하는 작업을 요청받아 응답하고, 외부 네트워크와 고립된 내부 네트워크를 포함한다.A test automation network system according to some embodiments of the present invention for solving the above problems is an application server that receives scenario information and generates a finite state machine (FSM) scenario based on the scenario information, wherein the A finite state machine scenario is an application server including at least one state, a transition between the states, and a job embedded in the state and set as a condition for performing the transition. a database for storing the executing machine worker, the scenario information and job information corresponding to the job, providing the scenario information to the application server, and providing the job information to the machine worker; It receives a request for execution, a job worker that processes the job, and receives and responds to a job corresponding to the job from the job worker, and includes an external network and an isolated internal network.

또한, 상기 잡은 API(Application Program Interface)를 요청하는 제1 잡과 웹페이지 URL(uniform resource locator)를 포함하는 제2 잡을 포함하고, 상기 잡 워커는 상기 제1 잡을 처리하는 제1 잡 워커와 상기 제2 잡을 처리하는 제2 잡 워커를 포함한다.In addition, the job includes a first job requesting an API (Application Program Interface) and a second job including a web page uniform resource locator (URL), wherein the job worker includes a first job worker for processing the first job and the and a second job worker for processing the second job.

또한, 상기 내부 네트워크는 내부 API 서버와 내부 웹 페이지를 포함하고, 상기 제1 잡 워커는 상기 제1 잡에 대응하여 상기 내부 API 서버에 상기 API를 요청하고, 상기 제2 잡 워커는 상기 제2 잡에 대응하여 상기 내부 웹 페이지에 상기 웹페이지 URL을 요청한다.In addition, the internal network includes an internal API server and an internal web page, the first job worker requests the API to the internal API server in response to the first job, and the second job worker is the second job worker The web page URL is requested from the internal web page in response to the job.

또한, 상기 외부 네트워크는 외부 API 서버와 외부 웹 페이지를 포함하고, 상기 제1 잡 워커는 상기 제1 잡에 대응하여 상기 외부 API 서버에 상기 API를 요청하고, 상기 제2 잡 워커는 상기 제2 잡에 대응하여 상기 외부 웹 페이지에 상기 웹페이지 URL을 요청한다.In addition, the external network includes an external API server and an external web page, the first job worker requests the API to the external API server in response to the first job, and the second job worker requests the API from the second job worker. The web page URL is requested from the external web page in response to the job.

또한, 상기 잡 워커와 상기 외부 네트워크를 연결하는 프록시 서버를 더 포함한다.In addition, it further includes a proxy server for connecting the job worker and the external network.

또한, 상기 외부 네트워크는 상기 어플리케이션 서버와 사용자를 연결해주는 웹 서버를 더 포함한다.In addition, the external network further includes a web server that connects the application server and the user.

또한, 상기 머신 워커로부터 로그를 수신하여 저장하고, 상기 로그는 상기 사용자에게 전송하는 로그 서버를 더 포함한다.The method further includes a log server that receives and stores a log from the machine worker and transmits the log to the user.

또한, 내부에 실행 스케쥴을 포함하고, 상기 실행 스케쥴에 따라 상기 어플리케이션 서버가 상기 유한 상태 기계 시나리오를 생성하게 지시하는 배치 시스템을 더 포함한다.The apparatus further includes a deployment system including an execution schedule therein, and instructing the application server to generate the finite state machine scenario according to the execution schedule.

또한, 상기 어플리케이션 서버가 상기 유한 상태 기계 시나리오를 생성하게 하고, 상기 어플리케이션 서버로부터 시나리오 결과를 수신하여 상기 유한 상태 기계 시나리오에 대응하는 서비스를 배포하는 배포 시스템을 더 포함한다.The method further includes a distribution system for causing the application server to generate the finite state machine scenario, and for receiving a scenario result from the application server and distributing a service corresponding to the finite state machine scenario.

또한, 상기 시나리오 정보는 다이어그램으로 편집된다.In addition, the scenario information is edited into a diagram.

상기 다른 과제를 해결하기위한 본 발명의 몇몇 실시예에 따른 테스트 자동화 방법은, 데이터베이스가 스테이트, 상기 스테이트 간의 트랜지션 및 상기 스테이트에 임베딩되어 상기 트랜지션의 수행 조건으로 설정된 잡을 포함하는 유한 상태 기계 시나리오에 대응하는 시나리오 정보를 수신하여 저장하고, 머신 워커가 상기 시나리오 정보에 따라 유한 상태 기계 시나리오를 실행하는 것을 포함하되, 상기 스테이트는 제1 스테이트 및 제2 스테이트를 포함하고, 상기 잡은 상기 제1 스테이트에 임베딩된 제1 잡을 포함하고, 상기 유한 상태 기계 시나리오를 실행하는 것은, 상기 제1 스테이트로 실행하고, 상기 제1 잡을 실행하고, 상기 제1 잡의 결과에 따라서 상기 제2 스테이트로 트랜지션하는 것을 포함하고, 상기 제1 잡을 실행하는 것은, 잡 워커가 외부 네트워크와 고립된 내부 네트워크에 제1 잡에 대응하는 요청을 전송하고, 상기 내부 네트워크가 상기 제1 잡에 대응하는 요청에 대해서 응답하는 것을 포함한다.A test automation method according to some embodiments of the present invention for solving the above other problem corresponds to a finite state machine scenario in which a database includes a state, a transition between the states, and a job embedded in the state and set as an execution condition of the transition receiving and storing scenario information, and a machine worker executing a finite state machine scenario according to the scenario information, wherein the state includes a first state and a second state, and the job is embedded in the first state and executing the finite state machine scenario includes executing to the first state, executing the first job, and transitioning to the second state according to a result of the first job; , executing the first job includes: a job worker sending a request corresponding to the first job to an internal network isolated from an external network, and the internal network responding to the request corresponding to the first job .

또한, 상기 시나리오 정보를 수신하는 것은, 상기 시나리오 정보가 다이어그램으로 편집되는 것을 포함하고, 상기 시나리오 정보가 다이어그램으로 편집되는 것은, 상기 스테이트에 대응하는 적어도 하나의 스테이트 다이어그램의 배치 정보가 저장되고, 상기 스테이트 다이어그램 사이에 상기 트랜지션에 대응하는 적어도 하나의 트랜지션 다이어그램의 배치 정보가 저장되고, 상기 스테이트 다이어그램에 상기 잡에 대응하는 잡 정보의 설정 정보가 저장되고, 상기 잡의 결과값에 따라 상기 트랜지션 중 어느 하나가 실행되는지에 대한 지정 정보가 저장되는 것을 포함한다.In addition, receiving the scenario information includes editing the scenario information into a diagram, and editing the scenario information into a diagram includes storing arrangement information of at least one state diagram corresponding to the state, and Arrangement information of at least one transition diagram corresponding to the transition is stored between state diagrams, and setting information of job information corresponding to the job is stored in the state diagram, and any one of the transitions according to the result value of the job is stored. and storing specific information as to whether one is executed.

또한, 상기 데이터베이스는 상기 잡 정보를 저장하고, 요청에 따라 제공한다.In addition, the database stores the job information and provides it according to a request.

또한, 상기 제1 잡은 API를 요청하는 잡이고, 상기 내부 네트워크는 내부 API 서버를 포함하고, 상기 잡 워커는 상기 내부 API 서버에 상기 API를 요청하는 제1 잡 워커를 포함한다.Also, the first job is a job that requests an API, the internal network includes an internal API server, and the job worker includes a first job worker that requests the API from the internal API server.

상기 제1 잡은 웹페이지 URL을 요청하는 잡이고, 상기 내부 네트워크는 내부 웹페이지를 포함하고, 상기 잡 워커는 상기 내부 웹페이지에 상기 웹페이지 URL을 요청하는 제2 잡 워커를 포함한다.The first job is a job that requests a webpage URL, the internal network includes an internal webpage, and the job worker includes a second job worker that requests the webpage URL from the internal webpage.

본 발명의 몇몇 실시예들에 따른 테스트 자동화 네트워크 시스템 및 테스트 자동화 방법은 다이어그램을 통해서 유한 상태 기계 시나리오를 편집하고 한번에 전체 시나리오를 테스트할 수 있어 소프트웨어 개발 과정에서 테스트에 소요되는 비용 및 개발 기간을 대폭 줄일 수 있다.The test automation network system and test automation method according to some embodiments of the present invention can edit a finite state machine scenario through a diagram and test the entire scenario at once, greatly reducing the cost and development period required for testing in the software development process. can be reduced

나아가, 본 발명의 몇몇 실시예들에 따른 테스트 자동화 네트워크 시스템 및 테스트 자동화 방법은 테스트에 따른 디버깅을 용이하게 할 수 있다.Furthermore, the test automation network system and test automation method according to some embodiments of the present invention may facilitate debugging according to the test.

상술한 내용과 더불어 본 발명의 구체적인 효과는 이하 발명을 실시하기 위한 구체적인 사항을 설명하면서 함께 기술한다.The specific effects of the present invention in addition to the above will be described together while describing specific details for carrying out the invention below.

도 1은 본 발명의 몇몇 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명하기 위한 블록도이다.
도 2는 도 1의 테스트 자동화 시스템의 구조를 세부적으로 설명하기 위한 개념도이다.
도 3은 도 1의 네트워크 시스템의 구조를 세부적으로 설명하기 위한 개념도이다.
도 4 및 도 5는 본 발명의 몇몇 실시예들에 따른 테스트 자동화 방법을 설명하기 위한 시퀀스 다이어그램이다.
도 6은 본 발명의 일 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명하기 위한 블록도이다.
도 7은 본 발명의 다른 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명하기 위한 블록도이다.
도 8은 본 발명의 또 다른 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명하기 위한 블록도이다.
도 9 내지 도 13은 본 발명의 몇몇 실시예들에 따른 테스트 자동화 방법의 시나리오 정보의 편집을 설명하기 위한 도면들이다.
도 14 내지 도 19는 본 발명의 몇몇 실시예들에 따른 테스트 자동화 방법의 시나리오 정보의 디버깅을 설명하기 위한 도면들이다.
1 is a block diagram illustrating a test automation network system according to some embodiments of the present invention.
FIG. 2 is a conceptual diagram for explaining in detail the structure of the test automation system of FIG. 1 .
FIG. 3 is a conceptual diagram for explaining in detail the structure of the network system of FIG. 1 .
4 and 5 are sequence diagrams for explaining a test automation method according to some embodiments of the present invention.
6 is a block diagram illustrating a test automation network system according to an embodiment of the present invention.
7 is a block diagram illustrating a test automation network system according to other embodiments of the present invention.
8 is a block diagram illustrating a test automation network system according to another embodiment of the present invention.
9 to 13 are diagrams for explaining editing of scenario information in a test automation method according to some embodiments of the present invention.
14 to 19 are diagrams for explaining debugging of scenario information of a test automation method according to some embodiments of the present invention.

본 명세서 및 특허청구범위에서 사용된 용어나 단어는 일반적이거나 사전적인 의미로 한정하여 해석되어서는 아니된다. 발명자가 그 자신의 발명을 최선의 방법으로 설명하기 위해 용어나 단어의 개념을 정의할 수 있다는 원칙에 따라, 본 발명의 기술적 사상과 부합하는 의미와 개념으로 해석되어야 한다. 또한, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명이 실현되는 하나의 실시예에 불과하고, 본 발명의 기술적 사상을 전부 대변하는 것이 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 및 응용 가능한 예들이 있을 수 있음을 이해하여야 한다.The terms or words used in this specification and claims should not be construed as being limited to a general or dictionary meaning. In accordance with the principle that the inventor can define a term or concept of a word in order to best describe his invention, it should be interpreted as meaning and concept consistent with the technical idea of the present invention. In addition, the embodiments described in the present specification and the configurations shown in the drawings are only one embodiment in which the present invention is realized, and do not represent all the technical spirit of the present invention, so they can be substituted at the time of the present application. It should be understood that there may be various equivalents and modifications and applicable examples.

본 명세서 및 특허청구범위에서 사용된 제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. '및/또는' 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, A, B, etc. used in this specification and claims may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component. The term 'and/or' includes a combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에서, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When a component is referred to as being “connected” or “connected” to another component, it is understood that the other component may be directly connected or connected to the other component, but other components may exist in between. it should be On the other hand, when it is said that a certain element is "directly connected" or "directly connected" to another element, it should be understood that no other element is present in the middle.

본 명세서 및 특허청구범위에서 사용된 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서 "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in this specification and claims are used only to describe specific embodiments, and are not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. It should be understood that terms such as “comprise” or “have” in the present application do not preclude the possibility of addition or existence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification in advance. .

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해서 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs.

일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not

또한, 본 발명의 각 실시예에 포함된 각 구성, 과정, 공정 또는 방법 등은 기술적으로 상호 간 모순되지 않는 범위 내에서 공유될 수 있다. In addition, each configuration, process, process, or method included in each embodiment of the present invention may be shared within a range that does not technically contradict each other.

이하에서, 도 1 내지 도 5를 참조하여, 본 발명의 몇몇 실시예에 따른 테스트 자동화 시스템 및 방법에 대해서 설명한다.Hereinafter, a test automation system and method according to some embodiments of the present invention will be described with reference to FIGS. 1 to 5 .

도 1은 본 발명의 몇몇 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명하기 위한 블록도이고, 도 2는 도 1의 테스트 자동화 시스템의 구조를 세부적으로 설명하기 위한 개념도이다. 도 3은 도 1의 네트워크 시스템의 구조를 세부적으로 설명하기 위한 개념도이다. 도 4 및 도 5는 본 발명의 몇몇 실시예들에 따른 테스트 자동화 방법을 설명하기 위한 예시적인 시퀀스 다이어그램이다. 도 5는 도 4의 시퀀스 다이어그램에 연결된 하부 시퀀스 다이어그램이다.1 is a block diagram for explaining a test automation network system according to some embodiments of the present invention, and FIG. 2 is a conceptual diagram for explaining the structure of the test automation system of FIG. 1 in detail. FIG. 3 is a conceptual diagram for explaining in detail the structure of the network system of FIG. 1 . 4 and 5 are exemplary sequence diagrams for explaining a test automation method according to some embodiments of the present invention. Fig. 5 is a lower sequence diagram connected to the sequence diagram of Fig. 4;

도 1을 참조하면, 본 발명의 몇몇 실시예들에 따른 테스트 자동화 네트워크 시스템은 테스트 자동화 시스템(100), 내부 네트워크(200), 외부 네트워크(300) 및 프록시 서버(400)를 포함한다.Referring to FIG. 1 , a test automation network system according to some embodiments of the present invention includes a test automation system 100 , an internal network 200 , an external network 300 , and a proxy server 400 .

테스트 자동화 시스템(100)은 외부 네트워크(300)로부터 시나리오 정보를 입력받을 수 있다. 시나리오 정보는 유한 상태 기계(Finite State Machine, FSM)에 기반한 시나리오에 대한 정보일 수 있다. 상기 시나리오 정보는 HTTP(HyperText Transfer Protocol) 통신 입/출력을 제공하는 소프트웨어의 실행에 대한 시나리오 정보일 수 있다. The test automation system 100 may receive scenario information from the external network 300 . The scenario information may be information about a scenario based on a finite state machine (FSM). The scenario information may be scenario information about execution of software providing HTTP (HyperText Transfer Protocol) communication input/output.

테스트 자동화 시스템(100)은 상기 시나리오 정보에 따라 소프트웨어의 테스트를 자동으로 수행할 수 있다. 테스트 자동화 시스템(100)은 내부 네트워크(200)에 요청을 주고 응답을 받아 테스트를 수행할 수 있다. 또한, 테스트 자동화 시스템(100)은 외부 네트워크(300)에 요청을 주고 응답을 받아 테스트를 수행할 수도 있다. 테스트 자동화 시스템(100)은 외부 네트워크(300)에 접속할 때 프록시 서버(400)를 거쳐 접속할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.The test automation system 100 may automatically perform a software test according to the scenario information. The test automation system 100 may perform a test by sending a request to the internal network 200 and receiving a response. In addition, the test automation system 100 may send a request to the external network 300 and perform a test by receiving a response. The test automation system 100 may be accessed through the proxy server 400 when accessing the external network 300 . However, the present embodiment is not limited thereto.

내부 네트워크(200)는 외부 네트워크(300)로부터 고립된 네트워크일 수 있다. 내부 네트워크(200)는 테스트 자동화 시스템(100)과 서로 연결될 수 있다. 내부 네트워크(200)는 테스트 자동화 시스템(100)으로부터 요청을 수신하고, 상기 요청에 대한 응답을 테스트 자동화 시스템(100)에 제공할 수 있다.The internal network 200 may be a network isolated from the external network 300 . The internal network 200 may be connected to the test automation system 100 . The internal network 200 may receive a request from the test automation system 100 and provide a response to the request to the test automation system 100 .

외부 네트워크(300)는 일반적인 인터넷 망을 포함하는 네트워크일 수 있다. 외부 네트워크(300)는 내부 네트워크(200)와는 연결되지 않을 수 있다. 외부 네트워크(300)는 원칙적으로 테스트 자동화 시스템(100)과도 분리될 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.The external network 300 may be a network including a general Internet network. The external network 300 may not be connected to the internal network 200 . The external network 300 may in principle be separated from the test automation system 100 as well. However, the present embodiment is not limited thereto.

외부 네트워크(300)는 프록시 서버(400)를 통해서 테스트 자동화 시스템(100)과 접속될 수 있다. 또는 외부 네트워크(300)는 테스트 자동화 시스템(100)과 제한적인 방식으로 연결될 수 있다.The external network 300 may be connected to the test automation system 100 through the proxy server 400 . Alternatively, the external network 300 may be connected to the test automation system 100 in a limited manner.

외부 네트워크(300)는 테스트 자동화 시스템(100)에 편집된 시나리오 정보를 전달할 수 있다. 테스트 자동화 시스템(100)은 외부 네트워크(300)에서 수신한 시나리오 정보를 저장할 수 있다. 또한, 테스트 자동화 시스템(100)은 상기 시나리오 정보에 대응하는 유한 상태 기계 시나리오를 생성하여 실행할 수 있다. 테스트 자동화 시스템(100)은 유한 상태 기계 시나리오의 실행에 따라 외부 네트워크(300)에 요청을 전송하고 그에 대한 응답을 수신할 수 있다. 이때, 테스트 자동화 시스템(100)은 프록시 서버(400)를 통해서 외부 네트워크(300)와 접속할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.The external network 300 may deliver the edited scenario information to the test automation system 100 . The test automation system 100 may store scenario information received from the external network 300 . Also, the test automation system 100 may generate and execute a finite state machine scenario corresponding to the scenario information. The test automation system 100 may send a request to the external network 300 and receive a response thereto according to the execution of the finite state machine scenario. In this case, the test automation system 100 may connect to the external network 300 through the proxy server 400 . However, the present embodiment is not limited thereto.

프록시 서버(400)는 테스트 자동화 시스템(100)과 외부 네트워크(300) 사이를 간접적으로 접속시켜 주는 서버일 수 있다. 이를 통해서, 본 실시예들에 따른 테스트 자동화 네트워크 시스템은 외부 네트워크(300)와 테스트 자동화 시스템(100)의 망 분리를 도모할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다. 즉, 망 분리가 필요없는 경우에는 프록시 서버(400)가 생략되고 테스트 자동화 시스템(100)과 외부 네트워크(300)가 서로 직접 접속할 수도 있다.The proxy server 400 may be a server that indirectly connects between the test automation system 100 and the external network 300 . Through this, the test automation network system according to the present embodiments may promote network separation between the external network 300 and the test automation system 100 . However, the present embodiment is not limited thereto. That is, when network separation is not required, the proxy server 400 may be omitted and the test automation system 100 and the external network 300 may be directly connected to each other.

도 1 및 도 2를 참조하면, 테스트 자동화 시스템(100)은 어플리케이션 서버(110), 머신 워커(120), 제1 잡 워커(130), 제2 잡 워커(140), 데이터베이스(160) 및 로그 서버(150)를 포함할 수 있다.1 and 2 , the test automation system 100 includes an application server 110 , a machine worker 120 , a first job worker 130 , a second job worker 140 , a database 160 and a log. It may include a server 150 .

어플리케이션 서버(110)는 외부 네트워크(300)로부터 시나리오 정보를 수신할 수 있다. 어플리케이션 서버(110)는 상기 시나리오 정보를 데이터베이스(160)에 저장할 수 있다. 어플리케이션 서버(110)는 데이터베이스(160)로부터 다시 상기 시나리오 정보를 불러올 수 있다. 어플리케이션 서버(110)는 상기 시나리오 정보에 대응하는 유한 상태 기계 시나리오를 생성할 수 있다. 어플리케이션 서버(110)는 머신 워커(120)로 유한 상태 기계 시나리오를 전송할 수 있다. The application server 110 may receive scenario information from the external network 300 . The application server 110 may store the scenario information in the database 160 . The application server 110 may retrieve the scenario information from the database 160 again. The application server 110 may generate a finite state machine scenario corresponding to the scenario information. The application server 110 may transmit the finite state machine scenario to the machine worker 120 .

상기 유한 상태 기계 시나리오는 스테이트(state), 트랜지션(transition) 및 잡(job)을 포함할 수 있다. 상기 스테이트는 유한한 상태를 의미하고, 상기 트랜지션은 스테이트 사이의 이동을 의미할 수 있다. 상기 잡은 상기 스테이트에서 수행되어 상기 트랜지션의 수행 조건이될 수 있다. 이에 대해서는 추후에 더 자세히 설명한다.The finite state machine scenario may include a state, a transition, and a job. The state may mean a finite state, and the transition may mean movement between states. The job may be performed in the state to be a condition for performing the transition. This will be described in more detail later.

머신 워커(120)는 어플리케이션 서버(110)로부터 상기 유한 상태 기계 시나리오를 수신할 수 있다. 머신 워커(120)는 상기 유한 상태 기계 시나리오를 실행할 수 있다. 머신 워커(120)는 상기 잡에 대한 잡 정보를 데이터베이스(160)로부터 수신할 수 있다. 머신 워커(120)는 상기 유한 상태 기계 시나리오에 포함된 잡의 실행을 제1 잡 워커(130) 및 제2 잡 워커(140)에 요청할 수 있다. 머신 워커(120)는 상기 유한 상태 기계 시나리오의 실행에 대한 로그(log)를 로그 서버(150)로 전송할 수 있다.The machine worker 120 may receive the finite state machine scenario from the application server 110 . The machine worker 120 may execute the finite state machine scenario. The machine worker 120 may receive job information about the job from the database 160 . The machine worker 120 may request the first job worker 130 and the second job worker 140 to execute a job included in the finite state machine scenario. The machine worker 120 may transmit a log of the execution of the finite state machine scenario to the log server 150 .

상기 잡은 제1 잡 및 제2 잡을 포함할 수 있다. 제1 잡은 HTTP API(Application Program Interface)를 요청하는 잡일 수 있다. 제2 잡은 웹페이지 URL(Uniform Resource Locator)을 요청하는 잡일 수 있다. 상기 제1 잡 및 상기 제2 잡은 상기 잡의 일부 예시에 불과하고, 상기 잡은 상기 제1 잡 및 제2 잡 외에도 다양한 잡을 포함할 수 있다.The job may include a first job and a second job. The first job may be a job that requests an HTTP API (Application Program Interface). The second job may be a job that requests a web page Uniform Resource Locator (URL). The first job and the second job are only some examples of the job, and the job may include various jobs in addition to the first job and the second job.

제1 잡 워커(130)는 상기 제1 잡을 실행할 수 있다. 즉, 제1 잡 워커는 API를 내부 네트워크(200) 또는 외부 네트워크(300)에 요청할 수 있다. 제1 잡 워커(130)는 요청한 API에 대한 응답을 받아 머신 워커로 전송할 수 있다. 제1 잡 워커(130)가 내부 네트워크(200)에 요청을 전송하고, 응답을 받는 경우에는 직접적으로 내부 네트워크(200)와 접속할 수 있다. 다만, 제1 잡 워커(130)가 외부 네트워크(300)에 요청을 전송하고, 응답을 받는 경우에는 프록시 서버(400)를 통해 외부 네트워크(300)와 간접적으로 접속할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다. 제1 잡 워커(130)는 예를 들어 HTTP API일 수 있다.The first job worker 130 may execute the first job. That is, the first job worker may request the API to the internal network 200 or the external network 300 . The first job worker 130 may receive a response to the requested API and transmit it to the machine worker. When the first job worker 130 transmits a request to the internal network 200 and receives a response, it may directly connect to the internal network 200 . However, when the first job worker 130 transmits a request to the external network 300 and receives a response, the first job worker 130 may indirectly connect to the external network 300 through the proxy server 400 . However, the present embodiment is not limited thereto. The first job worker 130 may be, for example, an HTTP API.

제2 잡 워커(140)는 상기 제2 잡을 실행할 수 있다. 즉, 제2 잡 워커는 웹페이지 URL을 내부 네트워크(200) 또는 외부 네트워크(300)에 요청할 수 있다. 제2 잡 워커(140)는 요청한 웹페이지 URL에 대한 응답을 받아 머신 워커로 전송할 수 있다. 즉, 제2 잡 워커(140)가 웹페이지에 접속하고 사전에 정의된 사용자동작(클릭, 텍스트입력, 폼전송 등)을 수행하여 그 결과를 머신 워커로 반환할 수 있다. 제2 잡 워커(140)가 내부 네트워크(200)에 요청을 전송하고, 응답을 받는 경우에는 직접적으로 내부 네트워크(200)와 접속할 수 있다. 다만, 제2 잡 워커(140)가 외부 네트워크(300)에 요청을 전송하고, 응답을 받는 경우에는 프록시 서버(400)를 통해 외부 네트워크(300)와 간접적으로 접속할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다. 제2 잡 워커(140)는 예를 들어 웹 클라이언트일 수 있다.The second job worker 140 may execute the second job. That is, the second job worker may request the webpage URL from the internal network 200 or the external network 300 . The second job worker 140 may receive a response to the requested web page URL and transmit it to the machine worker. That is, the second job worker 140 may access the web page, perform a predefined user action (click, text input, form transmission, etc.), and return the result to the machine worker. When the second job worker 140 transmits a request to the internal network 200 and receives a response, it may directly connect to the internal network 200 . However, when the second job worker 140 transmits a request to the external network 300 and receives a response, the second job worker 140 may indirectly connect to the external network 300 through the proxy server 400 . However, the present embodiment is not limited thereto. The second job worker 140 may be, for example, a web client.

로그 서버(150)는 머신 워커(120)가 수행하는 상기 유한 상태 기계 시나리오의 실행에 따른 로그를 저장할 수 있다. 로그 서버(150)는 상기 로그를 사용자에게 제공할 수 있다. 즉, 로그 서버(150)는 외부 네트워크(300)를 통해서 로그를 제공할 수 있다. 이때, 상기 로그는 머신 워커(120) 및 어플리케이션 서버(110)를 통해서 외부 네트워크(300)로 제공될 수도 있고, 어플리케이션 서버(110)를 통해서 외부 네트워크(300)로 제공될 수도 있다. 또는 로그 서버(150)에서 직접 외부 네트워크(300)로 제공될 수도 있다.The log server 150 may store a log according to the execution of the finite state machine scenario performed by the machine worker 120 . The log server 150 may provide the log to the user. That is, the log server 150 may provide the log through the external network 300 . In this case, the log may be provided to the external network 300 through the machine worker 120 and the application server 110 , or may be provided to the external network 300 through the application server 110 . Alternatively, the log server 150 may be directly provided to the external network 300 .

데이터베이스(160)는 어플리케이션 서버(110)로부터 시나리오 정보를 수신할 수 있다. 데이터베이스(160)는 수신한 상기 시나리오 정보를 저장할 수 있다. 데이터베이스(160)는 어플리케이션 서버(110)가 요청할 때 저장된 시나리오 정보를 제공할 수 있다.The database 160 may receive scenario information from the application server 110 . The database 160 may store the received scenario information. The database 160 may provide the stored scenario information when the application server 110 requests it.

데이터베이스(160)는 상기 잡 정보를 저장할 수 있다. 데이터베이스(160)는 상기 잡 정보를 머신 워커(120)가 요청할 때 제공할 수 있다. 데이터베이스(160)는 상기 잡 정보를 미리 저장하고 있을 수 있다.The database 160 may store the job information. The database 160 may provide the job information when the machine worker 120 requests it. The database 160 may store the job information in advance.

도 3을 참조하면, 내부 네트워크(200)는 내부 API 서버(210) 및 내부 웹 페이지(220)를 포함할 수 있다.Referring to FIG. 3 , the internal network 200 may include an internal API server 210 and an internal web page 220 .

내부 API 서버(210)는 제1 잡 워커(130)로부터 API를 요청받을 수 있다. 내부 API 서버(210)는 제1 잡 워커(130)에게 요청받은 API를 응답할 수 있다. 내부 웹 페이지(220)는 제2 잡 워커(140)로부터 웹 페이지 URL을 요청받을 수 있다. 내부 웹 페이지(220)는 제2 잡 워커(140)에게 요청받은 웹페이지 URL을 응답할 수 있다.The internal API server 210 may receive an API request from the first job worker 130 . The internal API server 210 may respond to the API requested by the first job worker 130 . The internal web page 220 may receive a web page URL request from the second job worker 140 . The internal web page 220 may respond to the web page URL requested by the second job worker 140 .

외부 네트워크(300)는 외부 웹 페이지(310), 외부 API 서버(320), 웹 서버(330) 및 사용자 장치(340)를 포함할 수 있다.The external network 300 may include an external web page 310 , an external API server 320 , a web server 330 , and a user device 340 .

외부 API 서버(320)는 제1 잡 워커(130)로부터 API를 요청받을 수 있다. 외부 API 서버(320)는 제1 잡 워커(130)에게 요청받은 API를 응답할 수 있다. 외부 웹 페이지(310)는 제2 잡 워커(140)로부터 웹 페이지 URL을 요청받을 수 있다. 외부 웹 페이지(310)는 제2 잡 워커(140)에게 요청받은 웹페이지 URL을 응답할 수 있다.The external API server 320 may receive an API request from the first job worker 130 . The external API server 320 may respond to the API requested by the first job worker 130 . The external web page 310 may receive a web page URL request from the second job worker 140 . The external web page 310 may respond to the web page URL requested by the second job worker 140 .

제1 잡 워커(130) 및 제2 잡 워커(140)는 각각 직접 내부 API 서버(210) 및 내부 웹 페이지(220)와 접속하여 상기 잡을 수행할 수 있다. 반면에, 제1 잡 워커(130) 및 제2 잡 워커(140)는 외부 네트워크(300)와 접속하는 경우 프록시 서버(400)를 통해서 각각 외부 API 서버(320) 및 외부 웹 페이지(310)와 접속하여 상기 잡을 수행할 수 있다.The first job worker 130 and the second job worker 140 may directly connect to the internal API server 210 and the internal web page 220, respectively, to perform the job. On the other hand, the first job worker 130 and the second job worker 140 are connected to the external API server 320 and the external web page 310 through the proxy server 400, respectively, when connecting to the external network 300 . You can connect and perform the above job.

사용자 장치(340)는 시나리오 정보를 편집할 수 있다. 사용자 장치(340)는 사용자에 의해서 구동되어 시나리오 정보를 편집할 수 있다. 사용자 장치(340)가 편집한 시나리오 정보는 웹 서버(330)를 통해서 테스트 자동화 시스템(100)으로 전송될 수 있다. 구체적으로, 상기 시나리오 정보는 웹 서버(330)를 통해서 어플리케이션 서버(110)로 전송될 수 있다. 사용자 장치(340)는 예를 들어, 컴퓨터, 노트북, 넷북, PDA, MP4 플레이어와 같은 각종 통신 단말기, 또는 스마트폰, 스마트 노트, 태블릿 PC, 스마트카메라, 스마트 TV와 같은 각종 스마트 기기 중 어느 하나일 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.The user device 340 may edit the scenario information. The user device 340 may be driven by a user to edit scenario information. Scenario information edited by the user device 340 may be transmitted to the test automation system 100 through the web server 330 . Specifically, the scenario information may be transmitted to the application server 110 through the web server 330 . The user device 340 is, for example, any one of various communication terminals such as a computer, a notebook computer, a netbook, a PDA, an MP4 player, or various smart devices such as a smart phone, a smart note, a tablet PC, a smart camera, and a smart TV. can However, the present embodiment is not limited thereto.

웹 서버(330)는 사용자 장치(340)가 편집한 시나리오 정보를 수신하여 테스트 자동화 시스템(100)의 어플리케이션 서버(110)로 전송할 수 있다. 상기 시나리오 정보는 어플리케이션 서버(110)를 거쳐 데이터베이스(160)에 저장될 수 있다.The web server 330 may receive the scenario information edited by the user device 340 and transmit it to the application server 110 of the test automation system 100 . The scenario information may be stored in the database 160 via the application server 110 .

이하, 도 1 내지 도 5를 참조하여, 본 발명의 몇몇 실시예들에 따른 테스트 자동화 방법을 설명한다. Hereinafter, a test automation method according to some embodiments of the present invention will be described with reference to FIGS. 1 to 5 .

도 3 내지 도 5를 참조하면, 사용자 장치(340)는 어플리케이션 서버(110)에 시나리오를 실행해달라고 요청한다<1>. 이에 따라서, 어플리케이션 서버(110)는 데이터베이스(160)에 저장된 여러 시나리오 정보 중 어느 하나를 선택할 수 있다<2>. 이때, 데이터베이스(160)에 저장된 시나리오 정보는 사용자 장치(340)에 의해서 미리 편집되어서 저장된 시나리오 정보일 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다. 선택된 시나리오 정보는 어플리케이션 서버(110)로 로드될 수 있다.3 to 5 , the user device 340 requests the application server 110 to execute a scenario <1>. Accordingly, the application server 110 may select any one of various scenario information stored in the database 160 <2>. In this case, the scenario information stored in the database 160 may be scenario information previously edited and stored by the user device 340 . However, the present embodiment is not limited thereto. The selected scenario information may be loaded into the application server 110 .

이어서, 어플리케이션 서버(110)는 선택된 시나리오 정보에 대해서 실행을 데이터베이스(160)에 지시한다<3>. 이에 대해서 데이터베이스(160)는 실행 ID(Run ID)를 부여하여 어플리케이션 서버(110)에 회신할 수 있다<4>.Then, the application server 110 instructs the database 160 to execute the selected scenario information <3>. In this regard, the database 160 may provide a Run ID and reply to the application server 110 <4>.

이어서, 어플리케이션 서버(110)는 상기 시나리오 정보에 대응하는 유한 상태 기계 시나리오를 생성한다<5>. 이때, 생성된 유한 상태 기계 시나리오는 적어도 하나의 스테이트와 상기 스테이스 사이의 트랜지션과, 상기 스테이트에 임베딩된 잡을 포함할 수 있다.Then, the application server 110 generates a finite state machine scenario corresponding to the scenario information <5>. In this case, the generated finite state machine scenario may include at least one state, a transition between the states, and a job embedded in the state.

어플리케이션 서버(110)는 사용자 장치(340)로 실행 시작의 로그를 푸시(push)할 수 있다<6>. 이때, 상기 실행 시작의 로그는 어플리케이션 서버(110)에서 생성되어 사용자 장치(340)로 바로 푸시될 수도 있고, 로그 서버(150)로 저장되었다가 로그 서버(150)에 의해서 사용자 장치(340)로 전송될 수도 있다. 로그 서버(150)가 상기 실행 시작의 로그를 푸시하는 것은 바로 웹 서버(330)를 통해서 사용자 장치(340)로 푸시하거나, 머신 워커 및/또는 어플리케이션 서버를 통해서 푸시하는 것을 포함할 수 있다.The application server 110 may push the log of the execution start to the user device 340 <6>. At this time, the log of the start of execution may be generated by the application server 110 and directly pushed to the user device 340 , or stored in the log server 150 and then transferred to the user device 340 by the log server 150 . may be transmitted. Pushing the log of the execution start by the log server 150 may include pushing directly to the user device 340 through the web server 330 or pushing through a machine worker and/or an application server.

어플리케이션 서버(110)는 머신 워커(120)에 유한 상태 기계 시나리오의 실행을 요청한다<7>. 이러한 요청은 상기 로그 푸시<6>와 동시에 수행될 수 있다. 이때, 상기 "동시"는 시간적 및 순서적으로 유사한 시점을 포함할 수 있다. 즉, 작업 <6> 및 <7>은 작업 <5>와 작업 <8> 사이에 이루어질 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.The application server 110 requests the machine worker 120 to execute a finite state machine scenario <7>. This request may be performed simultaneously with the log push <6>. In this case, the "simultaneous" may include similar time points in time and order. That is, operations <6> and <7> may be performed between operations <5> and <8>. However, the present embodiment is not limited thereto.

이어서, 머신 워커(120)는 유한 상태 기계 시나리오를 초기 스테이트로 실행한다<8>. 이때, 초기 스테이트는 상기 유한 상태 기계 시나리오가 처음 시작될 때 수행될 수 있도록 미리 지정될 수 있다. 이어서, 초기 스테이트에 임베딩된 잡을 수행하여 트랜지션이 수행될 수 있다. 이에 따라 사용자 장치(340)로 트랜지션에 대한 로그가 푸시될 수 있다<9>.Then, the machine worker 120 executes the finite state machine scenario as the initial state <8>. In this case, the initial state may be preset to be executed when the finite state machine scenario is first started. Subsequently, a transition may be performed by performing a job embedded in the initial state. Accordingly, the log for the transition may be pushed to the user device 340 <9>.

상기 트랜지션에 따라 머신 워커(120)는 상기 유한 상태 기계 시나리오의 새로운 스테이트로 진입할 수 있다<10>. 이에 따라 사용자 장치(340)로 스테이트 진입에 대한 로그가 푸시될 수 있다<11>.According to the transition, the machine worker 120 may enter a new state of the finite state machine scenario <10>. Accordingly, a log for state entry may be pushed to the user device 340 <11>.

머신 워커(120)는 데이터베이스(160)에게 스테이트에 임베딩된 잡 정보를 요청할 수 있다<12>. 데이터베이스(160)는 머신 워커(120)의 요청에 응답하여 잡 정보를 회신할 수 있다<13>. 이에 따라 사용자 장치(340)로 잡의 수행이 시작되었다는 로그가 푸시될 수 있다<14>. 작업 <14>와 동시에 머신 워커(120)는 제1 잡 워커(130)에 잡을 수행할 것을 요청할 수 있다<15>. 이때, 작업 <15>는 현재 스테이트에 임베딩된 잡이 API를 요청하는 제1 잡인 경우를 예시로 들은 것이고, 본 실시예가 이에 제한되는 것은 아니다. 즉, 현재 스테이트에 임베딩된 잡이 API를 요청하는 제1 잡이 아닌 경우, 머신 워커(120)는 다른 방식으로 잡을 수행할 수 있다.The machine worker 120 may request job information embedded in the state from the database 160 <12>. The database 160 may return job information in response to the request of the machine worker 120 <13>. Accordingly, a log indicating that job execution has started may be pushed to the user device 340 <14>. Simultaneously with the job <14>, the machine worker 120 may request the first job worker 130 to perform the job <15>. In this case, task <15> exemplifies the case in which the job embedded in the current state is the first job requesting the API, and the present embodiment is not limited thereto. That is, when the job embedded in the current state is not the first job that requests the API, the machine worker 120 may perform the job in a different way.

제1 잡 워커(130)는 내부 API 서버(210)에 HTTP API를 요청할 수 있다<16>. 이에 대하여, 내부 API 서버(210)는 제1 잡 워커(130)에 HTTP API를 회신할 수 있다<17>. 제1 잡 워커(130)는 수신한 결과를 머신 워커(120)로 전송할 수 있다. 머신 워커(120)는 이를 통해 잡을 종료할 수 있다. 이에 따라 사용자 장치(340)로 잡의 종료에 대한 로그가 푸시될 수 있다<19>. 이어서, 머신 워커(120)는 잡의 결과를 테스트할 수 있다<20>. 머신 워커(120)는 상기 잡의 결과에 따라서 어떤 동작을 할지 결정할 수 있다. 이때, "동작"이란 트랜지션 및 시나리오 종료 등을 포함할 수 있다. 이에 따라 사용자 장치(340)로 잡의 결과에 따른 동작에 대한 로그가 푸시될 수 있다<21>.The first job worker 130 may request an HTTP API from the internal API server 210 <16>. In contrast, the internal API server 210 may return the HTTP API to the first job worker 130<17>. The first job worker 130 may transmit the received result to the machine worker 120 . The machine worker 120 may terminate the job through this. Accordingly, a log of job termination may be pushed to the user device 340 <19>. Then, the machine worker 120 may test the result of the job<20>. The machine worker 120 may determine which operation to perform according to the result of the job. In this case, the term “operation” may include transition and scenario termination. Accordingly, the log of the operation according to the job result may be pushed to the user device 340 <21>.

이어서, 머신 워커(120)는 상기 동작으로 트랜지션을 할 수 있다<22>. 물론, 이는 하나의 예시에 불과하고, 상기 동작으로 시나리오 종료도 가능할 수 있다. 이에 따라 사용자 장치(340)로 트랜지션에 대한 로그가 푸시될 수 있다<23>.Then, the machine worker 120 may make a transition to the above operation <22>. Of course, this is only an example, and it is possible to end a scenario with the above operation. Accordingly, the log for the transition may be pushed to the user device 340 <23>.

상기 트랜지션에 따라 머신 워커(120)는 상기 유한 상태 기계 시나리오의 새로운 스테이트로 진입할 수 있다<24>. 이에 따라 사용자 장치(340)로 스테이트 진입에 대한 로그가 푸시될 수 있다<25>.According to the transition, the machine worker 120 may enter a new state of the finite state machine scenario <24>. Accordingly, a log for state entry may be pushed to the user device 340 <25>.

머신 워커(120)는 데이터베이스(160)에게 스테이트에 임베딩된 잡 정보를 요청할 수 있다<26>. 데이터베이스(160)는 머신 워커(120)의 요청에 응답하여 잡 정보를 회신할 수 있다<27>. 이에 따라 사용자 장치(340)로 잡의 수행이 시작되었다는 로그가 푸시될 수 있다<28>. 작업 <28>과 동시에 머신 워커(120)는 제2 잡 워커(140)에 잡을 수행할 것을 요청할 수 있다<29>. 이때, 작업 <29>는 현재 스테이트에 임베딩된 잡이 웹 페이지 URL을 요청하는 제2 잡인 경우를 예시로 들은 것이고, 본 실시예가 이에 제한되는 것은 아니다. 즉, 현재 스테이트에 임베딩된 잡이 웹 페이지 URL을 요청하는 제2 잡이 아닌 경우, 머신 워커(120)는 다른 방식으로 잡을 수행할 수 있다.The machine worker 120 may request job information embedded in the state from the database 160 <26>. The database 160 may return job information in response to the request of the machine worker 120 <27>. Accordingly, a log indicating that job execution has started may be pushed to the user device 340 <28>. Simultaneously with the job <28>, the machine worker 120 may request the second job worker 140 to perform the job<29>. In this case, the job <29> exemplifies the case in which the job embedded in the current state is a second job requesting a web page URL, and the present embodiment is not limited thereto. That is, when the job embedded in the current state is not the second job requesting the web page URL, the machine worker 120 may perform the job in a different way.

제2 잡 워커(140)는 헤드리스 브라우저(Headless browser)를 실행할 수 있다<30>. 제2 잡 워커(140)는 헤드리스 브라우저를 통해 웹페이지URL에 접속하고 사전에 정의된 스크립트에 의해 사용자동작(클릭, 텍스트입력, 폼전송 등) 을 수행하여 그 결과를 머신 워커로 반환할 수 있다. 헤드리스 브라우저는 그래픽 사용자 인터페이스가 없는 브라우저일 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다. 즉, 제2 잡 워커(140)가 헤드리스 브라우저가 아닌 일반 브라우저를 실행할 수도 있다.The second job worker 140 may execute a headless browser <30>. The second job worker 140 accesses the web page URL through the headless browser, performs user actions (click, text input, form transfer, etc.) by a predefined script, and returns the result to the machine worker. have. A headless browser may be a browser without a graphical user interface. However, the present embodiment is not limited thereto. That is, the second job worker 140 may execute a general browser instead of the headless browser.

제2 잡 워커(140)는 내부 웹 페이지(220)에 URL을 로드하고, 스크립트를 실행할 수 있다<31>. 이에 대하여, 내부 웹 페이지(220)는 제2 잡 워커(140)에 리스폰스를 회신할 수 있다<32>. 이 때, 제2 잡 워커(140)는 웹 페이지에 접속하고 사전에 정의된 사용자동작(클릭, 텍스트입력, 폼 전송 등)을 수행하여 그 결과를 반환할 수 있다. 제2 잡 워커(140)는 결과를 머신 워커(120)로 전송할 수 있다. 머신 워커(120)는 이를 통해 잡을 종료할 수 있다. 이에 따라 사용자 장치(340)로 잡의 종료에 대한 로그가 푸시될 수 있다<34>. 이에 따라서, 유한 상태 기계 시나리오가 종료될 수 있다.The second job worker 140 may load a URL into the internal web page 220 and execute a script <31>. In contrast, the internal web page 220 may return a response to the second job worker 140 <32>. In this case, the second job worker 140 may access a web page, perform a predefined user action (click, text input, form transmission, etc.) and return the result. The second job worker 140 may transmit the result to the machine worker 120 . The machine worker 120 may terminate the job through this. Accordingly, a log of job termination may be pushed to the user device 340 <34>. Accordingly, the finite state machine scenario may end.

이에 따라, 머신 워커(120)는 종료된 결과를 어플리케이션 서버(110)로 전송할 수 있다<35>. 이에 따라 사용자 장치(340)로 유한 상태 기계 시나리오의 종료에 대한 로그가 푸시될 수 있다<36>.Accordingly, the machine worker 120 may transmit the finished result to the application server 110 <35>. Accordingly, a log of the end of the finite state machine scenario may be pushed to the user device 340 <36>.

본 실시예에 따른 테스트 자동화 방법 및 테스트 자동화 네트워크 시스템은 기존의 단계별 소프트웨어 테스트와 달리 한번에 소프트웨어의 전체적인 수행을 자동으로 테스트할 수 있다. 따라서, 기존에 소프트웨어 개발에 걸리던 시간을 대폭 줄일 수 있고, 디버그를 용이하게 수행할 수 있다.The test automation method and test automation network system according to the present embodiment can automatically test the overall performance of software at once, unlike the existing step-by-step software test. Accordingly, it is possible to significantly reduce the time required for software development and to easily perform debugging.

나아가, 기존의 단계별 테스트에서 문제가 없더라도 전체적인 테스트에서 문제가 발생할 수 있는 상황을 미리 방지할 수 있어 소프트웨어 개발에 투자되는 비용과 시간을 최소화할 수 있다.Furthermore, even if there is no problem in the existing step-by-step test, a situation in which a problem may occur in the overall test can be prevented in advance, thereby minimizing the cost and time invested in software development.

이하, 도 6을 참조하여 본 발명의 몇몇 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명한다.Hereinafter, a test automation network system according to some embodiments of the present invention will be described with reference to FIG. 6 .

도 6은 본 발명의 일 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명하기 위한 블록도이다.6 is a block diagram illustrating a test automation network system according to an embodiment of the present invention.

도 6을 참조하면, 본 발명의 일 실시예에 따른 테스트 자동화 네트워크 시스템의 테스트 자동화 시스템(100)은 배치(Batch) 시스템(170)을 더 포함할 수 있다.Referring to FIG. 6 , the test automation system 100 of the test automation network system according to an embodiment of the present invention may further include a batch system 170 .

배치 시스템(170)은 내부에 스케쥴을 저장할 수 있다. 배치 시스템(170)은 내부에 저장된 스케쥴에 따라서 어플리케이션 서버(110)가 유한 상태 기계 시나리오를 생성하도록 지시할 수 있다. 이때, 유한 상태 기계 시나리오는 데이터베이스(160)에 식별되는 ID를 가지고 저장되어 있을 수 있다. 이에 따라서, 배치 시스템(170)은 특정 ID를 가지는 유한 상태 기계 시나리오를 어떤 스케쥴로 실행시킬지를 내장하고 있다가 상기 스케쥴에 맞추어 어플리케이션 서버(110)에 유한 상태 기계 시나리오의 실행을 지시할 수 있다.Batch system 170 may store schedules therein. The deployment system 170 may instruct the application server 110 to generate a finite state machine scenario according to a schedule stored therein. In this case, the finite state machine scenario may be stored with an ID identified in the database 160 . Accordingly, the deployment system 170 may store a schedule for executing the finite state machine scenario having a specific ID, and instruct the application server 110 to execute the finite state machine scenario according to the schedule.

예를 들어, 카드의 매입과 정산과 같이 정기적으로 수행되어야하는 유한 상태 기계 시나리오의 경우 매일 또는 주 1회와 같이 정기적인 스케쥴에 따라서 테스트가 수행될 수 있다.For example, in the case of a finite state machine scenario that needs to be performed regularly, such as purchase and settlement of cards, the test may be performed according to a regular schedule, such as daily or once a week.

본 실시예는 이에 따라서, 테스트를 원하는 사용자가 일일이 시점에 따른 테스트를 지시하지 않더라도 자동으로 소프트웨어를 테스트할 수 있어 테스트의 용이성이 크게 향상될 수 있다.Accordingly, in the present embodiment, the software can be automatically tested even if the user who wants the test does not individually instruct the test according to the time point, so that the ease of testing can be greatly improved.

이하, 도 7을 참조하여 본 발명의 몇몇 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명한다.Hereinafter, a test automation network system according to some embodiments of the present invention will be described with reference to FIG. 7 .

도 7은 본 발명의 다른 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명하기 위한 블록도이다.7 is a block diagram illustrating a test automation network system according to other embodiments of the present invention.

도 7을 참조하면, 본 발명의 다른 실시예들에 따른 테스트 자동화 네트워크 시스템은 배포 시스템(500)을 더 포함할 수 있다.Referring to FIG. 7 , the test automation network system according to other embodiments of the present invention may further include a distribution system 500 .

배포 시스템(500)은 개발이 완료된 소프트웨어를 실제 외부 네트워크(300)에 배포하는 시스템일 수 있다. 배포 시스템(500)은 소프트웨어의 배포 전에 테스트 자동화 시스템(100)을 통해서 소프트웨어의 테스트를 완료하고 배포할 수 있다.The distribution system 500 may be a system for distributing developed software to the actual external network 300 . The distribution system 500 may complete testing of the software through the test automation system 100 before distribution of the software and distribute the software.

구체적으로, 배포 시스템(500)은 테스트 자동화 시스템(100)의 어플리케이션 서버(110)와 접속할 수 있다. 배포 시스템(500)은 배포하려는 소프트웨어에 대응하는 유한 상태 기계 시나리오의 ID가 무엇인지 미리 저장할 수 있다. 배포 시스템(500)은 테스트 자동화 시스템(100)의 어플리케이션 서버(110)에 배포하려는 소프트웨어에 대응하는 유한 상태 기계 시나리오의 ID를 전달하고, 그 유한 상태 기계 시나리오의 실행을 지시할 수 있다.Specifically, the distribution system 500 may be connected to the application server 110 of the test automation system 100 . The distribution system 500 may store in advance what the ID of the finite state machine scenario corresponding to the software to be distributed is. The distribution system 500 may transmit the ID of the finite state machine scenario corresponding to the software to be distributed to the application server 110 of the test automation system 100 and instruct the execution of the finite state machine scenario.

어플리케이션 서버(110)는 배포 시스템(500)으로부터 전달받은 유한 상태 기계 시나리오의 ID의 유한 상태 기계 시나리오를 생성하고 머신 워커(120)에게 상기 유한 상태 기계 시나리오를 실행하게 할 수 있다.The application server 110 may generate a finite state machine scenario of the ID of the finite state machine scenario received from the distribution system 500 and cause the machine worker 120 to execute the finite state machine scenario.

어플리케이션 서버(110)는 실행된 유한 상태 기계 시나리오의 결과값을 도출하여 배포 시스템(500)으로 전송할 수 있다. 배포 시스템(500)은 상기 유한 상태 기계 시나리오의 결과값을 통해서 배포하려는 소프트웨어의 정상 동작 여부를 확인할 수 있다. 배포 시스템(500)은, 만일 배포하려는 소프트웨어가 정상적으로 동작한다고 판단하는 경우 배포를 수행하고, 만일 배포하려는 소프트웨어가 비정상적으로 동작한다고 판단하는 경우 배포를 수행하지 않을 수 있다.The application server 110 may derive a result value of the executed finite state machine scenario and transmit it to the distribution system 500 . The distribution system 500 may check whether the software to be distributed operates normally through the result value of the finite state machine scenario. The distribution system 500 may perform distribution if it is determined that the software to be distributed operates normally, and may not perform distribution if it is determined that the software to be distributed operates abnormally.

본 실시예는 배포되기 전의 소프트웨어의 정상 동작 여부를 자동으로 체크할 수 있다. 따라서, 배포된 후의 소프트웨어의 문제가 발생하는 것을 방지할 수 있고, 소프트웨어의 안정적인 동작을 보장할 수 있다.According to the present embodiment, it is possible to automatically check whether the software before distribution is operating normally. Accordingly, it is possible to prevent problems of software after distribution and to ensure stable operation of the software.

이하, 도 8을 참조하여 본 발명의 몇몇 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명한다.Hereinafter, a test automation network system according to some embodiments of the present invention will be described with reference to FIG. 8 .

도 8은 본 발명의 또 다른 실시예들에 따른 테스트 자동화 네트워크 시스템을 설명하기 위한 블록도이다.8 is a block diagram illustrating a test automation network system according to another embodiment of the present invention.

도 8을 참조하면, 본 발명의 또 다른 실시예들에 따른 테스트 자동화 네트워크 시스템은 배치 시스템(170) 및 배포 시스템(500)을 더 포함할 수 있다.Referring to FIG. 8 , a test automation network system according to another embodiment of the present invention may further include a deployment system 170 and a distribution system 500 .

배치 시스템(170)은 내부에 저장된 스케쥴에 따라서 어플리케이션 서버(110)가 유한 상태 기계 시나리오를 생성하도록 지시할 수 있다. 또한, 배포 시스템(500)은 테스트 자동화 시스템(100)의 어플리케이션 서버(110)에 배포하려는 소프트웨어에 대응하는 유한 상태 기계 시나리오의 ID를 전달하고, 그 유한 상태 기계 시나리오의 실행을 지시할 수 있다.The deployment system 170 may instruct the application server 110 to generate a finite state machine scenario according to a schedule stored therein. In addition, the distribution system 500 may transmit the ID of the finite state machine scenario corresponding to the software to be distributed to the application server 110 of the test automation system 100 and instruct execution of the finite state machine scenario.

이에 따라서, 어플리케이션 서버(110)는 배포 시스템(500) 및 배치 시스템(170)이 지시하는 시점에 따라서 자동으로 유한 상태 기계 시나리오의 테스트를 수행할 수 있다. 이에 따라서, 본 실시예는 테스트의 적절한 실행시점을 자동으로 결정하여 테스트를 수행할 수 있다.Accordingly, the application server 110 may automatically perform the test of the finite state machine scenario according to the timing indicated by the distribution system 500 and the deployment system 170 . Accordingly, the present embodiment can perform the test by automatically determining an appropriate execution time of the test.

이하, 도 3 내지 도 5 및 도 9 내지 도 19를 참조하여, 본 발명의 몇몇 실시예들에 따른 테스트 자동화 방법의 시나리오 정보 편집을 설명한다.Hereinafter, scenario information editing of a test automation method according to some embodiments of the present invention will be described with reference to FIGS. 3 to 5 and 9 to 19 .

도 9 내지 도 13은 본 발명의 몇몇 실시예들에 따른 테스트 자동화 방법의 시나리오 정보의 편집을 설명하기 위한 도면들이고, 도 14 내지 도 19는 본 발명의 몇몇 실시예들에 따른 테스트 자동화 방법의 시나리오 정보의 디버깅을 설명하기 위한 도면들이다.9 to 13 are diagrams for explaining editing of scenario information of a test automation method according to some embodiments of the present invention, and FIGS. 14 to 19 are scenarios of a test automation method according to some embodiments of the present invention. These are drawings for explaining debugging of information.

상기 시나리오 정보의 편집은 사용자 장치(340)를 통해서 수행될 수 있다. 사용자는 사용자 장치(340)를 통해서 용이하게 다이어그램으로 상기 시나리오 정보를 편집할 수 있다.The editing of the scenario information may be performed through the user device 340 . A user can easily edit the scenario information in a diagram through the user device 340 .

도 9는 시나리오 정보 편집 화면을 나타낼 수 있다. 시나리오 정보 편집 화면은 그래프 영역(Rg) 및 상태 관리 영역(Rm)을 포함할 수 있다. 9 may show a screen for editing scenario information. The scenario information editing screen may include a graph area Rg and a state management area Rm.

그래프 영역(Rg)은 다이어그램으로 스테이트 및 트랜지션이 도시되는 영역일 수 있다. 도 9에서는 예시적으로 제1 스테이트 다이어그램(S1)이 표시될 수 있다. 시나리오 정보에서는 스테이트 간의 상대적인 관계가 중요하므로 제1 스테이트 다이어그램(S1)은 편집이 용이하게 사용자가 드래그 앤드 드롭 등의 방식으로 자유롭게 배치할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다. 그래프 영역(Rg)에 배치되는 다이어그램 정보는 사용자 장치(340)에 저장될 수 있다. The graph area Rg may be an area in which states and transitions are shown in a diagram. In FIG. 9 , a first state diagram S1 may be displayed by way of example. Since the relative relationship between states is important in scenario information, the first state diagram S1 can be easily edited by a user and freely arranged by a method such as drag and drop. However, the present embodiment is not limited thereto. Diagram information arranged in the graph area Rg may be stored in the user device 340 .

상태 관리 영역(Rm)은 상기 스테이트의 이름, 설명, 초기 상태 지정 여부 액션 등을 설정할 수 있는 인터페이스 영역일 수 있다. 이때, 상기 액션은 상기 스테이트 진입시 수행할 동작을 의미할 수 있다.The state management area Rm may be an interface area in which the name, description, and action of whether to designate an initial state and the like of the state can be set. In this case, the action may mean an action to be performed when entering the state.

도 9 및 도 10을 참조하면, 시나리오 정보는 적어도 하나의 스테이트와 트랜지션으로 표시될 수 있다. 예를 들어, 도 10에서는 제1 스테이트 다이어그램(S1) 및 제2 스테이트 다이어그램(S2)은 제1 트랜지션 다이어그램(T1)에 의해서 연결되고, 제1 스테이트 다이어그램(S1) 및 제3 스테이트 다이어그램(S3)은 제2 트랜지션 다이어그램(T2)에 의해서 연결될 수 있다. 제1 트랜지션 다이어그램(T1) 및 제2 트랜지션 다이어그램(T2)은 방향성을 가지는 화살표로 표시되어 스테이트 간의 트랜지션 방향을 직관적으로 알 수 있을 수 있다. 도 10에서는 예시적으로 2개의 트랜지션 다이어그램과 3개의 스테이트 다이어그램을 도시하였으나, 본 실시예의 시나리오 정보는 이에 제한되지 않는다. 즉, 트랜지션 다이어그램 및 스테이트 다이어그램의 개수 및 구현 형태는 얼마든지 달라질 수 있다.9 and 10 , scenario information may be displayed as at least one state and transition. For example, in FIG. 10 , the first state diagram S1 and the second state diagram S2 are connected by the first transition diagram T1, and the first state diagram S1 and the third state diagram S3 are connected. may be connected by the second transition diagram T2. The first transition diagram T1 and the second transition diagram T2 are indicated by arrows having a direction, so that a transition direction between states can be intuitively known. Although FIG. 10 illustrates two transition diagrams and three state diagrams by way of example, the scenario information of the present embodiment is not limited thereto. That is, the number and implementation form of the transition diagram and the state diagram may vary freely.

제1 스테이트 다이어그램(S1)이 선택되면 액션에 관해서 지정할 수 있는 액션 버튼(AB)이 상태 관리 영역(Rm)에 표시될 수 있다. 만약, 액션이 "없음"이 선택되면 제1 스테이트 다이어그램(S1)에 대응하는 스테이트에서는 아무런 동작 없이 다음 스테이트로 트랜지션이 수행될 수 있다. 액션 중 "Transition" 버튼은 현재 제1 스테이트 다이어그램(S1)에서 연결된 트랜지션 다이어그램들을 보여줄 수 있다. 즉, 도 10에서는 제1 트랜지션 다이어그램(T1) 및 제2 트랜지션 다이어그램(T2)이 드랍 박스 형태로 선택 가능하게 표시될 수 있다. 단, 본 실시예는 이에 제한되는 것은 아니고 얼마든지 다른 형태의 인터페이스로 구현될 수 있다.When the first state diagram S1 is selected, an action button AB capable of designating an action may be displayed in the state management area Rm. If “none” is selected as the action, the transition to the next state may be performed without any action in the state corresponding to the first state diagram S1 . During the action, the "Transition" button may show transition diagrams connected in the current first state diagram S1. That is, in FIG. 10 , the first transition diagram T1 and the second transition diagram T2 may be selectively displayed in the form of drop boxes. However, the present embodiment is not limited thereto and may be implemented as an interface of any other form.

도 10 및 도 11을 참조하면, 액션 버튼(AB)에서 "Transition" 버튼의 선택이 완료되면 "Job" 버튼을 사용하여 제1 스테이트 다이어그램(S1)에 잡 정보를 임베딩할 수 있다. 액션 버튼(AB)에서 "Job" 버튼을 선택하는 경우 잡 로드 버튼(JLB)이 표시될 수 있다. 잡 로드 버튼(JLB)은 스테이트에 잡 정보를 임베딩하기 위한 버튼일 수 있다.10 and 11 , when the selection of the “Transition” button in the action button AB is completed, the job information may be embedded in the first state diagram S1 by using the “Job” button. When the "Job" button is selected from the action button AB, the job load button JLB may be displayed. The job load button JLB may be a button for embedding job information in a state.

도 3 및 도 12를 참조하면, 잡 로드 버튼(JLB)을 선택하면 잡 로드 창(JLW)이 화면에 생성될 수 있다. 잡 로드 창(JLW)은 설정할 수 있는 잡 정보의 리스트를 제시하고 이중 적어도 하나를 선택할 수 있게할 수 있다. 이를 통해서 스테이트 다이어그램에 잡 정보가 설정될 수 있다. 사용자 장치(340)는 스테이트 다이어그램에 설정된 잡 정보의 설정 정보를 저장할 수 있다. 상기 잡 정보는 테스트 자동화 시스템(100)의 데이터베이스(160)에 저장되어 있을 수 있다. 사용자 장치(340)의 조작에 따라서, 데이터베이스(160)는 머신 워커(120), 어플리케이션 서버(110) 및/또는 웹 서버(330)를 거쳐서 상기 잡 정보를 사용자 장치(340)에 제공할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.3 and 12 , when the job load button JLB is selected, the job load window JLW may be generated on the screen. The job load window JLW may present a list of settable job information and select at least one of them. Through this, job information can be set in the state diagram. The user device 340 may store setting information of job information set in the state diagram. The job information may be stored in the database 160 of the test automation system 100 . According to the operation of the user device 340 , the database 160 may provide the job information to the user device 340 via the machine worker 120 , the application server 110 , and/or the web server 330 . . However, the present embodiment is not limited thereto.

도 3 및 도 13을 참조하면, 잡 정보가 설정되면 잡 결과 핸들러(JRH)가 표시될 수 있다. 잡 결과 핸들러(JRH)에는 조건식으로 잡의 결과값이 어떤 조건일 때 어떤 트랜지션 다이어그램에 대응하는 트랜지션이 수행될지를 기재할 수 있다. 사용자 장치(340)는 잡 결과 핸들러의 지정 정보를 저장할 수 있다. 이때, 상기 조건식은 결과 값의 HTTP 응답 상태코드(statusCode)의 값, HTTP 응답 헤더(headers)의 종류 및 HTTP 응답 본문(body)의 HTML 본문 또는 JSON, XML 등으로 구성된 API응답값 등을 조건식의 변수로 사용할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.3 and 13 , when job information is set, a job result handler JRH may be displayed. In the job result handler JRH, a transition corresponding to which transition diagram is to be performed may be described as a conditional expression under which condition for the job result value. The user device 340 may store designation information of the job result handler. At this time, the conditional expression includes the value of the HTTP response status code (statusCode) of the result value, the type of HTTP response headers, and the API response value composed of the HTML body or JSON, XML, etc. of the HTTP response body of the conditional expression. It can be used as a variable. However, the present embodiment is not limited thereto.

도 3 내지 도 5 및 도 14를 참조하면, 편집된 시나리오 정보를 사용자 장치(340)가 실행하면 어플리케이션 서버(110)가 상기 시나리오 정보에 대응하는 유한 상태 기계 시나리오를 생성하여 상술한 방식으로 테스트를 수행한다.3 to 5 and 14 , when the user device 340 executes the edited scenario information, the application server 110 generates a finite state machine scenario corresponding to the scenario information and performs the test in the manner described above. carry out

이때, 사용자 장치(340)의 화면에는 제1 로그 표시창(EL1)이 표시될 수 있다. 제1 로그 표시창(EL1)에는 로그 서버(150)에서 푸시된 로그(도 4 및 도 5의 작업 <6>, <9>, <11>, <14>, <19>, <21>, <23>, <25>, <28>, <34> 및 <38>)가 표시될 수 있다.In this case, the first log display window EL1 may be displayed on the screen of the user device 340 . In the first log display window EL1, the logs pushed from the log server 150 (operations <6>, <9>, <11>, <14>, <19>, <21>, < 23>, <25>, <28>, <34> and <38>) may be displayed.

도 15를 참조하면, 제1 로그 표시창(EL1)은 제2 로그 표시창(EL2)과 같이 확대되어 표시될 수도 있다. 제1 로그 표시창(EL1) 및 제2 로그 표시창(EL2)에 표시된 로그는 날짜, 로그 타입, 메시지 및 추가 정보를 포함할 수 있다. 로그 타입은 예를 들어, [EnterState], [Transit], [Job], [JobResult] 및 [Error]와 같은 형태로 표시될 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.Referring to FIG. 15 , the first log display window EL1 may be enlarged and displayed like the second log display window EL2 . The log displayed on the first log display window EL1 and the second log display window EL2 may include a date, a log type, a message, and additional information. The log type may be displayed in the form of, for example, [EnterState], [Transit], [Job], [JobResult], and [Error]. However, the present embodiment is not limited thereto.

도 14 내지 도 16을 참조하면, 제1 로그 표시창(EL1) 및 제2 로그 표시창(EL2)은 객체 정보 검사기 아이콘(OII)을 포함할 수 있다. 14 to 16 , the first log display window EL1 and the second log display window EL2 may include an object information checker icon OII.

도 17을 참조하면, 사용자가 객체 정보 검사기 아이콘(OII)을 선택하는 경우 객체 정보 검사기가 실행될 수 있다. 상기 객체 정보 검사기가 실행되면 객체 정보 검사창(OIW)이 화면에 표시될 수 있다. 객체 정보 검사창(OIW)에서는 좀더 상세한 확인이 가능할 수 있다. 객체 정보 검사창(OIW)은 상세 정보가 JSON(JavaScript Object Notation)과 같은 객체 포맷을 사용할 경우, 다양한 기능을 제공할 수 있다. 예를 들어, 객체 정보 검사창(OIW)은 사용자가 읽기 쉽도록 구조화(JSON Prettify), 상세정보의 키 네임(Key Name)을 입력하여 특정값을 반환(Console) 및 JSON 영역에서 알고자 하는 부분을 클릭하는 경우, 해당 값에 접근하는 키 네임을 추적하여 하단 콘솔(Console)에 표시(Key Finder)하는 등의 기능을 제공할 수 있다. 단, 본 실시예가 이에 제한되는 것은 아니다.Referring to FIG. 17 , when the user selects the object information checker icon OII, the object information checker may be executed. When the object information inspector is executed, an object information inspection window (OIW) may be displayed on the screen. In the object information inspection window (OIW), more detailed confirmation may be possible. The object information inspection window (OIW) may provide various functions when detailed information uses an object format such as JavaScript Object Notation (JSON). For example, the object information inspection window (OIW) is structured so that the user can read it easily (JSON Prettify), and returns a specific value by entering the key name of detailed information (Console), and the part you want to know in the JSON area. If you click , you can provide functions such as tracking the key name that accesses the corresponding value and displaying it on the lower console (Key Finder). However, the present embodiment is not limited thereto.

도 3 및 도 18을 참조하면, 시나리오 정보에 대응하는 유한 상태 기계 시나리오의 실행이 끝난 후, 사용자 장치(340)는 히스토리창(HW)을 생성할 수 있다.3 and 18 , after the execution of the finite state machine scenario corresponding to the scenario information is finished, the user device 340 may generate the history window HW.

사용자 장치(340)는 해당 실행의 결과와 로그 기록 및 로그 분석을 히스토리창(HW)에서 조회할 수 있다. The user device 340 may inquire the result of the corresponding execution, log record, and log analysis in the history window HW.

도 19를 참조하면, 히스토리창(HW)에서는 개별 실행을 선택함에 따라 제3 로그 표시창(EL3)을 표시할 수 있다. 제3 로그 표시창(EL3)은 제1 로그 표시창(EL1) 및 제2 로그 표시창(EL2)과 동일한 정보를 표시할 수 있다.Referring to FIG. 19 , the third log display window EL3 may be displayed in the history window HW as individual execution is selected. The third log display window EL3 may display the same information as the first log display window EL1 and the second log display window EL2 .

이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.Although the embodiments of the present invention have been described above with reference to the accompanying drawings, those of ordinary skill in the art to which the present invention pertains can realize that the present invention can be embodied in other specific forms without changing its technical spirit or essential features. you will be able to understand Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive.

110: 어플리케이션 서버
120: 머신 워커
150: 로그 서버
160: 데이터베이스
110: application server
120: machine worker
150: log server
160: database

Claims (15)

시나리오 정보를 입력받고, 상기 시나리오 정보에 기초한 유한 상태 기계(Finite State Machine, FSM) 시나리오를 생성하는 어플리케이션 서버로서, 상기 유한 상태 기계 시나리오는 적어도 하나의 스테이트(state)와, 상기 스테이트 간의 트랜지션과, 상기 스테이트에 임베딩되어 상기 트랜지션의 수행 조건으로 설정된 잡(job)을 포함하는 어플리케이션 서버;
상기 유한 상태 머신 시나리오를 수신하여 실행하는 머신 워커;
상기 시나리오 정보 및 상기 잡에 대응하는 잡 정보를 저장하고, 상기 시나리오 정보를 상기 어플리케이션 서버에 제공하고, 상기 잡 정보를 상기 머신 워커에 제공하는 데이터베이스;
상기 머신 워커로부터 상기 잡의 실행을 요청받고, 상기 잡을 처리하는 잡 워커; 및
상기 잡 워커로부터 상기 잡에 대응하는 작업을 요청받아 응답하고, 외부 네트워크와 고립된 내부 네트워크를 포함하되,
상기 잡은 API(Application Program Interface)를 요청하는 제1 잡과 웹페이지 URL(uniform resource locator)를 포함하는 제2 잡을 포함하고,
상기 잡 워커는 상기 제1 잡을 처리하는 제1 잡 워커와 상기 제2 잡을 처리하는 제2 잡 워커를 포함하고,
상기 내부 네트워크는 내부 API 서버와 내부 웹 페이지를 포함하고,
상기 제1 잡 워커는 상기 제1 잡에 대응하여 상기 내부 API 서버에 상기 API를 요청하고,
상기 제2 잡 워커는 상기 제2 잡에 대응하여 상기 내부 웹 페이지에 상기 웹페이지 URL을 요청하고, 사전에 정의된 스크립트에 의해서 미리 설정된 사용자 동작을 수행하는 것을 포함하는 테스트 자동화 네트워크 시스템.
An application server that receives scenario information and generates a finite state machine (FSM) scenario based on the scenario information, wherein the finite state machine scenario includes at least one state and a transition between the states; an application server embedded in the state and including a job set as a condition for performing the transition;
a machine worker receiving and executing the finite state machine scenario;
a database storing the scenario information and job information corresponding to the job, providing the scenario information to the application server, and providing the job information to the machine worker;
a job worker receiving a request for execution of the job from the machine worker and processing the job; and
Including an internal network isolated from an external network and responding to a request for a job corresponding to the job from the job worker,
The job includes a first job requesting an API (Application Program Interface) and a second job including a web page uniform resource locator (URL),
The job worker includes a first job worker for processing the first job and a second job worker for processing the second job,
The internal network includes an internal API server and an internal web page,
The first job worker requests the API to the internal API server in response to the first job,
and the second job worker requests the web page URL to the internal web page in response to the second job, and performs a preset user operation according to a predefined script.
삭제delete 삭제delete 제1 항에 있어서,
상기 외부 네트워크는 외부 API 서버와 외부 웹 페이지를 포함하고,
상기 제1 잡 워커는 상기 제1 잡에 대응하여 상기 외부 API 서버에 상기 API를 요청하고,
상기 제2 잡 워커는 상기 제2 잡에 대응하여 상기 외부 웹 페이지에 상기 웹페이지 URL을 요청하는 테스트 자동화 네트워크 시스템.

According to claim 1,
The external network includes an external API server and an external web page,
The first job worker requests the API to the external API server in response to the first job,
The second job worker is a test automation network system for requesting the web page URL to the external web page in response to the second job.

제4 항에 있어서,
상기 잡 워커와 상기 외부 네트워크를 연결하는 프록시 서버를 더 포함하는 테스트 자동화 네트워크 시스템.
5. The method of claim 4,
The test automation network system further comprising a proxy server connecting the job worker and the external network.
제1 항에 있어서,
상기 외부 네트워크는 상기 어플리케이션 서버와 사용자를 연결해주는 웹 서버를 더 포함하는 테스트 자동화 네트워크 시스템.
According to claim 1,
The external network test automation network system further comprising a web server that connects the application server and the user.
제6 항에 있어서,
상기 머신 워커로부터 로그를 수신하여 저장하고, 상기 로그를 상기 사용자에게 전송하는 로그 서버를 더 포함하는 테스트 자동화 네트워크 시스템.
7. The method of claim 6,
The test automation network system further comprising a log server for receiving and storing the log from the machine worker, and transmitting the log to the user.
제1 항에 있어서,
내부에 실행 스케쥴을 포함하고, 상기 실행 스케쥴에 따라 상기 어플리케이션 서버가 상기 유한 상태 기계 시나리오를 생성하게 지시하는 배치 시스템을 더 포함하는 테스트 자동화 네트워크 시스템.
According to claim 1,
A test automation network system, further comprising: a deployment system including an execution schedule therein, and instructing the application server to generate the finite state machine scenario according to the execution schedule.
제1 항에 있어서,
상기 어플리케이션 서버가 상기 유한 상태 기계 시나리오를 생성하게 하고, 상기 어플리케이션 서버로부터 시나리오 결과를 수신하여 상기 유한 상태 기계 시나리오에 대응하는 서비스를 배포하는 배포 시스템을 더 포함하는 테스트 자동화 네트워크 시스템.
According to claim 1,
and a distribution system for causing the application server to generate the finite state machine scenario, and for receiving a scenario result from the application server and distributing a service corresponding to the finite state machine scenario.
제1 항에 있어서,
상기 시나리오 정보는 다이어그램으로 편집되는 테스트 자동화 네트워크 시스템.
According to claim 1,
The scenario information is edited into a diagram of a test automation network system.
데이터베이스가 스테이트, 상기 스테이트 간의 트랜지션 및 상기 스테이트에 임베딩되어 상기 트랜지션의 수행 조건으로 설정된 잡을 포함하는 유한 상태 기계 시나리오에 대응하는 시나리오 정보를 수신하여 저장하고,
머신 워커가 상기 시나리오 정보에 따라 유한 상태 기계 시나리오를 실행하는 것을 포함하되,
상기 스테이트는 제1 스테이트 및 제2 스테이트를 포함하고,
상기 잡은 상기 제1 스테이트에 임베딩된 제1 잡 및 제2 잡 중 어느 하나를 포함하고,
상기 유한 상태 기계 시나리오를 실행하는 것은,
상기 제1 스테이트로 실행하고,
상기 제1 잡 및 제2 잡 중 어느 하나를 실행하고,
상기 제1 잡 및 제2 잡 중 어느 하나의 결과에 따라서 상기 제2 스테이트로 트랜지션하는 것을 포함하고,
상기 제1 잡 및 제2 잡 중 어느 하나를 실행하는 것은,
잡 워커가 외부 네트워크와 고립된 내부 네트워크에 제1 잡 및 제2 잡 중 어느 하나에 대응하는 요청을 전송하고,
상기 내부 네트워크가 상기 제1 잡 및 제2 잡 중 어느 하나에 대응하는 요청에 대해서 응답하는 것을 포함하되,
상기 제1 잡은 API를 요청하는 잡이고,
상기 내부 네트워크는 내부 API 서버를 포함하고,
상기 잡 워커는 상기 내부 API 서버에 상기 API를 요청하는 제1 잡 워커를 포함하고,
상기 제2 잡은 웹페이지 URL을 요청하는 잡이고,
상기 내부 네트워크는 내부 웹페이지를 포함하고,
상기 잡 워커는 상기 내부 웹페이지에 상기 웹페이지 URL을 요청하고, 사전에 정의된 스크립트에 의해서 미리 설정된 사용자 동작을 수행하는 제2 잡 워커를 포함하는 테스트 자동화 방법.
A database receives and stores scenario information corresponding to a finite state machine scenario including a state, a transition between the states, and a job embedded in the state and set as an execution condition of the transition,
a machine worker executing a finite state machine scenario according to the scenario information;
The state includes a first state and a second state,
The job includes any one of a first job and a second job embedded in the first state,
Executing the finite state machine scenario comprises:
run into the first state,
executing any one of the first job and the second job;
Transitioning to the second state according to a result of any one of the first job and the second job,
Executing any one of the first job and the second job comprises:
The job worker transmits a request corresponding to any one of the first job and the second job to the internal network isolated from the external network,
Comprising that the internal network responds to a request corresponding to any one of the first job and the second job,
The first job is a job that requests an API,
The internal network includes an internal API server,
The job worker includes a first job worker that requests the API to the internal API server,
The second job is a job that requests a web page URL,
The internal network includes an internal web page,
and the job worker requests the web page URL to the internal web page and includes a second job worker that performs a preset user action according to a predefined script.
제11 항에 있어서,
상기 시나리오 정보를 수신하는 것은,
상기 시나리오 정보가 다이어그램으로 편집되는 것을 포함하고,
상기 시나리오 정보가 다이어그램으로 편집되는 것은,
상기 스테이트에 대응하는 적어도 하나의 스테이트 다이어그램의 배치 정보가 저장되고,
상기 스테이트 다이어그램 사이에 상기 트랜지션에 대응하는 적어도 하나의 트랜지션 다이어그램의 배치 정보가 저장되고,
상기 스테이트 다이어그램에 상기 잡에 대응하는 잡 정보의 설정 정보가 저장되고,
상기 잡의 결과값에 따라 상기 트랜지션 중 어느 하나가 실행되는지에 대한 지정 정보가 저장되는 것을 포함하는 테스트 자동화 방법.
12. The method of claim 11,
Receiving the scenario information includes:
Comprising that the scenario information is edited into a diagram,
When the scenario information is edited into a diagram,
arrangement information of at least one state diagram corresponding to the state is stored;
arrangement information of at least one transition diagram corresponding to the transition is stored between the state diagrams;
setting information of job information corresponding to the job is stored in the state diagram;
and storing designation information on which one of the transitions is executed according to a result value of the job.
제12 항에 있어서,
상기 데이터베이스는 상기 잡 정보를 저장하고, 요청에 따라 제공하는 테스트 자동화 방법.
13. The method of claim 12,
The database stores the job information and provides a test automation method according to a request.
삭제delete 삭제delete
KR1020200017380A 2020-02-13 2020-02-13 Automated Test Network System and Automated Test Method KR102303182B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200017380A KR102303182B1 (en) 2020-02-13 2020-02-13 Automated Test Network System and Automated Test Method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200017380A KR102303182B1 (en) 2020-02-13 2020-02-13 Automated Test Network System and Automated Test Method

Publications (2)

Publication Number Publication Date
KR20210103074A KR20210103074A (en) 2021-08-23
KR102303182B1 true KR102303182B1 (en) 2021-09-16

Family

ID=77499291

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200017380A KR102303182B1 (en) 2020-02-13 2020-02-13 Automated Test Network System and Automated Test Method

Country Status (1)

Country Link
KR (1) KR102303182B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102694524B1 (en) * 2024-03-11 2024-08-12 주식회사 티스퀘어 Automatic testing device for providing user interface and operating method thereof

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101691245B1 (en) * 2012-05-11 2017-01-09 삼성에스디에스 주식회사 System and method for web service monitoring

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100080965A (en) * 2009-01-04 2010-07-14 남종철 Test-bed system and test method of communication and broadcasting convergence technology

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101691245B1 (en) * 2012-05-11 2017-01-09 삼성에스디에스 주식회사 System and method for web service monitoring

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
논문1(2010.11.30)*
논문2(2010.04.30)*

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102694524B1 (en) * 2024-03-11 2024-08-12 주식회사 티스퀘어 Automatic testing device for providing user interface and operating method thereof

Also Published As

Publication number Publication date
KR20210103074A (en) 2021-08-23

Similar Documents

Publication Publication Date Title
US11163671B2 (en) Automatically executing stateless transactions with data dependency in test cases
KR102220127B1 (en) Method and apparatus for customized software development kit (sdk) generation
US9323647B2 (en) Request-based activation of debugging and tracing
US10545857B2 (en) Controlling executions of synchronous and/or non-synchronous operations with asynchronous messages
US20140380281A1 (en) Automated software testing
US20050132337A1 (en) Trace management in client-server applications
US9432469B2 (en) Automated server controlled client-side logging
EP3104279B1 (en) Testing interactive network systems
CN108694120B (en) Method and device for testing service component
WO2019075845A1 (en) Construction method and device for link call relationship, computer device and storage medium
Rattanapoka et al. An MQTT-based IoT cloud platform with flow design by Node-RED
US20100162113A1 (en) Operation support system, operation support method, and operation support program
KR102303182B1 (en) Automated Test Network System and Automated Test Method
CN111245917B (en) Katalon-based work order entry device and implementation method thereof
CN110874278A (en) Embedding method of external system, workflow system, device and storage medium
CN113138915A (en) Page testing method, device and medium
CN113064987B (en) Data processing method, apparatus, electronic device, medium, and program product
US7509413B2 (en) Tool for displaying JMX monitoring information
US20170031884A1 (en) Automated dependency management based on page components
CN114092169A (en) Ordering test method and system and equipment for executing ordering test method
US9043384B2 (en) Testing of client systems consuming contractual services on different server systems
CN112835804B (en) Test case processing method, device, electronic equipment and medium
US8874971B1 (en) Detecting and reporting problems in a distributed resource computing system
CN115378792B (en) Alarm processing method, device and storage medium
US10496455B1 (en) Enabling synchronous editable signals in process modeling

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right