FeedMender/Skąd to wiemy
Dowody
Jak udowadniamy, że kontrole działają
Kontrola, która została napisana, udokumentowana i wliczona w cenę, ale nigdy faktycznie nie zadziała, to wada, na której wyplenienie ten projekt poświęcił najwięcej wysiłku. Dlatego każda kontrola musi wykazać, że potrafi zadziałać na prawdziwym pliku, zanim wolno ją policzyć, a sama liczba jest odczytywana z kodu, a nie wpisywana ręcznie.
Liczba nie jest wpisywana ręcznie
Istnieje 225 odrębnych kontroli. Ta liczba nie jest wpisana w tę stronę: jest odczytywana ze źródeł podczas budowania strony, z tego samego rejestru, którego trzyma się zestaw testów. Ręcznie wpisana liczba to twierdzenie, którego nikt ponownie nie sprawdza, a każdy wewnętrzny audyt tego projektu znalazł taką, która zdążyła się zdezaktualizować. Dlatego liczba na pełnej liście kontroli jest generowana przez skrypt, który czyta kod, a gdyby kod i liczba kiedykolwiek się rozjechały, zmieniłaby się liczba, nie kod.
Kontrola liczy się dopiero wtedy, gdy zadziała na prawdziwym pliku
Każda kontrola jest zarejestrowana wraz ze ścieżką, która jej dowodzi. Większości dowodzi się, przepuszczając prawdziwy plik przez cały potok i patrząc, jak wynik wychodzi na jego drugim końcu; kilka wymaga skonstruowanego wejścia, którego pojedyncza komórka nie jest w stanie przenieść: uszkodzonego archiwum, odpowiedzi sieciowej albo wywołania modelu. To rozróżnienie jest egzekwowane, nie dekoracyjne. Udowodnienie, że funkcja działa, przez bezpośrednie jej wywołanie mówi tylko tyle, że funkcja działa; nie mówi nic o tym, czy produkt w ogóle do niej dociera. Zestaw testów odmawia przyjęcia takiego dowodu dla kontroli, która twierdzi, że jej wynik pochodzi z prawdziwej analizy.
Ten sam rejestr wychwytuje dwie usterki, przez które gromadzą się martwe kontrole: kod, który źródło może wyemitować, a którego nikt nie zarejestrował, oraz zarejestrowany kod, którego źródło już nie emituje. Każda z nich oblewa zestaw testów. Dwie kontrole są oznaczone jako celowo nieosiągalne, utrzymywane jako zabezpieczenia na wypadek, gdyby wadliwy przesłany plik miał wywrócić analizę, i każda z nich ma zapisany powód swojego istnienia. Nic nie może tkwić w stanie "nie może zadziałać" na zasadzie wzruszenia ramionami.
Co oznacza wskaźnik recall, a czego nie oznacza
Na syntetycznych feedach, które budujemy do testów, recall wynosi 100 procent w trzech formatach: xlsx, csv i xml, przy zerze fałszywych alarmów na czystej grupie kontrolnej. Nasz katalog demonstracyjny zawiera 55 odrębnych typów wad i każda z nich jest wykrywana.
A oto uczciwa granica tego wyniku. Wady w tych feedach wstrzyknęliśmy sami, więc liczba mierzy to, że skaner wychwytuje to, co przyszło nam do głowy podłożyć. Nie mierzy tego, czy skaner wychwytuje wszystko, co zawiera prawdziwy katalog, a recall na prawdziwych feedach sprzedawców pozostaje po prostu nieznany, dopóki prawdziwe feedy sprzedawców nie zostaną przeanalizowane. Wolimy Ci to powiedzieć, niż zaokrąglić w górę. Bezpłatna analiza to uczciwy sposób, by przekonać się, co daje prawdziwy plik, i po części właśnie dlatego jest bezpłatna.
Fałszywe alarmy, które musieliśmy naprawić
Najtrudniejsza część bycia użytecznym to mieć rację wtedy, gdy wartość technicznie istnieje, ale nic nie znaczy. Krok generowania na jednym z naszych feedów testowych zaproponował kiedyś kolor "Blue" dla telewizora, bo kolumna koloru w większości katalogu zawierała Blue. Ta wartość naprawdę była w danych sprzedawcy i mimo to była błędna. Zatrzymały ją filtr trafności i sprawdzanie każdej proponowanej wartości słowo po słowie względem wiersza źródłowego, oba napisane po tym, jak zobaczyliśmy tę usterkę na własne oczy.
Ta sama praca ujawniła inne przypadki warte odnotowania, bo to rodzaj błędu, który po cichu podkopuje zaufanie: podpowiedź dotycząca unijnej etykiety energetycznej, która dopasowała się wewnątrz niepowiązanego niderlandzkiego wyrazu złożonego, oraz przeredagowanie odrzucone z powodu dwuznakowej różnicy fleksyjnej, słusznej dla angielskiego, a błędnej dla języka, który buduje wyrazy przez ich łączenie. Każdy z tych przypadków ma teraz własny test regresji, więc ten sam błąd nie może wrócić niezauważony.
Nic z tego nie jest twierdzeniem, że praca jest skończona. Jest to twierdzenie, że dla istniejących kontroli da się wykazać, że działają, że liczba jest uczciwa i że jasno rozróżniamy między tym, co przetestowane, a tym, co sprawdzone w praktyce. Drugą połowę tej uczciwości znajdziesz na stronie czego plik nie może nam powiedzieć.