반응형

제목: 더 정확한 실시간 테스팅을 향하여(Towards More Accurate Real Time Testing)

저자: Richard O. Sinnott, 영국

문서유형: 학계 페이퍼( 6페이지)

 

테스팅 언어인 TTCN-3의 실시간 속성을 다루는 기능에 대하여 설명하고 해당 기능 사용 시 발생할 수 있는 타이밍 부정확성을 최소화하는 가이드라인을 제시한 자료



MSC, SDL, TTCN 언어

1) MSC(Message Sequence Charts)

  • 인터액션 시나리오 기술을 통해 요구사항을 도출하는 이차원 그래픽을 제공(요구사항 명세 언어)
  • 이런 시나리오는 대상 시스템이 충족시켜야 하는 속성(traces)를 정의하는데 종종 사용됨
  • 국제 표준이며 ITU-T(국제전기통신연합 전기통신표준화부문)에 의해 매 4년마다 업데이트 됨
  • 1992년 이전 시퀀스 차트의 파생어로 시작하여 MSC-92, MSC-96, MSC-2000으로 발전됨


2) SDL(System Design Language)

  • 복잡한 소프트웨어 시스템의 명세를 지원하는 설계 명세 언어
  • Specification and Description Language라는 이름으로도 알려짐
  • 전기통신이나 자동차 분야부터 일반 소프트웨어 개발까지 다양한 도메인에 적용됨
  • ITU-T에 의해 4년 마다 업데이트 되는 국제 표준


3) TTCN-3(Testing and Test Control Notation Testing)

  • ETSI(유럽전기통신표준기구)가 내놓은 국제 표준 테스팅 언어
  • Tree and Tabular Combined Notation라는 이름으로도 알려짐
  • TTCN 표준의 이전 버전이 OSI 프로토콜의 적합성 테스팅(conformance testing)에 중점을 두었던 반면 TTCN-3은 광범위한 적용을 용이하게 하는 여러 구조(structures)를 제공함


4) MSC, SDL, TTCN의 관계

  • MSC, SDL, TTCN은 시스템의 요구사항 캡쳐, 설계/분석, 테스팅을 하는데 있어 서로 보완 및 협업 하도록 설계되었음(이 세 언어들간의 관계를 그림으로 표현하면 아래와 같다)
  • MSCSDL은 장기간에 거쳐 진화되었고 SDL 모델과 MSC 모델을 비교해 자동 검증을 해 주는 고차원의 툴셋이 존재함. TTCN-3을 지원하는 여러 툴셋도 가용함
  • MSC, SDL, TTCN-3 모두 시스템의 실시간 속성(real time properties)을 다루기 위한 기능(features)을 보유하고 있음

[MSC, SDL, TTCN-3 간의 관계]


TTCN-3 기본 정보

  • 다양한 통신 인터페이스 상의 반응형 시스템(reactive system)의 테스트 명세에 적용 가능한 언어
  • 프로토콜 테스팅(모바일과 인터넷 프로토콜 포함), 서비스 테스팅, 모듈 테스팅, API 테스팅 등에 주로 적용됨
  • TTCN-3은 언어의 구문(syntax) 측면에서 ISO/IEC 9646-3에 정의된 이전 버전들과 매우 다르지만 대부분의 TTCN 기본 기능을 유지하고 있으며 일부는 개선시킴
  • TTCN-3은 텍스트 형태의 핵심 표기법(a core notation)과 여러 프리젠테이션 형식(presentation formats)을 포함한다. 예를 들면, 테이블 형태의 프리젠테이션과 MSC와 유사한 그래픽 형태의 프리젠테이션이 존재한다.
  • TTCN-3은 또한 구체적인 오퍼레이션 시맨틱(operational semantics)을 제공하므로 TTCN-3을 통해 구현에 독립적인 추상화된 테스트 케이스 모음(abstract test suites)을 개발하는 것이 가능함. 이렇게 구축된 추상화된 테스트 케이스 모음은 테스트 대상 시스템에 종속된 정보들을 포함하여 실행 가능한 테스트 케이스 모음(executable test suites)으로 컴파일 된다.
  • TTCN-3 표준은 언어 자체 외에도 테스트 런타임 인터페이스(Test Runtime Interface)와 테스트 통제 인터페이스(Test Control Interface)에 대한 기술을 포함한다. , 테스트 실행, 컴파일된 TTCN-3 코드의 해석/실행, 테스트 대상 시스템과의 통신 구현, 외부 function 구현, 테스트 실행 정보 기록(logging)을 위한 기능 지원, 타이머 오퍼레이션 핸들링 등에 대하여도 다룬다.


TTCN-3의 실시간 기능

TTCN-3은 시스템의 실시간 측면을 서술, 테스팅, 평가하는데 있어서 timersnapshot 시맨틱에 기반하고 있음


1) Timer

TTCN-3에서 테스트 대상 시스템의 시간 측면을 다루는 중심 기능인 timer는 아래와 같은 오퍼레이션(start, stop, read, 타이머가 run 중인지 체크)을 가진다.

[TTCN-3의 timer]


  • 타이머는 선언되고(declared), 시작되고(started), 중단되거나(stopped) 또는 타임아웃(timeout) 된다. 타이머가 타임아웃 되면 만료된 해당 타이머가 타임아웃리스트(a timeout list)에 추가되고, 이 리스트는 다음 스냅샷이 찍어질 때 체크된다.
  • TTCN-3에는 글로벌 타이머나 글로벌 데이터가 존재하지 않음. , 타이머는 function, 테스트 케이스, 또는 테스트 케이스 모음의 통제 부분(the control part of a test suite)에 한정된다.


[TTCN-3에서 timer 사용 예]


2) Snapshot 시맨틱

  • 테스트 시스템으로부터 테스트 대상 시스템으로 메시지가 보내질 때 그 응답(테스트 대상 시스템에서 테스트 시스템으로 보내지는 메시지)은 등장하는 순서에 따라 처리된다. , 여러 대안(alternatives)이 가능하며 이에 대해 스냅샷을 찍어서 어떤 이벤트가 수신되었는지 어떤 타임아웃이 발생했는지를 기억해둔다.
  • 다음 사이클에서는 스냅샷에서 식별된 것들로 매치(match)를 한다. 만약 매칭이 일어나지 않으면 새로운 스냅샷이 찍어진다.


실시간 테스팅에 TTCN-3 사용 예

테스트 시나리오 샘플: 테스트 대상 시스템에 X를 전송하면 A, B 또는 C를 수신하게 됨. C 응답이 0.05ms 이내에 이루어지면(<=0.05ms) 테스터는 Y를 전송해야 함. 테스트 대상 시스템이 0.1ms 이전에 아무런 응답을 하지 않으면 테스터는 Z를 전송해야 함. 이 시나리오를 MSC-2000으로 표현하면 아래와 같다.


위 테스트 시나리오에 상응하는 TTCN-3 표현은 아래와 같다.


타이머와 스냅샷을 기반으로 한 현 TTCN-3 실시간 테스팅의 주요 문제점

  • 위 테스트 명세는 언뜻 보기에 문제가 없어 보이지만 정확한 실시간 테스팅을 위해 필요한 테스터의 속도에 대하여 고려하지 않음(, 타이머를 시작하는데 얼마나 걸리는지, 스냅샷을 찍는데 얼마나 걸리는지, port를 체크하고 대안에 매치하는데 얼마나 걸리는지, 타임아웃리스트를 체크하는데 얼마나 걸리는지 등). , 실시간 테스팅은 테스트 대상 시스템의 실시간 속성을 기반으로 해야지 테스트 시스템 자체의 속도에 의존하면 안 된다. 따라서 테스트 시스템 자체의 속도에 대한 정보가 제공되어야 하고 이것이 테스트 결과에 미치는 영향을 알고 있어야 한다.
  • 또한 위 시나리오는 테스팅과 관련된 통행 지연(transit delays)에 대해서는 전혀 언급을 안 함. 예를 들면, 전송/수신을 하는데 있어 소요되는 네트워크 통행 지연(network transit delay)이나 테스트 대상 시스템에 접근하기 위해 거쳐야 하는 하단 프로토콜 계층(lower protocol layers)을 메시지가 통과하는데 걸리는 시간 등이 명세 되지 않음. 이런 사항들이 요구사항에 명세되지 않았어도 정확한 실시간 측정을 위해서는 고려되어야 함
  • 위 시나리오 표현의 더 큰 문제는 TTCN 스냅샷 시맨틱으로 인한 부정확한 시간 측정의 가능성이 높다는 점이다. 예를 들면, 아래 식처럼 타임아웃의 실제 값이 부정확해질 수 있다. , Z를 전송하는데 있어서 추가적인 지연이 생기고 이는 타이머 리딩(T1.read)에 기록되는 값에도 영향을 줄 수 있다.

Z가 전송되는 시간 = 최근 스냅샷 시간+A/B/C 체크 시간(대안 매칭)+타임아웃리스트 체크 시간


반응형

+ Recent posts