Il progetto dal titolo ‘Static Prediction of Test Flakiness’ (ovvero Predizione statica di fragilità dei casi di test) proposto da Breno Miranda (associato Istituto di scienza e tecnologie dell’informazione ‘Alessandro Faedo’-,Cnr-Isti) e Federal University of Pernambuco, Brazil), Antonia Bertolino (Cnr-Isti), Emilio Cruciani (Gran Sasso Science Institute) e Roberto Verdecchia (Gran Sasso Science Institute) si è aggiudicato uno dei 10 premi messi in palio da Facebook Research con un bando internazionale.
Il progetto ha vinto la concorrenza di ben oltre 100 proposte provenienti da tutto il mondo e giudicate di elevata qualità, come rimarcato nel rivelare le proposte vincitrici dal Dr. Mark Harman, ricercatore di Facebook e promotore del bando.
Il colosso Facebook, attraverso diverse iniziative, promuove ricerca eccellente su tematiche di rilievo in vari campi della computer dcience e di grande attualità scientifica. La competizione vinta dall’Istituto di scienza e tecnologie dell’informazione ‘Alessandro Faedo’ (Isti) del Cnr, dal titolo ‘Testing and Verification’, invitava progetti che aiutassero a mitigare gli ingenti costi delle attività di testing e validazione che devono esser continuamente effettuate per garantire l’operatività e l’efficienza di grandi piattaforme software. In Facebook (così come in Google o Microsoft, o per ogni altra vasta piattaforma in continua evoluzione) il testing ha infatti assunto dimensioni di enorme complessità. A causa di ciò, un problema sempre più pressante è costituito dai cosiddetti ‘flaky test’, o test fragili: uno stesso software eseguito nelle medesime condizioni a volte termina con successo e altre volte fallisce. Questo accade quando il fallimento non è in realtà causato da un vero guasto del software sotto test, che funzionerebbe bene, bensì da altre condizioni aleatorie e difficili da identificare nell’utilizzo della piattaforma o nel contesto di esecuzione. Il problema è che ad ogni fallimento (vero o ingannevole che sia), il processo di sviluppo deve esser interrotto per ricercarne e rimuoverne la causa, con ingenti perdite di tempo e soldi quando alla fine si comprende che non esisteva alcun guasto, e di conseguenza a causa della fragilità dei test gli sviluppatori tendono anche a perder fiducia nel processo stesso di collaudo.
Nella pratica, la maniera tradizionale per capire se un fallimento sia dovuto ad un test flaky consiste nel rilanciare lo stesso test diverse volte di seguito, verificando se il risultato sia sempre lo stesso: sulla scala delle diverse centinaia di migliaia di test eseguiti giornalmente in aziende come Facebook, tale pratica non è evidentemente sostenibile. L’idea semplice ma efficace proposta da Cnr-Isti è quella di predire che un test possa esibire caratteristiche di potenziale fragilità guardando al codice del test stesso, sull’ipotesi che i test flaky siano simili fra loro. Tale ipotesi è stata confermata dalla sperimentazione condotta su una vasta base di casi reali di test fragili, che con semplici analisi statiche sono stati identificati con una precisione superiore all’80%.
Il team di ricercatori vincitore del premio lavora insieme già da alcuni anni su tematiche di software testing, applicando metodi di analisi provenienti dal settore dei “big data” per riuscire a trattare grandi moli di casi di test. Già in maggio lo stesso quartetto di ricercatori aveva presentato alla conferenza di bandiera dell’Ingegneria del Software, Icse 2019 in Montreal (Canada), un metodo altamente efficiente che ha consentito di selezionare in pochi secondi da un insieme di oltre mezzo milione di test un sottoinsieme di casi rappresentativi da eseguire per massimizzare la probabilità di rilevare eventuali guasti, vincendo l’award come uno dei migliori lavori dell’evento.