KR20160050634A - 테스트 대상 소프트웨어를 테스트하는 시스템, 테스트 대상 소프트웨어를 테스트하는 방법 및 클라우드 서버 - Google Patents

테스트 대상 소프트웨어를 테스트하는 시스템, 테스트 대상 소프트웨어를 테스트하는 방법 및 클라우드 서버 Download PDF

Info

Publication number
KR20160050634A
KR20160050634A KR1020140149219A KR20140149219A KR20160050634A KR 20160050634 A KR20160050634 A KR 20160050634A KR 1020140149219 A KR1020140149219 A KR 1020140149219A KR 20140149219 A KR20140149219 A KR 20140149219A KR 20160050634 A KR20160050634 A KR 20160050634A
Authority
KR
South Korea
Prior art keywords
test
target software
server
testing
unit
Prior art date
Application number
KR1020140149219A
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 KR1020140149219A priority Critical patent/KR20160050634A/ko
Publication of KR20160050634A publication Critical patent/KR20160050634A/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/3668Software testing
    • G06F11/3696Methods or tools to render software testable

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

클라우드 서버에서 대상 소프트웨어를 테스트하는 방법은 대상 소프트웨어의 실행 파일을 로딩하는 단계, 실행 파일로부터 환경 설정 정보를 분석하는 단계, 환경 설정 정보에 기초하여, 테스트 서버의 인스턴스를 생성하는 단계, 테스트 서버의 인스턴스에서 상기 대상 소프트웨어를 실행하는 단계, 대상 소프트웨어를 하나 이상의 테스트 도구를 통해 테스트하는 단계 및 테스트의 결과를 스냅샷으로 저장하는 단계를 포함한다.

Description

테스트 대상 소프트웨어를 테스트하는 시스템, 테스트 대상 소프트웨어를 테스트하는 방법 및 클라우드 서버{SYSTEM FOR TESTING FOR TEST TARGET SOFTWARE METHOD FOR TESTING FOR TEST TARGET SOFTWARE AND CLOUD SERVER}
본 발명은 테스트 대상 소프트웨어를 테스트하는 시스템, 테스트 대상 소프트웨어를 테스트하는 방법 및 클라우드 서버에 관한 것이다.
PaaS(Platform as a Service)는 Saas의 개념을 개발 플랫폼에 확장한 방식으로, 개발을 위한 플랫폼 구축을 할 필요 없이 필요한 개발 요소들을 웹에서 쉽게 빌려서 사용할 수 있게 하는 모델을 말한다. 이러한 PaaS를 이용한 서비스와 관련하여, 한국등록특허인 제 10-1278009호에는 에스엔에스(SNS) 기반의 양방향 모바일 웹, 캠페인 저작 및 운영시스템에 대해 개시하고 있다.
PaaS에서 소프트웨어를 원활하게 구동되기 위해서는 우선, 해당 소프트웨어를 원활하게 구동되는지를 테스트할 수 있는 가상화된 환경이 필요하다. 그러나, 테스트 환경의 구축을 위해서는 물리적인 서버, 설치될 개발 소프트웨어에 필요한 OS, 웹서버, DB 등이 필요하며, 이에 따라, 많은 시간과 노력을 필요로 한다. 따라서, 적은 시간과 노력으로 소프트웨어를 테스트할 수 있도록 하는 테스트 서버 구축 환경이 필요하다.
하나의 실행 파일로 테스트 서버를 자동으로 구축하고, 테스트 대상 소프트웨어를 테스트 서버에 설치함으로써, 테스트 환경 구축에 드는 시간과 노력을 줄일 수 있는 대상 소프트웨어를 테스트하는 시스템 및 방법, 그리고 클라우드 서버를 제공하고자 한다. 또한, 스냅샷을 통해 과거에 테스트한 환경을 짧은 시간 내에 복원하고, 테스트 시 발견된 결함과 관련된 데이터를 제공할 수 있는 대상 소프트웨어를 테스트하는 시스템 및 방법, 그리고 클라우드 서버를 제공하고자 한다. 또한, 관리자는 관리자 페이지를 통해 테스트 서버의 상태, 테스트 서버에 설치된 대상 소프트웨어의 상태를 모니터링하여 관리하는 대상 소프트웨어를 테스트하는 시스템 및 방법, 그리고 클라우드 서버를 제공하고자 한다. 다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예는 대상 소프트웨어의 실행 파일을 로딩하는 단계, 상기 실행 파일로부터 환경 설정 정보를 분석하는 단계, 상기 환경 설정 정보에 기초하여, 테스트 서버의 인스턴스를 생성하는 단계, 상기 테스트 서버의 인스턴스에서 상기 대상 소프트웨어를 실행하는 단계, 상기 대상 소프트웨어를 하나 이상의 테스트 도구를 통해 테스트하는 단계 및 상기 테스트의 결과를 스냅샷으로 저장하는 단계를 포함하는 테스트 방법을 제공할 수 있다.
또한, 본 발명의 다른 실시예는, 대상 소프트웨어의 실행 파일을 로딩하는 로딩부, 상기 실행 파일로부터 환경 설정 정보를 분석하고, 상기 환경 설정 정보에 기초하여, 테스트 서버의 인스턴스를 생성하는 인스턴스 생성부, 상기 테스트 서버의 인스턴스에서 상기 대상 소프트웨어를 실행하고, 상기 대상 소프트웨어를 하나 이상의 테스트 도구를 통해 테스트하는 테스트부 및 상기 테스트의 결과를 스냅샷으로 저장하는 저장부를 포함하는 클라우드 서버를 제공할 수 있다.
또한, 본 발명의 또 다른 실시예는, 상기 대상 소프트웨어의 실행 파일을 업로드하는 관리자 단말 및 상기 대상 소프트웨어의 실행 파일을 로딩하여, 환경 설정 정보를 분석하고, 상기 환경 설정 정보에 기초하여, 테스트 서버의 인스턴스를 생성하고, 상기 테스트 서버의 인스턴스에서 상기 대상 소프트웨어를 실행하고, 상기 대상 소프트웨어를 하나 이상의 테스트 도구를 통해 테스트하고, 상기 테스트의 결과를 스냅샷으로 저장하는 클라우드 서버를 포함하는 시스템을 제공할 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본 발명을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 기재된 추가적인 실시예가 존재할 수 있다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 하나의 실행 파일로 테스트 서버를 자동으로 구축하고, 테스트 대상 소프트웨어를 테스트 서버에 설치함으로써, 테스트 환경 구축에 드는 시간과 노력을 줄일 수 있는 대상 소프트웨어를 테스트하는 시스템 및 방법, 그리고 클라우드 서버를 제공할 수 있다. 또한, 스냅샷을 통해 과거에 테스트한 환경을 짧은 시간 내에 복원하고, 테스트 시 발견된 결함과 관련된 데이터를 제공할 수 있는 대상 소프트웨어를 테스트하는 시스템 및 방법, 그리고 클라우드 서버를 제공할 수 있다. 또한, 관리자는 관리자 페이지를 통해 테스트 서버의 상태, 테스트 서버에 설치된 대상 소프트웨어의 상태를 모니터링하여 관리하는 대상 소프트웨어를 테스트하는 시스템 및 방법, 그리고 클라우드 서버를 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 대상 소프트웨어 테스트 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 클라우드 서버의 구성도이다.
도 3은 본 발명의 다른 실시예에 따른 클라우드 서버의 구성도이다.
도 4는 본 발명의 일 실시예에 따른 대상 소프트웨어 테스트 방법을 나타낸 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미하며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다.
본 명세서에 있어서 단말 또는 디바이스가 수행하는 것으로 기술된 동작이나 기능 중 일부는 해당 단말 또는 디바이스와 연결된 서버에서 대신 수행될 수도 있다. 이와 마찬가지로, 서버가 수행하는 것으로 기술된 동작이나 기능 중 일부도 해당 서버와 연결된 단말 또는 디바이스에서 수행될 수도 있다.
이하 첨부된 도면을 참고하여 본 발명의 일 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 대상 소프트웨어 테스트 시스템의 구성도이다. 도 1을 참조하면, 대상 소프트웨어 테스트 시스템(1)은 관리자 단말(110) 및 클라우드 서버(120)를 포함할 수 있다. 도 1에 도시된 관리자 단말(110) 및 클라우드 서버(120)는 대상 소프트웨어 테스트 시스템(1)에 의하여 제어될 수 있는 구성요소들을 예시적으로 도시한 것이다.
도 1의 대상 소프트웨어 테스트 시스템(1)의 각 구성요소들은 일반적으로 네트워크(network)를 통해 연결된다. 예를 들어, 도 1에 도시된 바와 같이, 관리자 단말(110)은 네트워크를 통하여 클라우드 서버(120)와 연결될 수 있다.
네트워크는 단말들 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예는, Wi-Fi, 블루투스(Bluetooth), 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 3G, 4G, LTE 등이 포함되나 이에 한정되지는 않는다.
관리자 단말(110)은 대상 소프트웨어의 실행 파일을 업로드할 수 있다. 관리자 단말(110)은 예를 들어, Jenkins와 같은 빌드 자동화 시스템을 포함할 수 있으며, 실행 파일을 주기적으로 빌드(build)하여 클라우드 서버(120)로 배포되도록 설정 및 관리를 할 수 있다. 이 때, 실행 파일은 설치 가능한 환경 설정 정보를 포함한다.
또한, 관리자 단말(110)은 클라우드 서버(120)에서 대상 소프트웨어에 대해 테스트를 수행한 경우, 클라우드 서버(120)에서 제공하는 관리자 페이지를 통해 대상 소프트웨어의 설치 상태를 모니터링할 수 있으며, 대상 소프트웨어의 설치가 실패한 경우, 재설치를 수행하도록할 수 있다. 관리자 단말(110)은 테스트 서버의 구성을 확인 및 관리할 수 있으며, 클라우드 서버(120)에 저장된 스냅샷을 활성화시키거나 삭제할 수도 있다.
클라우드 서버(120)는 대상 소프트웨어의 실행 파일을 로딩하여 환경 설정 정보를 분석할 수 있다. 실행 파일의 환경 설정 정보는 예를 들어, 운영체제(OS), 데이터베이스(DB), 웹서버, 프로그래밍 언어 등을 포함할 수 있다.
클라우드 서버(120)는 분석한 환경 설정 정보에 기초하여 테스트 서버의 인스턴스를 생성할 수 있다. 예를 들어, 클라우드 서버(120)는 운영체제(OS)를 CentOS 4.3로, 웹서버를 Apache로, 데이터베이스를 MySQL로, 프로그래밍 언어를 php로 파싱하여 인스턴스를 생성할 수 있다.
클라우드 서버(120)는 테스트 서버의 인스턴스에서 대상 소프트웨어를 실행할 수 있다. 이 때, 클라우드 서버(120)는 대상 소프트웨어의 다운로드 및 설치를 건 별로 자동 또는 수동으로 관리할 수 있으며, 클라우드 서버(120)가 설치 스크립트에 따라 배포된 실행 파일을 테스트 서버에 다운로드하면, 실행 파일은 자동으로 대상 소프트웨어를 실행할 수 있다.
클라우드 서버(120)는 대상 소프트웨어를 하나 이상의 테스트 도구를 통해 테스트할 수 있다. 이 때, 테스트 서버의 성능 테스트가 필요한 경우, 클라우드 서버(120)는 테스트 서버에 부하를 설계하여 테스트 서버의 성능을 테스트할 수 있다. 예를 들어, 클라우드 서버(120)는 테스트 수행을 위해 설계한 테스트 케이스를 이용하여 대상 소프트웨어를 테스트 케이스 별로 테스트할 수 있다. 이 때, 클라우드 서버(120)는 대상 소프트웨어로부터 결함을 발견한 경우, 발견한 결함을 데이터베이스에 저장하여 관리할 수 있다.
클라우드 서버(120)는 테스트 결과를 스냅샷으로 저장할 수 있다. 스냅샷은 예를 들어, 대상 소프트웨어의 버전, 서버 환경, 테스트 도구, 테스트 케이스, 테스트의 결과 및 결함 정보 등을 포함할 수 있다. 이 때, 클라우드 서버(120)는 저장된 스냅샷을 이용하여 대상 소프트웨어의 설치 상태를 모니터링할 수 있으며, 대상 소프트웨어의 설치가 실패한 경우, 재설치를 수행하도록 할 수도 있다. 이를 위해, 클라우드 서버(120)는 스냅샷을 필요한 시점에 따라 버전 별로 저장할 수 있다.
도 2는 본 발명의 일 실시예에 따른 클라우드 서버의 구성도이다. 도 2를 참조하면, 클라우드 서버(120)는 로딩부(210), 인스턴스 생성부(220), 플랫폼 이미지 검색부(230), 테스트부(240), 저장부(250) 및 관리부(260)를 포함할 수 있다.
로딩부(210)는 대상 소프트웨어의 실행 파일을 로딩할 수 있다. 이 때, 대상 소프트웨어의 실행 파일은 관리자 단말(110)을 통해 빌드되어 업로딩된 것일 수 있다.
인스턴스 생성부(220)는 실행 파일로부터 환경 설정 정보를 분석할 수 있다. 이 때, 대상 소프트웨어의 실행 파일은 환경 설정 정보를 포함할 수 있으며, 실행 파일의 환경 설정 정보는 예를 들어, 운영체제(OS), 데이터베이스(DB), 웹서버, 프로그래밍 언어 등을 포함할 수 있다.
인스턴스 생성부(220)는 분석한 환경 설정 정보에 기초하여 테스트 서버의 인스턴스를 생성할 수 있다. 예를 들어, 인스턴스 생성부(220)는 분석한 환경 설정 정보에 기초하여 운영체제는 CentOS 4.3으로, 웹서버는 Apache로, 데이터베이스는 MySQL로, 프로그래밍 언어는 php로 테스트 서버의 인스턴스를 생성할 수 있다.
플랫폼 이미지 검색부(230)는 비활성화 상태로 보관된 복수의 플랫폼 이미지들로부터 환경 설정 정보에 대응하는 플랫폼 이미지를 검색할 수 있다. 예를 들어, 플랫폼 이미지 검색부(230)는 복수의 플랫폼 이미지의 구성된 환경에 대한 메타데이터에 기초하여 플랫폼 이미지를 검색할 수 있으며, 선택된 플랫폼 이미지는 테스트 서버로 활성화될 수 있다. 이 때, 환경 설정 정보에 대응하는 플랫폼 이미지가 존재하지 않는 경우, 플랫폼 이미지 검색부(230)는 설치 스크립트에 환경 설정 정보를 대입하여 테스트 서버를 신규 설치할 수 있다.
테스트부(240)는 테스트 서버의 인스턴스에서 대상 소프트웨어를 실행할 수 있다. 테스트부(240)는 대상 소프트웨어를 설치 스크립트에 따라 테스트 서버에 다운로드한 후, 대상 소프트웨어를 실행시켜 테스트 서버에 설치할 수 있다. 이 때, 테스트부(240)는 대상 소프트웨어의 다운로드 및 설치를 건 별로 자동 또는 수동으로 관리할 수 있으며, 관리자는 설치 결과를 관리 페이지를 통해 모니터링할 수 있다.
테스트부(240)는 대상 소프트웨어를 하나 이상의 테스트 도구를 통해 테스트할 수 있다. 이 때, 테스트부(240)는 테스트 서버에 부하를 설계하여 테스트 서버의 성능을 테스트하고, 대상 소프트웨어를 테스트 케이스 별로 테스트할 수 있으며, 저장부(250)는 테스트 수행을 위해 설계한 테스트 케이스를 데이터베이스에 저장하여 관리할 수 있다. 또한, 테스트부(240)에서 대상 소프트웨어로부터 결함을 발견한 경우, 저장부(250)에서 발견한 결함을 테스트 케이스와는 별도로 데이터베이스에 저장하여 관리할 수 있다.
저장부(250)는 테스트 결과를 스냅샷으로 저장할 수 있다. 이 때, 스냅샷은 대상 소프트웨어의 버전, 서버 환경, 테스트 도구, 테스트 케이스, 테스트의 결과 및 결함 정보 등의 데이터를 포함할 수 있다. 저장부(250)에 저장된 스냅샷은 후에 관리자의 필요에 따라 활성화되어 정보를 확인할 수 있으며, 동일한 환경에서 재테스트를 수행할 수도 있다. 이를 위해, 저장부(250)는 필요한 시점에 따라 스냅샷을 버전별로 저장할 수 있다.
관리부(260)는 대상 소프트웨어의 설치 상태를 모니터링할 수 있다. 관리부(260)는 관리자 단말(110)로 관리자 페이지를 제공할 수 있으며, 관리자는 관리자 페이지를 통해 대상 소프트웨어의 설치 상태를 모니터링하여 설치가 실패하였을 경우, 재설치를 수행하도록 할 수 있다. 또한, 관리자는 관리부(260)에서 제공하는 관리자 페이지를 통해 테스트 서버의 구성을 확인 및 관리할 수 있으며, 저장된 스냅샷을 활성화시키거나 삭제할 수도 있다.
도 3은 본 발명의 다른 실시예에 따른 클라우드 서버의 구성도이다. 클라우드 서버(300)는 버전 관리부(310), 분석부(320), 플랫폼 이미지부(330), 테스트 서버부(340), 테스트 도구부(350) 및 관리 페이지부(360)를 포함할 수 있다.
버전 관리부(310)는 관리자 단말(110)로부터 배포된 실행 파일을 로딩하여 버전관리를 할 수 있다. 예를 들어, 버전 관리부(310)는 관리자 단말(110)로부터 실행 파일1(311), 실행 파일2(312), 실행 파일3(313)을 로딩할 수 있다. 실행 파일1~3(311 내지 313)은 GIT(301)를 통해 소스코드가 생성되고, Jenkins(302)와 같은 빌드 자동화 시스템을 통해 CI 서버에서 주기적으로 빌드된 것일 수 있다.
예를 들어, 클라우드 서버(300)가 실행 파일3(313)에 대한 테스트를 수행한다고 가정하자.
분석부(320)는 실행 파일3(313)으로부터 환경 설정 정보를 분석할 수 있다. 즉, 실행 파일3(313)은 자신이 설치 가능한 환경 설정 정보를 포함할 수 있다. 예를 들어, 분석부(320)는 실행 파일3(313)의 프로파일을 분석하여 각각의 정보를 파싱(321)할 수 있다. 또한, 분석부(320)는 실행 파일3(313)의 설치 환경 정보를 추출(322)할 수 있다.
플랫폼 이미지부(330)는 비활성화 상태로 보관된 복수의 플랫폼 이미지들로부터 환경 설정 정보에 대응하는 플랫폼 이미지를 검색할 수 있다. 예를 들어, 플랫폼 이미지부(330)는 DB A(331), 웹서버A(332), OS A(333)로 구성된 제 1 플랫폼 이미지, DB B, 웹서버C, OS B로 구성된 제 2 플랫폼 이미지, DB A, 웹서버B, OS C로 구성된 제 3 플랫폼 이미지를 보관하고 있을 수 있다. 플랫폼 이미지부(330)는, 제 3 실행 파일(313)의 환경 설정 정보에 기초하여 제 1 플랫폼 이미지를 선택할 수 있다. 이 때, 플랫폼 이미지부(330)는 구성된 환경에 대한 메타데이터에 기초하여 플랫폼 이미지를 검색할 수 있으며, 플랫폼 이미지에 적합한 이미지가 없는 경우, 설치 스크립트에 추출된 환경 정보를 대입하여 테스트 서버(340)에 설치할 수 있다.
테스트 서버부(340)는 환경 설정 정보에 기초하여 테스트 서버의 인스턴스를 생성할 수 있다. 예를 들어, 테스트 서버부(340)는 설치 스크립트에 따라 배포된 실행 파일3(313)을 다운로드할 수 있다. 이 때, 테스트 서버부(340)는 주기적으로 배포되는 실행파일의 다운로드 및 설치를 건 별로 자동 또는 수동으로 설치 및 관리할 수 있다. 다른 예를 들어, 테스트 서버부(340)는 실행 파일3(313)의 환경 설정 정보에 기초하여 보관된 플랫폼 이미지인 제 1 플랫폼 이미지를 활성화시킬 수 있다. 이 때, 제 1 플랫폼 이미지는 DB A(331), 웹서버A(332), OS A(333)로 구성될 수 있다.
테스트 서버부(340)는 클라우드 서버(300)의 테스트 도구부(350)를 이용하여 설치한 대상 소프트웨어를 테스트할 수 있다.
테스트 도구부(350)는 부하 테스트부(351), 결합관리시스템(352), TC관리시스템(353)을 포함할 수 있다. 테스트 도구부(350)는 테스트 서버(340)에 인가될 부하를 설계하여 부하 테스트부(351)를 테스트를 수행할 수 있다. 테스트 도구부(350)는 테스트 서버(340)에서의 테스트 수행을 위해 설계한 테스트 케이스를 TC관리시스템(353)에 등록하여 이용할 수 있다. 테스트 도구부(350)는 테스트 서버(340)에서 테스트 수행 과정 중에서 발견한 결함을 결함관리시스템(352)에 등록하여 이를 관리할 수 있다. 테스트 도구부(350)는 부하 테스트부(351), 결합관리시스템(352), TC관리시스템(353) 이외의 필요한 테스트 도구 환경을 사전에 클라우드 서버(300)를 통해 관리할 수 있으며, 필요 시에 이용할 수 있다.
테스트 서버부(340)는 대상 소프트웨어의 테스트가 종료되면, 테스트의 결과를 스냅샷으로 저장할 수 있다. 이 때, 테스트 도구부(350)에서도 대상 소프트웨어의 테스트 결과를 스냅샷으로 저장할 수도 있다. 스냅샷은 예를 들어, 해당 시점의 대상 소프트웨어의 버전, 설치된 서버 환경, 사용된 테스트 도구, 테스트 케이스 및 결과, 결함 정보 등의 데이터를 저장할 수 있다. 이 때, 테스트 서버부(340)에서 저장한 스냅샷은 필요에 따라 활성화되어 관련 정보를 확인할 수 있으며, 동일 환경 내에서 재테스트를 할 수도 있다. 이를 위해, 테스트 서버부(340)는 스냅샷을 필요한 시점에 따라 버전별로 저장할 수 있다.
관리 페이지부(360)는 테스트 수행과 관련된 일련의 과정을 관리자 페이지를 통해 관리자 단말(110)로 제공할 수 있다. 관리 페이지부(360)는 예를 들어, 설치상태 모니터링(361), 테스트서버 관리부(362), 스냅샷 관리부(363) 등을 관리자 페이지를 통해 관리자 단말(110)로 제공할 수 있다. 이 때, 관리자 단말(110)은 관리자 페이지의 설치상태 모니터링(361)을 통해 대상 소프트웨어의 설치 상태를 모니터링하고, 설치가 실패한 경우, 재설치를 수행할 수 있다. 관리자 단말(110)은 테스트서버 관리부(362)를 통해 테스트 서버부(340)의 구성을 확인하고, 이를 관리할 수 있다. 관리자 단말(110)은 스냅샷 관리부(363)를 통해 저장된 스냅샷을 활성화하거나 삭제할 수 있다.
도 4는 본 발명의 일 실시예에 따른 대상 소프트웨어 테스트 방법을 나타낸 흐름도이다. 도 4에 도시된 실시예에 따른 클라우드 서버(120)에 의해 수행되는 대상 소프트웨어 테스트 방법은 도 1에 도시된 실시예에 따른 대상 소프트웨어 테스트 시스템(1)에서 시계열적으로 처리되는 단계들을 포함한다. 따라서, 이하 생략된 내용이라 하더라도 도 1에 도시된 실시예에 따른 대상 소프트웨어 테스트 시스템(1)에 관하여 이미 기술된 내용은 도 4에 도시된 실시예에 따른 클라우드 서버(120)에 의해 수행되는 대상 소프트웨어 테스트 방법에도 적용된다.
단계 S410에서 클라우드 서버(120)는 대상 소프트웨어의 실행 파일을 로딩한다. 단계 S420에서 클라우드 서버(120)는 실행 파일로부터 환경 설정 정보를 분석한다. 단계 S430에서 클라우드 서버(120)는 환경 설정 정보에 기초하여 테스트 서버의 인스턴스를 생성한다. 단계 S440에서 클라우드 서버(120)는 테스트 서버의 인스턴스에서 대상 소프트웨어를 실행한다. 이 때, 클라우드 서버(120)는 대상 소프트웨어의 다운로드 및 설치를 건 별로 자동 또는 수동으로 관리할 수 있다. 단계 S450에서 클라우드 서버(120)는 대상 소프트웨어를 하나 이상의 테스트 도구를 통해 테스트한다. 이 때, 단계 S450는 테스트 서버에 부하를 설계하여 테스트 서버의 성능을 테스트하는 단계 및 대상 소프트웨어를 테스트 케이스 별로 테스트하는 단계를 포함할 수 있으며, 대상 소프트웨어로부터 결함을 발견한 경우, 클라우드 서버(120)는 발견한 결함을 클라우드 서버(120)에 저장하여 관리하는 단계를 포함할 수 있다. 단계 S460에서 클라우드 서버(120)는 테스트의 결과를 스냅샷으로 저장한다. 이 때, 클라우드 서버(120)는 대상 소프트웨어의 버전, 서버 환경, 테스트 도구, 테스트 케이스, 테스트의 결과 및 결함 정보 중 적어도 하나 이상을 포함할 수 있다.
도 4에서 도시되지 않았으나, 클라우드 서버(120)는 비활성화 상태로 보관된 복수의 플랫폼 이미지들로부터 환경 설정 정보에 대응하는 플랫폼 이미지를 검색하는 단계를 더 포함할 수 있다. 클라우드 서버(120)는 복수의 플랫폼 이미지의 구성된 환경에 대한 메타데이터에 기초하여 플랫폼 이미지를 검색할 수 있다. 이 때, 환경 설정 정보에 대응하는 플랫폼 이미지가 존재하지 않는 경우, 클라우드 서버(120)는 설치 스크립트에 환경 설정 정보에 대입하여 테스트 서버를 신규 설치하는 단계를 포함할 수 있다.
도 4에서 도시되지 않았으나, 클라우드 서버(120)는 대상 소프트웨어의 설치 상태를 모니터링하는 단계 및 대상 소프트웨어의 설치가 실패한 경우, 재설치를 수행하는 단계를 더 포함할 수 있다.
도 4를 통해 설명된 클라우드 서버(120)에 의해 수행되는 대상 소프트웨어 테스트 방법은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
110: 관리자 단말
120: 클라우드 서버
210: 로딩부
220: 인스턴스 생성부
230: 플랫폼 이미지 검색부
240: 테스트부
250: 저장부
260: 관리부

Claims (19)

  1. 클라우드 서버에서 대상 소프트웨어를 테스트하는 방법에 있어서,
    대상 소프트웨어의 실행 파일을 로딩하는 단계;
    상기 실행 파일로부터 환경 설정 정보를 분석하는 단계;
    상기 환경 설정 정보에 기초하여, 테스트 서버의 인스턴스를 생성하는 단계;
    상기 테스트 서버의 인스턴스에서 상기 대상 소프트웨어를 실행하는 단계;
    상기 대상 소프트웨어를 하나 이상의 테스트 도구를 통해 테스트하는 단계; 및
    상기 테스트의 결과를 스냅샷으로 저장하는 단계
    를 포함하는, 테스트 방법.
  2. 제 1 항에 있어서,
    비활성화 상태로 보관된 복수의 플랫폼 이미지들로부터, 상기 환경 설정 정보에 대응하는 플랫폼 이미지를 검색하는 단계를 더 포함하는, 테스트 방법.
  3. 제 2 항에 있어서,
    상기 플랫폼 이미지를 검색하는 단계는,
    상기 복수의 플랫폼 이미지의 구성된 환경에 대한 메타데이터에 기초하여 상기 플랫폼 이미지를 검색하는 것인, 테스트 방법.
  4. 제 2 항에 있어서,
    상기 플랫폼 이미지를 검색하는 단계는,
    상기 환경 설정 정보에 대응하는 플랫폼 이미지가 존재하지 않는 경우,
    설치 스크립트에 상기 환경 설정 정보를 대입하여 테스트 서버를 신규 설치하는 단계를 포함하는 것인, 테스트 방법.
  5. 제 1 항에 있어서,
    상기 대상 소프트웨어를 실행하는 단계는,
    상기 대상 소프트웨어의 다운로드 및 설치를 건 별로 자동 또는 수동으로 관리하는 것인, 테스트 방법.
  6. 제 1 항에 있어서,
    상기 테스트 도구를 통해 테스트하는 단계는,
    상기 테스트 서버에 부하를 설계하여 상기 테스트 서버의 성능을 테스트하는 단계; 및
    상기 대상 소프트웨어를 테스트 케이스 별로 테스트하는 단계를 포함하는 것인, 테스트 방법.
  7. 제 1 항에 있어서,
    상기 테스트 도구를 통해 테스트하는 단계는,
    상기 대상 소프트웨어로부터 결함을 발견한 경우,
    상기 발견한 결함을 상기 클라우드 서버에 저장하여 관리하는 단계를 포함하는 것인, 테스트 방법.
  8. 제 1 항에 있어서,
    상기 스냅샷으로 저장하는 단계는,
    상기 대상 소프트웨어의 버전, 서버 환경, 상기 테스트 도구, 테스트 케이스, 상기 테스트의 결과 및 결함 정보 중 적어도 하나 이상을 포함하는 것인, 테스트 방법.
  9. 제 1 항에 있어서,
    상기 대상 소프트웨어의 설치 상태를 모니터링하는 단계; 및
    상기 대상 소프트웨어의 설치가 실패한 경우, 재설치를 수행하는 단계를 더 포함하는 것인, 테스트 방법.
  10. 대상 소프트웨어를 테스트하는 클라우드 서버에 있어서,
    대상 소프트웨어의 실행 파일을 로딩하는 로딩부;
    상기 실행 파일로부터 환경 설정 정보를 분석하고, 상기 환경 설정 정보에 기초하여, 테스트 서버의 인스턴스를 생성하는 인스턴스 생성부;
    상기 테스트 서버의 인스턴스에서 상기 대상 소프트웨어를 실행하고, 상기 대상 소프트웨어를 하나 이상의 테스트 도구를 통해 테스트하는 테스트부; 및
    상기 테스트의 결과를 스냅샷으로 저장하는 저장부
    를 포함하는, 클라우드 서버.
  11. 제 10 항에 있어서,
    비활성화 상태로 보관된 복수의 플랫폼 이미지들로부터, 상기 환경 설정 정보에 대응하는 플랫폼 이미지를 검색하는 플랫폼 이미지 검색부를 더 포함하는 것인, 클라우드 서버.
  12. 제 10 항에 있어서,
    상기 복수의 플랫폼 이미지의 구성된 환경에 대한 메타데이터에 기초하여 상기 플랫폼 이미지를 검색하는 것인, 클라우드 서버.
  13. 제 12 항에 있어서,
    상기 플랫폼 이미지 검색부는,
    상기 환경 설정 정보에 대응하는 플랫폼 이미지가 존재하지 않는 경우,
    설치 스크립트에 상기 환경 설정 정보를 대입하여 테스트 서버를 신규 설치하는 것인, 클라우드 서버.
  14. 제 10 항에 있어서,
    상기 테스트부는,
    상기 대상 소프트웨어의 다운로드 및 설치를 건 별로 자동 또는 수동으로 관리하는 것인, 클라우드 서버.
  15. 제 10 항에 있어서,
    상기 테스트부는,
    상기 테스트 서버에 부하를 설계하여 상기 테스트 서버의 성능을 테스트하고,
    상기 대상 소프트웨어를 테스트 케이스 별로 테스트하는 것인, 클라우드 서버.
  16. 제 10 항에 있어서,
    상기 테스트부에서 상기 대상 소프트웨어로부터 결함을 발견한 경우,
    상기 저장부는,
    상기 발견한 결함을 데이터베이스에 저장하여 관리하는 것인, 클라우드 서버.
  17. 제 10 항에 있어서,
    상기 스냅샷은 상기 대상 소프트웨어의 버전, 서버 환경, 상기 테스트 도구, 테스트 케이스, 상기 테스트의 결과 및 결함 정보 중 적어도 하나 이상을 포함하는 것인, 클라우드 서버.
  18. 제 10 항에 있어서,
    상기 대상 소프트웨어의 설치 상태를 모니터링하고,
    상기 대상 소프트웨어의 설치가 실패한 경우, 재설치를 수행하는 관리부를 더 포함하는 것인, 클라우드 서버.
  19. 대상 소프트웨어를 테스트하는 시스템에 있어서,
    상기 대상 소프트웨어의 실행 파일을 업로드하는 관리자 단말; 및
    상기 대상 소프트웨어의 실행 파일을 로딩하여, 환경 설정 정보를 분석하고, 상기 환경 설정 정보에 기초하여, 테스트 서버의 인스턴스를 생성하고, 상기 테스트 서버의 인스턴스에서 상기 대상 소프트웨어를 실행하고, 상기 대상 소프트웨어를 하나 이상의 테스트 도구를 통해 테스트하고, 상기 테스트의 결과를 스냅샷으로 저장하는 클라우드 서버
    를 포함하는, 시스템.
KR1020140149219A 2014-10-30 2014-10-30 테스트 대상 소프트웨어를 테스트하는 시스템, 테스트 대상 소프트웨어를 테스트하는 방법 및 클라우드 서버 KR20160050634A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140149219A KR20160050634A (ko) 2014-10-30 2014-10-30 테스트 대상 소프트웨어를 테스트하는 시스템, 테스트 대상 소프트웨어를 테스트하는 방법 및 클라우드 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140149219A KR20160050634A (ko) 2014-10-30 2014-10-30 테스트 대상 소프트웨어를 테스트하는 시스템, 테스트 대상 소프트웨어를 테스트하는 방법 및 클라우드 서버

Publications (1)

Publication Number Publication Date
KR20160050634A true KR20160050634A (ko) 2016-05-11

Family

ID=56025560

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140149219A KR20160050634A (ko) 2014-10-30 2014-10-30 테스트 대상 소프트웨어를 테스트하는 시스템, 테스트 대상 소프트웨어를 테스트하는 방법 및 클라우드 서버

Country Status (1)

Country Link
KR (1) KR20160050634A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019020812A1 (en) * 2017-07-28 2019-01-31 Lstech Ltd METHOD, SYSTEM AND CLOUD-TYPE COMPUTING PRODUCT FOR TESTING WEB DOMAINS FOR BEHAVIORAL TARGETING IN ONLINE ADVERTISING
KR102145821B1 (ko) * 2020-02-28 2020-08-19 주식회사 에이치비스미스 서비스 플랫폼을 테스트하기 위한 장치, 시스템 및 방법
KR102222891B1 (ko) * 2019-12-06 2021-03-04 한국항공우주연구원 인공위성 소프트웨어를 검증하는 시뮬레이터, 인공위성 소프트웨어를 검증하는 방법 및 컴퓨터 프로그램
KR20210039714A (ko) * 2019-10-02 2021-04-12 국방과학연구소 테스트 환경 구축 방법 및 장치
WO2024005246A1 (ko) * 2022-06-30 2024-01-04 쿠팡 주식회사 코드 검증 정보를 제공하는 전자 장치 및 그 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019020812A1 (en) * 2017-07-28 2019-01-31 Lstech Ltd METHOD, SYSTEM AND CLOUD-TYPE COMPUTING PRODUCT FOR TESTING WEB DOMAINS FOR BEHAVIORAL TARGETING IN ONLINE ADVERTISING
KR20210039714A (ko) * 2019-10-02 2021-04-12 국방과학연구소 테스트 환경 구축 방법 및 장치
KR102222891B1 (ko) * 2019-12-06 2021-03-04 한국항공우주연구원 인공위성 소프트웨어를 검증하는 시뮬레이터, 인공위성 소프트웨어를 검증하는 방법 및 컴퓨터 프로그램
KR102145821B1 (ko) * 2020-02-28 2020-08-19 주식회사 에이치비스미스 서비스 플랫폼을 테스트하기 위한 장치, 시스템 및 방법
WO2024005246A1 (ko) * 2022-06-30 2024-01-04 쿠팡 주식회사 코드 검증 정보를 제공하는 전자 장치 및 그 방법

Similar Documents

Publication Publication Date Title
US11474925B2 (en) Overlapping-in-time execution of load tests on applications in a centralized system
US10515005B1 (en) Systems and methods for testing source code
CN107729066B (zh) 一种基于svn资源库自动化构建发布方法与装置
US9348582B2 (en) Systems and methods for software dependency management
CN109117169B (zh) 用于修复内核漏洞的方法和装置
US10885201B2 (en) Apparatus for quantifying security of open-source software package, and apparatus and method for optimizing open-source software package
US9419856B1 (en) Network device configuration deployment pipeline
EP3019976B1 (en) Dynamic migration script management
US10067863B1 (en) Feature targeting of test automation lab machines
KR20160050634A (ko) 테스트 대상 소프트웨어를 테스트하는 시스템, 테스트 대상 소프트웨어를 테스트하는 방법 및 클라우드 서버
US9992064B1 (en) Network device configuration deployment pipeline
US8661418B2 (en) Setting program, workflow creating method, and work flow creating apparatus
CN110347085B (zh) 自动化测试系统、方法、车辆以及计算机可读介质
EP2786246A1 (en) Deployment and updating of applications and drivers on a client device using and extensible markup language (xml) configuration file
US11113050B2 (en) Application architecture generation
US9405663B2 (en) Generating an optimized test suite from models for use in a software testing environment
US20180246805A1 (en) System and method for determining requirements for testing software
US20180322038A1 (en) Segmenting user population to manage dynamic software quality
EP3447635A1 (en) Application architecture generation
US20170373957A1 (en) Minimized installation of point of presence software agents by use of pre-installed browser
US9349004B2 (en) Predicting the actions and evaluating the risk of a software install program
US11809856B2 (en) Over the air modem firmware upgrade based on mesh network
US9158641B2 (en) Cloud auto-test system, method and non-transitory computer readable storage medium of the same
CN111666079B (zh) 软件升级的方法、装置、系统、设备和计算机可读介质
US20230061121A1 (en) Methods concerning ongoing treatment for cancer

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination