KR102276290B1 - 대용량 테스트 데이터 생성장치 - Google Patents
대용량 테스트 데이터 생성장치 Download PDFInfo
- Publication number
- KR102276290B1 KR102276290B1 KR1020200043860A KR20200043860A KR102276290B1 KR 102276290 B1 KR102276290 B1 KR 102276290B1 KR 1020200043860 A KR1020200043860 A KR 1020200043860A KR 20200043860 A KR20200043860 A KR 20200043860A KR 102276290 B1 KR102276290 B1 KR 102276290B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- test data
- generator
- test
- distribution
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 대용량 테스트 데이터 생성장치에 관한 것으로, 특히 시스템의 설계 시점에 산출된 데이터베이스의 테이블 구조를 기반으로 하되 대용량의 샘플 데이터가 존재하는 현실 세계의 데이터 분포를 모델링하여 테스트 데이터를 제공하는 대용량 테스트 데이터 생성장치에 관한 것이다.
Description
본 발명은 대용량 테스트 데이터 생성장치에 관한 것으로, 더욱 상세하게는 시스템의 설계 시점에 산출된 데이터베이스의 테이블 구조를 기반으로 하되 대용량의 샘플 데이터가 존재하는 현실 세계의 데이터 분포를 모델링하여 테스트 데이터를 제공하는 대용량 테스트 데이터 생성장치에 관한 것이다.
일반적으로 신규 소프트웨어의 개발이나 기존의 소프트웨어를 고도화하는 프로젝트를 비롯하여 다양한 시스템 개발 과정에서는 소량의 샘플 데이터를 가지고 개발을 시작한다.
또한 개발 완료 후에는 사용자 인수 테스트 단계 또는 운영 단계에서 실제 용량의 데이터를 데이터베이스에 적재한 이후에 시스템에 적합한 실용적인 기능 및 성능 테스트를 수행한다.
그러나 소량의 데이터 환경에서는 비효율적인 단위 모듈을 모니터링 할 수 없고 다양한 테스트 케이스를 적용하여 기능 테스트를 하기 어렵다. 따라서, 테스트 단계 후반 시점이나 운영 단계에서 기능이나 성능상의 문제가 발견된다.
이와 같이 기능이나 성능상의 문제를 일으키는 모듈을 개선하기 위해서는 부득이 개발 단계로 회귀해야 하기 때문에 시스템 개발 프로젝트의 일정이 지연되고추가 비용이 발생한다.
이러한 이유로 개발 단계에서부터 대용량의 테스트 데이터가 필요한데, 종래에는 테스트 데이터를 생성하기 위해 의미없는 임의의 난수(Random Value)를 발생하여 더미 데이터(Dummy Data)를 생성하였다.
또한 대용량의 데이터를 생성하기 위한 다른 방법으로서 실제 데이터(Real Data)와 유사한 의미 있는 테스트 데이터를 생성하기 위해 코드성 데이터를 조합하여 합성 데이터(Synthetic Data)를 생성하였다.
그러나 실제 시스템에 적용되는 데이터는 균등 분포와 불균등 분포가 혼재하고 있어서 위와 같은 데이터 생성 방식으로는 데이터의 불균등 분포와 같은 데이터 분포 특성을 고려하지 않는 문제가 있다.
또한 데이터의 분포 특성과 데이터량에 따라 단위 모듈의 실행 성능이 달라져 성능 왜곡 현상이 발생한다. 따라서 시스템 개발시부터 현실 세계의 데이터 분포를 모델링한 테스트 데이터를 생성할 필요가 있다.
본 발명은 전술한 바와 같은 문제점을 해결하기 위한 것으로, 시스템의 설계 시점에 산출된 데이터베이스의 테이블 구조를 기반으로 하되 대용량의 샘플 데이터가 존재하는 현실 세계의 데이터 분포를 모델링하여 테스트 데이터를 제공하는 대용량 테스트 데이터 생성장치를 제공하고자 한다.
이를 위해, 본 발명에 따른 대용량 테스트 데이터 생성장치는 시스템 개발 단계에서 필요한 테스트 데이터를 제공하는 것으로, 코드(code)로 표현된 코드성 데이터를 정의하는 코드 데이터 모듈과; 비코드(non-code)로 표현된 비코드성 데이터를 정의하는 비코드 데이터 모듈과; 불균등 분포된 불균등 데이터를 정의하는 불균등 데이터 모듈과; 균등 분포된 균등 데이터를 정의하는 균등 데이터 모듈과; 상기 정의된 코드성 데이터, 비코드성 데이터, 불균등 데이터 및 균등 데이터를 표현한 구조의 메타 데이터를 생성하는 메타 데이터 생성기; 및 상기 메타 데이터를 참조하여 상기 코드성 데이터, 비코드성 데이터, 불균등 데이터 및 균등 데이터가 포함된 테스트 데이터를 생성하여 데이터베이스에 저장하는 테스트 데이터 생성기;를 포함하는 것을 특징으로 한다.
이때, 상기 코드 데이터 모듈은 시스템 설계 과정에서 도출된 코드 데이터를 입력받아 정의하고, 상기 정의된 코드 데이터의 표현을 상기 메타 데이터 생성기에 제공하는 것이 바람직하다.
또한, 상기 비코드 데이터 모듈은 상기 코드 데이터 이외의 일반 데이터를 비코드 데이터로 정의하고, 상기 정의된 비코드 데이터의 표현을 상기 메타 데이터 생성기에 제공하는 것이 바람직하다.
또한, 상기 불균등 데이터 모듈은 도수분포(Frequency Distribution)를 표현하는 자료구조의 이산형 데이터 및 확률분포(Probability Distribution)를 표현하는 자료구조의 연속형 데이터를 각각 정의하여 상기 메타 데이터 생성기에 제공하는 것이 바람직하다.
또한, 상기 균등 데이터 모듈은 상기 코드 데이터 내에서 무작위(random)로 데이터를 추출하여 균등 데이터를 정의하여 상기 메타 데이터 생성기에 제공하되, 상기 정의된 균등 데이터의 개수가 균등하게 분포되도록 관리하는 것이 바람직하다.
또한, 상기 메타 데이터 생성기는 상기 시스템 완성시의 현실에 적용되는 데이터 분포를 데이터 모델링(data modeling)하여 상기 코드성 데이터, 비코드성 데이터, 불균등 데이터 및 균등 데이터를 각각 선택한 메타 데이터를 생성하는 것이 바람직하다.
또한, 상기 메타 데이터 생성기는 상기 데이터베이스 내에 저장되는 데이터 테이블의 전체 컬럼 중 성능 또는 기능을 테스트시 DB 서버 언어의 조건절로 사용되는 컬럼의 데이터 타입, 데이터 분포 및 데이터 확률개수에 따라 상기 테스트 데이터를 분류하여 표현하는 것이 바람직하다.
또한, 상기 메타 데이터 생성기는 상기 테스트 데이터가 생성되는 대상 테이블에 대한 정보와; 상기 대상 테이블 내의 각 컬럼에 대한 정보; 및 상기 컬럼의 데이터 분포 정보;를 포함하는 메타 데이터를 생성하는 것이 바람직하다.
또한, 상기 메타 데이터 생성기는 상기 대상 테이블을 정의하기 위한 메타 데이터인 마스터 테이블을 생성하되, 상기 마스터 테이블에 기록된 레코드는 상기 대상 테이블과 1:1로 매핑하여 테스트 데이터의 개수 및 생성 순서를 관리하는 것이 바람직하다.
또한, 상기 테스트 데이터 생성기는 상기 대상 테이블을 부모 테이블부터 자식 테이블 순서로 생성하되 동일한 레벨의 자식 테이블인 경우 테스트 데이터의 개수가 많은 테이블부터 테스트 데이터의 개수만큼 반복하여 생성하는 것이 바람직하다.
또한, 상기 메타 데이터 생성기는 상기 대상 테이블 내의 각 컬럼을 정의하기 위한 메타 데이터인 마스터 컬럼 데이터를 생성하되, 상기 마스터 컬럼 데이터는 상기 테스트 데이터를 생성할 대상 테이블을 구성하는 각 컬럼과 1:1로 매핑하여 상기 테스트 데이터에 대한 생성 규칙 정보를 제공하는 것이 바람직하다.
또한, 상기 테스트 데이터 생성기는 상기 마스터 테이블의 테이블명으로 상기 데이터베이스내의 카타로그 정보를 조회하여 확보된 상기 컬럼의 기본 정보; 및 테스터로부터 입력된 분포 특성 및 조정값;을 반영하여 상기 테스트 데이터를 생성하는 것이 바람직하다.
또한, 상기 메타 데이터 생성기는 상기 각 컬럼의 데이터 분포 정보를 정의하기 위한 메타 데이터인 마스터 분포 데이터를 생성하되, 상기 마스터 분포 데이터는 상기 마스터 컬럼 데이터에 포함되어 있는 확률 개수, 분포 유형 및 분포 모델에 따라 정의되는 것이 바람직하다.
또한, 상기 테스트 데이터 생성기는 상기 마스터 테이블을 읽어 확인된 테이블명 및 컬럼명 정보를 연결 키(key)로 하여 각각의 마스터 컬럼 데이터 및 마스터 분포 데이터를 추출하고 테스트 데이터를 생성하는 것이 바람직하다.
또한, 상기 테스트 데이터 생성기는 상기 테스트 데이터의 레코드를 상기 대상 테이블의 레코드와 동일하게 구성하고, 상기 테스트 데이터의 데이터 딕셔너리 정보를 참조하여 데이터베이스에 레코드셋을 생성하며, 생성 규칙에 따라 컬럼 순서대로 생성을 진행함에 따라 전체 컬럼 데이터가 생성되면 상기 레코드셋을 기반으로 SQL을 생성한 후 개발 진행중인 데이터베이스에 상기 테스트 데이터를 생성하는 것이 바람직하다.
이상과 같은 본 발명은 시스템의 설계 시점에 산출된 데이터베이스의 테이블 구조를 기반으로 하되 대용량의 샘플 데이터가 존재하는 현실 세계의 데이터 분포를 모델링하여 테스트 데이터를 대량 생성한다. 따라서, 현실 세계의 데이터 분포를 모델링한 의미 있는 대용량 테스트 데이터를 자동으로 생성함으로써 시스템 개발 공정의 시간과 비용을 절감할 수 있게 한다.
도 1은 본 발명에 따른 대용량 테스트 데이터 생성장치의 적용 상태를 나타낸 실시예이다.
도 2는 본 발명에 따른 대용량 테스트 데이터 생성장치를 나타낸 구성도이다.
도 3은 본 발명의 메타 데이터에서 생성하는 데이터 테이블의 컬럼 구조를 나타낸 도이다.
도 4는 본 발명의 마스터 테이블을 정의하는 메타데이터 구조를 나타낸 도이다.
도 5는 본 발명의 자동 수집 마스터 컬럼 메타데이터 구조를 나타낸 도이다.
도 6은 본 발명의 수동 생성 마스터 컬럼 메타데이터 구조를 나타낸 도이다.
도 7 내지 도 11은 본 발명의 마스터 분포 메타데이터 구조들을 나타낸 도이다.
도 2는 본 발명에 따른 대용량 테스트 데이터 생성장치를 나타낸 구성도이다.
도 3은 본 발명의 메타 데이터에서 생성하는 데이터 테이블의 컬럼 구조를 나타낸 도이다.
도 4는 본 발명의 마스터 테이블을 정의하는 메타데이터 구조를 나타낸 도이다.
도 5는 본 발명의 자동 수집 마스터 컬럼 메타데이터 구조를 나타낸 도이다.
도 6은 본 발명의 수동 생성 마스터 컬럼 메타데이터 구조를 나타낸 도이다.
도 7 내지 도 11은 본 발명의 마스터 분포 메타데이터 구조들을 나타낸 도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 대용량 테스트 데이터 생성장치에 대해 상세히 설명한다.
먼저, 도 1과 같이 본 발명에 따른 대용량 테스트 데이터 생성장치는 시스템 개발 과정에서 필요한 테스트 데이터를 생성하는 것으로, 시스템 개발에는 신규 소프트웨어의 개발이나 기존의 소프트웨어를 고도화하는 프로젝트 등 다양한 개발 과정을 포함한다.
통상적으로 시스템 개발에는 시스템 분석, 설계, 개발, 테스트, 전환/이행 및 운영 등의 과정을 거치며, 본 발명은 시스템의 '설계' 단계시부터 현실 세계의 데이터 분포를 반영하여 테스트 데이터를 대량 생성하여 '개발'단계에 적용할 수 있게 한다.
즉, 본 발명은 시스템 설계시 현실 세계의 데이터 분포를 반영하도록 코드 데이터, 비코드 데이터, 불균등 데이터 및 균등 데이터를 모두 표현하는 메타 데이터(metadata)를 생성하고, 현실의 데이터 분포가 표현된 메타 데이터를 참조하여 테스트 데이터 생성기에서 대량으로 테스트 데이터(test data)를 생성한다.
또한 테스트 데이터 정보를 제공하는 메타 데이터를 생성시 테스트 데이터가 기록되는 데이터베이스, 예컨대 개발 대상인 데이터베이스의 테이블 특성을 반영하여 메타 데이터를 생성하고 이를 기반으로 테스트 데이터를 생성함으로써 현실의 데이터를 모델링할 수 있게 한다.
이를 위해, 도 2와 같이 본 발명에 따른 대용량 테스트 데이터 생성장치는 시스템 개발 단계에서의 테스트 데이터를 제공하도록 코드 데이터 모듈(10), 비코드 데이터 모듈(20), 불균등 데이터 모듈(30), 균등 데이터 모듈(40), 메타 데이터 생성기(50) 및 테스트 데이터 생성기(60)를 포함한다.
위와 같은 본 발명은 일 예로 신규 소프트웨어의 개발이나 기존의 소프트웨어를 고도화하는 개발자의 PC나 서버 등에 전부나 일부가 구축될 수 있으며 각 기술적 구성들은 중앙처리장치(CPU)의 제어하에 데이터 생성 프로세스를 처리할 수 있다. 또한 장치는 데이터베이스(70)를 포함할 수 있다.
이때, 본 발명은 테스트 데이터 생성시 포함될 데이터 구조를 정의하는 모듈을 포함하는데, 코드 데이터 모듈(10), 비코드 데이터 모듈(20), 불균등 데이터 모듈(30) 및 균등 데이터 모듈(40)은 각각 현실의 시스템에 필요한 데이터를 정의하여 메타 데이터 생성기(50)에 제공한다.
메타 데이터 생성기(50)는 상기 코드 데이터, 비코드 데이터, 불균등 데이터 및 균등 데이터를 모두 표현하는 구조의 메타 데이터를 생성하며, 메타 데이터는 시스템의 데이터베이스를 구성하는 테이블 구조나 컬럼의 정의 역시 포함한다. 테스트 데이터 생성기(60)는 메타 데이터를 참조하여 테스트 데이터를 생성한다.
좀더 구체적으로, 코드 데이터 모듈(10)은 코드(code)로 표현된 코드성 데이터를 정의하여 메타 데이터 생성기(50)에 제공하는 것으로, 코드 데이터는 KOR, 01, SD 등과 같이 코드로 정의되는 데이터를 의미한다.
이러한 코드 데이터는 시스템 개발 중 '설계' 단계(설계 과정)에서 도출되는 데이터로 시스템 구축시 도출되는 코드 데이터를 정의한다. 정의된 코드 데이터는 데이터 모델링이 가능한 표현으로 메타 데이터 생성기(50)에 제공된다.
비코드 데이터 모듈(20)은 비코드(non-code)로 표현된 비코드성 데이터를 정의하는 것으로, 비코드 데이터는 테스트 데이터에 포함되는 데이터 중 상기한 코드 데이터 이외의 일반 데이터를 의미한다.
이와 같은 비코드 데이터 역시 데이터 모델링이 가능한 표현으로 메타 데이터 생성기(50)에 제공되고, 후술하는 바와 같이 메타 데이터 생성기(50)에서는 그 표현들을 모두 포함하여 테스트 데이터 생성기(60)의 참조 데이터로 이용된다.
불균등 데이터 모듈(30)은 데이터 분포가 불균등한 불균등 데이터를 정의하는 것으로, 대용량의 테스트 데이터의 일부로써 데이터 분포가 불균등한 데이터들의 표현을 메타 데이터 생성기(50)에 제공한다.
이때, 불균등 데이터는 도수분포(Frequency Distribution)를 표현하는 자료구조의 이산형 데이터 및 확률분포(Probability Distribution)를 표현하는 자료구조의 연속형 데이터를 포함한다.
이산형의 도수분포는 일 예로 도수분포도인 히스토그램에 따른 데이터를 포함하며 주사위의 눈 개수와 같이 유한한 데이터이다. 이에 비해 연속형의 확률분포 데이터는 확률로 분포 가능하며 버스 도착 시간과 같이 무한한 데이터를 의미한다.
불균등 데이터 모듈(30)에서 제공되는 이산형과 연속형 데이터 표현은 메타 데이터 생성기(50)에 제공됨에 따라 도수분포를 표현하는 자료구조와 확률분포를 표현하는 자료구조를 이용하여 테스트 데이터를 정의한다.
균등 데이터 모듈(40)은 균등 분포된 균등 데이터를 정의하는 것으로, 균등 데이터는 일 예로 난수 생성기(random number generator, RNG)에서 제공하는 데이터 분포(uniform distribution)가 있다.
특히, 본 발명의 균등 데이터 모듈(40)은 상술한 코드 데이터 내에서 무작위(random)로 데이터를 추출하여 균등 데이터를 정의하고, 정의된 균등 데이터의 개수가 균등하게 분포되도록 관리한다.
이를 위해 균등 데이터 모듈(40)은 일 예로 코드 데이터 내에서 무작위로 추출하여 데이터를 생성한 후 그 생성된 데이터 개수 항목을 증가시켜 데이터 개수를 균등하게 조절한다.
다만, 이상에서는 테스트 데이터로서 데이터 형식에 따라 코드 데이터와 비코드 데이터로 분류하고, 데이터 분포에 따라 불균등 데이터와 균등 데이터로 분류하여 각각 별개로 정의하는 것을 예로 들었다.
그러나 데이터 형식으로 분류되는 카테고리와 데이터 분포로 분류되는 카테고리는 서로 중복된 영역에 있을 수 있으며, 어느 하나의 카테고리로 분류되더라도 다른 카테고리의 데이터 특성을 가질 수 있다.
예컨대, 코드 데이터가 불균등이나 균등 데이터 구조에 해당하거나 혹은 비코드 데이터가 불균등이나 균등 데이터 구조에 해당할 수 있으며, 중복되는 부분은 각 모듈에서 정의하는 규칙에 따라 삭제나 분배 과정 등이 이루어질 수 있다.
물론 메타 데이터 생성기(50)에서 이들을 통합 관리하여 코드, 비코드, 불균등 및 균등 데이터를 정의하는 각 모듈들이 데이터를 정의하는 규칙을 변경하도록 명령을 내릴 수도 있다.
한편, 메타 데이터 생성기(50)는 위와 같이 정의된 코드성 데이터, 비코드성 데이터, 불균등 데이터 및 균등 데이터를 모두 표현한 데이터 구조를 포함하는 하나 또는 다수의 메타 데이터를 생성한다.
메타 데이터는 데이터에 관한 구조화된 데이터로 다른 데이터를 설명해 주는 속성정보를 제공한다. 이때 메타 데이터에서 표현하는 다른 데이터에 대한 속성정보는 경우 테스트 데이터를 의미한다.
이와 같은 메타 데이터는 통상적으로 대량의 정보 가운데 찾고 있는 정보를 효율적으로 검색하거나 컴퓨터 내에서 인덱스 역할을 하는데, 특히 본 발명에서는 테스트 데이터 생성기(60)에서 테스트 데이터를 생성하는 정보를 제공하는 것이다.
다만, 메타 데이터 생성기(50)는 시스템 완성시의 현실에 적용되는 데이터 분포를 데이터 모델링(data modeling)하여 코드성, 비코드성, 불균등및 균등 데이터를 각각 선택한 메타 데이터를 생성하는 것이 바람직하다.
현실에 적용되는 데이터 분포로 모델링한다는 의미는 시스템 개발 완료된 후 실제 현실에 적용시의 상황을 가정하여 테스트할 수 있도록 컴퓨터에서 처리 가능한 표현의 데이터를 생성함을 의미한다.
이에 메타 데이터 생성기(50)는 코드성 데이터, 비코드성 데이터, 불균등 데이터 및 균등 데이터를 모두 반영함으로써 테스트 데이터의 종류를 현실에 맞게 구성함과 동시에 이들의 비율이나 개수를 개발 시스템에 맞게 조절한다.
그 후 테스트 데이터 생성기(60)는 메타 데이터를 참조하여 상기 코드성 데이터, 비코드성 데이터, 불균등 데이터 및 균등 데이터가 포함된 테스트 데이터를 생성하여 데이터베이스에 저장하게 된다.
한편, 메타 데이터 생성기(50)는 데이터베이스 내에 저장되는 데이터 테이블의 전체 컬럼 중 성능 또는 기능을 테스트시 DB 서버 언어의 조건절로 사용되는 컬럼에 따라 메타 데이터를 생성하는 것이 바람직하다.
DB 서버의 언어로는 SQL(Structured Query Language)이 대표적이며, SQL 서버에서 성능 또는 기능 테스트시 조건절로 사용되는 컬럼에 따라 메타 데이터를 생성하면, 이를 참조하여 생성되는 테스트 데이터 역시 그 칼럼을 따르게 된다.
도 3과 같이, 데이터 테이블의 전체 컬럼 중 조건절로 사용되는 컬럼은 대표적으로 데이터 타입, 데이터 분포 및 데이터 확률개수를 포함하므로, 이들에 의해 분류된 데이터 구조로 메타 데이터를 생성한다.
데이터 타입은 숫자, 문자 및 날짜 등이 있고, 데이터 분포는 균등과 불균등으로 구분되며, 데이터 확률개수는 연속과 이산으로 구분된다. 연속과 이산은 상술한 바와 같이 각각 확률분포와 도수분포를 나타낸다.
바람직하게 테스트 데이터가 저장되는 데이터베이스는 개발하고자 하는 시스템을 구성하는 데이터베이스로써, 개발중인 데이터베이스를 개발단계부터 참조하면 시스템 개발을 통해 구현되는 데이터베이스의 현실을 반영할 수 있게 된다.
이때, 본 발명의 메타 데이터 생성기(50)는 테스트 데이터가 생성되는 대상 테이블에 대한 정보와, 대상 테이블 내의 각 컬럼에 대한 정보 및 상기 컬럼의 데이터 분포 정보를 포함하는 메타 데이터를 생성한다.
즉, 시스템의 설계 시점에 도출된 현실의 데이터베이스 구조를 반영하도록 해당 데이터베이스의 상위 계층부터 대상 테이블과, 상기 대상 테이블을 구성하는 컬럼(column) 및 상기 컬럼의 데이터 분포를 고려하여 메타 데이터를 생성한다.
또한, 메타 데이터 생성기(50)에서 생성하는 메타 데이터에는 데이터베이스의 대상 테이블을 정의하기 위한 메타 데이터를 포함한다. 본 발명에서는 이러한 메타 데이터를 '마스터 테이블'이라 한다. 또한 마스터 테이블에 기록되는 레코드를 대상 테이블과 1:1로 매핑하여 테스트 데이터의 개수 및 생성 순서를 관리한다.
도 4와 같이, 마스터 테이블의 메타 데이터에는 데이터 개수, 부모 데이블명 및 해당 테이블에 대한 설명을 포함한다. 따라서, 마스터 테이블마다 데이터 개수와 동일한 테스트 데이터가 생성되게 한다. 또한 부모 테이블명은 자식 테이블과의 연결 키로 사용되고, 테이블명은 해당 테이블의 검색에 이용된다.
따라서, 테스트 데이터 생성기(60)는 메타 데이터를 참조하여 데이터베이스의 대상 테이블을 부모 테이블부터 자식 테이블 순서로 생성한다. 동일한 레벨의 자식 테이블인 경우에는 테스트 데이터의 개수가 많은 테이블부터 테스트 데이터의 개수만큼 반복하여 생성한다.
다음, 상술한 메타 데이터 생성기(50)는 대상 테이블 내의 각 컬럼을 정의하기 위한 메타 데이터 역시 생성한다. 본 발명에서는 이러한 메타 데이터를 '마스터 컬럼 데이터'라 한다.
마스터 컬럼 데이터는 테스트 데이터를 생성할 대상 테이블을 구성하는 각 컬럼과 1:1로 매핑되도록 구성함으로써 테스트 데이터에 대한 생성 규칙 정보를 테스트 데이터 생성기(60)에 제공한다.
도 5는 자동 수집된 마스터 컬럼 메타 데이터의 구조를 예시한 것으로, 도시된 바와 같이 동일한 대상 테이블(예: 'CUSTOMER') 내에 ID, NAME, AGE, GU 및 INCOME 등과 같은 다수의 컬럼이 제공된다.
이때, 대상 테이블에 포함되는 다수의 컬럼들은 각각 테이터 타입, 길이, 널 허용 여부, 최소값, 최대값 및 고유 데이터 개수 등과 같은 생성 규칙을 규정함으로써, 해당 생성 규칙에 따르는 테스트 데이터가 생성되게 한다.
도 6은 수동 생성된 마스터 컬럼 메타 데이터의 구조를 예시한 것으로, 각각의 컬럼들은 확률개수, 데이터 분포유형, 분포모델 및 컬럼 정의 등과 같은 생성 규칙을 정의하여, 해당 생성 규칙에 따라 테스트 데이터를 생성되게 한다.
이때, 테스트 데이터 생성기(60)는 마스터 테이블의 테이블명으로 데이터베이스내의 카타로그 정보를 조회하고, 이를 통해 확보된 컬럼의 기본 정보는 물론, 테스터(tester)로부터 입력된 분포 특성과 조정값을 반영하여 테스트 데이터를 생성한다.
기본 정보는 도 5에서 살펴본 바와 같이 컬럼명을 비롯하여 테이터 타입, 길이, 널 허용 여부, 최소값, 최대값 및 고유 데이터 개수를 포함한다. 그 중 최소값, 최대값 및 고유 데이터 개수는 상황에 따라 부정확하거나 사용할 수 없는 경구가 있으므로 이를 체크하여 보정할 수 있다.
또한 도 6에서 살펴본 바와 같이 확률개수, 데이터 분포유형 및 분포모델은 분포 특성 및 조정값을 나타내는 것으로, 개발중인 시스템을 반영한 테스트 데이터의 생성 계획에 따라 설정된 값으로 입력될 수 있다.
이때, 테스트 데이터 생성기(60)는 마스터 테이블을 읽어 확인된 테이블명 및 컬럼명 정보를 연결 키(key, 식별 키)로 하여 각각의 마스터 컬럼 데이터 및 마스터 분포 데이터를 추출하고 테스트 데이터를 생성할 수 있다.
연결 키(식별 키)에는 테이블을 식별하는 테이블 ID(테이블 명칭)를 비롯하여 각각의 테이블 내의 정보에 할당되는 기본키(PK: Primary Key) 및 외래키(FK: Foreign Key)를 포함할 수 있다.
일 예로 테이블에 할당된 기본키는 외부 테이블에 있는 외래키에 연결되고, 해당 식별키들에 대한 키 정보가 연결 테이블 관리기에 의해 관리됨에 따라 테이블간 링크가 이루어질 수 있다.
또한, 메타 데이터 생성기(50)는 대상 테이블 내에 있는 각 컬럼의 데이터 분포 정보를 정의하기 위한 메타 데이터인 '마스터 분포 데이터'를 생성할 수 있다.
이러한 마스터 분포 데이터는 상술한 마스터 컬럼 데이터에 포함되어 있는 확률 개수, 분포 유형 및 분포 모델에 따라 정의된다.
도 7 내지 도 11은 각 칼럼에 대한 데이터 분포 정의를 예시한 것으로, 도 7과 같이 연속(혼합 연속 포함) 데이터 구조나, 도 8과 같은 램덤 문자 데이터 구조 및 도 9와 같은 도수분포 데이터 구조를 정의할 수 있다.
또한, 도 10과 같이 이산형이나 연속형 데이터 구조에 대해 정규 분포의 데이터 구조를 정의할 수 있으며, 도 11과 같이 랜덤 코드 데이터 구조 역시 정의할 수 있다.
위와 같이 테스트 데이터 생성기(60)는 생성된 메타 데이터에서 표현하는 데이터 구조나 정의를 참조하고 이를 기반으로 시스템의 데이터베이스에 기록될 테스트 데이터를 생성한다.
또한, 테스트 데이터 생성기(60)는 테스트 데이터의 레코드를 대상 테이블의 레코드와 동일하게 구성하고, 테스트 데이터의 데이터 딕셔너리 정보를 참조하여 데이터베이스에 레코드셋을 생성한다.
또한, 생성 규칙에 따라 컬럼 순서대로 생성을 진행하여 전체 컬럼 데이터가 생성되면 레코드셋을 기반으로 SQL을 생성한 후 개발 진행중인 데이터베이스에 테스트 데이터를 생성함으로써 현실이 반영된 테스트 데이터를 제공한다.
연구에 따르면 테스트 단계는 전체 SW개발 공정에서 40%의 시간과 비용을 소요하며, 테스트 계획 수립, 테스트 설계, 테스트 데이터 생성, 테스트 수행 및 테스트 평가 등으로 구성된다.
그럼에도 종래에는 수동으로 소량의 테스트 데이터만을 생성하였기 때문에 테스트 시간과 비용의 약 30 ~ 40%만 테스트 데이터 생성에 사용한다.
반면, 본 발명은 현실 세계의 데이터 분포를 모델링한 의미있는 대용량 테스트 데이터를 자동으로 생성하여 SW 개발 공정의 시간과 비용을 절감할 수 있게 한다.
이상, 본 발명의 특정 실시예에 대하여 상술하였다. 그러나, 본 발명의 사상 및 범위는 이러한 특정 실시예에 한정되는 것이 아니라, 본 발명의 요지를 변경하지 않는 범위 내에서 다양하게 수정 및 변형 가능하다는 것을 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 것이다.
따라서, 이상에서 기술한 실시예들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이므로, 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 하며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
10: 코드 데이터 모듈
20: 비코드 데이터 모듈
30: 불균등 데이터 모듈
40: 균등 데이터 모듈
50: 메타 데이터 생성기
60: 테스트 데이터 생성기
20: 비코드 데이터 모듈
30: 불균등 데이터 모듈
40: 균등 데이터 모듈
50: 메타 데이터 생성기
60: 테스트 데이터 생성기
Claims (15)
- 시스템 개발 단계에서 필요한 테스트 데이터를 제공하는 대용량 테스트 데이터 생성 장치에 있어서,
코드(code)로 표현된 코드성 데이터를 정의하는 코드 데이터 모듈(10)과;
비코드(non-code)로 표현된 비코드성 데이터를 정의하는 비코드 데이터 모듈(20)과;
불균등 분포된 불균등 데이터를 정의하는 불균등 데이터 모듈(30)과;
균등 분포된 균등 데이터를 정의하는 균등 데이터 모듈(40)과;
상기 정의된 코드성 데이터, 비코드성 데이터, 불균등 데이터 및 균등 데이터를 표현한 구조의 메타 데이터를 생성하는 메타 데이터 생성기(50); 및
상기 메타 데이터를 참조하여 상기 코드성 데이터, 비코드성 데이터, 불균등 데이터 및 균등 데이터가 포함된 테스트 데이터를 생성하여 데이터베이스에 저장하는 테스트 데이터 생성기(60);를 포함하는 것을 특징으로 하는 대용량 테스트 데이터 생성장치. - 제1항에 있어서,
상기 코드 데이터 모듈(10)은,
시스템 설계 과정에서 도출된 코드 데이터를 입력받아 정의하고, 상기 정의된 코드 데이터의 표현을 상기 메타 데이터 생성기(50)에 제공하는 것을 특징으로 하는 대용량 테스트 데이터 생성장치. - 제1항에 있어서,
상기 비코드 데이터 모듈(20)은,
상기 코드 데이터 이외의 일반 데이터를 비코드 데이터로 정의하고, 상기 정의된 비코드 데이터의 표현을 상기 메타 데이터 생성기(50)에 제공하는 것을 특징으로 하는 대용량 테스트 데이터 생성장치. - 제1항에 있어서,
상기 불균등 데이터 모듈(30)은,
도수분포(Frequency Distribution)를 표현하는 자료구조의 이산형 데이터 및 확률분포(Probability Distribution)를 표현하는 자료구조의 연속형 데이터를 각각 정의하여 상기 메타 데이터 생성기(50)에 제공하는 것을 특징으로 하는 대용량 테스트 데이터 생성장치. - 제1항에 있어서,
상기 균등 데이터 모듈(40)은,
상기 코드 데이터 내에서 무작위(random)로 데이터를 추출하여 균등 데이터를 정의하여 상기 메타 데이터 생성기(50)에 제공하되, 상기 정의된 균등 데이터의 개수가 균등하게 분포되도록 관리하는 것을 특징으로 하는 대용량 테스트 데이터 생성장치. - 제1항에 있어서,
상기 메타 데이터 생성기(50)는,
상기 시스템 완성시의 현실에 적용되는 데이터 분포를 데이터 모델링(data modeling)하여 상기 코드성 데이터, 비코드성 데이터, 불균등 데이터 및 균등 데이터를 각각 선택한 메타 데이터를 생성하는 것을 특징으로 하는 대용량 테스트 데이터 생성장치. - 제6항에 있어서,
상기 메타 데이터 생성기(50)는,
상기 데이터베이스 내에 저장되는 데이터 테이블의 전체 컬럼 중 성능 또는 기능을 테스트시 DB 서버 언어의 조건절로 사용되는 컬럼의 데이터 타입, 데이터 분포 및 데이터 확률개수에 따라 상기 테스트 데이터를 분류하여 표현하는 것을 특징으로 하는 대용량 테스트 데이터 생성장치. - 제7항에 있어서,
상기 메타 데이터 생성기(50)는,
상기 테스트 데이터가 생성되는 대상 테이블에 대한 정보와;
상기 대상 테이블 내의 각 컬럼에 대한 정보; 및
상기 컬럼의 데이터 분포 정보;를 포함하는 메타 데이터를 생성하는 것을 특징으로 하는 대용량 테스트 데이터 생성장치. - 제8항에 있어서,
상기 메타 데이터 생성기(50)는,
상기 대상 테이블을 정의하기 위한 메타 데이터인 마스터 테이블을 생성하되,
상기 마스터 테이블에 기록된 레코드는 상기 대상 테이블과 1:1로 매핑하여 테스트 데이터의 개수 및 생성 순서를 관리하는 것을 특징으로 하는 대용량 테스트 데이터 생성장치. - 제9항에 있어서,
상기 테스트 데이터 생성기(60)는,
상기 대상 테이블을 부모 테이블부터 자식 테이블 순서로 생성하되 동일한 레벨의 자식 테이블인 경우 테스트 데이터의 개수가 많은 테이블부터 테스트 데이터의 개수만큼 반복하여 생성하는 것을 특징으로 하는 대용량 테스트 데이터 생성장치. - 제10항에 있어서,
상기 메타 데이터 생성기(50)는,
상기 대상 테이블 내의 각 컬럼을 정의하기 위한 메타 데이터인 마스터 컬럼 데이터를 생성하되,
상기 마스터 컬럼 데이터는 상기 테스트 데이터를 생성할 대상 테이블을 구성하는 각 컬럼과 1:1로 매핑하여 상기 테스트 데이터에 대한 생성 규칙 정보를 제공하는 것을 특징으로 하는 대용량 테스트 데이터 생성장치. - 제11항에 있어서,
상기 테스트 데이터 생성기(60)는,
상기 마스터 테이블의 테이블명으로 상기 데이터베이스내의 카타로그 정보를 조회하여 확보된 상기 컬럼의 기본 정보; 및
테스터로부터 입력된 분포 특성 및 조정값;을 반영하여 상기 테스트 데이터를 생성하는 것을 특징으로 하는 대용량 테스트 데이터 생성장치. - 제12항에 있어서,
상기 메타 데이터 생성기(50)는,
상기 각 컬럼의 데이터 분포 정보를 정의하기 위한 메타 데이터인 마스터 분포 데이터를 생성하되,
상기 마스터 분포 데이터는 상기 마스터 컬럼 데이터에 포함되어 있는 확률 개수, 분포 유형 및 분포 모델에 따라 정의되는 것을 특징으로 하는 대용량 테스트 데이터 생성장치. - 제13항에 있어서,
상기 테스트 데이터 생성기(60)는,
상기 마스터 테이블을 읽어 확인된 테이블명 및 컬럼명 정보를 연결 키(key)로 하여 각각의 마스터 컬럼 데이터 및 마스터 분포 데이터를 추출하고 테스트 데이터를 생성하는 것을 특징으로 하는 대용량 테스트 데이터 생성장치. - 제14항에 있어서,
상기 테스트 데이터 생성기(60)는,
상기 테스트 데이터의 레코드를 상기 대상 테이블의 레코드와 동일하게 구성하고,
상기 테스트 데이터의 데이터 딕셔너리 정보를 참조하여 데이터베이스에 레코드셋을 생성하며,
생성 규칙에 따라 컬럼 순서대로 생성을 진행함에 따라 전체 컬럼 데이터가 생성되면 상기 레코드셋을 기반으로 SQL을 생성한 후 개발 진행중인 데이터베이스에 상기 테스트 데이터를 생성하는 것을 특징으로 하는 대용량 테스트 데이터 생성장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200043860A KR102276290B1 (ko) | 2020-04-10 | 2020-04-10 | 대용량 테스트 데이터 생성장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200043860A KR102276290B1 (ko) | 2020-04-10 | 2020-04-10 | 대용량 테스트 데이터 생성장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102276290B1 true KR102276290B1 (ko) | 2021-07-12 |
Family
ID=76859240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200043860A KR102276290B1 (ko) | 2020-04-10 | 2020-04-10 | 대용량 테스트 데이터 생성장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102276290B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001256076A (ja) * | 2000-03-08 | 2001-09-21 | Ricoh Co Ltd | テストデータ生成装置、テストデータ生成方法及び記録媒体 |
KR100421253B1 (ko) * | 2000-10-30 | 2004-03-11 | 성기웅 | 가상 통계적 분포 정보 생성 및 이를 기반으로 한데이터베이스 시험용 데이터 생성 및 시험 방법 |
KR20120039616A (ko) | 2009-06-10 | 2012-04-25 | 아브 이니티오 테크놀로지 엘엘시 | 테스트 데이터의 생성 |
JP2017068293A (ja) * | 2015-09-28 | 2017-04-06 | 株式会社日立製作所 | テストdbデータ生成方法及び装置 |
-
2020
- 2020-04-10 KR KR1020200043860A patent/KR102276290B1/ko active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001256076A (ja) * | 2000-03-08 | 2001-09-21 | Ricoh Co Ltd | テストデータ生成装置、テストデータ生成方法及び記録媒体 |
KR100421253B1 (ko) * | 2000-10-30 | 2004-03-11 | 성기웅 | 가상 통계적 분포 정보 생성 및 이를 기반으로 한데이터베이스 시험용 데이터 생성 및 시험 방법 |
KR20120039616A (ko) | 2009-06-10 | 2012-04-25 | 아브 이니티오 테크놀로지 엘엘시 | 테스트 데이터의 생성 |
KR20150040384A (ko) | 2009-06-10 | 2015-04-14 | 아브 이니티오 테크놀로지 엘엘시 | 테스트 데이터의 생성 |
JP2017068293A (ja) * | 2015-09-28 | 2017-04-06 | 株式会社日立製作所 | テストdbデータ生成方法及び装置 |
Non-Patent Citations (1)
Title |
---|
논문1(2006.09.15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8112448B2 (en) | Table classification device, table classification method, and table classification program | |
US7933932B2 (en) | Statistics based database population | |
US11386086B2 (en) | Permutation-based machine learning for database query optimization | |
CN110795455A (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
US7203671B1 (en) | System and method for validating the technical correctness of an OLAP reporting project | |
CN112328499A (zh) | 一种测试数据生成方法、装置、设备及介质 | |
CN104541297A (zh) | 销售预测器(spe)的可扩展性 | |
CN110083617B (zh) | 一种ddl语句的处理方法、装置、电子设备和介质 | |
JP5651050B2 (ja) | データ生成装置及びデータ生成プログラム | |
CN114781342A (zh) | 用于石化行业的报表生成方法、装置、设备和存储介质 | |
US7559048B1 (en) | System and method for managing objects between projects | |
KR102276290B1 (ko) | 대용량 테스트 데이터 생성장치 | |
CN112579604A (zh) | 测试***的造数方法、装置、设备及存储介质 | |
CN116842076A (zh) | 一种数据分析方法、装置、分析设备及可读存储介质 | |
US11086747B2 (en) | Benchmark software system and method | |
CN112464636B (zh) | 约束文件的比较方法、装置、电子设备和存储介质 | |
CN114676155A (zh) | 代码提示信息的确定方法、数据集的确定方法及电子设备 | |
GB2351367A (en) | Generating code for processing a database | |
CN116627390B (zh) | 航空软件开发中icd文件的替代方法及装置 | |
KR100656559B1 (ko) | Bibd 방법론을 이용하는 프로그램 자동 개발 장치 | |
CN117389986A (zh) | 数据库兼容性评估方法、装置、电子设备及存储介质 | |
CN118363600A (zh) | 一种软件开发方法及程序生成*** | |
CN116662191A (zh) | 数据测试方法、装置、计算机设备和存储介质 | |
CN114610809A (zh) | 电网数据结构化处理方法及装置 | |
CN117520631A (zh) | 一种基于大数据z+平台的z+作业优化方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |