Table of Contents Table of Contents
Previous Page  112 / 134 Next Page
Information
Show Menu
Previous Page 112 / 134 Next Page
Page Background

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