GIUGNO-LUGLIO 2017
AUTOMAZIONE OGGI 399
112
AO
SOFTWARE
Come realizzare un’architettura
CI intelligente e scalabile
L’idea di Continuous Integration (CI) ruota attorno alla capacità di
continuare a compilare e testare un’applicazione ogniqualvolta
una modifica sia stata o debba essere eseguita. Il testing manuale
funziona bene se la base del codice è piccola, ma oggigiorno, con
software embedded che costituiscono il cuore di tanti prodotti e
progetti, specialmente nei settori regolamentati, questo processo
deve essere automatizzato perché sia possibile gestire la quan-
tità di software da testare. La lotta per risolvere il problema della
qualità del software e del time-to-market è senza tregua, ma la CI
aiuta sviluppatori e ingegneri a risolvere queste questioni senza
timori. Credo siano cinque le considerazioni da tenere presenti
nella costruzione dell’ambiente di analisi ideale:
- anticipare le attività di test e offrire strumenti che consentano agli
sviluppatori di effettuare i test ogni volta che ne hanno bisogno;
- fornirsi di strumenti che consentano agli sviluppatori di avere
una visione completa del testing e che generino automatica-
mente test case per frammenti di codice che non siano completi;
- costruire un archivio che consenta di automatizzare la program-
mazione delle attività di integrazione. Gli sviluppatori hanno biso-
gno di essere messi in grado di eseguire test di integrazione con
la stessa facilità con cui possono eseguire i test di unità;
o sviluppo di software consta tradizionalmente di tre
fasi lineari distinte: progettazione, codifica, test. Tut-
tavia, questo processo lascia troppo spazio agli errori:
nella progettazione funzionale, i bug introdotti da una
codifica di scarsa qualità e una fase di test avviata solo
alla fine del processo possono infatti necessitare di un’eccessiva
quantità di tempo e comportare rischi per il progetto.
In particolare, una fase di test tardiva e protratta nel tempo
produce un ‘effetto domino’: più a lungo i bug restano nasco-
sti, maggiori sono le probabilità per gli sviluppatori di lavorare
con software di scarsa qualità, che causerà solo ulteriori ritardi,
poiché si troveranno più bug nella base di codice, che sarà ne-
cessario correggere. Questi ritardi non sono costosi solo in ter-
mini di tempo, ma anche finanziariamente e, potenzialmente,
trasformano quello che era un progetto fattibile in un disastro
per il budget.
La strategia ideale per qualsiasi azienda in procinto di rilasciare
sul mercato un prodotto software è dunque quella di dotarsi di
un processo che supporti il test del software il prima possibile nel
ciclo di sviluppo, il che consente di effettuare molto rapidamente
le modifiche e di essere pronti per l’immediata distribuzione del
prodotto sul mercato. Illustriamo qui come realizzare un sistema
di Continuous Integration (CI) evoluto.
Dotarsi di un sistema di Continuous Integration (CI) evoluto e di un
processo di sviluppo in cui il test del software avvenga il prima possibile
è la strategia ideale per rilasciare software velocemente sul mercato
Un’architettura CI
più evoluta possibile
L
Niroshan Rajaduari
Foto tratta da www.pixabay.com