용어집 · 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”, 이름 붙은 페르소나를 섞어 쓰면 스텝 라이브러리가 걷잡을 수 없이 늘어납니다.