Un modo per rendere Facebook più efficiente e garantirne il funzionamento senza intoppi anche in caso di modifiche ed evoluzioni dell'infrastruttura. È l'idea di un gruppo di ricercatori di Cnr-Isti, l'Istituto di Scienza e Tecnologia dell'Informazione, che gli ha fruttato uno dei 10 premi previsti dal bando internazionale di Facebook Research incentrato proprio su tutti i progetti in grado di ridurre i costi e facilitare i molti test che coinvolgono il social network in maniera continuativa per garantirne l'operatività in qualsiasi situazione. Gli stessi test che, nel corso degli ultimi anni, hanno portato a diversi down del portale.

La soluzione ideata dai ricercatori italiani si chiama Static Prediction of Test Flakiness ed è stata sviluppata da Breno Miranda e Antonia Bertolino di Cnr-Isti in collaborazione con Emilio Cruciani e Roberto Verdecchia, dottorandi del Gran Sasso Science Institute. "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" si legge nel comunicato del CNR.

Come spiega la stessa nota, la sfida lanciata da Facebook Research "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 breve, Facebook (così come tutte le altre piattaforme in continua evoluzione) deve continuamente attuare dei testing che coinvolgono una grande quantità di sistemi e hanno quindi assunto una complessità considerevole. Per questo i cosiddetti "flaky test", o test fragili, rappresentano spesso un problema, perché "mettere alla prova uno stesso software eseguito nelle medesime condizioni a volte termina con successo e altre volte fallisce". Il motivo? Il fallimento non è causato da un problema del software, ma 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" si legge nella nota di spiegazione. Qual è, quindi, la soluzione dei ricercatori italiani? "Semplice ma efficace" spiegano: si può predire se un test è in grado di esibire caratteristiche di potenziale fragilità guardando al suo codice. La sperimentazione ha dimostrato che che con semplici analisi statiche si è in grado di identificare i test fragili con una precisione superiore all'80%.