Test automatizzati & serenity bdd
-
Upload
diego-mauricio-lagos-morales -
Category
Software
-
view
142 -
download
2
Transcript of Test automatizzati & serenity bdd
![Page 1: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/1.jpg)
DIEGO MAURICIO LAGOS MORALES
Test Automatizzati con Serenity BDD
![Page 2: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/2.jpg)
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
![Page 3: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/3.jpg)
Q&A e test automationun po’ di teoria
![Page 4: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/4.jpg)
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
![Page 5: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/5.jpg)
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
![Page 6: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/6.jpg)
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
![Page 7: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/7.jpg)
Antipattern (1/2)Ice Cream
Test manuali ed esplorativi
E2E
Integrazione
xUnit
![Page 8: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/8.jpg)
Lato Tecnologico Lato Business
Antipattern (2/2)piramide duale
Web Service
Integrazione
xUnit
E2E
UI
Webservice
Test manuali ed esplorativi
![Page 9: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/9.jpg)
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….
![Page 10: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/10.jpg)
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
![Page 11: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/11.jpg)
Q&A in Agile e Google
![Page 12: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/12.jpg)
Come sono visti i Q&A dagli sviluppatori
![Page 13: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/13.jpg)
Come vedono i Q&A gli sviluppatori
![Page 14: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/14.jpg)
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
![Page 15: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/15.jpg)
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
![Page 16: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/16.jpg)
HOUSTON, ABBIAMO UN PROBLEMA
TDD, BDD, ATDD, *DD
![Page 17: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/17.jpg)
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
![Page 18: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/18.jpg)
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
![Page 19: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/19.jpg)
BDD (esempio con JBehave)
![Page 20: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/20.jpg)
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
![Page 21: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/21.jpg)
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
![Page 22: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/22.jpg)
Serenity BDD
![Page 23: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/23.jpg)
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
![Page 24: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/24.jpg)
Serenity BDD
Serenity + SeleniumJBehave
Architettura di Serenity BDD
Story (BDD)
Implementazione Story in
javaFlow Steps
Serenity Page Object
Web Page
Reportistica
![Page 25: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/25.jpg)
Demo time di Serenity
![Page 26: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/26.jpg)
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
![Page 27: Test automatizzati & serenity bdd](https://reader034.fdocuments.net/reader034/viewer/2022042701/55ce44c1bb61eb92418b46cd/html5/thumbnails/27.jpg)
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