# Cucumber, ancora non mi e' chiaro qual'e' il vantaggio del BDD

**URL:** <https://www.ruby-forum.com/t/cucumber-ancora-non-mi-e-chiaro-quale-il-vantaggio-del-bdd/197632>\
**Category:** IT\
**Created:** [October 17, 2010, 9:25pm UTC](https://www.ruby-forum.com/t/cucumber-ancora-non-mi-e-chiaro-quale-il-vantaggio-del-bdd/197632 "2010-10-17T21:25:36Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dobai-Pataky\_BSSSSl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/77aa72/32.png) [@Dobai-Pataky\_BSSSSl](https://www.ruby-forum.com/u/Dobai-Pataky_BSSSSl)\
**Post date:** [October 17, 2010, 9:25pm UTC](https://www.ruby-forum.com/t/cucumber-ancora-non-mi-e-chiaro-quale-il-vantaggio-del-bdd/197632/1 "2010-10-17T21:25:36Z")

</div>

Ho sempre sviluppato mettendo su carta quello che mi serviva per  
l’applicazione e poi scrivendo il codice necessario.  
Niente test driven e simili.  
Ho visto un video su cucumber in rete e mi e’ sembrato uno strumento  
utile per lo sviluppo cosi’ ho provato a scrivere la mia prima feature  
e il mio primo scenario:

Feature: See Pcs List  
In order to make a filter  
As a logged user  
I want to see the pcs list

Scenario: Pcs List  
Given I am logged in  
When I go to the home page  
Then I want see the pcs list

Bene, ho lanciato cucumber e ovviamente ha rilevato delle azioni  
pendenti che ho risolto creando il modello user e il modello pc.  
Mi sono fermato qui e ho pensato, si ma in definitiva e’ la stessa  
cosa che faccio quando metto su carta i requisiti dell’applicazione.  
Se so gia’ che ho bisogno di uno User e di un Pc a cosa mi serve  
scrivere la feature e lo scenario? Lo trovo pleonastico ma sicuramente  
molto ancora non mi e’ chiaro.

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [October 18, 2010, 9:24am UTC](https://www.ruby-forum.com/t/cucumber-ancora-non-mi-e-chiaro-quale-il-vantaggio-del-bdd/197632/2 "2010-10-18T09:24:48Z")

</div>

2010/10/17 Mauro [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
[snip]

Se so gia’ che ho bisogno di uno User e di un Pc a cosa mi serve

> scrivere la feature e lo scenario? Lo trovo pleonastico ma sicuramente  
> molto ancora non mi e’ chiaro.

Il BDD serve non tanto a suggerirti i model di cui hai bisogno ma,  
partendo  
dalle specifiche, come i tuoi controller dovranno comportarsi.

Tu prima definisci cosa ti attendi dalle tue API, poi sviluppi il codice  
fino a quando non rispetta le tue specifiche.

Se lo vedi in un’ottica di lavoro condiviso, il BDD pu essere una  
killing  
feature. Magari chi scrive gli scenari di Cucumber la persona che ha  
parlato col cliente e chi scrive le API uno degli sviluppatori del  
backend.

Paolo

–  
“… static analysis is fun, again!”

OWASP Orizon project leader, [http://github.com/owasp-orizon](http://github.com/owasp-orizon)  
Owasp Italy R&D director

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [October 18, 2010, 9:47am UTC](https://www.ruby-forum.com/t/cucumber-ancora-non-mi-e-chiaro-quale-il-vantaggio-del-bdd/197632/3 "2010-10-18T09:47:25Z")

</div>

pleonastico e’ una buona definizione per cucumber.

Ci sono molti appassionati, io non lo sono per niente.

Il BDD e’ venuto fuori da Dan N. (\*) e altri per chiarificare che non  
scriviamo test ma del codice che descrive comportamenti per il codice.  
Ne ho usato i concetti (ma con semplici unit tests) e l’ho trovato utile  
soprattutto a chiare alcuni concetti di testing con junior developers.

Quello che vedo e’ un sacco di gente che testa troppo e perde un sacco  
di tempo a scrivere tests di Cucumber, in teoria l’esperto di dominio  
(non lo sviluppatore) dovrebbe arrivare a scrivere tests di cucumber che  
poi andrebbero fissati dal team implementando nuove funzionalita’.  
E’ un po’ un’utopia ma ho sentito che in alcuni team funziona.  
A parte l’utopia sono dell’idea che il team debba diventare esperto del  
dominio, scrivere qualche test quando necessario e buona notte.

rspec e’ molto carino e IMHO alla fine della fiera basta e avanza

(\*) [http://blog.dannorth.net/introducing-bdd/](http://blog.dannorth.net/introducing-bdd/)

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [October 18, 2010, 10:29am UTC](https://www.ruby-forum.com/t/cucumber-ancora-non-mi-e-chiaro-quale-il-vantaggio-del-bdd/197632/4 "2010-10-18T10:29:05Z")

</div>

premesso che ho iniziato ad usare Cucumber da poco, per quanto mi  
riguarda mi trovo _meglio_ 😉

Cucumber non serve solo ad annotarsi i requisiti dell’applicazione,  
almeno parlando di Rails, uno dei procedimenti usati questo:

- scrivere gli scenari in Cucumber, da un lato funziona come annotazione  
di specifiche (allo stesso modo che scriversele su un pezzo di carta),  
dall’altro aiuta a verificare la visione di insieme su tutta  
l’applicazione, e magari anche a controllare l’output html/js. questo  
aspetto sulla carta non p

- si scrivono i test per i controller (functional tests), per verificare  
che le richieste/risposte si comportino come previsto

- infine i modelli (unit tests), per verificare che anche le operazioni  
relative al database (letture, scritture, validazioni, etc…) siano  
corrette

come vedi, ciascuna tipologia di test controlla il corretto  
funzionamento di determinati _aspetti_ dell’applicazione. se sono ben  
impostati, si evita anche il rischio di ridondanza 😛

questo thread su stackoverflow potrebbe toglierti qualche dubbio:

> <https://stackoverflow.com/questions/3736808/bdd-with-cucumber-and-rspec-when-is-this-redundant>

my 2c,  
A.

Il 17/10/2010 21:25, Mauro ha scritto:

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [October 18, 2010, 10:36am UTC](https://www.ruby-forum.com/t/cucumber-ancora-non-mi-e-chiaro-quale-il-vantaggio-del-bdd/197632/5 "2010-10-18T10:36:03Z")

</div>

non saprei, di norma cerco direttamente in inglese per non perdere tempo  
😛 (e poi in Italia sono relativamente pochi quelli che usano ruby,  
figuriamoci cucumber :P)

ciao,  
A.

Il 18/10/2010 10:31, Mauro ha scritto:

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [October 18, 2010, 10:31am UTC](https://www.ruby-forum.com/t/cucumber-ancora-non-mi-e-chiaro-quale-il-vantaggio-del-bdd/197632/6 "2010-10-18T10:31:36Z")

</div>

2010/10/18 Andrea P. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> questo thread su stackoverflow potrebbe toglierti qualche dubbio:

> <https://stackoverflow.com/questions/3736808/bdd-with-cucumber-and-rspec-when-is-this-redundant>

Non si trova niente in italiano?
