KR20200048633A - 소프트웨어 자동 테스트 시스템 및 방법 - Google Patents

소프트웨어 자동 테스트 시스템 및 방법 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
English (en)
Inventor
김재진
김연하
윤혜선
박우진
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020180130907A priority Critical patent/KR20200048633A/ko
Publication of KR20200048633A publication Critical patent/KR20200048633A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/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

소프트웨어 자동 테스트 시스템 및 방법이 제공 된다. 본 발명의 일 실시예에 따른 소프트웨어 자동 테스트 방법은, 제1 데이터 센터망 외부의 제1 호스트에 구축된 제1 테스트 진행 서버에 하나 이상의 테스트 코드가 등록되는 단계, 상기 제1 데이터 센터망 내부의 제2 호스트에 구축된 제2 테스트 진행 서버와 상기 제1 테스트 진행 서버 간에 상기 제1 테스트 진행 서버에 등록된 테스트 코드의 동기화가 수행되는 단계 및 상기 제1 데이터 센터망 외부의 제1 단말이 상기 제2 테스트 진행 서버에 송신한 테스트 수행 요청에 응답하여, 상기 제2 테스트 진행 서버가 테스트 대상 호스트에 대하여 상기 동기화를 통해 상기 제2 테스트 진행 서버에 저장된 테스트 코드에 따른 테스트를 자동 실시하는 단계를 포함한다.

Description

소프트웨어 자동 테스트 시스템 및 방법{SYSTEM AND METHOD FOR AUTOMATICALLY TESTING SOFTWARE}
본 발명은 소프트웨어 자동 테스트 시스템 및 방법에 관한 것이다. 보다 자세하게는 개발자가 제작한 소프트웨어를 다양한 환경에서 테스트함에 있어서, 각각의 테스트 환경에 맞춰 테스트 코드를 재생성하지 않고, 하나의 테스트 코드만을 이용하여 다양한 환경에서의 테스트를 자동으로 실시할 수 있는 소프트웨어 자동 테스트 시스템 및 방법에 관한 것이다.
서비스의 규모가 커지고 복잡도가 증가하면서 보다 효율적이면서도 변경과 조합이 용이한 구조의 아키텍처에 대한 관심이 증가하고 있다. 특히, 하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 마이크로서비스 아키텍처(Microservice architecture)가 주목 받고 있다.
이러한 마이크로서비스 아키텍처는 독립적인 단위의 애플리케이션이기 때문에 변경이 용이하고 그 변경이 다른 서비스에 미치는 영향이 적으며, 부하가 집중되는 특정서비스를 위해 전체 애플리케이션을 스케일 아웃할 필요가 없기 때문에 불필요한 자원의 낭비를 감소시켜 효율적인 자원사용이 가능하도록 하는 등의 장점을 갖는다.
이러한 장점으로 인해, 대규모의 소프트웨어 개발을 위해 단독으로 실행 가능하고 독립적으로 배치될 수 있도록 분해한 복수의 작은 단위(모듈)의 소프트웨어를 복수의 개발자 각각이 개발하고, 개발된 작은 단위의 소프트웨어를 통합함으로써 대규모 소프트웨어를 개발하는 방식을 사용하는 경우가 증가하고 있다.
일반적으로, 웹 플랫폼 서비스(Web platform service)를 제공하기 위하여 대부분 개발, 검증, 운영 인프라 환경을 분리 및 격리하여 관리해야 하고, 일반적인 대용량 3계층(3-tier) 서버의 구청 측면으로 보았을 때, 로드 밸런서(Load balancer), 웹(Web) 및 웹 애플리케이션 서버(Web Application Server, WAS) 등의 레이어가 중첩되는 구조로 인프라를 구성할 필요가 있다.
종래에는 이와 같이 여러 레이어가 중첩되는 구조에서, 복수의 개발자 각각이 개발한 작은 단위의 소프트웨어를 테스트하고자 하는 경우, 서로 다른 레이어 별 테스트를 진행하기 위한 테스트 코드(test code)를 각각 환경에 맞게 생산해야 하는 어려움이 있으며, 복수의 개발자 각각이 생각한 테스트 코드는 개별 관리되며, 이를 공유하기 위해서는 관리자 명령으로 파일화 하여 파일 전송 도구나 이메일을 통해 전송해야 한다는 문제가 있었다.
또한, 데이터 센터망 내의 여러 서버에서 테스트를 진행하고자 하는 경우, 보안을 위해 구비된 JumpHost와 같은 경유 서버를 거쳐 테스트를 진행하고자 하는 서버(레이어)에 접근을 해야 하기 때문에, 매번 터널링을 설정해야 한다는 문제가 있다.
한국등록특허 제10-0949800호
본 발명이 해결하고자 하는 기술적 과제는, 내부망에 구비된 테스트 진행 서버와 데이터 센터망에 구비된 테스트 진행 서버간 테스트 코드 동기화를 하여 테스트 대상 호스트의 위치에 따라 개별 테스트 코드를 생성하거나 테스트 코드를 수동으로 업로드할 필요없이 하나의 테스트 코드를 이용하여 다양한 형태로 테스트 진행이 가능한 소프트웨어 자동 테스트 시스템 및 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 테스트 코드를 이용하여 테스트 스케줄을 설정하고, 테스트 스케줄에 따라 자동으로 테스트를 실행함으로써, 개발자의 별도의 요청 없이 자동적으로 테스트를 실시할 수 있는 소프트웨어 자동 테스트 시스템 및 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는, 기 설정된 복수의 테스트 스케줄에 있어서, 테스트의 중요도에 따라 테스트의 빈도 및 범위를 조정함으로써, 대용량 서버 환경에서 위험도가 높은 집중적으로 테스트할 수 있는 소프트웨어 자동 테스트 시스템 및 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 소프트웨어 자동 테스트 방법은, 제1 데이터 센터망 외부의 제1 호스트에 구축된 제1 테스트 진행 서버에 하나 이상의 테스트 코드가 등록되는 단계, 상기 제1 데이터 센터망 내부의 제2 호스트에 구축된 제2 테스트 진행 서버와 상기 제1 테스트 진행 서버 간에 상기 제1 테스트 진행 서버에 등록된 테스트 코드의 동기화가 수행되는 단계 및 상기 제1 데이터 센터망 외부의 제1 단말이 상기 제2 테스트 진행 서버에 송신한 테스트 수행 요청에 응답하여, 상기 제2 테스트 진행 서버가 테스트 대상 호스트에 대하여 상기 동기화를 통해 상기 제2 테스트 진행 서버에 저장된 테스트 코드에 따른 테스트를 자동 실시하는 단계를 포함한다.
일 실시예에서, 상기 제1 단말은 상기 제1 호스트와 동일한 내부망에 연결된 것이고, 상기 제1 테스트 진행 서버에 하나 이상의 테스트 코드가 등록되는 단계는, 상기 제1 단말이 제1 테스트 코드를 상기 제1 테스트 진행 서버에 송신하는 단계, 상기 제1 단말이 상기 제1 테스트 진행 서버에 상기 제1 단말에 구축된 로컬 테스트 서버에 대한 테스트 수행 요청을 송신하되, 상기 테스트 수행 요청은 상기 제1 단말의 주소 정보를 포함하는 것인, 단계 및 상기 테스트 수행 요청의 수신에 응답하여, 상기 로컬 테스트 서버가 상기 제1 단말의 로컬 테스트 서버에 대하여 상기 제1 테스트 코드에 의한 테스트를 진행하는 단계를 포함할 수 있다.
일 실시예에서, 상기 테스트 수행 요청은, 상기 테스트 대상 호스트를 가리키는 호스트 식별자를 포함하며, 상기 테스트를 자동 실시하는 단계는, 상기 제2 테스트 진행 서버가 상기 제1 데이터 센터망 내부의 호스트 정보를 이용하여 상기 테스트 대상 호스트에 대한 식별자에 대응하는 상기 테스트 대상 호스트의 접속 정보를 얻는 단계, 상기 제2 테스트 진행 서버가 상기 접속 정보를 이용하여 상기 호스트 식별자에 따른 호스트 접속 URL을 생성하는 단계 및 상기 제2 테스트 진행 서버가 상기 호스트 접속 URL을 이용하여 상기 테스트 대상 호스트에 직접 접속하는 단계를 포함할 수 있다.
일 실시예에서, 상기 제1 단말은 제2 단말과 함께 상기 제1 호스트와 동일한 내부망에 연결된 것이고, 상기 테스트 코드가 등록되는 단계는, 상기 제1 단말으로부터 수신된 제1 테스트 코드가 등록되는 단계 및 상기 제2 단말으로부터 수신된 제2 테스트 코드가 등록되는 단계를 포함하고, 상기 테스트를 자동 실시하는 단계는, 상기 제1 테스트 코드 및 상기 제2 테스트 코드에 따른 테스트를 자동 실시하는 단계를 포함할 수 있다.
일 실시예에서, 상기 테스트 수행 요청은 상기 제1 데이터 센터망 외부의 제2 데이터 센터망에 위치하는 테스트 대상 호스트에 대한 정보를 포함하고, 상기 테스트를 자동 실시하는 단계는, 상기 입력된 상기 제2 데이터 센터망의 프록시 서버 주소를 이용하여 상기 테스트 대상 호스트에 대한 정보를 포함하는 테스트 의뢰를 상기 제2 데이터 센터망의 프록시 서버에 송신하는 단계를 포함할 수 있다.
일 실시예에서, 상기 테스트 의뢰는, 상기 프록시 서버 주소, 테스트 대상 호스트 식별자 및 URI(Uniform Resource Identifier)를 연결한 URL(Uniform Resource Locator)이고, 상기 테스트 의뢰를 상기 제2 데이터 센터망의 프록시 서버에 송신하는 단계는, 상기 프록시 서버가 상기 테스트 의뢰에서 상기 프록시 서버 주소를 제외하여 상기 URL을 변형하고, 상기 변형된 URL을 호출함으로써 상기 테스트 대상 호스트에 대한 테스트를 자동 실시하는 단계를 포함할 수 있다.
일 실시예에서, 상기 테스트 대상 호스트 식별자는 상기 제2 테스트 진행 서버에 의하여 생성되고 등록된 상기 테스트 대상 호스트 고유의 식별자이고, 상기 프록시 서버가 상기 테스트 의뢰에서 상기 프록시 서버 주소를 제외하여 상기 URL을 변형하고, 상기 변형된 URL을 호출함으로써 상기 테스트 대상 호스트에 대한 테스트를 자동 실시하는 단계는, 상기 프록시 서버가 상기 테스트 의뢰에서 상기 프록시 서버 주소를 제외하고, 상기 테스트 대상 호스트 식별자를 상기 테스트 대상 호스트의 접속 주소로 변환함으로써 상기 URL을 변형하며, 상기 변형된 URL을 호출함으로써 상기 테스트 대상 호스트에 대한 테스트를 자동 실시하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 다른 실시예에 따른 소프트웨어 자동 테스트 시스템은, 제1 테스트 진행 서버를 서비스하고, 하나 이상의 테스트 코드에 대한 등록 요청을 수신하여 상기 테스트 코드를 저장하는 제1 데이터 센터망 외부의 제1 호스트 및 제2 테스트 진행 서버를 서비스하고, 상기 제1 테스트 진행 서버와 상기 테스트 코드의 동기화를 수행하며, 상기 제1 데이터 센터망 외부의 제1 단말로부터 테스트 수행 요청이 수신되는 것에 응답하여, 테스트 대상 호스트에 대하여 상기 동기화를 통해 내부에 저장된 테스트 코드에 따른 테스트를 자동 실시하는 상기 제1 데이터 센터망 내부의 제2 호스트를 포함한다.
도 1은 본 발명의 일 실시예에 따른 소프트웨어 자동 테스트 시스템의 구성도이다.
도 2는 본 발명의 다른 실시예에 따른 소프트웨어 자동 테스트 방법을 설명하기 위한 순서도이다.
도 3은 본 발명의 몇몇 실시예들에서 테스트를 진행하고자 하는 서버의 위치가 내부망 내 단말의 서버인 경우의 테스트 실시 방법을 설명하기 위한 순서도이다.
도 4은 본 발명의 본 발명의 몇몇 실시예들에서 테스트를 진행하고자 하는 서버의 위치가 데이터 센터망 내의 호스트인 경우의 테스트 실시 방법을 설명하기 위한 순서도이다.
도 5는 본 발명의 또 다른 실시예에 따른 소프트웨어 자동 테스트 시스템의 구성도이다.
도 6은 본 발명의 또 다른 실시예에 따른 소프트웨어 자동 테스트 방법을 설명하기 위한 순서도이다.
도 7은 본 발명의 또 다른 실시예에 따른 소프트웨어 자동 테스트 시스템에 있어서, 테스트에 대한 스케줄링을 요청하는 구성을 도시한 도면이다.
도 8은 본 발명의 또 다른 실시예에 따른 소프트웨어 자동 테스트 방법에 있어서, 테스트에 대한 스케줄링을 요청 과정을 설명하기 위한 순서도이다.
도 9는 본 발명의 또 다른 실시예에 따른 소프트웨어 자동 테스트 방법에 있어서, 테스트 스케줄에 대한 중요도 설정 과정을 설명하기 위한 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
이하, 도면들을 참조하여 본 발명의 몇몇 실시예들을 설명한다.
도 1은 본 발명의 일 실시예에 따른 소프트웨어 자동 테스트 시스템의 구성도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 소프트웨어 자동 테스트 시스템(100)은 제1 단말(10-1), 제2 단말(10-2) 및 제1 호스트(30)를 포함하는 내부망(1)과 테스트 대상이 되는 복수의 서버(20-1 내지 20-3) 및 제2 호스트(40)를 포함하는 제1 데이터 센터망(2)을 포함할 수 있다.
여기서, 도 1에 도시된 소프트웨어 자동 테스트 시스템은 일 실시예에 따른 것이고, 그 구성 요소가 도 1에 도시된 실시예에 한정되는 것은 아니며, 필요에 따라 부가, 변경 또는 삭제될 수 있음을 유의한다.
먼저, 제1 단말(10-1) 및 제2 단말(10-2)은 테스트를 실시하기 위한 소프트웨어를 개발하는 개발자의 단말을 의미한다. 예를 들어, 제1 단말(10-1) 및 제2 단말(10-2)은 마이크로서비스 아키텍처로 작은 단위의 소프트웨어를 각각 개발하는 개발자의 단말일 수 있으며, 제1 단말(10-1) 및 제2 단말(10-2)은 후술되는 제1 호스트(30)와 함께 내부망(1)에 연결된 소프트웨어 개발자의 로컬(Local) PC일 수 있다. 그러나, 이에 한정되지 않고, 다양한 현태의 소프트웨어를 개발하는 개발자의 단말일 수 있다.
제1 단말(10-1) 및 제2 단말(10-2) 각각은 제1 단말(10-1) 및 제2 단말(10-2)을 사용하는 각각의 개발자가 자신이 제작한 소프트웨어를 테스트하기 위한 생성한 제1 테스트 코드 및 제2 테스트 코드를 후술되는 제1 호스트(30) 및 제2 호스트(40) 중 어느 하나 이상의 호스트에 전송하여 제1 호스트(30) 및 제2 호스트에 테스트 코드가 등록되도록 할 수 있다.
이때, 내부망(1)은 제1 단말(10-1), 제2 단말(10-2) 및 제1 호스트(30)를 연결하는 인트라넷(Intranet)망일 수 있다. 그러나 이에 한정되지 않는다.
제1 호스트(30)는 제1 데이터 센터망(2)의 외부에 위치하고, 제1 단말(10-1) 및 제2 단말(10-2)로부터 전송되는 테스트 코드를 등록하며, 제1 단말(10-1) 및 제2 단말(10-2)로부터 테스트 수행 요청을 받는 경우, 등록된 테스트 코드에 따른 테스트를 자동 실시할 수 있다. 이를 위해 제1 호스트(30)는 제1 테스트 진행 서버(30a)를 포함할 수 있다.
제1 테스트 진행 서버(30a)는 제1 단말(10-1) 및 제2 단말(10-2)로부터 전송된 테스트 코드를 등록하고, 추후 등록된 테스트 코드를 이용하여 제1 단말(10-1) 및 제2 단말(10-2)에 구비된 로컬 테스트 서버에서 테스트를 실시할 수 있다.
여기서, 테스트는 개발자가 개발한 작은 단위의 소프트웨어의 동작이 성공하는지 또는 실패하는지 여부를 실험적으로 수행하는 과정을 의미하며, 테스트 코드는 이러한 테스트를 진행하기 위한 테스트 시나리오를 의미할 수 있다. 예를 들어, 테스트 코드를 이용하여 진행되는 테스트는, API(Application programming interface)에 포함된 함수를 호출하는 테스트이며, 제1 테스트 진행 서버(30a)는 RESTful API 방식을 이용하여 API에 포함된 함수를 호출하고, 함수 호출에 대한 응답(return)값을 이용하여 소프트웨어의 동작이 성공하는지 또는 실패하는지를 판단하는 테스트일 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 작은 단위의 소프트웨어 동작의 성공 및 실패 여부를 테스트하기 위한 어떠한 방법이든 적용이 가능하다.
복수의 서버(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계층 서버가 구현될 수 있다.
이때, 제1 데이터 센터망(2)은 실제 하드웨어들로 구현되지 않고, 서비스로서의 인프라스트럭처(Infrastructure as a Service, IaaS)의 클라우드 서비스로부터 제공되는 서버, 데스크톱 컴퓨터 밑 스토리지를 이용하여 가상의 소프트웨어로 구성되는 서버의 집합을 의미한다.
제2 호스트(40)는 제1 데이터 센터망(2)의 내부에 위치하고, 제1 단말(10-1) 및 제2 단말(10-2)로부터 전송되는 테스트 코드를 등록하며, 제1 단말(10-1) 및 제2 단말(10-2)로부터 테스트 수행 요청을 받는 경우, 등록된 테스트 코드에 따른 테스트를 자동 실시할 수 있다. 이를 위해, 제2 호스트(40)는 제2 테스트 진행 서버(40a)를 포함할 수 있다.
제2 테스트 진행 서버(40a)는 제1 단말(10-1) 및 제2 단말(10-2)로부터 전송된 테스트 코드를 등록하고, 추후 등록된 테스트 코드를 이용하여 로드 밸런서(20-1), 웹(20-2) 및 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을 참조하여, 본 발명의 일 실시예에 따른 소프트웨어 자동 테스트 시스템을 이용하여 소프트웨어를 자동으로 테스트하는 방법에 대하여 설명하도록 한다.
이하, 도 2를 참조하여 본 발명의 다른 실시예에 따른 소프트웨어 자동 테스트 방법을 설명한다.
단계 S210에서, 제1 데이터 센터망 외부의 제1 호스트에 구축된 제1 테스트 진행 서버는 제1 단말(10-1) 및 제2 단말(10-2)로부터 전송되는 하나 이상의 테스트 코드를 등록할 수 있다.
다음으로 단계 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)는 제 테스트 코드를 등록할 수 있다.
보다 구체적으로, 제1 테스트 진행 서버(30a)에 테스트 코드가 등록된 경우, 제1 테스트 진행 서버(30a)는 제2 테스트 진행 서버(40a)로 테스트 코드 등록 신호를 송신할 수 있고, 테스트 코드 등록 신호를 수신한 제2 테스트 진행 서버(40a)는 제1 테스트 진행 서버(30a)에 등록된 테스트 코드를 추출(Extract), 변환(Transforms) 및 적재(Loads)하는 ETL 방식을 이용하여 제1 테스트 진행 서버(30a)에 등록된 테스트 코드를 가져와 등록할 수 있다. 그러나, 이에 한정되지 않고, 제1 테스트 진행 서버(30a)와 제2 테스트 진행 서버(40a)가 동기화되어, 각각 등록된 테스트 코드를 공유할 수 있는 어떠한 방법이든 적용 가능하다.
도 2에는 동기화의 방향이 제1 테스트 진행 서버에서 제2 테스트 진행 서버로 진행 되는 것으로 도시되어 있으나, 반대의 방향으로, 즉 제2 테스트 진행 서버에서 제1 테스트 진행 서버로 동기화가 진행될 수도 있음은 물론이다. 이 때에는, 제1 데이터 센터(2)로 파견된 개발자가, 제1 데이터 센터망(2)에 접속할 수 있는 환경에서 개발 작업 및 그 결과를 테스트 하기 위한 테스트 코드를 제2 테스트 진행 서버(40a)에 등록하고, 그 결과가 상기 동기화를 통해 제1 데이터 센터망(2) 외부로 공유 되는 것으로 이해할 수 있을 것이다.
S110단계 및 S120단계를 거쳐 테스트를 실시하기 위한 준비 단계가 완료된 이후, 단계 S130에서 제1 단말(10-1)로부터 제2 테스트 진행 서버(40a)로 테스트 수행 요청이 송신될 수 있다. 이 때, 제1 단말(10-1)은 터널링을 통하여 테스트 대상 호스트에 접속하는 등의 번거로운 절차를 거칠 필요 없이, 제2 테스트 진행 서버(40a)에 접속하여, 테스트 수행 요청을 송신하기면 하면 되는 효과를 얻을 수 있다.
이후 설명하겠으나, 테스트 대상 호스트가 제1 데이터 센터망(2) 내부에 위치하는 경우, 상기 테스트 대상 호스트에 대하여 자동 테스트를 수행하는 것은 제2 테스트 진행 서버(40a)가 수행하게 될 것이다. 제2 테스트 진행 서버(40a)와 테스트 대상 호스트는 함께 제1 데이터 센터망(2) 내부에 위치하므로, 제2 테스트 진행 서버(40a)가 테스트 대상 호스트에 접속하기 위해 터널링을 수행하는 등의 조치를 취하지 않아도 되는 점은 쉽게 이해될 수 있을 것이다.
여기서, 테스트 수행 요청은, 제2 테스트 진행 서버(40a)에 등록된 복수의 테스트 코드 중 어느 하나에 대한 지정을 포함할 수 있다. 이 때, 테스트를 요청하는 사용자가 작성하지 않은 테스트 코드도 테스트 대상으로 지정할 수 있음은 물론이다.
다음으로, 단계 S140에서, 상기 테스트 수행 요청을 수신한 제2 테스트 진행 서버(40a)는, 상기 테스트 수행 요청에서 지정된 테스트 코드에 따라 테스트를 자동 실시한다. 예를 들어, 테스트 대상으로 지정된 테스트 코드가 마이크로서비스 형태의 테스트 대상 소프트웨어에 대한 스트레스 테스트로서 반복 호출하는 것이라면, 테스트 진행 서버는 상기 테스트 대상 소프트웨어의 테스트 대상 API를 반복하여 호출하게 될 것이다.
마이크로서비스 형태의 소프트웨어가 테스트 대상인 경우, API의 호출 만으로 소프트웨어가 정상 동작하는지 테스트 할 수 있고, 테스트에 있어서 사용자 입력에 대한 적절한 처리 등은 확인이 불필요 하다. 따라서, 그 자체도 소프트웨어인 테스트 진행 서버가 테스트를 진행하기에 가장 적절한 형태의 소프트웨어가 마이크로서비스 형태의 소프트웨어이다.
이하, 도 3 및 4를 참조하여, 도 2를 통해 설명한 소프트웨어 자동 테스트 방법을 이용하여 테스트 대상 호스트가 내부망(1) 내부에 위치한 경우의 테스트 실시방법과 제1 데이터 센터망(2) 내부에 위치한 경우의 테스트 실시 방법을 설명하도록 한다. 먼저, 도 3을 참조하여, 테스트 대상 호스트가 내부망(1) 내부에 위치한 경우에 대하여 설명한다.
도 3은 본 발명의 몇몇 실시예들에서 테스트를 진행하고자 하는 대상이 내부망 내 단말에 구현된 테스트 서버인 경우의 테스트 실시 방법을 설명하기 위한 순서도이다.
도 3을 참조하면, 먼저, 제1 단말(10-1)이 소프트웨어 테스트를 실시하기 위한 제1 테스트 코드를 제1 테스트 진행 서버(30a)로 송신할 수 있고(S210), 제1 테스트 진행 서버(30a)는 S210단계에서 송신된 제1 테스트 코드를 등록할 수 있다.
이후, 제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).
보다 구체적으로, 제1 단말(10-1)이 자신의 단말 내의 로컬 테스트 서버에서 제1 테스트 코드에 의한 테스트를 실시하고자 하는 경우, 제1 단말의 로컬 테스트 서버에 대한 IP 정보를 포함하는 테스트 수행 요청을 제1 테스트 진행 서버(30a)로 송신할 수 있고, 제1 테스트 진행 서버(30a)는 테스트 수행 요청에 포함된 IP정보를 이용하여 해당 IP에 대응하는 로컬 테스트 서버에 접속하여 제1 테스트 코드에 의한 테스트를 실시할 수 있다.
이후, 제1 테스트 진행 서버(30a)는 제1 테스트 코드에 의한 테스트 실시가 완료되는 경우, 테스트에 대한 결과를 도출하고, 테스트 수행 요청을 송신한 제1 단말(10-1)로 테스트 결과 정보를 제공할 수 있다(S240).
일 실시예에서, 제1 테스트 진행 서버(30a)는 제1 호스트(30) 내에 별도로 구비된 데이터베이스(미도시)에 테스트 결과 정보를 저장할 수 있으며, 제1 단말(10-1)로부터 테스트 결과 조회 요청이 송신되는 경우, 저장된 테스트 결과 정보를 제공할 수 있다.
즉, 제1 단말(10-1)이 같은 내부망(1)에 위치하는 제2 단말(10-2)의 로컬 테스트 서버에서 테스트를 진행하고자 할 때, 같은 내부망(1)에 위치하는 제1 테스트 진행 서버(30a)에 테스트 코드를 등록하고, 등록된 테스트 코드를 이용하여 제2 단말(10-2)의 로컬 테스트 서버에서 테스트를 진행함으로써, 테스트 코드를 공유하기 위해 테스트 코드를 관리자 명령으로 파일화하고, 파일화된 테스트 코드를 이메일 또는 파일 전송 도구로 전송하는 과정이 삭제되어 개발자들간의 테스트 코드 공유가 수월해 질 수 있다는 이점이 있다. 다음으로 도 4를 참조하여 테스트 대상 호스트가 데이터 센터망 내부에 위치한 경우에 대하여 설명한다.
도 4는 본 발명의 본 발명의 몇몇 실시예들에서 테스트를 진행하고자 하는 서버의 위치가 데이터 센터망 내의 호스트인 경우의 테스트 실시 방법을 설명하기 위한 순서도이다.
도 4를 참조하면, 먼저 제1 단말(10-1) 및 제2 단말(10-2)로부터 제1 데이터 센터망(2) 내부에 위치하는 복수의 서버(20-1 내지 20-3) 중 어느 하나의 서버를 테스트 대상 호스트로 하여 테스트를 실시하도록 요청하는 테스트 수행 요청을 제2 테스트 진행 서버(40a)로 송신하면, 제2 테스트 진행 서버(40a)가 제1 데이터 센터망(2) 내부의 호스트 정보를 이용하여 테스트 대상 호스트에 대한 식별자에 대응하는 테스트 대상 호스트의 접속 정보를 얻을 수 있다(S310).
여기서, 테스트 수행 요청은, 복수의 서버(20-1 내지 20-3) 중 어느 하나의 서버를 테스트 대상 호스트로 하여 테스트를 실시하도록 하는 요청을 의미한다. 예를 들어, 상기 테스트 수행 요청은 테스트 대상 호스트를 가리키는 호스트 식별자와 테스트 대상 호스트에서 진행하고자 하는 테스트 코드에 대한 정보를 포함할 수 있다.
다음으로, 제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을 생성할 수 있다.
다음으로, 제2 테스트 진행 서버(40a)는 S320단계에서 생성한 호스트 접속 URL을 이용하여 테스트 대상 호스트에 직접 접속할 수 있다(S330). 예를 들어, 제2 테스트 진행 서버(40a)는 호스트 접속 URL을 분석하여 테스트 대상 호스트를 직접 호출하는 방식으로 테스트 대상 호스트에 직접 접속할 수 있다.
이후, 제2 테스트 진행 서버(40a)는 테스트 대상 호스트에 접속되면, 직접 접속한 테스트 대상 호스트에 대하여 제2 테스트 진행 서버(40a)에 등록된 테스트 코드에 따른 테스트를 자동 실시할 수 있다(S330).
제1 데이터 센터망(2) 외부에 위치하는 제1 단말(10-1) 또는 제2 단말(10-2)이 제1 데이터 센터망(2) 내부에 위치하는 테스트 대상 호스트에서 테스트를 진행하고자 할 때, 제2 테스트 진행 서버(40a)가 상기 호스트 접속 URL을 통해 테스트 대상 서버에 접속하고 테스트 코드 동기화를 통해 제2 테스트 진행 서버(40a)에 등록된 테스트 코드를 이용하여 테스트를 실시한다. 따라서, 테스트 대상 호스트에 맞는 테스트 코드를 개별적으로 생성할 필요가 없고, 제1 데이터 센터망(2) 내부에 위치하는 테스트 대상 서버와 접속하기 위하여 개별적으로 터널링을 설정할 필요가 없어 터널링 설정에 따른 네트워크 우회로 인한 부하 부담이 적어지기 때문에 테스트 대상 호스트에 대한 응답시간 측정 테스트를 정확하게 수행할 수 있다는 효과를 얻을 수 있다.
이상, 도 1 내지 도 4를 참조하여, 본 발명의 몇몇 실시예들에 따르면, 내부망에 위치하는 제1 호스트에 제1 테스트 진행 서버를 두고, 제1 데이터 센터망에 위치하는 제2 호스트에 제2 테스트 진행 서버를 둠으로써, 테스트 대상 호스트가 내부망 또는 제1 데이터 센터망 어디에 위치하든지 동일한 방식으로 소프트웨어 테스트를 진행할 수 있음을 설명하였다.
그런데, 본 발명의 다른 몇몇 실시예들에 따르면, 테스트 진행 서버가 존재하지 않는 망에 연결된 호스트에 대한 소프트웨어 테스트 까지도 동일한 방식으로 진행 될 수 있도록, 그 테스트 대상 호스트를 둘 수 있는 범위가 확장된다. 이하, 도 5 및 6을 참조하여, 제1 데이터 센터망(2)을 통해 다른 데이터 센터망 내부에 포함된 테스트 대상 호스트에서 테스트를 실시하는 구성에 대하여 설명하도록 한다.
도 5는 본 발명의 또 다른 실시예에 따른 소프트웨어 자동 테스트 시스템의 구성도이며, 도 6은 본 발명의 또 다른 실시예에 따른 소프트웨어 자동 테스트 방법을 설명하기 위한 순서도이다.
도 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)의 프록시 서버에 송신할 수 있다.
예를 들어, 제2 데이터 센터망(3)에 포함된 복수의 서버(20a)중 어느 하나의 서버를 테스트 대상 호스트로 하여 테스트를 실시하도록 요청하는 테스트 수행 요청이 제2 테스트 진행 서버(40a)로 송신되면, 제2 테스트 진행 서버(30a)는 기 입력된 제2 데이터 센터망(3)의 프록시 서버 주소(10.0.0.1)를 이용하여 테스트 대상 호스트에 대한 정보를 포함하는 테스트 의뢰 제2 데이터 센터망(3)의 프록시 서버(50a)에 송신할 수 있다.
여기서, 테스트 의뢰는, 테스트 대상 데이터 센터망에 대한 정보, 테스트 대상 데이터 센터망에 포함된 테스트 대상 호스트에 대한 정보를 포함하며, 테스트 대상 데이터 센터망의 테스트 대상 호스트에서 특정 테스트를 실시할 것을 요청하는 정보일 수 있다. 예를 들어, 테스트 의뢰는 상기 프록시 서버 주소, 테스트 대상 호스트 식별자 및 URI(Uniform Resource Identifier)를 연결한 URL(Uniform Resource Locator)일 수 있으며, 테스트 의뢰는 "http://프록시 서버 주소/테스트 대상 호스트 식별자/포트/URI" 형태의 URL일 수 있다.
또한, 여기서, 테스트 대상 호스트 식별자는 제2 테스트 진행 서버에 의하여 생성되고 등록되며, 테스트 대상 호스트를 식별할 수 있는 정보가 포함된 테스트 대상 호스트 고유의 식별자를 의미한다.
일 실시예에서, 제1 단말(10-1)은 통신을 위한 네트워트(5)를 통해 제1 데이터 센터망(2) 외부의 또 다른 제2 데이터 센터망(3)에 포함된 포함된 복수의 서버(20a) 및 제3 데이터 센터망(4)에 포함된 복수의 서버(20b) 중 어느 하나의 서버를 테스트 대상 호스트로 하여 테스트를 실시하도록 요청하는 테스트 수행 요청을 송신할 수 있다. 또한, 제2 테스트 진행 서버(30a)는 통신을 위한 네트워트(5)를 통해 기 입력된 제2 데이터 센터망(3) 및 제3 데이터 센터망(4)의 프록시 서버 주소를 이용하여 테스트 대상 호스트에 대한 정보를 포함하는 테스트 의뢰를 제2 데이터 센터망(3) 및 제3 데이터 센터망(4)의 프록시 서버에 송신할 수 있다.
다음으로, 테스트 의뢰를 받은 제2 데이터 센터망(3) 내의 프록시 서버(50a)가 테스트 의뢰에서 프록시 서버 주소를 제외하고, 테스트 대상 호스트 식별자를 테스트 대상 호스트의 접속 주소로 변환함으로써 URL을 변형할 수 있다. 예를 들어, 제2 데이터 센터망(3) 내의 프록시 서버(50a)는 "http://프록시 서버 주소/테스트 대상 호스트 식별자/포트/URI" 형태의 URL를 "http://테스트 대상 호스트 접속 주소: 포트/URI" 형태로 변형할 수 있다.
다음으로, 제2 데이터 센터망(3) 내의 프록시 서버(50a)는 변형된 URL을 호출하고(S43), 호출한 테스트 대상 호스트에 대하여 테스트를 자동 실시할 수 있다(S440).
즉, 제1 데이터 센터망(2) 외부의 또 다른 데이터 센터망(제2 데이터 센터망(3) 및 제3 데이터 센터망(4)에 포함된 테스트 대상 호스트에 대하여 테스트를 진행하기 위하여, 데이터 센터망마다 각각 중계를 위한 프록시 서버를 구축함으로써, 데이터 센터마다 각각 테스트를 진행하기 위한 테스트 코드를 각각 생성하거나 수정하지 않고 테스트가 가능하다는 이점이 있다. 이하, 도 7 내지 도 9를 참조하여 테스트를 스케줄링하고, 테스트 스케줄에 따라 테스트를 진행하는 구성에 대하여 설명하도록 한다.
도 7은 본 발명의 또 다른 실시예에 따른 소프트웨어 자동 테스트 시스템에 있어서, 테스트에 대한 스케줄링을 요청하는 구성을 도시한 도면이며, 도 8은 본 발명의 또 다른 실시예에 따른 소프트웨어 자동 테스트 방법에 있어서, 테스트에 대한 스케줄링을 요청 과정을 설명하기 위한 순서도이다.
먼저, 도 7을 참조하면, 제1 단말(10-1) 및 제2 단말(10-2)은 제2 호스트(40)에 포함된 제2 테스트 진행 서버(40a)로 테스트를 실시하기 위한 스케줄링 요청을 송신할 수 있고, 제2 테스트 진행 서버(40a)는 스케줄링 요청에 따라 테스트 실시에 대한 테스트 스케줄을 생성하고 생성된 테스트 스케줄에 따라 테스트를 진행하여 도출된 결과를 제1 단말(10-1) 및 제2 단말(10-2)로 제공할 수 있다.
보다 구체적으로, 도 8을 참조하면, 먼저, 제1 단말(10-1) 및 제2 단말(10-2)에서 각각 제1 테스트 코드 및 제2 테스트 코드를 제2 테스트 진행 서버(40a)에 등록할 수 있고, 제1 테스트 코드 및 제2 테스트 코드를 이용하여 테스트를 실시하기 위한 스케줄링을 요청할 수 있다(S510).
다음으로, S510단계에서 스케줄링을 요청받은 제2 테스트 진행 서버(40a)는 기 설정된 주기마다 테스트를 자동 실시하도록 하는 테스트 스케줄 설정할 수 있다(S520). 예를 들어, 제2 테스트 진행 서버(40a)는 기 등록된 제1 테스트 코드를 이용하여 실시되는 제1 테스트에 대하여 제1 주기(T1) 및 제1 테스트 범위(R1)를 설정하고, 제1 주기(T1)마다 제1 테스트 범위(R1)로 제1 테스트를 실시하는 제1 테스트 스케줄을 생성할 수 있다.
또한, 제2 테스트 진행 서버(40a)는 기 등록된 제2 테스트 코드를 이용하여 실시되는 제2 테스트에 대하여 제2 주기(T2) 및 제2 테스트 범위(R2)를 설정하고, 제2 주기(T2)마다 제2 테스트 범위(R2)로 제2 테스트를 실시하는 제2 테스트 스케줄을 생성할 수 있다.
다음으로, 제2 테스트 진행 서버(40a)는 설정된 테스트 스케줄에 기초하여 기 설정된 주기마다 진행하고자 하는 테스트를 실시 할 수 있다(S530). 예를 들어, 제2 테스트 진행 서버(40a)는 제1 단말(10-1) 및 제2 단말(10-2)로부터 별도의 요청이 송신되지 않더라도 테스트 스케줄에 따라 제1 주기(T1)마다 제1 테스트 범위(R1)로 제1 테스트를 자동 실시할 수 있고, 제2 주기(T2)마다 제2 테스트 범위(R2)로 제2 테스트를 자동 실시할 수 있다.
일 실시예에서, 제2 테스트 진행 서버(40a)는 상기와 같은 방법으로 설정된 복수의 테스트 스케줄에 따라 복수의 테스트를 진행하되, 복수의 테스트 결과에 기초하여 복수의 테스트에 대한 중요도를 설정하고, 각각의 중요도에 따라 테스트 범위와 주기를 확대 또는 축소할 수 있다.
제2 테스트 진행 서버(40a)는 복수의 테스트 결과의 지속 시간 초과 여부, 테스트 성공 여부, 누적 성공횟수 및 누적 실패 횟수를 이용하여 복수의 테스트 각각에 대한 중요도를 설정할 수 있다. 이하, 도 9를 참조하여, 복수의 테스트 각각에 대한 중요도를 설정하는 구성에 대하여 설명하도록 한다.
도 9는 본 발명의 또 다른 실시예에 따른 소프트웨어 자동 테스트 방법에 있어서, 테스트 스케줄에 대한 중요도 설정 과정을 설명하기 위한 순서도이다.
도 9를 참조하면, 먼저, 제2 테스트 진행 서버(40a)는 기 설정된 테스트 스케줄의 중요도에 기초하여 테스트를 실시하고, 실시한 테스트에 대한 결과를 도출할 수 있다(S610). 이때, 기 설정된 테스트의 중요도는 사용자로부터 사전에 설정된 값일 수도 있고, 반복적일 중요도 설정 알고리즘을 통해 마지막으로 설정된 중요도일 수 있다.
다음으로, 테스트가 지속시간을 초과하는지 여부를 판단할 수 있다(S620). 여기서, 테스트가 지속시간을 초과하는 경우, 제2 테스트 진행 서버(40a)는 지속시간을 초과한 테스트에 대하여 중요도를 상승시킬 수 있으며, 이에 따라 테스트 범위를 확대하고, 주기를 감소시킴으로써, 보다 빈번하게 테스트가 실시될 수 있도록 할 수 있다(S630).
다음으로, 620단계에서 테스트가 지속 시간을 초과하지 않는 경우, 테스트가 성공했는지 여부를 판단할 수 있다(S640). 이때, 테스트의 누적 실패 횟수가 확대 조건보다 클 경우(S650), 테스트에 대하여 중요도를 상승시킬 수 있으며, 이에 따라 테스트 범위를 확대하고, 주기를 감소시킴으로써, 보다 빈번하게 테스트가 실시될 수 있도록 할 수 있다(S630). 만약, S640단계에서, 테스트의 누적 성공 횟수가 축소 조건보다 클 경우(S660), 테스트에 대하여 중요도를 낮출 수 있으며, 이에 따라 테스트 범위를 축소하고, 주기를 증가시킴으로써 테스트가 실시되는 횟수를 감소시킬 수 있다.
일 실시예에서, S650단계에서, 테스트의 누적 실패 횟수가 확대 조건보다 작거나, S660단계에서, 테스트의 누적 성공 횟수가 축소 조건보다 작을 경우, 제2 테스트 진행 서버(40a)는 테스트의 중요도를 변경하지 않을 수 있다.
일 실시예에서, 제2 테스트 진행 서버(40a)는 복수의 테스트 각각에 대하여 기준 시간의 기준값, 누적 성공횟수의 기준값 및 누적 실패횟수의 기준값을 서로 상이하게 설정할 수 있고, 각각의 테스트마다 설정된 기준값과 실제 측정되는 값을 비교하여 중요도를 산출할 수 있다. 여기서, 제2 테스트 진행 서버(40a)가 테스트의 중요도를 설정하고, 설정된 중요도에 따라 테스트를 실시하는 것으로 기재되어 있으나, 이에 한정되지 않고, 제1 테스트 진행 서버(30a)도 동일한 기능을 수행할 수 있음을 유의한다.
대규모의 소프트웨어 개발 프로젝트는, 기능 단위로 모듈화를 진행하는 것을 포함한다. 각각의 모듈에 대한 테스트가 아닌, 전체 소프트웨어에 대한 테스트를 실시하기 위해서는 상당한 양의 시간이 소요될 것이다. 이를 반영하여, 본 실시예는 각각의 테스트에 대한 중요도를 이용하여, 중요도가 높은 테스트를 우선적으로 진행하기 때문에, 시간이 부족한 상황에서 적절한 해결책을 제시할 수 있을 것이다.
지금까지 설명된 본 발명의 실시예에 따른 방법들은 컴퓨터가 읽을 수 있는 코드로 구현된 컴퓨터프로그램의 실행에 의하여 수행될 수 있다. 상기 컴퓨터프로그램은 인터넷 등의 네트워크를 통하여 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치에 전송되어 상기 제2 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 제2 컴퓨팅 장치에서 사용될 수 있다. 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는, 서버 장치, 클라우드 서비스를 위한 서버 풀에 속한 물리 서버, 데스크탑 피씨와 같은 고정식 컴퓨팅 장치를 모두 포함한다.
상기 컴퓨터프로그램은 DVD-ROM, 플래시 메모리 장치 등의 기록매체에 저장된 것일 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.

Claims (8)

  1. 제1 데이터 센터망 외부의 제1 호스트에 구축된 제1 테스트 진행 서버에 하나 이상의 테스트 코드가 등록되는 단계;
    상기 제1 데이터 센터망 내부의 제2 호스트에 구축된 제2 테스트 진행 서버와 상기 제1 테스트 진행 서버 간에 상기 제1 테스트 진행 서버에 등록된 테스트 코드의 동기화가 수행되는 단계; 및
    상기 제1 데이터 센터망 외부의 제1 단말이 상기 제2 테스트 진행 서버에 송신한 테스트 수행 요청에 응답하여, 상기 제2 테스트 진행 서버가 테스트 대상 호스트에 대하여 상기 동기화를 통해 상기 제2 테스트 진행 서버에 저장된 테스트 코드에 따른 테스트를 자동 실시하는 단계를 포함하는,
    소프트웨어 자동 테스트 방법.
  2. 제1항에 있어서,
    상기 제1 단말은 상기 제1 호스트와 동일한 내부망에 연결된 것이고,
    상기 제1 테스트 진행 서버에 하나 이상의 테스트 코드가 등록되는 단계는,
    상기 제1 단말이 제1 테스트 코드를 상기 제1 테스트 진행 서버에 송신하는 단계;
    상기 제1 단말이 상기 제1 테스트 진행 서버에 상기 제1 단말에 구축된 로컬 테스트 서버에 대한 테스트 수행 요청을 송신하되, 상기 테스트 수행 요청은 상기 제1 단말의 주소 정보를 포함하는 것인, 단계; 및
    상기 테스트 수행 요청의 수신에 응답하여, 상기 로컬 테스트 서버가 상기 제1 단말의 로컬 테스트 서버에 대하여 상기 제1 테스트 코드에 의한 테스트를 진행하는 단계를 포함하는,
    소프트웨어 자동 테스트 방법.
  3. 제1항에 있어서,
    상기 테스트 수행 요청은, 상기 테스트 대상 호스트를 가리키는 호스트 식별자를 포함하며,
    상기 테스트를 자동 실시하는 단계는,
    상기 제2 테스트 진행 서버가 상기 제1 데이터 센터망 내부의 호스트 정보를 이용하여 상기 테스트 대상 호스트에 대한 식별자에 대응하는 상기 테스트 대상 호스트의 접속 정보를 얻는 단계;
    상기 제2 테스트 진행 서버가 상기 접속 정보를 이용하여 상기 호스트 식별자에 따른 호스트 접속 URL을 생성하는 단계; 및
    상기 제2 테스트 진행 서버가 상기 호스트 접속 URL을 이용하여 상기 테스트 대상 호스트에 직접 접속하는 단계를 포함하는,
    소프트웨어 자동 테스트 방법.
  4. 제1 항에 있어서,
    상기 제1 단말은 제2 단말과 함께 상기 제1 호스트와 동일한 내부망에 연결된 것이고,
    상기 테스트 코드가 등록되는 단계는,
    상기 제1 단말으로부터 수신된 제1 테스트 코드가 등록되는 단계; 및
    상기 제2 단말으로부터 수신된 제2 테스트 코드가 등록되는 단계를 포함하고,
    상기 테스트를 자동 실시하는 단계는,
    상기 제1 테스트 코드 및 상기 제2 테스트 코드에 따른 테스트를 자동 실시하는 단계를 포함하는,
    소프트웨어 자동 테스트 방법.
  5. 제1항에 있어서,
    상기 테스트 수행 요청은 상기 제1 데이터 센터망 외부의 제2 데이터 센터망에 위치하는 테스트 대상 호스트에 대한 정보를 포함하고,
    상기 테스트를 자동 실시하는 단계는,
    기 입력된 상기 제2 데이터 센터망의 프록시 서버 주소를 이용하여 상기 테스트 대상 호스트에 대한 정보를 포함하는 테스트 의뢰를 상기 제2 데이터 센터망의 프록시 서버에 송신하는 단계를 포함하는,
    소프트웨어 자동 테스트 방법.
  6. 제5항에 있어서,
    상기 테스트 의뢰는,
    상기 프록시 서버 주소, 테스트 대상 호스트 식별자 및 URI(Uniform Resource Identifier)를 연결한 URL(Uniform Resource Locator)이고,
    상기 테스트 의뢰를 상기 제2 데이터 센터망의 프록시 서버에 송신하는 단계는,
    상기 프록시 서버가 상기 테스트 의뢰에서 상기 프록시 서버 주소를 제외하여 상기 URL을 변형하고, 상기 변형된 URL을 호출함으로써 상기 테스트 대상 호스트에 대한 테스트를 자동 실시하는 단계를 포함하는,
    소프트웨어 자동 테스트 방법.
  7. 제6항에 있어서,
    상기 테스트 대상 호스트 식별자는 상기 제2 테스트 진행 서버에 의하여 생성되고 등록된 상기 테스트 대상 호스트 고유의 식별자이고,
    상기 프록시 서버가 상기 테스트 의뢰에서 상기 프록시 서버 주소를 제외하여 상기 URL을 변형하고, 상기 변형된 URL을 호출함으로써 상기 테스트 대상 호스트에 대한 테스트를 자동 실시하는 단계는,
    상기 프록시 서버가 상기 테스트 의뢰에서 상기 프록시 서버 주소를 제외하고, 상기 테스트 대상 호스트 식별자를 상기 테스트 대상 호스트의 접속 주소로 변환함으로써 상기 URL을 변형하며, 상기 변형된 URL을 호출함으로써 상기 테스트 대상 호스트에 대한 테스트를 자동 실시하는 단계를 포함하는,
    소프트웨어 자동 테스트 방법.
  8. 제1 테스트 진행 서버를 서비스하고, 하나 이상의 테스트 코드에 대한 등록 요청을 수신하여 상기 테스트 코드를 저장하는 제1 데이터 센터망 외부의 제1 호스트; 및
    제2 테스트 진행 서버를 서비스하고, 상기 제1 테스트 진행 서버와 상기 테스트 코드의 동기화를 수행하며, 상기 제1 데이터 센터망 외부의 제1 단말로부터 테스트 수행 요청이 수신되는 것에 응답하여, 테스트 대상 호스트에 대하여 상기 동기화를 통해 내부에 저장된 테스트 코드에 따른 테스트를 자동 실시하는 상기 제1 데이터 센터망 내부의 제2 호스트를 포함하는,
    소프트웨어 자동 테스트 시스템.
KR1020180130907A 2018-10-30 2018-10-30 소프트웨어 자동 테스트 시스템 및 방법 KR20200048633A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180130907A KR20200048633A (ko) 2018-10-30 2018-10-30 소프트웨어 자동 테스트 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180130907A KR20200048633A (ko) 2018-10-30 2018-10-30 소프트웨어 자동 테스트 시스템 및 방법

Publications (1)

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

Family

ID=70677645

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180130907A KR20200048633A (ko) 2018-10-30 2018-10-30 소프트웨어 자동 테스트 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20200048633A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102618391B1 (ko) * 2023-09-12 2023-12-27 주식회사 테스트웍스 호스트 가상화를 통한 임베디드 장치의 테스트 방법 및 이를 수행하는 컴퓨팅 장치
KR102660883B1 (ko) * 2023-12-01 2024-04-25 주식회사 테스트웍스 임베디드 장치의 미디어 프로세싱 테스트 방법 및 이를 수행하는 컴퓨팅 장치
KR102660882B1 (ko) * 2023-12-01 2024-04-25 주식회사 테스트웍스 임베디드 장치의 물리적 연결 테스트 방법 및 이를 수행하는 컴퓨팅 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100949800B1 (ko) 2007-12-18 2010-03-30 한국전자통신연구원 단위 테스트 코드를 이용하는 단위 코드의 테스트 방법 및테스트 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100949800B1 (ko) 2007-12-18 2010-03-30 한국전자통신연구원 단위 테스트 코드를 이용하는 단위 코드의 테스트 방법 및테스트 장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102618391B1 (ko) * 2023-09-12 2023-12-27 주식회사 테스트웍스 호스트 가상화를 통한 임베디드 장치의 테스트 방법 및 이를 수행하는 컴퓨팅 장치
KR102660883B1 (ko) * 2023-12-01 2024-04-25 주식회사 테스트웍스 임베디드 장치의 미디어 프로세싱 테스트 방법 및 이를 수행하는 컴퓨팅 장치
KR102660882B1 (ko) * 2023-12-01 2024-04-25 주식회사 테스트웍스 임베디드 장치의 물리적 연결 테스트 방법 및 이를 수행하는 컴퓨팅 장치

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 (ja) ストレージ制御システム、ストレージ制御システムに関する操作方法、データ・キャリア及びコンピュータ・プログラム
CN108958927A (zh) 容器应用的部署方法、装置、计算机设备和存储介质
CN109656538A (zh) 应用程序的生成方法、装置、***、设备和介质
US20150128121A1 (en) Dynamic application version selection
CN107241315B (zh) 银行网关接口的接入方法、装置及计算机可读存储介质
KR20200048633A (ko) 소프트웨어 자동 테스트 시스템 및 방법
CN106506269B (zh) 执行测试任务的方法、***、计算设备及测试***
CN109104368B (zh) 一种请求连接方法、装置、服务器及计算机可读存储介质
CN109254921A (zh) 应用版本验证方法、装置、计算机设备以及存储介质
CN113419818B (zh) 基础组件部署方法、装置、服务器及存储介质
CN113448988A (zh) 算法模型的训练方法、装置、电子设备及存储介质
CN111800511B (zh) 同步登录态的处理方法、***、设备及可读存储介质
CN111930625B (zh) 基于云服务平台的日志获取方法、装置及***
CN116974874A (zh) 数据库的测试方法、装置、电子设备及可读存储介质
US20190196842A1 (en) Medium, change detection method, and change detection apparatus
JP2006106933A (ja) 負荷分散ネットワークシステム及び負荷分散用プログラム
CN114356456A (zh) 业务处理方法、装置、存储介质和电子设备
CN114443215A (zh) 业务应用部署方法、装置、计算机设备和存储介质
CN114610446A (zh) 一种自动注入探针的方法、装置及***
CN111294250B (zh) 压力测试方法、装置和***
CN109525642B (zh) 一种用户机制下的lims***客户数据自动化上报方法
CN110266762A (zh) 一种数据上传方法、***、装置及存储介质
CN114844859B (zh) 域名配置方法、装置、电子设备及存储介质

Legal Events

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