Quali dati utilizzare per fare software testing?
Effettuare il software testing con dati di prova accuratamente rappresentativi è essenziale per fornire soluzioni IT all'avanguardia. Purtroppo, per testare nuovi prodotti IT sono necessarie grandi quantità di dati. Di solito, i dati reali non possono essere utilizzati per i test a causa delle restrizioni sulla privacy. I dati di prova vengono quindi creati manualmente, attraverso processi macchinosi. Ciò richiede un notevole dispendio di denaro, tempo e personale. Spesso può anche essere necessaria una consulenza esterna per assicurarsi che i dati di prova siano sufficientemente accurati. Inoltre, i cambiamenti che avvengono durante il processo di sviluppo del software possono man mano rendere necessari formati, strutture o attributi dei dati diversi.
I dati sintetici replicano i dati reali senza contenere informazioni sensibili. Pertanto, la loro qualità è superiore a quella dei dati di prova costruiti manualmente. Inoltre, i dati sintetici sono immediatamente disponibili e flessibili: se i requisiti cambiano durante il processo di software development, i dati sintetici possono essere aggiornati direttamente per riflettere le nuove esigenze. I dati sintetici possono anche essere riequilibrati per modellare determinate rarità e anomalie. Questo aiuta a verificare che il software funzioni con affidabilità anche in presenza di anomalie ed eventi inaspettati.
Dati sintetici e software testing: un esempio di applicazione
La tecnologia dei dati sintetici può essere applicata a vari casi di software testing, come ad esempio nel caso di un produttore di dispositivi medici che deve sviluppare un software per dei pacemaker. Il pacemaker è un dispositivo elettronico che viene impiantato chirurgicamente all'interno del corpo, in genere sotto la clavicola, e viene utilizzato per trattare le aritmie cardiache. Invia impulsi elettrici per stimolare i muscoli del cuore e regolare le sue contrazioni per produrre il battito cardiaco. Il software del pacemaker monitora continuamente l'ampiezza dei battiti cardiaci e il tempo che intercorre tra un battito e l'altro. Il software utilizza questi dati per determinare se è necessario un impulso elettrico artificiale in qualsiasi momento.
Gli algoritmi del pacemaker devono essere estremamente robusti in risposta alle anomalie: il dispositivo deve essere in grado di agire con accuratezza anche quando vengono registrate attività cardiache inaspettate, per esempio un battito anomalo (più lento o più veloce del solito). L'algoritmo decisionale utilizzato deve essere anche altamente efficiente ("minimal") per diversi motivi: innanzitutto, i pacemaker sono molto piccoli e quindi hanno una potenza di calcolo limitata; in secondo luogo, le decisioni del software devono avvenire rapidamente, nell'ordine di nanosecondi; infine, gli algoritmi semplici consentono una maggiore durata della batteria, limitando così il numero di escissioni e di re-impianti del dispositivo nel paziente.
La tecnologia dei dati sintetici può facilitare dunque il test e l'ottimizzazione di nuovi software per i pacemaker per diversi motivi. Innanzitutto, non è necessario disporre di dati reali dei pazienti; si possono evitare perciò le fasi di elaborazione intensiva dei dati in conformità ai protocolli sulla privacy. Perdipiù, non è necessario sviluppare manualmente i dati di prova. Inoltre, i dati sintetici possono offrire la possibilità di aumentare artificialmente il numero di anomalie attraverso la data augmentation. Quest’ultima permetterebbe infatti di colmare le lacune esistenti nel set di dati per quanto riguarda le anomalie, rafforzando la robustezza del software. In questo modo, grazie ai dati sintetici, non solo si potrebbero ridurre sostanzialmente i costi e i tempi di sviluppo, ma si potrebbe anche migliorare in modo significativo l'affidabilità del prodotto.