본문으로 건너뛰기
SDETRole
SDETRole

용어집 · UI 자동화

Gherkin(거킨)

영어: Gherkin

다른 이름: 거킨, 게르킨, Given-When-Then, Gherkin 문법

정의

.feature 파일에 BDD 시나리오를 작성할 때 쓰는 Given-When-Then 형식의 평문 문법으로, Cucumber 같은 도구가 자동화 테스트로 실행합니다.

Gherkin은 소프트웨어의 동작을 예시로 기술하는 작고 구조화된 언어입니다. 파일 확장자는 .feature이고, 하나의 Feature가 여러 Scenario로 구성됩니다. 각 시나리오는 Given(맥락), When(행동), Then(기대 결과)으로 시작하는 스텝 목록입니다. Cucumber 같은 도구가 각 스텝을 코드의 스텝 정의(step definition)와 매칭하므로, 같은 텍스트가 문서이자 자동화 테스트가 됩니다.

예시

Feature: Password reset

  Background:
    Given a registered user "ada@example.com"

  Scenario: Reset link is sent for a known email
    When she requests a password reset for "ada@example.com"
    Then a reset email is sent to "ada@example.com"
    And the link expires after 30 minutes

  Scenario Outline: Weak passwords are rejected
    When she sets her new password to "<password>"
    Then she sees the error "<message>"

    Examples:
      | password | message                       |
      | abc      | Use at least 12 characters    |
      | password | This password is too common   |

그리고 Cucumber를 사용하는 Java의 대응 스텝 정의입니다.

@When("she sets her new password to {string}")
public void setNewPassword(String password) {
    resetPage.setPassword(password);
}

알아 둘 키워드

  • **And / But**은 가독성을 위해 앞 스텝의 유형을 이어 갑니다.
  • **Background**는 파일의 모든 시나리오 전에 실행됩니다. 짧게 유지하세요.
  • **Examples가 있는 Scenario Outline**은 표의 행마다 시나리오를 한 번씩 실행합니다. Gherkin 형식의 데이터 주도 테스트입니다.
  • 시나리오 위의 @smoke, @wip 같은 태그로 실행할 부분 집합을 선택할 수 있습니다.
  • Rule(Gherkin 6 이상)은 시나리오를 그것이 설명하는 비즈니스 규칙 아래로 묶습니다.

좋은 시나리오 작성법

  • 시나리오당 동작 하나. When/Then 쌍이 여러 개라면 대개 시나리오 두 개입니다.
  • 명령형이 아니라 선언형으로. 필드 입력과 버튼 클릭에 대한 스텝 세 개보다 “When she requests a password reset”이 낫습니다.
  • 구체적인 값. 실제 예시(“120.00”, “Gold”)는 모호한 표현(“큰 주문”)이 숨기는 오해를 잡아냅니다.
  • 3인칭 또는 일관된 페르소나. “I”, “the user”, 이름 붙은 페르소나를 섞어 쓰면 스텝 라이브러리가 걷잡을 수 없이 늘어납니다.

SDETRole 전체에서 검색할 내용을 입력하세요.

Pagefind 전문 검색 · 브라우저에서 실행됩니다 검색 페이지 열기 →