본문 바로가기
ISTQB 4주 실전

(3주 4일차) 복잡한 로직을 지배하는 기술 (의사결정 테이블 & 상태 전이)

by QA여행 2025. 9. 4.

 

안녕하세요! QA여행 ( https://qajourney.tistory.com/ ) 입니다.

챌린지 16일차에 오신 여러분을 환영합니다.

지난 시간, 우리는 경계값 분석을 통해 '숫자'나 '범위'와 관련된 요구사항을 효과적으로 테스트하는 법을 배웠습니다.

하지만 실제 서비스의 로직은 훨씬 더 복잡한 경우가 많죠.

"이 조건과 저 조건을 동시에 만족하고, 저 쿠폰을 사용했을 때만..." 과 같이 여러 조건이 얽혀있다면 어떻게 테스트해야 할까요?

 

오늘은 이처럼 복잡한 비즈니스 규칙과 시스템의 상태 변화를 체계적으로 테스트하는 두 가지 강력한 기술,

의사결정 테이블(Decision Table Testing)상태 전이 테스팅(State Transition Testing)을 배워보겠습니다.

 

 

 

의사결정 테이블 : 복잡한 비즈니스 규칙을 위한 청사진

이럴 때 사용해요 : 여러 개의 '조건(IF)'이 조합되어 서로 다른 '행동(THEN)'을 유발할 때.

의사결정 테이블은 복잡한 비즈니스 규칙의 모든 조합과 그에 따른 결과를 표 형태로 정리하여, 누락되거나 모순되는 규칙이 없는지 명확하게 확인하는 기법입니다.

 

예시 : 온라인 쇼핑몰 VIP 고객 할인 정책

[정책] VIP 회원이고 10만 원 이상 구매 시 10% 할인이 적용되며 사은품을 증정한다. VIP 회원이지만 10만 원 미만 구매 시에는 5% 할인만 적용된다. VIP가 아닌 회원은 구매 금액과 상관없이 할인이 없다.

이 정책, 글로만 읽으면 조금 헷갈리죠? 이걸 의사결정 테이블로 만들어 봅시다.

 

1. 조건과 행동 식별

  • 조건 : ① VIP 회원인가? ② 10만 원 이상 구매했는가?
  • 행동 : ① 10% 할인 ② 5% 할인 ③ 사은품 증정 ④ 할인 없음

2. 테이블 작성

조건/행동 규칙 1 규칙 2 규칙 3 규칙 4
① VIP 회원인가? Y Y N N
② 10만 원 이상 구매? Y N Y N
--- --- --- --- ---
① 10% 할인 X      
② 5% 할인   X    
③ 사은품 증정 X      
④ 할인 없음     X X

 

어떤가요?

표로 정리하니 모든 규칙이 한눈에 들어오고, 각 규칙에 따라 어떤 테스트를 해야 할지 명확해집니다.

이 표의 각 '규칙'이 바로 하나의 테스트 케이스가 되는 셈이죠.

 

상태 전이 테스팅 : 시스템의 인생 여정 따라가기

이럴 때 사용해요 : 시스템의 '상태(State)'에 따라 동일한 행동(Event)이 다른 결과를 낳을 때.

ATM 기기를 생각해 보세요.

카드를 넣지 않은 '대기' 상태에서 비밀번호를 누르는 것과,

카드를 넣은 '인증' 상태에서 비밀번호를 누르는 것은 완전히 다른 결과를 낳죠.

상태 전이 테스팅은 이처럼 시스템의 상태 변화와 그에 따른 동작을 다이어그램으로 그려 테스트하는 기법입니다.

 

예시 : 사용자 계정 비밀번호 잠금 정책

[정책] 비밀번호를 3회 연속으로 잘못 입력하면 계정이 '잠김' 상태가 된다.


1. 상태와 이벤트(행동) 식별

  • 상태 : ① 정상 ② 잠김
  • 이벤트 : ① 정상 로그인 시도 ② 비밀번호 1회 오류 ③ 비밀번호 2회 오류 ④ 비밀번호 3회 오류

2. 상태 전이 다이어그램 작성

이 다이어그램은 시스템의 가능한 모든 상태와 상태 간의 이동 경로를 보여줍니다.

QA는 이 다이어그램을 보며 다음과 같은 테스트 케이스를 도출할 수 있습니다.

  • TC-STATE-01 : '정상' 상태에서 비밀번호를 2번 틀려도 여전히 '정상' 상태를 유지하는가?
  • TC-STATE-02 : '정상' 상태에서 비밀번호를 3번 틀리면 '잠김' 상태로 바뀌는가?
  • TC-STATE-03 : '잠김' 상태에서는 올바른 비밀번호를 입력해도 로그인이 되지 않는가?

 

마무리하며

오늘 배운 두 가지 기법은 조금 생소하고 복잡하게 느껴질 수 있습니다.

하지만 한번 익혀두면, 복잡하게 얽힌 요구사항을 마주했을 때 길을 잃지 않도록 도와주는 매우 강력하고 논리적인 도구가 될 것입니다.

  • 의사결정 테이블 : 복잡한 '규칙'을 체계적으로!
  • 상태 전이 테스팅 : 시스템의 '상태 변화'를 빈틈없이!

 

오늘도 새로운 기술을 배우시느라 정말 고생 많으셨습니다.

 

내일 17일차에는 오늘 배운 <상태 전이 테스팅>을 실제 배달 앱의 주문 프로세스에 적용해보는 실습 시간을 갖겠습니다.

'주문 접수'부터 '배달 완료'까지, 시스템의 상태가 어떻게 변하고 우리는 무엇을 테스트해야 하는지 직접 확인해 보세요!

그럼 편안한 저녁 보내시고 내일 뵙겠습니다!

 
반응형