KR102293274B1 - 테스트 환경 구축 방법 및 장치 - Google Patents

테스트 환경 구축 방법 및 장치 Download PDF

Info

Publication number
KR102293274B1
KR102293274B1 KR1020190122285A KR20190122285A KR102293274B1 KR 102293274 B1 KR102293274 B1 KR 102293274B1 KR 1020190122285 A KR1020190122285 A KR 1020190122285A KR 20190122285 A KR20190122285 A KR 20190122285A KR 102293274 B1 KR102293274 B1 KR 102293274B1
Authority
KR
South Korea
Prior art keywords
test
environment
test environment
building
generating
Prior art date
Application number
KR1020190122285A
Other languages
English (en)
Other versions
KR20210039714A (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 KR1020190122285A priority Critical patent/KR102293274B1/ko
Publication of KR20210039714A publication Critical patent/KR20210039714A/ko
Application granted granted Critical
Publication of KR102293274B1 publication Critical patent/KR102293274B1/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/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/3696Methods or tools to render software testable

Abstract

개시된 테스트 환경 구축 장치에서 수행되는 테스트 환경 구축 방법은, 테스트 대상(Implementation Under Test; IUT) 소프트웨어와 테스트 계획으로부터 테스트 환경 구성요소를 도출하는 단계와, 도출된 테스트 환경 구성요소 간의 선후 관계를 기반으로 테스트 환경 코드로 배치하여 테스트 환경을 구축하는 단계를 포함한다.

Description

테스트 환경 구축 방법 및 장치{METHOD AND APPARATUS FOR CONSTRUCTING TEST ENVIRONMENT}
본 발명은 테스트 환경 구축 방법 및 장치에 관한 것으로서, 더욱 상세하게는 테스트 대상 소프트웨어를 위한 테스트 환경을 구축하는 방법과 이러한 방법을 수행할 수 있는 장치에 관한 것이다.
주지하고 있는 바와 같이, 테스트 환경은 테스트 프로세스를 따라 테스트를 수행하고 그 결과를 통보하는데 필요한 구성요소의 모임이다. 원활한 테스트 수행을 위해서는 테스트 프로세스의 수준과 개발 과정에서 사용된 플랫폼, 유틸리티, 언어 등의 관계를 고려한 체계적인 테스트 환경 구축 방법이 필요하다. ISO/IEC/IEEE 29119 표준에서는 테스트 환경 구축 및 테스트 수행 방법을 정의하고 있다. 하지만, 이와 같은 표준이 정의되어 있음에도 실제 테스트 환경 구축을 수행하는 과정에서는 다양한 문제가 발생한다.
첫째, 테스트 환경을 구축하는 과정에서 테스트 대상의 구조와 테스트 목적을 고려해야 하는 등 일반 사용자가 수행하기 어려운 ‘테스트 환경 구축의 전문성’ 문제가 있다. 그래서 복잡하거나 규모가 큰 테스트 환경의 설계와 구축은 테스트 대상 시스템의 내부 구조를 잘 알고 테스트 경험이 풍부한 전문가들에 의해 진행된다.
둘째, 테스트 수행 관점에서 테스트 수행이 개발의 일부가 끝나거나 특정 조건에서만 가능한 ‘실행 환경의 제약성’ 문제가 있다. 소프트웨어의 신뢰성을 높이고자 한다면 가능한 다양한 방법과 많은 횟수의 테스트가 필요하다. 하지만 테스트 환경에 할당되는 자원은 한정적이기 때문에 반복적인 테스트 환경 구축과 테스트 수행 과정은 제한될 수밖에 없다.
이런 문제들을 해결하고자 클라우드 테스팅(Cloud Testing)이나 지속 테스팅(Continuous Testing)과 같은 방법들이 개발되었으나 여전히 몇 가지 문제가 있다. 먼저 클라우드 테스팅은 테스트 환경 구축에 필요한 전문지식을 최소화하고, 테스트 요구사항으로부터 테스트 환경을 구축하여 테스트를 수행하는 방법으로 ‘실행 환경의 제약성’ 문제를 해결한다. 하지만 서비스 제공자에 따라 서로 다른 테스트 환경 구성과 테스트 결과를 초래하는 등 일관성이 부족한 테스트 환경으로 인한 문제가 발생한다. 지속 테스팅에서는 일관된 테스트 수행과 결과를 도출하기 위해 체계적인 테스트 과정에 따라 가상 플랫폼에 테스트 환경을 구축하는 방법을 사용한다. 하지만 테스트 환경의 구성과 절차는 IaC(Infrastructure as Code) 기반의 코드로 직접 구현해야 한다는 점에서 여전히 ‘테스트 환경 구축의 전문성’ 문제가 남는다.
대한민국 공개특허공보 제10-2018-0119911호, 공개일자 2018년 11월 05일.
일 실시예에 따른 해결하고자 하는 과제는, 테스트 대상(Implementation Under Test; IUT) 소프트웨어와 테스트 계획(Test Plan)으로부터 테스트 환경 구성요소를 도출한 후 자동으로 테스트 환경 코드로 배치하여 테스트 환경을 구축하는 테스트 환경 구축 방법 및 장치를 제공한다.
해결하고자 하는 과제는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 해결하고자 하는 과제는 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
제 1 관점에 따라 테스트 환경 구축 장치에서 수행되는 테스트 환경 구축 방법은, 테스트 대상 소프트웨어와 테스트 계획으로부터 테스트 환경 구성요소를 도출하는 단계와, 상기 도출된 테스트 환경 구성요소 간의 선후 관계를 기반으로 테스트 환경 코드로 배치하여 테스트 환경을 구축하는 단계를 포함한다.
여기서, 상기 테스트 환경 구성요소를 도출하는 단계는, 테스트 플랫폼, 테스트 유틸리티, 테스트 도구, 테스트 데이터, 테스트 하네스 및 테스트 환경 셋업 중 적어도 하나의 정보를 추출할 수 있다.
상기 테스트 환경을 구축하는 단계는, 상기 도출된 테스트 환경 구성요소를 IaC(Infrastructure as Code) 코드로 실체화할 수 있다.
상기 테스트 환경을 구축하는 단계는, 상기 도출된 테스트 환경 구성요소 간의 파급력이 큰 구성요소부터 순차적으로 상기 IaC 코드로 배치할 수 있다.
상기 테스트 환경을 구축하는 단계는, 상기 테스트 플랫폼의 구축, 상기 테스트 대상 소프트웨어의 특성을 내포하는 컴파일러와 상기 테스트 데이터 매니저의 구축, 상기 테스트 도구의 선택, 상기 테스트 유틸리티의 구축 및 상기 테스트 도구의 설정의 순서로 수행할 수 있다.
상기 테스트 환경을 구축하는 단계는, 상기 테스트 환경 구성요소의 정보로부터 맵핑 테이블을 통하여 테스트 환경 구성요소의 설치 코드를 얻어서 배치할 수 있다.
제 2 관점에 따라 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체는, 상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면, 테스트 대상 소프트웨어와 테스트 계획으로부터 테스트 환경 구성요소를 도출하는 단계와, 상기 도출된 테스트 환경 구성요소 간의 선후 관계를 기반으로 테스트 환경 코드로 배치하여 테스트 환경을 구축하는 단계를 포함하는 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함한다.
제 3 관점에 따라 컴퓨터 판독 가능 기록매체에 저장되어 있는 컴퓨터 프로그램은, 상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면, 테스트 대상 소프트웨어와 테스트 계획으로부터 테스트 환경 구성요소를 도출하는 단계와, 상기 도출된 테스트 환경 구성요소 간의 선후 관계를 기반으로 테스트 환경 코드로 배치하여 테스트 환경을 구축하는 단계를 포함하는 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함한다.
제 4 관점에 따른 테스트 환경 구축 장치는, 테스트 대상 소프트웨어와 테스트 계획에 대한 데이터를 입력받는 입력부와, 상기 테스트 대상 소프트웨어 및 상기 테스트 계획으로부터 테스트 환경 구성요소를 도출하고, 상기 도출된 테스트 환경 구성요소 간의 선후 관계를 기반으로 테스트 환경 코드로 배치하여 테스트 환경을 구축하는 제어부와, 상기 제어부의 제어에 따라, 상기 구축된 테스트 환경을 생성하는 실행파일을 출력하는 출력부를 포함한다.
일 실시예에 따르면, 테스트 대상 소프트웨어와 테스트 계획으로부터 테스트 환경 구성요소를 도출한 후 자동으로 테스트 환경 코드로 배치하여 테스트 환경을 구축한다. 사용자가 테스트 계획과 테스트 대상 소프트웨어만 지정하면 테스트 요구사항에 맞는 일관된 테스트 환경을 제공함으로써, 테스트 환경을 구축하는데 소요되는 시간과 노력이 절약되는 효과가 있다. 이로 인해 테스트 수행에 더 많은 노력을 집중할 수 있으므로 소프트웨어의 신뢰성을 높이는데 기여할 수 있다.
도 1은 본 발명의 일 실시예에 따른 테스트 환경 구축 장치의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 테스트 환경 구축 방법을 설명하기 위한 추상적 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 테스트 환경 구성요소의 계층 구조도이다.
도 4는 본 발명의 일 실시예에 따른 테스트 환경 구성요소의 도출 절차를 나타낸 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 테스트 환경 구성요소의 배치 절차를 나타낸 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 테스트 환경 구성요소의 맵핑 테이블을 예시한 도면이다.
도 7은 본 발명의 일 실시예에 따라 단위 테스트 환경을 생성할 수 있는 도커파일의 예시도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 범주는 청구항에 의해 정의될 뿐이다.
본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명은 본 발명의 실시예들을 설명함에 있어 실제로 필요한 경우 외에는 생략될 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 명세서에서 단수의 표현은 문맥상 명백하게 다름을 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, ‘포함하다’ 또는 ‘구성하다’ 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 본 발명의 실시예에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적인 연결뿐 아니라, 다른 매체를 통한 간접적인 연결의 경우도 포함한다. 또한 어떤 부분이 어떤 구성 요소를 포함한다는 의미는, 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있다는 것을 의미한다.
도 1은 본 발명의 일 실시예에 따른 테스트 환경 구축 장치의 구성도이다.
도 1에 나타낸 바와 같이 테스트 환경 구축 장치(100)는 입력부(110), 제어부(120) 및 출력부(130)를 포함할 수 있다.
입력부(110)는 테스트 대상(Implementation Under Test; IUT) 소프트웨어와 테스트 계획에 대한 데이터를 입력받아 제어부(120)에 제공한다.
제어부(120)는 테스트 대상 소프트웨어 및 테스트 계획으로부터 테스트 환경 구성요소를 도출하고, 도출된 테스트 환경 구성요소 간의 선후 관계를 기반으로 자동으로 테스트 환경 코드로 배치하여 테스트 환경을 구축한다. 이러한 제어부(120)는 마이크로프로세서(microprocessor) 등과 같은 컴퓨팅 연산장치를 포함할 수 있다. 예를 들어, 제어부(120)는 도출된 테스트 환경 구성요소를 IaC(Infrastructure as Code) 코드로 실체화할 수 있다. 그리고, 제어부(120)는 테스트 환경 구성요소의 정보로부터 맵핑 테이블을 통하여 테스트 환경 구성요소의 설치 코드를 얻어서 배치할 수 있다. 이러한 제어부(120)가 테스트 환경을 구축하는 절차에 대해서는 도 2 내지 도 6을 참조하여 아래에서 자세히 설명하기로 한다.
출력부(130)는 제어부(120)의 제어에 따라, 테스트 환경 코드로 배치하여 구축된 테스트 환경을 생성하는 실행파일을 출력한다. 예를 들어, 출력부(130)는 테스트 수행 환경인 하나의 컨테이너를 생성할 수 있는 조합된 도커파일(Docker file)을 테스트 환경을 생성하는 실행파일로서 출력할 수 있다.
도 2는 본 발명의 일 실시예에 따른 테스트 환경 구축 방법을 설명하기 위한 추상적 흐름도이다.
도 2에 나타낸 바와 같이, 테스트 환경 구축 방법은 테스트 대상 소프트웨어와 테스트 계획으로부터 테스트 환경 구성요소를 도출하는 단계(S210)를 포함한다. 예를 들어, 테스트 환경 구성요소를 도출할 때에, 테스트 플랫폼(Platform)으로서 운영 체제(OS), 테스트 유틸리티(Test Utility), 테스트 도구(Test Tools), 테스트 데이터(Test Data), 테스트 하네스(Test Harness) 및 테스트 환경 셋업(Test Environment Setup) 중 적어도 하나의 정보를 추출할 수 있다.
그리고, 테스트 환경 구축 방법은 도출된 테스트 환경 구성요소 간의 선후 관계를 기반으로 자동으로 테스트 환경 코드로 배치하여 테스트 환경을 구축하는 단계(S220)를 더 포함한다. 예를 들어, 테스트 환경을 구축할 때에, 상기 도출된 테스트 환경 구성요소를 IaC(Infrastructure as Code) 코드로 실체화할 수 있다. 여기서, 도출된 테스트 환경 구성요소 간의 파급력이 큰 구성요소부터 순차적으로 IaC 코드로 배치할 수 있다. 예컨대, 테스트 플랫폼의 구축, 테스트 대상 소프트웨어의 특성을 내포하는 컴파일러와 테스트 데이터 매니저의 구축, 테스트 도구의 선택, 유틸리티의 구축 및 테스트 도구의 설정의 순서로 수행할 수 있다. 아울러, 테스트 환경을 구축할 때에, 테스트 환경 구성요소의 정보로부터 맵핑 테이블을 통하여 테스트 환경 구성요소의 설치 코드를 얻어서 배치할 수 있다.
도 3은 본 발명의 일 실시예에 따른 테스트 환경 구성요소의 계층 구조도이고, 도 4는 본 발명의 일 실시예에 따른 테스트 환경 구성요소의 도출 절차를 나타낸 흐름도이며, 도 5는 본 발명의 일 실시예에 따른 테스트 환경 구성요소의 배치 절차를 나타낸 흐름도이고, 도 6은 본 발명의 일 실시예에 따른 테스트 환경 구성요소의 맵핑 테이블을 예시한 도면이며, 도 7은 본 발명의 일 실시예에 따라 단위 테스트 환경을 생성할 수 있는 도커파일의 예시도이다.
이하, 도 1 내지 도 7을 참조하여 일 실시예에 따른 테스트 환경 구축 장치에서 테스트 환경을 구축하는 방법을 수행하는 절차에 대하여 자세히 살펴보기로 한다.
먼저, 테스트 환경 구축 장치(100)의 입력부(110)는 테스트 대상 소프트웨어와 테스트 계획에 대한 데이터를 입력받아 제어부(120)에 제공한다.
그러면, 제어부(120)는 테스트 대상 소프트웨어 및 테스트 계획으로부터 테스트 환경 구성요소를 도출한다.
테스트 환경은 일련의 테스트 과정에 따라 테스트를 원활하게 수행하는데 필요한 구성요소의 모임이다. 표준 문서와 여러 문헌에서 제시하고 있는 테스트 환경은 도 3과 같이 구성될 수 있다. 도 3에서 보는 바와 같이 테스트 환경은 기능에 따라 여러 구성요소와 계층으로 구분될 수 있는 계층 구조를 가질 수 있다. 하드웨어(301)는 테스트 활동에서 물리적인 계산과 동작을 수행하는 필수 요소이다. 또한 하드웨어(301)를 제어하고 통제하는 테스트 플랫폼으로서 운영체제(302)가 필요하다. 구축된 하드웨어(301)와 운영체제(302)를 기반으로 테스트 대상 소프트웨어(303)를 테스트하는데 필요한 여러 기능 모듈들(304 내지 310)을 구성하면 테스트 환경이 완성된다. 그렇지만 테스트 환경은 항상 동일한 형태로 구성되는 것은 아니다. 테스트 대상 소프트웨어나 적용하고자 하는 테스트 방법에 따라 기능 모듈의 내용이나 구성이 바뀔 수 있다. 각 모듈의 기능 및 역할을 살펴보면 다음과 같다.
유틸리티(utility)(304)는 테스트 환경 구성에 필요한 소프트웨어 및 테스트 대상 소프트웨어를 동작시키는데 필요한 소프트웨어이다.
테스트 도구(test tool)(305)는 실제 테스트를 수행하는데 필요한 전문화된 도구 또는 테스트 엔진이다.
테스트 데이터 매니저(test data manager)(306)는 테스트 대상 소프트웨어의 테스트 과정에서 필요한 테스트 데이터를 제공하는 도구이다.
테스트 드라이버(test driver)(307)는 테스트 전략과 목적에 맞게 대체 환경을 구성하는 테스트 하네스의 일종으로 테스트 대상 소프트웨어에 포함된 특정 함수나 메소드를 별도로 호출하여 그것들을 구동시키는 역할을 수행하는 모듈이다.
테스트 스터브(test stub)(308)는 테스트 하네스의 일종으로 테스트 대상 소프트웨어에서 호출되는 함수나 메소드를 모사하는 모듈이다. 예를 들어, 테스트 스터브는 기능적으로 완전하게 모사하지 않고 단지 호출 관계만 모사하여 테스트 대상 소프트웨어가 무리 없이 동작하도록 지원하는 역할을 수행할 수 있다.
프리앰블(preamble)(309)은 테스트 환경 셋업 정보의 일종이고, 테스트 수행에서의 선조건을 만족시키기 위해 필요한 선행 작업을 수행하는 모듈이다. 예를 들어, 파일 입출력 기능을 테스트하고자 할 경우에 필요한 파일을 생성하거나 기존 파일 열기 등의 작업을 수행할 수 있다.
포스트앰블(postamble)(310)은 테스트 환경 셋업 정보의 일종이고, 테스트 수행에서의 후조건을 만족시키기 위해 필요한 후행 작업을 수행하는 모듈이다. 예를 들어, 프리앰블의 예에서 생성한 파일을 삭제하거나 열린 파일 닫기 등의 작업을 수행할 수 있다.
앞서 기술한대로 테스트 환경은 테스트 대상 소프트웨어나 테스트 방법에 따라 그 구성이 변할 수 있다. 테스트 환경 구성이 변할 수 있는 이유는 테스트 대상 소프트웨어나 테스트 방법에 따라 특정 요소가 필요할 수도 있고, 그렇지 않을 수도 있기 때문이다. 테스트 하네스를 예를 들어 보면 테스트 드라이버(307)와 테스트 스터브(308)는 테스트 대상 소프트웨어에 따라 필요하지 않을 수도 있고, 필요하다고 하더라도 그 내용은 테스트 대상 소프트웨어에 따라 전혀 달라진다. 그래서 테스트 환경 구성요소의 도출에 직접적으로 영향을 줄 수 있는 관계를 정리할 필요가 있다. 표 1은 테스트 환경 구성요소의 각 요소들이 테스트 계획 및 테스트 대상 소프트웨어의 어떤 정보로부터 유도될 수 있는지에 대한 관계를 정리한 것이다. 테스트 계획은 여러 항목으로 구성되는데 테스트 환경 구성요소의 도출을 위해서는 환경 요구사항(environmental needs), 접근방법(approach), 테스트될 기능(features to be tested), 테스트 과업(testing tasks) 항목의 정보가 필요하다.
Test Environment Components Derived from
Test Plan IUT(Implementation Under Test)
Platform(OS) Environmental Needs
Utility Environmental Needs IUT
Test Tools Approach/
Environmental Needs
Test Data
Manager
Features to be Tested IUT
Test Harness Test Driver Features to be Tested IUT
Test Stub IUT
Test Environment Setup Preamble Testing Tasks IUT
Postamble Testing Tasks IUT
테스트 환경 구성요소의 각 요소들이 테스트 계획의 각 항목과 테스트 대상 소프트웨어로부터 어떻게 유도될 수 있는지를 도 4에 나타내었다. 도 4는 테스트 계획과 테스트 대상 소프트웨어로부터 테스트 환경 구성요소를 도출하는 절차를 나타내는 액티비티 다이어그램(activity diagram)이다. 도 4에 나타낸 바와 같이, 테스트 환경 구성요소를 도출할 때에, 테스트 플랫폼의 정보 추출, 테스트 유틸리티의 정보 추출, 테스트 도구의 정보 추출, 테스트 데이터의 생성, 테스트 드라이버의 생성, 테스트 스터브의 생성 및 테스트 환경 셋업의 생성을 수행할 수 있다.
다음으로, 테스트 환경 구축 장치(100)의 제어부(120)는 앞서 도출된 테스트 환경 구성요소 간의 선후 관계를 기반으로 자동으로 테스트 환경 코드로 배치하여 테스트 환경을 구축한다.
정의된 테스트 환경 구성요소들을 단순히 모아두는 것만으로는 테스트 환경을 구축했다고 할 수 없다. 예를 들어, 도출된 테스트 환경 구성요소는 IaC 코드로 실체화될 수 있고, 작성된 코드가 의미 있는 테스트 환경이 되기 위해서는 구성요소 간의 선후 관계를 고려해야한다. 예를 들어, 만일 일방적인 코드의 생성과 구성이 이루어진다면, 운영체제도 없는 환경에 기능 모듈 소프트웨어를 먼저 설치하는 등의 오류를 범할 수 있다. 따라서 이러한 오류를 피하기 위해서는 각 구성요소들의 유기적인 선후 관계를 고려한 배치 절차가 필요하다. 도 5는 테스트 계획과 테스트 대상 소프트웨어를 기반으로 테스트 환경 구성요소의 배치 절차를 나타내는 액티비티 다이어그램이다. 이처럼, 도 5에 나타낸 바와 같이, 테스트 환경을 구축할 때에, 테스트 플랫폼의 구축, 테스트 대상 소프트웨어의 특성을 내포하는 컴파일러 및 테스트 데이터를 제공하는 테스트 데이터 매니저의 구축, 테스트 드라이버 및 테스트 스터브를 포함하는 테스트 하네스의 구축, 테스트 수행 전 수행 환경을 설정하는 프리앰블의 구축, 테스트 도구의 선택, 테스트 유틸리티의 구축 및 테스트 도구의 설정, 테스트 수행 후 수행 환경을 정리하는 포스트앰블의 구축의 순서로 수행할 수 있다. 도 5의 테스트 환경 구축 절차는 파급력이 큰 구성요소부터 순차적으로 배치하면서, 테스트 대상 소프트웨어나 테스트 계획을 반영할 수 있도록 구체화하는 방법을 사용한다. 따라서 대부분의 응용 소프트웨어에서 필요로 하는 플랫폼의 구축을 먼저 시작한다. 이후에는 소프트웨어의 특성을 내포하는 컴파일러와 테스트 데이터 매니저를 구축해, 테스트 도구 선별에 사용될 수 있도록 한다. 필요하다면 테스트 하네스를 구성하고 각 구성요소의 초기 환경을 설정해 어떤 테스트 도구가 설정되더라도 사용될 수 있도록 하나의 논리적 모듈로 구분한다. 테스트 도구 선택 과정에서는 앞선 모듈로부터 테스트 대상 소프트웨어의 특성과 테스트 계획 및 구축된 테스트 환경을 참조해 적합한 도구를 선별한다. 테스트 도구가 선택된 이후로는 테스트 도구와 환경 및 테스트 대상 소프트웨어를 실행하기 위해 필요한 유틸리티를 구축한 후, 마지막으로 테스트 도구 설정과 함께 테스트 수행 후 필요한 처리 작업을 설정해 하나의 완전한 테스트 환경을 구축한다.
테스트 환경 구성요소는 IaC 도구 중 하나인 도커(Docker)를 사용해 실체화할 수 있다. 도커는 다양한 구성요소를 설치하고 배포할 수 있는 가상 환경인 컨테이너를 제공한다. 이러한 컨테이너는 설치 및 제어 코드로 구성된 도커파일(Docker file)을 통해 생성된다. 따라서 테스트 환경 구축의 자동화는 테스트 환경의 각 구성요소에 대해 정의된 실행 가능한 코드를 테스트 환경 구축 절차에 맞춰 배치하는 방법으로 실현할 수 있다.
테스트 환경은 도 5에 맞춰 각 구성요소를 배치하는 ‘Set’ 과정을 따라 구축되며, 테스트 대상 소프트웨어나 테스트 계획의 조건에 따라 일부 구성요소가 생략될 수 있다. ‘Set’ 과정에서 필요한 테스트 환경 구성요소의 설치 코드는 도 6의 맵핑 테이블을 통해 얻을 수 있다. 구성요소의 정보로부터 실행 가능한 템플릿 코드를 얻고, 사용자 입력 혹은 구성요소 도출과정에서 유도된 버전이나 옵션 정보를 채워 설치 코드를 구체화한다. 이렇게 구체화된 코드들은 테스트 환경 배치 절차에 따라 하나의 도커파일로 조합될 수 있다.
이로서, 테스트 환경 구축 장치(100)의 출력부(130)는 제어부(120)의 제어에 따라, 테스트 환경 코드로 배치하여 구축된 테스트 환경을 생성하는 실행파일을 출력할 수 있다. 예를 들어, 출력부(130)는 테스트 수행 환경인 하나의 컨테이너를 생성할 수 있는 조합된 도커파일(Docker file)을 테스트 환경을 생성하는 실행파일로서 출력할 수 있다. 도 7은 이런 방식으로 조합된 도커파일의 일례이다. 최종적으로 완성된 도커파일을 실행하면 테스트 수행 환경인 하나의 컨테이너가 생성된다.
지금까지 설명한 바와 같이, 본 발명의 실시예에 따르면, 테스트 대상 소프트웨어와 테스트 계획으로부터 테스트 환경 구성요소를 도출한 후 자동으로 테스트 환경 코드로 배치하여 테스트 환경을 구축한다. 사용자가 테스트 계획과 테스트 대상 소프트웨어만 지정하면 테스트 요구사항에 맞는 일관된 테스트 환경을 제공함으로써, 테스트 환경을 구축하는데 소요되는 시간과 노력이 절약되는 효과가 있다. 이로 인해 테스트 수행에 더 많은 노력을 집중할 수 있으므로 소프트웨어의 신뢰성을 높이는데 기여할 수 있다.
본 발명에 첨부된 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 기록매체에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 기록매체에 저장된 인스트럭션들은 흐름도의 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 실시예에서 언급된 단계들이 수행되는 순서가 변경될 수도 있고, 잇달아 도시되어 있는 두 개의 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 테스트 환경 구축 장치
110: 입력부
120: 제어부
130: 출력부

Claims (9)

  1. 테스트 환경 구축 장치에서 수행되는 테스트 환경 구축 방법으로서,
    테스트 대상(Implementation Under Test; IUT) 소프트웨어와 테스트 계획으로부터 테스트 환경 구성요소를 도출하는 단계와,
    상기 도출된 테스트 환경 구성요소 간의 선후 관계를 기반으로 테스트 환경 코드로 배치하여 테스트 환경을 구축하는 단계와,
    상기 구축된 테스트 환경을 생성하는 실행파일로서 테스트 수행 환경인 컨테이너를 생성할 수 있는 조합된 도커파일(Docker file)을 출력하는 단계를 포함하고,
    상기 테스트 환경 구성요소를 도출하는 단계는, 테스트 플랫폼의 정보 추출, 테스트 유틸리티의 정보 추출, 테스트 도구의 정보 추출, 테스트 데이터의 생성, 테스트 드라이버의 생성, 테스트 스터브의 생성 및 테스트 환경 셋업의 생성을 수행하며,
    상기 테스트 환경을 구축하는 단계는, 상기 테스트 플랫폼의 구축, 상기 테스트 대상 소프트웨어의 특성을 내포하는 컴파일러 및 상기 테스트 데이터를 제공하는 테스트 데이터 매니저의 구축, 상기 테스트 드라이버 및 상기 테스트 스터브를 포함하는 테스트 하네스의 구축, 테스트 수행 전 수행 환경을 설정하는 프리앰블의 구축, 상기 테스트 도구의 선택, 상기 테스트 유틸리티의 구축 및 상기 테스트 도구의 설정, 테스트 수행 후 수행 환경을 정리하는 포스트앰블의 구축의 순서로 수행하는
    테스트 환경 구축 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 테스트 환경을 구축하는 단계는, 상기 도출된 테스트 환경 구성요소를 IaC(Infrastructure as Code) 코드로 실체화하는
    테스트 환경 구축 방법.
  4. 제 3 항에 있어서,
    상기 테스트 환경을 구축하는 단계는, 상기 도출된 테스트 환경 구성요소 간의 파급력이 큰 구성요소부터 순차적으로 상기 IaC 코드로 배치하는
    테스트 환경 구축 방법.
  5. 삭제
  6. 제 3 항에 있어서,
    상기 테스트 환경을 구축하는 단계는, 상기 테스트 환경 구성요소의 정보로부터 맵핑 테이블을 통하여 테스트 환경 구성요소의 설치 코드를 얻어서 배치하는
    테스트 환경 구축 방법.
  7. 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능 기록매체로서,
    상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면,
    테스트 대상(Implementation Under Test; IUT) 소프트웨어와 테스트 계획으로부터 테스트 환경 구성요소를 도출하는 단계와,
    상기 도출된 테스트 환경 구성요소 간의 선후 관계를 기반으로 테스트 환경 코드로 배치하여 테스트 환경을 구축하는 단계와,
    상기 구축된 테스트 환경을 생성하는 실행파일로서 테스트 수행 환경인 컨테이너를 생성할 수 있는 조합된 도커파일(Docker file)을 출력하는 단계를 포함하고,
    상기 테스트 환경 구성요소를 도출하는 단계는, 테스트 플랫폼의 정보 추출, 테스트 유틸리티의 정보 추출, 테스트 도구의 정보 추출, 테스트 데이터의 생성, 테스트 드라이버의 생성, 테스트 스터브의 생성 및 테스트 환경 셋업의 생성을 수행하며,
    상기 테스트 환경을 구축하는 단계는, 상기 테스트 플랫폼의 구축, 상기 테스트 대상 소프트웨어의 특성을 내포하는 컴파일러 및 상기 테스트 데이터를 제공하는 테스트 데이터 매니저의 구축, 상기 테스트 드라이버 및 상기 테스트 스터브를 포함하는 테스트 하네스의 구축, 테스트 수행 전 수행 환경을 설정하는 프리앰블의 구축, 상기 테스트 도구의 선택, 상기 테스트 유틸리티의 구축 및 상기 테스트 도구의 설정, 테스트 수행 후 수행 환경을 정리하는 포스트앰블의 구축의 순서로 수행하는 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는
    컴퓨터 판독 가능한 기록매체.
  8. 컴퓨터 판독 가능 기록매체에 저장되어 있는 컴퓨터 프로그램으로서,
    테스트 대상(Implementation Under Test; IUT) 소프트웨어와 테스트 계획으로부터 테스트 환경 구성요소를 도출하는 단계와,
    상기 도출된 테스트 환경 구성요소 간의 선후 관계를 기반으로 테스트 환경 코드로 배치하여 테스트 환경을 구축하는 단계와,
    상기 구축된 테스트 환경을 생성하는 실행파일로서 테스트 수행 환경인 컨테이너를 생성할 수 있는 조합된 도커파일(Docker file)을 출력하는 단계를 포함하고,
    상기 테스트 환경 구성요소를 도출하는 단계는, 테스트 플랫폼의 정보 추출, 테스트 유틸리티의 정보 추출, 테스트 도구의 정보 추출, 테스트 데이터의 생성, 테스트 드라이버의 생성, 테스트 스터브의 생성 및 테스트 환경 셋업의 생성을 수행하며,
    상기 테스트 환경을 구축하는 단계는, 상기 테스트 플랫폼의 구축, 상기 테스트 대상 소프트웨어의 특성을 내포하는 컴파일러 및 상기 테스트 데이터를 제공하는 테스트 데이터 매니저의 구축, 상기 테스트 드라이버 및 상기 테스트 스터브를 포함하는 테스트 하네스의 구축, 테스트 수행 전 수행 환경을 설정하는 프리앰블의 구축, 상기 테스트 도구의 선택, 상기 테스트 유틸리티의 구축 및 상기 테스트 도구의 설정, 테스트 수행 후 수행 환경을 정리하는 포스트앰블의 구축의 순서로 수행하는 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는
    컴퓨터 프로그램.
  9. 테스트 대상(Implementation Under Test; IUT) 소프트웨어와 테스트 계획에 대한 데이터를 입력받는 입력부와,
    상기 테스트 대상 소프트웨어 및 상기 테스트 계획으로부터 테스트 환경 구성요소를 도출하고, 상기 도출된 테스트 환경 구성요소 간의 선후 관계를 기반으로 테스트 환경 코드로 배치하여 테스트 환경을 구축하되, 상기 테스트 환경 구성요소를 도출할 때에, 테스트 플랫폼의 정보 추출, 테스트 유틸리티의 정보 추출, 테스트 도구의 정보 추출, 테스트 데이터의 생성, 테스트 드라이버의 생성, 테스트 스터브의 생성 및 테스트 환경 셋업의 생성을 수행하며, 상기 테스트 환경을 구축할 때에, 상기 테스트 플랫폼의 구축, 상기 테스트 대상 소프트웨어의 특성을 내포하는 컴파일러 및 상기 테스트 데이터를 제공하는 테스트 데이터 매니저의 구축, 상기 테스트 드라이버 및 상기 테스트 스터브를 포함하는 테스트 하네스의 구축, 테스트 수행 전 수행 환경을 설정하는 프리앰블의 구축, 상기 테스트 도구의 선택, 상기 테스트 유틸리티의 구축 및 상기 테스트 도구의 설정, 테스트 수행 후 수행 환경을 정리하는 포스트앰블의 구축의 순서로 수행하는 제어부와,
    상기 제어부의 제어에 따라, 상기 구축된 테스트 환경을 생성하는 실행파일로서 테스트 수행 환경이 컨테이너를 생성할 수 있는 조합된 도커파일(Docker file)을 출력하는 출력부를 포함하는
    테스트 환경 구축 장치.
KR1020190122285A 2019-10-02 2019-10-02 테스트 환경 구축 방법 및 장치 KR102293274B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190122285A KR102293274B1 (ko) 2019-10-02 2019-10-02 테스트 환경 구축 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190122285A KR102293274B1 (ko) 2019-10-02 2019-10-02 테스트 환경 구축 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20210039714A KR20210039714A (ko) 2021-04-12
KR102293274B1 true KR102293274B1 (ko) 2021-08-24

Family

ID=75439879

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190122285A KR102293274B1 (ko) 2019-10-02 2019-10-02 테스트 환경 구축 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102293274B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024005246A1 (ko) * 2022-06-30 2024-01-04 쿠팡 주식회사 코드 검증 정보를 제공하는 전자 장치 및 그 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240032346A (ko) * 2022-09-02 2024-03-12 쿠팡 주식회사 전자 장치 및 그의 애플리케이션 테스트 관리 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050204201A1 (en) * 2004-03-15 2005-09-15 Ramco Systems Limited Method and system for testing software development activity
US10802953B2 (en) 2017-12-01 2020-10-13 Sap Se Test plan generation using machine learning

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100937689B1 (ko) * 2008-01-15 2010-01-20 포항공과대학교 산학협력단 사용자 환경 프로파일링에 기반을 두어 테스트 대상소프트웨어의 테스트를 지원하는 시뮬레이션 방법
EP2866111B1 (de) * 2013-10-28 2019-05-15 dSPACE digital signal processing and control engineering GmbH Testen eines Steuergerätes mittels einer Testumgebung
KR20160050634A (ko) * 2014-10-30 2016-05-11 주식회사 케이티 테스트 대상 소프트웨어를 테스트하는 시스템, 테스트 대상 소프트웨어를 테스트하는 방법 및 클라우드 서버
KR20180119911A (ko) 2017-04-26 2018-11-05 국방과학연구소 일일 시험 계획의 순환적 조합 수립 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050204201A1 (en) * 2004-03-15 2005-09-15 Ramco Systems Limited Method and system for testing software development activity
US10802953B2 (en) 2017-12-01 2020-10-13 Sap Se Test plan generation using machine learning

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024005246A1 (ko) * 2022-06-30 2024-01-04 쿠팡 주식회사 코드 검증 정보를 제공하는 전자 장치 및 그 방법

Also Published As

Publication number Publication date
KR20210039714A (ko) 2021-04-12

Similar Documents

Publication Publication Date Title
US10860339B2 (en) Autonomous creation of new microservices and modification of existing microservices
Granchelli et al. Towards recovering the software architecture of microservice-based systems
US9754059B2 (en) Graphical design verification environment generator
US20210034336A1 (en) Executing a process-based software application in a first computing environment and a second computing environment
US7865350B1 (en) Partitioning a model in modeling environments
US20050138603A1 (en) Componentization method for reengineering legacy system
US20050085937A1 (en) Creating customized applications using templates having points of variability
CN111736821B (zh) 可视化建模分析方法、系统、计算机设备和可读存储介质
CN104679488A (zh) 一种流程定制开发平台及流程定制开发方法
KR102293274B1 (ko) 테스트 환경 구축 방법 및 장치
CN108228170B (zh) 一种嵌入式软件构件化定制组装方法
CN112486073B (zh) 机器人控制方法、控制系统和可读存储介质
CN104484163A (zh) 一种基于统一建模环境的异构模型转换方法
Nascimento et al. A model-driven infrastructure for developing product line architectures using cvl
CN105760147A (zh) 一种软件页面显示构建方法及系统
Tasharofi et al. Process patterns for agile methodologies
CN101976196B (zh) 一种面向“服务质量”的代码自动生成方法
US20090241075A1 (en) Test chip validation and development system
CN102681861A (zh) 安装软件的方法和装置
Lago et al. Tool support for traceable product evolution
CN107480225A (zh) 实现控制站与第三方数据库数据共享的方法及计算机程序产品
CN110851516B (zh) 主机运控系统及方法
CN114265595A (zh) 一种基于智能合约的云原生应用开发与部署系统和方法
Ardagna et al. A fast and incremental development life cycle for data analytics as a service
KR102046622B1 (ko) 워크플로우 기반 소프트웨어 서비스 시스템 및 이 시스템의 각 기능을 실행시키기 위해 매체에 저장된 컴퓨터 프로그램

Legal Events

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