Storie dalla Sala Macchine


Home Page | Commenti | Articoli | Faq | Documenti | Ricerca | Archivio | Storie dalla Sala Macchine | Contribuire | Imposta lingua:en it | Login/Register


Testing, RoboTesting o NoTesting

Testare, che bella parola. In effetti no, non e' bella per niente perche' e' un accrocchio mezzo inglese importato male. Comunque sia, sappiamo tutti di cosa si tratta, perche', bene o male, ci siamo passati o abbiamo madonnato molto sul fatto che non era mai stato fatto.

Quando si parla di testing si parla di "provare" qualche cosa per assicurarsi che funzioni e che funzioni come dovrebbe, non come cappero vuole. Nel caso del software (dato che siamo qui), si tratta di verificare che il software che si vuole usare o si sta sviluppando, faccia quello che deve fare e non faccia cazzate. Il "testing" del software e' in genere una procedura lunga, noiosa e molto complicata. Perche' non basta semplicemente fare quello che ci si aspetta e verificare i risultati (che gia' cosi' puo' richiedere un sacco di tempo),  bisogna (o bisognerebbe) anche verificare che azioni inaspettate da parte dell'utente non comportino strani ed inattesi problemi o provochino strani ed inattesi risultati. Ed ogni volta che c'e' una nuova versione, bisogna ripetere tutti i test dall'inizio per essere sicuri che un problema risolto in questa versione non abbia "rotto" qualche cosa d'altro.

Nell'antichita', cioe' una decina di anni fa, c'era delle gente che veniva specificamente impiegata per fare da "product tester" o "software tester", qualche volta anche chiamati "quality controller" perche' avrebbero dovuto controllare la "qualita'" dei prodotti... cercando di romperli. Il guaio e' che impiegare della gente per fargli rompere i prodotti (e vedere quanti ci vuole perche' li rompano) costa soldi... In molti modi.

Prima di tutto bisogna pagare la gente, che e' gia' una cosa tragica di suo. Poi bisogna provvederli delle cose da rompere e poi bisogna analizzare i risultati, che spesso e volentieri e' difficile e lungo da fare e poi bisogna risolvere i problemi trovati. O decidere se vale la pena di risolverli oppure no. E quindi rifare il prodotto e poi si ricomincia da capo.

Anni ed anni fa, si discuteva dei modi migliori di verificare il software ed in genere il consenso comune era che se vuoi le cose fatte bene, devi acchiappare della gente che il tuo software non lo ha mai visto, perche' solo cosi' sei sicuro che il tizio davanti alla tastiera fara' tutto quello che gli salta in mente e non solo quello che TU pensi che sia possibile fare. Perche' il problema di verificare un software che si conosce e' che si tende a fare le cose "giuste", cioe' ad usarlo come dovrebbe essere usato, mentre un "vero" utente e' capace di essere molto creativo e scova delle cose che i programmatori in genere guardano con tanto d'occhi balbettando "comecazzocieriuscito" o varianti sul tema.

Poi... Sempre una decina di anni fa, alla ricerca del risparmio all'osso, qualcuno e' saltato fuori con la pensata: i computer sono veloci, perche' non facciamo fare le prove a loro? Che e' una bella idea... solo che i computer sono veloci e STUPIDI. L'unica cosa che possono fare e' eseguire dei comandi preimpostati. Certo, si puo' scrivere un bel programma che "simuli" un utente che interagisce con il vostro programma ed vedere i risultati, ma questo comporta 2 problemi: primo problema, bisogna assicurarsi che il programma di "test" funzioni, cioe' bisogna hemmm... testare il programma di test. Secondo, ogni volta che il programma da testare cambia, bisogna rifare o modificare il programma di test. E testarlo di nuovo. E poi c'e' l'altro problema implicito nel testing computerizzato: che fa solo quello che lo abbiamo programmato a fare. Non si inventa cose strane, non gli viene il ghiribizzo di "vediamo che succede se scrivo questo-e-quello in quel campo" o cose cosi'.

E con questo, parliamo di $bingobongo. Una societa' che... Faceva diverse cose per le quali avevano sviluppato un paio di uebapplicascion ed una "app" per cellofono. E come da programma, ricevevano un sacco di lamentele perche' le loro uebapplicascion erano piene di buchi.

Una bella mattina, tanto per dirne una, decisero di domandare perche' continuavano a ricevere segnalazioni di gente che non riceveva la loro "newsletter". E dopo un rapido controllo ho trovato un paio di migliaia di indirizzi di mail '@gmial.com' e magari altrettanti '@gmail.co'. Risposta: perche' voi non controllate un cazzo quando verificate gli indirizzi di posta evidentemente. La loro risposta: il loro sistema di controllo automatico verifica che l'indirizzo di posta immesso sia un valido indirizzo di posta. Si', valido, non che funzioni pero'.
Poi un'altra volta avevano dei problemi con un qualche accrocchio che calcolava la distribuzione dei loro clienti per area geografica. E dopo un altro rapido controllo abbiamo trovato una marea di indirizzi sbagliati. E cosi' via.

Il meglio fu quando, dopo un rilascio piuttosto scombussolato, perche' dopo aver fatto il rilascio hanno scoperto di aver lasciato qualche pezzo di codice sparso percui tutti potevano fare login usando la password di default, perche' ovviamente il loro sistema di test automatico non usa un 'vero' utente per fare i test ma usa un utente 'speciale' con una password di default, e nel loro codice hanno uno 'switch' per attivare o disattivare il test. Il che mi ha fatto anche pensare che forse il loro sistema di testing e' bacato dall'inizio. Comunque sia, dopo tutto il trambusto per rimettere in piedi il sito (rollback? nopes), si sono ritrovati con una delle loro applicazioni che zoppicava e sputava errori a iosa ad intervalli irregolari. Dopo un po' di controlli e' risultato che uno dei campi nel database era configurato come "numerico" ma apparentemente i dati contenevano valori ALFAnumerici.

Alla domanda "come cappero avete fatto a farvelo scappare", la risposta e' stata che tale valore viene fornito da un ente esterno, percui il loro sistema di test genera un numero casuale. Un NUMERO casuale, non un valore alfanumerico. E perche' un numero? Perche' nella versione precedente, questo ente esterno forniva solo numeri, ma pare che anche loro abbiano cambiato qualche cosa nel loro software percui adesso quel numero non e' piu' un numero.

E poi ci fu il grande casotto. Quando risulto' che parecchi account di loro clienti vennero "hackati". E si scopri' che per fare login bastava inviare un ID numerico come POST al sito. E dato che tali ID sono consequenziali, non ci vuole molto ad imbroccarne uno "buono" ed il sito pensa che voi siate loggati come tale utente. E se vogliamo farla bella, l'ID zero e' quello dell'amministratore del sito.

Ed ovviamente quello il loro "robot" non lo ha scoperto perche' il loro robot non e' pensato per... pensare.

Ma non temete! $bingobongo ha fatto la pensata, ed hanno deciso che il miglior modo per fare i test sulle loro applicazioni e' di (rullo di tamburi), dare accesso al loro sistema di test a "selezionati individui" che potranno verificare le cose ed eventualmente inviare note di bug e problemi incontrati. In sostanza, quello che vogliono fare e' usare i loro utenti per fare il testing. Ma chiamandolo qualche cosa di figo come "early access" o "Xperimental" (che suona fico perche' c'e' la 'X' davanti).

Oh, non e' che Microsoft fa di meglio in questi giorni eh...

Davide
22/11/2018 16:05

Precedente

I commenti sono aggiunti quando e soprattutto se ho il tempo di guardarli e dopo aver eliminato le cagate, spam, tentativi di phishing et similia. Quindi non trattenete il respiro.

14 messaggi this document does not accept new posts

Anonymous coward

Di Anonymous coward postato il 17/12/2018 09:18

Perchè pagare 100 tester per avere un prodotto migliore quando basta fare un banner più colorato per trovare clienti più s7upidi?

-- Anonymous coward

Guido

Di Guido postato il 17/12/2018 10:06

che anche loro abbiano cambiato qualche cosa nel loro software percui adesso quel numero non e' piu' un numero.

Il che mi fa pensare che il campo su db non sia Number...

Comunque la parte peggiore di sviluppare sw (e testarlo) e' quando non sai cosa devi fare perche' il cliente non sa cosa vuole quindi realizzi qualcosa che a te sembra che risponda ai requisiti del cliente, lo testi TU (perche' il gruppo di test mica c'e') e poi scopri che doveva fare tutt'altro e che viene usato dagli operatori in un'altra maniera ancora.

-- who uses Debian learns Debian but who uses Slackware learns Linux

Messer Franz

Di Messer Franz postato il 17/12/2018 10:16

Ti linko due video youtube di due youtuber (Synergo e Redez, canale QDSS) che parlano (nel 2015 e 2016) di come vanno beniiiiissssimo le cose nel mondo del gaming dal punto di vista del debugging e testing oltrechè presentazione al pubblico.

Dal punto di vista di programmatore quale io sono le cose peggiorano sempre di più...e se se ne accorge anche l'utenza (e quindi non gente che nota cattive ottimizzazioni o simili, ma che al massimo nota che il gioco non va o lagga) significa che siamo alla frutta...

https://www.youtube.com/watch?v=3Th6sxngvFM

https://www.youtube.com/watch?v=N1FRUF6Xjrc

PS parlano di due giochi, Batman Arkham Knight (2015) e No Man's Sky (2016), ma il concetto è ormai per quasi tutti...

PPS Prima che qualcuno obbietti: QUASI tutti, lo so che ce ne sono di belli che addirittura funzionano... ma ammetterete che ormai è un'eccezione, non la regola...

-- Messer Franz

Davide Bianchi

@ Messer Franz Di Davide Bianchi postato il 17/12/2018 14:45

che parlano (nel 2015 e 2016) di come vanno beniiiiissssimo le cose nel mondo del gaming dal punto di vista del debugging e testing oltrechè presentazione al pubblico.

Koff Koff... argh... nomansky... Koff... fallout76... argh... masseffectandromeda.... kofff...

-- Davide Bianchi

Emi_ska

Di Emi_ska postato il 17/12/2018 13:47

Anche noi e' piu' di un anno e mezzo che facciamo debug aggratise per un applicativo la cui licenza mi pare costi piu' di 300.000 euro....

Ciao e buon Natale!!

-- Emi_ska

Andrea Del Priore

Di Andrea Del Priore postato il 18/12/2018 00:55

Mi ricorda di un cliente di qualche anno fa:

Avevano un software che generava analisi statistiche molto basilari, prodotto in-house da un matematico che era anche il BigBoss.

BigBoss che ben poco si intendeva di programmazione(il coso era scritto usando un qualche accrocchio con le figure da trascinare su schermo per manipolare il flusso dei dati, ma non ricordo come si chiamasse) aveva una fiducia pari a zero sul fatto che la macchina facesse quello che era stata programmata per fare.

E allora aveva scritto un "layer" che effettuava test con una serie di valori noti all'inizio di ogni elaborazione e verificava i risultati da lui calcolati a manella (ci teneva tanto a mostrarmi il malloppo di fogli con i calcoli).

Poi venne aggiunto un test del test, verificando i dati dei file del test con una lista nota hardcoded.

Poi un test del test del test, che con un ALTRO file di test contenente una serie di sequenze di test alcune uguali a quelle del vero test e altre no, per verificare che la procedura del secondo test(richiamata in un raro guizzo di importazione, l'unico di tutto il software) fosse in grado di riconoscere correttamente il vero file, con i risultati previsti presenti in un ULTERIORE file di configurazione.



Io venni chiamato quando il BigBoss, durante un giro di meeting, si rese conto che esisteva un algoritmo diverso che permetteva l'analisi statistica nel suo ristretto business e non aveva idea di come andare a modificare il programma originale, avendolo compilato anni addietro e con solo i "test" salvati nella merdosissima interfaccia grafica.



Ovviamente alla fine avrei dovuto scrivere anche tutti i test "concentrici" come voleva lui.



Ero piu giovane e scemo, ma visto il soggetto per quel mese ho stretto un po la cinghia e ho declinato l'offerta.

-- Andrea Del Priore

Anonymous coward

Di Anonymous coward postato il 18/12/2018 11:46

Davide Bianchi a ragioe scrisse:

> Testare, che bella parola. In effetti no, non e' bella per niente perche' e'
> un accrocchio mezzo i nglese importato male.
> Quando si parla di testing si parla di "provare" qualche cosa per assicurarsi
> che funzioni e che funzioni come dovrebbe,
> ...


Sono d'accordo che "testare" è una parolaccia da non usare mai. Ma perchè non
togli le virgolette ed usi la parola giusta a beneficio della proprietà di
linguaggio?

Collaudare, si dice collaudare.
-- Anonymous coward

Davide Bianchi

@ Anonymous coward Di Davide Bianchi postato il 18/12/2018 13:54

Collaudare, si dice collaudare.

Ma io lo direi anche, ma chi cappero lo dice oggi, riferito al software?

-- Davide Bianchi

Luca Ballarati

Di Luca Ballarati postato il 18/12/2018 15:49

Credevo che i computer venissero usati solo per i "Garbage data" test, cioé quelli in cui al programma vengono inviati input casuali e insensati. 

-- Luca Ballarati

Luca Bertoncello

Di Luca Bertoncello postato il 19/12/2018 08:01

In effetti no, non e' bella per niente perche' e' un accrocchio mezzo inglese importato male

Direi proprio di no... Test deriva dal latino testum, quindi non vedo grossi problemi ad usare in italiano una parola derivata dal latino (come la stragrande maggioranza delle parole italiane)...

 

Ciao

Luca

-- Luca Bertoncello

Guido

@ Luca Bertoncello Di Guido postato il 28/12/2018 14:03

Direi proprio di no... Test deriva dal latino testum, quindi non vedo grossi problemi ad usare in italiano una parola derivata dal latino (come la stragrande maggioranza delle parole italiane)...

Non e' l'abbreviazione di "testamentum"? :P (scherzo eh!)

-- who uses Debian learns Debian but who uses Slackware learns Linux

Antonio Pennino

Di Antonio Pennino postato il 27/12/2018 12:30

bellissima l' idea (citata anche in una altra storia) di usare il gatto della segretaria per trovare i bachi, il mio Silvestro purtroppo sulla tastiera preferisce sdraiarsi e basta.

Ho riletto tutte le tue storie e ti ringrazio, peccato solo che manchi quella dove molli rumorosamente $NetworkGestapo (perche' con un tipo come P il distacco non puo' che essere "brusco")

Ti segnalo due anomalie

1) la storia "gli anni perduti" dovrebbe essere la prima e non la seconda della nuova serie

2) e' errato " Le storie del 2017 (che sono anche le ultime) ", e' un residuo dell' ultimo anno della serie "vecchia" (ma sempre appassionante)

Poi ci hai ripensato circa lo scrivere un libro? SI, ho latto la FAQ, ma ormai un libro puo' essere quasi autofinanziato, nel caso io sono interessato a contribuire

-- Antonio Pennino

Anonymous coward

Di Anonymous coward postato il 24/02/2019 18:27

Scusate l?OT ma non resisto...

Davide, se il gatto della foto è uno dei tuoi complimenti, veramente bello ;\)

 

 

Oops, dimenticavo, complimenti sinceri per le storie, sempre gradevolissime da leggere

-- Anonymous coward

Davide Bianchi

@ Anonymous coward Di Davide Bianchi postato il 04/03/2019 09:03

Davide, se il gatto della foto è uno dei tuoi complimenti, veramente bello ;\)

No, se il mio salta sulla tastiera la ricopre completamente.

-- Davide Bianchi

14 messaggi this document does not accept new posts

Precedente


Il presente sito e' frutto del sudore della mia fronte (e delle mie dita), se siete interessati a ripubblicare uno degli articoli, documenti o qualunque altra cosa presente in questo sito per cortesia datemene comunicazione (o all'autore dell'articolo se non sono io), cosi' il giorno che faccio delle aggiunte potro' avvisarvi e magari mandarvi il testo aggiornato.


Questo sito era composto con VIM, ora e' composto con VIM ed il famosissimo CMS FdT.

Questo sito non e' ottimizzato per la visione con nessun browser particolare, ne' richiede l'uso di font particolari o risoluzioni speciali. Siete liberi di vederlo come vi pare e piace, o come disse qualcuno: "Finalmente uno dei POCHI siti che ancora funzionano con IE5 dentro Windows 3.1".

Web Interoperability Pleadge Support This Project
Powered By Gojira