2. 2
Il computer dice no!
Qualitá in un processo di
Continuous Delivery
Matteo Emili
Microsoft MVP – Azure DevOps
matteo.emili@live.com
https://mattvsts.github.io || http://twitter.com/MattVSTS
10. #DOH19
Definiamo qualitá del codice
Standard industriali
Misure della complessitá di Halstead
Complessitá ciclomatica
Indice di manutenibilitá
CERT Secure Coding Standards
Lista di CWE
…
Scelte specifiche
Standard di documentazione
Regole di stile
Ri-uso di pattern
Copertura del codice
Percentuale massima di variabilitá
…
12. #DOH19
Alcuni da prima che nascessi!
Matteo Emili
Nato nel 1990
Standard industriali
Complessitá ciclomatica (1976)
Misure della complessitá di Halstead
(1977)
Metriche di struttra del software (1981)
ISO/IEC 9126 Product Quality (1991)
…
13. 13
Le scelte di un team sono variegate
Diversi fattori non-tecnici da considerare
14. 14
E la qualitá?
La Qualitá sta nell’applicare pratiche e processi per
garantire che il risultato finale corrisponda alle
aspettative
16. #DOH19
Qual é il nostro standard qualitativo?
Strumenti
Un controllo di codice sorgente moderno
Continuous Integration
Script ed estensioni per il server di CI
Scanner della qualitá del codice
Strumenti di analisi delle vulnerabilitá
…
Pratiche
Review del codice
Iterazioni dedicate ad un fine
TDD
Ancora piú test!
Secure Development Lifecycle
…
17. 17
C’é solo un pre-requisito
É l’unica regola della moderna ingegneria del software
18. 18
Gli strumenti devono essere integrati
nella piattaforma CI/CD scelta
Fare altrimenti causa frizioni non necessarie, riducendo
l’adozione
23. 23
Ogni strumento va applicato ad uno
stadio differente
Una build da 30 secondi non puó durare un’ora…
24. #DOH19
Esempi di quando fare cosa?
Cosa?
Analisi qualitativa del codice
Rischio di sicurezza diretto
Rischio indotto dale dipendenze (indiretto)
Analisi infrastrutturale preventiva
Quando?
Build di CI (branch principali e PR)
Ad-hoc per branch master, develop
Tutte le build senza eccezioni
Dopo il deployment in sviluppo, prima di
UAT