SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
Materiale
https://github.com/javasilk/api-mani-in-pasta
https://github.com/cernio/behapi
https://getcomposer.org/doc/00-intro.md
Sviluppare software a colpi di
test
Mani in pasta
Andrea Salidu - Giugno 2015
https://it.linkedin.com/in/andreasalidu
Un po di premesse
Chi sono
Andrea Salidu
Software Architect presso Tiscali Media
Socio Fondatore Fabbricastorie
Socio Fondatore Yourep
Contatti:
salidu@tiscali.it
tel 340 26 72 232
https://www.facebook.com/andrea.salidu.71
https://www.linkedin.com/in/andreasalidu
Vi ricordate da dove siamo partiti?
BDD - Riassunto
Behavior Driven
Development
- Make it right
- Test “inclusi”
- Rilasci frequenti
- Software snello
- Linguaggio specifico di
dominio
Parole chiave
- .feature
- Scenario
- Background
- Given, And, When,
Then, But...
setup ambiente
uno sguardo di dettaglio a behapi
in pasta I : definizione user story
in pasta II: dettaglio scenari
in pasta III: behapi da vicino
in pasta IV: sviluppiamo!
Cosa facciamo oggi
Feature: Caricare un documento
Come utente contributore,
Voglio caricare un documento
Così che sia disponibile sulla digital library
Nota: Accetta pdf, ppt, odt, odf, sxw, txt
I.N.V.E.S.T.
https://en.wikipedia.org/wiki/INVEST_%28mnemonic%29
In pasta I - user story
Esigenza: consentire a un utente di autenticarsi sul nostro sistema
Deriva da:
- “per salvare i miei documenti devo essere identificato”
- “per commentare devo essere riconoscibile”
- “vogliamo tracciare il profilo utente”
- “dobbiamo per legge riconoscere l’utente che condivide i post per non
caricarci di responsabilità che non ci competono”
In pasta I - user story...
Login
- Come utente della piattaforma, per poter salvare i documenti, devo
autenticarmi
- Per potermi autenticare, come utente della piattaforma, devo potermi
registrare
- Come utente registrato, per poter accedere in maniera riconoscibile,
devo essere dotato di una coppia di credenziali (username/password)
- (opzionale) Come utente facebook, devo poter utilizzare la mia identità
su facebook per registrarmi e autenticarmi
In pasta I - ...user story
Scenario:
Dato che ho un utente “pippo”
E un utente “pluto”
Quando “pluto” segue “pippo”
Allora “pippo” riceve una notifica via email
contenente “pluto ha iniziato a seguirti”
Pensate alla costruzione di una query:
Prepare… Bind… => ARRANGE
Execute => ACT
In pasta II - scenari...
ARRANGE
ACT
ASSERT
Funzionalità: login
Come utente della piattaforma
Voglio autenticarmi
Così che io possa salvare i documenti, essere riconoscibile...
Contesto:
Dato che esiste l’utente “test” con password “letmein”
Scenario: Login successful
Quando faccio POST su “/v1/login” con body “url-encoded”
“””
user=test&password=letmein
“””
Allora lo status code è “200”
E il body è JSON
In pasta II - ...scenari
class ApiContext{
public function datoCheHoUnoUserPass($user,$pass){
…
}
public function quandoFaccioPostConBody($url,$body){
…
}
public function alloraStatusCode($val){ … }
}
In pasta III - behapi da vicino
try {
$tester=new ApiContext();
$tester->datoCheHoUnoUserPass(‘test’, ‘letmein’);
$tester->quandoFaccioPostConBody(‘/v1/login’,
‘user=test&password=letmein’);
$tester->alloraStatusCode(200);
} catch (Exception $e) {
print ‘[‘ . $e->getline(). ‘]’ . $e->getMessage();
}
In pasta III - behapi da vicino...
“
Ottimo lavoro ragazzi ma...
Prossimo appuntamento?
- documentare con
swagger+nelmioapidocbundle
...non è ancora il momento di farsi
i complimenti a vicenda
“Grazie!
http://guzzle.readthedocs.org/en/5.3/
https://github.com/Peekmo/JsonPath
https://robots.thoughtbot.com/writing-better-cucumber-scenarios-or-why-were
RIVEDERE
http://2015.phpday.it/talk/behatminkphantomjs-test-all-the-things/
http://www.slideshare.net/chassa/2013-0603specification-byexamplewithgherkinchristianhassa
http://www.slideshare.net/IosifItkin/behavior-driven-development-pros-and-cons
http://martinfowler.com/bliki/BusinessReadableDSL.html
http://www.slideshare.net/railsconf/below-and-beneath-tdd-test-last-development-and-other-real-
world-test-patterns-presentation
https://robots.thoughtbot.com/writing-better-cucumber-scenarios-or-why-were
Libri:
Riferimenti

Weitere ähnliche Inhalte

Ähnlich wie Sviluppare software a colpi di test – II appuntamento: “mani in pasta col BDD.

Cloud and iOS by Francesco Novelli
Cloud and iOS by Francesco NovelliCloud and iOS by Francesco Novelli
Cloud and iOS by Francesco NovelliCodemotion
 
Laboratorio 3 - Realizzare un portfolio personale con il cellulare, Isabella ...
Laboratorio 3 - Realizzare un portfolio personale con il cellulare, Isabella ...Laboratorio 3 - Realizzare un portfolio personale con il cellulare, Isabella ...
Laboratorio 3 - Realizzare un portfolio personale con il cellulare, Isabella ...MED Toscana
 
Usiamo bene WordPress
Usiamo bene WordPressUsiamo bene WordPress
Usiamo bene WordPressPaolo Valenti
 
In design e dps — slideshare
In design e dps — slideshareIn design e dps — slideshare
In design e dps — slideshareClaudio Marconato
 
2 Esercitazione: WordPress Parte 2
2 Esercitazione: WordPress Parte 22 Esercitazione: WordPress Parte 2
2 Esercitazione: WordPress Parte 2Andrea Gorrini
 
Realizzare un portfolio con il cellulare
Realizzare un portfolio con il cellulareRealizzare un portfolio con il cellulare
Realizzare un portfolio con il cellulareIsabella Bruni
 
Smau Milano 2016 - Simonetta Pozzi
Smau Milano 2016 - Simonetta PozziSmau Milano 2016 - Simonetta Pozzi
Smau Milano 2016 - Simonetta PozziSMAU
 
Storytools: farsi conoscere e incrementare il proprio business - SMAU Milano ...
Storytools: farsi conoscere e incrementare il proprio business - SMAU Milano ...Storytools: farsi conoscere e incrementare il proprio business - SMAU Milano ...
Storytools: farsi conoscere e incrementare il proprio business - SMAU Milano ...Simonetta Pozzi
 
HackInBo2018 - Security @ Hyperscale
HackInBo2018 - Security @ HyperscaleHackInBo2018 - Security @ Hyperscale
HackInBo2018 - Security @ HyperscaleClaudio Criscione
 
DotNetCampus 2014 - BING e Windows Store App
DotNetCampus 2014 - BING e Windows Store AppDotNetCampus 2014 - BING e Windows Store App
DotNetCampus 2014 - BING e Windows Store AppMassimo Bonanni
 
Wp meetup torino 30 01 2016
Wp meetup torino 30 01 2016Wp meetup torino 30 01 2016
Wp meetup torino 30 01 2016Paolo Valenti
 
Integrazione con Visual Studio Online
Integrazione con Visual Studio OnlineIntegrazione con Visual Studio Online
Integrazione con Visual Studio OnlineDavide Benvegnù
 
GAE python GDG Milano L04
GAE python GDG Milano L04GAE python GDG Milano L04
GAE python GDG Milano L04Paolo Dadda
 
Win02 bing e windows store apps
Win02   bing e windows store appsWin02   bing e windows store apps
Win02 bing e windows store appsDotNetCampus
 
Corso Web 2.0: Il Web come piattaforma
Corso Web 2.0: Il Web come piattaformaCorso Web 2.0: Il Web come piattaforma
Corso Web 2.0: Il Web come piattaformaRoberto Polillo
 
Il podcast
Il podcastIl podcast
Il podcastmonidc
 
SMAU Milano 2017 - Online & Offline Incrociare i Dati per Analisi Potenziate.
SMAU Milano 2017 - Online & Offline Incrociare i Dati per Analisi Potenziate.SMAU Milano 2017 - Online & Offline Incrociare i Dati per Analisi Potenziate.
SMAU Milano 2017 - Online & Offline Incrociare i Dati per Analisi Potenziate.paolomonge
 
Lim2012 tutoring part2
Lim2012 tutoring part2Lim2012 tutoring part2
Lim2012 tutoring part2Laura Antichi
 

Ähnlich wie Sviluppare software a colpi di test – II appuntamento: “mani in pasta col BDD. (20)

Cloud and iOS by Francesco Novelli
Cloud and iOS by Francesco NovelliCloud and iOS by Francesco Novelli
Cloud and iOS by Francesco Novelli
 
Laboratorio 3 - Realizzare un portfolio personale con il cellulare, Isabella ...
Laboratorio 3 - Realizzare un portfolio personale con il cellulare, Isabella ...Laboratorio 3 - Realizzare un portfolio personale con il cellulare, Isabella ...
Laboratorio 3 - Realizzare un portfolio personale con il cellulare, Isabella ...
 
Usiamo bene WordPress
Usiamo bene WordPressUsiamo bene WordPress
Usiamo bene WordPress
 
In design e dps — slideshare
In design e dps — slideshareIn design e dps — slideshare
In design e dps — slideshare
 
2 Esercitazione: WordPress Parte 2
2 Esercitazione: WordPress Parte 22 Esercitazione: WordPress Parte 2
2 Esercitazione: WordPress Parte 2
 
Realizzare un portfolio con il cellulare
Realizzare un portfolio con il cellulareRealizzare un portfolio con il cellulare
Realizzare un portfolio con il cellulare
 
Smau Milano 2016 - Simonetta Pozzi
Smau Milano 2016 - Simonetta PozziSmau Milano 2016 - Simonetta Pozzi
Smau Milano 2016 - Simonetta Pozzi
 
Storytools: farsi conoscere e incrementare il proprio business - SMAU Milano ...
Storytools: farsi conoscere e incrementare il proprio business - SMAU Milano ...Storytools: farsi conoscere e incrementare il proprio business - SMAU Milano ...
Storytools: farsi conoscere e incrementare il proprio business - SMAU Milano ...
 
HackInBo2018 - Security @ Hyperscale
HackInBo2018 - Security @ HyperscaleHackInBo2018 - Security @ Hyperscale
HackInBo2018 - Security @ Hyperscale
 
DotNetCampus 2014 - BING e Windows Store App
DotNetCampus 2014 - BING e Windows Store AppDotNetCampus 2014 - BING e Windows Store App
DotNetCampus 2014 - BING e Windows Store App
 
Wp meetup torino 30 01 2016
Wp meetup torino 30 01 2016Wp meetup torino 30 01 2016
Wp meetup torino 30 01 2016
 
Integrazione con Visual Studio Online
Integrazione con Visual Studio OnlineIntegrazione con Visual Studio Online
Integrazione con Visual Studio Online
 
GAE python GDG Milano L04
GAE python GDG Milano L04GAE python GDG Milano L04
GAE python GDG Milano L04
 
Wp app studio_new
Wp app studio_newWp app studio_new
Wp app studio_new
 
Win02 bing e windows store apps
Win02   bing e windows store appsWin02   bing e windows store apps
Win02 bing e windows store apps
 
Corso Web 2.0: Il Web come piattaforma
Corso Web 2.0: Il Web come piattaformaCorso Web 2.0: Il Web come piattaforma
Corso Web 2.0: Il Web come piattaforma
 
Il podcast
Il podcastIl podcast
Il podcast
 
SMAU Milano 2017 - Online & Offline Incrociare i Dati per Analisi Potenziate.
SMAU Milano 2017 - Online & Offline Incrociare i Dati per Analisi Potenziate.SMAU Milano 2017 - Online & Offline Incrociare i Dati per Analisi Potenziate.
SMAU Milano 2017 - Online & Offline Incrociare i Dati per Analisi Potenziate.
 
On demand Webinars
On demand WebinarsOn demand Webinars
On demand Webinars
 
Lim2012 tutoring part2
Lim2012 tutoring part2Lim2012 tutoring part2
Lim2012 tutoring part2
 

Sviluppare software a colpi di test – II appuntamento: “mani in pasta col BDD.