KR101132560B1 - 로봇 소프트웨어 컴포넌트를 위한 시뮬레이션 기반 인터페이스 테스팅 자동화 시스템 및 그 방법 - Google Patents
로봇 소프트웨어 컴포넌트를 위한 시뮬레이션 기반 인터페이스 테스팅 자동화 시스템 및 그 방법 Download PDFInfo
- Publication number
- KR101132560B1 KR101132560B1 KR1020100054212A KR20100054212A KR101132560B1 KR 101132560 B1 KR101132560 B1 KR 101132560B1 KR 1020100054212 A KR1020100054212 A KR 1020100054212A KR 20100054212 A KR20100054212 A KR 20100054212A KR 101132560 B1 KR101132560 B1 KR 101132560B1
- Authority
- KR
- South Korea
- Prior art keywords
- test
- component
- robot
- test case
- application
- 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/3696—Methods or tools to render software testable
-
- 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/3664—Environments for 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
- 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/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 로봇 소프트웨어 컴포넌트의 신뢰성을 검증하기 위한 테스팅 도구에 관련되며, 보다 특정하게는 로봇 소프트웨어 컴포넌트에 대한 인터페이스의 기능 및 동작성 테스트를 자동으로 수행하는 시뮬레이션 기반 인터페이스 테스팅 자동화 시스템 및 그 방법에 관련된다. 이에 따라, 로봇 소프트웨어 컴포넌트의 인터페이스 테스트를 효율적으로 수행할 수 있다. 특히, 테스트 수행에 필요한 테스트 케이스를 자동적으로 생성하여, 여러 언어에 대한 테스트 수행이 가능하고, 로봇에 적합한 테스트를 수행할 수 있다.
Description
본 발명은 로봇 소프트웨어 컴포넌트의 신뢰성을 검증하기 위한 테스팅 도구에 관련되며, 보다 특정하게는 로봇 소프트웨어 컴포넌트에 대한 인터페이스의 기능 및 동작성 테스트를 자동으로 수행하는 시뮬레이션 기반 인터페이스 테스팅 자동화 시스템 및 그 방법에 관련된다.
종래의 소프트웨어 컴포넌트 테스팅 방법은 테스트를 위해 필요한 정보에 따라 소스 코드 기반, BIT(Buillt-in Test) 기반, 및 컴포넌트 사용자 명세 기반으로 구분될 수 있다.
먼저, 소스 코드 기반의 테스팅 방법은 대상 소프트웨어의 소스 코드가 존재할 때, 소스 코드 정보를 이용하여 테스트 케이스를 생성하거나 또는 테스트를 수행하기 위한 테스트 드라이버 코드로서 소스 코드 상의 데이터 흐름 또는 제어 흐름 정보를 분석한다.
그리고, 상기 테스팅 방법은 기호 실행 기법 등을 이용하여 테스트 케이스를 자동으로 생성하고, 테스트 케이스를 자동으로 실행하기 위해 소스 코드 정보를 이용하여 테스트 드라이버 코드를 생성한다. 그러나, 상기 테스팅 방법은 컴포넌트의 소스 코드가 존재 하지 않을 경우에는 대상 소프트웨어의 테스트를 수행할 수 없는 문제가 있다.
또한, BIT 기반의 테스팅 방법은 컴포넌트의 테스트 가능성을 높이기 위해 테스트 케이스 및 테스트 드라이버 코드를 컴포넌트 안에 미리 내장하여 테스트를 수행하는 방법이다.
그러나, 상기 BIT 기반 테스팅 방법은 테스트 케이스 및 코드가 컴포넌트 자체에 추가됨에 따라 메모리 사용량나 컴포넌트의 소스 코드 크기가 커질 수 있으며 컴포넌트 개발자가 테스트 정보를 제공하지 않으면 테스트를 수행할 수 없는 단점이 있다.
컴포넌트 사용자 명세 기반의 테스팅 방법은 컴포넌트 개발자에 의해 제공되는 정보가 아닌 사용자 입장에서 컴포넌트를 테스트 하기 위한 방법으로 Spy 클래스 및 XML 어댑터(adapter) 모듈을 이용하여 테스트 명세와 컴포넌트 구현 사이의 의존관계를 분리 시켜 테스트의 재 사용성을 증가시키고 테스트를 자동으로 수행한다.
그러나, 상기 컴포넌트 사용자 명세 기반의 테스팅 방법은 테스트 수행에 필요한 테스트 케이스를 자동으로 생성하기 위한 방법을 제공하고 있지 않으며 Java와 같은 언어에만 테스트 수행이 가능한 단점이 있다.
한편, 로봇을 구현하기 위한 소프트웨어 컴포넌트는 다른 소프트웨어 컴포넌트와 다르게, 로봇 하드웨어와 실시간으로 상호 연동하면서 동작을 하는 것이 바람직하다. 따라서, 이러한 로봇 소프트웨어 컴포넌트를 테스트하기 위해서는, 로봇 하드웨어를 직접 개발해야 하는 번거로움이 있다.
또한, 로봇 하드웨어를 대신하여 테스트 스텁 모듈을 이용하더라도, 컴포넌트 개발자는 상기 테스트 스텁 모듈을 로봇 하드웨어에 상응하는 물리적 동작 및 기능을 모두 구현하는 데 많은 시간과 노력이 소비될 수 있다.
본 발명의 실시 예에 의하면, 로봇 소프트웨어 컴포넌트를 테스트하기 위한 테스트 케이스를 자동으로 생성하고 테스트 애플리케이션의 소스 코드를 생성할 수 있는 시뮬레이션 기반 인터페이스 테스팅 자동화 시스템 및 그 방법을 제공할 수 있다.
또한, 본 발명의 실시 예에 의하면, 로봇 소프트웨어 컴포넌트의 테스트를 위한 테스트 케이스 및 테스트 애플리케이션을 생성할 뿐 아니라, 상기 생성된 테스트 애플리케이션의 수행에서 상기 테스트 케이스에 대응하는 결과를 자동으로 독출할 수 있는 시뮬레이션 기반 인터페이스 테스팅 자동화 시스템 및 그 방법을 제공할 수 있다.
또한, 본 발명의 실시 예에 의하면, 로봇 하드웨어를 대신하여 로봇의 동작을 시뮬레이션할 수 있는 로봇 하드웨어 시뮬레이터를 이용함으로써, 상기 로봇 소프트웨어 컴포넌트의 테스트 대상 컴포넌트가 정상적으로 동작하는 지를 분석하고 보다 정확하게 테스트 가능한 시뮬레이션 기반 인터페이스 테스팅 자동화 시스템 및 그 방법을 제공할 수 있다.
본 발명의 일 측면에 의하면, 테스팅할 대상의 로봇 소프트웨어 컴포넌트에 관련된 인터페이스 표현 정보 및 테스트 명세정보를 기초로 테스트 케이스를 생성하는 단계와, 상기 테스트 케이스를 기초로 상기 로봇 소프트웨어 컴포넌트를 테스팅하기 위한 테스트 애플리케이션의 소스 코드를 생성하는 단계와, 상기 테스트 케이스를 이용하여 상기 테스트 애플리케이션의 소스 코드를 컴파일하고, 상기 컴파일된 테스트 애플리케이션의 수행에서 로봇 하드웨어 시뮬레이터와 상호 연동하여 상기 테스트 케이스에 대응하는 결과를 출력하는 단계를 포함하는 테스팅 자동화 방법을 제공한다.
본 발명의 다른 측면에 의하면, 테스팅할 대상의 로봇 소프트웨어 컴포넌트에 관련된 인터페이스 표현 정보 및 테스트 명세정보를 기초로 테스트 케이스 및, 테스트 애플리케이션의 소스 코드를 생성하는 테스팅 자동화 서버와, 상기 테스팅 자동화 서버에 의해 생성된 테스트 케이스를 이용하여 상기 테스트 애플리케이션의 소스 코드를 컴파일하고, 상기 컴파일된 테스트 애플리케이션의 수행에서 상기 테스트 케이스에 대응하는 결과를 출력하는 테스트 빌드 에이전트와, 상기 테스트 빌드 에이전트와 연동하여, 상기 테스트 빌드 에이전트의 수행에 따라 가상의 로봇 하드웨어 및 로봇 테스트 환경을 시뮬레이션으로 동작하는 로봇 하드웨어 시뮬레이터를 포함하는 테스팅 자동화 시스템을 제공한다.
본 발명의 실시 예에 의하면, 시뮬레이션 기반 로봇 S/W 컴포넌트 인터페이스 테스팅 자동화 도구를 제공하여, 로봇 소프트웨어 컴포넌트의 인터페이스 테스트를 효율적으로 수행할 수 있다.
특히, 본 발명의 실시 예에 의하면, 테스트 수행에 필요한 테스트 케이스를 자동적으로 생성하여, 여러 언어에 대한 테스트 수행이 가능하다.
또한, 본 발명의 실시 예에 의하면, 로봇 하드웨어 시뮬레이터를 제공함으로써, 로봇에 적합한 테스트를 수행할 수 있으며, 실제 로봇 하드웨어를 개발하기 전에도 테스트를 수행할 수 있는 장점이 있다.
도 1은 본 발명의 일 실시 예에 따른 로봇 소프트웨어 컴포넌트를 위한 시뮬레이션 기반 인터페이스 테스팅 자동화 시스템의 구성을 보여주는 도면.
도 2는 도 1에 도시된 테스팅 자동화 서버를 설명하기 위한 도면.
도 3은 도 1에 도시된 테스트 빌드 에이전트를 설명하기 위한 도면.
도 4 내지 6은 본 발명의 일 실시 예에 따른 로봇 소프트웨어 컴포넌트를 위한 시뮬레이션 기반 인터페이스 테스팅 자동화 방법을 보여주는 도면.
도 7은 도 6의 테스트 애플리케이션 및 로봇 하드웨어 시뮬레이터의 구성 및 동작을 설명하기 위한 도면.
도 8은 본 발명의 일 실시 예에 따른 로봇 소프트웨어 컴포넌트를 위한 시뮬레이션 기반 인터페이스 테스팅 자동화 시스템의 구현 예에서, 테스트 애플리케이션과 로봇 하드웨어 시뮬레이터의 구성을 보여주기 위한 도면.
도 9는 도 8의 테스팅 자동화 시스템에서 생성된 테스트 케이스를 보여주는 도면.
도 10은 도 8의 테스팅 자동화 시스템에서 생성된 테스트 애플리케이션의 소스 코드를 보여주는 도면.
도 11은 도 8의 테스팅 자동화 시스템에서의 테스트 결과를 보여주는 도면.
도 2는 도 1에 도시된 테스팅 자동화 서버를 설명하기 위한 도면.
도 3은 도 1에 도시된 테스트 빌드 에이전트를 설명하기 위한 도면.
도 4 내지 6은 본 발명의 일 실시 예에 따른 로봇 소프트웨어 컴포넌트를 위한 시뮬레이션 기반 인터페이스 테스팅 자동화 방법을 보여주는 도면.
도 7은 도 6의 테스트 애플리케이션 및 로봇 하드웨어 시뮬레이터의 구성 및 동작을 설명하기 위한 도면.
도 8은 본 발명의 일 실시 예에 따른 로봇 소프트웨어 컴포넌트를 위한 시뮬레이션 기반 인터페이스 테스팅 자동화 시스템의 구현 예에서, 테스트 애플리케이션과 로봇 하드웨어 시뮬레이터의 구성을 보여주기 위한 도면.
도 9는 도 8의 테스팅 자동화 시스템에서 생성된 테스트 케이스를 보여주는 도면.
도 10은 도 8의 테스팅 자동화 시스템에서 생성된 테스트 애플리케이션의 소스 코드를 보여주는 도면.
도 11은 도 8의 테스팅 자동화 시스템에서의 테스트 결과를 보여주는 도면.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시 예에 따른 로봇 소프트웨어 컴포넌트를 위한 시뮬레이션 기반 인터페이스 테스팅 자동화 시스템의 구성을 보여주는 도면이다.
도 1을 참조하면, 시스템은 테스팅 자동화 서버(200), 다수의 테스트 빌드 에이전트(300), 및 로봇 하드웨어 시뮬레이터(400)를 포함한다.
테스팅 자동화 서버(200)는 웹 서비스를 통해 사용자가 접근할 수 있는 웹 기반 테스팅 자동화 서버(web-based automatic testing engine server)로 구현되며, 로봇 소프트웨어 컴포넌트의 인터페이스 테스트에 대한 테스트 케이스를 생성한다. 그리고, 상기 테스팅 자동화 서버(200)는 테스트 수행에 필요한 테스트 드라이버 컴포넌트, 테스트 스텁 컴포넌트, 그리고 시뮬레이션 제어 컴포넌트를 생성하여 서로 연결한다.
상기 테스팅 자동화 서버(200)는 테스트 케이스 생성부(210), 테스트 애플리케이션 생성부(220), 자동 빌드 관리부(230) 및 데이터베이스(240)를 포함한다. 그리고, 상기 테스팅 자동화 서버(200)내 각각의 구성(210, 220, 230, 240)은 도 2에 도시된 바와 같이 세부 구성들을 포함할 수 있다.
테스트 케이스 생성부(210)는 인터페이스 테스트 케이스 생성기(interface test case generator)로서, 사용자(100)로부터 데스트 대상 컴포넌트의 인터페이스 표현 정보(IDL(Interface Definition Language) 또는 XML(eXtensible Markup Language) 등) 및 테스트 명세 정보를 입력 받아 다수의 테스트 케이스를 자동으로 생성한다. 이때, 테스트 케이스는 XML 형식으로 상기 데이터베이스(240) 내 파일로서 저장될 수 있다. 그리고 상기 사용자(100)는 웹 인터페이스를 통해 상기 데이터베이스(240)내 테스트 케이스를 수정할 수 있고 각 테스트 케이스에 대한 예상 결과 값을 입력할 수 있다.
상기 테스트 케이스 생성부(210)는 인터페이스 파서(211), 테스트 케이스 후보 생성부(212) 및 테스트 케이스 조합 생성부(213)를 포함할 수 있다.
인터페이스 파서(211)는 상기 테스트 대상 컴포넌트의 인터페이스 표현 정보(IDL 또는 XML)를 파싱 및 분석하여, 각각의 입출력 파라미터에 대한 타입 정보를 추출한다.
테스트 케이스 후보 생성부(212)는 사용자(100)로부터 입력된 테스트 명세 정보를 기초로, 테스트 케이스의 후보 값을 생성한다. 여기서, 상기 테스트 케이스 후보 생성부(212)는 입력 파라미터에 대한 테스트 케이스(Test case for input parameter, 이하 TCIP라 칭함) 타입 및, 시뮬레이션 제어를 위한 테스트 케이스(Test case for simulation control, 이하 TCSC라 칭함) 타입의 후보를 생성할 수 있다.
또한, 상기 테스트 케이스 후보 생성부(212)는 각 파라미터에 대한 테스트 명세 정보가 특정 값이 아닌 범위 값일 경우 동치 분할 또는 경계 값 분석 기법을 이용하여 자동으로 테스트 케이스 후보를 생성할 수 있다.
이때, 동치 분할 기법은 입력 도메인(input domain)을 범위 입력조건, 특수 값의 제한조건, 집합 소속여부 조건, 논리 조건 등에 근거하여 동치 클래스(equivalence class)로 분할하고, 한 클래스 내의 데이터에서 에러가 발생하면 그 동치 클래스 안의 다른 데이터에서도 같은 에러가 발생하게 될 것이라는 가정 하에 각 클래스마다 대표 테스트 케이스 후보를 선정하는 기법이다.
그리고, 경계 값 분석 기법은 동치 분할 방법의 변형으로써, 입출력 도메인을 동치 클래스로 나누었을 때, 각 범위의 경계 값에서 에러가 발생하는 경우가 많다는 사실에 착안하여 에러 검출 가능성을 높을 수 있는 방법이다. 즉, 동치 클래스 안에서 테스트 케이스를 선정할 때, 임의의 데이터를 이용하는 것 대신에 각 클래스의 경계에 있는 데이터를 이용할 수 있다.
테스트 케이스 조합 생성부(213)는 상기 테스트 케이스 후보 생성부(212)에 의해 생성된 테스트 케이스 후보 값들에 대해 페어와이즈(pair-wise) 기법을 이용하여 각 후보 값들을 서로 조합함으로써 테스트 케이스의 수를 줄일 수 있다.
이때, 상기 페어와이즈 기법은 대부분의 결함들이 파라미터들의 상호작용을 통해 발생된다는 관찰에 기반을 둔 효과적인 테스트 케이스 생성기법으로, 파라미터의 쌍들이 전체 테스트 케이스에서 최소한으로만 나타나도록 구현될 수 있다.
또한, 상기 테스트 케이스 조합 생성부(213)는 각 파라미터에 대해 2-way 페어와이즈 조합, 3-way 페어와이즈 조합, 그리고 모든 가능한 조합을 생성하는 All-combination 조합 방법을 제공하여, 사용자가 파라미터간 조합 쌍 또는 상기 조합 쌍에 대해 중복된 테스트 케이스를 제거할 수 있다.
결과적으로, 상기 테스트 케이스 조합 생성부(213)에 의해 최종 조합된 최종 테스트 케이스는 상기 데이터 베이스 내에 저장된다.
한편, 테스트 애플리케이션 생성부(test application generator)(220)는 테스트 케이스와 테스트 대상 컴포넌트 정보를 이용하여 테스트 케이스에 따라 테스트를 수행하는 테스트 드라이버 컴포넌트 및, 테스트 대상 컴포넌트의 요구 인터페이스(required interface)에 대한 테스트 스텁 컴포넌트를 생성한다.
상기 테스트 애플리케이션 생성부(220)는 각각의 컴포넌트(테스트 드라이버 컴포넌트, 테스트 스텁 컴포넌트, 시뮬레이션 제어 컴포넌트)를 생성하기 위하여 테스트 드라이버 컴포넌트 생성부(221), 테스트 스텁 컴포넌트 생성부(222), 및 시뮬레이션 제어 컴포넌트 생성부(223)를 포함할 수 있다.
또한, 상기 테스트 애플리케이션 생성부(220)는 로봇 하드웨어를 대신하여 시뮬레이션 하는 로봇 하드웨어 시뮬레이터와 연동하기 위한 시뮬레이션 제어 컴포넌트를 생성하고, 이후 테스트 실행이 자동으로 수행될 수 있도록 상기 컴포넌트들의 각각을 서로 연결시킨다.
자동 빌드 관리부(230)는 테스트 자동 빌드 관리부(230)(automatic test build manager)로서, 원격의 테스트 대상 환경에 설치된 복수의 테스트 자동 빌드 에이전트와 연동하여 테스트 빌드 요청을 한다. 그리고, 상기 자동 빌드 관리부(230)는 테스트 케이스 및 테스트 애플리케이션 소스 코드를 테스트 대상 환경에 다운로드하고, 소스 코드를 컴파일하거나 테스트를 수행 한 후 결과를 저장한다.
또한, 상기 자동 빌드 관리부(230)는 테스트 빌드 스케쥴러(231) 및 테스트 빌드 에이전트 연결부(232)를 포함할 수 있다.
상기 테스트 빌드 스케쥴러(231)는 테스트 빌드 요청 시 테스트 빌드 스케줄러를 통해 즉시 빌드, 예약 빌드, 그리고 주기적인 빌드를 수행할 수 있다.
상기 테스트 빌드 에이전트 연결부(232)는 상기 복수의 테스트 자동 빌드 에이전트와 연동하여, 테스트 빌드 요청을 전달하고, 테스트를 수행한 에이전트로부터 테스트 결과를 수신할 수 있다.
한편, 테스트 빌드 에이전트(300)는 다양한 테스트 대상 환경(이를 테면, 윈도우 환경, 리눅스 환경)에 대하여 각각으로 존재할 수 있으며, 상기 테스팅 자동화 서버(200) 내 자동 빌드 관리부(230)와 통신한다. 그리고, 상기 테스트 빌드 에이전트(300)는 상기 자동 빌드 관리부(230)로부터 수신되는 테스트 애플리케이션 소스 코드를 컴파일하고, 테스트를 자동으로 수행한다.
상기 테스트 빌드 에이전트(300)는 도 3에 도시된 바와 같이 세부 구성을 포함할 수 있다.
도 3을 참조하면, 에이전트 1(300-1)은 빌드 에이전트 관리부(310), 테스트 애플리케이션 컴파일부(320), 테스트 애플리케이션(330), 및 테스트 자동 실행부(340)를 포함할 수 있다.
빌드 에이전트 관리부(build agent manager)(310)는 테스트 자동 빌드 에이전트를 관리하는 모듈로서 테스팅 자동화 서버(200)의 테스트 자동 빌드 관리부(230)로부터 요청되는 테스트 빌드 요청을 수신하고, 테스트 빌드를 개시한다.
테스트 애플리케이션 컴파일부(test application compiler)(320)는 테스트 수행 시 필요한 컴포넌트들을 자동으로 컴파일하고, 컴파일 후 생성되는 컴파일 로그, 실행 파일 또는 동적 라이브러리 파일을 테스팅 자동화 서버(200)의 데이터베이스(240)에 업로드 한다.
테스트 애플리케이션(330)은 로봇 하드웨어 시뮬레이터와 상호 연동하여 테스트 대상 컴포넌트를 테스트한다. 특히, 테스트 애플리케이션(330)은 필요한 컴포넌트들과 테스트 케이스, 그리고 테스트 결과 파일로 구성되며, 테스트 대상 환경에 설치된 테스트 빌드 에이전트에 의해 자동으로 실행된다. 또한, 상기 테스트 애플리케이션(330)은 상기 테스트케이스를 기초로 상기 테스트 애플리케이션의 컴포넌트 및 상기 로봇 하드웨어 시뮬레이터를 이용하여 상기 테스트를 위한 시뮬레이션 환경, 상기 환경 내 물체, 대상 로봇의 동작을 제어한다.
테스트 자동 실행부(automatic test executor)(340)는 테스트 애플리케이션을 실행하여 테스트 수행 시 출력되는 로그 및 테스트 결과를 테스팅 자동화 서버(200)에 업로드 한다.
로봇 하드웨어 시뮬레이터(400)는 실제 로봇 하드웨어를 대신하여 동작을 시뮬레이션하며 가상의 테스트 환경을 제공한다. 특히, 상기 로봇 하드웨어 시뮬레이터(400)는 가상의 테스트 환경을 테스트 대상 컴포넌트의 특성에 맞게 수동으로 구현한 것이다. 따라서, 상기 로봇 하드웨어 시뮬레이터(400)는 상기 테스트 빌드 에이전트와 연동하여, 상기 테스트 빌드 에이전트의 수행에 따라 가상의 로봇 하드웨어 및 로봇 테스트 환경을 시뮬레이션으로 동작할 수 있다.
또한, 상기 로봇 하드웨어 시뮬레이터(400)는 상기 테스트 빌드 에이전트(300)의 테스트 애플리케이션(330)과 연동하여, 가상의 로봇 하드웨어를 제어하고 각 테스트 케이스에 따라 동적으로 테스트 환경을 변화시켜 테스트를 수행한다.
도 4 내지 6은 본 발명의 일 실시 예에 따른 로봇 소프트웨어 컴포넌트를 위한 시뮬레이션 기반 인터페이스 테스팅 자동화 방법을 보여주는 도면이다.
상기 도 4는 상기 자동화 방법에서 테스트 케이스가 생성되는 과정(510 단계) 및 테스트 애플리케이션 소스코드가 생성되는 과정(520 단계)을 보여주고, 상기 도 5는 상기 테스트 케이스의 생성 과정(510 단계)을 상세히 설명하기 위한 도면이다. 그리고, 상기 도 6은 상기 자동화 방법에서 테스트가 자동으로 수행되는 과정(611 단계 내지 628 단계)을 보여준다.
도 4를 참조하면, 511 단계는 사용자(100)가 웹 인터페이스를 통해 테스트 케이스 생성을 상기 테스팅 자동화 서버(200)의 테스트 케이스 생성부(210)에 요청하는 것이다.
그리고, 512 단계는 상기 테스트 케이스 생성부(210)가 상기 테스트 케이스 생성 요청을 수신함에 대응하여, 테스트 대상 인터페이스의 타입을 분석하고, 사용자로부터 테스트 명세 정보를 입력받는다. 그리고, 상기 512 단계는 상기 테스트 대상 인터페이스의 분석 결과 및 테스트 명세 정보를 기초로 테스트 케이스를 생성하고, 데이터베이스(240)에 저장한다.
나아가, 상기 512 단계는 도 5에 도시된 다수의 단계를 포함할 수 있다.
도 5를 참조하면, 실제 로봇 소프트웨어 컴포넌트의 인터페이스 테스팅을 목적으로, 상기 테스트 케이스 생성부(210)가 테스트 케이스를 자동으로 생성하는 것을 보여준다.
먼저, 상기 로봇 소프트웨어 컴포넌트의 인터페이스는 본 발명의 일 실시 예에 따라, OPRoS (Open Platform for Robotics Service) 컴포넌트 구조를 따르는 로봇 적외선 센서 컴포넌트의 getDistanceValue 인터페이스로 구현되었고, 소스 코드가 존재하지 않는 로봇 소프트웨어 컴포넌트에 대해서는 블랙박스 테스트 기법을 채택하는 것으로 구현되었으나, 본 발명이 이에 한정되는 것은 아니다.
여기서, 상기 getDistanceValue 인터페이스는 물리적인 적외선 센서로부터 장애물과의 거리 값을 측정하여 반환하는 인터페이스로 [표 1]과 같이 하나의 출력 파라미터(double)와 두 개의 입력 파라미터(int/IndexOfSensor, int/NumOfSensor)를 가질 수 있다.
512a 단계는 테스트 대상 컴포넌트의 인터페이스 타입을 분석하여 입력 파라미터 정보를 추출한다. 즉, 상기 512a 단계는 인터페이스 파서(211)가 상기 테스트 대상 컴포넌트의 인터페이스 표현 정보(IDL 또는 XML)를 파싱 및 분석하고, 상기 입력 파라미터 및 그 타입 정보를 추출한다.
512b 단계는 인터페이스의 각 입력 파라미터 및 로봇 하드웨어 관련 파라미터에 대한 테스트 명세 정보를 생성한다. 즉, 상기 512b 단계는 상기 512a 단계에서 추출된 입력 파라미터와 시뮬레이션 제어 파라미터에 대한 테스트 명세 정보를 생성한다.
특히, 사용자(100)는 상기 인터페이스의 입력 파라미터에 대한 범위 값 또는 특정 후보 값을 입력한다. 또한, 테스트 대상 컴포넌트가 로봇 하드웨어와 연동하여 동작 할 경우, 상기 사용자(100)는 시뮬레이션 제어 관련 파라미터 정보를 더 입력한다. 이때, 상기 사용자(100)는 상기 getDistanceValue 인터페이스의 "IndexOfSensor" 파라미터에 대한 범위 값으로 0~10 사이의 값을 입력하고, "NumOfSensor" 파라미터에 대한 범위 값으로 1~5 사이의 값을 입력할 수 있다. 또한, 상기 인터페이스는 적외선 센서(미도시됨)로부터 장애물(20)과의 거리 값을 측정하여 반환하므로, 사용자(100)는 테스트 시뮬레이션 환경 내에 존재하는 가상의 장애물(20) 위치를 제어하기 위한 파라미터인 "#Distance" 파라미터를 추가하고 범위 값인 0~10 사이의 값을 입력할 수 있다.
512c 단계는 테스트 명세를 만족하는 각 파라미터에 대한 테스트 케이스 후보 값을 생성한다. 즉, 상기 512c 단계는 상기 512b 단계에 의해 생성된 테스트 명세 정보를 이용하여, 테스트 케이스의 후보값을 생성한다. 특히, 상기 512c 단계는 각 파라미터에 대한 테스트 명세 정보가 특정 값이 아닌 범위 값일 경우, 동치 분할 또는 경계 값 분석 기법을 이용하여 자동으로 테스트 케이스 후보를 생성할 수 있다.
상기 512c 단계는 getDistanceValue 인터페이스를 테스트하기 위한 각 파라미터에 대한 후보 값을 생성한다. 이때, 상기 생성된 후보 값은 [표 2]와 같이 나타날 수 있다.
여기서, 각 파라미터는 getDistanceValue 인터페이스의 입력 파라미터에 대한 테스트 케이스(Test case for input parameter) 타입인 IndexOfSensor 및 NumOfSensor와, 시뮬레이션 제어를 위한 테스트 케이스(Test case for simulation control) 타입인 #Distance로 나눠질 수 있다.
512d 단계는 각 파라미터에 대한 테스트 케이스 후보 값을 조합한다. 즉 상기 512d 단계는 상기 512c 단계에 의해 생성된 테스트 케이스 후보 값들에 대해 페어와이즈 기법을 이용하여 각 후보 값들을 서로 조합한다. 이에 따라, 테스트 케이스의 수를 줄일 수 있다.
여기서, 표 2를 참조하면, IndexOfSensor 파라미터의 후보 값은 4개이고, NumOfSensor 파라미터의 후보 값은 4개이고, #Distance파라미터의 후보 값은 4개이므로, 결과적으로 모든 가능한 조합은 아래의 [표 3]과 같이 64가지가 될 수 있다.
그러나, getDistanceValue 인터페이스와 같이 두 파라미터의 상호작용에 의해 결함이 발견된다면, 2-way 페어와이즈 기법을 적용하여 I*N, D*I, N*D의 두 파라미터의 조합 쌍에 대해 중복된 테스트 케이스를 제거할 수 있다. 즉, [표 3]의 1번째 테스트 케이스에서 각 파라미터의 조합 쌍은 (I*N)1={-1,-1}, (D*I)1={-1.0,-1}, (N*D)1={-1,-1.0}인데 (I*N)1 값은 2번째 테스트 케이스의 (I*N)2 값과 중복되며 (D*I)1 값은 13번째 테스트 케이스의 (D*I)13 값과 중복된다. 또한 (N*D)1 값은 17번째 테스트 케이스의 (N*D)17 값과 중복된다. 그러므로 1번째 테스트 케이스 대한 두 파라미터간의 조합이 이미 다른 테스트 케이스에 중복되어 존재하므로 제거될 수 있다. 이와 동일한 방법으로 각 테스트 케이스를 제거하게 되면 17개의 테스트 케이스로 줄일 수 있으며, 두 파라미터의 조합 쌍에 대해 최소한으로만 나타나게 된다.
한편, 사용자는 테스트 대상 인터페이스에 따라 두 파라미터의 조합 쌍 또는 세 파라미터의 조합 쌍에 대해 중복된 테스트 케이스를 제거 할 수 있다. 따라서, 상기 512 d 단계는 각 파라미터에 대해 2-way 페어와이즈 조합, 3-way 페어와이즈 조합, 그리고 모든 가능한 조합을 생성하는 All-combination 조합 방법을 제공할 수 있다.
한편, 513 단계는 상기 테스트 케이스 생성부(210)가 상기 생성된 테스트 케이스를 사용자에게 전송한다. 그리고, 514 단계는 사용자에 의해 입력된 각 테스트 케이스별 예상 결과 값을 상기 테스트 케이스 생성부(210)로 전송한다. 515 단계는 상기 전송된 예상 결과 값들을 각각의 테스트 케이스별로 설정하여 상기 데이터베이스(240)에 저장한다.
한편, 테스트 애플리케이션 소스코드가 생성되는 과정(520 단계)의 521 단계는 사용자의 애플리케이션 소스 코드 생성 요청을 상기 테스팅 자동화 서버(200)의 테스트 애플리케이션 생성부(220)로 전송한다.
522 단계는 상기 테스트 애플리케이션 생성부(220)의 테스트 케이스 정보 요청을 상기 테스트 케이스 생성부(210)로 전달하고, 523 단계는 상기 테스트 케이스 생성부(210)로부터 이미 생성된 테스트 케이스를 상기 테스트 애플리케이션 생성부(220)로 전달한다.
524 단계는 상기 테스트 애플리케이션 생성부(220)가 상기 전달된 테스트 케이스를 기초로 테스트 드라이버 컴포넌트와 시뮬레이션 제어 컴포넌트의 소스 코드를 생성한다. 그리고, 상기 524 단계는 테스트 대상 컴포넌트가 요구 인터페이스(required interface)를 가진 경우, 상기 테스트 대상 컴포넌트와 동일한 타입의 제공 인터페이스(provided interface)를 가진 테스트 스텁 컴포넌트를 생성한다.
525 단계는 상기 생성된 각 컴포넌트들과 테스트 대상 컴포넌트간 연결을 위한 XML 형식의 연결 정보를 생성하여 파일에 저장한다. 이때, 상기 파일에 저장된 코드들이 테스트 애플리케이션의 소스 코드가 될 수 있다.
그리고, 526 단계는 상기 파일을 사용자에게 전송하여, 사용자가 웹 UI를 통해 생성된 테스트 애플리케이션의 소스 코드를 확인하거나 수정할 수 있도록 한다.
도 6은 상기 자동화 방법에서 테스트가 자동으로 수행되는 과정을 보여주는 것으로, 상기 도 4 및 5의 과정에 의해 테스트 애플리케이션 및, 상기 테스트 애플리케이션의 소스 코드가 생성됨에 따라, 도 6의 과정이 개시된다.
먼저, 611 단계는 사용자가 요청한 테스트 애플리케이션 빌드 요청을 상기 테스트 자동화 서버(200)의 자동 빌드 관리부(230)로 전달한다. 여기서 상기 테스트 애플리케이션 빌드 요청의 정보에는 자동 빌드 에이전트(300)를 지정하는 식별정보(아이피 주소)가 포함될 수 있다.
그리고, 612 단계는 복수의 에이전트 중 상기 테스트 애플리케이션 빌드 요청 정보에 관련된 에이전트(에이전트 1)(300-1)가 접속되어 있는 지를 판단하고, 상기 에이전트 1(300-1)이 접속한 경우 상기 에이전트 1(300-1)의 빌드 에이전트 관리부(310)에 테스트 애플리케이션 빌드를 요청한다.
613는 상기 자동 빌드 관리부(230)로부터 빌드가 요청되면, 상기 테스팅 자동화 서버(200)로부터 테스트 케이스 및 테스트 애플리케이션 소스 코드를 다운로드하여 상기 테스트 애플리케이션 컴파일부(320)로 전달한다. 그리고, 상기 613 단계는 상기 테스트 애플리케이션 컴파일부(320)에 컴파일을 요청한다.
614 단계는 상기 테스트 애플리케이션 컴파일부(320)가 상기 전달된 테스트 케이스 및 테스트 애플리케이션 소스 코드를 컴파일하고, 로그 파일을 생성한다. 그리고 615 단계는 상기 614 단계의 컴파일 결과 및 로그 파일을 상기 빌드 에이전트 관리부(310)에 전달한다.
616 단계는 상기 614 단계의 컴파일에서 에러가 발생하였는 지를 판단한다
상기 616 단계의 판단결과, 상기 에러가 발생한 것으로 판단되면, 상기 617 단계는 상기 테스트 애플리케이션을 실행할 수 없으므로 컴파일 결과 및 로그 파일을 상기 테스팅 자동화 서버(200)로 업로드한다.
한편, 상기 616 단계의 판단결과, 상기 에러가 발생하지 않은 것으로 판단되면, 619 단계는 상기 테스트 자동 실행부(340)에 테스트 애플리케이션 실행을 요청한다. 그리고 620 단계는 새로운 프로세스를 생성한 후 테스트 애플리케이션을 실행한다.
621 단계는 상기 실행된 테스트 애플리케이션에서 상기 테스트 케이스를 로딩한다. 그리고, 622 단계는 로봇 하드웨어 시뮬레이터(400)와의 연동을 통해, 시뮬레이션 제어를 수행하고, 623 단계는 제어 결과에 따라 발생하는 로봇 하드웨어 시뮬레이션 정보를 상기 테스트 애플리케이션(330)에 전달한다. 그리고, 624 단계는 상기 테스트를 위한 상기 로봇 하드웨어 시뮬레이션 정보가 모두 전달 및 획득되었는 지에 따라 종료를 결정하고, 상기 결정되는 종료 여부에 따라 상기 622 단계 및 623 단계가 반복적으로 수행된다.
상기 624 단계가 종료를 판단한 경우, 625 단계는 상기 테스트 자동 실행부에 종료 메시지를 전달고, 626 단계는 상기 빌드 에이전트 관리부(310)에 종료 메시지를 전달한다. 그리고, 627 단계는 상기 테스트 애플리케이션의 컴파일 결과 및 테스트 결과를 상기 테스팅 자동화 서버(200)로 업로드하고, 628 단계는 상기 업로드된 컴파일 결과 및 테스트 결과를 분석하여 사용자(100)에게 전달한다. 그리고, 사용자(100)는 전달된 컴파일 결과 및 테스트 결과를 보고, 테스트 대상의 인터페이스의 오류 유무를 확인할 수 있다.
도 7은 상기 테스트 애플리케이션(330) 및 로봇 하드웨어 시뮬레이터(400)의 구성 및 동작을 설명하기 위한 도면이다.
도 7을 참조하면, 상기 테스트 애플리케이션(330)은 테스트 드라이버 컴포넌트(331), 시뮬레이션 제어 컴포넌트(332), 및 테스트 대상 컴포넌트(333)를 포함한다.
테스트 드라이버 컴포넌트(331)는 전체 테스트 동작을 제어하는 컴포넌트로서 테스트 케이스 파일을 읽어 테스트 대상 인터페이스를 테스트 하는 역할을 한다. 상기 테스트 드라이버 컴포넌트(331)는 테스트 수행 시 입력된 테스트 케이스를 TCSC와 TCIP로 나누고 TCSC를 이용하여 시뮬레이션 제어 컴포넌트의 인터페이스를 통해 테스트를 위한 시뮬레이션 환경을 우선 설정하고, TCIP를 이용하여 테스트 대상 인터페이스를 호출하여 테스트를 수행하며 결과를 파일에 저장한다.
시뮬레이션 제어 컴포넌트(332)는 TCSC에 따라 테스트를 위한 시뮬레이션 환경을 설정하는 컴포넌트로서 로봇 하드웨어 시뮬레이터(400)가 제공하는 시뮬레이션 제어 API(410)를 이용하여 시뮬레이션 환경에 물체 등을 제어할 수 있다. 그리고, 상기 시뮬레이션 제어 컴포넌트(332)는 테스트 수행 시 테스트 드라이버와 시뮬레이션 제어 부분을 분리함으로써 동일한 인터페이스의 입력 파라미터에 대해 다양하게 로봇 하드웨어 시뮬레이터를 제어하여 테스트함으로써 테스트 케이스의 재사용성을 높일 수 있다.
테스트 대상 컴포넌트(333)는 테스트 시 실제 로봇 하드웨어 API와 동일한 인터페이스를 가진 시뮬레이션용 로봇 하드웨어 API(420)를 이용하여 로봇 하드웨어 시뮬레이터(400)로부터 로봇 하드웨어 정보를 입력 받아 기능을 수행한다.
이때, 테스트 대상 컴포넌트가 요구 인터페이스를 가지고 있을 경우 동일한 타입의 제공 인터페이스를 가진 컴포넌트가 존재하지 않으면 기능이 수행되지 못할 수 있다. 그리고, 컴포넌트 기반 소프트웨어 개발에서는 이와 같은 일이 발생할 수 있으므로, 상기 테스트 애플리케이션(330)은 가상의 동일한 인터페이스 타입을 가진 테스트 스텁 컴포넌트(340)를 더 포함할 수 있다. 상기 테스트 스텁 컴포넌트(340)는 실제 로봇 소프트웨어 컴포넌트를 대신하여 테스트 대상 컴포넌트가 기능을 수행할 수 있도록 도와주는 역할을 한다.
한편, 로봇 하드웨어 시뮬레이터(400)는 시뮬레이션 제어 API(410) 및 시뮬레이션용 로봇 하드웨어 API(420)를 포함한다.
시뮬레이션 제어 API(410)는 가상의 테스트 환경을 제어하기 위한 API이다. 따라서, 상기 테스트 애플리케이션(330)의 상기 시뮬레이션 제어 컴포넌트(332)는 상기 시뮬레이션 제어 API(410)를 이용하여 각 테스트 케이스에 따라 동적으로 테스트 환경을 변화시켜 테스트를 수행할 수 있다.
시뮬레이션용 로봇 하드웨어 API(420)는 가상의 로봇 하드웨어를 제어하거나 데이터를 수신하기 위한 API다. 따라서, 상기 테스트 애플리케이션(330)의 테스트 대상 컴포넌트(333)는 상기 시뮬레이션용 로봇 하드웨어 API(420)를 이용하여 가상의 로봇 하드웨어를 제어하거나 데이터를 수신하여 동작할 수 있다.
위와 같은 테스트 애플리케이션(330)과 로봇 하드웨어 시뮬레이터(400)는 아래와 같은 동작을 통해 서로 연동하여 대상 인터페이스를 테스트할 수 있다.
먼저, 상기 테스트 드라이버 컴포넌트(331)는 테스트 케이스 파일을 로딩한 후 가상의 테스트 환경을 설정하기 위해 시뮬레이션 제어 컴포넌트(332)의 시뮬레이션 제어 인터페이스를 통해 TCSC를 전송한다. 그리고, 상기 시뮬레이션 제어 컴포넌트(332)는 TCSC에 따라 로봇 하드웨어 시뮬레이터(400)에서 제공하는 시뮬레이션 제어 API(410)를 이용하여 가상의 테스트 환경에 존재하는 물체 등의 위치를 변경한다.
가상 테스트 환경 설정이 완료된 후, 상기 테스트 드라이버 컴포넌트(331)는 TCIP를 입력 파라미터로 하여 테스트 대상 인터페이스를 호출한다. 그리고, 상기 테스트 대상 컴포넌트(333)는 테스트 스텁 컴포넌트(334)의 인터페이스를 호출한 후 시뮬레이션용 로봇 하드웨어 API(420)를 이용하여 로봇 하드웨어를 제어하거나 데이터를 수신 받아 동작을 수행한다.
상기 동작이 완료된 후, 그 결과 값은 상기 테스트 드라이버 컴포넌트(331)에 반환된다. 그리고, 상기 테스트 드라이버 컴포넌트(331)는 실제 반환 값과 예상 결과 값을 비교하여 테스트의 성공 여부를 테스트 결과 파일에 저장하고 테스트를 완료한다.
도 8은 도 7에 도시된 테스트 애플리케이션(330)과 로봇 하드웨어 시뮬레이터(400)의 실시 예를 보여주기 위한 도면이다.
도 8을 참조하면, 상기 테스트 애플리케이션(330)는 본 발명의 실시 예 및 상기 예의 유효성과 효과를 설명하기 위하여, OPRoS 컴포넌트 구조를 따르는 로봇 적외선 센서 컴포넌트의 getDistanceValue 인터페이스에 대하여 테스트를 수행하고 결과를 분석하는 것으로 구현되었다.
특히, 상기 테스트 애플리케이션(330)은 실시 예로서, 장애물(20)의 위치를 변화시켰을 때, 적외선 센서를 장착한 로봇(10)의 getDistanceValue 인터페이스가 상기 위치가 변화된 장애물(20)의 거리를 수신할 수 있는 지를 테스트한다.
이를 위하여, 상기 로봇 하드웨어 시뮬레이터(400)는 OPRoS 시뮬레이터가 설치되었다. 그리고, 상기 테스트 애플리케이션(330)은 OPRoS 적외선 센서 컴포넌트에서 요구 인터페이스(Required interface)가 존재하지 않으므로 테스트 스텁 컴포넌트(340)를 생성하지 않았다.
먼저, 테스팅 자동화 서버(200)는 상기 getDistanceValue 인터페이스에 대한 테스트 케이스를 생성한다. 상기 생성된 테스트 케이스는 [표 3] 및 도 9에 도시된 바와 같이 나타날 수 있다.
그리고, 사용자(100)는 각 테스트 케이스에 대한 예상 결과 값을 수동으로 삽입하고, 테스팅 자동화 서버(200)의 테스트 애플리케이션 생성부(220)는 테스트 애플리케이션을 생성한다. 도 10을 참조하면, 상기 테스트 애플리케이션 생성부(220)에 의해 생성된 테스트 애플리케이션의 소스 코드를 볼 수 있다.
상기 getDistanceValue 인터페이스에 대한 테스트는 테스트 애플리케이션(330)과 로봇 하드웨어 시뮬레이터(400)에 의해 이루어진다.
특히, 테스트 드라이버 컴포넌트(331)는 테스트 케이스 파일을 로딩하고, 테스트 환경을 설정하기 위하여 시뮬레이션 제어 컴포넌트(332)에 거리값(#Distance Value)을 입력한다. 상기 시뮬레이션 제어 컴포넌트(332)는 상기 입력된 거리값(#Distance Value)을 상기 로봇 하드웨어 시뮬레이터(400)의 시뮬레이션 제어 API(410)인 장애물 거리 제어 API(410-1)에 전달한다.
getDistanceValue 인터페이스를 위한 테스트 드라이버 컴포넌트(331)는 XML 형식의 테스트 케이스 파일을 로딩하여 TCSC 타입인 #Distance 테스트 케이스와 TCIP 타입인 IndexOfSensor, NumOfSensor 테스트 케이스로 분류할 수 있다.
따라서, 시뮬레이션 제어 컴포넌트는 로봇 하드웨어 시뮬레이터(400)에서 제공하는 장애물 거리 제어 API(410-1)를 이용하여 #Distance 테스트 케이스 값만큼 장애물(20)을 적외선 센서(20)로부터 이동시킨다.
상기 이동이 완료되면, 상기 테스트 드라이버 컴포넌트(331)는 IndexOfSensor, NumOfSensor 테스트 케이스 값을 입력 파라미터로 하여 테스트 대상 컴포넌트(333)의 getDistanceValue 인터페이스를 호출한다. 상기 테스트 대상 컴포넌트(333)는 OPRoS 적외선 센서 컴포넌트로서, 로봇 하드웨어 시뮬레이터(400)에서 제공하는 적외선 센서 시뮬레이션 API(420-1)를 이용하여 상기 적외선 센서(20)와 장애물(20)과의 거리 값을 계산하고, 테스트 드라이버 컴포넌트(331)에 반환한다.
그리고, 테스트 드라이버 컴포넌트(331)는 상기 테스트 대상 컴포넌트(333)로부터 반환된 반환 값과 사용자(100)에 의해 입력된 예상 결과 값을 비교하여 테스트 성공 여부를 테스트 결과 파일에 저장하고 테스트를 완료한다.
도 11은 도 8의 테스트 애플리케이션(330) 및 로봇 하드웨어 시뮬레이터(400)에 의해 수행된 getDistanceValue 인터페이스에 대한 테스트 결과를 보여준다.
도 11을 참조하면, 첫번째부터 세번째까지의 열(IndexOfSensor, NumOfSensor, #Distance)은 테스트 케이스, 네번째 열(return)은 실제 결과 값, 그리고 다섯 번째 열(result)은 성공/실패 여부를 나타낸다.
먼저, 테스트 케이스 중 #Distance의 의미는 적외선 센서와 장애물(20)과의 거리를 의미하고 -1 값의 의미는 범위를 벗어난 값을 나타낸다. 상기와 같은 맥락으로, 첫번째 테스트 케이스에서는 각각의 테스트 케이스(IndexOfSensor, NumOfSensor, #Distance)의 값이 5, 1, -1 값으로 입력되었다. 따라서, 그리고, 실제 결과 값(return)이 -1을 출력하였으므로, 테스트가 성공하였으며 이에 따라 result 항목이 PASS 값을 가진다.
동일한 방법으로, 여섯 번째 테스트 케이스는 IndexOfSensor=5, NumOfSensor=4, #Distance=0.5이며, 상기 로봇(10)과 장애물(20)간의 거리가 0.5로 예상되며, 실제 결과 값도 0.5이다. 따라서, 상기 여섯 번째 테스트 케이스에 대해서도 다섯 번째 열(result)이 PASS 값을 가지는 것을 볼 수 있다.
결과적으로, 모든 테스트 케이스에 대하 결과(다섯 번째 열)(result)가 모두 성공하였으므로, OPRoS 적외선 센서 컴포넌트가 정상적으로 동작한다는 것을 테스트할 수 있었다.
본 발명의 실시 예에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10 : 로봇 20 : 장애물
100 : 사용자 200 : 테스팅 자동화 서버
210 : 테스트 케이스 생성부 211 : 인터페이스 파서
212 : 테스트 케이스 후보 생성부 213 : 테스트 케이스 조합 생성부
220 : 테스트 애플리케이션 생성부 221 : 테스트 드라이버 컴포넌트 생성부
222 : 테스트 스텁 컴포넌트 생성부 223 : 시뮬레이션 제어 컴포넌트 생성부
230 : 자동 빌드 관리부 231 : 테스트 빌드 스케쥴러
232 : 테스트 빌드 에이전트 연결부 240 : 데이터베이스
300 : 테스트 빌드 에이전트 310 : 빌드 에이전트 관리부
320 : 테스트 애플리케이션 컴파일부 330 : 테스트 애플리케이션
331 : 테스트 드라이버 컴포넌트 332 : 시뮬레이션 제어 컴포넌트
333 : 테스트 대상 컴포넌트 334 : 테스트 스텁 컴포넌트
340 : 테스트 자동 실행부 400 : 로봇 하드웨어 시뮬레이터
410 : 시뮬레이션 제어 API 410-1 : 적외선 센서 시뮬레이션 API
420 : 시뮬레이션용 로봇 하드웨어 API 420-1 : 장애물 거리 제어 API
100 : 사용자 200 : 테스팅 자동화 서버
210 : 테스트 케이스 생성부 211 : 인터페이스 파서
212 : 테스트 케이스 후보 생성부 213 : 테스트 케이스 조합 생성부
220 : 테스트 애플리케이션 생성부 221 : 테스트 드라이버 컴포넌트 생성부
222 : 테스트 스텁 컴포넌트 생성부 223 : 시뮬레이션 제어 컴포넌트 생성부
230 : 자동 빌드 관리부 231 : 테스트 빌드 스케쥴러
232 : 테스트 빌드 에이전트 연결부 240 : 데이터베이스
300 : 테스트 빌드 에이전트 310 : 빌드 에이전트 관리부
320 : 테스트 애플리케이션 컴파일부 330 : 테스트 애플리케이션
331 : 테스트 드라이버 컴포넌트 332 : 시뮬레이션 제어 컴포넌트
333 : 테스트 대상 컴포넌트 334 : 테스트 스텁 컴포넌트
340 : 테스트 자동 실행부 400 : 로봇 하드웨어 시뮬레이터
410 : 시뮬레이션 제어 API 410-1 : 적외선 센서 시뮬레이션 API
420 : 시뮬레이션용 로봇 하드웨어 API 420-1 : 장애물 거리 제어 API
Claims (15)
- 테스팅할 대상의 로봇 소프트웨어 컴포넌트에 관련된 인터페이스 표현 정보 및 테스트 명세정보를 기초로 테스트 케이스를 생성하는 단계;
상기 테스트 케이스를 기초로 상기 로봇 소프트웨어 컴포넌트를 테스팅하기 위한 테스트 애플리케이션의 소스 코드를 생성하는 단계; 및
상기 테스트 케이스를 이용하여 상기 테스트 애플리케이션의 소스 코드를 컴파일하고, 상기 컴파일된 테스트 애플리케이션의 수행에서 로봇 하드웨어 시뮬레이터와 상호 연동하여 상기 테스트 케이스에 대응하는 결과를 출력하는 단계
를 포함하는 테스팅 자동화 방법. - 제1항에 있어서,
상기 결과를 출력하는 단계는
테스트 애플리케이션의 빌드가 요청되면, 상기 빌드가 요청된 테스트 애플리케이션의 소스 코드를 컴파일하는 단계;
상기 컴파일된 소스 코드의 테스트 애플리케이션을 수행하되, 상기 테스트케이스를 기초로 상기 테스트 애플리케이션의 컴포넌트 및 상기 로봇 하드웨어 시뮬레이터를 이용하여 상기 테스트를 위한 시뮬레이션 환경, 상기 환경 내 물체, 대상 로봇의 동작을 제어하는 단계; 및
상기 제어가 수행된 테스트 애플리케이션의 실행 결과를 출력하는 단계
를 포함하는 테스팅 자동화 방법. - 제2항에 있어서, 상기 제어하는 단계는
상기 로봇 하드웨어 시뮬레이터와 연동하여 상기 테스트 케이스를 기초로, 상기 테스트 애플리케이션의 테스트 드라이버 컴포넌트 및 시뮬레이션 제어 컴포넌트, 및 테스트 스텁 컴포넌트 중 하나 이상을 제어하는 테스팅 자동화 방법. - 제2항에 있어서,
상기 테스트 애플리케이션의 빌드를 미리 설정된 시점 또는 주기적으로 요청하는 단계를 더 포함하는 테스팅 자동화 방법. - 제1항에 있어서,
상기 하나 이상의 테스트 케이스를 생성하는 단계는
상기 로봇 소프트웨어 컴포넌트에 관련된 인터페이스 표현 정보를 파싱하여 상기 로봇 소프트웨어 컴포넌트의 입출력 파라미터의 정보를 추출하는 단계;
상기 로봇 소프트웨어 컴포넌트에 관련된 테스트 명세 정보를 이용하여, 상기 테스팅의 복수의 테스트 케이스 후보를 생성하는 단계; 및
상기 테스트 명세 정보를 이용하여 상기 생성된 복수의 테스트 케이스 후보를 하나 이상의 테스트 케이스로 조합하는 단계
를 포함하는 테스팅 자동화 방법. - 제5항에 있어서,
상기 복수의 테스트 케이스 후보를 생성하는 단계는
상기 인터페이스 표현 정보 및 상기 테스트 명세정보를 기초로 입력 파라미터에 대한 테스트 케이스 타입 및, 시뮬레이션 제어를 위한 테스트 케이스 타입의 테스트 케이스 후보를 생성하는 테스팅 자동화 방법. - 제1항에 있어서,
상기 테스트 애플리케이션의 소스 코드를 생성하는 단계는
상기 테스팅할 대상의 로봇 소프트웨어 컴포넌트의 정보 및 상기 테스트 케이스를 이용하여, 테스트 드라이버 컴포넌트, 시뮬레이션 제어 컴포넌트, 및 테스트 스텁 컴포넌트를 생성하는 단계; 및
상기 생성된 테스트 드라이버 컴포넌트, 시뮬레이션 제어 컴포넌트, 또는 테스트 스텁 컴포넌트 중 하나 이상을 상기 테스팅할 대상의 로봇 소프트웨어 컴포넌트에 연결하기 위한 연결 정보가 포함된 소스 코드를 생성하는 단계
를 포함하는 테스팅 자동화 방법. - 테스팅할 대상의 로봇 소프트웨어 컴포넌트에 관련된 인터페이스 표현 정보와 테스트 명세정보를 기초로 테스트 케이스 및, 테스트 애플리케이션의 소스 코드를 생성하는 테스팅 자동화 서버;
상기 테스팅 자동화 서버에 의해 생성된 테스트 케이스를 이용하여 상기 테스트 애플리케이션의 소스 코드를 컴파일하고, 상기 컴파일된 테스트 애플리케이션의 수행에서 상기 테스트 케이스에 대응하는 결과를 출력하는 테스트 빌드 에이전트; 및
상기 테스트 빌드 에이전트와 연동하여, 상기 테스트 빌드 에이전트의 수행에 따라 가상의 로봇 하드웨어 및 로봇 테스트 환경을 시뮬레이션으로 동작하는 로봇 하드웨어 시뮬레이터;
를 포함하는 테스팅 자동화 시스템. - 제8항에 있어서, 상기 테스트 빌드 에이전트는
상기 컴파일된 소스 코드의 테스트 애플리케이션을 수행하되, 상기 테스트케이스를 기초로 상기 테스트 애플리케이션의 컴포넌트 및 상기 로봇 하드웨어 시뮬레이터를 이용하여 상기 테스트를 위한 시뮬레이션 환경, 상기 환경 내 물체, 대상 로봇의 동작을 제어하는 테스팅 자동화 시스템. - 제9항에 있어서, 상기 테스트 빌드 에이전트는
상기 테스트 케이스를 기초로, 상기 테스트 애플리케이션의 테스트 드라이버 컴포넌트 및 시뮬레이션 제어 컴포넌트, 및 테스트 스텁 컴포넌트 중 하나 이상을 제어하여 상기 로봇 하드웨어 시뮬레이터의 동작을 제어하는 자동화 시스템. - 제8항에 있어서, 상기 테스팅 자동화 서버는
상기 테스트 애플리케이션의 빌드를 미리 설정된 시점 또는 주기적으로 요청하는 테스트 빌드 스케줄러를 더 포함하는 테스팅 자동화 시스템. - 제8항에 있어서,
상기 테스트 빌드 에이전트는 다수의 테스트 대상 환경에 따라 복수로 존재하고,
상기 테스팅 자동화 서버는
사용자로부터 테스트 애플리케이션의 빌드가 요청되면, 상기 복수의 테스트 빌드 에이전트 중 상기 요청에 관련된 테스트 빌드 에이전트를 선택하여 상기 요청을 전달하는 테스팅 자동화 시스템. - 제8항에 있어서, 상기 테스팅 자동화 서버는
상기 인터페이스 표현 정보를 파싱하여 상기 로봇 소프트웨어 컴포넌트의 입출력 파라미터의 정보를 추출하는 인터페이스 파서;
상기 테스트 명세 정보를 이용하여 상기 로봇 소프트웨어 컴포넌트의 테스트 케이스 후보를 복수로 생성하는 테스트 케이스 후보 생성부; 및
상기 생성된 복수의 테스트 케이스 후보의 조합을 통해 상기 로봇 소프트웨어 컴포넌트의 테스트 케이스를 복수로 생성하는 테스트 케이스 조합 생성부
를 포함하는 테스팅 자동화 시스템. - 제13항에 있어서,
상기 테스트 케이스 후보 생성부는
상기 인터페이스 표현 정보 및 상기 테스트 명세정보를 기초로 입력 파라미터에 대한 테스트 케이스 타입 및, 시뮬레이션 제어를 위한 테스트 케이스 타입의 테스트 케이스 후보를 생성하는 테스팅 자동화 시스템. - 제8항에 있어서, 상기 테스팅 자동화 서버는
상기 테스트 애플리케이션의 소스 코드를 생성하기 위하여, 상기 인터페이스 표현 정보 및 상기 테스트 명세정보를 기초로 테스트 드라이버 컴포넌트, 시뮬레이션 제어 컴포넌트, 및 테스트 스텁 컴포넌트를 생성하고, 상기 생성된 테스트 드라이버 컴포넌트, 시뮬레이션 제어 컴포넌트, 또는 테스트 스텁 컴포넌트 중 하나 이상을 상기 테스팅할 대상의 로봇 소프트웨어 컴포넌트에 연결하기 위한 연결 정보가 포함된 소스 코드를 생성하는
테스팅 자동화 시스템.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100054212A KR101132560B1 (ko) | 2010-06-09 | 2010-06-09 | 로봇 소프트웨어 컴포넌트를 위한 시뮬레이션 기반 인터페이스 테스팅 자동화 시스템 및 그 방법 |
US12/853,475 US8601436B2 (en) | 2010-06-09 | 2010-08-10 | Simulation-based interface testing automation system and method for robot software components |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100054212A KR101132560B1 (ko) | 2010-06-09 | 2010-06-09 | 로봇 소프트웨어 컴포넌트를 위한 시뮬레이션 기반 인터페이스 테스팅 자동화 시스템 및 그 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110134582A KR20110134582A (ko) | 2011-12-15 |
KR101132560B1 true KR101132560B1 (ko) | 2012-04-03 |
Family
ID=45097309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100054212A KR101132560B1 (ko) | 2010-06-09 | 2010-06-09 | 로봇 소프트웨어 컴포넌트를 위한 시뮬레이션 기반 인터페이스 테스팅 자동화 시스템 및 그 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8601436B2 (ko) |
KR (1) | KR101132560B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107671857A (zh) * | 2017-10-11 | 2018-02-09 | 上海交通大学 | 用于服务机器人操作演示与算法验证的三维仿真平台 |
KR20200145269A (ko) * | 2019-06-21 | 2020-12-30 | 주식회사 엘지씨엔에스 | 테스트 자동화 시스템 |
Families Citing this family (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101053104B1 (ko) * | 2009-10-28 | 2011-08-02 | 엘에스산전 주식회사 | 전산기기 소프트웨어 테스트 방법 및 시스템 |
US8762781B2 (en) * | 2010-11-16 | 2014-06-24 | International Business Machines Corporation | Method and apparatus useful in manufacturing test case operations |
US8813034B2 (en) * | 2010-12-30 | 2014-08-19 | Sap Ag | System and method for testing a software unit of an application |
US20150199185A1 (en) * | 2011-03-30 | 2015-07-16 | David Saff | System and Method for Providing Online Software Development Services |
US8700986B1 (en) | 2011-03-18 | 2014-04-15 | Google Inc. | System and method for displaying a document containing footnotes |
US9043759B1 (en) * | 2011-01-27 | 2015-05-26 | Trimble Navigation Limited | System and method for generating software unit tests simultaneously with API documentation |
US9280442B1 (en) | 2011-01-27 | 2016-03-08 | Trimble Navigation Limited | System and method for generating coverage reports for software unit tests |
US8510266B1 (en) | 2011-03-03 | 2013-08-13 | Google Inc. | System and method for providing online data management services |
US9354769B1 (en) * | 2011-03-31 | 2016-05-31 | Emc Corporation | Electronically controlling commitment of a change to stored information |
CA2773930C (en) * | 2011-04-12 | 2017-03-07 | Accenture Global Services Limited | Prioritization and assignment manager for an integrated testing platform |
US9268665B2 (en) | 2011-07-26 | 2016-02-23 | Trimble Navigation Limited | System and method for identifying fault prone computer code files |
US8893087B2 (en) * | 2011-08-08 | 2014-11-18 | Ca, Inc. | Automating functionality test cases |
CN102662655B (zh) * | 2012-03-12 | 2018-09-25 | 南京中兴软件有限责任公司 | 版本的构建系统及方法 |
US20130311827A1 (en) * | 2012-05-16 | 2013-11-21 | International Business Machines Corporation | METHOD and APPARATUS for automatic testing of automation software |
US9632754B2 (en) * | 2012-07-06 | 2017-04-25 | International Business Machines Corporation | Auto generation and linkage of source code to test cases |
US20140040231A1 (en) * | 2012-08-06 | 2014-02-06 | Hsiu-Ping Lin | Methods and systems for searching software applications |
CN102880546B (zh) * | 2012-09-03 | 2015-06-17 | 北大方正集团有限公司 | 一种基于xml数据库的软件集成测试方法及系统 |
US9959200B2 (en) | 2012-09-06 | 2018-05-01 | Red Hat Israel, Ltd. | User interface for composing test scenarios |
US9218269B2 (en) * | 2012-09-07 | 2015-12-22 | Red Hat Israel, Ltd. | Testing multiple target platforms |
KR101419646B1 (ko) * | 2013-02-19 | 2014-07-15 | 강원대학교산학협력단 | 복합 컴포넌트 테스트를 위한 예상 결과 값 자동 생성 방법 및 장치 |
US9785526B2 (en) * | 2013-04-30 | 2017-10-10 | Advantest Corporation | Automated generation of a test class pre-header from an interactive graphical user interface |
CN104156224B (zh) * | 2013-05-14 | 2017-11-07 | 广东电网公司信息中心 | 一种软件构建持续集成方法及系统 |
KR101414720B1 (ko) * | 2013-05-31 | 2014-07-04 | 한국철도기술연구원 | 열차제어시스템 소프트웨어 기능안전성 테스팅 장치 및 그 방법 |
US9465726B2 (en) * | 2013-06-05 | 2016-10-11 | Vmware, Inc. | Abstract layer for automatic user interface testing |
US9558106B1 (en) * | 2013-12-19 | 2017-01-31 | Amazon Technologies, Inc. | Testing service with control testing |
CN103699017A (zh) * | 2013-12-24 | 2014-04-02 | 中广核核电运营有限公司 | 核电站模拟机接口设备仿真测试系统及其仿真测试方法 |
US9483384B2 (en) * | 2014-11-20 | 2016-11-01 | Fujitsu Limited | Generation of software test code |
GB2533117A (en) * | 2014-12-10 | 2016-06-15 | Ibm | Software test automation |
US10361944B2 (en) * | 2015-04-08 | 2019-07-23 | Oracle International Corporation | Automated test for uniform web service interfaces |
WO2016194028A1 (ja) * | 2015-05-29 | 2016-12-08 | 三菱電機株式会社 | シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム |
US9740473B2 (en) * | 2015-08-26 | 2017-08-22 | Bank Of America Corporation | Software and associated hardware regression and compatibility testing system |
CN105389401B (zh) * | 2015-12-25 | 2019-05-31 | 北京奇虎科技有限公司 | 数据库性能测试方法与装置 |
CN107133162A (zh) * | 2016-02-29 | 2017-09-05 | 阿里巴巴集团控股有限公司 | 一种测试方法及装置 |
CN105824757B (zh) * | 2016-03-18 | 2018-05-01 | 北京光年无限科技有限公司 | 基于机器人操作系统的测试方法及系统 |
CN106021114B (zh) * | 2016-06-02 | 2018-07-10 | 北京光年无限科技有限公司 | 面向智能机器人的自动化测试方法及系统 |
US10102114B1 (en) * | 2017-03-08 | 2018-10-16 | Amazon Technologies, Inc. | Code testing and approval for deployment to production environment |
CN108664384B (zh) * | 2017-03-29 | 2021-05-07 | 富士通株式会社 | 数据处理装置和数据处理方法 |
US10067863B1 (en) * | 2017-05-04 | 2018-09-04 | Microsoft Technology Licensing, Llc | Feature targeting of test automation lab machines |
KR101961379B1 (ko) * | 2017-05-18 | 2019-03-22 | 서강대학교산학협력단 | 자가 적응형 로봇 시스템 및 그의 오류 검출 방법 |
US10599402B2 (en) * | 2017-07-13 | 2020-03-24 | Facebook, Inc. | Techniques to configure a web-based application for bot configuration |
US10810334B2 (en) * | 2017-11-22 | 2020-10-20 | General Electric Company | Application store test environment |
CN107957945B (zh) * | 2017-11-29 | 2019-06-25 | 平安科技(深圳)有限公司 | 货币基金系统自动性能测试方法、装置、设备及存储介质 |
CN108415832B (zh) * | 2018-02-07 | 2021-03-02 | 平安科技(深圳)有限公司 | 接口自动化测试方法、装置、设备及存储介质 |
CN108920219B (zh) * | 2018-06-01 | 2021-09-07 | 浪潮软件股份有限公司 | 一种基于开放平台的业务处理方法及装置 |
US10754762B2 (en) | 2019-01-30 | 2020-08-25 | Walmart Apollo, Llc | Automatic tracking of feature usage of webpages on a website |
US11126540B2 (en) * | 2019-06-13 | 2021-09-21 | Paypal, Inc. | Big data application lifecycle management |
CN111045921A (zh) * | 2019-10-12 | 2020-04-21 | 平安普惠企业管理有限公司 | 自动化接口测试方法、装置、计算机设备及存储介质 |
US11748487B2 (en) * | 2020-04-23 | 2023-09-05 | Hewlett Packard Enterprise Development Lp | Detecting a potential security leak by a microservice |
CN111309636B (zh) * | 2020-05-14 | 2020-09-08 | 炬星科技(深圳)有限公司 | 机器人自动化测试系统、方法、构建服务器及存储介质 |
US11288153B2 (en) | 2020-06-18 | 2022-03-29 | Bank Of America Corporation | Self-healing computing device |
CN111488631B (zh) * | 2020-06-28 | 2020-09-22 | 中国核动力研究设计院 | 一种核级安全显示装置及其组态-解析系统 |
US11030082B1 (en) * | 2020-08-12 | 2021-06-08 | Salesforce.Com, Inc. | Application programming interface simulation based on declarative annotations |
US11237889B1 (en) * | 2020-08-12 | 2022-02-01 | Salesforce.Com, Inc. | Application infrastructure configuration based on annotated API schemas |
CN114385475B (zh) * | 2020-10-16 | 2024-08-06 | 腾讯科技(深圳)有限公司 | 一种测试方法和相关装置 |
US11394668B1 (en) | 2021-01-26 | 2022-07-19 | The Toronto-Dominion Bank | System and method for executing operations in a performance engineering environment |
CN113704095A (zh) * | 2021-08-08 | 2021-11-26 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种接口自动测试用例自动生成方法及装置 |
EP4141679A1 (en) * | 2021-08-26 | 2023-03-01 | Siemens Aktiengesellschaft | Management of an app, especially testing the deployability of an app comprising a trained function using a virtual test environment, method and system |
US11650871B2 (en) * | 2021-09-13 | 2023-05-16 | UiPath, Inc. | System and computer-implemented method for verification of execution of an activity |
CN114201346B (zh) * | 2021-10-25 | 2024-08-16 | 合众新能源汽车股份有限公司 | 一种can通讯接口的hil测试方法、装置及电子设备 |
CN113986754A (zh) * | 2021-11-11 | 2022-01-28 | 挂号网(杭州)科技有限公司 | 一种接口测试方法、装置、电子设备及存储介质 |
CN115685781A (zh) * | 2022-10-13 | 2023-02-03 | 交控科技股份有限公司 | 一种在线仿真测试方法及装置 |
CN115982056A (zh) * | 2023-02-27 | 2023-04-18 | 麦岩智能科技(北京)有限公司 | 一种基于RosTopic的自动化测试方法、存储介质、设备 |
CN117520210B (zh) * | 2024-01-05 | 2024-04-16 | 芯瞳半导体技术(山东)有限公司 | 系统软件测试方法、目标机器及远程测试中控机 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090120038A (ko) * | 2008-05-19 | 2009-11-24 | 정병수 | 3차원 응용소프트웨어 프레임워크 기반의 자동 테스트시스템 및 그 방법 |
KR20100031321A (ko) * | 2008-09-12 | 2010-03-22 | 성균관대학교산학협력단 | 로봇 소프트웨어 컴포넌트의 계층별 테스트방법 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6941543B1 (en) * | 1995-05-30 | 2005-09-06 | Roy-G-Biv Corporation | Motion control system and method |
US6944584B1 (en) * | 1999-04-16 | 2005-09-13 | Brooks Automation, Inc. | System and method for control and simulation |
WO2001022228A1 (en) * | 1999-09-17 | 2001-03-29 | Nortel Networks Limited | System and method for producing a verification system for verifying procedure interfaces |
US6505342B1 (en) * | 2000-05-31 | 2003-01-07 | Siemens Corporate Research, Inc. | System and method for functional testing of distributed, component-based software |
US20030167454A1 (en) * | 2001-03-30 | 2003-09-04 | Vassil Iordanov | Method of and system for providing metacognitive processing for simulating cognitive tasks |
US7823131B2 (en) * | 2001-06-29 | 2010-10-26 | Mentor Graphics Corporation | Debugger for a hardware-implemented operating system |
US7085694B2 (en) * | 2001-10-22 | 2006-08-01 | Sandia Corporation | Apparatus and method for interaction phenomena with world modules in data-flow-based simulation |
US7502728B1 (en) * | 2002-04-30 | 2009-03-10 | Unisys Corporation | Code coverage testing in hardware emulation |
WO2003096191A2 (en) * | 2002-05-11 | 2003-11-20 | Accenture Global Services Gmbh | Automated software testing system and method |
CA2393043A1 (en) * | 2002-07-11 | 2004-01-11 | Luiz Marcelo Aucelio Paternostro | Formal test case definitions |
US7228524B2 (en) * | 2002-12-20 | 2007-06-05 | The Boeing Company | Method and system for analysis of software requirements |
US7890194B2 (en) * | 2005-12-13 | 2011-02-15 | Brooks Automation, Inc. | Robotics programming interface |
US7562001B2 (en) * | 2005-07-29 | 2009-07-14 | International Business Machines Corporation | Creating a behavioral model of a hardware device for use in a simulation environment |
US7958488B2 (en) * | 2005-08-16 | 2011-06-07 | National Instruments Corporation | Virtual testing in a development environment |
US8166458B2 (en) * | 2005-11-07 | 2012-04-24 | Red Hat, Inc. | Method and system for automated distributed software testing |
US8291387B2 (en) * | 2005-11-22 | 2012-10-16 | International Business Machines Corporation | Method and system for testing a software application interfacing with multiple external software applications in a simulated test environment |
US8301421B2 (en) * | 2006-03-31 | 2012-10-30 | Energid Technologies | Automatic control system generation for robot design validation |
US7747984B2 (en) * | 2006-05-30 | 2010-06-29 | Microsoft Corporation | Automatic test case for graphics design application |
CN100547562C (zh) * | 2006-10-18 | 2009-10-07 | 国际商业机器公司 | 自动生成可再现运行时问题的单元测试用例的方法和系统 |
US20080115114A1 (en) * | 2006-11-10 | 2008-05-15 | Sashank Palaparthi | Automated software unit testing |
US8079022B2 (en) * | 2007-06-04 | 2011-12-13 | Carbon Design Systems, Inc. | Simulation of software |
US7801710B2 (en) * | 2007-09-28 | 2010-09-21 | Rockwell Automation Technologies, Inc. | Simulation controls for model variability and randomness |
US20090158249A1 (en) * | 2007-12-13 | 2009-06-18 | Andrew Tomkins | System and method for testing a software module |
KR101053104B1 (ko) * | 2009-10-28 | 2011-08-02 | 엘에스산전 주식회사 | 전산기기 소프트웨어 테스트 방법 및 시스템 |
-
2010
- 2010-06-09 KR KR1020100054212A patent/KR101132560B1/ko active IP Right Grant
- 2010-08-10 US US12/853,475 patent/US8601436B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090120038A (ko) * | 2008-05-19 | 2009-11-24 | 정병수 | 3차원 응용소프트웨어 프레임워크 기반의 자동 테스트시스템 및 그 방법 |
KR20100031321A (ko) * | 2008-09-12 | 2010-03-22 | 성균관대학교산학협력단 | 로봇 소프트웨어 컴포넌트의 계층별 테스트방법 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107671857A (zh) * | 2017-10-11 | 2018-02-09 | 上海交通大学 | 用于服务机器人操作演示与算法验证的三维仿真平台 |
KR20200145269A (ko) * | 2019-06-21 | 2020-12-30 | 주식회사 엘지씨엔에스 | 테스트 자동화 시스템 |
KR102271857B1 (ko) | 2019-06-21 | 2021-07-01 | 주식회사 엘지씨엔에스 | 테스트 자동화 시스템 |
Also Published As
Publication number | Publication date |
---|---|
US8601436B2 (en) | 2013-12-03 |
KR20110134582A (ko) | 2011-12-15 |
US20110307860A1 (en) | 2011-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101132560B1 (ko) | 로봇 소프트웨어 컴포넌트를 위한 시뮬레이션 기반 인터페이스 테스팅 자동화 시스템 및 그 방법 | |
US20100115496A1 (en) | Filter generation for load testing managed environments | |
CN112241360A (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
CN113742215B (zh) | 一种自动配置和调用测试工具进行测试分析的方法及系统 | |
Langhammer | Automated Coevolution of Source Code and Software Architecture Models | |
Hammoudeh García et al. | Bootstrapping MDE development from ROS manual code: Part 2—Model generation and leveraging models at runtime | |
CN102144221B (zh) | 用于自动化测试的紧凑架构 | |
Wendel et al. | Provenance of software development processes | |
Arts et al. | Trace analysis of Erlang programs | |
Hugues et al. | Twinops: Digital twins meets devops | |
US9612870B2 (en) | Inversion of control for executable extensions in a run-time environment | |
Boehm et al. | Using empirical testbeds to accelerate technology maturity and transition: the SCRover experience | |
Tufarolo et al. | Automated distributed system testing: designing an RTI verification system | |
Boydston et al. | Joint common architecture (JCA) demonstration architecture centric virtual integration process (ACVIP) shadow effort | |
Noseworthy | Supporting the Decentralized Development of Large-Scale Distributed Real-Time LVC Simulation Systems with TENA (The Test and Training Enabling Architecture) | |
Romero et al. | A Computer Aided Verification Process for Engineered Systems | |
Wang et al. | MBT/CPN: a tool for model-based software testing of distributed systems protocols using coloured Petri nets | |
Mueller et al. | Introduction of a Dedicated Platform Level for IMA Systems Development With an Extensive Automation Tool Support | |
Wehrmeister et al. | Framework to simulate the behavior of embedded real-time systems specified in UML models | |
Bhuta et al. | A framework for identification and resolution of interoperability mismatches in COTS-based systems | |
Wang et al. | Model-based simulation testing for embedded software | |
Steller et al. | Test Automation Architecture for Automotive Online-Services | |
US8626484B1 (en) | Light-weight and flexible feature simulator | |
Schulz | Integrating performance tests in a generative software development platform | |
Xaia et al. | Automated Software Testing for Control and Monitoring a Radio Telescope |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20150212 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20151224 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20161226 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20180321 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20190327 Year of fee payment: 8 |