상태 전이 테스트 예시

⚡ 스마트 요약

상태 전이 테스트는 입력 조건 변화에 따라 애플리케이션이 상태를 전환하는 방식을 검증하는 블랙박스 기법입니다. 이 튜토리얼에서는 상태 다이어그램의 네 가지 구성 요소, 상태 다이어그램과 상태 테이블의 차이점, 그리고 테스터를 위한 ATM 및 로그인 예제를 설명합니다.

  • 🔄 핵심 아이디어: 이 기법은 동일한 입력이 이전 사건에 따라 다른 출력을 생성할 때 시스템의 동작을 검사합니다(유한 상태 시스템).
  • 🧩 네 가지 구성 요소: 모든 모델은 상태, 전환, 이벤트 및 액션으로 구성됩니다.
  • 🗺️ 도표 vs 표: 다이어그램은 유효한 전환을 보여주고, 표는 유효하지 않은 전환을 드러냅니다.
  • 🏧 실용적인 예: ATM PIN 잠금 및 항공편 예약 로그인 문제는 실제 서비스 범위를 보여줍니다.
  • 🤖 AI 활성화: AI 도구는 요구 사항으로부터 상태 모델을 자동으로 생성하고 누락되거나 유효하지 않은 전환을 표시합니다.

주별 전환 테스트 — 주

상태 전환 테스트란 무엇입니까?

상태 전환 테스트 블랙박스 테스트는 입력 조건의 변화가 테스트 대상 애플리케이션(AUT)의 상태 변화 또는 출력 변화를 유발하는 테스트 기법입니다. 이를 통해 다양한 입력 조건에서 애플리케이션의 동작을 분석할 수 있으며, 테스터는 긍정적 및 부정적 입력값을 제공하고 시스템의 동작을 기록할 수 있습니다.

이는 시스템과 테스트가 구축된 모델을 기반으로 합니다. 동일한 입력에 대해 이전 상황에 따라 다른 출력을 얻는 시스템은 유한 상태 시스템입니다. 상태 전이 테스트 기법은 이러한 경우에 유용합니다. 다양한 시스템 전환을 테스트합니다..

상태 전환 테스트는 언제 사용해야 할까요?

  • 테스터가 제한된 입력값 집합에 대해 애플리케이션을 테스트할 때.
  • 테스터는 AUT(테스트 대상 시스템)에서 발생하는 일련의 이벤트를 테스트하여 입력 값 시퀀스에 대한 애플리케이션의 동작을 확인할 수 있습니다.
  • 테스트 대상 시스템이 과거의 사건이나 값에 의존하는 경우.

상태 전이 테스트에 의존하지 말아야 할 경우

  • 순차적 입력 조합에 대해 테스트가 수행되지 않은 경우.
  • 탐색적 테스트처럼 테스트 대상이 서로 다른 기능일 때.
전체적으로 최고 1위글로벌 앱 테스트
9.8/ 10
★ ★ ★ ★ ★
무료 데모 받기
PractiTest
9.5/ 10
★ ★ ★ ★ ★
방문 PractiTest
Testiny
9.3/ 10
★ ★ ★ ★ ★
방문 Testiny
가장 좋은크라우드테스팅 및 QA테스트 관리소규모 및 중규모 QA 팀
주요 특징✓타사 통합 테스트✓중앙 집중식 테스트 관리✓수동 및 자동화 테스트 케이스
통합✓지라, Slack, TestRail✓지라, Jenkins, Slack✓지라, 깃허브, 깃랩
무료 시험판무료 데모14 일 무료 평가판무료 데모
무료 데모 받기방문 PractiTest방문 Testiny

상태 전이 다이어그램의 네 가지 구성 요소

상태 전이 모델은 다음과 같은 네 가지 주요 구성 요소로 이루어져 있습니다.

1) 상태 소프트웨어가 도달할 수 있는 범위.

주별 전환 테스트 — 주

2) 전환 한 주에서 다른 주로.

상태 전환 테스트 — 전환

3) 이벤트 파일을 닫거나 돈을 인출하는 것과 같은 전환을 유발하는 행위.

상태 전환 테스트 - 이벤트

4) 조치 오류 메시지나 현금 지급과 같은 전환으로 인해 발생하는 결과입니다.

상태 전환 테스트 - 액션

상태 전이 다이어그램과 상태 전이표의 차이점

상태 전환을 표현하거나 설계하는 주요 방법에는 상태 전환 다이어그램과 상태 전환표 두 가지가 있습니다.

아래 상태 전환 다이어그램 상태 전환 테이블
또한 호출 상태 차트/그래프 상태 테이블
대표 Box상태는 es로, 전이는 화살표로 나타냅니다. 상태(행)와 이벤트(열)로 구성된 그리드
식별에 가장 적합 유효한 전환 잘못된 전환
각 셀은 다음을 보여줍니다. - 사건 발생 후 도달한 상태

상태 전환을 만드는 방법 (예제)

예시 1: ATM PIN 잠금

ATM 시스템에서 사용자가 잘못된 비밀번호를 세 번 입력하면 계정이 잠기는 기능을 생각해 보세요.

이 시스템에서는 사용자가 처음 세 번의 시도 중 한 번이라도 유효한 비밀번호를 입력하면 로그인이 성공합니다. 첫 번째 또는 두 번째 시도에서 잘못된 비밀번호를 입력하면 비밀번호를 다시 입력하라는 메시지가 표시됩니다. 마지막으로, 세 번째 시도에서도 잘못된 비밀번호를 입력하면 계정이 차단됩니다.

상태 전이 다이어그램 (예시 1)

ATM PIN 상태 전환 다이어그램

다이어그램에서 사용자가 올바른 PIN을 입력하면 '접근 허용' 상태로 이동합니다. 잘못된 비밀번호를 입력하면 다음 시도로 넘어가고, 세 번째에도 같은 실수를 반복하면 '계정 차단' 상태가 됩니다.

상태 전이표 (예 1)

주 정부 올바른 PIN 잘못된 PIN
S1) 시작 S5 S2
S2) 첫 번째 시도 S5 S3
S3) 두 번째 시도 S5 S4
S4) 세 번째 시도 S5 S6
S5) 액세스 권한 부여 - -
S6) 계정이 차단되었습니다 - -

표에서 사용자가 올바른 PIN을 입력하면 상태가 S5(접근 허용)로 전환됩니다. 사용자가 잘못된 비밀번호를 입력하면 다음 상태로 이동하고, 세 번째 잘못된 시도 후에는 계정 차단 상태에 도달합니다.

예시 2: 항공편 예약 로그인

항공편 예약 로그인 화면에서 접속하려면 올바른 담당자 이름과 비밀번호를 입력해야 합니다. 항공편 예약 신청.

항공편 예약 상태 전이 그래프

상태 전환 그래프

이 애플리케이션은 세 번의 시도 기회를 제공하며, 네 번째 시도에서도 잘못된 비밀번호를 입력하면 시스템이 자동으로 애플리케이션을 종료합니다.

상태 그래프는 테스트할 유효한 전환을 판단하는 데 도움이 됩니다. 올바른 비밀번호와 잘못된 비밀번호 모두를 사용하여 테스트하는 것은 필수이며, 테스트 시나리오두 번째, 세 번째 또는 네 번째 시도에서 로그인이 성공하는지 여부를 각각 테스트할 수 있습니다. 상태 테이블을 사용하여 잘못된 시스템 전환을 확인할 수 있습니다.

항공편 예약 상태 전환표

상태 테이블에서는 모든 유효한 상태가 왼쪽에 나열되고, 각 상태를 발생시키는 이벤트가 위쪽에 표시됩니다. 각 셀은 해당 이벤트 발생 시 시스템이 이동하는 상태를 나타냅니다. 예를 들어, S1 상태에서 올바른 비밀번호를 입력하면 S6(접근 허용) 상태로 이동하고, 첫 번째 시도에서 잘못된 비밀번호를 입력하면 S3(두 번째 시도) 상태로 이동합니다. 이와 같은 방식으로 다른 모든 상태를 확인할 수 있습니다.

이 방법을 사용하면 두 가지 잘못된 상태를 강조 표시할 수 있습니다. 예를 들어, S6 상태(이미 로그인됨)에서 항공편 예약의 다른 인스턴스를 열고 동일한 에이전트에 대한 비밀번호를 입력한다고 가정해 보겠습니다. 이러한 시나리오에 대한 시스템 응답을 테스트해야 합니다.

상태 천이 기법의 장점과 단점

장점 단점
시스템 동작을 그림이나 표 형식으로 표현하여 보여줍니다.ping 테스터는 시스템을 효과적으로 다루고 이해합니다. 항상 신뢰할 수 있는 것은 아닙니다. 예를 들어, 유한하지 않거나 순차적이지 않은 시스템에는 적합하지 않습니다.
테스터가 모든 조건이 충족되었는지, 결과가 기록되었는지 확인할 수 있도록 해줍니다. 모든 가능한 상태를 정의해야 합니다. 이는 소규모 시스템에서는 효과적이지만, 상태 수가 기하급수적으로 증가하는 대규모 시스템에서는 더 이상 적합하지 않습니다.

자주 묻는 질문

상태 전이 테스트는 입력 조건 변화에 따라 시스템이 상태를 어떻게 전환하는지 검증하는 블랙박스 기법입니다. 이 기법은 동일한 입력이 이전 사건에 따라 다른 출력을 생성할 수 있는 유한 상태 시스템에 적합합니다.

소프트웨어는 상태(소프트웨어가 처할 수 있는 조건), 전환(상태 간 이동), 이벤트(전환을 유발하는 트리거), 액션(메시지 또는 출력과 같은 전환 결과)의 네 부분으로 구성됩니다.

상태 전이 다이어그램은 상자와 화살표를 사용하여 유효한 전이를 식별하는 데 가장 적합합니다. 상태 표는 상태와 이벤트를 격자 형태로 나열하며 유효하지 않은 전이를 찾는 데 가장 적합합니다.

입력이 순차적이지 않거나 다양한 기능을 탐색적으로 테스트할 때는 이 방법을 피해야 합니다. 또한 상태 수가 기하급수적으로 증가하는 매우 큰 시스템에서는 이 방법이 제대로 작동하지 않습니다.

0-스위치 커버리지 테스트는 모든 유효한 전환을 한 번씩 테스트합니다. 1-스위치 커버리지 테스트는 연속된 두 전환 쌍을 모두 테스트합니다. 스위치 커버리지가 높을수록 순서 관련 결함을 더 많이 발견하지만, 더 많은 테스트 케이스가 필요합니다.

이는 블랙박스 기법입니다. 테스트 케이스는 애플리케이션의 내부 소스 코드를 알 필요 없이 상태와 전환의 예상되는 외부 동작으로부터 도출됩니다.

AI 도구는 요구사항을 읽고 자동으로 상태 모델을 구축한 다음, 유효한 경로와 에지 전환을 포함하는 테스트 케이스를 생성합니다. 이를 통해 수동 모델링 작업을 줄이고 복잡한 시퀀스에 대한 테스트 범위를 향상시킬 수 있습니다.

네. AI는 상태 모델을 분석하고 예상되는 동작 패턴과 비교하여 누락되었거나 도달할 수 없거나 유효하지 않은 전환을 표시할 수 있습니다.ping 테스터는 수동 표 검토에서 종종 놓치는 부분을 찾아냅니다.

이 게시물을 요약하면 다음과 같습니다.