KR101160482B1 - 테스트 스윗 생성 장치 및 방법 - Google Patents

테스트 스윗 생성 장치 및 방법 Download PDF

Info

Publication number
KR101160482B1
KR101160482B1 KR1020100071379A KR20100071379A KR101160482B1 KR 101160482 B1 KR101160482 B1 KR 101160482B1 KR 1020100071379 A KR1020100071379 A KR 1020100071379A KR 20100071379 A KR20100071379 A KR 20100071379A KR 101160482 B1 KR101160482 B1 KR 101160482B1
Authority
KR
South Korea
Prior art keywords
user input
unit
unit user
software
test suite
Prior art date
Application number
KR1020100071379A
Other languages
English (en)
Other versions
KR20120009991A (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 KR1020100071379A priority Critical patent/KR101160482B1/ko
Publication of KR20120009991A publication Critical patent/KR20120009991A/ko
Application granted granted Critical
Publication of KR101160482B1 publication Critical patent/KR101160482B1/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

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

테스트 스윗 생성 장치 및 방법이 개시된다. 개시된 테스트 스윗 생성 장치는 소프트웨어의 블랙 박스 테스트(Black Box Test)를 위한 테스트 스윗(Test Suite)을 생성하는 장치로서, 상기 소프트웨어의 명세(Specification)로부터 상기 소프트웨어로 입력되는 사용자 입력들에 대한 정보 및 상기 블랙 박스 테스트를 통해 테스트하고자 하는 상기 소프트웨어의 실행 결과에 대한 정보를 추출하는 정보 추출부; 상기 사용자 입력들에 대한 정보를 이용하여 상기 소프트웨어의 실행과 관련된 단위 이벤트를 발생시키기 위한 단위 사용자 입력들을 생성하는 단위 사용자 입력 생성부; 및 상기 단위 사용자 입력들 중 적어도 하나가 조합(Combination)된 하나 이상의 제1 단위 사용자 입력 세트(set)와 상기 소프트웨어 실행 결과 사이의 적합도를 연산하고, 상기 하나 이상의 제1 단위 사용자 입력 세트 중에서 높은 적합도를 갖는 적어도 하나의 제1 단위 사용자 입력 세트를 선택하며, 상기 선택된 적어도 하나의 제1 단위 사용자 입력 세트를 이용하여 상기 테스트 스윗을 생성하는 테스트 스윗 생성부를 포함한다.

Description

테스트 스윗 생성 장치 및 방법{APPARATUS AND METHOD FOR GENERATING TEST SUITE}
본 발명의 실시예들은 테스트 스윗 생성 장치 및 방법에 관한 것으로서, 더욱 상세하게는 전기/전자 장치 등에 설치된 소프트웨어의 블랙 박스 테스트에 이용되는 테스트 스윗을 생성하는 장치 및 방법에 관한 것이다.
다양한 전기/전자 기기들이 개발됨에 따라 전기/전자 기기들에 탑재되는 소프트웨어(프로그램)의 종류도 다양해지고 있다. 이에 따라 전기/전자 기기들에 탑재되는 소프트웨어들은 그 종류의 다양성에 맞추어 다양한 환경에서 실행되고 있으며, 이로 인해 소프트웨어의 실행을 테스트하기 위한 테스트 실행 환경 구축도 매우 복잡해지고 있다.
이와 같은 전기/전자 기기에 탑재된 소프트웨어가 정상적으로 동작하는지 여부를 확인하기 위해서는 테스트의 대상이 되는 소프트웨어를 테스트 스윗(Test Suite) 내지 테스트 케이스(Test Case)에 따라 실행한다.
여기서, 테스트 케이스는 소정의 소프트웨어의 테스트를 위한 테스트 입력 값, 실행 조건, 예상 결과 값 등의 집합을 의미한다. 이 때, 적어도 하나의 테스트 케이스는 테스트 스윗을 구성할 수 있다. 다시 말해, 전기/전자 장치를 테스트 하기 위해 제공되는 테스트 케이스는 복수의 테스트 케이스들로 이루어진 테스트 스윗이 될 수 있다.
한편, 소프트웨어의 개발 결과를 검증하는데 소비되는 시간과 비용을 절감하기 위하여 테스트 스윗을 자동으로 생성하기 위한 다양한 방식의 테스트 스윗 생성 장치 및 방법들이 개발되어 왔다. 이러한 종래의 테스트 스윗 생성 장치 및 방법은 크게 소스 기반(Source-based)의 화이트 박스 테스트(White Box Test) 방식과 명세 기반(Specification-based)의 블랙 박스 테스트로 구분된다.
이 중에서 블랙 박스 테스트는 명세 기반 테스트라고도 불리며, 프로그램이 설치되어 있는 시스템을 구성하는 컴포넌트나 시스템의 내부 구조에 대한 자세한 지식 없이 명세(Specification) 내지 프로그램의 입출력을 분석하여 테스트 스윗을 생성하고, 생성된 테스트 스윗을 이용하여 소프트웨어의 결함 내지 성능 저하를 발견하는 테스트 방법이다. 블랙 박스 테스트는 시스템이 결함 없이 작동하고 명세에 맞게 작동하는지를 테스트하는데 많이 사용된다.
이와 같은 블랙 박스 테스트는 대부분 UML(Unified Modeling Language)과 같은 모델링 언어를 기반으로 하여 테스트 스윗을 생성하며, 접근 방식에 따라서 랜덤(Random) 방식, 목표 지향적(Goal-oriented) 방식, 및 경로(Path) 생성 방식 등으로 구분될 수 있다.
그러나, 위와 같은 접근 방식을 이용하는 종래의 블랙 박스 테스트의 경우, 테스트 하고자 하는 테스트 케이스의 경우의 수가 너무 많은 문제로 인해 소프트웨어의 테스트 시 시간 및 비용이 과도하게 소비되는 단점이 있었다.
상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 본 발명에서는 소프트웨어의 블랙 박스 테스트 시 수행하여야 할 테스트의 경우의 수를 줄임으로써 테스트에 소비되는 시간 및 비용을 줄일 수 있는 테스트 스윗 생성 장치 및 방법을 제안하고자 한다.
또한, 본 발명은 다양한 테스트 환경에 맞추어 자동으로 테스트 스윗을 생성할 수 있는 장치 및 방법을 제공하는 것을 다른 목적으로 한다.
상기한 목적을 달성하기 위해 본 발명의 바람직한 일실시예에 따르면, 소프트웨어의 블랙 박스 테스트(Black Box Test)를 위한 테스트 스윗(Test Suite)을 생성하는 장치에 있어서, 상기 소프트웨어의 명세(Specification)로부터 상기 소프트웨어로 입력되는 사용자 입력들에 대한 정보 및 상기 블랙 박스 테스트를 통해 테스트하고자 하는 상기 소프트웨어의 실행 결과에 대한 정보를 추출하는 정보 추출부; 상기 사용자 입력들에 대한 정보를 이용하여 상기 소프트웨어의 실행과 관련된 단위 이벤트를 발생시키기 위한 단위 사용자 입력들을 생성하는 단위 사용자 입력 생성부; 및 상기 단위 사용자 입력들 중 적어도 하나가 조합(Combination)된 하나 이상의 제1 단위 사용자 입력 세트(set)와 상기 소프트웨어 실행 결과 사이의 적합도를 연산하고, 상기 하나 이상의 제1 단위 사용자 입력 세트 중에서 높은 적합도를 갖는 적어도 하나의 제1 단위 사용자 입력 세트를 선택하며, 상기 선택된 적어도 하나의 제1 단위 사용자 입력 세트를 이용하여 상기 테스트 스윗을 생성하는 테스트 스윗 생성부를 포함하는 테스트 스윗 생성 장치가 제공된다.
상기 테스트 스윗 생성부는 상기 선택된 적어도 하나의 제1 단위 사용자 입력 세트를 변형하여 하나 이상의 제2 단위 사용자 입력 세트를 생성하고, 상기 하나 이상의 제2 단위 사용자 입력 세트를 이용하여 상기 테스트 스윗을 생성할 수 있다.
상기 테스트 스윗 생성부는 상기 적합도의 연산, 상기 높은 적합도를 갖는 적어도 하나의 제1 단위 사용자 입력 세트의 선택, 및 상기 하나 이상의 제2 단위 사용자 입력 세트의 생성을 n회(n은 2 이상의 정수임)만큼 순차적으로 반복 수행하되, i-1번째(i는 1 이상 n 이하의 정수임) 수행 단계에서의 상기 제2 단위 사용자 입력 세트는 i번째 수행 단계에서의 상기 제1 단위 사용자 입력 세트와 대응되고, i번째 수행 단계에서의 상기 제2 단위 사용자 입력 세트는 i+1번째 수행 단계에서의 상기 제1 단위 사용자 입력 세트와 대응될 수 있다.
상기 테스트 스윗 생성 장치는 유전 알고리즘에 따라 상기 테스트 스윗을 생성하고, 상기 단위 사용자 입력 세트는 상기 유전 알고리즘에서 정의되는 유전자와 대응될 수 있다.
상기 테스트 스윗 생성부는 룰렛 휠 선택(Roulette Wheel Selection) 연산, 교배(Cross Over) 연산, 및 변이(Mutation) 연산 중에서 적어도 하나를 이용하여 상기 선택된 적어도 하나의 제1 단위 사용자 입력 세트를 변형할 수 있다.
상기 적합도는 상기 소프트웨어의 실행 시 발생할 수 있는 결함 또는 성능 저하와 비례하는 값을 가질 수 있다.
또한, 본 발명의 다른 실시예에 따르면, 소프트웨어의 블랙 박스 테스트를 위한 테스트 스윗을 생성하는 방법에 있어서, 상기 소프트웨어의 명세로부터 상기 소프트웨어로 입력되는 사용자 입력들에 대한 정보 및 상기 블랙 박스 테스트를 통해 테스트하고자 하는 상기 소프트웨어의 실행 결과에 대한 정보를 추출하는 단계; 상기 사용자 입력들에 대한 정보를 이용하여 상기 소프트웨어의 실행과 관련된 단위 이벤트를 발생시키기 위한 단위 사용자 입력들을 생성하는 단계; 및 상기 단위 사용자 입력들 중 적어도 하나가 조합된 하나 이상의 제1 단위 사용자 입력 세트와 상기 소프트웨어 실행 결과 사이의 적합도를 연산하고, 상기 하나 이상의 제1 단위 사용자 입력 세트 중에서 높은 적합도를 갖는 적어도 하나의 제1 단위 사용자 입력 세트를 선택하며, 상기 선택된 적어도 하나의 제1 단위 사용자 입력 세트를 이용하여 상기 테스트 스윗을 생성하는 단계를 포함하는 테스트 스윗 생성 방법이 제공된다.
본 발명에 따르면, 소프트웨어의 블랙 박스 테스트 시 수행하여야 할 테스트의 경우의 수를 줄임으로써 테스트에 소비되는 시간 및 비용을 줄일 수 있게 된다.
또한, 본 발명에 따르면, 다양한 테스트 환경에 맞추어 자동으로 테스트 스윗을 생성할 수 있게 된다.
도 1은 본 발명의 일 실시예에 따른 테스트 스윗 생성 장치의 상세한 구성을 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 단위 사용자 입력의 구조의 일례를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 테스트 스윗 생성부가 유전 알고리즘에 따라 사용자 인터페이스 프로그램에 적합한 테스트 스윗을 생성하는 일례의 전체적인 흐름을 도시한 순서도이다.
도 4는 본 발명의 일 실시예에 따른 테스트 스윗 생성 방법의 전체적인 흐름을 도시한 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명의 일실시예에 따른 테스트 스윗 생성 장치 및 방법은 블랙 박스 테스트 방식에 따라 다양한 전기/전자 기기에 설치되는 소프트웨어를 테스트하는데 제한 없이 적용될 수 있다.
특히, 본 발명의 일실시예에 따른 테스트 스윗 생성 장치 및 방법은 사용자 인터페이스 프로그램과 같은 소프트웨어를 블랙 박스 테스트 방식에 따라 테스트하는데 효율적으로 적용될 수 있으므로, 이하에서는 설명의 편의를 위해 블랙 박스 테스트 방식에 따라 사용자 인터페이스 프로그램을 테스트하기 위한 테스트 스윗을 생성하는 테스트 스윗 생성 장치 및 방법의 일례를 중심으로 설명하기로 한다. 그러나, 본 발명이 이에 한정되는 것은 아니다.
도 1은 본 발명의 일 실시예에 따른 테스트 스윗 생성 장치의 상세한 구성을 도시한 블록도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 테스트 스윗 생성 장치(100)는 정보 추출부(110), 단위 사용자 입력 생성부(120), 및 테스트 스윗 생성부(130)를 포함한다. 이하, 각 구성 요소 별로 그 기능을 상술하기로 한다.
정보 추출부(110)는 사용자 인터페이스 프로그램과 같은 소프트웨어(이하, "사용자 인터페이스 프로그램")의 명세(Specification)로부터 상기 사용자 인터페이스 프로그램으로 입력되는 사용자 입력들에 대한 정보 및 블랙 박스 테스트를 통해 테스트하고자 하는 사용자 인터페이스 프로그램의 실행 결과에 대한 정보를 추출한다.
일례로, 정보 추출부(110)는 사용자 인터페이스 프로그램의 명세로부터 사용자 입력 정보와 사용자 인터페이스에 의해 실행되는 프로그램 내부 메커니즘의 타겟 정보를 추출하는 파서(Parser)일 수 있다. 이 경우, 타겟 정보가 상기의 사용자 인터페이스 프로그램의 실행 결과와 대응된다.
단위 사용자 입력 생성부(120)는 추출된 사용자 입력들에 대한 정보를 이용하여 사용자 인터페이스 프로그램의 실행과 관련된 단위 이벤트를 발생시키기 위한 단위 사용자 입력들을 생성한다.
여기서, 단위 이벤트는 사용자 인터페이스의 실행 과정에서 발생하는 소정의 동작을 의미한다. 일례로서, 마우스 클릭 시 새 창이 열리는 동작, 로그인이 되는 동작 등이 단위 이벤트가 될 수 있다.
또한, 단위 사용자 입력은 위와 같은 단위 이벤트를 발생시키기 위해 사용자로부터 입력되는 값(신호)를 의미한다. 일례로서, 마우스의 커서를 이용하여 특정 버튼을 클릭하는 사용자 입력, 텍스트 상자에 특정 텍스트를 입력하는 행위 등이 단위 사용자 입력이 될 수 있다.
즉, 사용자 인터페이스 프로그램을 실행하고자 하는 경우, 사용자는 여러 가지 입력 행위를 수행하게 되는데, 단위 사용자 입력 생성부(120)는 이러한 입력 행위를 소정의 이벤트(버튼 클릭, 텍스트 입력 등)를 발생시키기 위한 최소 단위로 분할하여 단위 사용자 입력을 생성한다.
도 2에서는 단위 사용자 입력의 구조의 일례를 도시하고 있다. 도 2를 참조하면, 단위 사용자 입력(200)은 System Intervention, User Intervention, Delay, 및 User Input를 포함하여 구성될 수 있다.
테스트 스윗 생성부(130)는 단위 사용자 입력 생성부(120)에서 생성된 단위 사용자 입력들 중 적어도 하나가 조합(Combination)된 하나 이상의 단위 사용자 입력 세트(set)와 사용자 인터페이스 프로그램의 실행 결과 사이의 적합도를 연산하고, 상기 하나 이상의 단위 사용자 입력 세트 중에서 높은 적합도를 갖는(즉, 기 설정된 기준 적합도 보다 높은 적합도를 갖는) 적어도 하나의 단위 사용자 입력 세트를 선택하며, 선택된 적어도 하나의 단위 사용자 입력 세트를 이용하여 테스트 스윗을 생성한다.
즉, 사용자 인터페이스 프로그램을 실행하는 경우, 여러 개의 다양한 사용자 입력이 사용자 인터페이스 프로그램으로 입력되는데(일례로, 사용자 인터페이스 프로그램을 실행하기 위해 우선적으로 로그인을 하여야 하는 경우, [텍스트 입력, 버튼(login 버튼) 클릭]과 같은 단위 사용자 입력의 조합이 순차적으로 입력됨), 테스트 스윗 생성부(130)는 위와 같은 사용자 인터페이스 프로그램의 실행에 적용되는 단위 사용자 입력들을 조합하여 단위 사용자 입력 세트를 생성하고, 생성된 하나 이상의 단위 사용자 입력 세트를 이용하여 테스트 스윗을 생성하는 역할을 수행한다. 이 때, 테스트 스윗에 포함되는 테스트 케이스의 경우의 수를 줄이기 위해, 테스트 스윗 생성부(130)는 해당 단위 사용자 입력 세트와 사용자 인터페이스 프로그램의 실행 결과(즉, 프로그램 내부 메커니즘의 타겟 정보) 사이의 적합도를 이용하여 테스트 스윗을 생성한다.
여기서, 적합도는 사용자 인터페이스 프로그램의 실행 시 발생할 수 있는 결함 또는 성능 저하와 비례하도록 설정되는 파라미터일 수 있다. 또한, 선택의 기준이 되는 기 설정된 적합도는 사용자 인터페이스 프로그램에 따라 적절한 값을 갖도록 설정될 수 있다.
즉, 특정 단위 사용자 입력 세트에 따라 사용자 입력이 입력되는 경우에 있어서, 사용자 인터페이스 프로그램의 실행 시 오류가 발생하거나 또는 실행 시 오랜 시간이 걸리는 경우, 해당 사용자 입력 세트는 높은 적합도를 가지는 것으로 설정(연산)된다. 반대로, 특정 단위 사용자 입력 세트에 따라 사용자 입력이 입력되는 경우에 있어, 사용자 인터페이스 프로그램의 실행이 원활하게 이루어지는 경우, 해당 단위 사용자 입력 세트는 낮은 적합도는 가지는 것으로 설정(연산)된다.
앞서 설명한 바와 같이, 테스트 스윗 생성부(130)는 사용자 인터페이스 프로그램의 실행 시 발생할 수 있는 결함 또는 성능 저하와 비례하도록 적합도를 설정하고, 적합도가 높은 일부의 단위 사용자 입력 세트를 이용하여 테스트 스윗을 생성하므로, 위와 같이 적합도를 이용하여 테스트 스윗을 생성하는 경우, 적용되는 테스트의 경우의 수를 줄이면서 사용자 인터페이스 프로그램의 결함 또는 성능 저하를 파악할 수 있게 된다. 이에 따라, 본 발명에 따른 테스트 스윗 생성 장치(100)는 사용자 인터페이스 프로그램의 테스트에 소요되는 시간 및 비용을 절감할 수 있게 되는 장점을 갖는다.
본 발명의 일 실시예에 따르면, 테스트 스윗 생성부(130)는 상기 선택된 (높은 적합도를 갖는) 적어도 하나의 단위 사용자 입력 세트를 변형하여 하나 이상의 새로운 단위 사용자 입력 세트를 생성하고, 새로운 하나 이상의 제2 단위 사용자 입력 세트를 이용하여 테스트 스윗을 생성할 수 있다(이하에서는 설명의 편의를 위해, 변형 전의 단위 사용자 입력 세트를 "제1 단위 사용자 입력 세트"로, 변형 후의 단위 사용자 입력 세트를 "제2 단위 사용자 입력 세트"로 칭하기로 한다).
이와 같은 단위 사용자 입력 세트의 변형은 보다 높은 적합도를 갖는 단위 사용자 입력 세트를 산출하기 위해 수행된다. 여기서, 단위 사용자 입력 세트의 변형은 단위 사용자 입력 세트 내에 포함되는 단위 사용자 입력의 일부를 다른 단위 사용자 입력으로 변경하는 것을 의미한다. 이 때, 변경되는 다른 단위 사용자 입력은 선택된 적어도 하나의 단위 사용자 입력 세트 중에서 자신을 제외한 다른 단위 사용자 입력 세트에 포함된 단위 사용자 입력일 수도 있고, 선택된 적어도 하나의 단위 사용자 입력 세트에 포함되지 않은 단위 사용자 입력일 수도 있다.
이에 대해 보다 상세히 설명하면, 단위 사용자 입력 세트가 변형된다면, 변형된 제2 단위 사용자 입력 세트는 변형 전의 제1 단위 사용자 입력 세트와는 다른 단위 사용자 입력 조합을 갖게 되는데, 이 경우 단위 사용자 입력 세트에 대한 적합도 역시 변경되게 되므로, 제2 단위 사용자 입력 세트의 적합도는 제1 단위 사용자 입력 세트의 적합도 보다 높을 수도 있게 되고 낮을 수도 있게 된다.
그런데, 적합도가 높을수록 해당 테스트 스윗을 이용한 블랙 박스 테스트를 통해 사용자 인터페이스 프로그램에 대한 결함 내지 성능 저하를 용이하게 검출할 수 있게 된다. 따라서, 테스트 스윗 생성부(130)는 제2 단위 사용자 입력 세트 중에서 높은 적합도를 갖는 제2 단위 사용자 입력 세트를 이용하여 테스트 스윗을 생성함으로써, 해당 사용자 인터페이스 프로그램의 테스트에 이용되는 테스트 케이스의 개수를 줄임과 동시에 해당 사용자 인터페이스 프로그램에 보다 적합한 테스트 스윗을 생성할 수 있게 된다.
이 경우, 테스트 스윗 생성부(130)는 적합도의 연산, 높은 적합도를 갖는 적어도 하나의 제1 단위 사용자 입력 세트의 선택 및 하나 이상의 제2 단위 사용자 입력 세트의 생성(즉, 적어도 하나의 제1 단위 사용자 입력 세트의 변형)은 n회(n은 2 이상의 정수임)만큼 순차적으로 반복 수행할 수 있다. 이 때, 테스트 스윗 생성부(130)는 n회째 반복 수행에 의해 생성되는 하나 이상의 제2 단위 사용자 입력 세트 중에서 높은 적합도를 갖는 적어도 하나의 제2 단위 사용자 입력 세트를 이용하여 최종적으로 테스트 스윗을 생성한다. 이에 따라, 테스트 스윗에 포함되는 테스트 케이스의 개수를 순차적으로 줄일 수 있게 된다. 반복 수행의 횟수(n)은 사용자 인터페이스 프로그램의 종류 등에 따라 사용자에 의해 설정될 수 있다.
또한, 본 발명의 일 실시예에 따르면, 테스트 스윗 생성부(130)는 유전 알고리즘(GA: Genetic Algorithm)에 따라 테스트 스윗을 생성할 수 있다. 이 경우, 단위 사용자 입력 세트는 유전 알고리즘에서 정의되는 유전자와 대응될 수 있다.
이하에서는 도 3을 참조하여, 본 발명의 일 실시예에 따른 테스트 스윗 생성부(130)가 유전 알고리즘에 따라 사용자 인터페이스 프로그램에 적합한 테스트 스윗을 생성하는 일례를 설명하기로 한다.
도 3은 본 발명의 일 실시예에 따른 테스트 스윗 생성부(130)가 유전 알고리즘에 따라 사용자 인터페이스 프로그램에 적합한 테스트 스윗을 생성하는 일례의 전체적인 흐름을 도시한 순서도이다. 이하, 도 3을 참조하여 각 단계 별로 수행되는 과정을 상술하기로 한다.
먼저, 단계(S310)에서는 하나 이상의 유전자를 포함하는 유전자 초기 집단을 생성한다. 여기서, 유전자는 앞서 설명한 바와 같이 단위 사용자 입력 세트와 대응된다.
단계(S320)에서는 유전자 초기 집단에 포함된 유전자(단위 사용자 입력 세트)들에 대한 적합도를 연산한다. 여기서 적합도는 사용자 인터페이스 프로그램에 대해 정의되는 적합도 함수(Fitness Function)에 의해 연산될 수 있다.
또한, 앞서 설명한 바와 같이, 적합도는 사용자 인터페이스 프로그램의 실행 시 발생할 수 있는 결함 또는 성능 저하와 비례하도록 설정되는 파라미터일 수 있다.
단계(S330)에서는 하나 이상의 유전자 중에서 기 설정된 적합도보다 높은 적합도를 갖는 적어도 하나의 유전자를 선택한다.
단계(S340)에서는 선택된 적어도 하나의 유전자에 대해 변형을 수행한다.
본 발명의 일 실시예에 따르면, 단계(S340)에서는 룰렛 휠 선택(Roulette Wheel Selection) 연산, 교배(Cross Over) 연산, 및 변이(Mutation) 연산 중에서 적어도 하나를 이용하여 선택된 적어도 하나의 유전자를 변형할 수 있다.
유전 알고리즘의 수행에 이용되는 룰렛 휠 선택 연산, 교배 연산, 및 변이 연산은 당업자에 널리 알려진 사항이므로 이에 대한 보다 상세한 설명은 생략하기로 한다.
단계(S350)에서는 변형이 수행된 유전자에 대해 적합도를 연산하고, 단계(S360)에서는 변형된 유전자 중에서 높은 적합도를 갖는 적어도 하나의 유전자를 선택한다.
단계(S370)에서는 유전 알고리즘의 종결 조건을 만족시키는지 여부(즉, 반복 횟수가 n보다 큰지 여부)를 판단한다.
만약, 유전 알고리즘의 종결 조건이 만족되는 경우, 단계(S380)에서는 선택된 적어도 하나의 유전자를 이용하여 테스트 스윗을 생성한다. 반대로, 유전 알고리즘의 종결 조건이 만족되지 않는 경우, 단계(S340) 내지 단계(S370)가 반복되어 수행된다.
요컨대, 본 발명의 일 실시예에 따른 테스트 스윗 생성 장치(100)는 사용자 인터페이스 프로그램과 같은 유전 알고리즘과 같이 적합도의 연산을 통해 테스트 케이스의 경우의 수를 줄임으로써, 소프트웨어의 블랙 박스 테스트 시 소비되는 시간 및 비용을 줄이고, 다양한 테스트 환경에 맞추어 자동으로 테스트 스윗을 생성할 수 있게 된다.
도 4는 본 발명의 일 실시예에 따른 테스트 스윗 생성 방법의 전체적인 흐름을 도시한 순서도이다. 이하, 각 단계 별로 수행되는 과정을 설명하기로 한다.
먼저, 단계(S410)에서는 사용자 인터페이스 프로그램의 명세로부터 사용자 인터페이스 프로그램으로 입력되는 사용자 입력들에 대한 정보 및 블랙 박스 테스트를 통해 테스트하고자 하는 사용자 인터페이스 프로그램의 실행 결과에 대한 정보를 추출한다.
일례로서, 사용자 인터페이스 프로그램의 실행 결과는 프로그램의 내부 메커니즘의 타겟 정보일 수 있다.
다음으로, 단계(S420)에서는 사용자 입력들에 대한 정보를 이용하여 사용자 인터페이스 프로그램의 실행과 관련된 단위 이벤트를 발생시키기 위한 단위 사용자 입력들을 생성한다.
여기서, 단위 사용자 입력은 마우스의 커서를 이용하여 특정 버튼을 클릭하는 사용자 입력, 텍스트 상자에 특정 텍스트를 입력하는 행위 등과 대응되는 소정의 이벤트 발생의 최소 입력 단위일 수 있다.
마지막으로, 단계(S430)에서는 단위 사용자 입력들 중 적어도 하나가 조합된 하나 이상의 단위 사용자 입력 세트와 사용자 인터페이스 프로그램의 실행 결과 사이의 적합도를 연산하고, 상기 하나 이상의 단위 사용자 입력 세트 중에서 높은 적합도를 갖는 적어도 하나의 단위 사용자 입력 세트를 선택하며, 상기 선택된 적어도 하나의 단위 사용자 입력 세트를 이용하여 테스트 스윗을 생성한다.
여기서 적합도는 앞서 설명한 바와 같이 사용자 인터페이스 프로그램의 실행 시 발생할 수 있는 결함 또는 성능 저하와 비례하도록 설정되는 파라미터일 수 있다.
또한, 본 발명의 일 실시예에 따르면, 단계(S430)에서는 선택된 적어도 하나의 단위 사용자 입력 세트(제1 단위 사용자 입력 세트)를 변형하여 하나 이상의 단위 사용자 입력 세트(제2 단위 사용자 입력 세트)를 생성하고, 하나 이상의 제2 단위 사용자 입력 세트를 이용하여 테스트 스윗을 생성할 수 있다.
이 경우, 단계(S430)에서는 적합도의 연산, 높은 적합도를 갖는 적어도 하나의 제1 단위 사용자 입력 세트의 선택, 및 하나 이상의 제2 단위 사용자 입력 세트의 생성을 n회 만큼 순차적으로 반복 수행할 수 있다.
이 때, i-1번째 수행 단계에서의 제2 단위 사용자 입력 세트는 i번째 수행 단계에서의 제1 단위 사용자 입력 세트와 대응되고, i번째 수행 단계에서의 제2 단위 사용자 입력 세트는 i+1번째 수행 단계에서의 제1 단위 사용자 입력 세트와 대응될 수 있다.
지금까지 본 발명에 따른 테스트 스윗 생성 방법의 실시예들에 대하여 설명하였고, 앞서 도 1 내지 도 3에서 설명한 테스트 스윗 생성 장치(100)에 관한 구성이 본 실시예에도 그대로 적용 가능하다. 이에, 보다 상세한 설명은 생략하기로 한다.
또한, 본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 일실시예들의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
100: 테스트 스윗 생성 장치
110: 정보 추출부
120: 단위 사용자 입력 생성부
130: 테스트 스윗 생성부
200: 단위 사용자 입력 세트

Claims (10)

  1. 소프트웨어의 블랙 박스 테스트(Black Box Test)를 위한 테스트 스윗(Test Suite)을 생성하는 장치에 있어서,
    상기 소프트웨어의 명세(Specification)로부터 상기 소프트웨어로 입력되는 사용자 입력들에 대한 정보 및 상기 블랙 박스 테스트를 통해 테스트하고자 하는 상기 소프트웨어의 실행 결과에 대한 정보를 추출하는 정보 추출부;
    상기 사용자 입력들에 대한 정보를 이용하여 상기 소프트웨어의 실행과 관련된 단위 이벤트를 발생시키기 위한 단위 사용자 입력들을 생성하는 단위 사용자 입력 생성부; 및
    상기 단위 사용자 입력들 중 적어도 하나가 조합(Combination)된 하나 이상의 제1 단위 사용자 입력 세트(set)와 상기 소프트웨어 실행 결과 사이의 적합도의 연산, 상기 하나 이상의 제1 단위 사용자 입력 세트 중에서 기 설정된 기준 적합도 보다 높은 적합도를 갖는 적어도 하나의 제1 단위 사용자 입력 세트의 선택, 및 상기 선택된 적어도 하나의 제1 단위 사용자 입력 세트를 변형한 하나 이상의 제2 단위 사용자 입력 세트의 생성을 n회(n은 2 이상의 정수임)만큼 순차적으로 반복 수행하여 상기 테스트 스윗을 생성하는 테스트 스윗 생성부를 포함하되,
    상기 적합도는 상기 소프트웨어의 실행 시 발생할 수 있는 결함 또는 성능 저하와 비례하는 값을 가지고, 상기 제1 단위 사용자 입력 세트의 변형(상기 제2 단위 사용자 입력 세트의 생성)은 상기 제1 단위 사용자 입력 세트 내에 포함되는 적어도 하나의 단위 사용자 입력의 일부를 다른 사용자 입력으로 변경하는 것이며, 상기 반복 수행 중 i-1번째(i는 2 이상 n 이하의 정수임) 수행 단계에서의 상기 제2 단위 사용자 입력 세트는 i번째 수행 단계에서의 상기 제1 단위 사용자 입력 세트와 대응되고, i번째 수행 단계에서의 상기 제2 단위 사용자 입력 세트는 i+1번째 수행 단계에서의 상기 제1 단위 사용자 입력 세트와 대응되며,
    상기 테스트 스윗 생성부는 상기 n회만큼의 순차 반복 수행 후에 생성되는 상기 하나 이상의 제2 단위 사용자 입력 세트를 이용하여 상기 테스트 스윗을 생성하는 것을 특징으로 하는 테스트 스윗 생성 장치.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 테스트 스윗 생성 장치는 유전 알고리즘에 따라 상기 테스트 스윗을 생성하고, 상기 단위 사용자 입력 세트는 상기 유전 알고리즘에서 정의되는 유전자와 대응되는 것을 특징으로 하는 테스트 스윗 생성 장치.
  5. 제4항에 있어서,
    상기 테스트 스윗 생성부는
    룰렛 휠 선택(Roulette Wheel Selection) 연산, 교배(Cross Over) 연산, 및 변이(Mutation) 연산 중에서 적어도 하나를 이용하여 상기 선택된 적어도 하나의 제1 단위 사용자 입력 세트를 변형하는 것을 특징으로 하는 테스트 스윗 생성 장치.
  6. 삭제
  7. 소프트웨어의 블랙 박스 테스트를 위한 테스트 스윗을 생성하는 방법에 있어서,
    상기 소프트웨어의 명세로부터 상기 소프트웨어로 입력되는 사용자 입력들에 대한 정보 및 상기 블랙 박스 테스트를 통해 테스트하고자 하는 상기 소프트웨어의 실행 결과에 대한 정보를 추출하는 단계;
    상기 사용자 입력들에 대한 정보를 이용하여 상기 소프트웨어의 실행과 관련된 단위 이벤트를 발생시키기 위한 단위 사용자 입력들을 생성하는 단계;
    상기 단위 사용자 입력들 중 적어도 하나가 조합된 하나 이상의 제1 단위 사용자 입력 세트와 상기 소프트웨어 실행 결과 사이의 적합도의 연산, 상기 하나 이상의 제1 단위 사용자 입력 세트 중에서 기 설정된 적합도 보다 높은 적합도를 갖는 적어도 하나의 제1 단위 사용자 입력 세트의 선택, 및 상기 선택된 적어도 하나의 제1 단위 사용자 입력 세트를 변형한 하나 이상의 제2 단위 사용자 입력 세트의 생성을 n회(n은 2 이상의 정수임)만큼 순차적으로 반복 수행하여 상기 테스트 스윗을 생성하는 단계를 포함하되,
    상기 적합도는 상기 소프트웨어의 실행 시 발생할 수 있는 결함 또는 성능 저하와 비례하는 값을 가지고, 상기 제1 단위 사용자 입력 세트의 변형(상기 제2 단위 사용자 입력 세트의 생성)은 상기 제1 단위 사용자 입력 세트 내에 포함되는 적어도 하나의 단위 사용자 입력의 일부를 다른 사용자 입력으로 변경하는 것이며, 상기 반복 수행 중 i-1번째(i는 2 이상 n 이하의 정수임) 수행 단계에서의 상기 제2 단위 사용자 입력 세트는 i번째 수행 단계에서의 상기 제1 단위 사용자 입력 세트와 대응되고, i번째 수행 단계에서의 상기 제2 단위 사용자 입력 세트는 i+1번째 수행 단계에서의 상기 제1 단위 사용자 입력 세트와 대응되며,
    상기 테스트 스윗을 생성하는 단계는 상기 n회만큼의 순차 반복 수행 후에 생성되는 상기 하나 이상의 제2 단위 사용자 입력 세트를 이용하여 상기 테스트 스윗을 생성하는 것을 특징으로 하는 테스트 스윗 생성 방법.
  8. 삭제
  9. 삭제
  10. 삭제
KR1020100071379A 2010-07-23 2010-07-23 테스트 스윗 생성 장치 및 방법 KR101160482B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100071379A KR101160482B1 (ko) 2010-07-23 2010-07-23 테스트 스윗 생성 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100071379A KR101160482B1 (ko) 2010-07-23 2010-07-23 테스트 스윗 생성 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20120009991A KR20120009991A (ko) 2012-02-02
KR101160482B1 true KR101160482B1 (ko) 2012-06-28

Family

ID=45834686

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100071379A KR101160482B1 (ko) 2010-07-23 2010-07-23 테스트 스윗 생성 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101160482B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9916414B2 (en) 2013-04-22 2018-03-13 Samsung Electronics Co., Ltd. Apparatus and method for generating test cases for processor verification, and verification device
KR20230028846A (ko) 2021-08-23 2023-03-03 에이존테크 주식회사 블랙박스 테스트 장치 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100625597B1 (ko) * 1999-12-27 2006-09-20 한국전자통신연구원 객체 지향 칠 프로그램의 시험을 위한 테스트 케이스 자동생성 방법
KR20070069614A (ko) * 2005-12-28 2007-07-03 삼성전자주식회사 소프트웨어 테스트 방법 및 소프트웨어 테스트 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100625597B1 (ko) * 1999-12-27 2006-09-20 한국전자통신연구원 객체 지향 칠 프로그램의 시험을 위한 테스트 케이스 자동생성 방법
KR20070069614A (ko) * 2005-12-28 2007-07-03 삼성전자주식회사 소프트웨어 테스트 방법 및 소프트웨어 테스트 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9916414B2 (en) 2013-04-22 2018-03-13 Samsung Electronics Co., Ltd. Apparatus and method for generating test cases for processor verification, and verification device
KR20230028846A (ko) 2021-08-23 2023-03-03 에이존테크 주식회사 블랙박스 테스트 장치 및 방법

Also Published As

Publication number Publication date
KR20120009991A (ko) 2012-02-02

Similar Documents

Publication Publication Date Title
Linares-Vásquez et al. Mining android app usages for generating actionable gui-based execution scenarios
US7302677B2 (en) Event driven graph explorer for model-based testing of software
US9465718B2 (en) Filter generation for load testing managed environments
US6622298B1 (en) Method and apparatus for testing software having a user interface
US8701084B1 (en) Preview of auto-fix changes to software code
US9454467B2 (en) Method and apparatus for mining test coverage data
US8875077B1 (en) Fault sensitivity analysis-based cell-aware automated test pattern generation flow
US8543981B2 (en) State driven test editor
US7844929B2 (en) Optimizing test code generation for verification environment
US8732676B1 (en) System and method for generating unit test based on recorded execution paths
JP2015043198A (ja) 解析システム、解析方法および解析プログラム
US20140059520A1 (en) Architecture for state driven testing
JP5450840B2 (ja) プログラムの実行性能評価のためのテストデータ生成方法
KR20080055913A (ko) 집적회로 디자인 시뮬레이션을 위한 어써션의 개발 방법 및시스템과 장치
US8850407B2 (en) Test script generation
KR101160482B1 (ko) 테스트 스윗 생성 장치 및 방법
JP2010102620A (ja) ユーザ操作シナリオ生成装置、方法およびプログラム
US10970183B1 (en) System and method for improving model performance
JP2016149123A (ja) 未知のバイナリモジュールのための有効な入力を決定する方法及び非一時的なコンピュータ可読媒体
US10579761B1 (en) Method and system for reconstructing a graph presentation of a previously executed verification test
JP5672165B2 (ja) テストデータ生成プログラム、テストデータ生成方法、テストデータ生成装置
KR102603330B1 (ko) 테스트 커버리지 표시 장치 및 표시 방법
EP3091453A1 (en) Designing a longevity test for a smart tv
Shaikh et al. A feedback technique for unsatisfiable UML/OCL class diagrams
GB2397905A (en) Method for automatically generating and ordering test scripts

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E601 Decision to refuse application
A107 Divisional application of patent
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160324

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170329

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180604

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190321

Year of fee payment: 8