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: