Verifica, Validazione e Testing Software
Il software è protagonista in una vasta gamma di domini e settori. Gioca un ruolo cruciale nei trasporti, nell’industria, nel biomedicale, nell’automazione e nell’innovazione in molti aspetti della vita moderna. Diventa, quindi, sempre più importante produrre software di qualità, affidabili e sicuri.
In questo contesto, NIER si propone con i propri servizi di verifica, validazione e testing del Software per aiutare i propri clienti a rilevare “bachi”, errori e criticità già in fase di progettazione, prima del deployment finale del sistema, massimizzandone così la qualità, l’efficienza e la sicurezza.
NIER ha maturato negli anni forti competenze di V&V e Testing nel dominio ferroviario, settore fortemente normato, in cui sicurezza ed efficienza sono, ovviamente, di primaria importanza. L’esperienza così acquisita, di metodologie e di processo, è stata estesa con successo, fino ad ora, al dominio biomedicale permettendo di ampliare i settori di competenza.
L’attenzione al cliente è un punto focale nei servizi offerti, che vengono personalizzati a seconda delle esigenze.
Servizi offerti
Le attività di V&V e Testing sono strumenti chiave nei “Cicli a V” che, in accordo con la normativa applicabile (EN50128, ISO26262, IEC 62304) definiscono il processo di sviluppo del software: nella fase discendente, a sinistra della “V” si identificano i requisiti di sicurezza e la loro coerente esplicitazione nei documenti di design; nel vertice della “V” si ’ispeziona il codice sorgente (critical code review) per verificare la corretta implementazione dei requisiti di sicurezza e si verifica l’aderenza alle Coding Rules; nel lato destro della “V” si svolgono test di componente software, di integrazione software e di Integrazione software/hardware, arrivando infine alla validazione del software.
I test funzionali eseguiti in laboratorio completano le attività di validazione, testando il software sulla piattaforma hardware “target” al fine di rilevare e risolvere eventuali problemi di integrazione.
In tutte le fasi di test, il team progetta gli scenari e i risultati attesi sulla base delle specifiche dei requisiti, definisce le procedure, esegue il set-up e la configurazione dell’ambiente di test (in laboratorio o su host), analizzando poi le cause di eventuali anomalie o deviazioni.
I principali servizi offerti sono:
- Verifica documenti di design con stesura di Verification e Validation Report
- Critical code Review su sistemi safety critical
- Verifica delle regole di buona programmazione o MISRA C/C++
- Test del software su host a diversi livelli di integrazione con tool certificati (white e black box)
- Test del software su target in laboratorio a diversi livelli
- Supporto al design per il debugging, con analisi delle anomalie sollevate
- Validazione completa di tool per la configurazione di sistemi safety-critical (T3 [EN50128], TCL3 [ISO26262] e di debita classe per [IEC62304])
- Progettazione e sviluppo di simulatori e test bench
- Stesura di script per l’automazione dei test
Tools
Nello svolgere le attività di Verifica, Validazione e Testing vengono utilizzati alcuni tool che rappresentano lo stato dell’arte e che vengono di volta in volta integrati a seconda delle esigenze del cliente.
I più utilizzati sono:
- Microsoft Visual Studio
- IBM Rational Test Real Time
- VectorCAST
- Lauterbach TRACE32
- Microsoft SQL Server R2 con Microsoft SQL Server Management Studio (SSMS)
- Understand
- PCLint
- Matlab
Standard di riferimento
EN50126, EN50128, MISRA C/C++, ISO 26262, IEC 62304, EN50159