Sviluppatore web

di il
73 risposte

73 Risposte - Pagina 2

  • Re: Sviluppatore web

    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).
    Tutto questo crea non pochi problemi, e direi anche dei più rognosi, perchè magari, come dici tu, implementare una nuova funzione su un particolare servizio come Gmail, potrebbe portare ad una marea di flaky in virtù del fatto che Gmail è utilizzata in una miriade di modi diversi da milioni di utenti in tutto il mondo e con una enormità svariata di browser diversi su una diversità infinita di oggetti hardware, tipo: smartphone, PC, console, magari anche navigatori futuristici, ecc. ecc.

    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.

    Diciamo che un flaky è un errore casuale dato dai test... quindi alla fine, vallo a capire qual'e' questo errore...

    Spero di aver capito bene.
  • Re: Sviluppatore web

    Ora però mi domando:

    questi test che li realizza ? e inoltre potrei domandare... i test sui test (diciamo una sorta di contro-test) c'e' qualcuno che li realizza ?

    personalmente per una stretta collaborazione tra programmatori che lavorano da sedi diverse, conoscevo la piattaforma github...
    Ma da qui ai software di test ed ai flaky... non sapevo...

    Certo a volte capitava chi mi domandassi come si testavano i software corposi, ma pensavo più ad una serie di persone, magari messe in due file di scrivanie una dietro l'altra in uno stanzone gigante, che provavano per ore... ore... ore... i software in produzione rilevando particolari bug.
  • Re: Sviluppatore web

    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ù).
  • Re: Sviluppatore web

    ramcrack ha scritto:


    Ora però mi domando:

    questi test che li realizza ? e inoltre potrei domandare... i test sui test (diciamo una sorta di contro-test) c'e' qualcuno che li realizza ?
    E chi vuoi che siano ? Sempre gli stessi operai (o ingegneri)
    personalmente per una stretta collaborazione tra programmatori che lavorano da sedi diverse, conoscevo la piattaforma github...
    Ehh... ma quello non è un strumento per rilasciare in produzione
    Certo a volte capitava chi mi domandassi come si testavano i software corposi, ma pensavo più ad una serie di persone, magari messe in due file di scrivanie una dietro l'altra in uno stanzone gigante, che provavano per ore... ore... ore... i software in produzione rilevando particolari bug.

    Vuoi dire versioni custom del selenio?
    https://www.seleniumhq.org

    Più seriamente: tutto quello che è automatizzabile è fondamentale, nel ciclo della produzione del software, perciò si tenta, in ogni modo, di "spostare" il carico dalle persone (costosissime) ai programmi (ecco i mitici algoritmi), che non costano nulla.
    Però questi ultimi sono stupidi, e quindi ci vuole comunque la supervisione umana.
    Alcune grandi case spiegano per filo e per segno come lavorano, altre mantengono come segreto industriale.
    Se ci pensi bene ci sono poche cose peggiori di una suite di test automatizzata (tipo smbstress) che lanci, gira magari per un giorno, ma oggi fallisce.
    E domani no, pur non essendoci stata alcuna modifica al codice, niente del tutto.
    ... c'è da spararsi nei ma..ni, lo dico per esperienza personale
  • Re: Sviluppatore web

    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.
    Quindi se si potenzia e si perfeziona l'hardware a livelli che voi umani neanche immaginate, dovrebbero sparire i flaky ?
    Se ci pensi bene ci sono poche cose peggiori di una suite di test automatizzata (tipo smbstress) che lanci, gira magari per un giorno, ma oggi fallisce.
    E domani no, pur non essendoci stata alcuna modifica al codice, niente del tutto.
    Ma questo è del tutto normale...
    Poniamo il caso in cui io oggi esco fuori e dopo poco tempo mi bagno perchè piove di brutto... allora corro ai ripari... il giorno dopo esco fuori ma mi porto l'ombrello per non bagnarmi, solo che proprio questo giorno non piove più, anzi c'e' un sole che spacca, quindi avermi portato l'ombrello è stato superfluo, però necessario magari per prove future... (ecco che ho corretto un errore di sistema)...

    Insomma vedila così:

    - il tempo meteorologico esterno (è il test che potrebbe produrre un flaky determinato dal fatto se ho con me oppure no un ombrello)
    - io che esco fuori, sono il software principale che deve essere testato.
    - l'ombrello sarebbe la correzione che elimina il bug dal software principale ma solo se dovesse piovere perchè altrimenti senza l'ombrello si produrrebbe un flaky.

    No... forse mi sono leggermente perso... non è proprio cosi...
  • Re: Sviluppatore web

    Anzi un attimo... forse è proprio cosi...

    perchè in effetti il tempo variabile a caso ( ma che di casuale non ha niente in effetti), sarebbe proprio quello che produce un flaky perchè non si conosce a priori... oppure meglio ancora... sarebbe difficilissimo da indovinare...

    cosi come all'interno di un sistema hardware un flaky esce fuori per variabili difficili da capire: carico di lavoro, concorrenza, altri programmi, possessione demoniaca
  • Re: Sviluppatore web

    ramcrack ha scritto:


    Quindi se si potenzia e si perfeziona l'hardware a livelli che voi umani neanche immaginate, dovrebbero sparire i flaky ?
    Certo che no, rimangono e rimarranno
    ...Ma questo è del tutto normale...
    E no, che non è normale, perchè la primissima cosa da controllare è l'ambiente e l'inizializzazione.
    Supponi di voler fare lo sborrone, e lanciare i test dentro una macchina virtuale che ogni volta resetti con uno snapshot.
    Penserai "sticazz.i" ogni volta l'ambiente è perfettamente identico, i test andranno bene, o falliranno, ma in modo deterministico!

    E invece no (non è garantito), perchè la macchina virtuale, magari, in un certo caso andrà in concorrenza per la CPU con il browser della macchina fisica che vuol caricare il forum i programmatori, e proprio in quel caso, per sfiga, un timeout ti scatterà, e il test fallirà.
    O partirà una ricalibrazione termica dell'hard disk e ti rallenterà un cincino il disco fisico, e quindi il disco virtuale, proprio adesso che siamo in agosto.

    Magari lo lanci 1000 volte, e per 999 passerà. Poi la millesima fallirà.
    A quel punto il test è passato o fallito?

    I casi sono di ogni genere, la versione breve è: spesso anche i test vanno testati
    E più "strati" ci sono, maggiore il rischio.
    Nella mia esperienza (che ovviamente non copre il mondo intero) sono aumentati con interfacce grafiche asincrone e soprattutto browser
  • Re: Sviluppatore web

    In maniera molto circoscritta, un esempio banalissimo potrebbe esssere il checksum error quando scrivevamo codice macchina sul Commodore 64, magari scrivevamo 3000 righe di comando con le "Read" e le "Data"... e il checksum error rilevava un errore perchè nella giungla di codici Data c'era magari un numero digitato in maniera errata... difficilissimo poi da trovare, tranne se non si guardava attentamente per ore tutti i singoli codici numerici messi nelle Data...

    Oddio forse questo esempio è più un test che non un flaky... in effetti...

    Sono concetti abbastanza complessi, ma sinceramente non ci vedo tanto di universitario in tali concetti... forse sarebbe bene accennarli, ma niente di più.

    Più che altro sono solo dettati dall'esperienza maturata durante gli anni di programmazione e anche secondo le esigenze aziendali...

    (Scusami ma questo lo avevo scritto prima di leggere la tua ultima risposta), quindi tienine conto quanto tanto...
  • Re: Sviluppatore web

    O partirà una ricalibrazione termica dell'hard disk e ti rallenterà un cincino il disco fisico, e quindi il disco virtuale, proprio adesso che siamo in agosto.

    Magari lo lanci 1000 volte, e per 999 passerà. Poi la millesima fallirà.
    A quel punto il test è passato o fallito?
    Direi che il test è passato a pieni voti, infatti una eventuale calibrazione termica dell'HD che rallenta un cincino l'HD stesso, non dovrebbe influire sui test perchè a priori i precedenti programmatori dovevano prevedere l'evento e con esso sviluppare un software che proteggesse da eventuali errori dovuti allo specifico caso...
  • Re: Sviluppatore web

    Ma tu mi risponderai che è impossibile trovare programmatori cosi perfetti...

    Mi spiace deluderti, ma io sono l'eccezione
  • Re: Sviluppatore web

    ramcrack ha scritto:


    Direi che il test è passato a pieni voti (...)
    Ma tu NON sai perchè è fallito.
    Ti faresti, che so, fare una TAC da una macchina del genere?
  • Re: Sviluppatore web

    ramcrack ha scritto:


    Ma tu mi risponderai che è impossibile trovare programmatori cosi perfetti...

    Mi spiace deluderti, ma io sono l'eccezione
    Vuoi il pippone su decidibilità, semidecidibilità e non decidibilità?
    Non è possibile stabilire se un programma è corretto (per ogni input), questa è una banalità penso del terzo anno di informatica.

    Se fossi uno coi controcazzi potresti tirar fuori un argomento di cardinalità ma sicuramente si aprirebbe una discussione di livello molto più che universitario.
  • Re: Sviluppatore web

    No... ti prego... e quasi ferragosto, fammi andare in ferie rilassato.

    Comunque ora mi è più chiaro l'argomento flaky...

    Solo che detto tra noi, sei un rompi ma di quelli giganti...

    scommetto che non sai perchè gli umani tutte le mattine dopo essersi alzati dal letto, magari per andare al lavoro, si riaggiustano le lenzuola daccapo, personalmente la vedrei quasi come una forma oscura di autolesionismo adolescenziale asincrono...

    perchè spesso mi sono posto anch'io la fatidica domanda:
    " perchè devo aggiustarmi il letto la mattina se poi la sera lo disfo nuovamente per andare a dormire ??? "

    Beh! A questo posso rispondere io con assoluta certezza e per esperienza quasi personale, visto che alcuni miei ex colleghi si comportavano cosi proprio come nell'esempio di cui sopra...

    Risposta:
    " semplicemente perchè se non ti aggiusti il letto ogni mattina, capiterà dopo circa un mese che troverai stampato sulle lenzuola la sacra sindone modificata con la forme delle pieghe delle stesse, secondo come si è dormito durante il periodo transitorio "

    Certo banalmente si potrebbe anche affermare che esiste la variabile doccia associata alla costante pulizia corporea, ma poi l'equazione diventerebbe troppo complessa, quindi mi fermerei solo al primo caso sopra indicato...

    Ps. e fattela una risatina ogni tanto, considerato che con ogni probabilità ultimamente stai passando più tempo sul forum che a lavorare... non starai mica diventando un forumista seriale ???
  • Re: Sviluppatore web

    In qualità di rompi supremo coglierò il consiglio.

    Ps sono abituato a dormire sul pavimento
  • Re: Sviluppatore web

    Ad ottobre con ogni probabilità sarò a Milano per 4/5 giorni...

    Dunque, a parte un paio di appuntamenti importanti cui non posso proprio mancare, e a parte un evento importantissimo che mi terrà impegnato stabilmente credo almeno per tre giorni di fila dal mattino fino al tardo pomeriggio...
    S.S. come diceva il mio meraviglioso professore di matematica... che sta per " Se e solo Se... ti va, ed hai un pò di tempo, ci si può incontrare che ti illumino con un paio delle mie idee di cui ti parlai tempo addietro, magari bevendo una birra... anzi a dire il vero, non sò se dirtele le idee".

    Certo dovranno verificarsi un paio di eventi: allineamento della stella cometa con Aldebaran, e esplosione di una supernova all'interno di un giovane sistema stellare, ma comunque...

    Fammi sapere in PM, ciao
Devi accedere o registrarti per scrivere nel forum
73 risposte