반응형

출처: Testing IT: An Off-the-Shelf Software Testing Process by John Watkins, 259~260 페이지

테스트 설계 프로세스에서 테스트 분석가(Test Analyst)가 샘플 테스트 데이터를 선택하는 데 사용할 수 있는 상태 전이 분석(State Transition Analysis) 기법을 보여주는 예제이다.


 

상태 전이 분석(State Transition Analysis)

테스팅 대상

이 예는 물 펌프의 작동을 제어하는 ​​소프트웨어에 대한 사양(specification)의 일부를 기술하고 있다.

  • 펌프가 격리(Isolated), 준비(Ready), 또는 실행(Running)의 세 가지 상태 중 하나가 될 수 있다. 펌프가 Isolated 상태이면 펌프를 시작할 수 없다(즉, Running 상태로 이동 못함).
  • 워터 밸브를 열면 펌프가 Isolated 상태에서 Ready 상태로 이동한다. 펌프가 Ready 상태일 때 워터 밸브를 닫으면 펌프가 Isolated 상태로 돌아간다.
  • 펌프가 Ready 상태에 있을 때 시작(Start) 버튼을 누르면 펌프가 시작되고 Running 상태로 이동한다. 펌프가 작동 중(Running) 일 때 중지(Stop) 버튼을 누르면 펌프가 중지되고 Ready 상태로 이동한다.

 

테스팅 요구사항 분석

위 요구사항을 분석하는 과정을 지원하기 위해 테스트 분석가는 상태, 상태의 전이, 전이를 일으키는 이벤트를 그래픽으로 표시하는 상태 전이 다이어그램(State Transition diagram)을 그린다.

[상태, 전이, 이벤트의 그래픽 뷰]

 

테스트케이스 설계

상태 전이 다이어그램을 검사하여 펌프 제어 소프트웨어에 대한 요구사항을 확인하는 여러 테스트케이스를 식별할 수 있다(, Positive Testing).

  • Test Case 1. 펌프가 Isolated 상태에 있을 때 밸브를 열면 펌프가 Ready 상태로 이동하는가?
  • Test Case 2. 펌프가 Ready 상태일 때 밸브를 닫으면 펌프가 Isolated 상태로 이동하는가?
  • Test Case 3. 펌프가 Ready 상태일 때 Start 버튼을 누르면 펌프가 Running 상태로 이동하는가?
  • Test Case 4. 펌프가 Running 상태일 때 Stop 버튼을 누르면 펌프가 Ready 상태로 이동하는가?

 

마찬가지로 상태 전이 다이어그램을 검사함으로써 명시된 요구사항을 벗어난 시스템 오퍼레이션에 대해 체크하는 여러 테스트케이스를 식별할 수 있다(, Negative Testing).

  • Test Case 5. 펌프가 작동 중(Running)일 때 밸브를 닫으려고 시도하면 어떻게 되는가(실제 펌프의 경우 대개 치명적인 문제 발생)?
  • Test Case 6. 펌프가 Isolated 상태 일 때 시작 Start 버튼을 누르면 어떻게 되는가?
  • Test Case 7. 펌프가 이미 Running 상태 일 때 Start 버튼을 누르면 어떻게 되는가?
  • Test Case 8. 펌프가 Running 상태 일 때 Start 버튼과 Stop 버튼을 동시에 누르면 어떻게 되는가?

 

상태 전이 기법을 사용하여 테스트 대상 애플리케이션(AUT)의 오퍼레이션을 시각화하는 것은 테스트케이스를 식별하는 매우 효과적인 방법이며, 특히 부정적 테스팅(Negative Testing)이 목적인 경우에도 효과적이다.

 

반응형

+ Recent posts