NIER Ingegneria è diventata Società Benefit →
TORNA AGLI ARTICOLI
14 Dicembre 2021

SOFTWARE TESTING: INTERVISTA AD ALTA VELOCITÀ.

Dietro un viaggio sereno in treno c’è una tecnologia software di prima classe. Sali in carrozza, ce la svela il nostro Senior Software Testing Engineer in questa intervista.

A cura di Viviana Scot
[Area Ingegneria del Software – Unità Verifica e Validazione del Software]

Prossima fermata: innovazione.

Saremo rapidi, come i treni più moderni. Quelli che hanno fatto della sicurezza il loro biglietto di sola Andata.

Ma cosa c’è realmente dietro un viaggio in treno? Tecnologia e software. Due componenti che corrono sullo stesso binario e che permettono di dormire sonni tranquilli ai passeggeri.

Il software viene utilizzato in ogni fase del tragitto: dalla definizione degli orari e degli itinerari fino ad arrivare alla gestione degli apparati che sono a bordo.

Il software a cui ci riferiamo viene definito safety critical e deve rispettare un rigoroso processo di definizione dei requisiti, di sviluppo e di testing così come specificato dalla norma EN50128 e schematizzato nel modello a V.

Un esempio per capire l’importanza di un software nei viaggi in treno? Far sì che un semaforo verde si attivi al momento giusto.

In questo contesto, salgono in carrozza le attività di testing necessarie per verificare e validare il software. Per questo motivo, lasciamo la parola a chi guida questo processo delicatissimo: Rosario Piccirillo, Senior Software Testing Engineer dell’unità di Verifica e Validazione di NIER.

Metodo, tecnologia e condivisione.

Rosario, di cosa ti occupi principalmente in NIER?

Del processo di verifica e validazione di software safety critical. In particolare, mi occupo del testing del software per verificare la correttezza implementativa e l’aderenza alle specifiche di safety previste dalla norma EN50128.

Parliamo di una attività recente che hai portato a termine. Ce la puoi descrivere in breve?

Ultimamente abbiamo concluso un’attività che riguardava il software testing di un applicativo che a bordo di un treno gestisce la transizione dal sistema nazionale al sistema ETCS e viceversa. L’applicativo è scritto in linguaggio C ed è stato sviluppato secondo il modello a V previsto dalla norma EN50128.

Nello specifico, ci siamo occupati del component testing che prevede la verifica dei singoli componenti di un software isolandoli dal resto (stubbing). Successivamente, abbiamo verificato che le singole funzioni, messe a disposizione degli altri componenti, rispettassero i criteri di robustezza e affidabilità descritti dalle specifiche software. Come metodologia di testing ci è stato richiesto di effettuare testing di tipo black box.

Qual era l’obiettivo da raggiungere?

L’obiettivo principale da perseguire era verificare i requisiti software allocati ed una coverage del 100% secondo il criterio MC/DC. In caso di copertura inferiore a quella desiderata, sono stati previsti ulteriori test di tipo BVA per incrementare il valore di coverage che si era ottenuto.

Un altro obiettivo da raggiungere ha riguardato le tempistiche da rispettare.  L’attività si è conclusa in circa un mese, perfettamente in linea con la richiesta del cliente.

Quali strumenti sono stati utilizzati?

Per progettare ed eseguire i test abbiamo utilizzato uno dei migliori software testing tools disponibili sul mercato: VectorCast.

VectorCast permette di realizzare, tramite la sua interfaccia utente, i vari casi di test e di eseguirli su una macchina host indipendentemente dall’ hardware su cui verrà eseguito l’applicativo da verificare. Inoltre, VectorCast fornisce dei report relativi alla coverage del codice ottenuta evidenziando le porzioni di codice non raggiunte.

La scelta del tool è stata dettata da una richiesta specifica del committente. Avremmo potuto anche utilizzare un tool diverso, come ad esempio Rational Test RealTime della IBM, che ho avuto modo di utilizzare per altre attività.

Come superare le sfide più difficili.

Quali “sfide” sono state affrontate nel corso di questa attività?

La sfida principale è stata quella di concludere un’impegnativa campagna di test in tempi molto stretti e dettati dalle esigenze del cliente. Il nostro Team d’ingegneri ha verificato oltre 200 funzioni, per circa 45000 righe di codice, e fatto oltre 1500 test. Il tutto, in un mese di lavoro.

Una bella sfida, che è diventata ancora più interessante se si pensa che era un cliente nuovo per NIER e che è servita come attività pilota per farci conoscere. Esperienza e professionalità sono state le nostre armi vincenti, quelle che ci hanno permesso di raggiungere gli obiettivi prefissati e di soddisfare le aspettative del cliente sotto tutti i punti di vista.

Se poi ti viene anche riconosciuta un’alta qualità del lavoro, allora la soddisfazione cresce e devi tenertela stretta.

Quale pensi sia il valore aggiunto che NIER riesce a dare in questo tipo di attività?

Su questo tipo di attività, sono sicuro che il nostro valore aggiunto si articoli in quattro punti principali:

  1. L’attenzione al cliente. In NIER, lo assistiamo durante l’intero ciclo dell’attività e gli comunichiamo tempestivamente le problematiche riscontrate e le soluzioni da implementare. Instaurare un rapporto continuativo ci permette di essere sempre in linea con le sue esigenze.
  2. La lunghissima esperienza nell’ambito ferroviario è una sicurezza per chiunque ci sceglie. Un percorso maturato negli anni e che ci ha visti protagonisti di progetti realizzati per i leader del settore.
  3. La condivisione. In NIER, le difficoltà che si affrontano su ogni  singola attività vengono condivise con l’intera unità di V&V (RoE).
  4. La presenza nel team di V&V di professionisti che nascono nel segno del Design e dello Sviluppo Software. Un vero valore aggiunto, a servizio di tutto il team di V&V, per l’esecuzione dei test Software. Hanno tutti una scrupolosità minuziosa e il giusto grado di malizia, due fattori fondamentali per scovare le problematiche più subdole. Quelle che non si scoprirebbero se ci si fermasse al solo tool software e non si approfondirebbe con il corretto grado di progettazione dei test.

Esperienza al servizio del cliente.

Ritieni che i tanti anni di lavoro come sviluppatore software ti abbiano dato una marcia in più nel progettare i test?

Assolutamente! Ho un’esperienza di oltre 15 anni nello sviluppo software di vario tipo e in vari domini. Per anni mi sono occupato della progettazione ed implementazione di sistemi software per la difesa aerea e navale, ma anche di sistemi software per il controllo del traffico aereo e, ovviamente, di sistemi software del dominio ferroviario.

Questa esperienza pregressa mi permette di approcciare al codice sorgente più facilmente e mi consente di progettare i casi di test in maniera più specifica, oltre che più efficace. È un approccio che cerco trasmettere sia al mio team che ai clienti con cui mi interfaccio.

Infatti, recentemente, ho tenuto un corso di formazione alla nostra Academy “NIER Learning LAB” insieme al mio collega Rosario Silvano, anche lui Senior Software Testing Engineer in NIER. Abbiamo parlato di software testing a chi ha approcciato da poco questo lavoro.

In NIER, crediamo che la formazione continua sia importante quanto un lavoro eseguito alla perfezione. Per questo motivo organizziamo corsi interni tenuti dal personale con più esperienza alle varie attività.

Andare spediti.

Scegliere il partner giusto per i tuoi progetti di ingegneria del software ti può portare lontano.


L’applicazione per prenotare gli spazi lavorativi in comune.

L’Applicazione per prenotare gli spazi lavorativi in comune.

DALLE PAROLE AI FATTI .

Contattaci per saperne di più sull’argomento dell’articolo.

    Condividi .