반응형

제목: 임베디드 자동차 소프트웨어의 체계적 테스팅: 임베디드 시스템 분류 트리 방법(Systematic Testing of Embedded Automotive Software: The Classification-Tree Method for Embedded Systems (CTM/ES))

저자: Mirko Conrad, DaimlerChrysler AG, 독일

문서유형: 컨퍼런스 페이퍼( 12페이지), Industry, 2005

 

임베디드 자동차 소프트웨어의 효율적인 테스트 설계(테스트 시나리오 도출/표기와 모델 기반 개발 프로세스로 통합)를 위해 기존의 분류 트리 방법(Classification-Tree Method)을 확장하여 임베디드 시스템을 위한 CTM/ES를 제안. 간단한 자동차 소프트웨어 컴포넌트를 예로 들어 CTM/ES 방법을 설명한 자료



CTM/ES(the classification-tree method for embedded systems)

  • 블랙 박스 테스트 설계 기법인 분류 트리 방법(the Classification-Tree Method)을 임베디드 시스템의 체계적인 테스트 설계가 가능하도록 확장한 버전
  • 여러 추상화 레벨에 있는 시간 종속적인 테스트 시나리오(time-dependent test scenarios)를 그래픽하게 표현. 즉, 테스트 시나리오를 일관성 있게 표현하는 CTM/ES 표기법(notation)이 제공됨 
  • 기본 원리: 테스트 대상 시스템의 입력 도메인을 입력 데이터 소스(input data sources)에 따라 분할하고, 분할된 부분들(classifications)은 다시 입력 데이터 동등 클래스(input data equivalence classes)로 나누어진다. 마지막으로 입력 데이터 동등 클래스의 다양한 조합이 테스트 케이스로 선정된다.


CTM/ES 적용 예

승용차의 페달 위치를 파악하는 컴포넌트를 예로 CTM/ES 방법을 설명한다.

 

예제 시스템: The pedal interpretation(줄여서 PedInt) subsystem

여러 자동차 통제 시스템의 전처리 컴포넌트(a preprocessing component)로 사용되는 PedInt는 자동차 실제 속도(v_act)를 구동장치(T_des_Drive)와 브레이크(T_des_Brake)의 권장 회전력(torques)으로 사용하여 액셀레이터 페달(phi_Acc)과 브레이크 페달(phi_Brake)의 현재 위치를 파악한다. 또한, 페달을 눌렀는지 아닌지 결정하는 두 개의 플래그(AccPedal, BrakePedal)에 대한 계산도 수행한다. 아래 표는 PedInt 컴포넌트의 소프트웨어 요구사항 일부를 기술하고 있다.


ID

Description

SR-PI-01

페달 움직임 인지

액셀러레이터 페달 또는 브레이크 페달이 특정 임계값 이상으로 눌러지면, 이를 페달 고유의 바이너리 신호(a pedal-specific binary signal)로 알린다.

SR-PI-01.1

브레이크 페달 움직임 인지

브레이크 페달이 임계값(ped_min) 이상으로 눌러지면 BrakePedal 플래그의 값이 1로 되고 그렇지 않으면 0으로 된다.

SR-PI-01.2

브레이크 페달 움직임의 이력 현상(Hysteretic behavior)

브레이크 페달이 움직임 인지 동안에 이력 현상(hysteresis)이 나타나서는 안 된다.

SR-PI-01.3

액셀러레이터 페달 움직임 인지

액셀러레이터 페달이 임계값(ped_min) 이상으로 눌러지면 AccPedal 플래그 값이 1로 되고 그렇지 않으면 0으로 된다.

SR-PI-01.4

액셀러레이터 페달 움직임의 이력 현상(Hysteretic behavior)

액셀러레이터 페달 움직임 인지 동안에 이력 현상(hysteresis)이 나타나서는 안 된다.

SR-PI-02

페달 위치 파악

액셀러레이터 페달과 브레이크의 페달의 위치가 의도한 회전력(desired torques)에 따라 파악되어야 하며, 승차감(comfort)과 연비(consumption)의 두 가지 측면이 모두 고려되어야 한다.

SR-PI-02.1

브레이크 페달 위치 파악

SR-PI-02.2

액셀러레이터 페달의 위치 파악



아래 그림은 위의 요구사항에 기반하여 개발된 PedInt 컴포넌트의 기능 모델을 Simulink로 표현한 것이다.  


1단계: 테스트 인터페이스 결정(test interface determination)

첫 단계로 테스트와 관련 있는 인터페이스를 결정해야 한다. n개의 입력과 m 개의 출력을 가진 테스트 대상 시스템에서 입력 인터페이스 I는 입력 변수 ii (i=1,...,n)로 표현되고 출력 인터페이스 O는 출력 변수 oj(j=1,...,m)로 표현된다. 실제 테스트에 사용되는 변수들은 효과적인 테스트 인터페이스(effective test interface)’라고 부르며 I È O로 표현한다. 테스트 대상을 테스트 하기 위해서는 the effective test interface의 각 입력 변수가 시간 종속적인 신호로 활성화(stimulated)되어야 하고 출력 변수는 기록(테스트 결과 기록)되어야 한다. The effective test interface가 테스트 시나리오의 signature를 결정한다.


아래 표는 PedInt 컴포넌트의 the effective test interface I È O를 기술하고 있다.


따라서 기능 테스트 시나리오의 signature가 아래와 같다.




2단계: 테스트 입력 분할(Test input partitioning)

두 번째 단계에서는 the effective input interface를 형성하는 유효한 입력 값들이 빠짐없이 그리고 중복 없이 동등 클래스(equivalence classes)로 분할되며, 이 분할은 classification-tree를 통해 그래픽하게 표현된다. 분할을 하는데 있어 휴리스틱 절차(A heuristic procedure) 사용이 효과적이며 입력 데이터 타입과 범위(value ranges)도 유용한 실마리가 된다. PedInt에서 0%~100% 입력 범위를 가진 페달 위치(the pedal positions)0, ]0, 100[, 100 3개 클래스로 분할되며, 자동차 속도(v_act)-10, ]-10,0[, 0, ]0,70[, 70 5개 클래스로 분할된다.

 

PedInt의 플래그(flag) 계산을 테스트 하는데 있어서 v_act는 부차적이므로 기 분할된 클래스를 더 이상 세분화하지 않는다. 하지만 특정 임계값(ped_min) 이상이어야 페달이 눌러진 것으로 인지되는 페달 위치에서는 페달 값이 임계값 이상인 경우와 이하인 경우 동작이 달라지므로 이를 별개의 클래스로 다루어야 한다. 또한 정확히 임계값인 경우에 해당하는 클래스도 필요하다. 따라서 페달 위치의 최종 분할된 클래스들은 0, ]0, ped_min[, ped_min, ]ped_min, 100[, 100이다.

 

클래스 분할은 아래 그림과 같은 분류 트리(a classification-tree)를 이용하여 가시화한다.



3단계: 테스트 시나리오 결정(Test scenario determination)

앞 단계의 테스트 입력 분할에 기반하여 테스트 시나리오를 결정한다. 테스트 시나리오는 시간 경과에 따른 입력 값들의 변천 과정을 포괄적이고 추상적인 형태로 표현한다.

 

아래 그림처럼 이전 단계에서 생성된 분류 트리(The classification-tree)는 조합 테이블(a combination table)의 열(columns)을 정의하는데 사용된다. 테스트 시나리오는 일련의 테스트 스텝(test steps)으로 구성되는데, 이 스텝들이 시간 순서대로 조합 테이블의 행으로 표현된다. 각 테스트 스텝의 입력 조건(The input situation)은 분류 트리에 있는 여러 분류(classifications)의 클래스를 조합하여 정의한다(, 조합 테이블의 각 입력 변수의 열에서 해당되는 클래스를 마킹). 각 입력 조건의 지속 주기(The duration)는 조합 테이블의 맨 우측열에 시간 태그(time tags)를 추가하여 표현한다.


시간에 따라 변하는 동작(, 입력 값을 연속적인 테스트 스텝의 시간 경과에 따라 변경하는 것)은 해당 입력 변수의 분할된 여러 클래스들을 마킹하여 모델링한다. 각 테스트 스텝에서의 입력 신호(The stimulus signal)는 마크된 클래스가 허용하는 범위 내의 부분 간격(the part-interval) 또는 단일 값(the single value)으로 한정된다. 특정 테스트 스텝()에서의 마크된 입력 클래스들의 조합은 상응하는 시간대에 테스트 대상 시스템에 주어지는 입력 값들이다.

 

개별 입력 신호(the individual stimuli signals)들의 중간 단계 값(The intermediate values)들은 연속적인 테스트 스텝 마킹간의 전환(transitions)으로 나타낸다. 아래 표처럼 다양한 신호 형태(signal shapes)를 표현하는 여러 타입의 전환이 존재한다. 위 그림의 중간과 하단에 보이는 것처럼 패러미터화되고 단계적으로 정의된 함수(functions)로 입력 신호를 표현한다


PedInt에서 첫 번째 테스트 시나리오(아래 그림의 test scenario #1)의 목적은 일정 시간 동안 유지되는 특정 입력 값에 따른 페달 움직임 인지(the recognition of pedal activation)를 확인하는 것이다.

 

두 번째 테스트 시나리오(아래 그림의 test scenario #2)는 테스트 대상의 이력 현상(the hysteresis properties)을 점검한다. 이 테스트를 위해 페달 위치(the pedal positions)를 경사(a ramp) 형태로 상향과 하향으로 한번씩 번갈아 가면서 유효 값 전체 영역에 걸쳐 변동시킨다. 이 때 자동차 속도인 v_act의 테스트 클래스는 특별한 규칙 없이 임의로 선정한다.

 

세 번째 테스트 시나리오(아래 그림의 test scenario #3)는 속도의 + 값 영역 전체를 매번 선형으로 커버한다. phi_Acc의 모든 클래스들이 2 단계의 리듬으로 테스트에서 고려되며, 나머지 두 개 변수의 입력은 일정하게 유지된다(phi_Brake = 0, v_act는 표준 선형 증가).


4단계: 테스트 데이터 구체화(Test data refinement)

이전 단계에서 설계된 테스트 시나리오를 신호 파형(signal waveforms)으로 구체화 한다. 앞 단계의 테스트 시나리오는 구체적 데이터가 아닌 동등 클래스에 기반한 추상화된 입력 정보(abstracted stimulus information)만을 가지고 있으므로, 특정 값을 지정하여 테스트 데이터를 생성해야 한다.

 

조합 테이블에 정의된 테스트 시나리오는 개발 입력 신호들의 일종의 신호 칸막이(signal corridors)를 형성한다(, 변천되는 실제 입력 값들이 해당 칸막이 내에 위치해야 한다). 동등 클래스의 경계(borders)는 상응하는 테스트 스텝에서의 유효 값 범위의 경계가 된다. , 허용되는 입력 값의 제약(the constraints)을 준다.

 

PedInt의 기점(the base points)에서의 테스트 데이터 값 선정 시 마크된 클래스 범위 내의 어떤 값을 선택해도 상관없다. 이 예에서는 평균값(mean value) 테스팅 원칙을 적용하여 모든 경우에서 선택된 동등 클래스의 평균값을 테스트 데이터로 사용한다 (아래 테스트 데이터를 나타낸 그림에서 ped_min = 5 %).


CTM/ES의 테스트 모델

CTM/ES의 데이터 중심의 테스트 입력 분할은 테스트 입력 범위(the test input space)를 병렬 상태 머신 모델(a parallel state-machine model)로 표현한 것과 유사하다. CTM/ESThe effective test input interface의 각 변수가 상태 머신의 병렬 인자(AND-states)를 형성한다. 모델의 상태(states)는 각 변수의 동등 클래스를 반영하며, 여러 경로(pathes)는 일련의 테스트(Test sequences)를 나타낸다. 아래 그림은 예제로 사용된 PedInt의 테스트 모델이다


아래는 PedInt의 테스트 시나리오 #2를 테스트 모델상의 경로로 표시한 것이다.(페이퍼에는 시나리오 #3이라고 써있는데 내용상 2번이 맞음. 오타인 듯)


툴 지원

CTM/ES 방법으로 체계적으로 기능 테스트 시나리오를 정의하도록 지원해 주는 에디터(the classification-tree editor CTE/ES)가 있음


반응형

+ Recent posts