KR102026662B1 - 프로세서 검증을 위한 테스트 케이스 생성 장치 및 방법과, 검증장치 - Google Patents
프로세서 검증을 위한 테스트 케이스 생성 장치 및 방법과, 검증장치 Download PDFInfo
- Publication number
- KR102026662B1 KR102026662B1 KR1020130044434A KR20130044434A KR102026662B1 KR 102026662 B1 KR102026662 B1 KR 102026662B1 KR 1020130044434 A KR1020130044434 A KR 1020130044434A KR 20130044434 A KR20130044434 A KR 20130044434A KR 102026662 B1 KR102026662 B1 KR 102026662B1
- Authority
- KR
- South Korea
- Prior art keywords
- verification
- constraint
- test case
- space
- generating
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- 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
-
- 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
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
프로세서의 검증을 위하여 중복 없는 테스트 케이스를 생성하는 장치에 관한 것으로, 일 실시예에 따르면, 전체 검증 공간(total verification space)에서 복수의 제약 검증 공간(constrained verification space)을 정의하고, 복수의 제약 검증 공간 각각에 대하여 제약 조건 기술(constrined description)을 생성하는 제약조건생성부 및 제약 조건 기술을 이용하여 테스트 케이스를 생성하는 테스트케이스생성부를 포함할 수 있다.
Description
프로세서의 검증을 위하여 테스트 케이스를 생성하는 장치 및 방법과, 그 프로세서를 검증하는 장치에 관한 것이다.
프로세서 검증을 위한 랜덤 테스트 케이스 생성기(random test case generator)는 랜덤한 테스트 케이스(예: 테스트 프로그램)를 무수히 만들어 타겟 디자인을 테스트하는 역할을 한다. 하지만, 일반적인 랜덤 테스트 케이스 생성기는 프로세서 상태에서 볼 때 이미 테스트가 된 중복된 테스트 케이스를 만들어 낼 확률이 매우 높다. 이로 인해, 외형적으로는 다른 테스트이나 기능적으로는 동일하거나 비슷한 중복 테스트가 이루어져 검증 프로세서의 효율이 감소하는 문제가 있다.
프로세서 검증을 위한 랜덤 테스트 케이스 생성시 중복된 테스트 케이스가 생성되는 것을 방지하는 랜덤 테스트 케이스 생성 장치 및 방법과, 그 랜덤 테스트 케이스 생성 기술을 이용하여 검증을 수행함으로써 검증 프로세서의 효율을 증가시키는 검증 장치를 제공하기 위함이다.
일 양상에 따르면, 테스트 케이스 생성 장치는 전체 검증 공간(total verification space)에서 복수의 제약 검증 공간(constrained verification space)을 정의하고, 복수의 제약 검증 공간 각각에 대하여 제약 조건 기술(constrined description)을 생성하는 제약조건생성부 및 제약 조건 기술을 이용하여 테스트 케이스를 생성하는 테스트케이스생성부를 포함할 수 있다.
또한, 테스트 케이스 생성 장치는 아키텍처 명세(architecture specification)를 이용하여 전체 검증 공간을 정의하고, 전체 검증 공간에 대한 아키텍처 기술(architecture description)을 생성하는 아키텍처생성부를 더 포함할 수 있다.
이때, 아키텍처 명세는 인스트럭션(instruction), 오퍼랜드(operand), 인스트럭션 순서(instruction sequence) 및 인터럽트(interrupt) 정보 중의 하나 이상을 포함할 수 있다.
아키텍처생성부는 아키텍처 명세에 포함된 정보 중의 둘 이상을 조합하여 전체 검증 공간을 다차원으로 정의할 수 있다.
제약조건생성부는 전체 검증 공간의 사이즈, 테스트의 목적 및 시간 중의 하나 이상을 고려하여 전체 검증 공간에서 복수의 제약 검증 공간을 정의할 수 있다.
제약조건생성부는 제약 검증 공간 각각에 대한 제약 조건 기술을 순차적으로 생성할 수 있다.
테스트케이스생성부는 테스트 케이스가 중복되지 않도록 복수의 제약 검증 공간 각각에서 하나씩의 랜덤 테스트 케이스를 생성할 수 있다.
일 양상에 따르면, 테스트 케이스 생성 방법은 전체 검증 공간(total verification space)에서 복수의 제약 검증 공간(constrained verification space)을 정의하는 단계, 제약 검증 공간 각각에 대하여 제약 조건 기술(constrined description)을 생성하는 단계 및 제약 조건 기술을 이용하여 테스트 케이스를 생성하는 단계를 포함할 수 있다.
또한, 테스트 케이스 생성 방법은 아키텍처 명세(architecture specification)를 이용하여 전체 검증 공간을 정의하는 단계 및 전체 검증 공간에 대한 아키텍처 기술(architecture description)을 생성하는 단계를 더 포함할 수 있다.
이때, 아키텍처 명세는 인스트럭션(instruction), 오퍼랜드(operand), 인스트럭션 순서(instruction sequence) 및 인터럽트(interrupt) 정보 중의 하나 이상을 포함할 수 있다.
전체 검증 공간 정의 단계는 아키텍처 명세에 포함된 정보 중의 둘 이상을 조합하여 전체 검증 공간을 다차원으로 정의할 수 있다.
제약 검증 공간 정의 단계는 전체 검증 공간의 사이즈, 테스트의 목적 및 시간 중의 하나 이상을 고려하여 전체 검증 공간에서 복수의 제약 검증 공간을 정의할 수 있다.
제약 조건 기술 생성 단계는 제약 검증 공간 각각에 대한 제약 조건 기술을 순차적으로 생성할 수 있다.
테스트 케이스 생성 단계는 테스트 케이스가 중복되지 않도록 복수의 제약 검증 공간 각각에서 하나씩의 랜덤 테스트 케이스를 생성할 수 있다.
일 양상에 따르면, 프로세서 검증 장치는 프로세서의 전체 검증 공간(total verification space)에서 복수의 제약 검증 공간(constrained verification space)을 정의하고, 각 제약 검증 공간에서 랜덤 테스트 케이스를 생성하는 검증지원부 및 각 제약 검증 공간에서 생성된 테스트 케이스를 시뮬레이션하고, 그 시뮬레이션 결과를 기초로 프로세서를 검증하는 검증부를 포함할 수 있다.
검증지원부는 인스트럭션(instruction), 오퍼랜드(operand), 인스트럭션 순서(instruction sequence) 및 인터럽트(interrupt) 정보 중의 하나 이상을 포함하는 아키텍처 명세(specification)를 이용하여 전체 검증 공간을 정의할 수 있다.
검증지원부는 전체 검증 공간의 사이즈, 테스트의 목적 및 시간 중의 하나 이상을 고려하여 전체 검증 공간에서 복수의 제약 검증 공간을 정의할 수 있다.
검증부는 생성된 테스트 케이스에 대한 레퍼런스를 생성하고 시뮬레이션 결과와 레퍼런스를 비교하여 프로세서를 검증할 수 있다.
프로세서 검증을 위한 랜덤 테스트 케이스 생성시 중복된 테스트 케이스가 생성되는 것을 방지하고 테스트 목적 등에 따라 원하는 특정 분포에서의 테스트 케이스를 생성할 수 있어 검증 프로세서의 효율을 증가시킬 수 있다.
도 1은 일 실시예에 따른 테스트 케이스 생성 장치의 블록도이다.
도 2는 일 실시예에 따른 전체 검증 공간의 예이다.
도 3은 일 실시예에 따른 테스트 케이스 생성 방법의 흐름도이다.
도 4는 일 실시예에 따른 검증장치의 블록도이다.
도 2는 일 실시예에 따른 전체 검증 공간의 예이다.
도 3은 일 실시예에 따른 테스트 케이스 생성 방법의 흐름도이다.
도 4는 일 실시예에 따른 검증장치의 블록도이다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다. 기재된 기술의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 프로세서 검증을 위한 테스트 케이스 생성 장치 및 방법과, 검증장치의 실시예들을 도면들을 참고하여 자세히 설명하도록 한다.
도 1은 일 실시예에 따른 테스트 케이스 생성 장치의 블록도이다. 도 2는 일 실시예에 따라 전체 검증 공간의 예이다.
도 1 및 도 2를 참조하면, 일 실시예에 따른 테스트 케이스 생성 장치(100)는 아키텍처생성부(110),제약조건생성부(120) 및 테스트케이스생성부(130)를 포함한다.
아키텍처생성부(110)는 아키텍처 명세(architecture specification)를 이용하여 프로세서를 검증하기 위한 전체 검증 공간(total verification space)(20)을 정의한다. 아키텍처 명세는 인스트럭션(instruction), 인스트럭션의 오퍼랜드, 각 인스트럭션의 순서 및 인터럽트 등 프로세서에 대한 각종 정보를 포함할 수 있다. 아키텍처생성부(110)는 아키텍처 명세를 이용하여 프로세서에 대해 정의된 다양한 정보들을 확인하고, 그 다양한 정보들 중에서 필요에 따라 전부 또는 일부를 활용하여 전체 검증 공간(20)을 정의할 수 있다.
예를 들어, 도 2에 도시된 바와 같이, 아키텍처생성부(110)는 아키텍처 명세에 포함된 각종 정보들 중에서 3 개의 정보 예컨대, 인스트럭션, 오퍼랜드 및 인스트럭션 순서 정보를 이용하여 3차원으로 전체 검증 공간(20)을 정의할 수 있다. 이와 같이, 아키텍처생성부(110)는 테스트 목적 등에 따라 적절한 수의 정보를 활용하여 다차원으로 전체 검증 공간(20)을 정의하는 것이 가능하다.
한편, 아키텍처생성부(110)는 도 2에 도시된 바와 같이 전체 검증 공간(20)이 정의되면, 그 정의된 전체 검증 공간(20)에 대하여 미리 정의된 프로그래밍 언어(예: C 언어)로 기록하여 아키텍처 기술(architecture description)을 생성할 수 있다. 생성된 아키텍처 기술은 후술하는 바와 같이 제약조건생성부(110)의 입력이 되어 제약 검증 공간(constrained verification space)을 정의하는데 활용될 수 있다.
도 2를 참조하면, 제약조건생성부(120)는 아키텍처생성부(110)에서 정의된 전체 검증 공간(20)에서 복수의 제약 검증 공간(25)을 정의할 수 있다. 제약조건생성부(120)는 정의된 전체 검증 공간(20)에 대해서 기록된 아키텍처 기술을 이용하여 전체 검증할 공간(20)을 확인하고, 그 전체 검증할 공간(20)에서 테스트 케이스를 랜덤하게 생성하기 위한 제약 검증 공간(25)을 적어도 둘 이상으로 정의할 수 있다. 이때, 제약조건생성부(120)는 전체 검증 공간(20)의 사이즈, 테스트의 목적, 테스트할 시간 등을 고려하여 적절한 수로 제약 검증 공간(25)을 정의할 있다.
예를 들어, 전체 검증 공간(20)의 사이즈가 너무 커서 테스트의 시간이 오래 걸릴 것으로 예상되면 제약 검증 공간(25)을 비교적 적은 수로 정의함으로써 후술하는 바와 같이 테스트케이스생성부(130)가 생성하는 랜덤 테스트 케이스의 수를 조절할 수 있다. 또는, 테스트의 목적에 따라 제약 검증 공간(25)의 수를 조절할 수 있다. 예컨대, 정확한 테스트를 하고자 하는 경우에는 제약 검증 공간(25)을 비교적 많은 수로 정의하고, 비교적 간단한 테스트를 수행하고자 하는 경우에는 제약 검증 공간(25)의 수를 비교적 적게 정의할 수 있다. 마찬가지로, 테스트하고자 하는 전체 시간에 따라 적절하게 제약 검증 공간(25)의 수를 조절할 수 있다.
도 2를 참조하면, 전체 검증 공간(20)을 균등하게 1000개로 분할하여 1000개의 제약 검증 공간(25)이 정의된 것을 알 수 있다. 이와 같이, 제약조건생성부(120)는 전체 검증 공간(20)을 적절한 수로 균등하게 분할하여 제약 검증 공간(25)을 정의함으로써, 전체 검증 공간(20)에 대해 균일한 랜덤 테스트 케이스 생성할 수 있고 이를 통해 전체 검증 공간(20)을 골고루 테스트하는 것이 가능하다.
또한, 전체 검증 공간(20)의 특정 분포에서는 보다 정확한 테스트가 이루어지도록 그 특정 분포에 해당하는 공간은 간격을 좁게 분할함으로써 상대적으로 많은 제약 검증 공간을 정의하고, 나머지 분포에서는 보다 간단한 테스트가 이루어지도록 분할 간격을 넓게 하여 상대적으로 적은 수의 제약 검증 공간을 정의할 수 있다.
또한, 제약조건생성부(120)는 테스트 목적 등 필요에 따라 전체 검증 공간(20)의 특정 분포에 대해서만 테스트를 수행할 수 있도록 전체 검증 공간(20)의 일부 공간에서 제약 검증 공간(25)을 생성하는 것이 가능하다.
제약조건생성부(120)는 복수의 제약 검증 공간(25)이 정의되면, 각 제약 검증 공간(25)에 대하여 제약 조건 기술(constrained description)을 생성할 수 있다. 제약 조건 기술은 C 프로그래밍 언어와 같이 미리 정의된 제약 명세 언어(constrained specification language)로 작성되어 생성될 수 있다. 이때, 제약조건생성부(120)는 복수의 제약 검증 공간(25)에 대한 제약 조건 기술을 순차적으로 생성할 수 있으며, 생성된 제약 조건 기술은 테스트케이스생성부(130)로 순차적으로 입력될 수 있다.
아래의 표 1은 생성된 제약 조건 기술의 일 예이다.
void CSL::CCEGenerator::CSL_main(unsigned int seed, string outputPath) { RandomVLIWSchedule s; AppendSchedule(s); s.Add(NofOperationConstraint(opnum)); RandomOperationGenerator*rog = new RandomOperationGenerator(); rog->SetDefaultWeight(0); rog->Add(OperationGroup("add"),Operand(0x00000000,0x11111111),Instsequence(3)); s.SetGlobalGeneratior(rog); Emit(); } |
표 1에서 제약 검증 공간이 정의된 부분(여덟 번째 라인)을 참조하면, 인스트럭션이 "add" 연산 그룹이고, 오퍼랜드가 0x00000000에서 0x11111111까지의 범위이며, 인스트럭션 순서는 "add" 연산 그룹에서 임의의 3개의 연산을 조합하는 경우로 어느 제약 검증 공간이 정의된 것을 알 수 있다.
테스트케이스생성부(130)는 생성된 아키텍처 기술을 이용하여 전체 검증 공간(20)을 파악할 수 있다. 또한, 생성된 제약 조건 기술을 이용하여 랜덤한 테스트 케이스(10)를 생성할 제약 검증 공간을 확인하고, 생성될 테스트 케이스(10)가 서로 중복되지 않도록 각 제약 검증 공간에서 하나 이상의 랜덤 테스트 케이스(10)를 생성할 수 있다.
예를 들어, 테스트케이스생성부(130)는 제약조건생성부(120)로부터 순차적으로 입력되는 제약 조건 기술을 이용하여, 제약 검증 공간(25)을 확인하고, 그 제약 검증 공간(25)에서 랜덤하게 하나의 테스트 케이스(10)를 생성할 수 있다. 이와 같이, 테스트케이스생성부(130)가 순차적으로 각 제약 검증 공간(25)에서 하나의 랜덤한 테스트 케이스(10)를 생성함으로써 전체 생성된 테스트 케이스(10) 간에는 서로 중복되지 않는다.
하지만, 반드시 어느 하나의 제약 검증 공간(25)에서 하나의 랜덤한 테스트 케이스만을 생성하는 것은 아니며, 테스트케이스생성부(130)는 필요에 따라 테스트 케이스가 서로 최대한 중복되지 않도록 어느 하나의 제약 검증 공간(25)에서 둘 이상의 테스트 케이스를 생성할 수도 있다.
개시된 실시예에 따르면, 서로 중복되지 않는 제약 검증 공간 각각에서 하나 또는 둘 이상의 중복되지 않는 테스트 케이스를 생성하므로 테스트를 수행할 때 중복될 가능성이 없어 검증 프로세서의 효율이 증가되고, 실제 테스트 수행 전 단계에서 중복 없는 랜덤 테스트 케이스가 생성되므로 테스트 케이스 간에 의존 관계가 존재하지 않게 되어 전체 검증 프로세서를 병렬화하는 것이 가능하다.
도 3은 일 실시예에 따른 테스트 케이스 생성 방법의 흐름도이다. 도 3은 도 1의 실시예에 따른 테스트 케이스 생성 장치(100)에 의해 수행될 수 있다.
도 3을 참조하면, 테스트 케이스 생성 방법은 먼저, 아키텍처 명세를 이용하여 프로세서를 검증하기 위한 전체 검증 공간을 정의할 수 있다(단계 301). 전술한 바와 같이, 인스트럭션(instruction), 인스트럭션의 오퍼랜드, 각 인스트럭션의 순서 및 인터럽트 정보 등 프로세서에 대해 정의된 아키텍처 명세를 이용하여 프로세서를 검증하기 위한 전체 검증 공간을 정의할 수 있다.
이후, 전체 검증 공간이 정의되면, 그 정의된 전체 검증 공간에 대하여 아키텍처 기술을 생성할 수 있다(단계 302). 이때, 아키텍처 기술은 미리 정의된 프로그래밍 언어(예: C 언어)로 작성될 수 있다.
그 다음, 생성된 아키텍처 기술을 이용하여 전체 검증 공간을 확인하고, 그 전체 검증 공간에서 복수의 제약 검증 공간을 정의할 수 있다(단계 303). 예를 들어, 테스트 목적이 비교적 간단한 테스트를 수행하고자 하는 경우에 상대적으로 적은 수로 제약 검증 공간을 정의하고, 상대적으로 정확한 테스트를 수행하고자 하는 경우에는 보다 많은 수의 제약 검증 공간을 정의할 수 있다. 마찬가지로, 전체 검증 공간의 사이즈, 총 테스트 시간 등을 고려하여 적절한 수로 제약 검증 공간을 정의하는 것도 가능하다.
한편, 전술한 바에서도 알 수 있듯이, 일 예에 따르면, 제약 검증 공간은 전체 검증 공간의 전체를 미리 정의된 간격으로 균등하게 분할함으로써 전체 검증 공간에 대한 균등한 테스트가 이루어지도록 할 수 있으며, 다른 예에 따르면, 전체 검증 공간 중의 특정 분포에서 집중 테스트가 이루어지도록 그 특정 분포에 해당하는 공간을 좁은 간격으로 분할하여 제약 검증 공간을 생성할 수도 있다. 또는, 다른 예에 따르면 전체 검증 공간의 특정 분포는 비교적 좁은 간격으로 분할하여 제약 검증 공간을 생성함으로써 보다 집중적으로 테스트가 이루어지도록 하고, 나머지 분포는 비교적 넓은 간격으로 분할하여 상대적으로 간단한 테스트가 이루어지도록 할 수도 있다.
그 다음, 복수의 제약 검증 공간이 정의되면 각 제약 검증 공간에 대하여 제약 조건 기술을 생성할 수 있다(단계 304). 제약 조건 기술은 표 1에 예시된 바와 같이 미리 정의된 제약 명세 언어로 작성될 수 있다. 이때, 복수의 제약 검증 공간에 대한 제약 조건 기술은 순차적으로 생성될 수 있다.
이후, 생성된 제약 조건 기술을 이용하여 랜덤 테스트 케이스를 생성할 제약 검증 공간을 확인하고, 각 제약 검증 공간에서 하나 이상의 랜덤 테스트 케이스를 생성할 수 있다. 전술한 바와 같이, 복수의 제약 검증 공간 각각에서 하나의 랜덤 테스트 케이스를 생성함으로써 테스트 케이스가 중복되지 않도록 할 수 있다. 또는 이에 한정되지 않고 하나의 제약 검증 공간에서 중복되지 않도록 둘 이상의 랜덤한 테스트 케이스를 생성하는 것도 가능하다.
도 4는 일 실시예에 따른 검증장치의 블록도이다.
도 4를 참조하면, 검증장치(400)는 검증지원부(410) 및 검증부(420)를 포함할 수 있다. 이때, 검증지원부(410)는 도 1을 참조하여 설명한 테스트 케이스 생성 장치(100)의 구성을 포함할 수 있다. 또한, 검증지원부(410)와 검증부(420)는 하나의 하드웨어 장치에 구현될 수 있다. 하지만, 이에 한정되지 않으며 필요에 따라 서로 다른 하드웨어 장치에 구현되는 것도 가능하다.
일 실시예에 따른 검증지원부(410)를 구성하는 테스트 케이스 생성장치(100)를 도 1을 참조하여 상세히 설명하였으므로, 이하에서는 중복되는 설명을 피하기 위해 필요한 범위에서 간단하게 설명한다.
도 4에 도시된 바와 같이, 검증지원부(410)는 아키텍처생성부(411), 제약조건생성부(412) 및 테스트케이스생성부(413)를 포함할 수 있다.
아키텍처생성부(411)는 인스트럭션, 오퍼랜드, 인스트럭션 순서 및 인터럽트 정보 등 프로세서에 대해 정의된 각종 정보를 포함하는 아키텍처 명세를 이용하여 프로세서 검증을 위한 전체 검증 공간을 정의할 수 있다.
제약조건생성부(412)는 정의된 전체 검증 공간에서 복수의 제약 검증 공간을 정의할 수 있다. 제약조건생성부(412)는 테스트 목적, 전체 검증 공간의 사이즈, 전체 테스트 시간 등을 고려하여 적절한 수의 제약 검증 공간을 정의할 수 있으며, 이때, 전체 검증 공간의 전체를 균등하게 분할하여 제약 검증 공간을 정의하거나, 일부의 특정 분포에 대해서만 집중 테스트가 이루어지도록 그 특정 분포에 해당하는 공간에서만 제약 검증 공간을 정의할 수 있다. 또는 특정 분포에서는 보다 정밀한 검증이 이루어지도록 상대적으로 많은 수의 제약 검증 공간을 정의하고, 나머지 분포에서는 상대적으로 적은 수의 제약 검증 공간을 정의할 수 있다.
테스트케이스생성부(413)는 각 제약 검증 공간에서 중복된 테스트 케이스가 발생하지 않도록 하나 이상의 테스트 케이스를 랜덤하게 생성할 수 있다. 일 예로 각 제약 검증 공간에서 하나씩의 테스트 케이스를 생성하는 경우에는 테스트 케이스 간에 서로 중복되지 않으므로 실제 테스트 수행시 중복된 테스트가 이루어지지 않는다.
검증부(420)는 검증지원부(410)의 테스트케이스생성부(413)가 각 제약 검증 공간에서 랜덤하게 테스트 케이스를 생성하면 그 테스트 케이스를 입력으로 시뮬레이션을 수행하여 테스트한다. 도 4를 참조하면, 검증부(420)는 레퍼런스 생성부(421), 시뮬레이션부(422) 및 비교부(423)를 포함할 수 있으며, 레퍼런스생성부(421)는 생성된 테스트 케이스에 대한 레퍼런스를 생성한다. 이때, 레퍼런스는 C 언어, HDL(Hardware Description Language) 등 미리 정의된 어느 하나의 프로그래밍 언어로 작성될 수 있다. 시뮬레이션부(422)는 입력된 테스트 케이스를 실행하여 시뮬레이션하여 시뮬레이션 결과를 생성하고, 비교부(423)는 레퍼런스생성부(421)에 의해 생성된 레퍼런스와 시뮬레이션부(422)에 의해 생성된 시뮬레이션 결과를 비교하여 참 또는 거짓의 비교 결과를 생성한다.
한편, 본 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 실시예들을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
본 개시가 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 테스트 케이스 생성 장치 110: 아키텍처생성부
120: 제약조건생성부 130: 테스트케이스생성부
400: 검증장치 410: 검증지원부
411: 아키텍처생성부 412: 제약조건생성부
430: 테스트케이스생성부 420: 검증부
421: 레퍼런스생성부 422: 시뮬레이션부
423: 비교부
120: 제약조건생성부 130: 테스트케이스생성부
400: 검증장치 410: 검증지원부
411: 아키텍처생성부 412: 제약조건생성부
430: 테스트케이스생성부 420: 검증부
421: 레퍼런스생성부 422: 시뮬레이션부
423: 비교부
Claims (18)
- 전체 검증 공간(total verification space)에서 복수의 제약 검증 공간(constrained verification space)을 정의하고, 상기 복수의 제약 검증 공간 각각에 대하여 제약 조건 기술(constrained description)을 생성하는 제약조건생성부; 및
상기 제약 조건 기술을 이용하여 테스트 케이스를 생성하는 테스트케이스생성부;를 포함하는 테스트 케이스 생성 장치. - 제1항에 있어서,
아키텍처 명세(architecture specification)를 이용하여 상기 전체 검증 공간을 정의하고, 상기 전체 검증 공간에 대한 아키텍처 기술(architecture description)을 생성하는 아키텍처생성부;를 더 포함하는 테스트 케이스 생성 장치. - 제2항에 있어서,
상기 아키텍처 명세는 인스트럭션(instruction), 오퍼랜드(operand), 인스트럭션 순서(instruction sequence) 및 인터럽트(interrupt) 정보 중의 하나 이상을 포함하는 테스트 케이스 생성 장치. - 제3항에 있어서, 상기 아키텍처생성부는
상기 아키텍처 명세에 포함된 정보 중의 둘 이상을 조합하여 상기 전체 검증 공간을 다차원으로 정의하는 테스트 케이스 생성 장치. - 제1항에 있어서, 상기 제약조건생성부는
상기 전체 검증 공간의 사이즈, 테스트의 목적 및 시간 중의 하나 이상을 고려하여 상기 전체 검증 공간에서 상기 복수의 제약 검증 공간을 정의하는 테스트 케이스 생성 장치. - 제1항에 있어서, 상기 제약조건생성부는
상기 제약 검증 공간 각각에 대한 제약 조건 기술을 순차적으로 생성하는 테스트 케이스 생성 장치. - 제1항에 있어서, 상기 테스트케이스생성부는
테스트 케이스가 중복되지 않도록 상기 복수의 제약 검증 공간 각각에서 하나씩의 랜덤 테스트 케이스를 생성하는 테스트 케이스 생성 장치. - 제약조건생성부가 전체 검증 공간(total verification space)에서 복수의 제약 검증 공간(constrained verification space)을 정의하는 단계;
상기 제약조건생성부가 상기 제약 검증 공간 각각에 대하여 제약 조건 기술(constrined description)을 생성하는 단계; 및
테스트케이스생성부가 상기 제약 조건 기술을 이용하여 테스트 케이스를 생성하는 단계;를 포함하는 테스트 케이스 생성 방법. - 프로세서의 전체 검증 공간(total verification space)에서 복수의 제약 검증 공간(constrained verification space)을 정의하고, 각 제약 검증 공간에서 랜덤 테스트 케이스를 생성하는 검증지원부; 및
상기 각 제약 검증 공간에서 생성된 테스트 케이스를 시뮬레이션하고, 그 시뮬레이션 결과를 기초로 프로세서를 검증하는 검증부;를 포함하는 프로세서 검증장치. - 제9항에 있어서, 상기 검증지원부는
인스트럭션(instruction), 오퍼랜드(operand), 인스트럭션 순서(instruction sequence) 및 인터럽트(interrupt) 정보 중의 하나 이상을 포함하는 아키텍처 명세(specification)를 이용하여 상기 전체 검증 공간을 정의하는 프로세서 검증장치. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130044434A KR102026662B1 (ko) | 2013-04-22 | 2013-04-22 | 프로세서 검증을 위한 테스트 케이스 생성 장치 및 방법과, 검증장치 |
PCT/KR2014/003505 WO2014175637A1 (ko) | 2013-04-22 | 2014-04-22 | 프로세서 검증을 위한 테스트 케이스 생성 장치 및 방법과, 검증장치 |
US14/920,548 US9916414B2 (en) | 2013-04-22 | 2015-10-22 | Apparatus and method for generating test cases for processor verification, and verification device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130044434A KR102026662B1 (ko) | 2013-04-22 | 2013-04-22 | 프로세서 검증을 위한 테스트 케이스 생성 장치 및 방법과, 검증장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140126194A KR20140126194A (ko) | 2014-10-30 |
KR102026662B1 true KR102026662B1 (ko) | 2019-09-30 |
Family
ID=51792126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130044434A KR102026662B1 (ko) | 2013-04-22 | 2013-04-22 | 프로세서 검증을 위한 테스트 케이스 생성 장치 및 방법과, 검증장치 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9916414B2 (ko) |
KR (1) | KR102026662B1 (ko) |
WO (1) | WO2014175637A1 (ko) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102570747B1 (ko) * | 2017-09-12 | 2023-08-28 | 현대자동차주식회사 | 테스트 장치 및 테스트 방법 |
US11010285B2 (en) | 2019-01-24 | 2021-05-18 | International Business Machines Corporation | Fault detection and localization to generate failing test cases using combinatorial test design techniques |
US11106567B2 (en) | 2019-01-24 | 2021-08-31 | International Business Machines Corporation | Combinatoric set completion through unique test case generation |
US11010282B2 (en) | 2019-01-24 | 2021-05-18 | International Business Machines Corporation | Fault detection and localization using combinatorial test design techniques while adhering to architectural restrictions |
US11263116B2 (en) | 2019-01-24 | 2022-03-01 | International Business Machines Corporation | Champion test case generation |
US11099975B2 (en) | 2019-01-24 | 2021-08-24 | International Business Machines Corporation | Test space analysis across multiple combinatoric models |
JP6912104B2 (ja) * | 2019-03-20 | 2021-07-28 | Necプラットフォームズ株式会社 | 試験装置、試験方法及びコンピュータプログラム |
US10970195B2 (en) | 2019-06-13 | 2021-04-06 | International Business Machines Corporation | Reduction of test infrastructure |
US10990510B2 (en) | 2019-06-13 | 2021-04-27 | International Business Machines Corporation | Associating attribute seeds of regression test cases with breakpoint value-based fingerprints |
US10963366B2 (en) | 2019-06-13 | 2021-03-30 | International Business Machines Corporation | Regression test fingerprints based on breakpoint values |
US11232020B2 (en) | 2019-06-13 | 2022-01-25 | International Business Machines Corporation | Fault detection using breakpoint value-based fingerprints of failing regression test cases |
US11422924B2 (en) | 2019-06-13 | 2022-08-23 | International Business Machines Corporation | Customizable test set selection using code flow trees |
US11036624B2 (en) | 2019-06-13 | 2021-06-15 | International Business Machines Corporation | Self healing software utilizing regression test fingerprints |
US10970197B2 (en) | 2019-06-13 | 2021-04-06 | International Business Machines Corporation | Breakpoint value-based version control |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6006028A (en) | 1993-05-18 | 1999-12-21 | International Business Machines Corporation | Test program generator |
US20090307468A1 (en) | 2008-06-06 | 2009-12-10 | International Business Machines Corporation | Generating a Test Case Micro Generator During Processor Design Verification and Validation |
JP2010020766A (ja) | 2008-07-14 | 2010-01-28 | Internatl Business Mach Corp <Ibm> | テスト・ケース生成のための方法、情報処理システムおよびコンピュータ・プログラム |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0628208A (ja) | 1992-07-09 | 1994-02-04 | Fujitsu Ltd | 情報処理装置のテスト方法 |
US6647513B1 (en) | 2000-05-25 | 2003-11-11 | International Business Machines Corporation | Coverage-based test generation for microprocessor verification |
GB2415270A (en) | 2004-06-16 | 2005-12-21 | Argo Interactive Ltd | A method of generating a test routine |
US7752499B2 (en) * | 2007-09-11 | 2010-07-06 | International Business Machines Corporation | System and method for using resource pools and instruction pools for processor design verification and validation |
JP4918907B2 (ja) | 2007-10-23 | 2012-04-18 | 富士通株式会社 | テストデータ生成プログラム、テストデータ生成装置及びテストデータ生成方法 |
US9411712B2 (en) | 2009-06-10 | 2016-08-09 | Ab Initio Technology Llc | Generating test data |
JP5540576B2 (ja) | 2009-06-17 | 2014-07-02 | トヨタ自動車株式会社 | テストデータ生成方法 |
US8140901B2 (en) * | 2009-11-30 | 2012-03-20 | International Business Machines Corporation | Validation of processors using a self-generating test case framework |
KR101626382B1 (ko) * | 2009-12-04 | 2016-06-01 | 한국전자통신연구원 | 테스팅 언어 변환 장치 및 그 방법 |
US20110153306A1 (en) * | 2009-12-23 | 2011-06-23 | International Business Machines Corporation | System, method and computer program product for processor verification using abstract test case |
KR20120000320A (ko) | 2010-06-25 | 2012-01-02 | 현대모비스 주식회사 | 프로그램 오류 검사를 위한 테스트 케이스 생성 방법 |
KR101160482B1 (ko) | 2010-07-23 | 2012-06-28 | 강원대학교산학협력단 | 테스트 스윗 생성 장치 및 방법 |
KR20120040419A (ko) | 2010-10-19 | 2012-04-27 | 주식회사 인프라웨어 | 유저 인터페이스 자동 분석을 통한 테스트 케이스 생성 방법 |
KR101452546B1 (ko) | 2010-12-08 | 2014-10-21 | 충북대학교 산학협력단 | 내장형 소프트웨어의 테스트 컴포넌트 자동 생성 시스템 및 이를 이용한 테스트 컴포넌트 자동 생성 방법 |
US9111040B2 (en) * | 2013-01-15 | 2015-08-18 | International Business Machines Corporation | Integration of a software content space with test planning and test case generation |
-
2013
- 2013-04-22 KR KR1020130044434A patent/KR102026662B1/ko active IP Right Grant
-
2014
- 2014-04-22 WO PCT/KR2014/003505 patent/WO2014175637A1/ko active Application Filing
-
2015
- 2015-10-22 US US14/920,548 patent/US9916414B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6006028A (en) | 1993-05-18 | 1999-12-21 | International Business Machines Corporation | Test program generator |
US20090307468A1 (en) | 2008-06-06 | 2009-12-10 | International Business Machines Corporation | Generating a Test Case Micro Generator During Processor Design Verification and Validation |
JP2010020766A (ja) | 2008-07-14 | 2010-01-28 | Internatl Business Mach Corp <Ibm> | テスト・ケース生成のための方法、情報処理システムおよびコンピュータ・プログラム |
Also Published As
Publication number | Publication date |
---|---|
US20160042116A1 (en) | 2016-02-11 |
WO2014175637A1 (ko) | 2014-10-30 |
KR20140126194A (ko) | 2014-10-30 |
US9916414B2 (en) | 2018-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102026662B1 (ko) | 프로세서 검증을 위한 테스트 케이스 생성 장치 및 방법과, 검증장치 | |
Bass et al. | Securing a deployment pipeline | |
US8918678B2 (en) | Functional testing of a processor design | |
US11163744B2 (en) | Test data generation and scale up for database testing using unique common factor sequencing | |
US10592703B1 (en) | Method and system for processing verification tests for testing a design under test | |
US9589087B2 (en) | Verification environments utilizing hardware description languages | |
WO2016202157A2 (zh) | 一种随机测试程序生成方法及装置、设备、存储介质 | |
US9858371B1 (en) | Method and system for generating post-silicon validation tests | |
Carter et al. | SAW: the software analysis workbench | |
CN103885876A (zh) | 测试方法及设备 | |
US10295596B1 (en) | Method and system for generating validation tests | |
US10496449B1 (en) | Verification of atomic memory operations | |
US7308663B2 (en) | Circuit design verification using checkpointing | |
US8739091B1 (en) | Techniques for segmenting of hardware trace and verification of individual trace segments | |
US10579761B1 (en) | Method and system for reconstructing a graph presentation of a previously executed verification test | |
US9823305B1 (en) | Method and system for generating post-silicon validation tests | |
US9983983B2 (en) | Auto-generation of testable units for COBOL code | |
US9477800B1 (en) | System, method, and computer program product for automatically selecting a constraint solver algorithm in a design verification environment | |
KR20150018280A (ko) | Sap erp 시스템에서 보안 점검을 실행하는 방법 및 시스템 | |
JP2013120558A (ja) | 情報処理装置、試験方法、及びプログラム | |
US20170220450A1 (en) | Analytic method and analyzing apparatus | |
KR101787847B1 (ko) | 프로세스 명세와 시공간논리를 이용한 프로세스검증장치 | |
US20090037165A1 (en) | Method and Apparatus for Processing Transactions in a Simulation Environment | |
Le et al. | Efficient Bug-Hunting Techniques Using Graph-Based Stimulus Models | |
KR20220090865A (ko) | 콘콜릭 테스팅을 이용한 소프트웨어 제품라인 테스팅 시간 단축 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |