Test automatizzati & serenity bdd

Post on 15-Aug-2015

140 views 2 download

Transcript of Test automatizzati & serenity bdd

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

Autore

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