---
title: "상태 머신을 이용한 소프트웨어 테스트 문제 해결 방법"
date: "2011-05-03"
categories: 
  - "software"
tags: 
  - "java"
  - "software-modeling"
  - "software-tools"
  - "uml"
  - "uml-tool"
  - "umodel"
  - "v2011r2"
description: 이 기사에서는 Altova UModel에서 발생하는 상태 머신 설계상의 어려움, 특히 대기 모드에서의 시스템 동작 문제를 해결하는 방법에 대해 논의합니다.
---
Status: #blog

Tags:  #java #software-modeling #software-tools #uml #uml-tool #umodel #v2011r2

Categories: [uml](/blog/ko/category/uml.md)
# 상태 머신을 이용한 소프트웨어 테스트 문제 해결 방법

지난 달 저희 블로그에서 [상태 머신을 위한 소프트웨어 테스트](https://www.altova.com/blog/2011/04/software-testing-for-state-machines.html) (함께) 와 함께, ~와 더불어, ~와 함께 [알토바 유모델 (Altova UModel)](https://www.altova.com/ko/umodel.html) 저희는 에어컨 시스템 모델에서 예상치 못한 작동 방식을 발견했고, 독자들에게 이 디자인을 개선하도록 제안했습니다. 이 글에서는 가능한 해결책 중 하나를 소개합니다. 저희 모델의 테스트 프로그램을 실행했을 때, 전원 스위치가 시스템이 대기 모드일 때에도 시스템을 끄지 않는다는 것을 확인했습니다 [상태 다이어그램](https://www.altova.com/ko/umodel/state-diagrams.html) 저희 초기 모델에서는, 작동 모드에서 대기 모드로 진입하는 유일한 방법은 대기 버튼을 사용하는 것이며, 대기 모드에서 벗어나는 유일한 방법 또한 대기 버튼을 다시 누르는 것입니다. 자세한 내용은 아래와 같습니다. 

[![Altova UModel에서 사용되는 상태 다이어그램의 상세 정보](https://lh5.ggpht.com/_REdrfeVqYdU/TbBqA8gVCnI/AAAAAAAAAYE/3PfcEd2PcKo/clip_image002%5B6%5D.jpg?imgmax=800 "Detail of a state machine diagram in Altova UModel")](https://www.altova.com/umodel/state-diagrams.html) 

시스템을 대기 상태에서 종료하기 위한 대체 경로를 만들 수 있습니다. 이를 위해 대기 상태에서 종료 상태로 새로운 연결선을 그리고, 해당 연결선을 통해 시스템을 종료하는 이벤트로 `powerButton()` 함수를 지정하면 됩니다. UModel은 모델에 이미 정의된 이벤트 목록을 보여주는 팝업 창을 제공하여 이러한 설정을 쉽게 할 수 있도록 지원합니다. 

[![Altova UModel에서 상태 다이어그램의 상태 전환을 유발하는 요소들의 팝업 목록](https://lh3.ggpht.com/_REdrfeVqYdU/TbBqBGFuyKI/AAAAAAAAAYI/63ZNLF_dU3A/clip_image004%5B6%5D.jpg?imgmax=800 "Pop-up list of triggers for transitions in a state machine diagram in Altova UModel")](https://www.altova.com/umodel/state-diagrams.html)

새로운 절전 모드에서 전원 끄기 모드로의 전환 기능을 적용한 모델의 최종 수정 사항은 다음과 같습니다

[![Altova UModel에서 사용하는 상태 다이어그램](https://lh6.ggpht.com/_REdrfeVqYdU/TbBqBUKsVYI/AAAAAAAAAYM/jSeTZcHJL4g/Snap10_new%20transition_thumb%5B6%5D.png?imgmax=800 "State machine diagram in Altova UModel")](https://www.altova.com/umodel.html) 

자바 코드를 다시 생성하고 새로운 버전을 컴파일한 후, 테스트 애플리케이션을 다시 실행할 수 있습니다. 디버그 출력 메시지 창을 보면 시스템이 이벤트 3에서 대기 모드로 진입한 것을 확인할 수 있습니다. 이제 전원 버튼을 누르면(이벤트 4), 시스템 상태가 꺼짐으로 설정됩니다. 

[![Altova UModel에서 생성된 상태 머신 테스트 애플리케이션](https://lh3.ggpht.com/_REdrfeVqYdU/TbBqCLuSc2I/AAAAAAAAAYU/13GMhNPkg7s/clip_image008_thumb%5B2%5D.jpg?imgmax=800 "State machine test application generated by Altova UModel")](http://lh6.ggpht.com/_REdrfeVqYdU/TbBqBgADPsI/AAAAAAAAAYQ/0AsFb3WdtAU/s1600-h/clip_image008%5B5%5D.jpg) 

**Altova UModel을 사용하여 스테이트 머신 다이어그램의 논리적 구조를 어떻게 개선할 수 있는지 직접 확인해 보세요** [**무료 30일 체험판을**](https://www.altova.com/ko/download/umodel/uml_tool_enterprise.html) **지금 바로 다운로드하세요!**
