IBM®
메인 컨텐츠로 가기
    Korea [국가변경]    이용약관
 
 
   
        제품    서비스 & 솔루션    고객지원 & 다운로드    회원 서비스    
한국 developerWorks   >  dW Column  > developerworks

TTCN-3를 이용한 테스팅 자동화 방안



이영석이영석 stone@sqe.co.kr

SOAP, 웹 서비스 등 XML 기반 기술과 BPM을 통한 프로세스 시스템 신봉자로 소프트웨어 품질에 대한 정통부 GS인증 업무를 수행하는 등 개발자 출신 QA라는 흔치 않은 경력을 가지고 있다. 현재 와이즈스톤(www.wisestone.kr) 대표이며, 소프트웨어 품질관리 교육 및 컨설팅 등을 하고 있다.

2008년 11월 11일


현업에서 여러 종류의 프로젝트를 다수의 인원이 모여 수행할 때, 예상치 못한 어려움과 비용이 생기는 부분이 바로 의사소통이다.

일반적으로 의사소통이란 화자가 전달하려는 의미와 생각의 구조가 글이나 말, 사진, 영상 같은 도구를 통해 청자에게 전달되어 재구성된 의미의 구조가 화자와 동일해야 정상으로 이뤄졌다고 할 수 있다. 대개는 화자, 청자의 배경지식과 선입견, 의사소통 전달 도구의 문제 때문에 서로 의사가 일치하지 않는 경우가 생긴다.

소프트웨어 개발에서 사용자 요구 분석이나 클래스 구조도를 글로 서술하지 않고 다른 정형화된 심볼을 사용하는 것도 이러한 의사소통 문제를 줄이려는 노력으로 볼 수 있다. 이번에 소개하는 TTCN-3 역시 첫 시작은 의사소통 효과를 높이기 위해 고안된 기술이다.


TTCN-3 소개

TTCN-3는 ETSI(ES 201 873 Series) 및 ITU-T(Z.140 Series)에 의해 국제적으로 표준화된 테스트 언어다.

테스팅 절차(procedure)와 방법을 문자를 이용해 서술할 경우, 테스팅 모델을 설계한 엔지니어와 실제 수행하는 엔지니어 간에 의사소통이 잘못될 수도 있기 때문에 테스팅 방안을 심볼을 이용한 노테이션(Symbolic Notation)으로 표현하도록 개발되었다.

처음 TTCN-1 버전 이후 노테이션을 자동으로 코드화하는 방안과 자동화된 실행 방안까지 포함된 개념으로 현재 TTCN-3(version 3)까지 발전하였다.

TTCN-3 예제
그림 1. TTCN-3 예제

TTCN-3는 테스팅 플랫폼, 개발시 사용된 언어와 무관한 TTCN-3 노테이션을 통해 정의된 테스트 케이스 명세를 이용해 테스팅을 수행할 수 있어, 동작 플랫폼 변화와 무관하게 개발 전 과정에 걸쳐 동일한 테스트 케이스를 재사용할 수 있을 뿐 아니라 테스트 인력이 개발자 없이 쉽게 테스트 케이스를 제작, 수정, 관리할 수 있다. 이로써 개발자에게 가중되는 부담 없이 개발 프로세스 전반에 걸쳐 테스팅•검증 프로세스가 자연스레 융합될 수 있고, 이는 결국 소프트웨어 품질 향상으로 이어지는 효과를 낸다. 또 다른 장점은 국제 표준 언어를 사용함으로써 테스트 케이스 자체의 문제점에 대한 객관적인 검증 그리고 테스트 결과(소프트웨어의 신뢰성)에 대한 객관적인 평가가 가능해진다. TTCN-3는 다음 분야의 테스팅에 활용할 수 있다.[1]

  • 회귀 테스팅(Regression Testing)
  • 적합성 및 기능성 테스팅(Conformance and Functionality Testing)
  • 통합 및 상호운영성 테스팅(Integration and Interoperability Testing)
  • 부하/스트레스 테스팅(Load/Stress Testing)

ETSI는 TTCN-3를 통한 다양한 테스팅 지원을 위하여 아래와 같이 TTCN-3 기능별 표준화 규격을 제공한다.

TTCN-3 기능별 표준화 규격 연관도
그림 2. TTCN-3 기능별 표준화 규격 연관도

  1. ETSI ES201 873-1: TTCN 3 Core Language(CL)
  2. ETSI ES201 873-2: TTCN-3 Tabular Presentation Format(TFT)
  3. ETSI ES201 873-3: TTCN-3 Graphical Presentation Format(GFT)
  4. ETSI ES201 873-4: TTCN-3 Semantics
  5. ETSI ES201 837-5: TTCN-3 TTCN-3 Runtime Interface(TRI)
  6. ETSI ES201 837-6: TTCN-3 TTCN-3 Control Interface(TCI)

이러한 특성의 TTCN-3를 기반으로 한 테스팅 시스템은 다양한 타깃 플랫폼, 개발 언어와 무관하게 테스트 케이스 중심의 타깃 기반 테스트를 수행할 수 있으며, 자동화된 테스팅 기능을 제공함으로써 그 활용 범위가 매우 넓다.



위로


TTCN-3 기반의 테스팅 시스템 구성

TTCN-3 기반 테스팅 시스템의 기능은 기존 테스트 케이스를 코드나 테스팅 명세서로만 표현하던 것을 국제적으로 표준화된 테스트 언어 TTCN-3 코어 언어(Core Language)를 이용하여 표현된 테스트 케이스를 번역하고, 이를 통해 만들어진 물리적(Physical) 테스트 케이스를 자동으로 실행하고, 테스트 결과를 실시간으로 표시하거나 테스트 종료 후 저장된 실행 결과를 분석하는 기능을 포함한다. 주요 기능은 다음과 같다.

  1. TTCN-3 코어 언어로 표현된 테스트 케이스를 C 언어로 번역하는(Translation) 기능
  2. C 언어로 번역된 물리적 테스트 케이스를 실행 순서 제어, 테스트 케이스 매개변수화(Parameterization) 및 SUT(System Under Testing)와의 통신 채널(Communication Channel)을 수립하고 실행하는 시스템 테스팅(System Testing) 기능
  3. 테스트 실행 결과를 실시간으로 모니터링하는(Real-Time Monitoring) 기능
  4. 종료된 테스팅 실행 결과를 분석하고 보고하는(Reporting Test Result Analysis) 기능

TTCN-3 기반의 테스팅 시스템 아키텍처
그림 3. TTCN-3 기반의 테스팅 시스템 아키텍처

구성 모듈별 주요 기능
표 1. 구성 모듈별 주요 기능

TTCN-3 기반의 테스팅 시스템 GUI
그림 4. TTCN-3 기반의 테스팅 시스템 GUI



위로


마치며

국내에는 아직 TTCN을 기반으로 한 솔루션이 출시된 사례가 없다. 유럽의 경우 복잡하고 높은 신뢰성을 요구하는 임베디드 소프트웨어의 효과적이고 정형화된 자동화 테스팅 방안으로 TTCN 기술에 주목하고 있으며, TTCN-3 기반 상용 테스팅 시스템이 다수 존재한다. 이는 유럽이 통신 프로토콜 기술을 주도한다는 점과 연관이 있다고 할 수 있다.

TTCN-3 기반의 테스팅 도구는 많은 분야에 적용할 수 있으며, 여러 가지 효과를 얻을 수 있을 것으로 기대한다. 특히 테스팅을 위한 별도 코드 개발이 필요 없기 때문에 테스트 코드 개발 비용을 줄이고 오류를 예방할 수 있으며, 사용성과 활용성이 높은 테스팅 환경을 구축해 임베디드 소프트웨어 개발 효율성과 생산성 향상에 대한 효과를 기대할 수 있다. 또한 TTCN 특성을 이용한 자동 수행을 통해 개발 과정의 반복적인 회귀 테스트를 수행할 수 있는 점도 테스팅 비용 절감에 큰 효과를 볼 수 있는 TTCN-3 기술의 장점이라 하겠다.


[1] TTCN-3: Benefit



이 문서 북마킹 하기

mar.gar.in mar.gar.in naver naver eolin eolin del.icio.us del.icio.us



위로


[지난 developerWorks Column 보기]

사이트 여행

dW 커뮤니티
포럼 | 블로그 | Spaces
dW Student Community

로컬 컨텐츠

행사 및 세미나

기획 기사

개발자 입문

튜토리얼 및 교육

TOP 10 인기자료

SW 다운로드

RSS 피드

뉴스레터
 
  
자바스크립트가 작동이 중지되었습니다. 이 기능을 수행하시려면 브라우저에서 자바스크립스트를 작동시켜 주시거나 이곳을 클릭해주세요.

Special offers
Screencast
IBM SOA Sandbox 시험판
dW Student Community
로보코드
코드 트레이닝


    IBM 소개 개인정보 보호정책 문의