Una panoramica sui test automatizzati con un p嘆 di teoria su come approciarsi.
Ed infine una panoramica su Serenity BDD, tool utilizzato per creare i test automatizzati
2. Agenda
Un po di teoria sulla QA ed i test
Problematiche, antipattern e possibili soluzioni
QA stato dellarte e evoluzione
TDD, BDD, ATDD (hai un problema con le sigle?)
Serenity BDD (aka Thucydides)
Demo time
5. Test Funzionali
Si occupa di verificare che lapplicazione sia
conforme alle specifiche
Che rispetti le richieste del cliente
Mantiene costante il valore del software
Descrivono in poche parole cosa faccia il prodotto
Esempi di test funzionali possono essere:
Unit Testing, Smoke Testing, Sanity Testing, Integration
Testing, White box testing, Black Box testing, User Acceptance
testing, Regression Testing
6. Test Non Funzionali
Sono test focalizzati al modo in cui lavora lapplicazione
pi湛 tosto che al come
Hanno bisogno di metriche come specifiche
Vengono eseguiti dopo i test funzionali, ma per questo
non sono secondari
Esempi di test non funzionali possono essere:
Baseline testing, Compliance testing, Documentation testing,
Endurance testing, Load testing, Localization testing and
Internationalization testing, Performance testing, Recovery testing,
Resilience testing, Security testing, Scalability testing, Stress testing,
Usability testing, Volume testing
7. A cosa serve il
test
automation
Lautomazione 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
8. Best practice nei test automatizzati
Test manuali
ed esplorativi
Test manuali
ed esplorativi
Lenti nellesecuzione
Lenti al cambiamento
Costosi
Fragili
Ma pi湛 vicini al business
Lenti nellesecuzione
Lenti al cambiamento
Costosi
Fragili
Ma pi湛 vicini al business
Veloci
Economici
Isolati
Pi湛 vicini allo sviluppo
Ma pi湛 lontani dal business
Veloci
Economici
Isolati
Pi湛 vicini allo sviluppo
Ma pi湛 lontani dal business
9. Nella cima della piramide Nella base della piramide
Si 竪 concentrati sulle
funzionalit che danno
valore al business
Evito regressioni nel
valore
Documentazione
vivente
Basso costo nella
scrittura/manutenzion
e dei test
Aumento rapidit
feedback
Robustezza dei test
Evito regressioni nella
funzionalit
Punti di forza dellautomazione
12. Lato Business Lato Tecnologico
Antipattern (2/2)
piramide duale
Test manuali
ed esplorativi
Test manuali
ed esplorativi
13. Antipattern della piramide duale
Tra i due antipattern 竪 il pi湛 insidioso
Hai la sensazione di star facendo bene
Duplichi i test
Lavori a silos (moooolto sbagliato)
Incongruenze e limita visione del progetto
Falsi Positivi
Varie ed eventuali.
14. Panoramica sulle problematiche
degli antipattern
Limitati, fragili
Hanno unesecuzione molto lenta
Tempo di regressione molto alto
Alto costo
per fix problemi
per mantenimento (per evitare obsolescenza)
Non si ha la visibilit su ci嘆 che si 竪 testato
Difficolt di individuazione dei bug dentro lo stack
Tempi di attesa alti per avere tutto lo stack
funzionante e coerente
18. QA in agile
1. Fare i test nel mentre invece di farli alla fine
2. Prioritizzare la scrittura dei test, invece di farli alla
fine
3. Prevenire i bugs invece di trovarli
4. Capire cosa si sta testando invece di verificare la
funzionalit
5. Costruire un sistema migliore invece di rompere il
sistema
6. Il TEAM 竪 responsabile della qualit invece di
essere solo il QA ad essere responsabile
19. QA in Google
Il team si incarica della qualit
I developer devono aiutare nel test
Creazione di un unico linguaggio condiviso (UL)
I tester hanno lo scopo di rendere pi湛 produttivi gli
sviluppatori
La qualit non 竪 uguale a testare
La qualit 竪 un atto di prevenzione pi湛 di quanto sia
un atto di rilevamento
La qualit 竪 un problema dello sviluppo non del
testing
21. 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
22. BDD (behavior-driven development)
Evoluzione del TDD
Orientato allintegrazione e al business
Sfrutta le best practice del DDD
Permette la creazione di strumenti e processi
condivisi
Consente la creazione di documentazione viva della
nostra applicazione
Utilizza un linguaggio il pi湛 vicino a quello naturale
24. As Is To Be
Utilizzo di Jbehave
Creato dallinventore
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
25. ATDD (Acceptance test-driven development)
Non 竪 una vera tecnologia, ma un processo
Coinvolge tutto i team
Utilizza i criteri di accettazione ed esempi come
strumenti
Si concentra di pi湛 sulle esigenze del cliente
Molto spesso pu嘆 essere confuso oppure integrato
direttamente con il BDD
27. 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
Java
Cos竪 Serenity BDD
28. Serenity BDD
Serenity + SeleniumJBehave
Architettura di Serenity BDD
Story (BDD)
Implementazione
Story in java
Flow Steps
Serenity Page
Object
Web Page
Reportistica