상세 컨텐츠

본문 제목

Given-When-Then 패턴

스프링

by R4MeN 2024. 6. 13. 20:08

본문

개요

  • Given-When-Then 패턴은 소프트웨어 테스트 시나리오를 명확하게 정의하는 방법으로, 행동 주도 개발(Behavior-Driven Development, BDD)에서 자주 사용됨
  • 테스트의 각 단계를 명확하게 분리하여 테스트 케이스를 구조화하고 가독성을 높임

구성 요소

  1. Given: 초기 상태나 전제 조건을 설정하는 단계
    • 테스트를 시작하기 전에 시스템이 어떤 상태에 있어야 하는지를 설명함
    • 예: "사용자가 로그인 페이지에 있다"
  2. When: 테스트할 행동이나 이벤트를 기술하는 단계
    • 특정 행동이나 이벤트가 발생했을 때 무엇을 테스트할 것인지를 설명함
    • 예: "사용자가 올바른 자격 증명으로 로그인 버튼을 클릭한다"
  3. Then: 기대하는 결과를 기술하는 단계
    • 행동이나 이벤트가 발생한 후 시스템이 어떤 상태가 되어야 하는지를 설명함
    • 예: "사용자가 대시보드 페이지로 리디렉션된다"

장점

  • 명확한 구조: 테스트 케이스의 각 단계를 명확하게 구분하여 이해하기 쉬움
  • 높은 가독성: 비개발자도 테스트 시나리오를 쉽게 이해할 수 있음
  • 효율적인 커뮤니케이션: 개발자, 테스트 엔지니어, 비즈니스 분석가 간의 커뮤니케이션을 원활하게 함
  • 재사용성: 테스트 시나리오를 재사용 가능하고, 유지보수가 쉬움

예시 설명 (코드 없이)

  1. Given: "사용자가 로그인 페이지에 있다"
    • 테스트 시작 전의 초기 상태를 설정함
    • 로그인 페이지가 로드되고 사용자가 로그인 폼을 볼 수 있는 상태
  2. When: "사용자가 올바른 자격 증명으로 로그인 버튼을 클릭한다"
    • 테스트할 주요 행동을 기술함
    • 사용자가 사용자명과 비밀번호를 입력하고 로그인 버튼을 클릭하는 행동
  3. Then: "사용자가 대시보드 페이지로 리디렉션된다"
    • 행동 후 기대하는 결과를 기술함
    • 시스템이 사용자 인증을 확인하고 로그인 성공 시 대시보드 페이지로 이동함

사용 예시 (개념 설명)

  • Given: "고객이 온라인 쇼핑몰에서 상품을 장바구니에 담아 결제를 시도한다"
  • When: "고객이 신용카드 정보를 입력하고 결제 버튼을 클릭한다"
  • Then: "결제가 성공하고 주문 확인 페이지가 표시된다"

요약

  • Given-When-Then 패턴은 테스트 시나리오를 명확하게 정의하는 방법으로, 각 단계(초기 상태, 행동, 결과)를 분리하여 가독성을 높이고 이해하기 쉽게 만듦
  • 비개발자도 쉽게 이해할 수 있어, 개발자와 비즈니스 팀 간의 효율적인 커뮤니케이션 도구로 사용됨

'스프링' 카테고리의 다른 글

DBC Driver Manager  (0) 2024.07.01
AOP (Aspect-Oriented Programming)  (0) 2024.06.16
Logout API  (0) 2024.06.07
CascadeType  (0) 2024.06.07
JWT를 사용한 인증/인가의 장점과 한계점  (0) 2024.06.03

관련글 더보기