Linguaggio Gherkin: sintassi, formato ed esempi

⚡ Riepilogo intelligente

Gherkin è un linguaggio comprensibile per le aziende che descrive il comportamento del software senza dettagli di implementazione. Utilizza le parole chiave Given, When e Then per definire Cucumber scenari di test in linguaggio semplice, che fungono da documentazione dinamica e da scheletro per i test BDD automatizzati.

  • 📝 Linguaggio semplice: Gherkin descrive il comportamento in modo che anche chi non è programmatore possa leggere e scrivere test.
  • ???? Cucumber: Cucumber Legge i file .feature ed esegue i passaggi di Gherkin come test.
  • 🔑 Dato-Quando-Allora: Given definisce il contesto, When innesca un'azione, Then ne determina il risultato.
  • 🧱 parole chiave: Caratteristica, Contesto, Scenario, E, e Ma strutturano ciascuno scenario.
  • ✅ migliori Pratica: Ogni scenario deve essere indipendente e bisogna descrivere cosa succede, non come succede.
  • 🤖 Assistenza AI: Gli strumenti di intelligenza artificiale elaborano scenari del tipo "Dato-Quando-Allora" a partire da semplici requisiti.

Linguaggio del cetriolo in Cucumber

Cos'è la lingua cetriolino?

Cetriolino è un linguaggio comprensibile per le aziende che ti aiuta a descrivere il comportamento aziendale senza entrare nei dettagli di implementazione. È un linguaggio specifico di dominio per definire i test in Cucumber formato. Utilizza un linguaggio semplice per descrivere i casi d'uso e consente agli utenti di rimuovere i dettagli logici dai test comportamentali.

Il testo in Gherkin funge da documentazione e da struttura portante per i test automatizzati. Il formato Gherkin si basa sulla grammatica TreeTop, disponibile in oltre 37 lingue, quindi è possibile scrivere codice Gherkin in più di 37 lingue parlate. Lo script ha due scopi principali: documentare gli scenari utente e fornire la base per la scrittura di test BDD automatizzati.

Perché Cetriolino?

Senza un formato condiviso e di facile comprensione, i team aziendali e tecnici descrivono i requisiti in modo diverso, il che causa incomprensioni. Gherkin offre a tutti un vocabolario unico e strutturato che si legge come un normale linguaggio, ma che si traduce direttamente in test eseguibili.

Sintassi del cetriolino

Gherkin è un linguaggio orientato alle righe, proprio come YAML e PythonOgni riga è chiamata passo e inizia con una parola chiave. Per l'indentazione si usano tabulazioni o spazi. È possibile aggiungere un commento ovunque, ma deve iniziare con il simbolo #. L'interprete legge ogni riga dopo aver rimosso le parole chiave di Gherkin come Given, When e Then.

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

Un documento Gherkin ha l'estensione .feature ed è semplicemente un file di test con un'estensione descrittiva. Cucumber Legge il documento Gherkin ed esegue un test per verificare che il software si comporti come descritto dalla sintassi Gherkin.

Termini importanti utilizzati in Gherkin

Le parole chiave principali sono Caratteristica, Contesto, Scenario, Dato, Quando, Quindi, E, Ma e Schema dello scenario. Cucumber Non ci sono regole di denominazione rigide, ma una convenzione di denominazione chiara è utile.

Caratteristica

Il file deve avere l'estensione .feature e ogni file feature deve descrivere una sola funzionalità. La parola chiave Feature inizia con caratteristica: seguito da uno spazio e dal nome della funzionalità.

Scenario

Ogni file di funzionalità può avere più scenari e ogni scenario inizia con Scenario: seguito dal nome dello scenario.

sfondo

La parola chiave Background aggiunge contesto allo scenario. Può contenere passaggi comuni a tutti gli scenari; la differenza è che questi passaggi vengono eseguiti prima di ogni scenario.

Dato

La parola chiave Given imposta il sistema in uno stato noto prima che l'utente inizi a interagire con esso. Definisce la precondizione o il contesto:

Given I am on "/."

Quando

La parola chiave When definisce l'azione eseguita dall'utente:

When I perform "Sign In."

Poi

La parola chiave Then definisce il risultato osservato dopo l'azione nella fase When. È necessario verificare solo i cambiamenti evidenti:

Then I should see "Welcome Tom."

E ma

Potrebbero esserci più passaggi Dato, Quando o Allora. Le parole chiave E e Ma aggiungono passaggi extra per una migliore leggibilità:

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

Given, When, Then, And e But sono tutti passaggi di test. L'interprete non genera un errore se li si scambia, ma lo scenario non risulterà comprensibile, quindi è importante utilizzare ogni parola chiave per lo scopo previsto.

Esempi di cetrioli

Esempio 1: Una funzione di accesso per un sito di social network.

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 analizza ogni passaggio scritto nel file delle funzionalità e i passaggi nel file delle funzionalità devono corrispondere a quelli nel file di definizione dei passaggi.

Esempio 2: Uno scenario di autenticazione utente con uno sfondo.

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

Migliori pratiche di utilizzo del cetriolino

  • Ciascuno scenario deve essere eseguito separatamente e in modo indipendente.
  • Ogni funzionalità dovrebbe essere eseguibile autonomamente.
  • Le informazioni relative ai passaggi devono essere visualizzate separatamente.
  • Collega i tuoi scenari ai tuoi requisiti e track quali scenari appartengono a ciascun requisito.
  • Crea passaggi modulari e facili da comprendere, combinando scenari comuni.
  • Descrivi cosa fa il sistema, non come lo fa.

Vantaggi del cetriolo

  • Gherkin è abbastanza semplice da poter essere compreso anche da chi non ha competenze di programmazione.
  • I programmatori possono utilizzarlo come solida base di partenza per i loro test.
  • Rende le user story più facili da comprendere e si concentra sui requisiti aziendali.
  • I dirigenti aziendali e gli sviluppatori possono leggere lo stesso copione.
  • I casi di test di Gherkin collegano direttamente i test di accettazione ai test automatizzati.
  • Lo stile di scrittura facilita il riutilizzo del codice nei vari test.

Svantaggi di Gherkin

  • Richiede un elevato livello di impegno e collaborazione da parte del mondo aziendale.
  • Potrebbe non funzionare bene in ogni situazione.
  • Test scritti male possono aumentare i costi di manutenzione dei test.

DOMANDE FREQUENTI

BDD è una pratica agile in cui i team descrivono il comportamento atteso in linguaggio semplice prima di iniziare a programmare. Gli scenari Gherkin catturano tale comportamento, in modo che i membri del team, sia aziendali che tecnici, condividano un'unica comprensione.

Gherkin è la sintassi in linguaggio naturale per la scrittura di scenari. Cucumber è uno dei diversi strumenti che leggono i file .feature di Gherkin ed eseguono i passaggi sulla tua applicazione.

Uno Scenario Outline esegue gli stessi passaggi con più set di dati elencati in una tabella Esempi. In questo modo si evita di duplicare uno scenario per ogni set di valori di input.

Una definizione di passaggio mappa ogni passaggio di Gherkin al codice che lo esegue. Quando Cucumber Legge un passaggio, trova la definizione corrispondente ed esegue quel metodo sull'applicazione.

I tre amici sono un product owner, uno sviluppatore e un tester che esaminano insieme una funzionalità. La loro visione combinata produce scenari Gherkin più chiari e completi rispetto a quanto potrebbe fare un singolo ruolo.

Oltre a Cucumber, Gherkin è supportato da SpecFlow per .NET e comportarsi per Python, tra gli altri framework BDD.

Sì. Gli assistenti basati sull'IA trasformano una user story in bozze di scenari Given-When-Then, suggeriscono casi limite e mantengono la coerenza della formulazione, sebbene un tester debba comunque verificarne l'accuratezza.

Gli strumenti di intelligenza artificiale leggono i requisiti in forma semplice e automatizzano la prima bozza di una struttura a fasi del tipo "Dato-Quando-Allora". Questo velocizza il processo di redazione, ma i team devono comunque perfezionare la formulazione per adattarla ai reali criteri di accettazione.

Riassumi questo post con: