KR101825880B1 - 소프트웨어 컴포넌트 기반 로봇 시스템을 위한 입/출력 기반 테스트 케이스 생성 방법 및 이를 수행하는 장치 - Google Patents

소프트웨어 컴포넌트 기반 로봇 시스템을 위한 입/출력 기반 테스트 케이스 생성 방법 및 이를 수행하는 장치 Download PDF

Info

Publication number
KR101825880B1
KR101825880B1 KR1020170068513A KR20170068513A KR101825880B1 KR 101825880 B1 KR101825880 B1 KR 101825880B1 KR 1020170068513 A KR1020170068513 A KR 1020170068513A KR 20170068513 A KR20170068513 A KR 20170068513A KR 101825880 B1 KR101825880 B1 KR 101825880B1
Authority
KR
South Korea
Prior art keywords
input
output
data
component
test
Prior art date
Application number
KR1020170068513A
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 KR1020170068513A priority Critical patent/KR101825880B1/ko
Application granted granted Critical
Publication of KR101825880B1 publication Critical patent/KR101825880B1/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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/0095Means or methods for testing manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators

Abstract

CBRS(Component Based Robot System)의 컴포넌트 테스트 케이스 생성 방법 및 그 장치가 개시된다. 컴포넌트 기반 로봇 시스템의 컴포넌트를 테스트하는데 있어서, 일 실시예에 따른 테스트 방법은 상기 컴포넌트의 입/출력 데이터를 수신하는 단계와, 상기 컴포넌트의 입/출력 데이터에 기초한 조합을 통해 상기 컴포넌트를 테스트 하기 위한 테스트 케이스를 생성하는 단계를 포함한다.

Description

소프트웨어 컴포넌트 기반 로봇 시스템을 위한 입/출력 기반 테스트 케이스 생성 방법 및 이를 수행하는 장치{INPUT/OUTPUT RELATIONSHIP BASED TEST CASE GENERATION METHOD FOR SOFTWARE COMPONENT-BASED ROBOT SYSTEM AND APPARATUS PERFORMING THE SAME}
아래 실시예들은 컴포넌트 기반 로봇 시스템에서 컴포넌트 테스트를 위한 테스트 케이스를 생성하는 방법 및 장치에 관한 것이다.
최근 OPRoS(Open Platform for Robotic Service), ROS(Robot Operating System), openRTM(Open-source and open architecture Robot Technology Middleware)과 같이 소프트웨어 컴포넌트를 활용한 로봇 미들웨어가 개방화되어 CBRS(Component Based Robot System)가 활성화되고 있다. 컴포넌트가 CBRS개발자에게 배포되었을 때, 해당 컴포넌트에 대한 검증이 되어 있기 때문에 테스트 시간을 감소시킬 수 있는 장점이 있다. 그러나 검증된 컴포넌트들을 사용하여도 컴포넌트들로 구성된 CBRS의 동작은 검증되지 않았기 때문에 CBRS 테스트가 매우 중요하다.
일반적으로 SW(소프트웨어) 테스트시 여러 실행들을 통하여 오류의 존재 여부를 확인한다. 이때, 테스트를 위한 하나의 실행에 사용되는 데이터 셋을 테스트 케이스라 한다. 이러한 테스트 케이스의 설계는 테스트에 소요되는 시간과 테스트의 신뢰성을 결정하기 때문에 매우 중요하다.
CBRS의 테스트시 사용되는 테스트 케이스들의 수가 테스트에 소요되는 시간에 직접적인 영향을 준다. CBRS를 구성하는 컴포넌트는 여러 입력들을 가질 수 있고, 각 입력 들은 여러 개의 값들을 가질 수 있다. 예를 들어, 한 컴포넌트가 5개의 입력을 갖고 각 입력의 테스트 데이터가 8개의 값을 가진다면 입력 값들의 모든 가능한 조합은 85이다. 이러한 조합들을 수동 혹은 자동으로 생성할 수 있지만 수동으로 생성할 경우 시간과 비용이 많이 소요되고, 중복 테스트 케이스들을 정리하는 것도 어렵다. 또한, 테스트 케이스가 많아지면 테스트 시간도 길어지는 문제도 있다.
CBRS는 여러 컴포넌트들의 조합으로 이루어지기 때문에, 컴포넌트들의 연관 관계를 모르고 입력들로만 테스트 케이스를 생성하면 테스트 케이스의 수가 지나치게 많이 생성될 수 있다. 또한 CBRS를 시스템으로 테스트하기 전에 구성요소인 단위 컴포넌트들에 대하여 테스트를 수행하기 때문에 단위 컴포넌트들의 테스트 케이스들이 존재한다. 만일 테스트 케이스가 존재하지 않으면 기본적인 조합 테스트 기법을 사용하여 테스트 케이스를 쉽게 만들 수 있다.
자동화된 조합 테스트(combinatorial Testing) 기법을 사용하면 테스트 조합의 수를 줄일 수 있다. 조합 테스트 기법은 시스템에 존재할 수 있는 무수히 많은 테스트 데이터들의 조합에 대해 일부의 의미 있는 조합들만을 실행시킴으로써, 동적 테스트에 소비되는 시간을 감소시키는 테스트 기법이다. 특히 일부 입력들 간의 교호작용을 고려하여, 조합의 수를 줄이면 효과가 있다는 것이 입증되었다.
조합 테스트 기법에는 n-way 테스트 기법, Union 알고리즘, ParaOrder 알고리즘, ReqOrder 알고리즘 및 입/출력 연관관계 기반 적응형 조합 테스트 기법(IOReACT)가 존재한다. 후자의 4개의 방법은 입/출력 연관관계를 고려한 조합 기법이다.
n-way 테스트 기법은 전체 입력들 중에서 일부 입력 집합이 모든 조합을 갖도록 테스트 케이스를 생성하고, 테스트를 실행하여 결함을 찾도록 하는 테스트 기법이다. 여기서 n은 모든 조합을 갖는 입력의 개수이다. 이 기법의 장점은 비교적 간단하게 테스트 케이스를 생성할 수 있다는 것이지만, 실제 CBRS의 소프트웨어 입/출력 관계를 고려한 것이 아니기 때문에 완전한 테스트를 하지 못한다는 단점이 있다.
실제 CBRS의 입/출력 연관관계를 고려한 조합 기법은 소프트웨어 컴포넌트들간 존재하는 실제 입/출력 연관관계를 입력 받거나 분석하여, 연관관계를 갖는 입력들 간의 모든 조합을 테스트 케이스에 포함되도록 하는 방법이다. Union 알고리즘은 시간 복잡도가 단순하지만 테스트 데이터 조합 시 임의의 값을 할당하는 과정에서 불필요한 중복 테스트 케이스가 생성되어 테스트 케이스 수가 증가하는 문제가 존재하지만, 연관관계 집합들 간의 교집합이 없을 때 최적의 테스트 케이스를 생성한다.
ParaOrder 알고리즘 및 ReqOrder 알고리즘은 이러한 중복을 막고자 고안된 조합 알고리즘이다. ParaOrder는 입력 파라미터의 테스트 데이터 크기 또는 입력이 포함된 연관관계 집합의 개수에 따라 조합 순서를 정하며 교집합이 있을 경우에 최소한의 테스트 케이스를 생성한다. ReqOrder 알고리즘은 연관관계 집합의 크기에 따라 조합 순서를 정한다. 이러한 기법들은 입/출력 연관관계를 직접 입력해야 하기 때문에 복잡한 시스템에 대한 조합 테스트 기법을 적용하는데 어려움이 있다.
IOReACT는 입/출력 연관관계를 사용자로부터 입력 받지 않고 시스템 7 명세를 기반으로 도출하고, 시스템 입/출력 연관관계를 모든 연관, 교집합 연관, 교집합이 없는 연관으로 구분하여 입력되는 연관관계 정보를 기반으로 각 연관 관계에 맞는 각 알고리즘을 적용하여 기존 방식보다 시간 복잡도 및 테스트 케이스의 중복을 감소시켰다.
그러나 IOReACT는 CBRS의 입/출력 연관관계를 구분하는 것부터 필요하고, 연관관계를 갖는 입력의 테스트 데이터 간의 모든 조합을 생성하기 때문에 경우에 따라 테스트 케이스의 수가 증가하는 문제를 가지고있다.
또한, 이러한 테스트 기법들은 컴포넌트들의 조합에 사용되기 때문에 이미 단위 컴포넌트의 테스트 케이스들을 알 수 있지만, 이러한 검증된 단위 컴포넌트의 테스트 케이스들을 활용하지 않고 다시 CBRS의 테스트 케이스들을 새롭게 생성하는 단점이 존재한다.
실시예들은 CBRS(Component Based Robot System)의 컴포넌트 테스트에 있어 테스트 케이스의 수를 줄임으로써 테스트 시간을 줄일 수 있다.
컴포넌트 기반 로봇 시스템의 컴포넌트를 테스트하는데 있어서, 일 실시예에 따른 테스트 케이스 생성 방법은 상기 컴포넌트의 입/출력 데이터를 수신하는 단계와, 상기 컴포넌트의 입/출력 데이터를 입/출력 연관 관계에 기초하여 조합하고, 상기 조합을 통하여 테스트 케이스의 집합을 형성함으로써, 상기 컴포넌트를 테스트하기 위한 테스트 케이스를 생성하는 단계를 포함한다.
상기 생성하는 단계는, 상기 출력 데이터와 연관된 상기 입력 데이터를 조합하여 상기 테스트 케이스의 집합을 형성하는 단계와, 상기 입력 데이터에 대응하는 출력 데이터를 상기 테스트 케이스의 집합에 추가하는 단계를 포함할 수 있다.
상기 형성하는 단계는, 입력 집합의 크기가 1인 경우, 상기 입력 집합을 구성하는 입력의 입력 데이터를 상기 테스트 케이스의 집합에 추가하는 단계를 포함할 수 있다.
상기 형성하는 단계는, 입력 집합의 크기가 2 이상인 경우, 상기 입력 집합을 구성하는 제1 입력과 제2 입력의 모든 데이터를 조합하여 상기 테스트 케이스의 집합에 추가하는 단계와, 상기 입력 집합의 크기가 3 이상인 경우, 상기 제1 입력과 상기 제2 입력의 모든 데이터의 조합이 추가된 상기 테스트 케이스의 집합과 상기 입력 집합을 구성하는 나머지 입력의 입력 데이터를 조합하여 상기 테스트 케이스의 집합에 추가하는 단계를 포함할 수 있다.
상기 생성하는 단계는, 상기 추가된 출력 데이터와 연관된 입력 데이터가 내부 입력 데이터인 경우, 상기 추가된 출력 데이터와 연관된 입력 데이터를 조합하여 상기 테스트 케이스의 집합에 추가하는 단계와, 상기 추가된 입력 데이터에 대응하는 출력 데이터를 상기 테스트 케이스의 집합에 추가하는 단계를 더 포함할 수 있다.
상기 생성하는 단계는 상기 테스트 케이스의 집합이 상기 컴포넌트의 모든 입/출력 데이터의 조합을 포함하도록 반복적으로 상기 입/출력 데이터를 추가할 수 있다.
상기 컴포넌트 기반 로봇 시스템은, 입/출력 연관 관계 간 교집합이 존재하는 시스템 및 입/출력 연관 관계 간 교집합이 존재하지 않는 시스템을 포함할 수 있다.
컴포넌트 기반 로봇 시스템의 컴포넌트를 테스트하는데 있어서, 일 실시예에 따른 테스트 케이스 생성 장치는 상기 컴포넌트의 입/출력 데이터를 수신하는 수신기와, 상기 컴포넌트의 입/출력 데이터를 입/출력 연관 관계에 기초하여 조합하고, 상기 조합 조합을 통하여 테스트 케이스의 집합을 형성함으로써, 상기 컴포넌트를 테스트하기 위한 테스트 케이스를 생성하는 컨트롤러를 포함한다.
상기 컨트롤러는, 상기 출력 데이터와 연관된 상기 입력 데이터를 조합하여 상기 테스트 케이스의 집합을 형성하는 집합 형성기와, 상기 입력 데이터에 대응하는 출력 데이터를 상기 테스트 케이스의 집합에 추가하는 출력 추가기를 포함할 수 있다.
상기 집합 형성기는, 입력 집합의 크기가 1인 경우, 상기 입력 집합을 구성하는 입력의 입력 데이터를 상기 테스트 케이스의 집합에 추가할 수 있다.
상기 집합 형성기는, 입력 집합의 크기가 2 이상인 경우, 상기 입력 집합을 구성하는 제1 입력과 제2 입력의 모든 데이터를 조합하여 상기 테스트 케이스의 집합에 추가하고, 상기 입력 집합의 크기가 3 이상인 경우, 상기 제1 입력과 상기 제2 입력의 모든 데이터의 조합이 추가된 상기 테스트 케이스의 집합과 상기 입력 집합을 구성하는 나머지 입력의 입력 데이터를 조합하여 상기 테스트 케이스의 집합에 추가할 수 있다.
상기 컨트롤러는, 상기 테스트 케이스의 집합이 상기 컴포넌트의 모든 입/출력 데이터의 조합을 포함하도록 반복적으로 상기 입/출력 데이터를 추가할 수 있다.
상기 컴포넌트 기반 로봇 시스템은, 입/출력 연관 관계 간 교집합이 존재하는 시스템 및 입/출력 연관 관계 간 교집합이 존재하지 않는 시스템을 포함할 수 있다.
도 1은 일 실시예에 따른 테스트 케이스 생성 장치의 개략적인 블록도를 나타낸다.
도 2는 심볼 사용 예를 보여주기 위한 컴포넌트 기반 모델의 예시이다.
도 3은 도 1에 도시된 컨트롤러의 개략적인 블록도를 나타낸다.
도 4는 도 1에 도시된 컨트롤러가 테스트 케이스를 생성하는 알고리즘의 예를 나타낸다.
도 5는 도 4에 나타난 CombinateAll 함수의 알고리즘의 예를 나타낸다.
도 6은 도 5에 나타난 Combination 함수의 알고리즘의 예를 나타낸다.
도 7은 도 4에 나타난 Trace 함수의 알고리즘의 예를 나타낸다.
도 8은 테스트 케이스 생성 장치의 동작의 일 예시이다.
도 9는 테스트 케이스 생성 장치의 동작의 다른 예시이다.
도 10은 테스트 케이스 생성 장치의 동작의 또 다른 예시이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 “직접 연결되어” 있다거나 “직접 접속되어” 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 “~사이에”와 “바로~사이에” 또는 “~에 직접 이웃하는” 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, “포함하다” 또는 “가지다” 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일 실시예에 따른 테스트 케이스 생성 장치의 개략적인 블록도를 나타낸다.
테스트 케이스 생성 장치(10)는 컴포넌트 기반 로봇 시스템(Component Based Robot System (CBRS))에 있어서, 테스트 케이스 생성 과정에서 단위 컴포넌트의 검증된 테스트 케이스들과 컴포넌트들의 입/출력 연관관계를 고려하여, 시스템을 구성하는 SW(software) 컴포넌트들이 모두 만족하는 입/출력 조합들을 통합적으로 생성할 수 있다.
테스트 케이스 생성 장치(10)는 IOReACT 방법에 비하여 조합 커버리지는 동일하지만 축소된 테스트 케이스 집합을 생성할 수 있다.
테스트 케이스 생성 장치(10)는 CBRS에서 컴포넌트의 입/출력 데이터를 수신하고, 컴포넌트의 입/출력 데이터를 입/출력 연관 관계에 기초하여 조합하고, 조합을 통하여 테스트 케이스의 집합을 형성함으로써, 컴포넌트를 테스트하기 위한 테스트 케이스를 생성할 수 있다.
테스트 케이스 생성 장치(10)가 적용되는 CBRS는 입/출력 연관 관계 간 교집합이 존재하는 시스템 및 입/출력 연관 관계 간 교집합이 존재하지 않는 시스템을 포함할 수 있다.
테스트 케이스 생성 장치(10)는 마더보드(motherboard)와 같은 인쇄 회로 기판(printed circuit board(PCB)), 집적 회로(integrated circuit(IC)), 또는 SoC(system on chip)로 구현될 수 있다. 예를 들어, 테스트 케이스 생성 장치(10)는 애플리케이션 프로세서(application processor)로 구현될 수 있다.
또한, 테스트 케이스 생성 장치(10)는 PC(personal computer), 데이터 서버, 또는 휴대용 장치 내에 구현될 수 있다.
휴대용 장치는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트폰(smart phone), 태블릿(tablet) PC, 모바일 인터넷 디바이스(mobile internet device(MID)), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), e-북(e-book), 또는 스마트 디바이스(smart device)로 구현될 수 있다. 스마트 디바이스는 스마트 와치(smart watch), 스마트 밴드(smart band), 또는 스마트 링(smart ring)으로 구현될 수 있다.
테스트 케이스 생성 장치(10)는 수신기(100) 및 컨트롤러(200)을 포함한다.
수신기(100)는 입/출력 데이터를 수신할 수 있다. 수신기(100)가 수신하는 입/출력 데이터는 컴포넌트의 입력 및 출력 데이터로 이루어진 집합의 형태를 가질 수 있다. 또한, 수신기(100)는 입/출력 데이터를 컨트롤러(200)로 출력할 수 있다.
컨트롤러(200)는 컴포넌트의 입/출력 데이터에 기초한 조합을 통해 컴포넌트를 테스트하기 위한 테스트 케이스를 생성할 수 있다. 컨트롤러(200)는 생성한 테스트 케이스를 출력할 수 있다. 컨트롤러(200)의 동작은 도 3을 참조하여 자세하게 설명할 것이다.
도 2는 심볼 사용 예를 보여주기 위한 컴포넌트 기반 모델의 예시이다.
컴포넌트 집합 C에 속한 단위 컴포넌트 c는 모든 입/출력 목록을 가질 수 있다. 단위 컴포넌트의 입/출력은 isExternal이라는 속성을 가지며, 이는 외부 입력인지 내부 입력인지에 대해 표현할 수 있다.
입력 집합에 속한 하나의 입력 x는 테스트 데이터 x.values를 가지며, 내부 입력인 경우 해당 입력을 파생시킨 출력 x.ouput을 속성으로 가질 수 있다. 예를 들어, 도 2에서 컴포넌트 c3의 입력 x3.1은 컴포넌트 c1의 출력 y1.1에 의해 파생되므로 x3.1.output=y1.1과 같이 나타낼 수 있다.
하나의 출력 y는 출력 계산에 영향을 주는 입력 집합 즉, 연관관계 y.requiredX를 속성으로 가질 수 있다. 이를 출력 y에 연관된 입력 집합이라고 할 수 있다. 예를 들어, 컴포넌트 c1의 출력 y.1.1의 계산에 영향을 주는 입력 집합은 {x1.1, x1.2}이므로, y1.1.requiredX={x1.1, x1.2}와 같이 나타낼 수 있다.
테스트 케이스 생성 장치(10)의 동작을 설명하기 위한 심볼은 표 1과같이 정의할 수 있다.
Symbol Definition
C 시스템을 구성하는 컴포넌트들의 집합이며, 단위 컴포넌트 집합으로 {c1, c2, …, cn}으로 표현된다. (|C|는 컴포넌트 집합의 크기, |C|=n)
c, ci (i 번째) 단위 컴포넌트이며, 입력 목록 {x1, x2, …}와 출력 목록 {y1, y2, …}을 포함한다.
x, xi 컴포넌트의 (i 번째) 내/외부 입력
x.values 입력 x의 테스트 데이터 집합{v1, v2, …}
x.output 내부 입력의 경우, 입력 x를 파생시킨 출력이다. x가 외부 입력일 경우, x.output=Ø
x.isExternal 입력 x가 외부 혹은 내부 입력인지를 표현. x가 내부 입력이면 x.isExternal=TRUE, 외부 입력이면 x.isExternal=FALSE이다.
y, yi 컴포넌트의 (i번째) 내/외부 입력
y.requiredX 출력 y와 연관된 입력들의 집합
y.isExternal 출력 y가 외부 입력인지, 내부 입력인지를 표tl.
y.Texpected 출력 y의 예상 결과이며, {t1, t2, …}으로 구성
y는 예상 결과 집합을 가질 수 있으며, 이는 y.Texpected로 나타낼 수 있다. y.Texpected에서 하나의 예상 결과 ti는 테스트 케이스에서 예상되는 결과 값을 의미할 수 있다. 예를 들어, 논리형 입력 변수 x1, x2에 대해, y=x1∩x2의 출력을 가진다고 할 때, 테스트 케이스 및 y.Texpected는 표 2와 같은 테스트 케이스집합을 가질 수 있다.
y.Texpected
t x1 x2 x1 ∩ x2
t1 FALSE FALSE FALSE
t2 FALSE TRUE TRUE
t3 TRUE FALSE FALSE
t4 TRUE TRUE TRUE
도 3은 도 1에 도시된 컨트롤러의 개략적인 블록도를 나타낸다.
컨트롤러(200)는 컴포넌트의 입/출력 데이터를 조합하여 테스트 케이스를 생성할 수 있고, 테스트 케이스의 집합이 컴포넌트의 모든 입/출력 데이터의 조합을 포함하도록 반복하여 입/출력 데이터를 추가할 수 있다.
입/출력 데이터는 복수의 데이터를 의미할 수 있다.
컨트롤러(200)는 집합 형성기(210), 출력 추가기(230), 연관 입력 추가기(250) 및 연관 출력 추가기(270)을 포함할 수 있다.
집합 형성기(210)는 출력 데이터와 연관된 입력 데이터를 조합하여 테스트 케이스의 집합을 형성할 수 있다. 상술한 바와 같이, 도 2의 컴포넌트 c1에서 출력 데이터와 연관된 입력 데이터는 y1.1.requiredX={x1.1, x1.2}로 나타낼 수 있다. 즉, 출력 y1.1에 연관된 입력 데이터는 x1.2 및 x1.2를 의미할 수 있다.
집합 형성기(210)는 입력 집합의 크기가 1인 경우, 입력 집합을 구성하는 입력의 입력 데이터를 테스트 케이스의 집합에 추가할 수 있다. 입력 집합의 크기가 2 이상인 경우, 입력 집합을 구성하는 제1 입력과 제2 입력의 모든 데이터를 조합하여 테스트 케이스의 집합에 추가하고, 입력 집합의 크기가 3 이상인 경우, 제1 입력과 제2 입력의 모든 데이터의 조합이 추가된 테스트 케이스의 집합과 입력 집합을 구성하는 나머지 입력의 입력 데이터를 조합하여 테스트 케이스의 집합에 추가할 수 있다.
제1 입력과 제2 입력은 입력 집합을 구성하는 입력들 중 임의의 두 입력을 구분하기 위한 것으로, 특정 입력을 제한하지는 않는다. 예를 들어, 입력 집합이 {x1, x2}인 경우 x1이 제1 입력, x2가 제2 입력을 의미할 수 있고, 그 반대도 가능하다. 여기서 입력 집합의 입력은 x1 및 x2를 의미하고 입력 데이터는 각 입력의 구성요소를 의미할 수 있다. 예를 들어, 표 2에서 입력 x1의 입력 데이터는 TRUE 및 FALSE를 의미할 수 있다.
출력 추가기(230)는 입력 데이터에 대응하는 출력 데이터를 테스트 케이스의 집합에 추가할 수 있다. 입력 데이터에 대응하는 출력 데이터란 특정 입력 데이터가 컴포넌트에 입력되었을 때 출력되어야 하는 또는 예상되는 특정 출력 결과를 의미할 수 있다. 예를 들어, 표 2에서 상술한 바와 같이, 테스트 케이스 t1에 입력 x1 및 x2의 입력 데이터가 모두 FALSE인 경우 입력 데이터에 대응하는 출력은 FALSE이고, 출력 추가기(230)는 FALSE를 테스트 케이스의 집합에 추가할 수 있다.
연관 입력 추가기(250)는 추가된 출력 데이터와 연관된 입력 데이터가 내부 입력 데이터인 경우, 추가된 출력 데이터와 연관된 입력 데이터를 조합하여 테스트 케이스의 집합에 추가할 수 있다.
내부 입력은 CBRS를 구성하는 컴포넌트의 출력으로부터 파생된 입력을 의미한다. 예를 들어, 도 2에서 x3.1 및 x3.2은 각각 컴포넌트의 출력인 y1.1 및 y2.1로부터 파생된 입력으로, 컴포넌트 c3의 내부 입력을 의미할 수 있다.
연관 출력 추가기(270)는 연관 입력 추가기(250)에 의해 추가된 입력 데이터에 대응하는 출력 데이터를 테스트 케이스의 집합에 추가할 수 있다.
이하에서 도 4 내지 도 7을 참조하여 컨트롤러의 동작을 설명한다.
도 4는 도 1에 도시된 컨트롤러가 테스트 케이스를 생성하는 알고리즘의 예를 나타낸다.
도 4의 알고리즘은 컨트롤러(200)가 수행하는 메인 루틴 알고리즘을 의미할 수 있다. 도 4의 알고리즘은 컴포넌트 집합 C를 입력으로 하여 최종적으로 테스트 케이스 집합 Tresult를 결과로 반환할 수 있다. 2 번째 줄의 반복문은 컴포넌트 집합 C의 각각의 컴포넌트 c에 대한 것이고, 3 번 째 줄의 반복문은 각 컴포넌트 c의 각각의 출력 y에 대한 반복문을 의미할 수 있다.
4 번째 줄에서 컨트롤러(200)는 테이트 케이스의 집합 T를 선언하고, 5 번째 줄에서는 Combinateall 함수를 통해 y와 연관된 입력 집합 y.requiredX에 대한 모든 조합을 생성하여, T에 추가할 수 있다. 상술한 집합 형성기(210) 및 연관 입력 추가기(250)는 Combinateall 함수가 수행하는 동작을 수행할 수 있다.
이 과정에서 컨트롤러(200)는 하나의 출력 y에 대한 모든 조합으로 각 테스트 케이스에 채워지지 않은 테스트 데이터를 6~8 번째 줄들의 명령에 의해 채울 수 있다. 컨트롤러(200)는 T의 각 테스트 케이스 t에 대해 현재 조합을 실행 중인 출력 y와 연관된 입력 하나를 꺼내 Trace 함수를 수행할 수 있다. 상술한 출력 추가기(230) 및 연관 출력 추가기(270)는 Trace 함수가 수행하는는 동작을 수행할 수 있다.
출력 추가기(230)가 Trace 함수를 수행함으로써, 각 테스트 케이스에 추가된 테스트 데이터에 따라 결정되는 모든 테스트 데이터가 추가됨으로써 최종 테스트 케이스 Tresult를 생성할 수 있다.
컨트롤러(200)는 Combinateall 함수와 Trace 함수를 재귀적으로 호출함으로써, 입력된 컴포넌트의 모든 입/출력 데이터에 대한 조합을 추가할 수 있다.
도 5는 도 4에 나타난 CombinateAll 함수의 알고리즘의 예를 나타낸다.
집합 형성기(210)는 Combinateall 함수를 수행함으로써, 입력 집합을 구성하는 입력의 입력 데이터를 모두 조합할 수 있다. 집합 형성기(210)는 입력 집합의 크기 |X|가 1일 경우, 테스트 케이스 집합 T에 입력 x(x∈X)의 모든 테스트 데이터를 추가한 뒤 반환한다.
집합 형성기(210)는 입력 집합의 크기 |X|가 2 이상일 경우, 제1 입력 x1과 제2 입력 x2의 입력 데이터 간의 모든 조합을 생성하여, T에 추가할 수 있다. 집합 형성기(210)는 |X|가 2인 경우 생성된 테스트 케이스의 집합 T를 반환하고 함수를 마치며, |X|가 3 이상일 경우에는 테스트 케이스의 집합 T와 i(i는 3 이상의 정수)번째 입력인 xi의 입력 데이터와의 모든 조합을 생성하여 T에 추가할 수 있다. 집합 형성기(210)는 이 과정을 모든 원소에 대하여 반복하여 수행할 수 있다.
도 6은 도 5에 나타난 Combination 함수의 알고리즘의 예를 나타낸다.
집합 형성기(210)는 Combination 함수를 수행함으로써 테스트 케이스의 집합 T와 하나의 입력 x를 입력 받아, T의 모든 테스트 케이스와 x의 모든 테스트 데이터에 대한 조합을 수행하고, 새롭게 생성한 테스트 케이스 집합 T2를 반환할 수 있다.
도 7은 도 4에 나타난 Trace 함수의 알고리즘의 예를 나타낸다.
Trace 함수는 테스트 케이스 t에 출력 y에 의해 결정되는 테스트 데이터들을 추가할 수 있다.
출력 추가기(230)는 Trace 함수를 수행함으로써, 테스트 케이스 t의 y 값을 만족하는 y.requiredX의 출력 데이터의 조합을 y.Texpected로부터 찾아 t에 추가할 수 있다.
그 후, 연관 입력 추가기(250)는 Combinateall 함수를 수행하여 추가된 출력 데이터와 연관된 입력 데이터의 조합을 t에 추가할 수 있다.
연관 출력 추가기(270)는 Trace 함수를 재귀적으로 호출함으로써, 각 입력(x∈y.requiredX)을 파생시킨 출력 x.ouput에 대해 Trace 함수를 수행할 수 있다.
이하에서 도 2 내지 도 7을 참조하여 테스트 케이스 생성 장치(10)의 동작을 예를 들어 설명한다.
도 4의 메인 루틴의 2~3 번째 줄에 의한 컴포넌트 출력의 처리 순서를 y1.1, y2.1, y3.1의 순서로 진행된다고 가정한다. 메인 루틴의 5 번째 줄에서 y1.1.requiredX는 {x1.1, x1.2}이고, 모든 조합을 T에 추가하면 표 3과 같다.
T x1.1 x1.2 x2.1 x2.2 x3.1(y1.1) x3.2(y2.1) y3.1
t1 0 0
t2 0 1
t3 1 0
t4 1 1
도 4의 6번째 줄에서 선택된 테스트 케이스가 표 3의 t1일 때, Trace 함수의 수행 과정에서 출력 y1.1과 연관 관계를 갖는 입력 x1.1 및 x1.2과의 테스트 케이스 (0, 0)에 대한 y1.1의 예상 결과 값은 0이므로 t1의 y1.1의 자리에 값을 채울 수 있다. Trace 함수의 5~8 번째 줄에서는 의 모든 연관된 입력 데이터가 외부 입력이므로 넘어가게 된다.
t2, t3, t4에 대해서도 동일하게 수행하면 표 4와 같이 x3.1에 대한 테스트 데이터가 채워지게 된다. 메인 루틴의 3번째 줄에서 선택된 출력이 y2.1 일 때, 알고리즘의 수행 결과에 의해 표 5와 같이 의 값이 채워진다.
T x1.1 x1.2 x2.1 x2.2 x3.1(y1.1) x3.2(y2.1) y3.1
t1 0 0 0
t2 0 1 1
t3 1 0 1
t4 1 1 0
T x1.1 x1.2 x2.1 x2.2 x3.1(y1.1) x3.2(y2.1) y3.1
t1 0 0 0 0 0 1
t2 0 1 0 1 1 0
t3 1 0 1 0 1 0
t4 1 1 1 1 0 1
그림2의 메인루틴의 3번째 줄에서 마지막 y3.1 에 대한 수행에서 Trace 함수에 의해 예상 결과 값이 결정되고, 현재까지 생성된 의 조합 (0, 1), (1, 0) 이외에 추가적으로 만족되어야 하는 조합 요구사항 (0, 0), (1, 1)이 표 6과 같이 채워진다.
T x1.1 x1.2 x2.1 x2.2 x3.1(y1.1) x3.2(y2.1) y3.1
t1 0 0 0 0 0 1 0
t2 0 1 0 1 1 0 0
t3 1 0 1 0 1 0 0
t4 1 1 1 1 0 1 0
t5 0 0
t6 1 1
표 6의 테스트 케이스 집합에서 아직 할당되지 못한 t5, t6의 x1.1, x1.2, x2.1, x2.2의 테스트 데이터와 y3.1에 대한 예상 결과 값이 생성되어 표 7과 같이 최종 테스트 케이스 집합을 완성할 수 있다.
T x1.1 x1.2 x2.1 x2.2 x3.1(y1.1) x3.2(y2.1) y3.1
t1 0 0 0 0 0 1 0
t2 0 1 0 1 1 0 0
t3 1 0 1 0 1 0 0
t4 1 1 1 1 0 1 0
t5 0 0 0 0 0 0 0
t6 0 1 1 1 1 1 1
도 8은 테스트 케이스 생성 장치의 동작의 일 예시이다.
도 8의 테스트 대상 CBRS는 장애물을 감지하여 이동 로봇의 진행 방향을 결정하고, 상황에 맞는 메시지를 생성하는 시스템이다. 도 8의 시스템은 거리 센서 컴포넌트(Cdsc), 모바일 컴포넌트(Cmc), 문장 생성 컴포넌트(Csgc), 제어 컴포넌트(Ccc)를 포함할 수 있다.
시스템은 거리 센서 컴포넌트가 좌측(dsc_in1), 전방(dsc_in2), 우측(dsc_in3) 센서 값을 읽고, 장애물의 방향(dsc_out1), 진행 가능한 방향(dsc_out2), 장애물과의 거리(dsc_out3)를 출력할 수 있다.
제어 컴포넌트는 이동 로봇의 속도(cc_in4)와 거리 센서 컴포넌트의 출력(cc_in1~cc_in3)을 받아 각각 문장 생성 컴포넌트와 모바일 컴포넌트로 출력할 수 있다.
문장 생성 컴포넌트는 제어 컴포넌트로부터 장애물의 방향(sgc_in1), 거리(sgc_in2), 생성할 문장의 언어(sgc_in3)를 입력으로 장애물에 대한 알림(sgc_out1)을 생성하여 출력할 수 있다.
모바일 컴포넌트는 제어 컴포넌트로부터 진행 가능한 방향(mc_in1), 이동 로봇의 속도(mc_in2)를 입력 받고, 이동 로봇의 회전각(mc_out2), 속도(mc_out1)를 출력할 수 있다.
dsc_in1, dsc_in2, dsc_in3, cc_in3와 sgc_in2의 테스트 데이터(TD) 집합은 {01, 02, 04}, cc_in1과 sgc_in1의 TD 집합은 {LEFT, RIGHT, MIDDLE, NONE}, cc_in2의 TD 집합은 {LEFT, RIGHT, FOREWARD, BACKWARD}, cc_in4의 TD 집합은 {0.2, 0.5}, sgc_in3의 TD 집합은 {KOREAN, ENGLISH, JAPANESE}, mc_in1의 TD 집합은 {0, 90, -90, 180}, mc_in2의 TD 집합은 {2, 5, 7, 10}일 수 있다.
CBRS 모델의 테스트 케이스 생성은 CBRS를 구성하는 개별 컴포넌트의 테스트 케이스의 생성과 그 결과를 기반으로 획득할 수 있다. 각 컴포넌트의 입/출력 명세에 따라 얻은 각 컴포넌트에 대한 단위 테스트 결과는 표 8~11과 같다.
dsc_in1 dsc_in2 dsc_in3 dsc_out1 dsc_out2 dsc_out3
0.1 0.1 0.1 MIDDLE NONE 0.1
0.1 0.1 0.2 MIDDLE LEFT 0.1
0.1 0.1 0.4 MIDDLE LEFT 0.1
0.1 0.2 0.4 LEFT MIDDLE 0.1
.....
0.4 0.2 0.1 NONE RIGHT 0.1
0.4 0.2 0.4 RIGHT LEFT 0.2
0.4 0.4 0.4 NONE LEFT 0.4
cc_in1 cc_in2 cc_in3 cc_in4 cc_out1 cc_out2 cc_out3 cc_out4
LEFT LEFT 0.1 2 LEFT 0.2 90 2
RIGHT RIGHT 0.2 5 RIGHT 0.4 -90 5
MIDDLE FORWARD 0.4 7 MIDDLE 1 0 7
NONE BACKWARD 0.1 10 NONE 0.2 180 10
sgc_in1 sgc_in2 sgc_in3 sgc_out1
LEFT 0.1 KOREAN 좌측 전방 0.1m에 장애물이 존재합니다.
LEFT 0.1 JAPANESE 左前方0.1Mに障害物が存在します.
LEFT 0.2 KOREAN 좌측 전방 0.2m에 장애물이 존재합니다.
LEFT 0.2 ENGLISH An obstacle is at 0.2m ahead of the left.
.....
NONE 0.4 KOREAN 전방에 장애물이 존재하지 않습니다.
NONE 0.4 JAPANESE 前方に障害物が存在しません.
mc_in1 mc_in2 mc_out1 mc_out2
90 5 90 2
-90 10 -90 5
0 5 0 7
180 10 180 10
CBRS 기능 검증에서 100%의 조합 커버리지를 만족하기 위해 도 8의 시스템 상에 존재하는 연관 관계에 대한 모든 조합이 생성되어야 한다. 시스템 모델의 연관 관계는 표 12와 같이 나타낼 수 있다. 표 12는 각 출력에 영향을 주는 입력 집합간의 관계, 즉 연관 관계를 나타낼 수 있다. 조합 테스트 시 각 연관 관계에 대한 모든 조합의 수는 연관 관계 집합에 포함된 입력의 테스트 데이터 수를 모두 곱한 값과 같을 수 있다.
연관 관계명 관련 출력 연관 관계 입력 집합 조합수
Figure 112017052612581-pat00001
dsc_out1 {dsc_in1, dsc_in2, dsc_in3} 3×3×3=27
Figure 112017052612581-pat00002
dsc_out2 {dsc_in1, dsc_in2, dsc_in3} 3×3×3=27
Figure 112017052612581-pat00003
dsc_out3 {dsc_in1, dsc_in2, dsc_in3} 3×3×3=27
Figure 112017052612581-pat00004
cc_out1 {cc_in1} 4
Figure 112017052612581-pat00005
cc_out2 {cc_in3} 3
Figure 112017052612581-pat00006
cc_out3 {cc_in2} 4
Figure 112017052612581-pat00007
cc_out4 {cc_in4} 2
Figure 112017052612581-pat00008
sgc_out1 {sgc_in1, sgc_in2, sgc_in3} 4×3×3=36
Figure 112017052612581-pat00009
mc_out1 {mc_in2} 4
Figure 112017052612581-pat00010
mc_out2 {mc_in1} 4
도 8의 시스템 모델의 모든 조합(All combination)의 개수는 외부 입력 dsc_in1, dsc_in2, dsc_in3, sgc_in1, cc_in4의 각 테스트 데이터 수의 곱인 3×3×3×4×4=532일 수 있다. 이를 기반으로 테스트 케이스 축소율을 비교할 수 있다. 테스트 케이스 축소율은 시스템의 외부 입력에 대한 모든 조합의 수에 대한 축소된 테스트 케이스의 수로 다음과 같이 계산할 수 있다.
축소율=The number of reduced test cases / The number of all combination * 100
컨트롤러(200)의 테스트 케이스의 생성 과정은 s1-s4와 같이 나타낼 수 있다.
s1) 컨트롤러(200)는
Figure 112017052612581-pat00011
에 대한 모든 조합을 생성한다.
Figure 112017052612581-pat00012
Figure 112017052612581-pat00013
Figure 112017052612581-pat00014
는 연관관계 입력 집합이 동일하기 때문에
Figure 112017052612581-pat00015
Figure 112017052612581-pat00016
에 대해서는 테스트 케이스가 자동적으로 생성될 수 있다. dsc_in1, dsc_in2, dsc_in3의 조합이 생성됨에 따라 파생된 출력 cc_in1(dsc_out1), cc_in2(dsc_out2), cc_in3(dsc_out3)가 결정된다.
s2) 컨트롤러(200)는
Figure 112017052612581-pat00017
에 대한 모든 조합을 생성한다.
Figure 112017052612581-pat00018
Figure 112017052612581-pat00019
Figure 112017052612581-pat00020
는 연관관계 입력 집합이 동일하기 때문에
Figure 112017052612581-pat00021
Figure 112017052612581-pat00022
에 대해서는 테스트 케이스가 자동적으로 생성될 수 있다. 컨트롤러(200)는 입력의 조합에 따라 파생된 출력 cc_out1(sgc_in1), cc_out2(sgc_in2), cc_out3(mc_in1)을 결정할 수 있다.
s3) 컨트롤러(200)는
Figure 112017052612581-pat00023
에 대한 조합을 수행한다. 컨트롤러(200)는
Figure 112017052612581-pat00024
의 연관 입력 집합 sgc_in1, sgc_in2, sgc_in3의 모든 조합을 테스트 케이스 목록에 추가할 수 있다. 테스트 케이스 28~51은 기존의 테스트 케이스에 sgc_in3을 추가하는 것만으로 을 모두 만족할 수 없기 때문에 컨트롤러(200)가 새롭게 생성한 테스트 케이스일 수 있다.
s4) 컨트롤러(200)는 마지막으로
Figure 112017052612581-pat00025
Figure 112017052612581-pat00026
에 대한 모든 조합을 테스트 케이스 1~4에 추가하여 테스트 케이스를 모두 생성할 수 있다.
이렇게 생성한 테스트 케이스는 컴포넌트 출력에 대해 입력들의 가능한 모든 조합을 포함하기 때문에 조합 커버리지는 100%이다. 또한 모든 조합을 만족하면서 생성된 테스트 케이스의 수는 표 13에서 보듯이 51개이다. 표 13에서 첨자 s1-s4는 위에서 사용한 단계를 의미할 수 있다. 즉 표 13에서 s1은 단계 s1에서 생성된 데이터임을 의미한다.
Index dsc_in1 dsc_in2 dsc_in3 (sgc_in1) (sgc_in2) sgc_in3 cc_in4
1 0.1s1) 0.1s1) 0.1s1) MIDDLEs2) 0.1s2) KOREANs3) 10s4)
2 0.1s1) 0.1s1) 0.2s1) MIDDLEs2) 0.1s2) ENGLISHs3) 7s4)
3 0.1s1) 0.1s1) 0.4s1) MIDDLEs2) 0.1s2) JAPANESs3) 5s4)
4 0.1 s1) 0.2s1) 0.1s1) LEFTs2) 0.1s2) KOREANs3) 2s4)
5 0.1s1) 0.2s1) 0.2s1) LEFTs2) 0.1s2) ENGLISHs3) -
6 0.1s1) 0.2s1) 0.4s1) LEFTs2) 0.1s2) JAPANESs3) -
7 0.1s1) 0.4s1) 0.1s1) LEFTs2) 0.1s2) - -
8 0.1s1) 0.4s1) 0.2s1) LEFTs2) 0.1s2) - -
9 0.1s1) 0.4s1) 0.4s1) LEFTs2) 0.1s2) - -
10 0.2s1) 0.1s1) 0.1s1) MIDDLEs2) 0.1s2) - -
11 0.2s1) 0.1s1) 0.2s1) MIDDLEs2) 0.1s2) - -
12 0.2s1) 0.1s1) 0.4s1) MIDDLEs2) 0.1s2) - -
13 0.2s1) 0.2s1) 0.1s1) RIGHTs2) 0.1s2) KOREANs3) -
14 0.2s1) 0.2s1) 0.2s1) NONEs2) 0.2s2 KOREANs3) -
15 0.2s1) 0.2s1) 0.4s1) NONEs2) 0.2s2 ENGLISHs3) -
16 0.2s1) 0.4s1) 0.1s1) RIGHTs2) 0.1s2) -
17 0.2s1) 0.4s1) 0.2s1) NONEs2) 0.2s2 JAPANESs3) -
18 0.2s1) 0.4s1) 0.4s1) NONEs2) 0.2s2 - -
19 0.4s1) 0.1s1) 0.1s1) MIDDLEs2) 0.1s2) - -
20 0.4s1) 0.1s1) 0.2s1) MIDDLEs2) 0.1s2) - -
21 0.4s1) 0.1s1) 0.4s1) MIDDLEs2) 0.1s2) - -
22 0.4s1) 0.2s1) 0.1s1) RIGHTs2) 0.1s2) ENGLISHs3) -
23 0.4s1) 0.2s1) 0.2s1) NONEs2) 0.2s2) - -
24 0.4s1) 0.2s1) 0.4s1) NONEs2) 0.2s2) - -
25 0.4s1) 0.4s1) 0.1s1) RIGHTs2) 0.1s2) JAPANESs3) -
26 0.4s1) 0.4s1) 0.2s1) NONEs2) 0.2s2) - -
27 0.4s1) 0.4s1) 0.4s1) NONEs2) 0.4s2) - -
28 0.4s3) 0.1s3) 0.4s3) MIDDLEs3) 0.2s3) KOREANs3) -
29 0.4s3) 0.1s3) 0.4s3) MIDDLEs3) 0.2s3) ENGLISHs3) -
30 0.4s3) 0.1s3) 0.4s3) MIDDLEs3) 0.2s3) JAPANESs3) -
31 0.4s3) 0.1s3) 0.4s3) MIDDLEs3) 0.4s3) KOREANs3) -
32 0.4s3) 0.1s3) 0.4s3) MIDDLEs3) 0.4s3) ENGLISHs3) -
33 0.4s3) 0.1s3) 0.4s3) MIDDLEs3) 0.4s3) JAPANESs3) -
34 0.1s3) 0.4s3) 0.4s3) LEFTs3) 0.2s3) KOREANs3) -
35 0.1s3) 0.4s3) 0.4s3) LEFTs3) 0.2s3) ENGLISHs3) -
36 0.1s3) 0.4s3) 0.4s3) LEFTs3) 0.2s3) JAPANESs3) -
37 0.1s3) 0.4s3) 0.4s3) LEFTs3) 0.4s3) KOREANs3) -
38 0.1s3) 0.4s3) 0.4s3) LEFTs3) 0.4s3) ENGLISHs3) -
39 0.1s3) 0.4s3) 0.4s3) LEFTs3) 0.4s3) JAPANESs3) -
40 0.4s3) 0.4s3) 0.2s3) RIGHTs3) 0.2s3) KOREANs3) -
41 0.4s3) 0.4s3) 0.2s3) RIGHTs3) 0.2s3) ENGLISHs3) -
42 0.4s3) 0.4s3) 0.2s3) RIGHTs3) 0.2s3) JAPANESs3) -
43 0.4s3) 0.4s3) 0.4s3) RIGHTs3) 0.4s3) KOREANs3) -
44 0.4s3) 0.4s3) 0.4s3) RIGHTs3) 0.4s3) ENGLISHs3) -
45 0.4s3) 0.4s3) 0.4s3) RIGHTs3) 0.4s3) JAPANESs3) -
46 0.4s3) 0.1s3) 0.4s3) NONEs3) 0.1s3) KOREANs3) -
47 0.4s3) 0.1s3) 0.4s3) NONEs3) 0.1s3) ENGLISHs3) -
48 0.4s3) 0.1s3) 0.4s3) NONEs3) 0.1s3) JAPANESs3) -
49 0.4s3) 0.4s3) 0.4s3) NONEs3) 0.4s3) KOREANs3) -
50 0.4s3) 0.4s3) 0.4s3) NONEs3) 0.4s3) ENGLISHs3) -
51 0.4s3) 0.4s3) 0.4s3) NONEs3) 0.4s3) JAPANESs3) -
주) ‘-’는 don’t care로 관련된 어떤 데이터를 넣어도 관계없음
IOReACT를 사용하여 생성하는 테스트 케이스 생성 과정에서 분석한 외부 입력의 연관관계 집합은 ={
Figure 112017052612581-pat00027
,
Figure 112017052612581-pat00028
,
Figure 112017052612581-pat00029
}이고, 각각
Figure 112017052612581-pat00030
={dsc_in1, dsc_in2, dsc_in3, sgc_in3},
Figure 112017052612581-pat00031
={cc_in4},
Figure 112017052612581-pat00032
={dsc_in1, dsc_in2, dsc_in3, sgc_in3}일 수 있다. IOReACT는 각 연관관계에 대해 모든 조합을 생성하며, 에 대한 모든 조합(All combination)
Figure 112017052612581-pat00033
Figure 112017052612581-pat00034
Figure 112017052612581-pat00035
를 모두 포함하기 때문에 생성되는 테스트 케이스의 수는 3×3×3×4=108 개일 수 있다. 그리고 생성된 테스트 케이스는
Figure 112017052612581-pat00036
의 조합에 의해 조합 요구사항
Figure 112017052612581-pat00037
,
Figure 112017052612581-pat00038
,
Figure 112017052612581-pat00039
,
Figure 112017052612581-pat00040
Figure 112017052612581-pat00041
를 만족시키고,
Figure 112017052612581-pat00042
에 의한 조합이 조합 요구사항
Figure 112017052612581-pat00043
,
Figure 112017052612581-pat00044
Figure 112017052612581-pat00045
를 만족시키기 때문에 100% 조합 커버리지를 만족시키게 된다.
즉, 생성한 테스트 케이스의 수에서 IOReACT는 108개, 테스트 케이스 생성 장치(10)는 51개를 생성하여, 약 두 배 가량의 차이를 보인다. 축소율에서 IOReACT는 79.69%, 테스트 케이스 생성 장치(10)는 90.41%를 보여 약 10%의 차이를 보였지만 조합 커버리지는 동일하다.
도 9는 테스트 케이스 생성 장치의 동작의 다른 예시이다.
도 9는 10개의 컴포넌트로 구성된 고급 네비게이션 기능을 수행하는 CBRS 시스템이다.
대상 시스템은 전역 맵 컴포넌트(Global map component, gmc)를 통해 맵 정보를 입력 받고, 위치 컴포넌트(localization comp., lc)와 경로 생성 컴포넌트(Path planning comp., ppc)로 경로를 생성할 수 있다. 생성한 경로를 주행 중에 레이저 스캐너 컴포넌트(Laser Scanner comp., lsc), 장애물 회피 컴포넌트(Obstacle avoidance comp., oac), 범퍼 센서 컴포넌트(Bumper sensor comp., bsc), 사용자 인식 컴포넌트(User detect comp., udc)는 사고 방지를 위해 경로를 수정하고, 모바일 컴포넌트(Mobile comp., mc)를 통해 주행할 수 있다. 이러한 컴포넌트들을 모두 제어하는 네비게이션 컴포넌트(navigation comp., nc)와 생성된 정보를 말하게 하는 문장 생성 컴포넌트(statement gen. comp., sgc)를 사용할 수 있다.
이러한 컴포넌트들의 연결이 도 9에 있으며 각 컴포넌트에는 입/출력 이름이 표시되어 있으며, 표시된 입/출력 이름의 콜론(:) 뒤에 있는 수는 테스트 데이터의 수를 의미할 수 있다. 즉, bsc_in1:2는 bsc로 들어가는 입력으로 테스트 데이터의 수는 2개를 의미할 수 있다. 컴포넌트 내부와 컴포넌트 간의 연결 관계로부터 구한 입/출력 연관 관계 조합은 표 14와 같이 나타낼 수 있다.
입/출력 연관관계 집합
Figure 112017052612581-pat00046
=
Figure 112017052612581-pat00047
={lsc_in1}
Figure 112017052612581-pat00048
={lc_in1, lc_in2}
Figure 112017052612581-pat00049
=
Figure 112017052612581-pat00050
={gmc_in1}
Figure 112017052612581-pat00051
={oac_in2, oac_in3}
Figure 112017052612581-pat00052
=
Figure 112017052612581-pat00053
={oac_in1}
Figure 112017052612581-pat00054
={ppc_in1, ppc_in2, ppc_in3}
Figure 112017052612581-pat00055
={nc_in1}
Figure 112017052612581-pat00056
=
Figure 112017052612581-pat00057
={nc_in2}
Figure 112017052612581-pat00058
={nc_in3}
Figure 112017052612581-pat00059
={nc_in4, nc_in5, nc_in7}
Figure 112017052612581-pat00060
={nc_in4, nc_in5, nc_in6, nc_in7}
Figure 112017052612581-pat00061
={sgc_in1, sgc_in2, sgc_in3, sgc_in4}
Figure 112017052612581-pat00062
={bsc_in1}
Figure 112017052612581-pat00063
={udc_in1, udc_in2, udc_in3, udc_in4}
Figure 112017052612581-pat00064
={mc_in1}
테스트 케이스 생성 장치(10)가 생성한 테스트 케이스는 표 15와 같이 나타낼 수 있다. 테스트 케이스 생성 장치(10)는 먼저 시스템에 포함된 모든 컴포넌트에 존재하는 출력들에 대해 임의의 순서로 테스트 케이스 생성 알고리즘을 수행할 수 있다.
먼저, sgc_out1에 대한 조합의 수는 총 2×4×5×4=160 개이고, 그에 따라 해당 입/출력과 연관된 입/출력에 대한 값이 결정되고, 다음과 같은 과정을 모든 출력 집합의 원소에 각각 적용할 수 있다. 이때, 중복되는 테스트 케이스는 결합하여, 최종적으로 생성되는 테스트 케이스는 표 15와 같으며, 테스트 케이스 전체 개수는 232개이다.
모든 조합을 수행하였을 때, 12288개의 조합이 생성될 수 있으므로 테스트 케이스 생성 장치(10)의 테스트 케이스 축소율은 (12288-232)/12288100%=98.11%이다. 또한, 테스트 케이스 생성 장치(10)에 의해 컴포넌트 상에 존재하는 모든 출력에 대해 조합을 수행하기 때문에 조합 요구사항을 모두 만족시키며, 조합 커버리지는 100%이다.
Index gmc_in1 lsc_in1 nc_in1 nc_in2 bdc_in1 udc_in1 udc_in2 udc_in3 udc_in4 sgc_in1
1 office INTER VALID INVAL 1 0.5 0.5 0.5 2.0 KOR
2 office INTER VALID VALID 1 0.5 0.5 0.5 3.1 KOR
3 office INTER INV... INVAL 1 0.5 0.5 0.5 2.0 KOR
4 office INTER INV... VALID 1 0.5 0.5 0.5 3.1 KOR
5 office SOURC VALID INV... 1 0.5 0.5 1.2 2.0 KOR
......
298 office RIGHT INVAL VALID 0 2.9 2.2 2.2 3.1 ENG
299 office LEFT VALID INVAL 0 2.9 2.2 4.0 2.0 ENG
230 office SOURC VALID VALID 0 2.9 2.2 4.0 3.1 ENG
231 office SOURC INVAL INVAL 0 2.9 2.2 4.0 2.0 ENG
232 office SOURC INVAL VALID 0 2.9 2.2 4.0 3.1 ENG
IOReACT 방식에서는 먼저 시스템의 외부 출력 mc_out1, sgc_out1에 대해 각각 입/출력 연관관계를 분석하여 출력과 관련된 합집합을 구할 수 있다. 예를 들면, mc_out1과 관련된 출력들은 집합 {nc_out5, ppc_out1, gmc_out1, nc_out1, nc_out2, oac_out1, nc_out3, lc_out1, gmc_out2, lsc_out2, udc_out1}이며, 해당 출력들에 대한 모든 입/출력 연관관계의 합집합을 구할 수 있다. 따라서 mc_out1에 대해 도출되는 입/출력 연관관계는
Figure 112017052612581-pat00065
={gmc_in1, nc_in1, nc_in2, udc_in1, udc_in2, udc_in3, udc_in4}일 수 있다.
sgc_out1에 대해서도 위와 같은 과정을 수행하면, sgc_out1에 대해 도출되는 입/출력 연관관계는
Figure 112017052612581-pat00066
={gmc_in1, bdc_in1, nc_in1, nc_in2, lsc_in1, udc_in1, udc_in2, udc_in3, udc_in4, sgc_in1}일 수 있다.
이때,
Figure 112017052612581-pat00067
Figure 112017052612581-pat00068
이기 때문에 IOReACT는 최종 입/출력 연관관계 집합을 R={
Figure 112017052612581-pat00069
}로 결정하고,
Figure 112017052612581-pat00070
에 속한 입력들을 모두 조합할 수 있다. 따라서, 테스트 케이스 생성 결과는 표 14와 같고, 생성된 테스트 케이스의 전체 개수는 각 테스트 데이터 크기의 곱인 1×6×2×2×2×4×4×4×2×2=12288과 같을 수 있다. 즉 IOReACT에서는 이러한 관계를 모든 연관(all Combination) 관계로 보고 처리할 수 있다.
IOReACT의 입/출력 연관관계 도출 과정에서 산출된 결과는 모든 외부 입력 집합이며, 이에 대한 모든 조합을 구하였으므로, 생성된 테스트 케이스의 수는 입력 집합의 모든 조합(All combination) 수와 동일할 수 있다. 따라서 축소율은 0%이고, 조합 커버리지는 당연히 100%를 만족할 수 있다.
IOReACT와 테스트 케이스 생성 장치(10)를 통한 테스트 케이스 생성 결과를 비교하면 표 16과 같다. IOReACT는 시스템 상에 존재하는 입/출력 연관 관계의 교집합이 발생할 경우, 해당 입력들에 대해 모든 조합을 갖도록 테스트 케이스를 생성하기 때문에 이러한 상황에서 매우 취약함을 보일 수 있다.
도 9의 예시에서는 입/출력 연관 관계 간의 합집합이 모든 외부 입력이기 때문에, IOReACT는 테스트 케이스 축소율 0%로 테스트 케이스를 전혀 축소시키지 못했다. 반면, 테스트 케이스 생성 장치(10)는 시스템 내부에 존재하는 각각의 입/출력 연관관계를 적절히 고려하여, 테스트 케이스를 232개로 축소시켰으며, 테스트 케이스 축소율은 98.11%를 보인다.
newIOReCT IOReACT
CBRS 1 (연관관계 집합 간 교집합 존재 할 때, 그림5 ) 51
(90.41%)
108
(79.69%)
CBRS 2 (연관관계 집합 간 교집합 존재 할 때, 그림 6) 232
(98.11%)
12288
(0%)
CBRS 3 (연관관계 집합 간 교집합 존재하지 않을 때,그림 7) 6912
(99.98%)
6912
(99.98%)
( )안의 숫자는 축소율
도 10은 테스트 케이스 생성 장치의 동작의 또 다른 예시이다.
도 10은 모든 입/출력 간에 연관 관계 및 교집합이 없는 CBRS 시스템을 개념적으로 나타낼 수 있다. 대상 시스템은 도 10과 같이 두 개의 컴포넌트로 구성되며, 각각 5개의 입력을 받아, 각각 출력을 산출할 수 있다. 해당 출력은 다른 출력과 관련된 입력들에 영향을 받지 않을 수 있다. 각 입력에 대한 테스트 데이터의 수는 도 10에 표시되어 있다.
시스템 상에 존재하는 모든 입/출력 연관관계 집합은 이며, 각각 {_in1, _in2, _in3, _in4, _in5}, ={_in1, _in2, _in3}, ={_in4, _in5}이다. 조합 커버리지 100%를 만족하기 위해서는 테스트 케이스 집합이 위 입/출력 연관관계에 속한 입력 집합에 대해 모든 조합을 갖도록 해야 한다.
테스트 케이스 생성 장치(10)는 도 4의 알고리즘에 따라 테스트 케이스들을 생성할 수 있다. c1_out1에 대해 연관된 모든 입력들의 조합 8×3×4×8×9=6912개를 생성하고, 다음 c2_out1에 대한 모든 조합, 7×7×9=441개를 이전에 생성한 테스트 케이스 집합에 추가한다. 마지막으로 c2_out2에 대한 모든 조합, 4×4=16개를 생성한 뒤 이미 생성한 테스트 케이스 집합에 추가함으로써, 최종 테스트 케이스 집합을 완성할 수 있다.
이때, c2_out1, c2_out2에 대한 조합 수행에서 c1_out1에 대한 조합에 모두 통합 가능하기 때문에 최종 테스트 케이스 수는 c1_out1의 모든 조합 수 6912개가 될 수 있다. 따라서 조합 알고리즘에 의해 c1_out1, c2_out1, c2_out2에 대한 조합이 순차적으로 수행되므로, 각각의 입/출력 연관관계에 대한 조합을 모두 생성하게 되므로 조합 커버리지는 100%를 만족할 수 있다.
모든 외부 입력에 대한 전체 테스트 케이스 조합 수는 모든 입력의 테스트 데이터 수를 곱하여야 하므로 48,771,072개일 수 있다. 따라서 축소율은 약 99.98%일 수 있다.
IOReACT 방법은 도 10의 시스템으로부터 각각 최종 입/출력 연관관계를 생성하고, 테스트 케이스를 생성할 수 있다. 각 입/출력 연관관계에 대해 조합을 수행함에 따라
Figure 112017052612581-pat00071
에 대한 모든 조합 6912개,
Figure 112017052612581-pat00072
에 대한 모든 조합 441개,
Figure 112017052612581-pat00073
에 대한 모든 조합 16개를 생성하고 union 알고리즘을 적용하면 총 6912개의 테스트 케이스를 생성할 수 있다. 물론 각 입/출력 연관관계에 대해 독립적으로 테스트 케이스를 생성하고 통합하였으므로 100%의 조합 커버리지를 만족할 수 있다.
만일 컴포넌트 기반 시스템이 c1_out1의 연관 관계처럼 모든 입력들이 하나의 출력에 관련되어 있다면 테스트 케이스 생성 장치(10)의 생성 방법과 IOReACT 방법은 차이가 없을 수 있다. 그러나 도 10에서는 3개의 출력이 존재하고 각각 이 출력에 관련된 입력들이 다르기 때문에 최종 테스트 케이스의 수가 축소될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, 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 (14)

  1. 컴포넌트 기반 로봇 시스템의 컴포넌트를 테스트하는데 있어서,
    상기 컴포넌트의 입/출력 데이터를 수신하는 단계; 및
    상기 컴포넌트의 입/출력 데이터를 입/출력 연관 관계에 기초하여 조합하고, 상기 조합을 통하여 테스트 케이스의 집합을 형성함으로써, 상기 컴포넌트를 테스트하기 위한 테스트 케이스를 생성하는 단계
    를 포함하고,
    상기 생성하는 단계는,
    상기 출력 데이터와 연관되고, 상기 테스트 케이스의 집합에 추가되지 않은 상기 입력 데이터를 조합하여 상기 테스트 케이스의 집합을 형성하는 단계; 및
    상기 입력 데이터에 대응하고, 상기 테스트 케이스의 집합에 추가되지 않은 출력 데이터를 상기 테스트 케이스의 집합에 추가하는 단계
    를 포함하고,
    상기 형성하는 단계 및 상기 추가하는 단계는 상기 입/출력 연관 관계가 교집합을 포함하는 경우 및 교집합을 포함하지 않는 경우에 동일하게 수행되는
    테스트 케이스 생성 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 형성하는 단계는,
    입력 집합의 크기가 1인 경우, 상기 입력 집합을 구성하는 입력의 입력 데이터를 상기 테스트 케이스의 집합에 추가하는 단계
    를 포함하는 테스트 케이스 생성 방법.
  4. 제1항에 있어서,
    상기 형성하는 단계는,
    입력 집합의 크기가 2 이상인 경우, 상기 입력 집합을 구성하는 제1 입력과 제2 입력의 모든 데이터를 조합하여 상기 테스트 케이스의 집합에 추가하는 단계; 및
    상기 입력 집합의 크기가 3 이상인 경우, 상기 제1 입력과 상기 제2 입력의 모든 데이터의 조합이 추가된 상기 테스트 케이스의 집합과 상기 입력 집합을 구성하는 나머지 입력의 입력 데이터를 조합하여 상기 테스트 케이스의 집합에 추가하는 단계
    를 포함하는 테스트 케이스 생성 방법.
  5. 제1항에 있어서,
    상기 생성하는 단계는,
    상기 추가된 출력 데이터와 연관된 입력 데이터가 내부 입력 데이터인 경우, 상기 추가된 출력 데이터와 연관된 입력 데이터를 조합하여 상기 테스트 케이스의 집합에 추가하는 단계; 및
    상기 추가된 입력 데이터에 대응하는 출력 데이터를 상기 테스트 케이스의 집합에 추가하는 단계
    를 더 포함하는 테스트 케이스 생성 방법.
  6. 제5항에 있어서,
    상기 생성하는 단계는,
    상기 테스트 케이스의 집합이 상기 컴포넌트의 모든 입/출력 데이터의 조합을 포함하도록 반복적으로 상기 입/출력 데이터를 추가하는
    테스트 케이스 생성 방법.
  7. 제1항에 있어서,
    상기 컴포넌트 기반 로봇 시스템은,
    입/출력 연관 관계 간 교집합이 존재하는 시스템 및 입/출력 연관 관계 간 교집합이 존재하지 않는 시스템을 포함하는
    테스트 케이스 생성 방법.
  8. 컴포넌트 기반 로봇 시스템의 컴포넌트를 테스트하는데 있어서,
    상기 컴포넌트의 입/출력 데이터를 수신하는 수신기; 및
    상기 컴포넌트의 입/출력 데이터를 입/출력 연관 관계에 기초하여 조합하고, 상기 조합을 통하여 테스트 케이스의 집합을 형성함으로써, 상기 컴포넌트를 테스트하기 위한 테스트 케이스를 생성하는 컨트롤러
    를 포함하고,
    상기 컨트롤러는,
    상기 출력 데이터와 연관되고, 상기 테스트 케이스의 집합에 추가되지 않은 상기 입력 데이터를 조합하여 상기 테스트 케이스의 집합을 형성하는 집합 형성기; 및
    상기 입력 데이터에 대응하고, 상기 테스트 케이스의 집합에 추가되지 않은 출력 데이터를 상기 테스트 케이스의 집합에 추가하는 출력 추가기
    를 포함하고,
    상기 컨트롤러는 상기 입/출력 연관 관계가 교집합을 포함하는 경우 및 교집합을 포함하지 않는 경우에 동일하게 동작하는
    테스트 케이스 생성 장치.
  9. 삭제
  10. 제8항에 있어서,
    상기 집합 형성기는,
    입력 집합의 크기가 1인 경우, 상기 입력 집합을 구성하는 입력의 입력 데이터를 상기 테스트 케이스의 집합에 추가하는
    테스트 케이스 생성 장치.
  11. 제8항에 있어서,
    상기 집합 형성기는,
    입력 집합의 크기가 2 이상인 경우, 상기 입력 집합을 구성하는 제1 입력과 제2 입력의 모든 데이터를 조합하여 상기 테스트 케이스의 집합에 추가하고, 상기 입력 집합의 크기가 3 이상인 경우, 상기 제1 입력과 상기 제2 입력의 모든 데이터의 조합이 추가된 상기 테스트 케이스의 집합과 상기 입력 집합을 구성하는 나머지 입력의 입력 데이터를 조합하여 상기 테스트 케이스의 집합에 추가하는
    테스트 케이스 생성 장치.
  12. 제8항에 있어서,
    상기 컨트롤러는,
    상기 추가된 출력 데이터와 연관된 입력 데이터가 내부 입력 데이터인 경우, 상기 추가된 출력 데이터와 연관된 입력 데이터를 조합하여 상기 테스트 케이스의 집합에 추가하는 연관 입력 추가기; 및
    상기 추가된 입력 데이터에 대응하는 출력 데이터를 상기 테스트 케이스의 집합에 추가하는 연관 출력 추가기
    를 더 포함하는 테스트 케이스 생성 장치.
  13. 제12항에 있어서,
    상기 컨트롤러는,
    상기 테스트 케이스의 집합이 상기 컴포넌트의 모든 입/출력 데이터의 조합을 포함하도록 반복적으로 상기 입/출력 데이터를 추가하는
    테스트 케이스 생성 장치.
  14. 제8항에 있어서,
    상기 컴포넌트 기반 로봇 시스템은,
    입/출력 연관 관계 간 교집합이 존재하는 시스템 및 입/출력 연관 관계 간 교집합이 존재하지 않는 시스템을 포함하는
    테스트 케이스 생성 장치.
KR1020170068513A 2017-06-01 2017-06-01 소프트웨어 컴포넌트 기반 로봇 시스템을 위한 입/출력 기반 테스트 케이스 생성 방법 및 이를 수행하는 장치 KR101825880B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170068513A KR101825880B1 (ko) 2017-06-01 2017-06-01 소프트웨어 컴포넌트 기반 로봇 시스템을 위한 입/출력 기반 테스트 케이스 생성 방법 및 이를 수행하는 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170068513A KR101825880B1 (ko) 2017-06-01 2017-06-01 소프트웨어 컴포넌트 기반 로봇 시스템을 위한 입/출력 기반 테스트 케이스 생성 방법 및 이를 수행하는 장치

Publications (1)

Publication Number Publication Date
KR101825880B1 true KR101825880B1 (ko) 2018-02-06

Family

ID=61228097

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170068513A KR101825880B1 (ko) 2017-06-01 2017-06-01 소프트웨어 컴포넌트 기반 로봇 시스템을 위한 입/출력 기반 테스트 케이스 생성 방법 및 이를 수행하는 장치

Country Status (1)

Country Link
KR (1) KR101825880B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200141853A (ko) 2019-06-11 2020-12-21 한국원자력연구원 시험용 테스트 케이스 생성 장치 및 방법
CN112579443A (zh) * 2020-12-08 2021-03-30 温氏食品集团股份有限公司 智慧测试机器人的自动化测试方法及平台

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"분산 테스트 환경 및 입출력 연관관계를 고려한 소프트웨어 컴포넌트 기반 시스템 테스트 자동화 프레임워크", 강정석, 강원대학교 대학원 일반대학원 : 전자통신공학과(2015.02.)*

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200141853A (ko) 2019-06-11 2020-12-21 한국원자력연구원 시험용 테스트 케이스 생성 장치 및 방법
CN112579443A (zh) * 2020-12-08 2021-03-30 温氏食品集团股份有限公司 智慧测试机器人的自动化测试方法及平台

Similar Documents

Publication Publication Date Title
KR102402111B1 (ko) 콘볼루션 신경망 정방향 연산 실행용 장치와 방법
CN111860812B (zh) 一种用于执行卷积神经网络训练的装置和方法
US20190147337A1 (en) Neural network system for single processing common operation group of neural network models, application processor including the same, and operation method of neural network system
KR20180012439A (ko) 회선 신경망에서 가속기 및 이의 동작 방법
US10706205B2 (en) Detecting hotspots in physical design layout patterns utilizing hotspot detection model with data augmentation
CN103092751B (zh) 一种云环境下基于用户行为模型的web应用性能测试系统
KR102171269B1 (ko) 이미지의 채색 완성 방법, 장치 및 컴퓨터 프로그램과 인공 신경망 학습 방법, 장치 및 컴퓨터 프로그램
CN111145076A (zh) 数据并行化处理方法、系统、设备及存储介质
US20210350230A1 (en) Data dividing method and processor for convolution operation
KR101825880B1 (ko) 소프트웨어 컴포넌트 기반 로봇 시스템을 위한 입/출력 기반 테스트 케이스 생성 방법 및 이를 수행하는 장치
CN103870335A (zh) 用于信号流编程的数字信号处理器代码的高效资源管理的系统和方法
KR102002732B1 (ko) 앙상블 모델을 이용한 심층 신경망 기반 데이터 처리 방법 및 장치
CN114008635A (zh) 神经网络逐层调试
US20150234978A1 (en) Cell Internal Defect Diagnosis
US9619598B2 (en) Input space reduction for verification test set generation
US10747601B2 (en) Failure estimation in circuits
Kempf et al. The ZuSE-KI-mobil AI accelerator SOC: overview and a functional safety perspective
US11941327B2 (en) Customizable reinforcement learning of column placement in structural design
US11748622B1 (en) Saving intermediate outputs of a neural network
CN112445621A (zh) 静态路由规划方法、装置、电子设备、存储介质
CN109558565B (zh) 运算方法、装置及相关产品
KR102613162B1 (ko) 3d 점군 데이터의 어노테이션 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램
JP6572668B2 (ja) 検査方法
US20210334643A1 (en) Processing unit for performing operations of a neural network
CN113396425B (zh) 加速方法、装置和片上系统

Legal Events

Date Code Title Description
AMND Amendment
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
R401 Registration of restoration