Upload
diego-mauricio-lagos-morales
View
137
Download
2
Embed Size (px)
Citation preview
DIEGO MAURICIO LAGOS MORALES
Test Automatizzati con Serenity BDD
Agenda
Un po’ di teoria sulla Q&A ed i test Problematiche, antipattern e possibili soluzioni
Q&A stato dell’arte e evoluzioneTDD, BDD, ATDD (hai un problema con le
sigle?)Serenity BDD (aka Thucydides)Demo time
Q&A e test automationun po’ di teoria
A cosa serve il test automation
L’automazione può essere considerata come una rete di sicurezza Non trova nuovi bug Non sostituisce il valore umano Non è la panacea di tutti i mali
Ci assicura soltanto un grado di confidenza sullo stato del prodotto
Best practice nei test automatizzati
Test manuali ed esplorativi
E2E (10%)
Integration (20% – 40%)
xUnit (50% - 70%)
• Lenti al cambiamento ed esecuzione
• Costosi• Fragili
• Ma più vicini al business
• Veloci• Economici• Isolati• Ma più vicini allo
sviluppo
Nella cima della piramide
Nella base della piramide
Si è concentrati sulle funzionalità che danno valore al business
Evito regressioni nel valore
Test in linea con il prodotto
Documentazione vivente
Basso costo nella scrittura/manutenzione dei test
Aumento rapidità feedback
Robustezza dei testEvito regressioni
nella funzionalità
Punti di forza dell’automazione
Antipattern (1/2)Ice Cream
Test manuali ed esplorativi
E2E
Integrazione
xUnit
Lato Tecnologico Lato Business
Antipattern (2/2)piramide duale
Web Service
Integrazione
xUnit
E2E
UI
Webservice
Test manuali ed esplorativi
Antipattern della piramide duale
Tra i due antipattern è il più insidiosoHai la sensazione di star facendo beneDuplichi i testLavori a silos (moooolto sbagliato)Incongruenze e limita visione del progettoVarie ed eventuali….
Panoramica sulle problematiche degli antipattern
Limitati, fragiliHanno un’esecuzione molto lentaTempo di regressione molto altoAlto costo
per fix problemi per mantenimento (per evitare obsolescenza)
Non si ha la visibilità su ciò che si è testatoDifficoltà di individuazione dei bug dentro lo
stackTempi di attesa alti per avere tutto lo stack
funzionante e coerente
Q&A in Agile e Google
Come sono visti i Q&A dagli sviluppatori
Come vedono i Q&A gli sviluppatori
Q&A in agile
1. Fare i test nel mentre invece di farli alla fine2. Prioritizzare la scrittura dei test, invece di
farli alla fine3. Prevenire i bugs invece di trovarli4. Capire cose si sta testando invece di
verificare la funzionalità5. Costruire un sistema migliore invece di
rompere il sistema6. Il TEAM è responsabile della qualità invece
di essere solo il Q&A ad essere responsabile
Q&A in Google
Il team si incarica della qualitàI developer devono aiutare nel testCreazione di un unico linguaggio condivisoI tester hanno lo scopo di rendere più
produttivi gli sviluppatoriLa qualità non è uguale a testareLa qualità è un atto di prevenzione più di
quanto sia un atto di rilevamentoLa qualità è un problema dello sviluppo non
del testing
HOUSTON, ABBIAMO UN PROBLEMA
TDD, BDD, ATDD, *DD
TDD (test driven development)
Si orienta allo sviluppo (xUnit test)Si focalizza nella creazione di test
prima ancora della funzionalitàI test guidano lo sviluppo
I suoi benefici ultimamente vengono messi in discussione
BDD (behavior-driven development)
Evoluzione del TDDOrientato all’integrazione e al businessSfrutta le best practice del DDDPermette la creazione di strumenti e processi
condivisiConsente la creazione di documentazione
viva della nostra applicazione Utilizza un linguaggio il più vicino a quello
naturale
BDD (esempio con JBehave)
As Is To Be
Utilizzo di JbehaveCreato
dall’inventore del BDD (Dan North)
Molto completo e robusto
Solo piattaforma JVM
Utilizzo di Cucumber
Multi piattaforma (ruby, js, java, ecc..)
Progetto molto attivo ed ampiamento utilizzato
BDD tools
ATDD (Acceptance test-driven development)
Non è una vera tecnologia, ma un processoCoinvolge tutto i team Utilizza i criteri di accettazione ed esempi
come strumentiSi concentra di più sulle esigenze del cliente
Molto spesso può essere confuso oppure integrato direttamente con il BDD
Serenity BDD
Cos’è Componenti
Serenity BDD helps you write better, more effective
automated acceptance tests, and use these acceptance
tests to produce world-class test
reports and living documentation
Jbehave o Cucumber (BDD)
Serenity BDD Integrazione con i vari
moduli Reportistica
Selenium
Cos’è Serenity BDD
Serenity BDD
Serenity + SeleniumJBehave
Architettura di Serenity BDD
Story (BDD)
Implementazione Story in
javaFlow Steps
Serenity Page Object
Web Page
Reportistica
Demo time di Serenity
Risorse (1/2)
1. http://googletesting.blogspot.it/2. https://josepablosarco.wordpress.com/3. http://www.xoriant.com/blog/software-
testing-and-qa/extended-role-qa-test-driven-development-tdd.html
4. http://martinfowler.com/tags/testing.html5. http://mkolisnyk.blogspot.it/2013/03/
jbehave-vs-cucumber-jvm-comparison.html
Risorse (2/2)
1. http://thucydides.info/docs/serenity-staging/2. Esempi di Serenity e Thucydides:
1. https://github.com/serenity-bdd/serenity-demos2. https://github.com/thucydides-webtests/thucydides-
smoketests