FeedMender/Come lo sappiamo
Le prove
Come vengono dimostrati i controlli
Un controllo scritto, documentato e fatto pagare, ma che in realtà non scatta mai, è il difetto che questo progetto ha speso più energie a eliminare. Perciò ogni controllo deve dimostrare di poter scattare su un file reale prima che gli sia permesso di contare, e il conteggio stesso è letto dal codice invece di essere digitato.
Il numero non è digitato
Ci sono 225 controlli distinti. Quella cifra non è scritta in questa pagina: è letta dal sorgente al momento della build, dallo stesso registro a cui si attiene la suite di test. Un conteggio digitato a mano è un'affermazione che nessuno riverifica, e ogni audit interno di questo progetto ne ha trovato uno diventato obsoleto. Perciò il numero nell'elenco completo dei controlli è generato da uno script che legge il codice, e se il codice e il numero fossero mai in disaccordo, a muoversi sarebbe il numero, non il codice.
Un controllo conta solo quando scatta su un file reale
Ogni controllo è registrato con il percorso che lo dimostra. La maggior parte viene dimostrata facendo passare un file reale per l'intera pipeline e vedendo il risultato uscire dall'altra parte; alcuni richiedono un input costruito che una singola cella non può contenere, un archivio malformato, una risposta di rete o una chiamata a un modello. La distinzione è imposta, non decorativa. Dimostrare che una funzione funziona chiamandola direttamente dice che la funzione funziona; non dice nulla sul fatto che il prodotto la raggiunga mai. La suite rifiuta di accettare quel tipo di prova per un controllo che afferma di uscire da un'analisi reale.
Lo stesso registro intercetta i due cedimenti che lasciano accumulare controlli morti: un codice che il sorgente può emettere ma che nessuno ha registrato, e un codice registrato che il sorgente non emette più. Ognuno dei due fa fallire la suite. Due controlli sono contrassegnati come volutamente irraggiungibili, tenuti come protezioni contro un caricamento difettoso che manda in crash l'analisi, e ciascuno porta una motivazione scritta della sua presenza. A niente è permesso restare nello stato "non può scattare" con un'alzata di spalle.
Cosa significa la cifra di recall, e cosa no
Sui feed sintetici che costruiamo per i test, il recall è del 100 percento su tre formati, xlsx, csv e xml, con zero falsi positivi su un gruppo di controllo pulito. Il nostro catalogo dimostrativo contiene 55 tipi di difetto distinti e ognuno viene rilevato.
Ecco il confine onesto di quel numero. I difetti in quei feed li abbiamo iniettati noi stessi, quindi la cifra misura che lo scanner intercetta ciò che abbiamo pensato di piantare. Non misura che lo scanner intercetti tutto ciò che un catalogo reale contiene, e il recall sui feed reali dei commercianti è sinceramente sconosciuto finché non vengono analizzati feed reali di commercianti. Preferiamo dirtelo, piuttosto che arrotondare per eccesso. L'analisi gratuita è il modo onesto di scoprire cosa produce un file reale, ed è in parte per questo che è gratuita.
I falsi positivi che abbiamo dovuto correggere
La parte più difficile dell'essere utili è avere ragione quando un valore è tecnicamente presente ma privo di significato. Un passaggio di generazione su uno dei nostri feed di test una volta ha proposto il colore "Blue" per un televisore, perché la colonna del colore riportava Blue su gran parte del catalogo. Il valore era davvero nei dati del commerciante, ed era comunque sbagliato. A fermarlo sono stati un filtro di pertinenza e una verifica di ogni valore proposto, parola per parola, rispetto alla riga di origine, entrambi scritti dopo aver visto accadere l'errore.
Lo stesso lavoro ne ha fatti emergere altri che vale la pena mettere agli atti, perché sono il tipo di errore che erode la fiducia in silenzio: un indizio per un'etichetta energetica UE che trovava corrispondenza dentro una parola composta olandese del tutto estranea, e una riscrittura rifiutata per una differenza di flessione di due caratteri, giusta per l'inglese e sbagliata per una lingua che costruisce le parole unendole. Ciascuno di quei casi ha ora il proprio test di regressione, così lo stesso errore non può tornare inosservato.
Niente di tutto questo è la pretesa di aver finito. È la pretesa che i controlli esistenti possano dimostrare di scattare, che il conteggio sia onesto e che siamo chiari sulla differenza tra testato e dimostrato sul campo. Vedi cosa un file non può dirci per l'altra metà di quell'onestà.