27
DIEGO MAURICIO LAGOS MORALES Test Automatizzati con Serenity BDD

Test automatizzati & serenity bdd

Embed Size (px)

Citation preview

Page 1: Test automatizzati & serenity bdd

DIEGO MAURICIO LAGOS MORALES

Test Automatizzati con Serenity BDD

Page 2: Test automatizzati & 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

Page 3: Test automatizzati & serenity bdd

Q&A e test automationun po’ di teoria

Page 4: Test automatizzati & serenity bdd

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

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

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

Antipattern (1/2)Ice Cream

Test manuali ed esplorativi

E2E

Integrazione

xUnit

Page 8: Test automatizzati & serenity bdd

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

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….

Autore
Page 10: Test automatizzati & serenity bdd

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

Q&A in Agile e Google

Page 12: Test automatizzati & serenity bdd

Come sono visti i Q&A dagli sviluppatori

Page 13: Test automatizzati & serenity bdd

Come vedono i Q&A gli sviluppatori

Page 14: Test automatizzati & serenity bdd

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

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

HOUSTON, ABBIAMO UN PROBLEMA

TDD, BDD, ATDD, *DD

Page 17: Test automatizzati & serenity bdd

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

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

BDD (esempio con JBehave)

Page 20: Test automatizzati & serenity bdd

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

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

Serenity BDD

Page 23: Test automatizzati & 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

Page 24: Test automatizzati & serenity bdd

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

Demo time di Serenity

Page 26: Test automatizzati & serenity bdd

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

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