test pyramid, l'occhio di ra sul testing · integration test ui test exploratory test unit...
Post on 12-Jul-2020
12 Views
Preview:
TRANSCRIPT
TEST PYRAMID, L'OCCHIO DI RA SUL TESTING
@felicepescatore
8 giugno 2019
Credit: Bettmann/Getty Images
No Test – No DevOps!
and
Il TEST è una
PARTE ESSENZIALE
del processo di sviluppo..
… non è debugging!
Testiamo per…
far scorrere le attività senza
intoppi, rimuovendo gli
impedimenti (waste)
FLOW
the first way of DevOps
Testiamo per…
avere feedback rapidi
FEEDBACK
the second way of DevOps
Testiamo per…
validare ipotesi e assunzioni
LEARN
the third way of DevOps
Testiamo per…
avere qualità continua ed
intrinseca
Built-in Quality, Lean Principle…
… DevOps is Lean apply to IT world!
2002 2007 20101999 2013
TEST AUTOMATIZZATI
fondamentali per il supporto allo
sviluppo di soluzioni moderne,
complesse ed in continua
evoluzione
TESTING STRAGEY
per un approccio
Strutturato e di Valore al test
è necessario individuare la relativa
strategia attuativa
La TEST PYRAMID
è una metafora che suggerisce di
raggruppare i test del software in
BUCKET
di diversa granularità
TEST PYRAMID
E’ un modello che evidenzia diverse tipologie di test:
• Alla base troviamo test unitariamente piccoli, veloci e fortemente automatizzabili
• Al vertice troviamo test ampi, lenti e generalmente poco automatizzabili
Mik
e C
oh
n
FUNCTIONAL TEST
INTEGRATION TEST
UITEST
Exploratory Test
UNIT TEST
UNIT TEST
FUNCTIONAL TEST
INTEGRATION TEST
UITEST
Exploratory Test
BUSINESS FACINGare we build the right system?
TECHNOLOGY FACINGare we build the system right?
UNIT TEST
• Testing degli elementi costituenti il
sistema (es: oggetti)
• Uso di test-double per sostituire le
dipendenze (es: mock, stub, ecc)
• Ambito delimitato
• Gli errori sono facili da individuare
e comprendere
• Alte performance
• Continua esecuzione
• Feedback istantanei UNIT TEST
FUNCTIONAL TEST
FUNCTIONAL TEST
• Verifica del comportamento della
funzionalità/storia
• Ambito ampio
• Coinvolge molti componenti
• Prestazioni accettabili
UNIT TEST
FUNCTIONAL TEST
INTEGRATION TEST
UNIT TEST
INTEGRATION TEST
• Verifica che i componenti lavorino
congiuntamente
• I test-double vengono rimossi
• Scope variabile
• Prestazioni accettabili
FUNCTIONAL TEST
INTEGRATION TEST
UITEST
UNIT TEST
UI TEST
• Verifica End-to-End dei flussi
operativi
• Massima ampiezza
• Può individuare problemi di natura
diversa
• Basse prestazioni
• Generalmente fragile
• Richiede molta manutenzione
EXPLORATORY TEST
• Manuale
• Fondamentale l’esperienza e la
creatività
• Può essere suddiviso in Piani di
Test
• Analizza le risposte inattese e
documenta i passi che le hanno
generate
FUNCTIONAL TEST
INTEGRATION TEST
UITEST
Exploratory Test
UNIT TEST
• Acceptance testing
• BDD
• Smoke testing
• Security testing
• Performance testing
• System testing
• System integration testing
• …
UNIT TEST
FUNCTIONAL TEST
INTEGRATION TEST
UITEST
Exploratory Test
EFFORT %
• Dipende… dipende… dipende!
• Ad esempio, «Google suggerisce»
• 70% unit test
• 20% integration test
• 10% end-to-end test
UNIT TESTS
FUNCTIONAL TESTS
INTEGRATION TESTS
UITESTS
Exploratory Tests
TOOLS
• xUnit Framework
• SoapUI
• Cucumber (SpecFlow)
• Selenium
• ….
UNIT TESTS
FUNCTIONAL TESTS
INTEGRATION TESTS
UITESTS
Exploratory Tests
Selenium WebDriver (VAFT)
JAutomate, Sikuli
SoapUI, RestSharp
MANUAL TEST
UI TEST
INTEGRATION TEST
FUNCTIONAL TEST
UNIT TEST
Ice Cream Cone
ANTIPATTERN
Parecchi tipi
di Piramidi!
the real mantra:
FIND YOUR PYRAMID!
Felice PescatoreSoftware Engineer
Agile Business Coach
advisory council memberConsortium
felicepescatore.it
@felicepescatore
Felice Pescatore -Disciplined Agile Italy
@felicepescatore
8 giugno 2019
top related