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
MikeCohn
FUNCTIONAL TEST
INTEGRATION TEST
UI
TEST
Exploratory
Test
UNIT TEST
UNIT TEST
FUNCTIONAL TEST
INTEGRATION TEST
UI
TEST
Exploratory
Test
BUSINESS FACING
are we build the right system?
TECHNOLOGY FACING
are 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
UI
TEST
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
UI
TEST
Exploratory
Test
UNIT TEST
• Acceptance testing
• BDD
• Smoke testing
• Security testing
• Performance testing
• System testing
• System integration testing
• …
UNIT TEST
FUNCTIONAL TEST
INTEGRATION TEST
UI
TEST
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
UI
TESTS
Exploratory
Tests
TOOLS
• xUnit Framework
• SoapUI
• Cucumber (SpecFlow)
• Selenium
• ….
UNIT TESTS
FUNCTIONAL TESTS
INTEGRATION TESTS
UI
TESTS
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 Pescatore
Software Engineer
Agile Business Coach
advisory council member
Consortium
felicepescatore.it
@felicepescatore
Felice Pescatore -Disciplined Agile Italy
@felicepescatore
8 giugno 2019

L'Occhio di Ra sul Testing

  • 1.
    TEST PYRAMID, L'OCCHIODI RA SUL TESTING @felicepescatore 8 giugno 2019
  • 2.
    Credit: Bettmann/Getty Images NoTest – No DevOps! and
  • 3.
    Il TEST èuna PARTE ESSENZIALE del processo di sviluppo.. … non è debugging!
  • 4.
    Testiamo per… far scorrerele attività senza intoppi, rimuovendo gli impedimenti (waste) FLOW the first way of DevOps
  • 5.
    Testiamo per… avere feedbackrapidi FEEDBACK the second way of DevOps
  • 6.
    Testiamo per… validare ipotesie assunzioni LEARN the third way of DevOps
  • 7.
    Testiamo per… avere qualitàcontinua ed intrinseca Built-in Quality, Lean Principle… … DevOps is Lean apply to IT world!
  • 8.
  • 9.
    TEST AUTOMATIZZATI fondamentali peril supporto allo sviluppo di soluzioni moderne, complesse ed in continua evoluzione
  • 10.
    TESTING STRAGEY per unapproccio Strutturato e di Valore al test è necessario individuare la relativa strategia attuativa
  • 11.
    La TEST PYRAMID èuna metafora che suggerisce di raggruppare i test del software in BUCKET di diversa granularità
  • 12.
    TEST PYRAMID E’ unmodello 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 MikeCohn FUNCTIONAL TEST INTEGRATION TEST UI TEST Exploratory Test UNIT TEST
  • 13.
    UNIT TEST FUNCTIONAL TEST INTEGRATIONTEST UI TEST Exploratory Test BUSINESS FACING are we build the right system? TECHNOLOGY FACING are we build the system right?
  • 14.
    UNIT TEST • Testingdegli 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
  • 15.
    FUNCTIONAL TEST FUNCTIONAL TEST •Verifica del comportamento della funzionalità/storia • Ambito ampio • Coinvolge molti componenti • Prestazioni accettabili UNIT TEST
  • 16.
    FUNCTIONAL TEST INTEGRATION TEST UNITTEST INTEGRATION TEST • Verifica che i componenti lavorino congiuntamente • I test-double vengono rimossi • Scope variabile • Prestazioni accettabili
  • 17.
    FUNCTIONAL TEST INTEGRATION TEST UI TEST UNITTEST UI TEST • Verifica End-to-End dei flussi operativi • Massima ampiezza • Può individuare problemi di natura diversa • Basse prestazioni • Generalmente fragile • Richiede molta manutenzione
  • 18.
    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 UI TEST Exploratory Test UNIT TEST
  • 19.
    • Acceptance testing •BDD • Smoke testing • Security testing • Performance testing • System testing • System integration testing • … UNIT TEST FUNCTIONAL TEST INTEGRATION TEST UI TEST Exploratory Test
  • 20.
    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 UI TESTS Exploratory Tests
  • 21.
    TOOLS • xUnit Framework •SoapUI • Cucumber (SpecFlow) • Selenium • …. UNIT TESTS FUNCTIONAL TESTS INTEGRATION TESTS UI TESTS Exploratory Tests Selenium WebDriver (VAFT) JAutomate, Sikuli SoapUI, RestSharp
  • 22.
    MANUAL TEST UI TEST INTEGRATIONTEST FUNCTIONAL TEST UNIT TEST Ice Cream Cone ANTIPATTERN
  • 23.
  • 24.
    the real mantra: FINDYOUR PYRAMID!
  • 25.
    Felice Pescatore Software Engineer AgileBusiness Coach advisory council member Consortium felicepescatore.it @felicepescatore Felice Pescatore -Disciplined Agile Italy
  • 26.

Editor's Notes

  • #3 According to archaeological research at the Temple of Mut in Luxor, the ancient inhabitants of the Nile River Valley had a raucous “Festival of Drunkenness” that occurred at least once per year during the 15th century B.C. reign of Hatshepsut. The celebration had a religious component—it was inspired by a myth about a bloodthirsty warrior goddess named Sekhmet who nearly destroyed mankind before drinking too much beer and passing out—and the festivities played out as a massive, debauched party.