Record & Replay

개념
- 사용자의 입력과 외부 메시지로 구성되는 이벤트에 대해서 임베디드 소프트웨어가 정확히 대응하는지 테스트 하는 기법 - 타겟 시스템에서 발생하는 사용자 입력 및 외부 이벤트를 녹화해서 테스트 스크립트로 구성하고 이 스크립트를 재수행하여 결과를 확인하는 방법

I. 이벤트 기반 테스트 기법 Record and Replay 기법의 개요

가. Record and Replay 기법 정의

- 사용자의 입력과 외부 메시지로 구성되는 이벤트에 대해서 임베디드 소프트웨어가 정확히 대응하는지 테스트 하는 기법

- 타겟 시스템에서 발생하는 사용자 입력 및 외부 이벤트를 녹화해서 테스트 스크립트로 구성하고 이 스크립트를 재수행하여 결과를 확인하는 방법

 

나. 이벤트 기반 시스템 테스팅의 출현배경

1) 비순차적인 실행으로 인한 선후관계 파악의 어려움

2) 비동기적인 동작으로 인한 문제발생 포인트의 확인 불가

3) 다수의 이벤트 발생지로 인한 예측의 어려움

4) 테스트 플랫폼의 다양성에 맞춰 계획,이행,결과분석의 어려움

5) 테스트 플랫폼 및 환경설정의 오류

 

II. Record & Replay 기법의 구성도 및 절차

가.  Record & Replay 기법의 구성도

- 타겟 시스템에서 발생하는 사용자 입력 및 외부 이벤트를 녹화해서 테스트 스크립트를 구성하고, 이 스크립트를 재수행해서 결과를 확인하는 방법

 

나. Record & Replay 기법의 절차도

구분

단계

설명

사용자 이벤트 녹화 (Record)

① 기능테스팅

캡쳐 시작

- 테스팅 관리자 웹브라우저를 통해

기능 테스팅 캡쳐 시작을 명령

②,②’ 이벤트후킹

(Event Hooking)

- 타켓 시스템에 설치된 테스트 에이전트가

테스팅 대상 응용프로그램에서 발생되는

이벤트를 가로챔

③ 이벤트 송신

- 타켓 시스템의 테스트 에이전트는 단말의

통신 인터페이스를 이용하여 테스트

 시스템으로 이벤트를 전송

④ 이벤트 저장

- 테스트 시스템의 캡쳐 모듈은 타켓

시스템의 테스트 에이전트가 송신한

이벤트 메시지를 XML형태로 변경하여 저장함.

사용자 이벤트 재생 (Replay)

⑤ 기능 테스팅

재수행 시작

- 테스팅 관리자 웹브라우저를 통해 기능

테스팅 재수행 시작을 명령

⑥ 이벤트

검색/변환

- 테스트 시스템의 재수행 모듈은 XML로

저장된 이벤트를 RAW 이벤트로 전환

⑦ 이벤트 통신

전송

- 타켓 시스템의 테스트 에이전트에게

RAW이벤트 메시지를 발송

⑧ 이벤트 전달

-타켓 시스템의 테스트 에이전트는 수신한 RAW이벤트 메시지를 대상 프로그램에 전달

⑨, ⑨’ 결과전달

-타켓 시스템의 테스트 에이전트는 테스팅 결과를 테스트 서버의 결과 처리 모듈에 전달

 

III. Record and Replay 기법의 적용사례 및 주요이슈

가. 적용사례

1) 임베디스 시스템의 이행 테스트시 적용

2) BRE에서 사용되는 CEP(Complex Event Processor)의 테스팅 

나. 주요이슈

특징

설명

Event Driven

User-driven기능과 event-driven 기능이 혼재됨

Time critical

때때로 시간제약사항이 있는 경우가 존재함

Platform Diversity

플랫폼(H/W, OS 등)이 다양함

Platform stability

플랫폼(H/W, OS 등) 자체에 오류가 있는 경우가 있음

Development Environment

컴파일러, 라이브러리 등이 불완전한 경우가 있음

 

IV.  이벤트 기반 시스템 테스팅 해결과제

가. 임베디드 시스템에서 자주 발생하는 실시간성과 인터럽트 처리에 대한 테스팅 방법 부족

나. 비동기적인 인터럽트가 시스템 기능 및 성능에 끼치는 영향을 테스팅 하는 기법 필요   “끝”

 

I. 이벤트 기반의 시스템 테스팅을 위한 Record and Replay

1. Record and Replay 기법의 개념

  • 사용자의 입력과 외부 메시지로 구성되는 이벤트에 대해서 임베디드 소프트웨어가 정확히 대응하는 지를 테스팅하는 기법
  • 타겟 시스템에서 발생하는 사용자 입력 및 외부 이벤트를 녹화해서 테스트 스크립트로 구성하고, 이 스크립트를 재수행해서 결과를 확인하는 방법

 

2. 이벤트 기반 시스템 테스팅 시 고려사항

  • 테스트 에이전트 개발 시 물리적인 제약사항을 고려해 개발되야 함
  • 테스팅 과정에서 많은 양의 산출물을 발생하는데, 산출물 관리에 유의
  • 호스트와의 통신 환경이 시리얼 라인밖에 없으므로 효율적인 데이터 관리가 매우 중요함

 

댓글