TEST PYRAMID, L'OCCHIO DI RA SUL TESTING · INTEGRATION TEST UI TEST Exploratory Test UNIT...

Preview:

Citation preview

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

Recommended