KR20200048633A - System and method for automatically testing software - Google Patents

System and method for automatically testing software Download PDF

Info

Publication number
KR20200048633A
KR20200048633A KR1020180130907A KR20180130907A KR20200048633A KR 20200048633 A KR20200048633 A KR 20200048633A KR 1020180130907 A KR1020180130907 A KR 1020180130907A KR 20180130907 A KR20180130907 A KR 20180130907A KR 20200048633 A KR20200048633 A KR 20200048633A
Authority
KR
South Korea
Prior art keywords
test
host
server
terminal
data center
Prior art date
Application number
KR1020180130907A
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 KR1020180130907A priority Critical patent/KR20200048633A/en
Publication of KR20200048633A publication Critical patent/KR20200048633A/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/3664Environments for testing or debugging software
    • 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

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)
  • Debugging And Monitoring (AREA)

Abstract

Provided are a system for automatically testing software and a method thereof. According to an embodiment of the present invention, the method for automatically testing software comprises the steps of: registering at least one test code in a first test progress server built on a first host outside a first data center network; synchronizing test codes registered in the first test progress server between a second test progress server and the first test progress server built in a second host in the first data center network; and, in response to a test execution request sent by the first terminal outside the first data center network to the second test progress server, automatically executing a test according to the test code stored in the second test progress server through the synchronization for the test target host by the second test progress server.

Description

소프트웨어 자동 테스트 시스템 및 방법{SYSTEM AND METHOD FOR AUTOMATICALLY TESTING SOFTWARE}Automated software test system and method {SYSTEM AND METHOD FOR AUTOMATICALLY TESTING SOFTWARE}

본 발명은 소프트웨어 자동 테스트 시스템 및 방법에 관한 것이다. 보다 자세하게는 개발자가 제작한 소프트웨어를 다양한 환경에서 테스트함에 있어서, 각각의 테스트 환경에 맞춰 테스트 코드를 재생성하지 않고, 하나의 테스트 코드만을 이용하여 다양한 환경에서의 테스트를 자동으로 실시할 수 있는 소프트웨어 자동 테스트 시스템 및 방법에 관한 것이다.The present invention relates to a software automatic test system and method. In more detail, in testing the software created by the developer in various environments, the software automatically performs test in various environments using only one test code without regenerating the test code according to each test environment. It relates to a test system and method.

서비스의 규모가 커지고 복잡도가 증가하면서 보다 효율적이면서도 변경과 조합이 용이한 구조의 아키텍처에 대한 관심이 증가하고 있다. 특히, 하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 마이크로서비스 아키텍처(Microservice architecture)가 주목 받고 있다.As the size of services increases and the complexity increases, interest in architectures that are more efficient and easy to change and assemble is increasing. In particular, the microservice architecture, which splits one large application into several small applications and allows for modification and combination, is attracting attention.

이러한 마이크로서비스 아키텍처는 독립적인 단위의 애플리케이션이기 때문에 변경이 용이하고 그 변경이 다른 서비스에 미치는 영향이 적으며, 부하가 집중되는 특정서비스를 위해 전체 애플리케이션을 스케일 아웃할 필요가 없기 때문에 불필요한 자원의 낭비를 감소시켜 효율적인 자원사용이 가능하도록 하는 등의 장점을 갖는다.This microservice architecture is an independent unit of application, so it is easy to change, and the change has little impact on other services, and waste of unnecessary resources is not necessary because the entire application does not need to be scaled out for a specific service under load. It has the advantage of reducing the cost and enabling efficient use of resources.

이러한 장점으로 인해, 대규모의 소프트웨어 개발을 위해 단독으로 실행 가능하고 독립적으로 배치될 수 있도록 분해한 복수의 작은 단위(모듈)의 소프트웨어를 복수의 개발자 각각이 개발하고, 개발된 작은 단위의 소프트웨어를 통합함으로써 대규모 소프트웨어를 개발하는 방식을 사용하는 경우가 증가하고 있다.Due to these advantages, a plurality of small units (modules) of software that are disassembled so that they can be independently executed and deployed independently for large-scale software development are developed by each of a plurality of developers, and the developed small units of software are integrated As a result, the use of a method for developing large-scale software is increasing.

일반적으로, 웹 플랫폼 서비스(Web platform service)를 제공하기 위하여 대부분 개발, 검증, 운영 인프라 환경을 분리 및 격리하여 관리해야 하고, 일반적인 대용량 3계층(3-tier) 서버의 구청 측면으로 보았을 때, 로드 밸런서(Load balancer), 웹(Web) 및 웹 애플리케이션 서버(Web Application Server, WAS) 등의 레이어가 중첩되는 구조로 인프라를 구성할 필요가 있다.In general, in order to provide web platform services, most of development, verification, and operation infrastructure environments must be separated and isolated and managed, and viewed from the ward side of a typical large-scale 3-tier server. It is necessary to configure the infrastructure with a structure in which layers such as a load balancer, a web, and a web application server (WAS) overlap.

종래에는 이와 같이 여러 레이어가 중첩되는 구조에서, 복수의 개발자 각각이 개발한 작은 단위의 소프트웨어를 테스트하고자 하는 경우, 서로 다른 레이어 별 테스트를 진행하기 위한 테스트 코드(test code)를 각각 환경에 맞게 생산해야 하는 어려움이 있으며, 복수의 개발자 각각이 생각한 테스트 코드는 개별 관리되며, 이를 공유하기 위해서는 관리자 명령으로 파일화 하여 파일 전송 도구나 이메일을 통해 전송해야 한다는 문제가 있었다.Conventionally, in a structure in which multiple layers are overlapped, when testing a small unit of software developed by each of a plurality of developers, test codes for testing for different layers are produced according to environments. There is a difficulty to do, and the test codes thought by each of the plurality of developers are individually managed, and in order to share them, there was a problem that files must be filed with an administrator command and transmitted through a file transfer tool or email.

또한, 데이터 센터망 내의 여러 서버에서 테스트를 진행하고자 하는 경우, 보안을 위해 구비된 JumpHost와 같은 경유 서버를 거쳐 테스트를 진행하고자 하는 서버(레이어)에 접근을 해야 하기 때문에, 매번 터널링을 설정해야 한다는 문제가 있다. Also, if you want to test on multiple servers in the data center network, you need to access the server (layer) you want to test through a pass-through server such as JumpHost provided for security. there is a problem.

한국등록특허 제10-0949800호Korean Registered Patent No. 10-0949800

본 발명이 해결하고자 하는 기술적 과제는, 내부망에 구비된 테스트 진행 서버와 데이터 센터망에 구비된 테스트 진행 서버간 테스트 코드 동기화를 하여 테스트 대상 호스트의 위치에 따라 개별 테스트 코드를 생성하거나 테스트 코드를 수동으로 업로드할 필요없이 하나의 테스트 코드를 이용하여 다양한 형태로 테스트 진행이 가능한 소프트웨어 자동 테스트 시스템 및 방법을 제공하는 것이다.The technical problem to be solved by the present invention is to generate test codes or generate test codes according to the location of the host under test by synchronizing test codes between the test progress servers provided in the internal network and the test progress servers provided in the data center network. It is to provide a software automatic test system and method capable of performing tests in various forms using a single test code without manual upload.

본 발명이 해결하고자 하는 다른 기술적 과제는, 테스트 코드를 이용하여 테스트 스케줄을 설정하고, 테스트 스케줄에 따라 자동으로 테스트를 실행함으로써, 개발자의 별도의 요청 없이 자동적으로 테스트를 실시할 수 있는 소프트웨어 자동 테스트 시스템 및 방법을 제공하는 것이다.Another technical problem to be solved by the present invention is to set a test schedule using a test code and automatically execute a test according to the test schedule, thereby automatically testing a software that can automatically test without a developer's request. It is to provide a system and method.

본 발명이 해결하고자 하는 또 다른 기술적 과제는, 기 설정된 복수의 테스트 스케줄에 있어서, 테스트의 중요도에 따라 테스트의 빈도 및 범위를 조정함으로써, 대용량 서버 환경에서 위험도가 높은 집중적으로 테스트할 수 있는 소프트웨어 자동 테스트 시스템 및 방법을 제공하는 것이다.Another technical problem to be solved by the present invention is, in a plurality of preset test schedules, by adjusting the frequency and range of tests according to the importance of the test, software that can intensively test at high risk in a large server environment It is to provide a test system and method.

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

상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 소프트웨어 자동 테스트 방법은, 제1 데이터 센터망 외부의 제1 호스트에 구축된 제1 테스트 진행 서버에 하나 이상의 테스트 코드가 등록되는 단계, 상기 제1 데이터 센터망 내부의 제2 호스트에 구축된 제2 테스트 진행 서버와 상기 제1 테스트 진행 서버 간에 상기 제1 테스트 진행 서버에 등록된 테스트 코드의 동기화가 수행되는 단계 및 상기 제1 데이터 센터망 외부의 제1 단말이 상기 제2 테스트 진행 서버에 송신한 테스트 수행 요청에 응답하여, 상기 제2 테스트 진행 서버가 테스트 대상 호스트에 대하여 상기 동기화를 통해 상기 제2 테스트 진행 서버에 저장된 테스트 코드에 따른 테스트를 자동 실시하는 단계를 포함한다.In order to solve the above technical problem, a software automatic test method according to an embodiment of the present invention includes registering one or more test codes in a first test progress server built in a first host outside the first data center network, Synchronization of a test code registered in the first test progress server between a second test progress server and the first test progress server built in a second host in the first data center network, and the first data center In response to a test execution request sent from the first terminal outside the network to the second test progress server, the second test progress server is connected to a test code stored in the second test progress server through the synchronization with respect to a host to be tested. It includes the step of automatically performing the test according to.

일 실시예에서, 상기 제1 단말은 상기 제1 호스트와 동일한 내부망에 연결된 것이고, 상기 제1 테스트 진행 서버에 하나 이상의 테스트 코드가 등록되는 단계는, 상기 제1 단말이 제1 테스트 코드를 상기 제1 테스트 진행 서버에 송신하는 단계, 상기 제1 단말이 상기 제1 테스트 진행 서버에 상기 제1 단말에 구축된 로컬 테스트 서버에 대한 테스트 수행 요청을 송신하되, 상기 테스트 수행 요청은 상기 제1 단말의 주소 정보를 포함하는 것인, 단계 및 상기 테스트 수행 요청의 수신에 응답하여, 상기 로컬 테스트 서버가 상기 제1 단말의 로컬 테스트 서버에 대하여 상기 제1 테스트 코드에 의한 테스트를 진행하는 단계를 포함할 수 있다.In one embodiment, the first terminal is connected to the same internal network as the first host, and the step of registering one or more test codes in the first test proceeding server comprises: the first terminal receiving the first test code; Transmitting to a first test progress server, the first terminal sends a test execution request to a local test server built in the first terminal to the first test progress server, wherein the test execution request is the first terminal It includes the address information of, and in response to the reception of the test execution request, the local test server proceeds the test by the first test code to the local test server of the first terminal can do.

일 실시예에서, 상기 테스트 수행 요청은, 상기 테스트 대상 호스트를 가리키는 호스트 식별자를 포함하며, 상기 테스트를 자동 실시하는 단계는, 상기 제2 테스트 진행 서버가 상기 제1 데이터 센터망 내부의 호스트 정보를 이용하여 상기 테스트 대상 호스트에 대한 식별자에 대응하는 상기 테스트 대상 호스트의 접속 정보를 얻는 단계, 상기 제2 테스트 진행 서버가 상기 접속 정보를 이용하여 상기 호스트 식별자에 따른 호스트 접속 URL을 생성하는 단계 및 상기 제2 테스트 진행 서버가 상기 호스트 접속 URL을 이용하여 상기 테스트 대상 호스트에 직접 접속하는 단계를 포함할 수 있다.In one embodiment, the request to perform the test includes a host identifier indicating the host to be tested, and the step of automatically performing the test includes the host information in the first data center network by the second test processing server. Obtaining access information of the host under test corresponding to the identifier for the host under test, generating a host access URL according to the host identifier using the access information by the second test server; and The second test proceeding server may include directly accessing the host to be tested using the host access URL.

일 실시예에서, 상기 제1 단말은 제2 단말과 함께 상기 제1 호스트와 동일한 내부망에 연결된 것이고, 상기 테스트 코드가 등록되는 단계는, 상기 제1 단말으로부터 수신된 제1 테스트 코드가 등록되는 단계 및 상기 제2 단말으로부터 수신된 제2 테스트 코드가 등록되는 단계를 포함하고, 상기 테스트를 자동 실시하는 단계는, 상기 제1 테스트 코드 및 상기 제2 테스트 코드에 따른 테스트를 자동 실시하는 단계를 포함할 수 있다.In one embodiment, the first terminal is connected to the same internal network as the first host together with the second terminal, and the step in which the test code is registered includes registering the first test code received from the first terminal. And a step in which the second test code received from the second terminal is registered, and the step of automatically performing the test comprises: automatically performing a test according to the first test code and the second test code. It can contain.

일 실시예에서, 상기 테스트 수행 요청은 상기 제1 데이터 센터망 외부의 제2 데이터 센터망에 위치하는 테스트 대상 호스트에 대한 정보를 포함하고, 상기 테스트를 자동 실시하는 단계는, 상기 입력된 상기 제2 데이터 센터망의 프록시 서버 주소를 이용하여 상기 테스트 대상 호스트에 대한 정보를 포함하는 테스트 의뢰를 상기 제2 데이터 센터망의 프록시 서버에 송신하는 단계를 포함할 수 있다.In one embodiment, the test execution request includes information on a test target host located in a second data center network outside the first data center network, and the step of automatically performing the test comprises: 2, using the proxy server address of the data center network, transmitting a test request including information about the host to be tested to the proxy server of the second data center network.

일 실시예에서, 상기 테스트 의뢰는, 상기 프록시 서버 주소, 테스트 대상 호스트 식별자 및 URI(Uniform Resource Identifier)를 연결한 URL(Uniform Resource Locator)이고, 상기 테스트 의뢰를 상기 제2 데이터 센터망의 프록시 서버에 송신하는 단계는, 상기 프록시 서버가 상기 테스트 의뢰에서 상기 프록시 서버 주소를 제외하여 상기 URL을 변형하고, 상기 변형된 URL을 호출함으로써 상기 테스트 대상 호스트에 대한 테스트를 자동 실시하는 단계를 포함할 수 있다.In one embodiment, the test request is a URL (Uniform Resource Locator) that connects the proxy server address, a test target host identifier, and a Uniform Resource Identifier (URI), and the test request is a proxy server in the second data center network. The step of transmitting to the proxy server may include the step of automatically testing the host under test by modifying the URL by excluding the proxy server address from the test request and calling the modified URL. have.

일 실시예에서, 상기 테스트 대상 호스트 식별자는 상기 제2 테스트 진행 서버에 의하여 생성되고 등록된 상기 테스트 대상 호스트 고유의 식별자이고, 상기 프록시 서버가 상기 테스트 의뢰에서 상기 프록시 서버 주소를 제외하여 상기 URL을 변형하고, 상기 변형된 URL을 호출함으로써 상기 테스트 대상 호스트에 대한 테스트를 자동 실시하는 단계는, 상기 프록시 서버가 상기 테스트 의뢰에서 상기 프록시 서버 주소를 제외하고, 상기 테스트 대상 호스트 식별자를 상기 테스트 대상 호스트의 접속 주소로 변환함으로써 상기 URL을 변형하며, 상기 변형된 URL을 호출함으로써 상기 테스트 대상 호스트에 대한 테스트를 자동 실시하는 단계를 포함할 수 있다.In one embodiment, the test target host identifier is a unique identifier of the test target host generated and registered by the second test proceeding server, and the proxy server excludes the proxy server address from the test request to obtain the URL. In the step of automatically testing the host to be tested by modifying and calling the modified URL, the proxy server excludes the proxy server address from the test request, and the host ID of the test target is the host to be tested. It may include the step of changing the URL by converting to the access address of, and automatically performing a test for the host to be tested by calling the modified URL.

상기 기술적 과제를 해결하기 위한, 본 발명의 다른 실시예에 따른 소프트웨어 자동 테스트 시스템은, 제1 테스트 진행 서버를 서비스하고, 하나 이상의 테스트 코드에 대한 등록 요청을 수신하여 상기 테스트 코드를 저장하는 제1 데이터 센터망 외부의 제1 호스트 및 제2 테스트 진행 서버를 서비스하고, 상기 제1 테스트 진행 서버와 상기 테스트 코드의 동기화를 수행하며, 상기 제1 데이터 센터망 외부의 제1 단말로부터 테스트 수행 요청이 수신되는 것에 응답하여, 테스트 대상 호스트에 대하여 상기 동기화를 통해 내부에 저장된 테스트 코드에 따른 테스트를 자동 실시하는 상기 제1 데이터 센터망 내부의 제2 호스트를 포함한다.In order to solve the above technical problem, a software automatic test system according to another embodiment of the present invention serves to service a first test progress server and receive a registration request for one or more test codes to store the test codes The first host and the second test progress server outside the data center network are serviced, the first test progress server is synchronized with the test code, and a test request is performed from the first terminal outside the first data center network. And a second host in the first data center network that automatically performs a test according to the test code stored therein through the synchronization to the host to be tested in response to the reception.

도 1은 본 발명의 일 실시예에 따른 소프트웨어 자동 테스트 시스템의 구성도이다.
도 2는 본 발명의 다른 실시예에 따른 소프트웨어 자동 테스트 방법을 설명하기 위한 순서도이다.
도 3은 본 발명의 몇몇 실시예들에서 테스트를 진행하고자 하는 서버의 위치가 내부망 내 단말의 서버인 경우의 테스트 실시 방법을 설명하기 위한 순서도이다.
도 4은 본 발명의 본 발명의 몇몇 실시예들에서 테스트를 진행하고자 하는 서버의 위치가 데이터 센터망 내의 호스트인 경우의 테스트 실시 방법을 설명하기 위한 순서도이다.
도 5는 본 발명의 또 다른 실시예에 따른 소프트웨어 자동 테스트 시스템의 구성도이다.
도 6은 본 발명의 또 다른 실시예에 따른 소프트웨어 자동 테스트 방법을 설명하기 위한 순서도이다.
도 7은 본 발명의 또 다른 실시예에 따른 소프트웨어 자동 테스트 시스템에 있어서, 테스트에 대한 스케줄링을 요청하는 구성을 도시한 도면이다.
도 8은 본 발명의 또 다른 실시예에 따른 소프트웨어 자동 테스트 방법에 있어서, 테스트에 대한 스케줄링을 요청 과정을 설명하기 위한 순서도이다.
도 9는 본 발명의 또 다른 실시예에 따른 소프트웨어 자동 테스트 방법에 있어서, 테스트 스케줄에 대한 중요도 설정 과정을 설명하기 위한 순서도이다.
1 is a block diagram of a software automatic test system according to an embodiment of the present invention.
2 is a flowchart illustrating a software automatic test method according to another embodiment of the present invention.
FIG. 3 is a flow chart for explaining a method of performing a test in a case where a server to be tested is a server of a terminal in an internal network in some embodiments of the present invention.
FIG. 4 is a flow chart for explaining a method for performing a test in a case where a server to be tested is a host in a data center network in some embodiments of the present invention.
5 is a block diagram of a software automatic test system according to another embodiment of the present invention.
6 is a flowchart illustrating a software automatic test method according to another embodiment of the present invention.
7 is a diagram illustrating a configuration for requesting scheduling for a test in a software automatic test system according to another embodiment of the present invention.
8 is a flowchart illustrating a process for requesting scheduling for a test in a software automatic test method according to another embodiment of the present invention.
9 is a flowchart illustrating a process of setting importance for a test schedule in a software automatic test method according to another embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. Advantages and features of the present invention, and methods for achieving them will be clarified with reference to embodiments described below in detail together with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only the embodiments allow the publication of the present invention to be complete, and general knowledge in the technical field to which the present invention pertains. It is provided to fully inform the holder of the scope of the invention, and the invention is only defined by the scope of the claims. The same reference numerals refer to the same components throughout the specification.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used in a sense that can be commonly understood by those skilled in the art to which the present invention pertains. In addition, terms defined in the commonly used dictionary are not ideally or excessively interpreted unless specifically defined. The terminology used herein is for describing the embodiments and is not intended to limit the present invention. In the present specification, the singular form also includes the plural form unless otherwise specified in the phrase.

이하, 도면들을 참조하여 본 발명의 몇몇 실시예들을 설명한다.Hereinafter, some embodiments of the present invention will be described with reference to the drawings.

도 1은 본 발명의 일 실시예에 따른 소프트웨어 자동 테스트 시스템의 구성도이다.1 is a block diagram of a software automatic test system according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 소프트웨어 자동 테스트 시스템(100)은 제1 단말(10-1), 제2 단말(10-2) 및 제1 호스트(30)를 포함하는 내부망(1)과 테스트 대상이 되는 복수의 서버(20-1 내지 20-3) 및 제2 호스트(40)를 포함하는 제1 데이터 센터망(2)을 포함할 수 있다.Referring to Figure 1, the software automatic test system 100 according to an embodiment of the present invention includes a first terminal 10-1, a second terminal 10-2 and a first host 30 The network 1 may include a first data center network 2 including a plurality of servers 20-1 to 20-3 to be tested and a second host 40.

여기서, 도 1에 도시된 소프트웨어 자동 테스트 시스템은 일 실시예에 따른 것이고, 그 구성 요소가 도 1에 도시된 실시예에 한정되는 것은 아니며, 필요에 따라 부가, 변경 또는 삭제될 수 있음을 유의한다.Here, it is noted that the software automatic test system shown in FIG. 1 is according to an embodiment, and its components are not limited to the embodiment shown in FIG. 1, and may be added, changed, or deleted as necessary. .

먼저, 제1 단말(10-1) 및 제2 단말(10-2)은 테스트를 실시하기 위한 소프트웨어를 개발하는 개발자의 단말을 의미한다. 예를 들어, 제1 단말(10-1) 및 제2 단말(10-2)은 마이크로서비스 아키텍처로 작은 단위의 소프트웨어를 각각 개발하는 개발자의 단말일 수 있으며, 제1 단말(10-1) 및 제2 단말(10-2)은 후술되는 제1 호스트(30)와 함께 내부망(1)에 연결된 소프트웨어 개발자의 로컬(Local) PC일 수 있다. 그러나, 이에 한정되지 않고, 다양한 현태의 소프트웨어를 개발하는 개발자의 단말일 수 있다.First, the first terminal 10-1 and the second terminal 10-2 refer to a terminal of a developer who develops software for performing tests. For example, the first terminal 10-1 and the second terminal 10-2 may be terminals of a developer who respectively develops a small unit of software in a microservice architecture, and the first terminal 10-1 and The second terminal 10-2 may be a local PC of a software developer connected to the internal network 1 together with the first host 30 to be described later. However, the present invention is not limited thereto, and may be a terminal of a developer who develops various current software.

제1 단말(10-1) 및 제2 단말(10-2) 각각은 제1 단말(10-1) 및 제2 단말(10-2)을 사용하는 각각의 개발자가 자신이 제작한 소프트웨어를 테스트하기 위한 생성한 제1 테스트 코드 및 제2 테스트 코드를 후술되는 제1 호스트(30) 및 제2 호스트(40) 중 어느 하나 이상의 호스트에 전송하여 제1 호스트(30) 및 제2 호스트에 테스트 코드가 등록되도록 할 수 있다. Each of the first terminal 10-1 and the second terminal 10-2 tests software produced by each developer using the first terminal 10-1 and the second terminal 10-2. The first test code and the second test code generated for transmission to one or more of the first host 30 and the second host 40 described below are transmitted to the first host 30 and the second host to test code Can be registered.

이때, 내부망(1)은 제1 단말(10-1), 제2 단말(10-2) 및 제1 호스트(30)를 연결하는 인트라넷(Intranet)망일 수 있다. 그러나 이에 한정되지 않는다.At this time, the internal network 1 may be an intranet network connecting the first terminal 10-1, the second terminal 10-2, and the first host 30. However, it is not limited thereto.

제1 호스트(30)는 제1 데이터 센터망(2)의 외부에 위치하고, 제1 단말(10-1) 및 제2 단말(10-2)로부터 전송되는 테스트 코드를 등록하며, 제1 단말(10-1) 및 제2 단말(10-2)로부터 테스트 수행 요청을 받는 경우, 등록된 테스트 코드에 따른 테스트를 자동 실시할 수 있다. 이를 위해 제1 호스트(30)는 제1 테스트 진행 서버(30a)를 포함할 수 있다.The first host 30 is located outside the first data center network 2, registers test codes transmitted from the first terminal 10-1 and the second terminal 10-2, and the first terminal ( 10-1) When receiving a test execution request from the second terminal 10-2, a test according to the registered test code may be automatically performed. To this end, the first host 30 may include a first test progress server 30a.

제1 테스트 진행 서버(30a)는 제1 단말(10-1) 및 제2 단말(10-2)로부터 전송된 테스트 코드를 등록하고, 추후 등록된 테스트 코드를 이용하여 제1 단말(10-1) 및 제2 단말(10-2)에 구비된 로컬 테스트 서버에서 테스트를 실시할 수 있다.The first test progress server 30a registers the test codes transmitted from the first terminal 10-1 and the second terminal 10-2, and then uses the registered test code to first terminal 10-1 ) And the local test server provided in the second terminal 10-2 may perform the test.

여기서, 테스트는 개발자가 개발한 작은 단위의 소프트웨어의 동작이 성공하는지 또는 실패하는지 여부를 실험적으로 수행하는 과정을 의미하며, 테스트 코드는 이러한 테스트를 진행하기 위한 테스트 시나리오를 의미할 수 있다. 예를 들어, 테스트 코드를 이용하여 진행되는 테스트는, API(Application programming interface)에 포함된 함수를 호출하는 테스트이며, 제1 테스트 진행 서버(30a)는 RESTful API 방식을 이용하여 API에 포함된 함수를 호출하고, 함수 호출에 대한 응답(return)값을 이용하여 소프트웨어의 동작이 성공하는지 또는 실패하는지를 판단하는 테스트일 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 작은 단위의 소프트웨어 동작의 성공 및 실패 여부를 테스트하기 위한 어떠한 방법이든 적용이 가능하다.Here, the test means a process of experimentally performing whether the operation of a small unit of software developed by a developer succeeds or fails, and the test code may mean a test scenario for performing such a test. For example, a test performed using the test code is a test that calls a function included in an API (Application Programming Interface), and the first test progress server 30a is a function included in the API using a RESTful API method It may be a test that determines whether the operation of the software is successful or failed by calling, and using a return value for a function call. However, the present invention is not limited to this, and any method for testing the success or failure of a small unit of software operation may be applied.

복수의 서버(20-1 내지 20-3)는 웹 플랫폼 서비스를 제공하기 위한 대용량 3계층(3-tier) 서버를 구성하는 각각의 레이어일 수 있다. 예를 들어, 복수의 서버(20-1 내지 20-3) 각각은 로드 밸런서(20-1), 웹(20-2) 및 WAS(20-3)을 포함할 수 있으며, 로드 밸런서(20-1), 웹(20-2) 및 WAS(20-3)가 각각의 레이어로써 중첩되는 구조를 형성함으로써 3계층 서버가 구현될 수 있다.The plurality of servers 20-1 to 20-3 may be respective layers constituting a high-capacity 3-tier server for providing web platform services. For example, each of the plurality of servers 20-1 to 20-3 may include a load balancer 20-1, a web 20-2, and a WAS 20-3, and a load balancer 20- 1), a three-tier server can be implemented by forming a structure in which the web 20-2 and the WAS 20-3 overlap each layer.

이때, 제1 데이터 센터망(2)은 실제 하드웨어들로 구현되지 않고, 서비스로서의 인프라스트럭처(Infrastructure as a Service, IaaS)의 클라우드 서비스로부터 제공되는 서버, 데스크톱 컴퓨터 밑 스토리지를 이용하여 가상의 소프트웨어로 구성되는 서버의 집합을 의미한다. At this time, the first data center network 2 is not implemented with real hardware, but is implemented as virtual software using storage provided under a server or desktop computer provided from a cloud service of Infrastructure as a Service (IaaS). It means the set of servers to be configured.

제2 호스트(40)는 제1 데이터 센터망(2)의 내부에 위치하고, 제1 단말(10-1) 및 제2 단말(10-2)로부터 전송되는 테스트 코드를 등록하며, 제1 단말(10-1) 및 제2 단말(10-2)로부터 테스트 수행 요청을 받는 경우, 등록된 테스트 코드에 따른 테스트를 자동 실시할 수 있다. 이를 위해, 제2 호스트(40)는 제2 테스트 진행 서버(40a)를 포함할 수 있다.The second host 40 is located inside the first data center network 2, registers test codes transmitted from the first terminal 10-1 and the second terminal 10-2, and the first terminal ( 10-1) When receiving a test execution request from the second terminal 10-2, a test according to the registered test code may be automatically performed. To this end, the second host 40 may include a second test progress server 40a.

제2 테스트 진행 서버(40a)는 제1 단말(10-1) 및 제2 단말(10-2)로부터 전송된 테스트 코드를 등록하고, 추후 등록된 테스트 코드를 이용하여 로드 밸런서(20-1), 웹(20-2) 및 WAS(20-3)에서 테스트를 실시할 수 있다.The second test progress server 40a registers the test codes transmitted from the first terminal 10-1 and the second terminal 10-2, and then uses the registered test code to load load balancer 20-1. , Web 20-2 and WAS 20-3.

일 실시예에서, 제2 테스트 진행 서버(40a)는 제1 테스트 진행 서버(30a)에 하나 이상의 테스트 코드가 등록되는 경우, 제2 테스트 진행 서버(40a)와 제1 테스트 진행 서버(30a)간의 하나 이상의 테스트 코드 동기화를 수행할 수 있다. 그러나 이에 한정되지 않고, 제1 단말(10-1) 및 제2 단말(10-2)로부터 제2 테스트 진행 서버(40a)에 테스트 코드가 등록되는 경우에도 제2 테스트 진행 서버(40a)와 제1 테스트 진행 서버(30a)간의 테스트 코드 동기화를 수행할 수 있다. 이하, 도 2 내지 도 6을 참조하여, 본 발명의 일 실시예에 따른 소프트웨어 자동 테스트 시스템을 이용하여 소프트웨어를 자동으로 테스트하는 방법에 대하여 설명하도록 한다.In one embodiment, the second test progress server (40a) between the second test progress server (40a) and the first test progress server (30a), when one or more test codes are registered in the first test progress server (30a) One or more test code synchronizations can be performed. However, the present invention is not limited thereto, and even when the test code is registered in the second test proceeding server 40a from the first terminal 10-1 and the second terminal 10-2, the second test proceeding server 40a and the second test proceeding server 40a 1 Test code synchronization between the test progress servers 30a may be performed. Hereinafter, a method for automatically testing software using a software automatic test system according to an embodiment of the present invention will be described with reference to FIGS. 2 to 6.

이하, 도 2를 참조하여 본 발명의 다른 실시예에 따른 소프트웨어 자동 테스트 방법을 설명한다.Hereinafter, an automatic software test method according to another embodiment of the present invention will be described with reference to FIG. 2.

단계 S210에서, 제1 데이터 센터망 외부의 제1 호스트에 구축된 제1 테스트 진행 서버는 제1 단말(10-1) 및 제2 단말(10-2)로부터 전송되는 하나 이상의 테스트 코드를 등록할 수 있다.In step S210, the first test progress server built in the first host outside the first data center network registers one or more test codes transmitted from the first terminal 10-1 and the second terminal 10-2. Can be.

다음으로 단계 S120에서, 제1 데이터 센터망(2) 내부의 제2 호스트(40)에 구축된 제2 테스트 진행 서버(40a)와 제1 테스트 진행 서버(30a) 사이에서 테스트 코드의 동기화가 수행될 수 있다. 상기 동기화에 의하여 제1 테스트 진행 서버(30a)와 제2 테스트 진행 서버(40a)는 서로 동일한 테스트 코드를 갖게 될 것이다. 예를 들어, 개발자가 생성한 제1 테스트 코드를 내부망(1)에 구축된 제1 테스트 진행 서버(30a)에 등록하면, 제1 테스트 진행 서버(30a)와 제2 테스트 진행 서버(40a)가 동기화되어 제1 테스트 진행 서버(30a)에 등록된 제1 테스트 코드가 제2 테스트 진행 서버(40a)로 전달되고, 제2 테스트 진행 서버(40a)는 제 테스트 코드를 등록할 수 있다.Next, in step S120, synchronization of test codes is performed between the second test progress server 40a and the first test progress server 30a built in the second host 40 inside the first data center network 2. Can be. By the synchronization, the first test progress server 30a and the second test progress server 40a will have the same test code. For example, if the first test code generated by the developer is registered in the first test progress server 30a built in the internal network 1, the first test progress server 30a and the second test progress server 40a are registered. Is synchronized, the first test code registered in the first test progress server 30a is transmitted to the second test progress server 40a, and the second test progress server 40a can register the first test code.

보다 구체적으로, 제1 테스트 진행 서버(30a)에 테스트 코드가 등록된 경우, 제1 테스트 진행 서버(30a)는 제2 테스트 진행 서버(40a)로 테스트 코드 등록 신호를 송신할 수 있고, 테스트 코드 등록 신호를 수신한 제2 테스트 진행 서버(40a)는 제1 테스트 진행 서버(30a)에 등록된 테스트 코드를 추출(Extract), 변환(Transforms) 및 적재(Loads)하는 ETL 방식을 이용하여 제1 테스트 진행 서버(30a)에 등록된 테스트 코드를 가져와 등록할 수 있다. 그러나, 이에 한정되지 않고, 제1 테스트 진행 서버(30a)와 제2 테스트 진행 서버(40a)가 동기화되어, 각각 등록된 테스트 코드를 공유할 수 있는 어떠한 방법이든 적용 가능하다.More specifically, when a test code is registered in the first test progress server 30a, the first test progress server 30a may transmit a test code registration signal to the second test progress server 40a, and the test code The second test progress server 40a that receives the registration signal is the first using the ETL method of extracting, transforming, and loading test codes registered in the first test progress server 30a. The test code registered in the test progress server 30a can be obtained and registered. However, the present invention is not limited thereto, and any method capable of sharing the registered test codes may be applied to the first test progress server 30a and the second test progress server 40a in synchronization.

도 2에는 동기화의 방향이 제1 테스트 진행 서버에서 제2 테스트 진행 서버로 진행 되는 것으로 도시되어 있으나, 반대의 방향으로, 즉 제2 테스트 진행 서버에서 제1 테스트 진행 서버로 동기화가 진행될 수도 있음은 물론이다. 이 때에는, 제1 데이터 센터(2)로 파견된 개발자가, 제1 데이터 센터망(2)에 접속할 수 있는 환경에서 개발 작업 및 그 결과를 테스트 하기 위한 테스트 코드를 제2 테스트 진행 서버(40a)에 등록하고, 그 결과가 상기 동기화를 통해 제1 데이터 센터망(2) 외부로 공유 되는 것으로 이해할 수 있을 것이다.Although the direction of synchronization is shown to proceed from the first test progress server to the second test progress server in FIG. 2, the synchronization may proceed in the opposite direction, that is, from the second test progress server to the first test progress server. Of course. At this time, in the environment where the developer dispatched to the first data center 2 can access the first data center network 2, the test code for testing the development work and its results is performed by the second test server 40a. You can understand that the result is shared with the outside of the first data center network 2 through the synchronization.

S110단계 및 S120단계를 거쳐 테스트를 실시하기 위한 준비 단계가 완료된 이후, 단계 S130에서 제1 단말(10-1)로부터 제2 테스트 진행 서버(40a)로 테스트 수행 요청이 송신될 수 있다. 이 때, 제1 단말(10-1)은 터널링을 통하여 테스트 대상 호스트에 접속하는 등의 번거로운 절차를 거칠 필요 없이, 제2 테스트 진행 서버(40a)에 접속하여, 테스트 수행 요청을 송신하기면 하면 되는 효과를 얻을 수 있다. After the preparation steps for performing the test are completed through steps S110 and S120, a test execution request may be transmitted from the first terminal 10-1 to the second test progress server 40a in step S130. At this time, if the first terminal 10-1 does not have to go through a cumbersome procedure such as accessing the host to be tested through tunneling, it connects to the second test progress server 40a and transmits a test execution request. Can be achieved.

이후 설명하겠으나, 테스트 대상 호스트가 제1 데이터 센터망(2) 내부에 위치하는 경우, 상기 테스트 대상 호스트에 대하여 자동 테스트를 수행하는 것은 제2 테스트 진행 서버(40a)가 수행하게 될 것이다. 제2 테스트 진행 서버(40a)와 테스트 대상 호스트는 함께 제1 데이터 센터망(2) 내부에 위치하므로, 제2 테스트 진행 서버(40a)가 테스트 대상 호스트에 접속하기 위해 터널링을 수행하는 등의 조치를 취하지 않아도 되는 점은 쉽게 이해될 수 있을 것이다.As will be described later, when the host to be tested is located inside the first data center network 2, the second test progress server 40a will perform the automatic test on the host to be tested. Since the second test progress server 40a and the host under test are located inside the first data center network 2 together, measures such as the second test progress server 40a performing tunneling to access the host under test It is easy to understand that you do not have to take the.

여기서, 테스트 수행 요청은, 제2 테스트 진행 서버(40a)에 등록된 복수의 테스트 코드 중 어느 하나에 대한 지정을 포함할 수 있다. 이 때, 테스트를 요청하는 사용자가 작성하지 않은 테스트 코드도 테스트 대상으로 지정할 수 있음은 물론이다.Here, the test execution request may include designation of any one of a plurality of test codes registered in the second test progress server 40a. Of course, test code not written by the user requesting the test can be designated as a test target.

다음으로, 단계 S140에서, 상기 테스트 수행 요청을 수신한 제2 테스트 진행 서버(40a)는, 상기 테스트 수행 요청에서 지정된 테스트 코드에 따라 테스트를 자동 실시한다. 예를 들어, 테스트 대상으로 지정된 테스트 코드가 마이크로서비스 형태의 테스트 대상 소프트웨어에 대한 스트레스 테스트로서 반복 호출하는 것이라면, 테스트 진행 서버는 상기 테스트 대상 소프트웨어의 테스트 대상 API를 반복하여 호출하게 될 것이다.Next, in step S140, the second test progress server 40a, which has received the test execution request, automatically performs a test according to the test code specified in the test execution request. For example, if the test code designated as the test object is to repeatedly call as a stress test for the software under test in the form of microservices, the test progress server will repeatedly call the API under test of the software under test.

마이크로서비스 형태의 소프트웨어가 테스트 대상인 경우, API의 호출 만으로 소프트웨어가 정상 동작하는지 테스트 할 수 있고, 테스트에 있어서 사용자 입력에 대한 적절한 처리 등은 확인이 불필요 하다. 따라서, 그 자체도 소프트웨어인 테스트 진행 서버가 테스트를 진행하기에 가장 적절한 형태의 소프트웨어가 마이크로서비스 형태의 소프트웨어이다.When the microservice type software is to be tested, it is possible to test whether the software operates normally only by calling the API, and in the test, it is not necessary to check the proper processing of the user input. Therefore, the most suitable form of software for the test progress server, which is itself a software, to perform the test, is microservice type software.

이하, 도 3 및 4를 참조하여, 도 2를 통해 설명한 소프트웨어 자동 테스트 방법을 이용하여 테스트 대상 호스트가 내부망(1) 내부에 위치한 경우의 테스트 실시방법과 제1 데이터 센터망(2) 내부에 위치한 경우의 테스트 실시 방법을 설명하도록 한다. 먼저, 도 3을 참조하여, 테스트 대상 호스트가 내부망(1) 내부에 위치한 경우에 대하여 설명한다.Hereinafter, with reference to FIGS. 3 and 4, the test execution method when the host under test is located inside the internal network 1 and the first data center network 2 using the software automatic test method described with reference to FIG. Describe how to conduct the test if located. First, with reference to FIG. 3, a case in which the host under test is located inside the internal network 1 will be described.

도 3은 본 발명의 몇몇 실시예들에서 테스트를 진행하고자 하는 대상이 내부망 내 단말에 구현된 테스트 서버인 경우의 테스트 실시 방법을 설명하기 위한 순서도이다.FIG. 3 is a flow chart for explaining a test execution method when a target to be tested is a test server implemented in a terminal in an internal network in some embodiments of the present invention.

도 3을 참조하면, 먼저, 제1 단말(10-1)이 소프트웨어 테스트를 실시하기 위한 제1 테스트 코드를 제1 테스트 진행 서버(30a)로 송신할 수 있고(S210), 제1 테스트 진행 서버(30a)는 S210단계에서 송신된 제1 테스트 코드를 등록할 수 있다.Referring to FIG. 3, first, the first terminal 10-1 may transmit a first test code for performing a software test to the first test progress server 30a (S210), and the first test progress server (30a) may register the first test code transmitted in step S210.

이후, 제1 단말(10-1)이 내부망(1) 내부에 위치하는 제1 단말(10-1) 및 제2 단말(10-2) 중 어느 하나의 단말에 포함된 로컬 테스트 서버에서 테스트를 실시하기 위하여 제1 테스트 진행 서버(30a)로 제1 단말(10-1) 및 제2 단말(10-2) 중 어느 하나의 단말에 포함된 로컬 테스트 서버에 대한 테스트 수행 요청을 송신할 수 있고(S220), 이에 따라 제1 테스트 진행 서버(30a)는 등록된 제1 테스트 코드를 이용하여 제1 단말(10-1) 및 제2 단말(10-2) 중 어느 하나의 단말에 포함된 로컬 테스트 서버에서 제1 테스트 코드에 의한 테스트를 실시할 수 있다(S230).Thereafter, the first terminal 10-1 is tested in a local test server included in any one of the first terminal 10-1 and the second terminal 10-2 located inside the internal network 1 In order to perform the first test in progress server 30a may transmit a request to perform a test for a local test server included in any one of the terminal of the first terminal 10-1 and the second terminal 10-2 (S220), and accordingly, the first test progress server 30a is included in any one of the first terminal 10-1 and the second terminal 10-2 using the registered first test code. The test using the first test code may be performed at the local test server (S230).

보다 구체적으로, 제1 단말(10-1)이 자신의 단말 내의 로컬 테스트 서버에서 제1 테스트 코드에 의한 테스트를 실시하고자 하는 경우, 제1 단말의 로컬 테스트 서버에 대한 IP 정보를 포함하는 테스트 수행 요청을 제1 테스트 진행 서버(30a)로 송신할 수 있고, 제1 테스트 진행 서버(30a)는 테스트 수행 요청에 포함된 IP정보를 이용하여 해당 IP에 대응하는 로컬 테스트 서버에 접속하여 제1 테스트 코드에 의한 테스트를 실시할 수 있다.More specifically, when the first terminal 10-1 wants to perform a test using the first test code in the local test server in its own terminal, a test including IP information for the local test server of the first terminal is performed. The request may be transmitted to the first test progress server 30a, and the first test progress server 30a may access the local test server corresponding to the corresponding IP using the IP information included in the test execution request to perform the first test. You can test by code.

이후, 제1 테스트 진행 서버(30a)는 제1 테스트 코드에 의한 테스트 실시가 완료되는 경우, 테스트에 대한 결과를 도출하고, 테스트 수행 요청을 송신한 제1 단말(10-1)로 테스트 결과 정보를 제공할 수 있다(S240).Thereafter, when the test execution by the first test code is completed, the first test progress server 30a derives a result for the test, and the test result information is transmitted to the first terminal 10-1 that transmits a test execution request. It may provide (S240).

일 실시예에서, 제1 테스트 진행 서버(30a)는 제1 호스트(30) 내에 별도로 구비된 데이터베이스(미도시)에 테스트 결과 정보를 저장할 수 있으며, 제1 단말(10-1)로부터 테스트 결과 조회 요청이 송신되는 경우, 저장된 테스트 결과 정보를 제공할 수 있다.In one embodiment, the first test progress server 30a may store test result information in a database (not shown) separately provided in the first host 30, and query test results from the first terminal 10-1 When a request is sent, stored test result information can be provided.

즉, 제1 단말(10-1)이 같은 내부망(1)에 위치하는 제2 단말(10-2)의 로컬 테스트 서버에서 테스트를 진행하고자 할 때, 같은 내부망(1)에 위치하는 제1 테스트 진행 서버(30a)에 테스트 코드를 등록하고, 등록된 테스트 코드를 이용하여 제2 단말(10-2)의 로컬 테스트 서버에서 테스트를 진행함으로써, 테스트 코드를 공유하기 위해 테스트 코드를 관리자 명령으로 파일화하고, 파일화된 테스트 코드를 이메일 또는 파일 전송 도구로 전송하는 과정이 삭제되어 개발자들간의 테스트 코드 공유가 수월해 질 수 있다는 이점이 있다. 다음으로 도 4를 참조하여 테스트 대상 호스트가 데이터 센터망 내부에 위치한 경우에 대하여 설명한다.That is, when the first terminal 10-1 is to perform the test in the local test server of the second terminal 10-2 located in the same internal network (1), the agent located in the same internal network (1) 1 Register the test code on the test progress server 30a, and conduct the test on the local test server of the second terminal 10-2 using the registered test code, thereby instructing the test code to share the test code as an administrator command. The process of filing the file and sending the filed test code to an e-mail or file transfer tool is eliminated, so it is easy to share test code among developers. Next, a case in which the host under test is located inside the data center network will be described with reference to FIG. 4.

도 4는 본 발명의 본 발명의 몇몇 실시예들에서 테스트를 진행하고자 하는 서버의 위치가 데이터 센터망 내의 호스트인 경우의 테스트 실시 방법을 설명하기 위한 순서도이다.FIG. 4 is a flow chart for explaining a method of performing a test in a case where a server to be tested is a host in a data center network in some embodiments of the present invention.

도 4를 참조하면, 먼저 제1 단말(10-1) 및 제2 단말(10-2)로부터 제1 데이터 센터망(2) 내부에 위치하는 복수의 서버(20-1 내지 20-3) 중 어느 하나의 서버를 테스트 대상 호스트로 하여 테스트를 실시하도록 요청하는 테스트 수행 요청을 제2 테스트 진행 서버(40a)로 송신하면, 제2 테스트 진행 서버(40a)가 제1 데이터 센터망(2) 내부의 호스트 정보를 이용하여 테스트 대상 호스트에 대한 식별자에 대응하는 테스트 대상 호스트의 접속 정보를 얻을 수 있다(S310).Referring to FIG. 4, first of the plurality of servers 20-1 to 20-3 located inside the first data center network 2 from the first terminal 10-1 and the second terminal 10-2. When a test execution request requesting to perform a test is performed by using any one server as a test target host, the second test progress server 40a is internal to the first data center network 2 when the test execution request is sent to the second test progress server 40a. The access information of the test target host corresponding to the identifier for the test target host may be obtained using the host information of (S310).

여기서, 테스트 수행 요청은, 복수의 서버(20-1 내지 20-3) 중 어느 하나의 서버를 테스트 대상 호스트로 하여 테스트를 실시하도록 하는 요청을 의미한다. 예를 들어, 상기 테스트 수행 요청은 테스트 대상 호스트를 가리키는 호스트 식별자와 테스트 대상 호스트에서 진행하고자 하는 테스트 코드에 대한 정보를 포함할 수 있다. Here, the test execution request means a request to perform the test by using any one of the plurality of servers 20-1 to 20-3 as a host to be tested. For example, the test execution request may include a host identifier indicating a host to be tested and information on a test code to be performed by the host to be tested.

다음으로, 제2 테스트 진행 서버(40a)는 테스트 대상 호스트의 접속 정보를 이용하여 호스트 식별자에 따른 호스트 접속 URL을 생성할 수 있다(S320). 예를 들어, 제2 테스트 진행 서버(40a)는 제1 데이터 센터망(2)에 포함된 로드 밸런서(20-1), 웹(20-2) 및 WAS(20-3)마다 각각 Host_1, Host_2 및 Host_3의 호스트 식별자를 부여할 수 있고, 부여한 식별자마자 해당 호스트에 접속할 수 있는 접속 주소를 매칭하여 저장할 수 있다. 이후, 제1 단말(10-1) 및 제2 단말(10-2)로부터 송신되는 테스트 수행 요청에 포함된 테스트 대상 정보가 Host_1을 포함하는 경우, Host_1에 해당하는 로드 밸런서(20-1)에 접속할 수 있는 접속 주소를 이용하여 호스트 접속 URL을 생성할 수 있다.Next, the second test progress server 40a may generate a host access URL according to the host identifier using the access information of the host under test (S320). For example, the second test progress server 40a is Host_1 and Host_2 for each load balancer 20-1, web 20-2, and WAS 20-3 included in the first data center network 2, respectively. And the host identifier of Host_3, and the access address that can access the host as soon as the assigned identifier can be matched and stored. Thereafter, when the test target information included in the test execution request transmitted from the first terminal 10-1 and the second terminal 10-2 includes Host_1, the load balancer 20-1 corresponding to Host_1 is A host access URL can be generated using a connect address that can be accessed.

다음으로, 제2 테스트 진행 서버(40a)는 S320단계에서 생성한 호스트 접속 URL을 이용하여 테스트 대상 호스트에 직접 접속할 수 있다(S330). 예를 들어, 제2 테스트 진행 서버(40a)는 호스트 접속 URL을 분석하여 테스트 대상 호스트를 직접 호출하는 방식으로 테스트 대상 호스트에 직접 접속할 수 있다.Next, the second test progress server 40a may directly access the host under test using the host access URL generated in step S320 (S330). For example, the second test progress server 40a may directly access the test target host by analyzing the host access URL and directly calling the test target host.

이후, 제2 테스트 진행 서버(40a)는 테스트 대상 호스트에 접속되면, 직접 접속한 테스트 대상 호스트에 대하여 제2 테스트 진행 서버(40a)에 등록된 테스트 코드에 따른 테스트를 자동 실시할 수 있다(S330). Thereafter, when the second test proceeding server 40a is connected to the host to be tested, a test according to the test code registered in the second test proceeding server 40a may be automatically performed on the host directly connected to the test (S330). ).

제1 데이터 센터망(2) 외부에 위치하는 제1 단말(10-1) 또는 제2 단말(10-2)이 제1 데이터 센터망(2) 내부에 위치하는 테스트 대상 호스트에서 테스트를 진행하고자 할 때, 제2 테스트 진행 서버(40a)가 상기 호스트 접속 URL을 통해 테스트 대상 서버에 접속하고 테스트 코드 동기화를 통해 제2 테스트 진행 서버(40a)에 등록된 테스트 코드를 이용하여 테스트를 실시한다. 따라서, 테스트 대상 호스트에 맞는 테스트 코드를 개별적으로 생성할 필요가 없고, 제1 데이터 센터망(2) 내부에 위치하는 테스트 대상 서버와 접속하기 위하여 개별적으로 터널링을 설정할 필요가 없어 터널링 설정에 따른 네트워크 우회로 인한 부하 부담이 적어지기 때문에 테스트 대상 호스트에 대한 응답시간 측정 테스트를 정확하게 수행할 수 있다는 효과를 얻을 수 있다.The first terminal 10-1 or the second terminal 10-2 located outside the first data center network 2 is to be tested in a host to be tested located inside the first data center network 2 When performing, the second test progress server 40a connects to the test target server through the host access URL and performs testing using the test code registered in the second test progress server 40a through test code synchronization. Therefore, there is no need to individually generate test codes suitable for the host under test, and there is no need to individually set up tunneling to access the test target server located inside the first data center network 2, so the network according to the tunneling setup Since the load burden due to the bypass is reduced, it is possible to obtain an effect of accurately performing a response time measurement test for the host under test.

이상, 도 1 내지 도 4를 참조하여, 본 발명의 몇몇 실시예들에 따르면, 내부망에 위치하는 제1 호스트에 제1 테스트 진행 서버를 두고, 제1 데이터 센터망에 위치하는 제2 호스트에 제2 테스트 진행 서버를 둠으로써, 테스트 대상 호스트가 내부망 또는 제1 데이터 센터망 어디에 위치하든지 동일한 방식으로 소프트웨어 테스트를 진행할 수 있음을 설명하였다. As described above, with reference to FIGS. 1 to 4, according to some embodiments of the present invention, a first test progress server is placed in a first host located in the internal network, and a second host is located in the first data center network. It has been explained that by placing a second test server, the software test can be performed in the same way wherever the host under test is located in the internal network or the first data center network.

그런데, 본 발명의 다른 몇몇 실시예들에 따르면, 테스트 진행 서버가 존재하지 않는 망에 연결된 호스트에 대한 소프트웨어 테스트 까지도 동일한 방식으로 진행 될 수 있도록, 그 테스트 대상 호스트를 둘 수 있는 범위가 확장된다. 이하, 도 5 및 6을 참조하여, 제1 데이터 센터망(2)을 통해 다른 데이터 센터망 내부에 포함된 테스트 대상 호스트에서 테스트를 실시하는 구성에 대하여 설명하도록 한다.However, according to some other embodiments of the present invention, the range in which the host to be tested can be placed is extended so that the software test for a host connected to a network where the test server is not present can be performed in the same manner. Hereinafter, with reference to FIGS. 5 and 6, a configuration for performing a test on a test target host included in another data center network through the first data center network 2 will be described.

도 5는 본 발명의 또 다른 실시예에 따른 소프트웨어 자동 테스트 시스템의 구성도이며, 도 6은 본 발명의 또 다른 실시예에 따른 소프트웨어 자동 테스트 방법을 설명하기 위한 순서도이다.5 is a configuration diagram of an automatic software test system according to another embodiment of the present invention, and FIG. 6 is a flowchart illustrating an automatic software test method according to another embodiment of the present invention.

도 5 및 6을 참조하면, 먼저, 제1 단말(10-1)로부터 제1 데이터 센터망(2) 외부의 또 다른 제2 데이터 센터망(3)에 포함된 포함된 복수의 서버(20a) 및 제3 데이터 센터망(4)에 포함된 복수의 서버(20b) 중 어느 하나의 서버를 테스트 대상 호스트로 하여 테스트를 실시하도록 요청하는 테스트 수행 요청을 제2 호스트(40)의 제2 테스트 진행 서버(30a)로 송신하면, 제2 테스트 진행 서버(30a)는 기 입력된 제2 데이터 센터망(3) 및 제3 데이터 센터망(4)의 프록시 서버 주소를 이용하여 테스트 대상 호스트에 대한 정보를 포함하는 테스트 의뢰를 제2 데이터 센터망(3) 및 제3 데이터 센터망(4)의 프록시 서버에 송신할 수 있다.5 and 6, first, a plurality of servers 20a included in another second data center network 3 outside the first data center network 2 from the first terminal 10-1 And a second test performed by the second host 40 to perform a test request requesting to perform the test by using any one of the plurality of servers 20b included in the third data center network 4 as a test target host. When transmitting to the server 30a, the second test processing server 30a uses the pre-entered proxy server addresses of the second data center network 3 and the third data center network 4 for information on the host under test. A test request including a can be transmitted to the proxy servers of the second data center network 3 and the third data center network 4.

예를 들어, 제2 데이터 센터망(3)에 포함된 복수의 서버(20a)중 어느 하나의 서버를 테스트 대상 호스트로 하여 테스트를 실시하도록 요청하는 테스트 수행 요청이 제2 테스트 진행 서버(40a)로 송신되면, 제2 테스트 진행 서버(30a)는 기 입력된 제2 데이터 센터망(3)의 프록시 서버 주소(10.0.0.1)를 이용하여 테스트 대상 호스트에 대한 정보를 포함하는 테스트 의뢰 제2 데이터 센터망(3)의 프록시 서버(50a)에 송신할 수 있다.For example, a request to perform a test requesting to perform a test using any one of the plurality of servers 20a included in the second data center network 3 as a host to be tested is the second test progress server 40a When transmitted to, the second test proceeding server 30a uses the proxy server address (10.0.0.1) of the previously input second data center network 3 to test second data including test host information. It can transmit to the proxy server 50a of the center network 3.

여기서, 테스트 의뢰는, 테스트 대상 데이터 센터망에 대한 정보, 테스트 대상 데이터 센터망에 포함된 테스트 대상 호스트에 대한 정보를 포함하며, 테스트 대상 데이터 센터망의 테스트 대상 호스트에서 특정 테스트를 실시할 것을 요청하는 정보일 수 있다. 예를 들어, 테스트 의뢰는 상기 프록시 서버 주소, 테스트 대상 호스트 식별자 및 URI(Uniform Resource Identifier)를 연결한 URL(Uniform Resource Locator)일 수 있으며, 테스트 의뢰는 "http://프록시 서버 주소/테스트 대상 호스트 식별자/포트/URI" 형태의 URL일 수 있다.Here, the test request includes information about the data center network under test and information about the host under test included in the data center network under test, and requests to perform a specific test on the host under test in the data center network under test It may be information. For example, the test request may be a URL (Uniform Resource Locator) that connects the proxy server address, the host ID to be tested, and a Uniform Resource Identifier (URI), and the test request is "http: // proxy server address / test subject. It may be a URL in the form of a host identifier / port / URI ".

또한, 여기서, 테스트 대상 호스트 식별자는 제2 테스트 진행 서버에 의하여 생성되고 등록되며, 테스트 대상 호스트를 식별할 수 있는 정보가 포함된 테스트 대상 호스트 고유의 식별자를 의미한다.In addition, the host ID of the test target is generated and registered by the second test progress server, and means a unique identifier of the test target host including information capable of identifying the host under test.

일 실시예에서, 제1 단말(10-1)은 통신을 위한 네트워트(5)를 통해 제1 데이터 센터망(2) 외부의 또 다른 제2 데이터 센터망(3)에 포함된 포함된 복수의 서버(20a) 및 제3 데이터 센터망(4)에 포함된 복수의 서버(20b) 중 어느 하나의 서버를 테스트 대상 호스트로 하여 테스트를 실시하도록 요청하는 테스트 수행 요청을 송신할 수 있다. 또한, 제2 테스트 진행 서버(30a)는 통신을 위한 네트워트(5)를 통해 기 입력된 제2 데이터 센터망(3) 및 제3 데이터 센터망(4)의 프록시 서버 주소를 이용하여 테스트 대상 호스트에 대한 정보를 포함하는 테스트 의뢰를 제2 데이터 센터망(3) 및 제3 데이터 센터망(4)의 프록시 서버에 송신할 수 있다.In one embodiment, the first terminal 10-1 includes a plurality of included in another second data center network 3 outside the first data center network 2 through the network 5 for communication. The server 20a and the server 20b included in the third data center network 4 may transmit a test execution request requesting to perform the test using any one of the servers as a test target host. In addition, the second test proceeding server 30a uses the proxy server addresses of the second data center network 3 and the third data center network 4 that are previously input through the network 5 for communication. The test request including the information on can be transmitted to the proxy servers of the second data center network 3 and the third data center network 4.

다음으로, 테스트 의뢰를 받은 제2 데이터 센터망(3) 내의 프록시 서버(50a)가 테스트 의뢰에서 프록시 서버 주소를 제외하고, 테스트 대상 호스트 식별자를 테스트 대상 호스트의 접속 주소로 변환함으로써 URL을 변형할 수 있다. 예를 들어, 제2 데이터 센터망(3) 내의 프록시 서버(50a)는 "http://프록시 서버 주소/테스트 대상 호스트 식별자/포트/URI" 형태의 URL를 "http://테스트 대상 호스트 접속 주소: 포트/URI" 형태로 변형할 수 있다.Next, the proxy server 50a in the second data center network 3 under the test request transforms the URL by excluding the proxy server address from the test request and converting the host ID to be tested into the connection address of the host under test. Can be. For example, the proxy server 50a in the second data center network 3 connects the URL in the form of "http: // proxy server address / test target host identifier / port / URI" to "http: // test target host. Address: Port / URI ".

다음으로, 제2 데이터 센터망(3) 내의 프록시 서버(50a)는 변형된 URL을 호출하고(S43), 호출한 테스트 대상 호스트에 대하여 테스트를 자동 실시할 수 있다(S440).Next, the proxy server 50a in the second data center network 3 may call the modified URL (S43) and automatically perform a test on the called test target host (S440).

즉, 제1 데이터 센터망(2) 외부의 또 다른 데이터 센터망(제2 데이터 센터망(3) 및 제3 데이터 센터망(4)에 포함된 테스트 대상 호스트에 대하여 테스트를 진행하기 위하여, 데이터 센터망마다 각각 중계를 위한 프록시 서버를 구축함으로써, 데이터 센터마다 각각 테스트를 진행하기 위한 테스트 코드를 각각 생성하거나 수정하지 않고 테스트가 가능하다는 이점이 있다. 이하, 도 7 내지 도 9를 참조하여 테스트를 스케줄링하고, 테스트 스케줄에 따라 테스트를 진행하는 구성에 대하여 설명하도록 한다.That is, another data center network outside the first data center network 2 (in order to perform a test on a host to be tested included in the second data center network 3 and the third data center network 4), By constructing a proxy server for each relay in each center network, there is an advantage in that test can be performed without generating or modifying test codes for each test in each data center. To schedule, and to describe the configuration for performing the test according to the test schedule.

도 7은 본 발명의 또 다른 실시예에 따른 소프트웨어 자동 테스트 시스템에 있어서, 테스트에 대한 스케줄링을 요청하는 구성을 도시한 도면이며, 도 8은 본 발명의 또 다른 실시예에 따른 소프트웨어 자동 테스트 방법에 있어서, 테스트에 대한 스케줄링을 요청 과정을 설명하기 위한 순서도이다.7 is a diagram illustrating a configuration for requesting scheduling for a test in a software automatic test system according to another embodiment of the present invention, and FIG. 8 is a method for automatically testing a software according to another embodiment of the present invention. Here, it is a flowchart for explaining a process for requesting scheduling for a test.

먼저, 도 7을 참조하면, 제1 단말(10-1) 및 제2 단말(10-2)은 제2 호스트(40)에 포함된 제2 테스트 진행 서버(40a)로 테스트를 실시하기 위한 스케줄링 요청을 송신할 수 있고, 제2 테스트 진행 서버(40a)는 스케줄링 요청에 따라 테스트 실시에 대한 테스트 스케줄을 생성하고 생성된 테스트 스케줄에 따라 테스트를 진행하여 도출된 결과를 제1 단말(10-1) 및 제2 단말(10-2)로 제공할 수 있다.First, referring to FIG. 7, the first terminal 10-1 and the second terminal 10-2 are scheduled to conduct tests with the second test progress server 40a included in the second host 40. The request can be transmitted, and the second test proceeding server 40a generates a test schedule for the test execution according to the scheduling request and performs the test according to the generated test schedule to see the result derived from the first terminal 10-1 ) And the second terminal 10-2.

보다 구체적으로, 도 8을 참조하면, 먼저, 제1 단말(10-1) 및 제2 단말(10-2)에서 각각 제1 테스트 코드 및 제2 테스트 코드를 제2 테스트 진행 서버(40a)에 등록할 수 있고, 제1 테스트 코드 및 제2 테스트 코드를 이용하여 테스트를 실시하기 위한 스케줄링을 요청할 수 있다(S510). More specifically, referring to FIG. 8, first, the first test code and the second test code are respectively transmitted to the second test progress server 40a by the first terminal 10-1 and the second terminal 10-2. It is possible to register and request scheduling for conducting the test using the first test code and the second test code (S510).

다음으로, S510단계에서 스케줄링을 요청받은 제2 테스트 진행 서버(40a)는 기 설정된 주기마다 테스트를 자동 실시하도록 하는 테스트 스케줄 설정할 수 있다(S520). 예를 들어, 제2 테스트 진행 서버(40a)는 기 등록된 제1 테스트 코드를 이용하여 실시되는 제1 테스트에 대하여 제1 주기(T1) 및 제1 테스트 범위(R1)를 설정하고, 제1 주기(T1)마다 제1 테스트 범위(R1)로 제1 테스트를 실시하는 제1 테스트 스케줄을 생성할 수 있다.Next, the second test progress server 40a, which is requested to be scheduled in step S510, may set a test schedule to automatically perform a test every predetermined period (S520). For example, the second test proceeding server 40a sets a first period T 1 and a first test range R 1 for a first test performed using a pre-registered first test code, A first test schedule for performing the first test in the first test range R 1 for each first cycle T 1 may be generated.

또한, 제2 테스트 진행 서버(40a)는 기 등록된 제2 테스트 코드를 이용하여 실시되는 제2 테스트에 대하여 제2 주기(T2) 및 제2 테스트 범위(R2)를 설정하고, 제2 주기(T2)마다 제2 테스트 범위(R2)로 제2 테스트를 실시하는 제2 테스트 스케줄을 생성할 수 있다.In addition, the second test proceeding server 40a sets the second period T 2 and the second test range R 2 for the second test performed using the pre-registered second test code, and the second A second test schedule for performing the second test in the second test range R 2 for each period T 2 may be generated.

다음으로, 제2 테스트 진행 서버(40a)는 설정된 테스트 스케줄에 기초하여 기 설정된 주기마다 진행하고자 하는 테스트를 실시 할 수 있다(S530). 예를 들어, 제2 테스트 진행 서버(40a)는 제1 단말(10-1) 및 제2 단말(10-2)로부터 별도의 요청이 송신되지 않더라도 테스트 스케줄에 따라 제1 주기(T1)마다 제1 테스트 범위(R1)로 제1 테스트를 자동 실시할 수 있고, 제2 주기(T2)마다 제2 테스트 범위(R2)로 제2 테스트를 자동 실시할 수 있다.Next, the second test progress server 40a may perform a test to be performed at a predetermined period based on the set test schedule (S530). For example, the second test proceeding server 40a is provided for each first cycle (T 1 ) according to the test schedule even if separate requests are not transmitted from the first terminal 10-1 and the second terminal 10-2. The first test may be automatically performed in the first test range R 1 , and the second test may be automatically performed in the second test range R 2 every second cycle T 2 .

일 실시예에서, 제2 테스트 진행 서버(40a)는 상기와 같은 방법으로 설정된 복수의 테스트 스케줄에 따라 복수의 테스트를 진행하되, 복수의 테스트 결과에 기초하여 복수의 테스트에 대한 중요도를 설정하고, 각각의 중요도에 따라 테스트 범위와 주기를 확대 또는 축소할 수 있다. In one embodiment, the second test proceeding server 40a performs a plurality of tests according to a plurality of test schedules set in the same manner as described above, and sets importance for a plurality of tests based on a plurality of test results, Depending on the importance, the test range and cycle can be enlarged or reduced.

제2 테스트 진행 서버(40a)는 복수의 테스트 결과의 지속 시간 초과 여부, 테스트 성공 여부, 누적 성공횟수 및 누적 실패 횟수를 이용하여 복수의 테스트 각각에 대한 중요도를 설정할 수 있다. 이하, 도 9를 참조하여, 복수의 테스트 각각에 대한 중요도를 설정하는 구성에 대하여 설명하도록 한다.The second test progress server 40a may set importance for each of the plurality of tests using whether the duration of the plurality of test results is exceeded, whether the test is successful, the accumulated number of successes, and the accumulated number of failures. Hereinafter, a configuration for setting the importance for each of the plurality of tests will be described with reference to FIG. 9.

도 9는 본 발명의 또 다른 실시예에 따른 소프트웨어 자동 테스트 방법에 있어서, 테스트 스케줄에 대한 중요도 설정 과정을 설명하기 위한 순서도이다.9 is a flow chart for explaining the importance setting process for the test schedule in the software automatic test method according to another embodiment of the present invention.

도 9를 참조하면, 먼저, 제2 테스트 진행 서버(40a)는 기 설정된 테스트 스케줄의 중요도에 기초하여 테스트를 실시하고, 실시한 테스트에 대한 결과를 도출할 수 있다(S610). 이때, 기 설정된 테스트의 중요도는 사용자로부터 사전에 설정된 값일 수도 있고, 반복적일 중요도 설정 알고리즘을 통해 마지막으로 설정된 중요도일 수 있다.Referring to FIG. 9, first, the second test progress server 40a may perform a test based on the importance of a predetermined test schedule, and derive a result for the performed test (S610). At this time, the importance of the preset test may be a value previously set by the user, or may be the last importance set through a repetitive importance setting algorithm.

다음으로, 테스트가 지속시간을 초과하는지 여부를 판단할 수 있다(S620). 여기서, 테스트가 지속시간을 초과하는 경우, 제2 테스트 진행 서버(40a)는 지속시간을 초과한 테스트에 대하여 중요도를 상승시킬 수 있으며, 이에 따라 테스트 범위를 확대하고, 주기를 감소시킴으로써, 보다 빈번하게 테스트가 실시될 수 있도록 할 수 있다(S630). Next, it may be determined whether the test exceeds the duration (S620). Here, when the test exceeds the duration, the second test progress server 40a may increase the importance of the test exceeding the duration, thereby expanding the test range and reducing the cycle, thereby more frequent It can be done so that the test can be carried out (S630).

다음으로, 620단계에서 테스트가 지속 시간을 초과하지 않는 경우, 테스트가 성공했는지 여부를 판단할 수 있다(S640). 이때, 테스트의 누적 실패 횟수가 확대 조건보다 클 경우(S650), 테스트에 대하여 중요도를 상승시킬 수 있으며, 이에 따라 테스트 범위를 확대하고, 주기를 감소시킴으로써, 보다 빈번하게 테스트가 실시될 수 있도록 할 수 있다(S630). 만약, S640단계에서, 테스트의 누적 성공 횟수가 축소 조건보다 클 경우(S660), 테스트에 대하여 중요도를 낮출 수 있으며, 이에 따라 테스트 범위를 축소하고, 주기를 증가시킴으로써 테스트가 실시되는 횟수를 감소시킬 수 있다.Next, in step 620, if the test does not exceed the duration, it may be determined whether the test was successful (S640). At this time, if the cumulative number of failures of the test is greater than the enlargement condition (S650), the importance of the test may be increased, and accordingly, the test range may be enlarged and the period may be reduced, so that the test may be performed more frequently. It can be (S630). If, in step S640, the cumulative number of successes of the test is greater than the reduction condition (S660), the importance of the test may be reduced, thereby reducing the number of times the test is performed by reducing the test range and increasing the period. Can be.

일 실시예에서, S650단계에서, 테스트의 누적 실패 횟수가 확대 조건보다 작거나, S660단계에서, 테스트의 누적 성공 횟수가 축소 조건보다 작을 경우, 제2 테스트 진행 서버(40a)는 테스트의 중요도를 변경하지 않을 수 있다.In one embodiment, in step S650, if the cumulative number of failures of the test is less than the expansion condition, or in step S660, if the cumulative number of successful tests is less than the reduction condition, the second test progress server 40a determines the importance of the test. You may not change it.

일 실시예에서, 제2 테스트 진행 서버(40a)는 복수의 테스트 각각에 대하여 기준 시간의 기준값, 누적 성공횟수의 기준값 및 누적 실패횟수의 기준값을 서로 상이하게 설정할 수 있고, 각각의 테스트마다 설정된 기준값과 실제 측정되는 값을 비교하여 중요도를 산출할 수 있다. 여기서, 제2 테스트 진행 서버(40a)가 테스트의 중요도를 설정하고, 설정된 중요도에 따라 테스트를 실시하는 것으로 기재되어 있으나, 이에 한정되지 않고, 제1 테스트 진행 서버(30a)도 동일한 기능을 수행할 수 있음을 유의한다.In one embodiment, the second test progress server 40a may set the reference value of the reference time, the reference value of the cumulative success count, and the reference value of the cumulative failure count to be different from each other, and the reference value set for each test And the actual measured value can be compared to calculate the importance. Here, although the second test progress server 40a sets the importance level of the test and performs the test according to the set importance level, it is not limited thereto, and the first test progress server 30a performs the same function. Note that you can.

대규모의 소프트웨어 개발 프로젝트는, 기능 단위로 모듈화를 진행하는 것을 포함한다. 각각의 모듈에 대한 테스트가 아닌, 전체 소프트웨어에 대한 테스트를 실시하기 위해서는 상당한 양의 시간이 소요될 것이다. 이를 반영하여, 본 실시예는 각각의 테스트에 대한 중요도를 이용하여, 중요도가 높은 테스트를 우선적으로 진행하기 때문에, 시간이 부족한 상황에서 적절한 해결책을 제시할 수 있을 것이다.Large-scale software development projects involve modularization in functional units. It would take a significant amount of time to run the entire software, not just the tests for each module. Reflecting this, since the present embodiment preferentially conducts a test having high importance by using the importance for each test, an appropriate solution may be provided in a situation where time is insufficient.

지금까지 설명된 본 발명의 실시예에 따른 방법들은 컴퓨터가 읽을 수 있는 코드로 구현된 컴퓨터프로그램의 실행에 의하여 수행될 수 있다. 상기 컴퓨터프로그램은 인터넷 등의 네트워크를 통하여 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치에 전송되어 상기 제2 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 제2 컴퓨팅 장치에서 사용될 수 있다. 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는, 서버 장치, 클라우드 서비스를 위한 서버 풀에 속한 물리 서버, 데스크탑 피씨와 같은 고정식 컴퓨팅 장치를 모두 포함한다.The methods according to the embodiments of the present invention described so far can be performed by executing a computer program embodied in computer readable code. The computer program may be transmitted from a first computing device to a second computing device through a network, such as the Internet, and installed in the second computing device, thereby being used in the second computing device. The first computing device and the second computing device include both server devices, physical servers belonging to a server pool for cloud services, and fixed computing devices such as desktop PCs.

상기 컴퓨터프로그램은 DVD-ROM, 플래시 메모리 장치 등의 기록매체에 저장된 것일 수도 있다.The computer program may be stored in a recording medium such as a DVD-ROM or flash memory device.

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

Claims (8)

제1 데이터 센터망 외부의 제1 호스트에 구축된 제1 테스트 진행 서버에 하나 이상의 테스트 코드가 등록되는 단계;
상기 제1 데이터 센터망 내부의 제2 호스트에 구축된 제2 테스트 진행 서버와 상기 제1 테스트 진행 서버 간에 상기 제1 테스트 진행 서버에 등록된 테스트 코드의 동기화가 수행되는 단계; 및
상기 제1 데이터 센터망 외부의 제1 단말이 상기 제2 테스트 진행 서버에 송신한 테스트 수행 요청에 응답하여, 상기 제2 테스트 진행 서버가 테스트 대상 호스트에 대하여 상기 동기화를 통해 상기 제2 테스트 진행 서버에 저장된 테스트 코드에 따른 테스트를 자동 실시하는 단계를 포함하는,
소프트웨어 자동 테스트 방법.
Registering one or more test codes in a first test progress server built in a first host outside the first data center network;
Synchronizing test codes registered in the first test progress server between a second test progress server and a first test progress server built in a second host in the first data center network; And
In response to a test execution request sent by the first terminal outside the first data center network to the second test progress server, the second test progress server is synchronized with the host to be tested by the second test progress server Comprising the step of automatically performing the test according to the test code stored in,
Software automatic test method.
제1항에 있어서,
상기 제1 단말은 상기 제1 호스트와 동일한 내부망에 연결된 것이고,
상기 제1 테스트 진행 서버에 하나 이상의 테스트 코드가 등록되는 단계는,
상기 제1 단말이 제1 테스트 코드를 상기 제1 테스트 진행 서버에 송신하는 단계;
상기 제1 단말이 상기 제1 테스트 진행 서버에 상기 제1 단말에 구축된 로컬 테스트 서버에 대한 테스트 수행 요청을 송신하되, 상기 테스트 수행 요청은 상기 제1 단말의 주소 정보를 포함하는 것인, 단계; 및
상기 테스트 수행 요청의 수신에 응답하여, 상기 로컬 테스트 서버가 상기 제1 단말의 로컬 테스트 서버에 대하여 상기 제1 테스트 코드에 의한 테스트를 진행하는 단계를 포함하는,
소프트웨어 자동 테스트 방법.
According to claim 1,
The first terminal is connected to the same internal network as the first host,
At least one test code is registered in the first test progress server,
Transmitting, by the first terminal, a first test code to the first test progress server;
The first terminal transmits a test execution request for a local test server built in the first terminal to the first test progress server, wherein the test execution request includes address information of the first terminal. ; And
And in response to receiving the test execution request, the local test server proceeding a test by the first test code with respect to the local test server of the first terminal,
Software automatic test method.
제1항에 있어서,
상기 테스트 수행 요청은, 상기 테스트 대상 호스트를 가리키는 호스트 식별자를 포함하며,
상기 테스트를 자동 실시하는 단계는,
상기 제2 테스트 진행 서버가 상기 제1 데이터 센터망 내부의 호스트 정보를 이용하여 상기 테스트 대상 호스트에 대한 식별자에 대응하는 상기 테스트 대상 호스트의 접속 정보를 얻는 단계;
상기 제2 테스트 진행 서버가 상기 접속 정보를 이용하여 상기 호스트 식별자에 따른 호스트 접속 URL을 생성하는 단계; 및
상기 제2 테스트 진행 서버가 상기 호스트 접속 URL을 이용하여 상기 테스트 대상 호스트에 직접 접속하는 단계를 포함하는,
소프트웨어 자동 테스트 방법.
According to claim 1,
The test execution request includes a host identifier indicating the host to be tested,
The step of automatically performing the test,
Obtaining, by the second test progress server, access information of the host to be tested corresponding to an identifier for the host to be tested using host information inside the first data center network;
Generating, by the second test progress server, a host access URL according to the host identifier using the access information; And
The second test in progress server comprising the step of directly connecting to the host to be tested using the host connection URL,
Software automatic test method.
제1 항에 있어서,
상기 제1 단말은 제2 단말과 함께 상기 제1 호스트와 동일한 내부망에 연결된 것이고,
상기 테스트 코드가 등록되는 단계는,
상기 제1 단말으로부터 수신된 제1 테스트 코드가 등록되는 단계; 및
상기 제2 단말으로부터 수신된 제2 테스트 코드가 등록되는 단계를 포함하고,
상기 테스트를 자동 실시하는 단계는,
상기 제1 테스트 코드 및 상기 제2 테스트 코드에 따른 테스트를 자동 실시하는 단계를 포함하는,
소프트웨어 자동 테스트 방법.
According to claim 1,
The first terminal is connected to the same internal network as the first host together with the second terminal,
The step of registering the test code,
Registering a first test code received from the first terminal; And
And registering a second test code received from the second terminal,
The step of automatically performing the test,
Automatically performing a test according to the first test code and the second test code,
Software automatic test method.
제1항에 있어서,
상기 테스트 수행 요청은 상기 제1 데이터 센터망 외부의 제2 데이터 센터망에 위치하는 테스트 대상 호스트에 대한 정보를 포함하고,
상기 테스트를 자동 실시하는 단계는,
기 입력된 상기 제2 데이터 센터망의 프록시 서버 주소를 이용하여 상기 테스트 대상 호스트에 대한 정보를 포함하는 테스트 의뢰를 상기 제2 데이터 센터망의 프록시 서버에 송신하는 단계를 포함하는,
소프트웨어 자동 테스트 방법.
According to claim 1,
The test execution request includes information on a test target host located in a second data center network outside the first data center network,
The step of automatically performing the test,
Transmitting a test request including information about the host to be tested to a proxy server of the second data center network, using the pre-entered proxy server address of the second data center network,
Software automatic test method.
제5항에 있어서,
상기 테스트 의뢰는,
상기 프록시 서버 주소, 테스트 대상 호스트 식별자 및 URI(Uniform Resource Identifier)를 연결한 URL(Uniform Resource Locator)이고,
상기 테스트 의뢰를 상기 제2 데이터 센터망의 프록시 서버에 송신하는 단계는,
상기 프록시 서버가 상기 테스트 의뢰에서 상기 프록시 서버 주소를 제외하여 상기 URL을 변형하고, 상기 변형된 URL을 호출함으로써 상기 테스트 대상 호스트에 대한 테스트를 자동 실시하는 단계를 포함하는,
소프트웨어 자동 테스트 방법.
The method of claim 5,
The test request,
A URL (Uniform Resource Locator) that connects the proxy server address, the host ID to be tested, and a Uniform Resource Identifier (URI),
The step of transmitting the test request to the proxy server of the second data center network,
And the proxy server modifying the URL by excluding the proxy server address from the test request, and automatically performing a test on the host to be tested by calling the modified URL.
Software automatic test method.
제6항에 있어서,
상기 테스트 대상 호스트 식별자는 상기 제2 테스트 진행 서버에 의하여 생성되고 등록된 상기 테스트 대상 호스트 고유의 식별자이고,
상기 프록시 서버가 상기 테스트 의뢰에서 상기 프록시 서버 주소를 제외하여 상기 URL을 변형하고, 상기 변형된 URL을 호출함으로써 상기 테스트 대상 호스트에 대한 테스트를 자동 실시하는 단계는,
상기 프록시 서버가 상기 테스트 의뢰에서 상기 프록시 서버 주소를 제외하고, 상기 테스트 대상 호스트 식별자를 상기 테스트 대상 호스트의 접속 주소로 변환함으로써 상기 URL을 변형하며, 상기 변형된 URL을 호출함으로써 상기 테스트 대상 호스트에 대한 테스트를 자동 실시하는 단계를 포함하는,
소프트웨어 자동 테스트 방법.
The method of claim 6,
The test target host identifier is a unique identifier of the test target host generated and registered by the second test progress server,
The step of automatically performing the test for the host to be tested by the proxy server modifying the URL by excluding the proxy server address from the test request and calling the modified URL,
The proxy server modifies the URL by excluding the proxy server address from the test request, converting the host ID to be tested into a connection address of the host under test, and calling the modified URL to the host under test. Comprising automatically conducting a test for,
Software automatic test method.
제1 테스트 진행 서버를 서비스하고, 하나 이상의 테스트 코드에 대한 등록 요청을 수신하여 상기 테스트 코드를 저장하는 제1 데이터 센터망 외부의 제1 호스트; 및
제2 테스트 진행 서버를 서비스하고, 상기 제1 테스트 진행 서버와 상기 테스트 코드의 동기화를 수행하며, 상기 제1 데이터 센터망 외부의 제1 단말로부터 테스트 수행 요청이 수신되는 것에 응답하여, 테스트 대상 호스트에 대하여 상기 동기화를 통해 내부에 저장된 테스트 코드에 따른 테스트를 자동 실시하는 상기 제1 데이터 센터망 내부의 제2 호스트를 포함하는,
소프트웨어 자동 테스트 시스템.
A first host external to the first data center network serving a first test progress server, receiving a registration request for one or more test codes, and storing the test codes; And
Host a test target in response to receiving a request to perform a test from a first terminal outside the first data center network, servicing a second test progress server, performing synchronization of the first test progress server with the test code, and Including the second host in the first data center network to automatically perform the test according to the test code stored therein through the synchronization,
Software automatic test system.
KR1020180130907A 2018-10-30 2018-10-30 System and method for automatically testing software KR20200048633A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180130907A KR20200048633A (en) 2018-10-30 2018-10-30 System and method for automatically testing software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180130907A KR20200048633A (en) 2018-10-30 2018-10-30 System and method for automatically testing software

Publications (1)

Publication Number Publication Date
KR20200048633A true KR20200048633A (en) 2020-05-08

Family

ID=70677645

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180130907A KR20200048633A (en) 2018-10-30 2018-10-30 System and method for automatically testing software

Country Status (1)

Country Link
KR (1) KR20200048633A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102618391B1 (en) * 2023-09-12 2023-12-27 주식회사 테스트웍스 A Method for testing embedded devices through host virtualization and computing devices performing the same method
KR102660883B1 (en) * 2023-12-01 2024-04-25 주식회사 테스트웍스 A method for testing media processing on embedded devices and computing devices using the process
KR102660882B1 (en) * 2023-12-01 2024-04-25 주식회사 테스트웍스 A Method for testing hardware connection of embedded devices and computing devices performing the same method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100949800B1 (en) 2007-12-18 2010-03-30 한국전자통신연구원 Test method and test device for unit code using unit test code

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100949800B1 (en) 2007-12-18 2010-03-30 한국전자통신연구원 Test method and test device for unit code using unit test code

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102618391B1 (en) * 2023-09-12 2023-12-27 주식회사 테스트웍스 A Method for testing embedded devices through host virtualization and computing devices performing the same method
KR102660883B1 (en) * 2023-12-01 2024-04-25 주식회사 테스트웍스 A method for testing media processing on embedded devices and computing devices using the process
KR102660882B1 (en) * 2023-12-01 2024-04-25 주식회사 테스트웍스 A Method for testing hardware connection of embedded devices and computing devices performing the same method

Similar Documents

Publication Publication Date Title
US11144439B2 (en) Emulation-based testing of a microservices architecture
Zheng et al. A distributed replication strategy evaluation and selection framework for fault tolerant web services
JP5191062B2 (en) Storage control system, operation method related to storage control system, data carrier, and computer program
CN109656538A (en) Generation method, device, system, equipment and the medium of application program
US20150128121A1 (en) Dynamic application version selection
CN107241315B (en) Access method and device of bank gateway interface and computer readable storage medium
KR100945282B1 (en) Verifying method for implementing management software
KR20200048633A (en) System and method for automatically testing software
CN106506269B (en) It executes the method for test assignment, system, calculate equipment and test macro
CN109104368B (en) Connection request method, device, server and computer readable storage medium
CN113448988A (en) Method and device for training algorithm model, electronic equipment and storage medium
CN116974874A (en) Database testing method and device, electronic equipment and readable storage medium
CN109254921A (en) Application version verification method, device, computer equipment and storage medium
CN113419818B (en) Basic component deployment method, device, server and storage medium
US20190196842A1 (en) Medium, change detection method, and change detection apparatus
CN111800511B (en) Synchronous login state processing method, system, equipment and readable storage medium
CN111930625B (en) Log acquisition method, device and system based on cloud service platform
CN114356456B (en) Service processing method, device, storage medium and electronic equipment
JP2006106933A (en) Load sharing network system and load sharing program
CN114443215A (en) Service application deployment method and device, computer equipment and storage medium
CN111294250B (en) Pressure testing method, device and system
CN110266762A (en) Data uploading method, system, device and storage medium
CN114844859B (en) Domain name configuration method, device, electronic equipment and storage medium
CN113708992B (en) Reverse proxy test method, device, electronic equipment and storage medium
US20240168916A1 (en) Dynamic File Selection Process to Transfer Required Data File Between Different Servers in Near Real-Time

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application