dalTDDalBDD

58
dal TDD al BDD [email protected] IAD13

Transcript of dalTDDalBDD

dal TDD al BDD

[email protected] IAD13

dal TDD al BDD

Chi sono?

Chi sono?

dal TDD al BDD

Claudio Pattarello

Chi sono?

dal TDD al BDD

Progetto e sviluppo software da 17 anni.

Chi sono?

dal TDD al BDD

Pratico TDD da più di 7 anni.

dal TDD al BDD

Agenda

Agenda

dal TDD al BDD

in questa sessione NON parleremo

Agenda

dal TDD al BDD

in questa sessione NON parleremo

delle differenze tra TDD e BDD

Agenda

dal TDD al BDD

in questa sessione NON parleremo

Agenda

dal TDD al BDD

in questa sessione NON parleremo

delle condizioni per scegliere TDD o BDD

Agenda

dal TDD al BDD

Allora... di cosa parleremo?

Agenda

dal TDD al BDD

come BDD può descrivere meglio TDD

dal TDD al BDD

BDD è sopra TDD

BDD è sopra TDD

dal TDD al BDD

Due definizioni

BDD è sopra TDD

dal TDD al BDD

Cosa è TDD?

Cosa è TDD?

dal TDD al BDD

è un processo di sviluppo software che si appoggia sulla ripetizione di un breve ciclo di sviluppo:

BDD è sopra TDD

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

Cosa è BDD?

Cosa è BDD?

dal TDD al BDD

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

BDD è sopra TDD

Cosa è BDD?

dal TDD al BDD

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

TDD + DDD + OOA + OOD

BDD è sopra TDD

Cosa è BDD?

dal TDD al BDD

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

TDD

BDD è sopra TDD

Cosa è BDD?

dal TDD al BDD

Da dove cominciare nel processoChe cosa mettere e non mettere sotto test

Quante cose mettere sotto test in una sola volta

Cosa chiamare nel testCome capire perché un test fallisce

BDD è sopra TDD

Cosa è TDD?

dal TDD al BDD

TDD lavora con il format

AAA

Arrange – Act – Assert

BDD è sopra TDD

Cosa è BDD?

dal TDD al BDD

BDD lavora con il format

GWT

Given – When – Then

BDD è sopra TDD

Cosa è TDD?

dal TDD al BDD

TDD ha il focus sull'implementazionedel sistema

BDD è sopra TDD

Cosa è BDD?

dal TDD al BDD

BDD ha il focus sul comportamentodel sistema

BDD è sopra TDD

Esempio

dal TDD al BDD

+Scenario 1: Account is in credit+

Given the account is in creditAnd the card is valid

And the dispenser contains cashWhen the customer requests cashThen ensure the account is debitedAnd ensure cash is dispensedAnd ensure the card is returned

Cosa è BDD?

Esempio

dal TDD al BDD

+Scenario 2: Account is overdrawn past the overdraft limit+

Given the account is overdrawnAnd the card is valid

When the customer requests cashThen ensure a rejection message is displayed

And ensure cash is not dispensedAnd ensure the card is returned

Cosa è BDD?

Passiamo alla pratica... DEMO 1

BDD è sopra TDD

dal TDD al BDD

Quali sono i benefici di fondere il comportamento con lo sviluppo

guidato dal test?

i benefici

dal TDD al BDD

maggiore leggibilità del test

BDD è sopra TDD

i benefici

dal TDD al BDD

migliore organizzazione dei tests

BDD è sopra TDD

i benefici

dal TDD al BDD

scrivere codice per coprire solo le richieste business

BDD è sopra TDD

i benefici

dal TDD al BDD

suddivisione dei test per contesto

BDD è sopra TDD

i benefici

dal TDD al BDD

separazione delle verifiche

BDD è sopra TDD

i benefici

dal TDD al BDD

migliorare la documentazione della feature

BDD è sopra TDD

Frameworks... DEMO 2

Frameworks

dal TDD al BDD

ci sono due tipologie:

BDD è sopra TDD

Frameworks

dal TDD al BDD

xSpec

BDD è sopra TDD

Frameworks

dal TDD al BDD

xBehave

BDD è sopra TDD

xSpec

dal TDD al BDD

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

xBehave

dal TDD al BDD

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

Frameworks

dal TDD al BDD

SpecFlow

BDD è sopra TDD

progetto attivo: SItipo: xBehavelicenza: BSD stylenuget package: SI

SpecFlow

dal TDD al BDDFrameworks

Frameworks

dal TDD al BDD

Machine.Specifications (MSpec)

BDD è sopra TDD

progetto attivo: SItipo: xSpeclicenza: xUnit and MS-PLnuget package: SI

MSpec

dal TDD al BDDFrameworks

Frameworks

dal TDD al BDD

NSpec

BDD è sopra TDD

progetto attivo: SItipo: xSpeclicenza: MIT Licensenuget package: SI

NSpec

dal TDD al BDDFrameworks

Frameworks

dal TDD al BDD

NBehave

BDD è sopra TDD

progetto attivo: SItipo: xBehavelicenza: BSD 3nuget package: SI

NBehave

dal TDD al BDDFrameworks

Frameworks

dal TDD al BDD

StoryQ

BDD è sopra TDD

progetto attivo: NOtipo: xSpec ~ xBehavelicenza: MITnuget package: SI

StoryQ

dal TDD al BDDFrameworks

dal TDD al BDD

Quale sarà l'evoluzione?

BDD è sopra TDD

Quale sarà l'evoluzione?

dal TDD al BDD

TDD > BDD > ATDD

BDD è sopra TDD

Quale sarà l'evoluzione?

dal TDD al BDDBDD è sopra TDD

A u t o m a t e d t e s t i n g

T e s t - F i r s tD e v e l o p m e n t

T e s t - D r i v e nD e v e l o p m e n t

B e h a v i o r - D r i v e nD e v e l o p m e n t

. . .

. . .

. . .

Riferimenti

dal TDD al BDD

Growing Object-Oriented

Software, Guided by Tests

www.growing-object-oriented-software.com

a.k.a. GOOS

Il materiale

dal TDD al BDD

slideshare.net/cpattarello/dalTDDalBDD

dalTDDalBDD.codeplex.com

claudiopattarello.blogspot.it

dal TDD al BDD

Q & A

[email protected] IAD13