실시간 테스트

Real-time testing

실시간 테스트실시간 컴퓨터 시스템테스트하는 과정이다.

소프트웨어 시험은 컴퓨터 소프트웨어의 버그(오류)를 검출하고 이를 교정하기 위해 실시한다.테스트에는 소프트웨어에 오류가 없을 뿐만 아니라 사용자에게 필요한 기능을 제공하는지 확인하는 것이 포함된다.정적 및 재래식 시험 방법은 버그를 탐지할 수 있지만, 그러한 기법은 실시간 소프트웨어 시스템에서 정확한 결과를 보장하지는 못할 수 있다.
실시간 소프트웨어 시스템은 타이밍 제약이 엄격하고 결정론적 행동을 가진다.이러한 시스템은 자신에게 부과된 타이밍 제약 조건을 충족하도록 업무를 스케줄링해야 한다.기존의 정적 분석 방법은 그러한 타이밍 제약조건을 다루기에 적합하지 않으므로 추가 실시간 시험이 중요하다.[1]

전략

실시간 테스트를 위한 테스트 사례 설계는 4단계로[2] 제안할 수 있다.

  • 작업 테스트
첫 번째 단계에서는 각 과제를 기존의 정적 시험으로 개별적으로 시험한다.이 시험은 프로그램의 논리나 구문에서의 오류를 발견하기 위해서만 수행된다.작업 테스트는 이벤트의 타이밍 제약 조건과 시간 특성을 다루지 않으므로 이벤트의 순서는 중요하지 않다.
  • 행동 테스트
자동화된 시험 도구의 도움을 받아 설계된 시스템 모델을 사용하면 실시간 시스템의 동작과 동시에 발생하는 외부 이벤트가 동작에 미치는 영향을 시뮬레이션할 수 있다.
  • 업무간 시험
개별 과제를 사용한 테스트가 완료되면 코딩 및 행동 영역에서 오류가 없어야 한다.시간 관련 제약조건은 업무간 시험으로 시험한다.통신의 오류를 밝히기 위해, 비동기 작업을 가변 데이터 전송 속도와 다른 페이로드로 시험한다.
  • 시스템 테스트
이 시험에서는 소프트웨어와 하드웨어를 통합하고 소프트웨어와 하드웨어 인터페이스 중에 오류가 있는 경우 전체 범위의 시스템 시험을 실시하여 오류를 발견한다.

실시간 테스트를 위한 도구

실시간 시스템의 테스트가 점점 중요해짐에 따라 이러한 테스트를 위해 설계된 툴이 있다.

MSC

Message Sequence Charts는 요구사항을 포착하기 위해 국제적으로 공인된 표준이다.[3]MSC는 일부 상호작용 시나리오를 통해 요구사항을 수집하는 데 종종 필요한 그래픽 2-D 언어를 제공한다.

SDL

사양설명 언어는 설계 및 분석에 사용되는 표준이다.SDL은[4] 복잡한 소프트웨어 시스템의 사양을 지원하며 통신, 자동화, 일반 소프트웨어 개발에 이르기까지 광범위한 영역에 걸쳐 광범위하게 적용되어 왔다.

TTCN

시험시험 제어 표기법은 국제 표준 시험 언어 중 유일한 것이다.주로 OSI[5] 프로토콜에만 집중되었던 이전 버전의 TTCN에 비해 TTCN3은 더 넓은 적용성을 제공한다.

이 세 가지 표준은 함께 실시간 적용 시험에 사용된다.이러한 모델에 대한 요건을 충족해야 하며, 생성된 테스트 케이스는 시스템 테스트에 필요한 기능 및 실시간 정보를 포착해야 한다.또한, 시스템의 실시간 특성에 대한 설계 요건 및 새로운 정보의 변경은 그 영향을 알아낼 수 있도록 모델에 공급되어야 한다.

주어진 시험 시스템의 실시간 특성을 정확하게 포착하고 요건과 모델이 실제적이고 집행 가능한 타이밍 정보를 생성하는데 사용되도록 하기 위해서는 언어 자체(TTCN-3)가 잘 이해되고 의미론적으로 건전한 시간 모델을 갖는 것이 필수적이다.

TTCN-3

배경

TTCN-3은 현재 사용 가능한 유일한 국제 표준화 시험 언어다.TTCN3 이전 버전에서는 OSI 프로토콜에 비해 기능이 제한되고 범위가 제한되었다.그러나 TTCN3은 고급 버전이며 적용 범위가 넓다.
TTCN3의 특징은 다음과 같다.

  • 동적 동시 테스트를 지정할 수 있는 능력
  • 메시지 기반 및 절차 기반 통신에 대한 작업
  • 강력한 일치 메커니즘을 사용하여 데이터와 시그너처 템플릿을 지정할 수 있는 기능
  • 유형 및 값 매개 변수화
  • 시험 평결서의 배정과 처리
  • 테스트 제품군 매개변수화 및 테스트 사례 선택 메커니즘

TTCN3를 실시간 테스트에 사용하는 이유는 타이머 때문이다.이러한 타이머는 기능 테스트 제품군에 정의되어 있다.TTCN3에는 글로벌한 타이머가 전혀 없다.이러한 타이머는 timer.start, timer.stop, timer.read와 같은 간단한 기능을 사용하여 시작, 중지 및 점검할 수 있다.

Snapshot Semantics는 TTCN3(TTCN2에서도 마찬가지)의 기법으로, 시스템에 의한 통신 중에 테스트 대상 시스템이나 구현 시 전달되는 메시지를 다룬다.테스트 중인 시스템에 의해 일련의 응답이 수신되면 스냅샷이 생성되어 도착 순서대로 평가된다.따라서 매번 속성 집합을 중심으로 스냅샷이 생성되고 스냅샷에 존재하는 이벤트만 평가된다.

그러나 스냅샷을 생성하는 동안 일부 이벤트와 해당 속성 정보가 손실될 수 있으므로 이 기술은 효율적이지 않다.일부 이벤트는 처리 대기열에는 기록되지만 스냅샷에는 기록되지 않을 수 있다.그러한 사건은 결코 처리될 수 없다.또한 시험실행자 장비가 충분히 빠르지 않으면 시험 대상 시스템과 제대로 통신할 수 없다.따라서 그러한 시험 평가 중에 결함이 발생할 수 있다.

리눅스 도구[6][7]

참고 항목

참조

  1. ^ Tsai, J.J.P.; Fang, K.-Y.; Bi, Y.-D. (1990). "On real-time software testing and debugging". Proceedings., Fourteenth Annual International Computer Software and Applications Conference. pp. 512–518. doi:10.1109/CMPSAC.1990.139423. ISBN 978-0-8186-2054-6.
  2. ^ Pressman, Roger S. (2005). Software engineering : a practitioner's approach (6th ed.). Boston, Mass.: McGraw-Hill. ISBN 0-07-285318-2. OCLC 53848343.
  3. ^ TTCN-3 Test Case Generation from Message Sequence Charts (PDF).
  4. ^ "SDL Forum Society - Home page". sdl-forum.org. Retrieved 2021-03-08.
  5. ^ User, Super. "Home". TTCN-3. Retrieved 2021-03-08. {{cite web}}: last=일반 이름 포함(도움말)
  6. ^ Dahlke, Patrick (2018-02-06). "Realtime Linux". Medium. Retrieved 2021-03-10.
  7. ^ "Realtime Testing Best Practices - eLinux.org". elinux.org. Retrieved 2021-03-10.