Realizzare un prototipo pre-commerciale per la generazione automatica di casi di test di sistema simili a quelli che sarebbero eseguiti manualmente da uno sviluppatore.
Questa l’ambizione del progetto "Automatic System Testing” (AST) appena selezionato dall’ European Research Council tra i progetti ERC PoC. Sono 5 su 50 i progetti vincenti italiani, tra cui quello coordinato da Leonardo Mariani, docente di sistemi di elaborazione delle informazioni di Milano-Bicocca.
Lo studio, a cui vanno 150.000 € per la durata di diciotto mesi, beneficia dei risultati prodotti dal progetto di ricerca ERC Consolidator Grant “Learn” (2015), progetto ancora in corso, nel quale è stata già sviluppata la ricerca di base e ora si concentrerà sulle applicazioni web.
Quante verifiche deve superare un software prima di essere commercializzato?
Un sistema software deve essere collaudato eseguendo diversi tipi di test. Normalmente si eseguono prima i test di unità per verificare che le singole componenti si comportino correttamente, poi si eseguono i test di integrazione per verificare che le componenti comunichino tra loro correttamente e infine il test di sistema per verificare che il sistema nella sua interezza si comporti correttamente. Esistono naturalmente anche numerosi altri tipi di test che si eseguono in situazioni specifiche.
Il progetto ERC PoC ha l’obiettivo di realizzare uno strumento per l’automazione del test di sistema che attualmente è poco automatizzato e richiede l’intervento diretto dello sviluppatore.
Perchè è importante questo tipo di test?
Il test di sistema è spesso l’ultima fase di test. E’ molto importante perché verifica la correttezza del sistema intero utilizzandolo in modo similare a come lo userà l’utente. E’ anche un test molto complesso perché un sistema software è spesso molto grande e verificare la correttezza di ogni possibile scenario di esecuzione è estremamente complicato.
Quali vantaggi e benefici comporta?
Automatizzare buona parte di una attività che prima veniva svolta manualmente porta ad una riduzione dei tempi di test e ad una migliore qualità del software rilasciato. Chi va a beneficiare di questa tecnologia sono anzitutto gli sviluppatori di software. Gli utenti non utilizzano questo strumento, ma ne beneficiano in modo indiretto perché le applicazioni che useranno saranno state verificare in modo più accurato.