ݺߣ

ݺߣShare a Scribd company logo
dal TDD al BDD
claudio.pattarello@gmail.com

IAD13
Chi sono?

dal TDD al BDD
Chi sono?

Claudio Pattarello

dal TDD al BDD
Chi sono?

Progetto e sviluppo software da 17 anni.

dal TDD al BDD
Chi sono?

Pratico TDD da più di 7 anni.

dal TDD al BDD
Agenda

dal TDD al BDD
Agenda

in questa sessione NON parleremo

dal TDD al BDD
Agenda

in questa sessione NON parleremo
delle differenze tra TDD e BDD

dal TDD al BDD
Agenda

in questa sessione NON parleremo

dal TDD al BDD
Agenda

in questa sessione NON parleremo
delle condizioni per scegliere TDD o BDD

dal TDD al BDD
Agenda

Allora... di cosa parleremo?

dal TDD al BDD
Agenda

come BDD può descrivere meglio TDD

dal TDD al BDD
BDD è sopra TDD

dal TDD al BDD
BDD è sopra TDD

Due definizioni

dal TDD al BDD
BDD è sopra TDD

Cosa è TDD?

dal TDD al BDD
Cosa è TDD?
è un processo di sviluppo software che si appoggia
sulla ripetizione di un breve ciclo di sviluppo:
scrivere un test case automatico (inizialmente
rosso) che definisce un requisito desiderato

produrre la quantità minima di codice per far
passare il test

refactoring del nuovo codice per portarlo ad uno
standard accettabile


BDD è sopra TDD

dal TDD al BDD
BDD è sopra TDD

Cosa è BDD?

dal TDD al BDD
Cosa è BDD?

è un processo di sviluppo software basato
su test-driven development (TDD)

BDD è sopra TDD

dal TDD al BDD
Cosa è BDD?

è un processo di sviluppo software basato
su test-driven development (TDD)
TDD + DDD + OOA + OOD

BDD è sopra TDD

dal TDD al BDD
Cosa è BDD?

è stato sviluppato da Dan North come
risposta ai problemi riscontrati insegnando
TDD

BDD è sopra TDD

dal TDD al BDD
Cosa è BDD?
Da dove cominciare nel processo

Che cosa mettere e non mettere
sotto test

Quante cose mettere sotto test in
una sola volta

Cosa chiamare nel test

Come capire perché un test fallisce


BDD è sopra TDD

dal TDD al BDD
Cosa è TDD?

TDD lavora con il format
AAA
Arrange – Act – Assert

BDD è sopra TDD

dal TDD al BDD
Cosa è BDD?

BDD lavora con il format
GWT
Given – When – Then

BDD è sopra TDD

dal TDD al BDD
Cosa è TDD?

TDD ha il focus sull'implementazione
del sistema

BDD è sopra TDD

dal TDD al BDD
Cosa è BDD?

BDD ha il focus sul comportamento
del sistema

BDD è sopra TDD

dal TDD al BDD
Esempio
+Scenario 1: Account is in credit+

Given the account is in credit
And the card is valid
And the dispenser contains cash
When the customer requests cash
Then ensure the account is debited
And ensure cash is dispensed
And ensure the card is returned
Cosa è BDD?

dal TDD al BDD
Esempio
+Scenario 2: Account is overdrawn past the
overdraft limit+

Given the account is overdrawn
And the card is valid
When the customer requests cash
Then ensure a rejection message is displayed
And ensure cash is not dispensed
And ensure the card is returned
Cosa è BDD?

dal TDD al BDD
Passiamo alla pratica...
DEMO 1
BDD è sopra TDD

Quali sono i benefici di fondere il
comportamento con lo sviluppo
guidato dal test?

dal TDD al BDD
i benefici

maggiore leggibilità del test

BDD è sopra TDD

dal TDD al BDD
i benefici

migliore organizzazione dei tests

BDD è sopra TDD

dal TDD al BDD
i benefici

scrivere codice per coprire solo le
richieste business

BDD è sopra TDD

dal TDD al BDD
i benefici

suddivisione dei test per contesto

BDD è sopra TDD

dal TDD al BDD
i benefici

separazione delle verifiche

BDD è sopra TDD

dal TDD al BDD
i benefici

migliorare la documentazione
della feature

BDD è sopra TDD

dal TDD al BDD
Frameworks...
DEMO 2
Frameworks

ci sono due tipologie:

BDD è sopra TDD

dal TDD al BDD
Frameworks

xSpec

BDD è sopra TDD

dal TDD al BDD
Frameworks

xBehave

BDD è sopra TDD

dal TDD al BDD
xSpec
sono frameworks usualmente usati dagli
sviluppatori per scrivere codice con un
approccio che favorisce il test del
comportamento e della funzionalità.
Questi test sono solitamente più vicini agli unit
test per aspetto e granularità, ma con alcune
peculiarità.

Frameworks

dal TDD al BDD
xBehave
permette la scrittura di user story in formato
comprensibile da chiunque. Le storie possono
essere scritte dagli stessi utenti o da un gruppo
composto da sviluppatori, utenti e tester.
In genere la story è definita con un
DSL più vicino alla lingua del business,
poi mappa la storia in un test scritto
in codice dagli sviluppatori.
Frameworks

dal TDD al BDD
Frameworks

SpecFlow
progetto attivo:
tipo:
licenza:
nuget package:

BDD è sopra TDD

SI
xBehave
BSD style
SI

dal TDD al BDD
SpecFlow

Frameworks

dal TDD al BDD
Frameworks

Machine.Specifications (MSpec)
progetto attivo:
tipo:
licenza:
nuget package:

BDD è sopra TDD

SI
xSpec
xUnit and MS-PL
SI

dal TDD al BDD
MSpec

Frameworks

dal TDD al BDD
Frameworks

NSpec
progetto attivo:
tipo:
licenza:
nuget package:

BDD è sopra TDD

SI
xSpec
MIT License
SI

dal TDD al BDD
NSpec

Frameworks

dal TDD al BDD
Frameworks

NBehave
progetto attivo:
tipo:
licenza:
nuget package:

BDD è sopra TDD

SI
xBehave
BSD 3
SI

dal TDD al BDD
NBehave

Frameworks

dal TDD al BDD
Frameworks

StoryQ
progetto attivo:
tipo:
licenza:
nuget package:

BDD è sopra TDD

NO
xSpec ~ xBehave
MIT
SI

dal TDD al BDD
StoryQ

Frameworks

dal TDD al BDD
Quale sarà l'evoluzione?

BDD è sopra TDD

dal TDD al BDD
Quale sarà l'evoluzione?

TDD > BDD > ATDD

BDD è sopra TDD

dal TDD al BDD
Quale sarà l'evoluzione?
...
...
...

T e s t - D r iv e n
D e v e lo p m e n t
B e h a v io r - D r iv e n
D e v e lo p m e n t
A u to m a ted
t e s t in g
BDD è sopra TDD

T e s t - F ir s t
D e v e lo p m e n t
dal TDD al BDD
Riferimenti
Growing
Object-Oriented
Software,
Guided by Tests
www.growing-object-oriented-software.com

a.k.a.

GOOS
dal TDD al BDD
Il materiale
slideshare.net/cpattarello/dalTDDalBDD
dalTDDalBDD.codeplex.com
claudiopattarello.blogspot.it

dal TDD al BDD
Q&A

dal TDD al BDD
Grazie
claudio.pattarello@gmail.com

IAD13

More Related Content

dalTDDalBDD