SlideShare una empresa de Scribd logo
1 de 30
Descargar para leer sin conexión
TOTAL TESTING IN DEVOPS
Gianni Bombelli
DevOps Software Developer
gianni@giannibombelli.it
https://giannibombelli.it
https://www.linkedin.com/in/gianni-bombelli
https://github.com/bombo82
https://bitbucket.org/bombo82
1
NON PARLIAMO DI...
Total Testing in DevOps
2
NOI PARLIAMO DI DEVOPS!
Total Testing in DevOps
3
I TEST?I TEST?
DOVE SONO I TEST?DOVE SONO I TEST?
4
THE SECONDTHE SECOND
WAYWAY
THE PRINCIPLES OFTHE PRINCIPLES OF
FEEDBACKFEEDBACK
The DevOps Handbook - Gene Kim, Jez Humble, Patrick
Debois, & John Willis
Total Testing in DevOps
5
"THE WAYS""THE WAYS"
PER COLLEZIONAREPER COLLEZIONARE
FEEDBACKFEEDBACK
Total Testing in DevOps
6
Unit Test written by the programmers to convince
themselves that their programs work the way they think
the programs work.
Functional Test written by (or at least specified by) the
customers to convince themselves that the system as a
whole works the way they think the system as a whole
should work.
eXtreme Programming explained 1st ed - Kent Beck - p. 47
Total Testing in DevOps
7
ALTRI TEST / FEEDBACK
Total Testing in DevOps
8
MY INFINITE LOOP
branch
code
merge
automated build
delivery
configuration management
deploy automation
operate
monitor
plan
Total Testing in DevOps
9
BRANCH & MERGE
FUNCTIONAL TESTFUNCTIONAL TEST
Total Testing in DevOps
10
AUTOMATED BUILD
FUNCTIONAL TESTFUNCTIONAL TEST
GOALGOAL
parte in automatico quando necessario
avvisa quando una build o i test falliscono
crea uno o più pacchetti software quando termina con
successo
Total Testing in DevOps
11 . 1
AUTOMATED BUILD
FUNCTIONAL TESTFUNCTIONAL TEST
TEST - FEEDBACKTEST - FEEDBACK
verifica manuale: trigger che avviano la build
verifica manuale: avvisi in caso di fallimento
verifica automatica: dei pacchetti creati
deploy dei pacchetti in ambiente di dev / test
esecuzione dei pacchetti in ambiente di dev / test
smoke / sanity test
Total Testing in DevOps
11 . 2
AUTOMATED BUILD
OTHER FEEDBACKOTHER FEEDBACK
usability: è facile e intuitivo usare il sistema di build?
lo stato delle build è chiaro? è facile identificare dove e
perché la build è fallita?
performance: la build è abbastanza rapida? possiamo
velocizzarla senza perdere affidabilità?
load il nostro sistema ci permette di effettuare più build
in contemporanea senza un significativo degrado delle
prestazioni?
Total Testing in DevOps
11 . 3
AUTOMATED BUILD
UNIT TESTUNIT TEST
La maggior parte degli strumenti di build ci
permettono di definire la build tramite un proprio DSL
oppure "scriverla" usando un linguaggio di
programmazione
BUILD AS CODE / PIPELINE AS CODEBUILD AS CODE / PIPELINE AS CODE
Total Testing in DevOps
11 . 4
DELIVERY
FUNCTIONAL TESTFUNCTIONAL TEST
lo schema di versionamento dei pacchetti è semplice ed
efficiente?
è facile distinguere i pacchetti validi da quelli non
installabili?
i pacchetti hanno un checksum per verificare che non
siano corrotti?
l'accesso all'artifactory rispetta i requisiti di sicurezza?
Total Testing in DevOps
12
CONF. MGMT & DEPLOY AUTOM.
FUNCTIONAL TESTFUNCTIONAL TEST
GOALGOAL
il deploy può essere lanciato premendo un pulsante
avvisa quando il deploy fallisce
permette i rollback delle configurazioni
permette i rollback delle versioni delle applicazioni
Total Testing in DevOps
13 . 1
CONF. MGMT & DEPLOY AUTOM.
FUNCTIONAL TESTFUNCTIONAL TEST
TEST - FEEDBACKTEST - FEEDBACK
verifica manuale: eventuali trigger che avviano il deploy
verifica manuale: avvisi in caso di fallimento
verifica (almeno manuale): rollback delle configurazioni
verifica (almeno manuale): rollback delle versioni
Total Testing in DevOps
13 . 2
CONF. MGMT & DEPLOY AUTOM.
OTHER FEEDBACK - PT.1OTHER FEEDBACK - PT.1
usability: le configurazioni sono facilmente
modificabili? è facile creare nuove configurazioni?
usability: è facile e intuitivo usare il sistema di deploy?
lo stato delle deploy è chiaro? è facile identificare dove
e perché il deploy è fallito?
Total Testing in DevOps
13 . 3
CONF. MGMT & DEPLOY AUTOM.
OTHER FEEDBACK - PT.2OTHER FEEDBACK - PT.2
performance: il deploy è abbastanza rapido?
possiamo velocizzarla senzo perdere affidabilità?
security: tutti i valori di configurazione sono presenti in
un VCS?
security: le configurazioni specifiche per i differenti
environment sono isolate tra loro? è possibile
configurare differenti livelli di accesso agli
environment?
Total Testing in DevOps
13 . 4
CONF. MGMT & DEPLOY AUTOM.
UNIT TESTUNIT TEST
La maggior parte degli strumenti di automazione dei
deploy e gestione delle configurazioni ci permettono
di definire il processo di deploy tramite un proprio
DSL ed esistono strumenti di test che verificano lo
stato di un server / container e.g. testinfra
DEPLOY AUTOMATION AS CODEDEPLOY AUTOMATION AS CODE
Total Testing in DevOps
13 . 5
OPERATE
Questa parte è specifica per ogni applicazione...
Operations significa amministrare e gestire il
funzionamento dell'applicazione e spesso necessita la
conoscienza del dominio applicativo
QUESTO NON SIGNIFICA CHE NON POSSAQUESTO NON SIGNIFICA CHE NON POSSA
ESSERE TESTATO E MIGLIORATO!ESSERE TESTATO E MIGLIORATO!
Total Testing in DevOps
14
MONITOR
Esso è un sistema molto potente per fornirci feedback e
informazioni relative alla nostra applicazione e su come
viene utilizzata.
Dovrebbe inviarci poche informazioni, ma esse devono
essere cariche di significato... se il sistema di monitoring
c'inviasse tutti i dati che raccogliesse sarebbe
praticamente inutile perché non sapremmo cosa farcene
di tutti quei dati.
Total Testing in DevOps
15 . 1
MONITOR
E' un argomento vasto e complesso e purtroppo non
abbiamo tempo per addentrarci nei dettagli.
Che informazioni può fornirci:
se una parte di codice rallenta la sua esecuzione
se una parte di codice genera più errori del normale
variazioni insolite del carico (sia positive che negative)
variazioni insolite nelle risorse utilizzate
Total Testing in DevOps
15 . 2
MONITOR
L'UTENTE È IL MIGLIOR "MONITOR" DELL'UTENTE È IL MIGLIOR "MONITOR" DEL
NOSTRO SISTEMA...NOSTRO SISTEMA...
Total Testing in DevOps
15 . 3
16 . 1
PLAN
La nostra applicazione ha una UI?
possiamo studiare la UX e testarla, prima di procedere
al design
Total Testing in DevOps
16 . 2
PLAN
Vogliamo lanciare una nuova funzionalità?
Possiamo testare l'idea tramite:
sondaggi rivolti agli utenti
landing page che mostrano la nuova funzionalità
Total Testing in DevOps
16 . 3
RIASSUMENDO
lo scopo non è automatizzare
lo scopo è ottenere feedback più rapidamente possibile
e prima che i problemi (bug / difetti) vadano in
produzione
possiamo testare l'applicazione e i processi che ci
permettono di metterla in produzione
Total Testing in DevOps
17 . 1
RIASSUMENDO
noi siamo gli utilizzatori dei tool, non il contrario!
noi siamo i "customer" del "ciclo infinito", quindi
definiamo i test funzionali e gli "acceptance test" del
nostro flusso di lavoro e dei tool che usiamo
tutto ciò che è codice (o considerabile tale), proviamo a
trattarlo come se lo fosse per davvero ... unit test, TDD,
branching model, etc.
Total Testing in DevOps
17 . 2
CONCLUSIONI
SPERIMENTARESPERIMENTARE
ESPLORAREESPLORARE
CERCARECERCARE
SOLUZIONI DIFFERENTISOLUZIONI DIFFERENTI
Total Testing in DevOps
17 . 3

Más contenido relacionado

La actualidad más candente

Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...
Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...
Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...Andrea Cirioni
 
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...Mattia Milleri
 
TDD patterns and TDD strategies
TDD patterns and TDD strategiesTDD patterns and TDD strategies
TDD patterns and TDD strategiesAlessandro Ceseno
 
Introduction to the Particular Platform
Introduction to the Particular PlatformIntroduction to the Particular Platform
Introduction to the Particular PlatformMauro Servienti
 
Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011Gian Maria Ricci
 
Agile requirements - alla ricerca del filo rosso (iad 2013)
Agile requirements - alla ricerca del filo rosso (iad 2013)Agile requirements - alla ricerca del filo rosso (iad 2013)
Agile requirements - alla ricerca del filo rosso (iad 2013)Fabio Armani
 
Effective Code Transformations in C++
Effective Code Transformations in C++Effective Code Transformations in C++
Effective Code Transformations in C++Marco Arena
 
L'Occhio di Ra sul Testing
L'Occhio di Ra sul TestingL'Occhio di Ra sul Testing
L'Occhio di Ra sul TestingFelice Pescatore
 
Tdd e continuous delivery sull'infrastruttura
Tdd e continuous delivery sull'infrastrutturaTdd e continuous delivery sull'infrastruttura
Tdd e continuous delivery sull'infrastrutturaCodemotion
 
TDD e Continuous Delivery sull'infrastruttura
TDD e Continuous Delivery sull'infrastrutturaTDD e Continuous Delivery sull'infrastruttura
TDD e Continuous Delivery sull'infrastrutturaFilippo Liverani
 
I processi di sviluppo software: l'evoluzione agile ed il DevOps
I processi di sviluppo software: l'evoluzione agile ed il DevOpsI processi di sviluppo software: l'evoluzione agile ed il DevOps
I processi di sviluppo software: l'evoluzione agile ed il DevOpsGiulio Destri
 
DevOps - Come diventare un buon DevOpper
DevOps -  Come diventare un buon DevOpperDevOps -  Come diventare un buon DevOpper
DevOps - Come diventare un buon DevOpperConsulthinkspa
 
Test Funzionale
Test FunzionaleTest Funzionale
Test FunzionaleIxmaSoft
 
Pensiero Analogico e Microservizi
Pensiero Analogico  e MicroserviziPensiero Analogico  e Microservizi
Pensiero Analogico e MicroserviziConsulthinkspa
 
Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5Marcello Teodori
 

La actualidad más candente (19)

Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...
Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...
Keep calm and Deploy - Panoramica sui problemi che emergono in fase di rilasc...
 
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
Progetto e implementazione di una pipeline di sviluppo software con tecnologi...
 
Lezione 1: I metodi agili
Lezione 1: I metodi agiliLezione 1: I metodi agili
Lezione 1: I metodi agili
 
TDD patterns and TDD strategies
TDD patterns and TDD strategiesTDD patterns and TDD strategies
TDD patterns and TDD strategies
 
Agilozzi le testa tutte
Agilozzi le testa tutteAgilozzi le testa tutte
Agilozzi le testa tutte
 
Introduction to the Particular Platform
Introduction to the Particular PlatformIntroduction to the Particular Platform
Introduction to the Particular Platform
 
Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011Alm pills - Sessione community tour Dot Net Umbria 2011
Alm pills - Sessione community tour Dot Net Umbria 2011
 
Agile requirements - alla ricerca del filo rosso (iad 2013)
Agile requirements - alla ricerca del filo rosso (iad 2013)Agile requirements - alla ricerca del filo rosso (iad 2013)
Agile requirements - alla ricerca del filo rosso (iad 2013)
 
Effective Code Transformations in C++
Effective Code Transformations in C++Effective Code Transformations in C++
Effective Code Transformations in C++
 
L'Occhio di Ra sul Testing
L'Occhio di Ra sul TestingL'Occhio di Ra sul Testing
L'Occhio di Ra sul Testing
 
Tdd e continuous delivery sull'infrastruttura
Tdd e continuous delivery sull'infrastrutturaTdd e continuous delivery sull'infrastruttura
Tdd e continuous delivery sull'infrastruttura
 
TDD e Continuous Delivery sull'infrastruttura
TDD e Continuous Delivery sull'infrastrutturaTDD e Continuous Delivery sull'infrastruttura
TDD e Continuous Delivery sull'infrastruttura
 
I processi di sviluppo software: l'evoluzione agile ed il DevOps
I processi di sviluppo software: l'evoluzione agile ed il DevOpsI processi di sviluppo software: l'evoluzione agile ed il DevOps
I processi di sviluppo software: l'evoluzione agile ed il DevOps
 
DevOps - Come diventare un buon DevOpper
DevOps -  Come diventare un buon DevOpperDevOps -  Come diventare un buon DevOpper
DevOps - Come diventare un buon DevOpper
 
Test Funzionale
Test FunzionaleTest Funzionale
Test Funzionale
 
Pensiero Analogico e Microservizi
Pensiero Analogico  e MicroserviziPensiero Analogico  e Microservizi
Pensiero Analogico e Microservizi
 
Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5Streaming in Java e Flex con Red5
Streaming in Java e Flex con Red5
 
TTT - Test, Tools and Tips - jug roma
TTT - Test, Tools and Tips - jug romaTTT - Test, Tools and Tips - jug roma
TTT - Test, Tools and Tips - jug roma
 
Unit test
Unit testUnit test
Unit test
 

Similar a Total Testing in DevOps

Slide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfSlide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfFlorence Consulting
 
Webinar: Il “real device testing” di Perfecto Mobile per una strategia mobile...
Webinar: Il “real device testing” di Perfecto Mobile per una strategia mobile...Webinar: Il “real device testing” di Perfecto Mobile per una strategia mobile...
Webinar: Il “real device testing” di Perfecto Mobile per una strategia mobile...Emerasoft, solutions to collaborate
 
MuleSoft_Meetup__Official__8_.pdf
MuleSoft_Meetup__Official__8_.pdfMuleSoft_Meetup__Official__8_.pdf
MuleSoft_Meetup__Official__8_.pdfFlorence Consulting
 
Rich client application: MVC4 + MVVM = Knockout.js
Rich client application: MVC4 + MVVM = Knockout.jsRich client application: MVC4 + MVVM = Knockout.js
Rich client application: MVC4 + MVVM = Knockout.jsGiorgio Di Nardo
 
Come rilasciare App di Qualità
Come rilasciare App di QualitàCome rilasciare App di Qualità
Come rilasciare App di QualitàLuca Manara
 
Qualità del Software
Qualità del SoftwareQualità del Software
Qualità del SoftwareYeser Rema
 
Automated UI testing for iOs and Android mobile apps
Automated UI testing for iOs and Android mobile appsAutomated UI testing for iOs and Android mobile apps
Automated UI testing for iOs and Android mobile appsMassimo Bonanni
 
MattiaBeltrano_azurePipelines.pptx
MattiaBeltrano_azurePipelines.pptxMattiaBeltrano_azurePipelines.pptx
MattiaBeltrano_azurePipelines.pptxAndreaCapolei1
 
Integrazione continua con TFS Build
Integrazione continua con TFS BuildIntegrazione continua con TFS Build
Integrazione continua con TFS BuildGian Maria Ricci
 
Development process
Development processDevelopment process
Development processEmidio Croci
 
Software Engineering Introduction in Italian
Software Engineering Introduction in ItalianSoftware Engineering Introduction in Italian
Software Engineering Introduction in ItalianPierpaoloCaricato
 
Milano Meetup #8 - Testing & Salesforce Integration
Milano Meetup #8 - Testing & Salesforce IntegrationMilano Meetup #8 - Testing & Salesforce Integration
Milano Meetup #8 - Testing & Salesforce IntegrationGonzalo Marcos Ansoain
 
Continous Delivery & HQ Code
Continous Delivery & HQ CodeContinous Delivery & HQ Code
Continous Delivery & HQ CodeDaniele Mondello
 
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...Alessandro Alpi
 

Similar a Total Testing in DevOps (20)

Iloveyou
IloveyouIloveyou
Iloveyou
 
Slide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfSlide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdf
 
Webinar: "DevSecOps: early, everywhere, at scale"
Webinar: "DevSecOps: early, everywhere, at scale"Webinar: "DevSecOps: early, everywhere, at scale"
Webinar: "DevSecOps: early, everywhere, at scale"
 
Webinar: Il “real device testing” di Perfecto Mobile per una strategia mobile...
Webinar: Il “real device testing” di Perfecto Mobile per una strategia mobile...Webinar: Il “real device testing” di Perfecto Mobile per una strategia mobile...
Webinar: Il “real device testing” di Perfecto Mobile per una strategia mobile...
 
Unit testing 101
Unit testing 101Unit testing 101
Unit testing 101
 
MuleSoft_Meetup__Official__8_.pdf
MuleSoft_Meetup__Official__8_.pdfMuleSoft_Meetup__Official__8_.pdf
MuleSoft_Meetup__Official__8_.pdf
 
Rich client application: MVC4 + MVVM = Knockout.js
Rich client application: MVC4 + MVVM = Knockout.jsRich client application: MVC4 + MVVM = Knockout.js
Rich client application: MVC4 + MVVM = Knockout.js
 
Webinar: "DevOps e Orchestrazione Bimodale dei Processi IT"
Webinar: "DevOps e Orchestrazione Bimodale dei Processi IT"Webinar: "DevOps e Orchestrazione Bimodale dei Processi IT"
Webinar: "DevOps e Orchestrazione Bimodale dei Processi IT"
 
Come rilasciare App di Qualità
Come rilasciare App di QualitàCome rilasciare App di Qualità
Come rilasciare App di Qualità
 
Qualità del Software
Qualità del SoftwareQualità del Software
Qualità del Software
 
Automated UI testing for iOs and Android mobile apps
Automated UI testing for iOs and Android mobile appsAutomated UI testing for iOs and Android mobile apps
Automated UI testing for iOs and Android mobile apps
 
MattiaBeltrano_azurePipelines.pptx
MattiaBeltrano_azurePipelines.pptxMattiaBeltrano_azurePipelines.pptx
MattiaBeltrano_azurePipelines.pptx
 
Integrazione continua con TFS Build
Integrazione continua con TFS BuildIntegrazione continua con TFS Build
Integrazione continua con TFS Build
 
Testing
TestingTesting
Testing
 
Development process
Development processDevelopment process
Development process
 
Hardware e plugin
Hardware e pluginHardware e plugin
Hardware e plugin
 
Software Engineering Introduction in Italian
Software Engineering Introduction in ItalianSoftware Engineering Introduction in Italian
Software Engineering Introduction in Italian
 
Milano Meetup #8 - Testing & Salesforce Integration
Milano Meetup #8 - Testing & Salesforce IntegrationMilano Meetup #8 - Testing & Salesforce Integration
Milano Meetup #8 - Testing & Salesforce Integration
 
Continous Delivery & HQ Code
Continous Delivery & HQ CodeContinous Delivery & HQ Code
Continous Delivery & HQ Code
 
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...
 

Total Testing in DevOps

  • 1. TOTAL TESTING IN DEVOPS Gianni Bombelli DevOps Software Developer gianni@giannibombelli.it https://giannibombelli.it https://www.linkedin.com/in/gianni-bombelli https://github.com/bombo82 https://bitbucket.org/bombo82 1
  • 2. NON PARLIAMO DI... Total Testing in DevOps 2
  • 3. NOI PARLIAMO DI DEVOPS! Total Testing in DevOps 3
  • 4. I TEST?I TEST? DOVE SONO I TEST?DOVE SONO I TEST? 4
  • 5. THE SECONDTHE SECOND WAYWAY THE PRINCIPLES OFTHE PRINCIPLES OF FEEDBACKFEEDBACK The DevOps Handbook - Gene Kim, Jez Humble, Patrick Debois, & John Willis Total Testing in DevOps 5
  • 6. "THE WAYS""THE WAYS" PER COLLEZIONAREPER COLLEZIONARE FEEDBACKFEEDBACK Total Testing in DevOps 6
  • 7. Unit Test written by the programmers to convince themselves that their programs work the way they think the programs work. Functional Test written by (or at least specified by) the customers to convince themselves that the system as a whole works the way they think the system as a whole should work. eXtreme Programming explained 1st ed - Kent Beck - p. 47 Total Testing in DevOps 7
  • 8. ALTRI TEST / FEEDBACK Total Testing in DevOps 8
  • 9. MY INFINITE LOOP branch code merge automated build delivery configuration management deploy automation operate monitor plan Total Testing in DevOps 9
  • 10. BRANCH & MERGE FUNCTIONAL TESTFUNCTIONAL TEST Total Testing in DevOps 10
  • 11. AUTOMATED BUILD FUNCTIONAL TESTFUNCTIONAL TEST GOALGOAL parte in automatico quando necessario avvisa quando una build o i test falliscono crea uno o più pacchetti software quando termina con successo Total Testing in DevOps 11 . 1
  • 12. AUTOMATED BUILD FUNCTIONAL TESTFUNCTIONAL TEST TEST - FEEDBACKTEST - FEEDBACK verifica manuale: trigger che avviano la build verifica manuale: avvisi in caso di fallimento verifica automatica: dei pacchetti creati deploy dei pacchetti in ambiente di dev / test esecuzione dei pacchetti in ambiente di dev / test smoke / sanity test Total Testing in DevOps 11 . 2
  • 13. AUTOMATED BUILD OTHER FEEDBACKOTHER FEEDBACK usability: è facile e intuitivo usare il sistema di build? lo stato delle build è chiaro? è facile identificare dove e perché la build è fallita? performance: la build è abbastanza rapida? possiamo velocizzarla senza perdere affidabilità? load il nostro sistema ci permette di effettuare più build in contemporanea senza un significativo degrado delle prestazioni? Total Testing in DevOps 11 . 3
  • 14. AUTOMATED BUILD UNIT TESTUNIT TEST La maggior parte degli strumenti di build ci permettono di definire la build tramite un proprio DSL oppure "scriverla" usando un linguaggio di programmazione BUILD AS CODE / PIPELINE AS CODEBUILD AS CODE / PIPELINE AS CODE Total Testing in DevOps 11 . 4
  • 15. DELIVERY FUNCTIONAL TESTFUNCTIONAL TEST lo schema di versionamento dei pacchetti è semplice ed efficiente? è facile distinguere i pacchetti validi da quelli non installabili? i pacchetti hanno un checksum per verificare che non siano corrotti? l'accesso all'artifactory rispetta i requisiti di sicurezza? Total Testing in DevOps 12
  • 16. CONF. MGMT & DEPLOY AUTOM. FUNCTIONAL TESTFUNCTIONAL TEST GOALGOAL il deploy può essere lanciato premendo un pulsante avvisa quando il deploy fallisce permette i rollback delle configurazioni permette i rollback delle versioni delle applicazioni Total Testing in DevOps 13 . 1
  • 17. CONF. MGMT & DEPLOY AUTOM. FUNCTIONAL TESTFUNCTIONAL TEST TEST - FEEDBACKTEST - FEEDBACK verifica manuale: eventuali trigger che avviano il deploy verifica manuale: avvisi in caso di fallimento verifica (almeno manuale): rollback delle configurazioni verifica (almeno manuale): rollback delle versioni Total Testing in DevOps 13 . 2
  • 18. CONF. MGMT & DEPLOY AUTOM. OTHER FEEDBACK - PT.1OTHER FEEDBACK - PT.1 usability: le configurazioni sono facilmente modificabili? è facile creare nuove configurazioni? usability: è facile e intuitivo usare il sistema di deploy? lo stato delle deploy è chiaro? è facile identificare dove e perché il deploy è fallito? Total Testing in DevOps 13 . 3
  • 19. CONF. MGMT & DEPLOY AUTOM. OTHER FEEDBACK - PT.2OTHER FEEDBACK - PT.2 performance: il deploy è abbastanza rapido? possiamo velocizzarla senzo perdere affidabilità? security: tutti i valori di configurazione sono presenti in un VCS? security: le configurazioni specifiche per i differenti environment sono isolate tra loro? è possibile configurare differenti livelli di accesso agli environment? Total Testing in DevOps 13 . 4
  • 20. CONF. MGMT & DEPLOY AUTOM. UNIT TESTUNIT TEST La maggior parte degli strumenti di automazione dei deploy e gestione delle configurazioni ci permettono di definire il processo di deploy tramite un proprio DSL ed esistono strumenti di test che verificano lo stato di un server / container e.g. testinfra DEPLOY AUTOMATION AS CODEDEPLOY AUTOMATION AS CODE Total Testing in DevOps 13 . 5
  • 21. OPERATE Questa parte è specifica per ogni applicazione... Operations significa amministrare e gestire il funzionamento dell'applicazione e spesso necessita la conoscienza del dominio applicativo QUESTO NON SIGNIFICA CHE NON POSSAQUESTO NON SIGNIFICA CHE NON POSSA ESSERE TESTATO E MIGLIORATO!ESSERE TESTATO E MIGLIORATO! Total Testing in DevOps 14
  • 22. MONITOR Esso è un sistema molto potente per fornirci feedback e informazioni relative alla nostra applicazione e su come viene utilizzata. Dovrebbe inviarci poche informazioni, ma esse devono essere cariche di significato... se il sistema di monitoring c'inviasse tutti i dati che raccogliesse sarebbe praticamente inutile perché non sapremmo cosa farcene di tutti quei dati. Total Testing in DevOps 15 . 1
  • 23. MONITOR E' un argomento vasto e complesso e purtroppo non abbiamo tempo per addentrarci nei dettagli. Che informazioni può fornirci: se una parte di codice rallenta la sua esecuzione se una parte di codice genera più errori del normale variazioni insolite del carico (sia positive che negative) variazioni insolite nelle risorse utilizzate Total Testing in DevOps 15 . 2
  • 24. MONITOR L'UTENTE È IL MIGLIOR "MONITOR" DELL'UTENTE È IL MIGLIOR "MONITOR" DEL NOSTRO SISTEMA...NOSTRO SISTEMA... Total Testing in DevOps 15 . 3
  • 26. PLAN La nostra applicazione ha una UI? possiamo studiare la UX e testarla, prima di procedere al design Total Testing in DevOps 16 . 2
  • 27. PLAN Vogliamo lanciare una nuova funzionalità? Possiamo testare l'idea tramite: sondaggi rivolti agli utenti landing page che mostrano la nuova funzionalità Total Testing in DevOps 16 . 3
  • 28. RIASSUMENDO lo scopo non è automatizzare lo scopo è ottenere feedback più rapidamente possibile e prima che i problemi (bug / difetti) vadano in produzione possiamo testare l'applicazione e i processi che ci permettono di metterla in produzione Total Testing in DevOps 17 . 1
  • 29. RIASSUMENDO noi siamo gli utilizzatori dei tool, non il contrario! noi siamo i "customer" del "ciclo infinito", quindi definiamo i test funzionali e gli "acceptance test" del nostro flusso di lavoro e dei tool che usiamo tutto ciò che è codice (o considerabile tale), proviamo a trattarlo come se lo fosse per davvero ... unit test, TDD, branching model, etc. Total Testing in DevOps 17 . 2