Gherkin 언어: 구문, 형식 및 예제

⚡ 스마트 요약

Gherkin은 구현 세부 사항 없이 소프트웨어 동작을 설명하는, 비즈니스 관점에서 읽기 쉬운 언어입니다. Given, When, Then 키워드를 사용하여 동작을 정의합니다. Cucumber 테스트 시나리오를 평이한 언어로 작성하여, 살아있는 문서이자 자동화된 BDD 테스트의 뼈대 역할을 합니다.

  • 📝 쉬운 언어 사용: Gherkin은 비프로그래머도 테스트를 읽고 작성할 수 있도록 동작을 설명합니다.
  • 🥒 Cucumber: Cucumber .feature 파일을 읽고 Gherkin 단계를 테스트로 실행합니다.
  • 🔑 주어진 조건 - 그러면: Given은 컨텍스트를 설정하고, When은 동작을 트리거하며, Then은 결과를 확정합니다.
  • 🧱 키워드 : 각 시나리오는 특징, 배경, 시나리오, 그리고 그리고, 하지만으로 구성됩니다.
  • 최고의 연습: 각 시나리오를 독립적으로 유지하고, '어떻게'가 아닌 '무엇'을 설명하세요.
  • 🤖 AI 지원: AI 도구는 평범한 요구사항으로부터 '주어진 조건-결과' 시나리오를 생성합니다.

Gherkin 언어에서 Cucumber

거킨 언어란 무엇입니까?

작은 오이 비즈니스 개발자가 이해하기 쉬운 언어로, 구현 세부 사항에 얽매이지 않고 비즈니스 동작을 설명하는 데 도움이 됩니다. 이는 특정 도메인에서 테스트를 정의하기 위한 도메인 특화 언어입니다. Cucumber 이 형식은 쉬운 언어를 사용하여 사용 사례를 설명하고 사용자가 동작 테스트에서 논리적 세부 사항을 제거할 수 있도록 합니다.

Gherkin 형식의 텍스트는 문서화 역할을 하는 동시에 자동화된 테스트의 뼈대를 제공합니다. Gherkin 형식은 37개 이상의 언어로 지원되는 TreeTop 문법을 기반으로 하므로 37개 이상의 언어로 Gherkin을 작성할 수 있습니다. 이 스크립트는 크게 두 가지 목적을 수행합니다. 첫째, 사용자 시나리오를 문서화하고, 둘째, 자동화된 BDD 테스트를 작성하기 위한 기반을 제공합니다.

왜 거킨인가?

공통된 명확하고 이해하기 쉬운 언어 형식이 없으면 비즈니스 팀과 기술 팀이 요구 사항을 서로 다르게 설명하여 오해가 발생합니다. Gherkin은 모든 사람에게 일반 영어처럼 읽히면서도 실행 가능한 테스트로 직접 연결되는 단일하고 구조화된 어휘를 제공합니다.

작은 오이 구문

Gherkin은 YAML처럼 줄 단위로 작성되는 언어입니다. Python각 줄을 단계라고 하며 키워드로 시작합니다. 들여쓰기에는 탭이나 공백이 사용됩니다. 주석은 어디에든 추가할 수 있지만 반드시 # 기호로 시작해야 합니다. 인터프리터는 Given, When, Then과 같은 Gherkin 키워드를 제거한 후 각 줄을 읽습니다.

Feature: Title of the Scenario
  Given [Preconditions or Initial Context]
  When [Event or Trigger]
  Then [Expected output]

Gherkin 문서는 .feature 확장자를 가지며, 설명적인 확장자를 가진 단순한 테스트 파일입니다. Cucumber 이 프로그램은 거킨 문서를 읽고 소프트웨어가 거킨 구문에 설명된 대로 동작하는지 확인하는 테스트를 실행합니다.

Gherkin에서 사용되는 주요 용어

주요 키워드는 Feature, Background, Scenario, Given, When, Then, And, But, Scenario Outline입니다. Cucumber 엄격한 명명 규칙은 없지만, 명확한 명명 규칙을 따르면 도움이 됩니다.

제품 특장점

파일 확장자는 .feature여야 하며, 각 기능 파일에는 하나의 기능만 설명해야 합니다. Feature 키워드는 다음으로 시작합니다. 특색: 그 뒤에 공백과 기능 이름이 옵니다.

시나리오

각 기능 파일에는 여러 시나리오가 포함될 수 있으며, 각 시나리오는 다음으로 시작합니다. 시나리오 : 그 뒤에 시나리오 이름이 나옵니다.

배경

Background 키워드는 시나리오에 컨텍스트를 추가합니다. 모든 시나리오에서 공유되는 단계를 포함할 수 있으며, 차이점은 이러한 단계가 각 시나리오보다 먼저 실행된다는 것입니다.

주어진

`Given` 키워드는 사용자가 시스템과 상호 작용을 시작하기 전에 시스템을 알려진 상태로 만듭니다. 이는 사전 조건 또는 컨텍스트를 정의합니다.

Given I am on "/."

인셀덤 공식 판매점인

`When` 키워드는 사용자가 수행하는 작업을 정의합니다.

When I perform "Sign In."

그때

Then 키워드는 When 단계의 작업 후에 관찰되는 결과를 정의합니다. 눈에 띄는 변화만 확인해야 합니다.

Then I should see "Welcome Tom."

그리고 & 하지만

Given, When, Then 단계를 여러 개 사용할 수 있습니다. And와 But 키워드는 가독성을 높이기 위해 추가 단계를 삽입합니다.

And I enter "EmailAddress" with "tomjohn@gmail.com."
But I should see "Welcome Tom."

Given, When, Then, And, But은 모두 테스트 단계입니다. 인터프리터는 이들을 서로 바꿔도 오류를 발생시키지는 않지만, 시나리오가 논리적으로 맞지 않게 되므로 각 키워드는 의도된 목적에 맞게 사용해야 합니다.

작은 오이의 예

예 1 : 소셜 네트워킹 사이트의 로그인 기능.

Feature: Login functionality of a social networking site
  Given I am a registered user
  When I enter my username
  And I enter my password
  Then I should be redirected to the home page

Gherkin은 피처 파일에 작성된 각 단계를 분석하며, 피처 파일의 단계는 단계 정의 파일의 단계와 일치해야 합니다.

예 2 : 배경 화면을 포함한 사용자 인증 시나리오.

Feature: User Authentication

Background:
  Given the user is already registered on the website

Scenario: Successful login
  Given the user is on the login page
  When the user inputs the correct email address
  And the user inputs the correct password
  And the user clicks the Login button
  Then the user should be authenticated
  And the user should be redirected to their dashboard

작은 오이를 사용하는 최고의 방법

  • 각 시나리오는 별도로 독립적으로 실행되어야 합니다.
  • 모든 기능은 독립적으로 실행 가능해야 합니다.
  • 단계 정보는 별도로 표시되어야 합니다.
  • 시나리오와 요구사항을 연결하세요. track는 각 요구사항에 해당하는 시나리오입니다.
  • 모듈식으로 이해하기 쉬운 단계를 만들고 일반적인 시나리오를 결합하세요.
  • 시스템이 어떻게 작동하는지가 아니라, 시스템이 무엇을 하는지를 설명하십시오.

거킨의 장점

  • Gherkin은 프로그래밍 경험이 없는 사람도 이해할 수 있을 만큼 간단합니다.
  • 프로그래머는 이를 테스트를 시작하는 데 있어 견고한 기반으로 활용할 수 있습니다.
  • 이를 통해 사용자 스토리를 더 쉽게 이해하고 비즈니스 요구 사항을 효과적으로 충족할 수 있습니다.
  • 경영진과 개발자 모두 같은 스크립트를 읽을 수 있습니다.
  • Gherkin 테스트 케이스는 인수 테스트를 자동화된 테스트에 직접 연결합니다.
  • 이러한 작성 스타일 덕분에 테스트 전반에 걸쳐 코드를 재사용하기가 더 쉬워집니다.

거킨의 단점

  • 이는 높은 수준의 비즈니스 참여와 협업을 요구합니다.
  • 모든 상황에서 잘 작동하지는 않을 수 있습니다.
  • 부실하게 작성된 시험 문제는 시험 관리 비용을 증가시킬 수 있습니다.

자주 묻는 질문

BDD는 팀이 코딩하기 전에 예상되는 동작을 명확한 언어로 설명하는 애자일 개발 방식입니다. Gherkin 시나리오는 이러한 동작을 포착하여 비즈니스 담당자와 기술 담당자가 동일한 이해를 공유할 수 있도록 합니다.

Gherkin은 시나리오를 작성하기 위한 평이한 언어 구문입니다. Cucumber Gherkin .feature 파일을 읽고 애플리케이션에 대해 단계를 실행하는 여러 도구 중 하나입니다.

시나리오 개요는 예제 표에 나열된 여러 데이터 세트를 사용하여 동일한 단계를 실행합니다. 이렇게 하면 각 입력 값 세트에 대해 시나리오를 중복해서 생성하는 것을 방지할 수 있습니다.

스텝 정의는 각 Gherkin 스텝을 해당 스텝을 실행하는 코드에 매핑합니다. Cucumber 단계를 읽고, 일치하는 정의를 찾은 다음 해당 메서드를 애플리케이션에 대해 실행합니다.

세 명의 친구는 제품 소유자, 개발자, 테스터로, 함께 기능을 검토합니다. 이들의 통합된 관점은 개별 역할이 제시하는 것보다 더 명확하고 완벽한 Gherkin 시나리오를 만들어냅니다.

게다가 CucumberGherkin은 다음의 지원을 받습니다. 스펙플로우 .NET 및 Behave용 Python다른 BDD 프레임워크들 중에서도.

네. AI 어시스턴트는 사용자 스토리를 Given-When-Then 시나리오 초안으로 변환하고, 예외 상황을 제안하며, 표현의 일관성을 유지하지만, 정확성을 위해 테스터가 검토해야 합니다.

AI 도구는 일반적인 요구사항을 읽고 조건-조건-결과(Given-When-Then) 단계의 초안을 자동으로 작성합니다. 이를 통해 작성 속도가 빨라지지만, 팀은 실제 승인 기준에 맞춰 문구를 다듬는 작업을 계속합니다.

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