KR101704338B1 - 실시간 시스템을 위한 테스트 케이스 생성 장치 및 방법 - Google Patents

실시간 시스템을 위한 테스트 케이스 생성 장치 및 방법 Download PDF

Info

Publication number
KR101704338B1
KR101704338B1 KR1020160016219A KR20160016219A KR101704338B1 KR 101704338 B1 KR101704338 B1 KR 101704338B1 KR 1020160016219 A KR1020160016219 A KR 1020160016219A KR 20160016219 A KR20160016219 A KR 20160016219A KR 101704338 B1 KR101704338 B1 KR 101704338B1
Authority
KR
South Korea
Prior art keywords
test case
test
input parameter
generating
time
Prior art date
Application number
KR1020160016219A
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 KR1020160016219A priority Critical patent/KR101704338B1/ko
Application granted granted Critical
Publication of KR101704338B1 publication Critical patent/KR101704338B1/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/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

소프트웨어 시스템을 위한 테스트 케이스 생성 장치가 제공된다. 일실시예에서, 테스트 케이스 생성 장치는 시간 입력 파라미터 및 함수 입력 파라미터를 수신하는 입력부, 상기 시간 입력 파라미터 및 상기 함수 입력 파라미터에 기초하여 최종 테스트 케이스 집합을 생성하는 연산부, 및 상기 최종 테스트 케이스 집합을 출력하는 출력부를 포함한다.

Description

실시간 시스템을 위한 테스트 케이스 생성 장치 및 방법{APPRATUS AND METHOD OF GENERATING TEST CASE FOR REAL TIME SYSTEM}
실시간 시스템을 위한 테스트 케이스 생성 장치 및 방법에 연관된다. 보다 구체적으로, 시간 입력 파라미터를 기반으로 실시간 시스템에 사용되는 소프트웨어의 테스트를 위한 테스트 케이스를 자동으로 생성하는 장치 및 방법에 관한 것이다.
실시간 임베디드 시스템은 항공, 자동차, 의료, 로봇, 공장 자동화 등 광범위한 영역에 활용되어 그 중요성이 높고, 산업 활동에 필수적인 기술이 되었다. 또한, 실시간 임베디드 시스템의 개발에 관련된 연구뿐만 아니라, 실시간 임베디드 시스템에 사용되는 소프트웨어의 높은 신뢰성을 보장하기 위한 테스트 기법에 관한 연구가 이루어지고 있다.
실시간 시스템에 사용되는 소프트웨어 시스템의 신뢰성을 보장하기 위한 동적 테스트 과정에서 가장 중요한 단계는 테스트 케이스 설계이다. 일반적으로 소프트웨어 개발에 소요되는 총 비용의 50% 이상과 총 기간의 50% 정도가 소프트웨어의 테스트 작업에 할당되고 있다. 소프트웨어 시스템의 정확한 동작을 검증하기 위한 테스트 케이스를 수동적으로 생성하는 경우 많은 시간과 비용이 소비된다. 특히 실시간과 연관된 소프트웨어 시스템에 대한 테스트케이스를 설계한다는 것은 매우 어렵다. 이는 실시간 소프트웨어에서 주요 파라미터로 작용되는 것이 시간이고, 시간이라는 파라미터가 추가됨으로써 기존의 테스트케이스보다 더 복잡하게 되고 기존의 테스트케이스에서는 성공인 경우에도 실패로 판단할 수 있게 되기 때문이다.
실시간 시스템에 사용되는 테스트 케이스 설계 단계의 개선을 통해 테스트에 소요되는 시간 및 비용을 절약하고, 테스트 대상 실시간 시스템의 소프트웨어 품질을 보장할 수 있다.
일측에 따르면, 소프트웨어 시스템을 위한 테스트 케이스 생성 장치는 시간 입력 파라미터 및 함수 입력 파라미터를 수신하는 입력부, 상기 시간 입력 파라미터 및 상기 함수 입력 파라미터에 기초하여 최종 테스트 케이스 집합을 생성하는 연산부, 및 상기 최종 테스트 케이스 집합을 출력하는 출력부를 포함한다.
일실시예에서, 상기 연산부는 상기 시간 입력 파라미터가 존재하지 않는 경우 상기 함수 입력 파라미터에 기초하여 조합 테스팅 알고리즘을 이용하여 상기 최종 테스트 케이스 집합을 생성한다.
일실시예에서, 상기 연산부는 상기 시간 입력 파라미터에 기초하여 시간 분할 기반 조합 알고리즘을 이용하여 상기 최종 테스트 케이스 집합을 생성한다.
일실시예에서, 상기 연산부는 상기 시간 입력 파라미터에 기초하여 시간 분할 기반 조합 알고리즘을 이용하여 제1 테스트 케이스 집합을 생성하고, 사용자 제약 조건에 기초하여 상기 제1 테스트 케이스 집합으로부터 제2 테스트 케이스 집합을 생성하고, 상기 함수 입력 파라미터에 기초하여 상기 제2 테스트 케이스 집합으로부터 상기 최종 테스트 케이스 집합을 생성한다.
일실시예에서, 상기 연산부는 상기 사용자 제약 조건에 부합하지 않는 테스트 케이스를 상기 제1 테스트 케이스 집합에서 제거함으로써 상기 제2 테스트 케이스 집합을 생성한다.
일실시예에서, 상기 연산부는 상기 함수 입력 파라미터가 존재하지 않는 경우 상기 최종 테스트 데이터 집합을 상기 제2 테스트 케이스 집합과 동일한 집합으로 생성한다.
일실시예에서, 상기 연산부는 상기 제2 테스트 케이스 집합의 각 원소에 대하여 상기 함수 입력 파라미터에 기초하여 조합 테스팅 알고리즘을 이용하여 상기 최종 테스트 케이스 집합을 생성한다.
일실시예에서, 상기 시간 입력 파라미터는 상기 함수 입력 파라미터 중 적어도 하나에 대한 유지 시간을 포함한다.
다른 일측에 따르면, 소프트웨어 시스템을 위한 테스트 케이스 생성 방법은 시간 입력 파라미터 및 함수 입력 파라미터를 수신하는 단계, 상기 시간 입력 파라미터 및 상기 함수 입력 파라미터에 기초하여 최종 테스트 케이스 집합을 생성하는 단계, 및 상기 최종 테스트 케이스 집합을 출력하는 단계를 포함한다.
일실시예에서, 상기 최종 테스트 케이스 집합을 생성하는 단계는, 상기 시간 입력 파라미터가 존재하지 않는 경우 상기 함수 입력 파라미터에 기초하여 조합 테스팅 알고리즘을 이용하여 상기 최종 테스트 케이스 집합을 생성하는 단계를 포함한다.
일실시예에서, 상기 최종 테스트 케이스 집합을 생성하는 단계는, 상기 시간 입력 파라미터에 기초하여 시간 분할 기반 조합 알고리즘을 이용하여 상기 최종 테스트 케이스 집합을 생성하는 단계를 포함한다.
일실시예에서, 상기 최종 테스트 케이스 집합을 생성하는 단계는, 상기 시간 입력 파라미터에 기초하여 시간 분할 기반 조합 알고리즘을 이용하여 제1 테스트 케이스 집합을 생성하는 단계, 사용자 제약 조건에 기초하여 상기 제1 테스트 케이스 집합으로부터 제2 테스트 케이스 집합을 생성하는 단계, 및 상기 함수 입력 파라미터에 기초하여 상기 제2 테스트 케이스 집합으로부터 상기 최종 테스트 케이스 집합을 생성하는 단계를 포함한다.
일실시예에서, 제2 테스트 케이스 집합을 생성하는 단계는, 상기 사용자 제약 조건에 부합하지 않는 테스트 케이스를 상기 제1 테스트 케이스 집합에서 제거함으로써 상기 제2 테스트 케이스 집합을 생성하는 단계를 포함한다.
일실시예에서, 상기 최종 테스트 케이스 집합을 생성하는 단계는, 상기 함수 입력 파라미터가 존재하지 않는 경우 상기 최종 테스트 데이터 집합을 상기 제2 테스트 케이스 집합과 동일한 집합으로 생성하는 단계를 포함한다.
일실시예에서, 상기 최종 테스트 케이스 집합을 생성하는 단계는, 상기 제2 테스트 케이스 집합의 각 원소에 대하여 상기 함수 입력 파라미터에 기초하여 조합 테스팅 알고리즘을 이용하여 상기 최종 테스트 케이스 집합을 생성하는 단계를 포함한다.
일실시예에서, 상기 시간 입력 파라미터는 상기 함수 입력 파라미터 중 적어도 하나에 대한 유지 시간을 포함한다.
도 1은 일실시예에 따른 소프트웨어 시스템의 테스트 케이스 생성 장치를 설명하기 위한 블록도이다.
도 2는 일실시예에 따른 소프트웨어 시스템의 테스트 케이스 생성 방법을 설명하기 위한 흐름도이다.
도 3은 일실시예에 따른 소프트웨어 시스템의 테스트 케이스 생성 알고리즘을 설명하기 위한 도면이다.
도 4는 일실시예에 따른 소프트웨어 시스템의 테스트 케이스 생성 알고리즘을 설명하기 위한 도면이다.
도 5는 일실시예에 따른 테스트 대상 소프트웨어 시스템을 개략적으로 도시한다.
도 6은 일실시예에 따른 소프트웨어 시스템의 테스트 케이스 생성 방법을 설명하기 위한 개념도이다.
도 7은 일실시예에 따른 소프트웨어 시스템의 테스트 케이스 생성 방법에 따라 생성된 최종 테스트 케이스 집합을 예시적으로 보여준다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하에서, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 권리범위는 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일실시예에 따른 소프트웨어 시스템의 테스트 케이스 생성 장치(100)를 설명하기 위한 블록도이다. 일실시예에 따른 테스트 케이스 생성 장치(100)는 입력부(110), 연산부(120) 및 출력부(130)를 포함할 수 있다.
소프트웨어 시스템의 테스트에 사용되는 입력 파라미터는 입력의 시간적 특성에 연관된 시간 입력 파라미터와 함수의 입력 값으로 이용되는 함수 입력 파라미터로 나눌 수 있다. 시간 입력 파라미터는 함수 또는 기능의 유지 시간 또는 수행 시간에 해당하는 시간 값을 가지며, 일반적으로 함수의 입력 값으로 사용되지는 않는다. 일실시예에 따른 테스트 케이스 생성 장치(100)는 입력의 시간적 특성이 반영된 다양한 경우의 테스트 케이스를 자동으로 생성할 수 있다.
일반적인 소프트웨어 시스템의 테스트 케이스 설계 기법 중 조합 테스팅 (Combinatorial testing) 알고리즘은 시간 입력 파라미터는 고려하지 않고, 함수 입력 파라미터만을 고려한다. 함수 입력 파라미터 간의 교호 작용으로 인해 결함이 발생할 수 있다는 점에 기반을 두는 방식으로서, 함수 입력 파라미터 간의 교호 작용을 미리 가정하여 조합하는 방식과 소프트웨어 시스템의 실제 입출력 교호 작용 명세를 기반으로 조합하는 방식이 있다. 테스트 데이터를 조합할 때 조합 테스팅 알고리즘을 이용하면, 불필요한 테스트 케이스를 제거하여 축소된 테스트 케이스 집합을 생성할 수 있다.
소프트웨어 시스템을 검증하기 위한 기존의 테스트 케이스 설계에 관한 연구 중에는 분류 트리(Classification-tree)를 기반으로 테스트 케이스를 생성한 후 테스트 순서(Testing sequence)를 적용시킴으로써, 시스템에 대한 기능 테스트(Functional testing) 시에 시간 종속적 행위(Temporal behavior)를 고려하는 방식이 있다. 하지만, 시간 입력 파라미터에 대한 다양한 경우가 반영되지 않기 때문에 소프트웨어 시스템 상에 존재할 수 있는 다양한 결함을 모두 찾기에는 부족함이 있다.
시간 분할 테스팅(Time Partition Testing; TPT) 알고리즘은 사용자에 의한 테스트 모델링 과정을 통해 선정된 클래스를 이용하여 분류 트리를 생성하고, 이를 기반으로 테스트 케이스를 생성한다. 이 때 시스템 모델의 입력 수행 시간 정보를 분류(Classification)에 적용시킴으로써, 시간 입력 파라미터가 함께 조합될 수 있도록 한다. 사용자의 테스트 모델링 과정은 각 입력의 시간적 특성을 세밀하게 제어할 수 있지만, 테스트 지식이 부족한 엔지니어나 소프트웨어 개발자 및 기타 사용자에 의해 사용될 경우, 불필요한 테스트 케이스를 생성하여 테스트에 소비되는 시간을 증가시키거나, 필요한 테스트 케이스를 생성하지 않아 시스템 상에 존재할 수 있는 치명적인 결함을 발견하지 못하게 될 수 있다.
일실시예에 따른 테스트 케이스 생성 장치(100)는 기존의 조합 테스팅 알고리즘을 이용하여 테스트 데이터를 조합하되 시간 분할 기반 조합(Time Partition based Combination; TPC) 알고리즘을 이용하여 시간 입력 파라미터에 기초하여 입력의 시간적 특성을 함께 반영한다. 이러한 방식으로, 테스트 케이스 생성 장치(100)는 테스트 데이터 입력 값과 입력의 시간적 특성이 결합된 복합적인 테스트 케이스를 자동으로 생성할 수 있다.
일실시예에서, 입력부(110)는 테스트 대상 소프트웨어 시스템의 시간 입력 파라미터 및 함수 입력 파라미터를 수신할 수 있다. 시간 입력 파라미터는 특정 기능의 수행 시간 또는 특정 상태의 유지 시간 등을 포함할 수 있다. 예를 들어, 시간 입력 파라미터는 스위치의 on 상태의 유지 시간을 포함할 수 있다. 대상 소프트웨어 시스템의 구성에 따라, 시간 입력 파라미터 또는 함수 입력 파라미터가 존재하지 않을 수도 있다.
일실시예에서, 연산부(120)는 시간 입력 파라미터 및 상기 함수 입력 파라미터에 기초하여 최종 테스트 케이스 집합을 생성할 수 있다. 시간 입력 파라미터가 존재하지 않는 경우, 함수 입력 파라미터만 존재하기 때문에 조합 테스팅 알고리즘을 이용하여 함수 입력 파라미터에 기초하여 최종 테스트 케이스 집합을 생성할 수 있다.
시간 입력 파라미터가 존재하는 경우, 시간 분할 기반 조합 알고리즘을 이용하여 시간 입력 파라미터에 기초하여 제1 테스트 데이터 집합을 생성할 수 있다. 여기서, 사용자 제약 조건(예를 들어, 시간 입력 파라미터 간에 요구되는 순서 등)에 기초하여 제1 테스트 데이터 집합으로부터 제1 테스트 데이터 집합의 부분집합인 제2 테스트 데이터 집합을 생성할 수 있다. 예를 들어, 사용자 제약 조건에 부합하지 않는 테스트 케이스를 제1 테스트 케이스 집합에서 제거함으로써 제2 테스트 케이스 집합을 생성할 수 있다.
함수 입력 파라미터가 존재하지 않는다면, 제2 테스트 케이스 집합을 최종 테스트 케이스 집합으로 이용할 수 있다. 즉, 최종 테스트 데이터 집합을 상기 제2 테스트 케이스 집합과 동일한 집합으로 생성할 수 있다.
함수 입력 파라미터가 존재한다면, 제2 테스트 케이스 집합의 모든 원소에 대하여 조합 테스팅 알고리즘을 이용하여 함수 입력 파라미터에 기초하여 복합 테스트 케이스를 생성한다. 복합 테스트 케이스는 테스트 데이터 입력 값과 입력의 시간적 특성이 함께 반영된 테스트 케이스로서, 모든 원소에 대한 복합 테스트 케이스를 최종 테스트 데이터 집합에 포함시키면 최종 테스트 데이터 집합의 생성이 완료된다.
일실시예에서, 출력부(130)는 연산부(120)에 의해 생성된 최종 테스트 케이스 집합을 출력할 수 있다. 최종 테스트 케이스 집합은 임의의 기록 매체에 저장되는 방식 또는 임의의 통신 수단을 통해 테스트 장치에 전달하는 방식으로 출력될 수 있다.
이와 같이, 테스트 케이스 생성 장치(100)는 소프트웨어 시스템을 테스트할 수 있는 시간적 특성이 고려된 테스트 데이터 집합을 자동으로 생성할 수 있으므로 사용자의 전문성과 무관하게 소프트웨어 시스템의 신뢰성을 높일 수 있다.
도 2는 일실시예에 따른 소프트웨어 시스템의 테스트 케이스 생성 방법을 설명하기 위한 흐름도이다. 도 2에 도시된 테스트 케이스 생성 방법은 예를 들어 도 1의 테스트 케이스 생성 장치(100)에 의해 수행될 수 있다.
단계 210에서, 테스트 케이스 생성 방법은 시간 입력 파라미터 및 함수 입력 파라미터를 수신할 수 있다. 단계 210은 예를 들어 테스트 케이스 생성 장치(100)의 입력부(110)를 이용하여 수행될 수 있다. 시간 입력 파라미터는 함수 입력 파라미터 중 적어도 하나에 대한 유지 시간을 포함할 수 있다.
단계 220에서, 테스트 케이스 생성 방법은 시간 입력 파라미터가 존재하는지 여부를 판단할 수 있다. 단계 220은 예를 들어 테스트 케이스 생성 장치(100)의 연산부(120)를 이용하여 수행될 수 있다. 시간 입력 파라미터가 존재하지 않는 경우 단계 230으로 진행할 수 있고, 시간 입력 파라미터가 존재하는 경우 단계 240으로 진행할 수 있다.
단계 230에서, 테스트 케이스 생성 방법은 함수 입력 파라미터에 기초하여 조합 테스팅 알고리즘을 이용하여 최종 테스트 케이스 집합을 생성할 수 있다. 단계 230은 예를 들어 테스트 케이스 생성 장치(100)의 연산부(120)를 이용하여 수행될 수 있다. 시간 입력 파라미터가 존재하지 않는 경우이므로, 함수 입력 파라미터만을 기반으로 하여 최종 테스트 케이스 집합을 생성할 수 있다.
단계 240에서, 테스트 케이스 생성 방법은 시간 입력 파라미터에 기초하여 시간 분할 기반 알고리즘을 이용하여 제1 테스트 케이스 집합을 생성할 수 있다. 단계 240은 예를 들어 테스트 케이스 생성 장치(100)의 연산부(120)를 이용하여 수행될 수 있다. 여기서, 제1 테스트 케이스 집합은 시간적 특성만을 가지는 테스트 케이스를 포함한다.
단계 250에서, 테스트 케이스 생성 방법은 사용자 제약 조건이 있는지 여부를 판단하고, 사용자 제약 조건이 있는 경우 사용자 제약 조건에 부합하지 않는 테스트 케이스를 제1 테스트 케이스 집합에서 제거함으로써 제2 테스트 케이스 집합을 생성할 수 있다. 단계 250은 예를 들어 테스트 케이스 생성 장치(100)의 연산부(120)를 이용하여 수행될 수 있다. 사용자 제약 조건은 예를 들어 시간 입력 파라미터 간에 요구되는 순서일 수 있다. 여기서, 제2 테스트 케이스 집합은 제1 테스트 데이터 집합의 부분집합으로서 제1 테스트 데이터 집합에 비하여 축소된 집합일 수 있다.
단계 260에서, 테스트 케이스 생성 방법은 함수 입력 파라미터가 존재하는지 여부를 판단할 수 있다. 단계 260은 예를 들어 테스트 케이스 생성 장치(100)의 연산부(120)를 이용하여 수행될 수 있다. 함수 입력 파라미터가 존재하지 않는 경우 단계 270으로 진행할 수 있고, 함수 입력 파라미터가 존재하는 경우 단계 280으로 진행할 수 있다.
단계 270에서, 테스트 케이스 생성 방법은 최종 테스트 데이터 집합을 상기 제2 테스트 케이스 집합과 동일한 집합으로 생성할 수 있다. 단계 270은 예를 들어 테스트 케이스 생성 장치(100)의 연산부(120)를 이용하여 수행될 수 있다. 함수 입력 파라미터가 존재하지 않는 경우이므로, 시간 입력 파라미터만을 기반으로 하여 최종 테스트 케이스 집합을 생성할 수 있다. 따라서, 시간 입력 파라미터를 기반으로 하여 시간적 특성만을 가지는 테스트 케이스를 포함하는 제2 테스트 케이스 집합 그대로를 최종 테스트 케이스 집합으로서 이용할 수 있다.
단계 280에서, 테스트 케이스 생성 방법은 제2 테스트 케이스 집합의 각 원소에 대하여 함수 입력 파라미터에 기초하여 조합 테스팅 알고리즘을 이용하여 최종 테스트 케이스 집합을 생성할 수 있다. 단계 280은 예를 들어 테스트 케이스 생성 장치(100)의 연산부(120)를 이용하여 수행될 수 있다. 시간적 특성을 가지는 제2 테스트 케이스 집합의 각 원소에 대하여 함수 입력 파라미터를 기반으로 하는 조합 테스팅 알고리즘을 적용함으로써 복합 테스트 케이스를 생성할 수 있다. 제2 테스트 케이스 집합의 모든 원소에 대한 복합 테스트 케이스를 최종 테스트 데이터 집합에 포함시키는 방식으로, 시간 입력 파라미터 및 함수 입력 파라미터 둘 다를 기반으로 하여 최종 테스트 데이터 집합을 생성할 수 있다.
단계 290에서, 테스트 케이스 생성 방법은 최종 테스트 케이스 집합을 출력할 수 있다. 단계 290은 예를 들어 테스트 케이스 생성 장치(100)의 출력부(130)를 이용하여 수행될 수 있다. 최종 테스트 케이스 집합은 임의의 기록 매체에 저장되는 방식 또는 임의의 통신 수단을 통해 테스트 장치에 전달하는 방식으로 출력될 수 있다.
도 3 및 도 4는 일실시예에 따른 소프트웨어 시스템의 테스트 케이스 생성 알고리즘을 설명하기 위한 도면이다. 구체적으로, 도 3은 시간 분할 기반 조합 알고리즘의 용어 정의를 나타내며, 도 4는 시간 분할 기반 조합 알고리즘의 동작 순서를 개략적으로 나타낸다.
테스트 대상 시스템이 요구하는 입력이 n개일 때, 각 입력의 유지 시간들로 이루어진 집합 Th가 알고리즘의 입력으로 설정된다.
도 4의 알고리즘의 2 내지 4번째 줄의 과정을 통해 첫 번째 입력의 시작 시간 ts 11은 0으로, 유지 시간 th 11은 th 1로 설정된다. 5번째 줄의 조건 n=1 은 대상 시스템의 입력 개수가 1개임을 의미하며, 해당 조건이 만족되는 경우 조합 과정이 불필요하므로 알고리즘을 종료한다.
8 내지 30번째 줄에 해당하는 반복문은 입력의 순번을 의미하는 변수 k를 2부터 n까지 증가시키면서 반복 수행되는 구간이다. 이 과정을 통해 테스트 케이스 집합 Tk에 k번째 입력에 대한 입력 시작 시간이 결정되게 된다.
11번째 줄의 TimePartition 함수는 이전까지 생성된 테스트 케이스 집합 Tk -1에 포함된 테스트 케이스 중 하나인 C를 입력으로 하여, C에 설정된 모든 입력의 시간 정보 (ts, th) 를 기준으로 파티셔닝 작업을 수행한다. 파티셔닝 작업은 입력들의 수행 시작 시간과 종료 시간을 모두 하나의 집합에 저장하여 오름차순으로 정렬한 뒤, 정렬된 시간을 기준으로 좌우 두 개의 파티션을 생성하는 동작을 포함한다. 파티셔닝 작업을 통해 12번째 줄과 같이 q 개의 파티션 집합 P = {p1, p2, ..., pq}가 생성된다.
18번째 줄의 CreateTestCase 함수는 테스트 케이스 C에 수행 유지 시간 th k를 갖는 k번째 입력이 pi에서 시작하여 pj에서 종료되도록 하여 테스트 케이스에 추가한다.
13 내지 20번째 줄에서, 변수 (i, j)가 {(1, 1), (1, 2), ..., (1, q), (2, 2), (2, 3), ..., (2, q), ..., (q, q)}와 같이 변함에 따라, 함수 CreateTestCase 함수에 사용되는 입력 pi와 pj는 {(p1, p1), ..., (p1, pq), (p2, p2), ..., (p2, pq), ..., (pq, pq)}와 같이 변하게 되며, 조합되는 테스트 케이스가 Tk에 추가된다.
22 내지 28번째 줄에서, 테스트 케이스 집합 Tk는 테스트 케이스의 입력 중 입력의 수행 시작 시간이 0 이하로 설정된 경우를 찾아 해당 입력의 수행 시작 시간을 쉬프트 시킨다.
이상의 과정을 통해 최종적으로 생성되는 테스트 케이스 집합 Tn은 n번째 시간 입력 파라미터까지 조합된 최종적인 알고리즘의 결과물이 된다.
도 5는 일실시예에 따른 테스트 대상 소프트웨어 시스템(500)을 개략적으로 도시한다. 일실시예에서, 테스트 대상 소프트웨어 시스템(500)은 야외 헤드라이트 컨트롤러(External Headlight Controller; EHLC)일 수 있다. 야외 헤드라이트 컨트롤러는 조명의 스위치와 조도 센서를 기반으로 하여 야외 헤드라이트의 상테를 제어하는 시스템이다. 예를 들어, 테스트 대상 소프트웨어 시스템(500)은 Switch와 Sensor의 값을 입력으로 하고, Headlight 를 출력으로 내보낼 수 있다.
일실시예에서, Switch는 ON, OFF, AUTO의 상태를 갖고, Sensor는 0~100 사이의 값을 갖는다. Switch가 ON일 때에는 Headlight는 반드시 ON이 되고, Switch가 OFF일 때에는 Headlight는 반드시 OFF가 되어야 한다. 또한, Switch가 AUTO일 때에는, Sensor의 값이 70 이상인 경우 Headlight가 ON이 되고 Sensor의 값이 70 미만인 경우 Headlight가 OFF가 되어야 한다.
Switch는 5초간 입력 상태를 유지시키고, Sensor는 3초간 입력 상태를 유지시키며, 시간 입력 파라미터에 대한 사용자 제약 조건은 Switch의 입력 시작 시간이 Sensor의 입력 시작 시간보다 늦는 것이라고 가정한다.
예컨대, 함수 입력 파라미터들에 대한 테스트 데이터 집합 V는 {{ON, AUTO}, {65, 75}}, 시간 입력 파라미터들의 유지 시간 집합 Th는 {5, 3}, 그리고 시간 입력 파라미터에 대한 사용자 제약 조건 C는 {(ts 1 < ts 2)} 이다.
시간 입력 파라미터가 존재하는 경우이므로, Th를 입력으로 하여 시간 분할 기반 조합 알고리즘을 이용하면, 생성되는 테스트 데이터 집합(예컨대, 제1 테스트 데이터 집합)은 도 6에 도시된 바와 같다.
도 6을 참조하면, 짙은 색으로 표시된 바(bar)는 입력의 유지 시간을 나타내며, 점선으로 표시된 경계에는 ms 단위의 시간이 함께 표시된다. 표시된 입력의 유지 시간 이외의 시간에는 Switch가 OFF 상태를 가지고 Sensor가 0의 값을 가지도록 한다.
사용자 제약 조건 C에 부합하지 않는 tc_1과 tc_5를 제거하여 축소된 테스트 데이터 집합(예컨대, 제2 테스트 데이터 집합)을 생성할 수 있다. 축소된 테스트 데이터 집합의 각 원소에 대하여 조합 테스팅 알고리즘을 이용하여 함수 입력 파라미터에 기초하여 복합 테스트 데이터를 생성하는 방식을 통해 최종 테스트 케이스 집합을 생성할 수 있다. 이러한 방식으로 생성되는 최종 테스트 케이스 집합은 도 7에 예시적으로 도시된다.
이와 같이, 실시예들에 따른 테스트 케이스 생성 기법은 소프트웨어 시스템에서 입출력 값이 연속적으로 변할 때 그에 적합한 테스트 케이스 설계를 제안한다. 제안되는 테스트 케이스 생성 기법을 통해, 시간적 및 기능적 특성을 모두 반영한 복합 테스트 케이스의 집합을 자동으로 생성함으로써 연속적 행위에 대한 테스트를 더 철저히 수행할 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (17)

  1. 소프트웨어 시스템을 위한 테스트 케이스 생성 장치에 있어서,
    시간 입력 파라미터 및 함수 입력 파라미터를 수신하는 입력부;
    상기 시간 입력 파라미터에 기초하여 시간 분할 기반 조합 알고리즘을 이용하여 제1 테스트 케이스 집합을 생성하고, 사용자 제약 조건에 기초하여 상기 제1 테스트 케이스 집합으로부터 제2 테스트 케이스 집합을 생성하고, 상기 함수 입력 파라미터에 기초하여 상기 제2 테스트 케이스 집합으로부터 최종 테스트 케이스 집합을 생성하는 연산부; 및
    상기 최종 테스트 케이스 집합을 출력하는 출력부
    를 포함하는, 소프트웨어 시스템을 위한 테스트 케이스 생성 장치.
  2. 제1항에 있어서,
    상기 연산부는 상기 시간 입력 파라미터가 존재하지 않는 경우 상기 함수 입력 파라미터에 기초하여 조합 테스팅 알고리즘을 이용하여 상기 최종 테스트 케이스 집합을 생성하는,
    소프트웨어 시스템을 위한 테스트 케이스 생성 장치.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 연산부는 상기 사용자 제약 조건에 부합하지 않는 테스트 케이스를 상기 제1 테스트 케이스 집합에서 제거함으로써 상기 제2 테스트 케이스 집합을 생성하는,
    소프트웨어 시스템을 위한 테스트 케이스 생성 장치.
  6. 제1항에 있어서,
    상기 연산부는 상기 함수 입력 파라미터가 존재하지 않는 경우 상기 최종 테스트 케이스 집합을 상기 제2 테스트 케이스 집합과 동일한 집합으로 생성하는,
    소프트웨어 시스템을 위한 테스트 케이스 생성 장치.
  7. 제1항에 있어서,
    상기 연산부는 상기 제2 테스트 케이스 집합의 각 원소에 대하여 상기 함수 입력 파라미터에 기초하여 조합 테스팅 알고리즘을 이용하여 상기 최종 테스트 케이스 집합을 생성하는,
    소프트웨어 시스템을 위한 테스트 케이스 생성 장치.
  8. 제1항에 있어서,
    상기 시간 입력 파라미터는 상기 함수 입력 파라미터 중 적어도 하나에 대한 유지 시간을 포함하는,
    소프트웨어 시스템을 위한 테스트 케이스 생성 장치.
  9. 소프트웨어 시스템을 위한 테스트 케이스 생성 방법에 있어서,
    시간 입력 파라미터 및 함수 입력 파라미터를 수신하는 단계;
    상기 시간 입력 파라미터에 기초하여 시간 분할 기반 조합 알고리즘을 이용하여 제1 테스트 케이스 집합을 생성하는 단계;
    사용자 제약 조건에 기초하여 상기 제1 테스트 케이스 집합으로부터 제2 테스트 케이스 집합을 생성하는 단계; 및
    상기 함수 입력 파라미터에 기초하여 상기 제2 테스트 케이스 집합으로부터 최종 테스트 케이스 집합을 생성하는 단계; 및
    상기 최종 테스트 케이스 집합을 출력하는 단계
    를 포함하는, 소프트웨어 시스템을 위한 테스트 케이스 생성 방법.
  10. 제9항에 있어서,
    상기 최종 테스트 케이스 집합을 생성하는 단계는,
    상기 시간 입력 파라미터가 존재하지 않는 경우 상기 함수 입력 파라미터에 기초하여 조합 테스팅 알고리즘을 이용하여 상기 최종 테스트 케이스 집합을 생성하는 단계를 포함하는,
    소프트웨어 시스템을 위한 테스트 케이스 생성 방법.
  11. 삭제
  12. 삭제
  13. 제9항에 있어서,
    제2 테스트 케이스 집합을 생성하는 단계는,
    상기 사용자 제약 조건에 부합하지 않는 테스트 케이스를 상기 제1 테스트 케이스 집합에서 제거함으로써 상기 제2 테스트 케이스 집합을 생성하는 단계를 포함하는,
    소프트웨어 시스템을 위한 테스트 케이스 생성 방법.
  14. 제9항에 있어서,
    상기 최종 테스트 케이스 집합을 생성하는 단계는,
    상기 함수 입력 파라미터가 존재하지 않는 경우 상기 최종 테스트 케이스 집합을 상기 제2 테스트 케이스 집합과 동일한 집합으로 생성하는 단계를 포함하는,
    소프트웨어 시스템을 위한 테스트 케이스 생성 방법.
  15. 제9항에 있어서,
    상기 최종 테스트 케이스 집합을 생성하는 단계는,
    상기 제2 테스트 케이스 집합의 각 원소에 대하여 상기 함수 입력 파라미터에 기초하여 조합 테스팅 알고리즘을 이용하여 상기 최종 테스트 케이스 집합을 생성하는 단계를 포함하는,
    소프트웨어 시스템을 위한 테스트 케이스 생성 방법.
  16. 제9항에 있어서,
    상기 시간 입력 파라미터는 상기 함수 입력 파라미터 중 적어도 하나에 대한 유지 시간을 포함하는,
    소프트웨어 시스템을 위한 테스트 케이스 생성 방법.
  17. 제9항, 제10항, 및 제13항 내지 제16항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능 기록 매체.
KR1020160016219A 2016-02-12 2016-02-12 실시간 시스템을 위한 테스트 케이스 생성 장치 및 방법 KR101704338B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160016219A KR101704338B1 (ko) 2016-02-12 2016-02-12 실시간 시스템을 위한 테스트 케이스 생성 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160016219A KR101704338B1 (ko) 2016-02-12 2016-02-12 실시간 시스템을 위한 테스트 케이스 생성 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101704338B1 true KR101704338B1 (ko) 2017-02-08

Family

ID=58154816

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160016219A KR101704338B1 (ko) 2016-02-12 2016-02-12 실시간 시스템을 위한 테스트 케이스 생성 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101704338B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190093959A (ko) * 2018-02-02 2019-08-12 주식회사 한글과컴퓨터 동등분할 및 경계값 분석 기법을 적용한 테스트 케이스 추출 방법 및 이를 이용하는 테스트 케이스 추출 장치
KR20190099894A (ko) * 2018-02-20 2019-08-28 주식회사 아이오티큐브 탐색 전략을 자동으로 생성하는 방법 및 자동으로 생성된 탐색 전략을 사용한 콘콜릭 테스팅 수행 방법
KR102470683B1 (ko) * 2021-11-25 2022-11-25 숭실대학교 산학협력단 단위 테스트 케이스 기반의 보안 설계 결함 탐지 방법, 이를 수행하기 위한 기록 매체 및 장치
KR102558933B1 (ko) * 2022-08-19 2023-07-25 델타인덱스주식회사 시간 조건을 포함한 한글 요구사항을 위한 체계적 테스트 케이스 생성 방법 및 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016012274A (ja) * 2014-06-30 2016-01-21 日立オートモティブシステムズ株式会社 テストケース生成システム及びテストケースを記録した記録媒体

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016012274A (ja) * 2014-06-30 2016-01-21 日立オートモティブシステムズ株式会社 テストケース生成システム及びテストケースを記録した記録媒体

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190093959A (ko) * 2018-02-02 2019-08-12 주식회사 한글과컴퓨터 동등분할 및 경계값 분석 기법을 적용한 테스트 케이스 추출 방법 및 이를 이용하는 테스트 케이스 추출 장치
KR102103591B1 (ko) * 2018-02-02 2020-04-23 주식회사 한글과컴퓨터 동등분할 및 경계값 분석 기법을 적용한 테스트 케이스 추출 방법 및 이를 이용하는 테스트 케이스 추출 장치
KR20190099894A (ko) * 2018-02-20 2019-08-28 주식회사 아이오티큐브 탐색 전략을 자동으로 생성하는 방법 및 자동으로 생성된 탐색 전략을 사용한 콘콜릭 테스팅 수행 방법
KR102104295B1 (ko) 2018-02-20 2020-04-24 주식회사 아이오티큐브 탐색 전략을 자동으로 생성하는 방법 및 자동으로 생성된 탐색 전략을 사용한 콘콜릭 테스팅 수행 방법
KR102470683B1 (ko) * 2021-11-25 2022-11-25 숭실대학교 산학협력단 단위 테스트 케이스 기반의 보안 설계 결함 탐지 방법, 이를 수행하기 위한 기록 매체 및 장치
WO2023096152A1 (ko) * 2021-11-25 2023-06-01 숭실대학교 산학협력단 단위 테스트 케이스 기반의 보안 설계 결함 탐지 방법, 이를 수행하기 위한 기록 매체 및 장치
KR102558933B1 (ko) * 2022-08-19 2023-07-25 델타인덱스주식회사 시간 조건을 포함한 한글 요구사항을 위한 체계적 테스트 케이스 생성 방법 및 장치

Similar Documents

Publication Publication Date Title
CN107066375B (zh) 安全关键软件自动化基于需求的测试实例生成系统和方法
KR101704338B1 (ko) 실시간 시스템을 위한 테스트 케이스 생성 장치 및 방법
US10235477B2 (en) Prototyping an image processing algorithm and emulating or simulating execution on a hardware accelerator to estimate resource usage or performance
US20100192128A1 (en) System and methods of using test points and signal overrides in requirements-based test generation
CN103279418B (zh) 一种组态控制信息的测试方法和装置
US10936474B2 (en) Software test program generation
Mazzini et al. CHESS: an Open Source Methodology and Toolset for the Development of Critical Systems.
US20170322870A1 (en) Transferring Application Software from a Physical to a Virtual Computer System
EP3379436B1 (en) Method and apparatus for testing design of satellite wiring harness and signal processing units
US20170045865A1 (en) Method for connecting an input/output interface of a tester equipped for control unit development
KR100937689B1 (ko) 사용자 환경 프로파일링에 기반을 두어 테스트 대상소프트웨어의 테스트를 지원하는 시뮬레이션 방법
CN114139475A (zh) 芯片验证方法、系统、设备及存储介质
CN106980597A (zh) 片上系统验证方法及验证系统
US8751094B2 (en) Method for validation of a graphically based executable control specification using model extraction
US20160335101A1 (en) Method for configuring an interface unit of a computer system
Fant et al. A pattern-based modeling approach for software product line engineering
KR102271857B1 (ko) 테스트 자동화 시스템
US10839132B2 (en) Automatic cover point generation based on register transfer level analysis
KR20220121175A (ko) 시스템 테스트 절차를 이용하는 통합 테스트 절차의 자동 발생
US9239893B2 (en) Method and process computer for computation of the state variables of a hybrid differential-algebraic process model
Langner et al. Framework for using real driving data in automotive feature development and validation
US10223077B2 (en) Determination of signals for readback from FPGA
US9600613B1 (en) Block-level code coverage in simulation of circuit designs
US10488835B2 (en) Method for configuring a tester equipped for testing an electronic control unit
US7277840B2 (en) Method for detecting bus contention from RTL description

Legal Events

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

Payment date: 20200204

Year of fee payment: 4