Vuoi migliorare la comunicazione tra IT e Business? Usa Gherkin per scrivere i requisiti e i criteri di accettazione.
User story, ti presento Gherkin
La reazione del team quando si propone l’uso di Gherkin, può variare dall’entusiasmo al sospetto (stanno mettendo in dubbio i miei test?), alla preoccupazione (sarò in grado di farlo?) ma l’approccio in generale piace, e l’accettazione aumenta dopo qualche settimana di utilizzo.
Le user story diventano infatti più focalizzate, più brevi e comprensibilli sia dal punto di vista dello sviluppo che da quello del business. le conversazioni durante le sessioni di planning e refinement sono più strutturate ed efficaci.
Ma cos’è Gherkin?
Gherkin è un linguaggio english-like molto semplice, che può essere utilizzato per descrivere requisiti, criteri di accettazione, eventi e comportamenti. La struttura di base è la seguente:

Gherkin è un linguaggio che può essere usato e compreso anche da ruoli non IT come il product owner o il business analyst, ma è abbastanza strutturato per essere usato da tester e sviluppatori come base per comprendere i requisiti e automatizzare i test. Gherkin migliora la comunicazione tra ruoli business e IT, dando maggiore chiarezza e focus al cosa dev’essere sviluppato
Come funziona? Si comincia descrivendo la feature o il prodotto da sviluppare, idealmente in forma di user story:
COME <persona>, VOGLIO <feature> ,PER <valore di business>
La storia viene quindi focalizzata con uno o più scenari, ad indicare il comportamento complessivo che si vuole descrivere.
- Scenario. Uno scenario può essere descritto come segue: “Il proprietario di Carta Visa Classic usa la carta per il pagamento”
- Given. La keyword given descrive il contesto di un comportamento di business del cliente o dell’applicazione. Per esempio “Sono un proprietario di Visa Classic”
- When. Descrive l’azione richiesta per produrre l’output descritto. Ad esempio “pago con la mia carta Visa Classic”
- Then. descrive l’output atteso: “La mia carta Visa Classic viene accettata”
Feature: Payments with Visa Classic
As a Visa Classic Cardholder,
I want to use my Visa Card,
For paying my purchases.
Scenario: The Visa Cardholder use the Visa Classic for paying
Given I am a Visa Classic Cardholder
When I pay with my Visa Classic
Then My Visa card is accepted
Condizioni multiple possono essere concatenate con la parola AND. Ad esempio:
Given I am a Miles&More Fidelity Card holder,
And I Am a Premium Bank Customer
When I transfer money to my account
Then I also receive 100 points on my Miles&More Card
E’ possibile gestire scenari multipli, oppure accorparli in un formato specifico usando gli Outline e le Data Table:
# Two scenarios for the same feature
Feature: Bank account calculation
As A bank customer,
I want the balance of my account correctly calculated
To be certain of my financial sistuation
Scenario: 1) bank account in-flow calculation
Given the starting balance has 4000 Euro
When 3000 euros are added to the account
Then the final balance is 7000 euro
Scenario: 2) bank account out-flow calculation
Given the starting balance has 4000 Euro
When 3000 euros are transferred to another account
Then the final balance is 1000 euro
# Here we use a scenario outline to include the
# two previous scenarios into a single one
Scenario Outline: bank account cash flow calculations
Given the starting balance has <start> euros
When <amount> is trasferred
Then I should have <left> euros
| start | trasferred | left |
| 4000 | +3000 | 7000 |
| 4000 | -3000 | 1000 |
Test Automation – Il prossimo passo
Una volta che ci siamo abituati a descrivere i requisiti e le user story in Gherkin, il passo successivo è trasformarli in test case, da eseguire automaticamente ad ogni deploy. Ci sono diversi framework che supportano questo tipo di automazione: Cucumber, Behave, pytest-bdd etc.

Con la sua semplicità, Gherkin aiuta i product owner a specificare i desiderata in termini strutturati, coerenti, facilmente comunicabili e facilmente automatizzabili per consentire, in definitiva, una maggior qualità dei delivery e del valore di business creato.

Marcello Del Bono is coaching and leading Agile Teams, supporting Transformation programs. He has multi-year experience as a Product Owner, Scrum Master and Agile Coach in e-commerce, IT, Marketing and Decision Support Systems in Media, Telco, Finance, Fashion industries.
Contact him on LinkedIn.