반응형

출처: Software Testing A Craftsman’s Approach, Paul C. Jorgensen, Fourth Edition, 2014년
14장 System Testing, 279~284페이지 

 

시스템 테스팅을 위한 테스트케이스를 선별하는 데 활용할 수 있는 운영 프로파일링기법과 리스크 기반 테스팅에 대해 은행 ATM 예를 가지고 설명한다.

 


 

운영 프로파일(Operational Profiles)

운영 프로파일의 아이디어는 다양한 스레드의 실행 빈도를 결정하고 이 정보를 사용하여 시스템 테스트를 위한 스레드를 선택하는 것이다. 특히 테스트 시간이 제한된 경우 운영 프로파일은 가장 자주 통과하는 스레드에서 실패(failures)를 유도하여 결함을 찾을 확률을 최대화한다.

 

 

예제: 단순화된 ATM 시스템

시스템 명세: 고객은 입금, 출금, 잔액 조회의 세 가지 거래 유형 중 하나를 선택할 수 있다. 단순화를 위해 이러한 거래는 당좌예금 계좌에서만 가능하다.

 

스레드 실행 확률(thread execution probabilities)을 식별하는 데 자주 쓰이는 모델 중 하나가 상태 전이 다이어그램(또는 유한 상태 머신, 상태 차트)이다. 아래 그림은 일반적인 상태 전이 다이어그램의 전이 레이블을 추정된 전이 확률(transition probabilities)로 대체한 것이다.

 

[ATM 유한 상태 머신에서의 전이 확률]

 

위 전이 확률을 그래프 이론의 인접 행렬 개념을 이용하여 아래와 같이 스프레드시트에 "전이 행렬(transition matrix)"로 표현할 수 있다.

[ATM 전이 확률 스프레드시트]

 

일단 스레드 확률이 알려지면 실행 확률에 따라 가장 큰 값에서 가장 작은 값으로 정렬한다. , 위 스프레드시트를 경로 확률컬럼 기준으로 내림차순 정렬하면 아래 운영 프로파일 표가 나온다. 한 번에 PIN 입력에 성공하고 정상 인출하는 시나리오(스레드)가 가장 실행 확률이 높은 것을 알 수 있다.

[ATM 운영 프로파일]

 

모델 기반 테스트의 품질이 기저 모델의 정확성에 따라 좌지우지되는 것처럼, 운영 프로파일 분석의 가치는 전이 확률 추정치(transition probability estimates)의 유효성에 의해 결정된다. 이러한 추정치를 개발하기 위한 여러 전략이 있다. 유사한 시스템의 과거 데이터를 사용하거나 또는 고객이 직접 제공한 추정치를 사용할 수도 있다. 또 다른 방법은 전문가 그룹이 추측을 제시하면 어떤 평균에 따라 결정하는 델파이(Delphi) 접근법을 사용하는 것이다. 예를 들어 일련의 추정치의 수렴 값을 기반으로 하거나, 또는 7명의 전문가가 있다면 가장 높은 추정치와 가장 낮은 추정치를 제거하는 방법이 될 수도 있다.

 

어떤 접근 방식이 사용되었간에 최종 전이 확률은 여전히 추정값이다. 운영 프로파일은 또한 구축된 시스템의 트래픽에 대한 (feeling)”을 제공하는 데, 이는 실행 시간 성능 및 시스템 트랜잭션 수용량(system transaction capacity)을 조기에 파악하는데 도움이 되기도 한다.

 

 

리스크 기반 테스팅(Risk-Based Testing)

리스크 기반 테스트는 운영 프로파일을 한 단계 더 정제한 것이다. 어떤 스레드가 실행 가능성이 가장 높은지를 아는 것만으로는 충분하지 않을 수 있다. 만일 그다지 중요하지 않은 스레드의 오작동이 아주 비싼 비용을 초래한다면 어떻게 될까? 이런 비용이 법적 처벌, 수익 손실, 회복의 어려움 등의 측면에서 발생할 수 있다.

 

리스크의 기본 정의가 다음과 같다.

 

리스크(Risk) = 비용(cost) * 발생 확률(probability of occurrence)

 

운영 프로파일이 발생 확률에 대한 추정치를 제공하기 때문에 비용 요인에 대한 추정만 추가하면 된다.

 

리스크 기반 테스팅을 전문으로 하는 컨설턴트인 Hans Schaefer는 첫 번째 단계로 시스템을 리스크 카테고리로 그룹화하는 것을 권한다. 그는 치명적인(Catastrophic)’, ‘손상을 주는(Damaging)’, ‘방해하는(Hindering)’, ‘성가신(Annoying)’의 네 가지 리스크 카테고리를 제시하였다. 다음은 비용 가중치를 평가하는 것인 데, 낮은 실패 비용의 경우 1, 중간 정도의 경우 3, 높은 경우 10의 로그 가중치를 제안하였다. 왜 로그를 사용했을까? 선형 척도로 요인들의 순위를 매길 것을 요구받은 피실험자들이 보통 주관적 평가에서 구별 가능한 충분한 차이를 만들지 못하기 때문에 심리학자들이 이러한 방향으로 나아가고 있다.

 

ATM 사례에 적용되는 Schaefer의 리스크 카테고리가 다음과 같다.

  • 치명적: 입금(deposit), 무효 인출
  • 손상: 정상 인출
  • 방해: 불량 ATM 카드, PIN 입력 실패
  • 성가신 일: 잔액 조회

 

아래 표는 ATM 운영 프로파일에 실패 비용(Cost of Failure)을 추가하고 리스크를 계산하여 내림차순 정렬한 것이다.

[ATM 리스크 평가]

 

리스크 순서에 따른 결과가 앞에선 본 운영 프로파일의 결과와 약간 다르다. 1차 시도에서 성공적으로 PIN을 입력한 후 정상 인출하는 유스케이스가 여전히 목록의 선두에 있는데, 이는 그 발생 확률이 매우 높기 때문이다.

Schaefer는 유스케이스에 여러 속성을 할당하고 이 속성에 가중치를 주어 리스크 평가를 개선할 것을 제안한다. 예를 들어 우리 ATM 시스템의 경우 고객 편의성(customer convenience), 은행 보안(bank security), 신원 도용(identity theft)과 같은 속성들을 리스크 평가 시 추가로 고려할 수 있다.

 

반응형

+ Recent posts