Open Platform for Robotic Services ⑥
OPRoS 검증 자동화 도구-웹 및 이클립스 기반
지난 2007년 지능형로봇 개발을 위한 공통기반 플랫폼 기술개발의 과제로 시작된 오프로스(OPRoS; Open Platform for Robotic Services)는 로봇 소프트웨어를 컴포넌트화하여 재사용과 동일기능을 하는 컴포넌트끼리 교체가 가능하도록 해 코드의 재사용성을 극대화하고, 빠른 로봇 소프트웨어 개발이 가능하도록 개발도구를 개발하는 것을 목적으로 한다. 본문에서는 로봇 소프트웨어 개발 시 지속적으로 소스코드의 변경/통합이 이루어지는 환경에서 테스트를 자동으로 수행하기 위한 OPRoS 검증 자동화 도구에 대해 개략적으로 설명한다.
1. OPRoS 검증 자동화 도구 개요 및 주요 기능
OPRoS 검증 자동화 도구는 로봇 소프트웨어 개발 시 지속적으로 소스코드의 변경/통합이 이루어지는 환경에서 테스트를 자동으로 수행하기 위한 테스팅 자동화 도구이다. 각 테스트에 대해 테스트 케이스 자동생성, 테스트 드라이버 코드 자동 생성, 테스트 자동 실행, 그리고 테스트 결과 분석 등의 기능을 제공함으로써 테스트 수행 시 필요한 비용을 줄이고자 한다. 또한 <그림1>에서 보는 바와 같이 OPRoS 개발 도구들(컴포넌트 저작도구, 컴포넌트 컴포우징 도구)과 통합된 이클립스 기반 검증도구와 웹 기반 검증 도구를 제공한다.
OPRoS 검증 자동화 도구는 <그림2>에서 보는 바와 같이 컴포넌트의 단위 클래스, 상태, 그리고 포트의 기능성을 검증할 수 있다. 이를 위해 블랙박스 기반 테스트 케이스 자동 생성, 테스트 드라이버 골격 코드 생성, 테스트 자동 실행, 그리고 테스트 결과 분석 기능을 제공한다.
1) 테스트 케이스 자동 생성 기능
OPRoS 컴포넌트 클래스, 상태, 포트를 테스트하기 위해 블랙박스 기반의 테스트 케이스를 자동으로 생성한다. OPRoS 컴포넌트 클래스와 포트 테스트를 위한 테스트 케이스 생성 기법은 확장된 동등분할기법, 경계 값 분석기법, 페어와이즈 기법 등을 지원하며 상태 테스트를 위한 테스트 케이스 생성 기법은 각 상태와 전이를 모두 테스트할 수 있도록 하기 위해 Round-trip 기반의 테스트 케이스 생성 기법 등을 지원한다.
2) 테스트 드라이버 골격 코드 생성 기능
생성된 테스트 케이스를 실행하기 위한 테스트 드라이버 기본 코드를 자동으로 생성한다. 단위 테스트의 경우 해당 클래스의 메소드를 테스트 할 수 있는 코드를 자동으로 생성하며 포트 테스트의 경우 테스트 대상 OPRoS 컴포넌트의 포트를 테스트할 수 있는 코드를 자동으로 생성한다.
3) 테스트 코드 분산 배치 및 자동 실행 기능
생성된 테스트 케이스 및 드라이버 코드를 테스트하고자 하는 원격의 환경에 자동으로 다운로드하고 테스트를 수행한다. 웹 기반의 검증도구는 원격의 다양한 테스트 환경에 분산 배치하여 테스트를 자동으로 수행할 수 있으며, 이클립스 기반의 검증도구는 개발자 또는 테스터가 자신의 로컬 환경에서 테스트를 수행할 수 있다. 테스트가 완료된 후 테스트 결과 또는 로그 기록 등은 XML 형식의 파일로 저장된다.
4) 테스트 결과 분석 기능
OPRoS 검증 자동화 도구는 사용자가 손쉽게 테스트 결과를 분석할 수 있도록 하기 위해 테이블 뷰 방식의 테스트 결과 보기와 그래픽 뷰 방식의 테스트 결과 보기를 지원한다. 테이블 뷰 방식의 테스트 결과 보기는 상세한 테스트 결과를 확인 할 때 유용하며 그래픽 뷰 방식의 테스트 결과보기는 통계적인 테스트 결과를 보기에 유용하다.
▲ 그림1. OPRoS 검증 자동화 도구 개략도
▲ 그림2. OPRoS 검증도구의 테스트 종류
2. 웹 기반 OPRoS 검증도구
웹 기반 OPRoS 검증도구는 원격의 다양한 테스트 환경에서 자동으로 테스트를 수행하기 위한 서비스를 제공하며 크게 네 가지의 테스트 과정으로 이루어져 있다.
테스트 프로젝트 생성 단계는 사용자가 원하는 테스트 대상(단위, 상태, 포트)에 따라 테스트 작업공간을 생성하는 단계이다. <그림3>에서 보는 바와 같이 크게 네 단계로 이루어져 있으며 웹 인터페이스를 통해 손쉽게 생성이 가능하다. 테스트 케이스 생성 단계는 테스트 대상의 테스트 명세를 입력하면 명세에 따른 테스트 케이스를 자동으로 생성하는 단계이다.
테스트 수행 단계는 생성된 테스트 프로젝트와 테스트 케이스를 원격의 테스트 환경에서 수행하기 위한 단계이다. 사용자는 원하는 테스트 환경을 선택하면 자동으로 해당 환경에 테스트 프로젝트를 다운로드하여 테스트를 실행한다.
테스트 결과 보기는 테이블 뷰 방식의 테스트 결과 보기와 그래픽 뷰 방식의 테스트 결과 보기를 지원한다. 테이블 뷰 방식의 테스트 결과 보기는 상세한 테스트 결과를 확인 할 때 유용하며 그래픽 뷰 방식의 테스트 결과보기는 통계적인 테스트 결과를 보기에 유용하다.
▲ 그림3. 웹 기반 테스트 프로젝트 생성 과정
▲ 그림4. 웹 기반 테스트 케이스 자동 생성 단계
▲ 그림5. 웹 기반 테스트 자동 실행 단계
▲ 그림6. 웹 기반 테스트 결과 보기
3. 이클립스 기반 OPRoS 검증도구
이클립스 기반 OPRoS 검증도구는 OPRoS 개발도구들(컴포넌트 저작도구, 컴포넌트 컴포우징 도구)과 연계하여 컴포넌트 또는 응용을 개발 중에 테스트를 수행하기에 용이하다.
이클립스 기반 OPRoS 검증도구에서 단위, 상태, 포트 테스트를 지원하며 각 종류의 테스트에 대해 테스트 프로젝트 생성, 테스트 케이스 생성, 테스트 실행, 그리고 테스트 결과보기 과정이 공통적으로 포함된다.
<그림7>은 OPRoS Test 퍼스펙티브의 기본화면으로 테스트 프로젝트 탐색기와 테스트 프로젝트 편집기로 구성되어 있다. 테스트 프로젝트 탐색기는 작업공간에 존재하는 테스트 프로젝트를 종류별로 탐색할 수 있으며 테스트 프로젝트 편집기는 생성된 프로젝트를 열어 프로젝트의 설정, 테스트 케이스 생성, 테스트 수행, 결과 보기 등의 작업을 수행하는 화면이다.
테스트 프로젝트 생성 단계는 사용자가 원하는 테스트 대상(단위, 상태, 포트)에 따라 테스트 작업공간을 생성하는 단계이며 <그림8>은 각 테스트 별 프로젝트 생성 마법사 화면이다.
테스트 케이스 생성 단계는 테스트 대상의 테스트 명세를 입력하면 명세에 따른 테스트 케이스를 자동으로 생성하는 단계이다.
<그림9>는 각 테스트 프로젝트의 테스트 케이스 관리 페이지 예이다. 테스트 케이스의 목록이 좌측에 표시되며 우측에 각 테스트 케이스를 구성하는 테스트 데이터가 표시된다.
테스트 프로젝트와 테스트 케이스를 생성한 후 테스트 프로젝트 편집기 하단의 ‘Test Run’ 탭을 클릭하면 <그림10>과 같은 테스트 수행 탭이 표시된다. 상단의 Run test… 버튼을 클릭하면 테스트를 수행하며 테스트 드라이버의 컴파일 및 빌드, 테스트 수행 및 결과 출력의 과정을 모두 기록한다.
테스트 수행과정에서 출력되는 로그는 Console 뷰를 통하여 확인할 수 있다.
▲ 그림7. 이클립스 기반 OPRoS 검증도구 퍼스펙티브 기본 화면
▲ 그림8. 이클립스 기반 테스트 프로젝트 생성 마법사 페이지
▲ 그림9. 이클립스 기반 테스트 케이스 관리 페이지
▲ 그림10. 이클립스 기반 테스트 결과 페이지
<필 자>
강원대학교 박홍성, 강정석