ramcrack ha scritto:
OK, se ho ben capito, un flaky è un particolare test fallito oggi su un software in fase di realizzazione, mentre magari domani lo stesso test porta un risultato positivo (in pratica non fallisce)...
Soluzione:
Diminuire il più possibile il numero di flaky, meglio ancora se si eliminano tutti, cosi che qualsiasi altro test si esegue sulla applicazione appena realizzata, anche se non dovesse passare, si verrebbe immediatamente a capo del problema.
Quello è l'obiettivo, non la soluzione.
LA soluzione non esiste, ci sono LE soluzioni per RIDURRE il problema (* cuttone sul perchè non possa esistere LA soluzione, halting problem e così via).
Su piccola scala il problema non c'è: pigli a calci in culo gli sviluppatori.
Ma se questi sono centinaia, spesso, si rilassano i vincoli.
Cioè, ad esempio nel caso dell'elettrocardiogramma, si dirà "il test fallisce se la MISURA fallisce".
Perchè se l'infermiera (sexy) si sbaglia a tagliare il pelo sul petto, il test fallisce, ma in realtà non arrivo neppure a verificare se la misurazione è giusta.
Ovviamente più "allarghi le maglie" più euristica devi "pompare dentro" per evitare che i test non servano a nulla.
Diciamo che un flaky è un errore casuale dato dai test... quindi alla fine, vallo a capire qual'e' questo errore...
Un flaky test è un test che fallisce in modo non deterministico, senza un motivo apparente.
Tipicamente sono le condizioni al contorno (carico di lavoro, concorrenza, altri programmi, possessione demoniaca) che influiscono negativamente.
"una volta" (cioè con le applicazioni "dure e pure") c'erano, ma relativamente pochi.
"oggi" capita più spesso, soprattutto nel caso di applicazioni "morbide" (web)
EDIT: i test possono essere anche piuttosto "evoluti".
Del tipo "se mandi una email deve succere questo, questo e quest'altro" (in realtà anche 700 cose)
Allora quando cambi il compositore di gmail dovrai testare col nuovo framework che verificherà che, dopo l'invio, sia successo questo e quello (appaia nel log l'invio, ci sia il salvataggio in remoto o tutto quanto).
ciò NON determinerà che la nuova procedura è corretta, però diciamo si può sperare che non "romperà" completamente il sistema, perchè almeno le email le manderà.
poi, magari, non registrerà il nuovo evento sul calendario o quello che è ma, si spera, le email salteranno fuori (e ci sarà tempo per fixare il calendario).
si spazia da "testa l'arrotondatore degli euro con valori piccolissimi, negativi, vicino allo zero eccetera" fino a "bottone invia email" (che fa di tutto e di più).