1000 błędów, jeden arkusz Google i pięć godzin, których nigdy nie odzyskam
Każdy błąd ma swoją historię. Większość zaczyna się od słów: „U mnie działa”.
Testowaliśmy funkcję importu danych dla firmy zajmującej się generowaniem leadów. Funkcja wydawała się prosta. Klikasz przycisk importu, przesyłasz arkusz kalkulacyjny, a system ładuje kontakty. Wszyscy zakładali, że wszystko działa.
To założenie to pułapka.
Testerzy istnieją po to, aby to założenie obalić. „Happy path” (ścieżka sukcesu) zawsze cię okłamuje.
Gdybyśmy użyli czystego pliku Excel, import by przeszedł. Moglibyśmy iść na lunch. Moglibyśmy wypuścić funkcję. Ale klient znalazłby ten błąd w poniedziałek rano na produkcji.
Problemem był arkusz Google.
Prawdziwi użytkownicy nie korzystają z czystych plików Excel. Korzystają z niechlujnych arkuszy Google. Oczekują, że systemy poradzą sobie z ich chaosem.
Kiedy przesłaliśmy dane z arkusza Google, system zawiódł. Zobaczyliśmy ponad 1000 błędów. Ekran wypełnił się komunikatami o błędach. Ten sam przycisk i ten sam typ danych spowodowały całkowity paraliż tylko dlatego, że zmienił się format źródłowy.
Wróciliśmy do Excela, aby przetestować więcej. Wypróbowaliśmy mieszankę poprawnych i niepoprawnych wierszy. System poradził sobie z tym dobrze. Pominął błędne wiersze i poszedł dalej.
Potem spróbowaliśmy chaosu rodem z rzeczywistości. Przesłaliśmy plik masowy z setkami wierszy. Większość była śmieciami. Tylko kilka było poprawnych.
System całkowicie się rozsypał. Logika walidacji zadziałała przy kilku błędnych wierszach, ale padła pod górą wadliwych danych.
Spędziliśmy pięć godzin na szukaniu przyczyny źródłowej. Wpatrywaliśmy się w ekrany, uruchamialiśmy testy ponownie i obwinialiśmy pliki, przeglądarkę oraz kawę.
Te pięć godzin było tanie. Alternatywą byłoby marnowanie popołudnia przez klienta i utrata jego zaufania do naszego produktu. Za błędy w testach płacisz czasem. Za błędy na produkcji płacisz klientami.
Za każdym razem wybiorę te pięć godzin.
Dobry tester nie pyta, czy funkcja działa. Dobry tester pyta, jak ją zepsuć.
Przestań myśleć jak programista. Zacznij myśleć jak te osoby:
- Leniwy użytkownik, który przesyła niewłaściwy format pliku.
- Użytkownik-chaosista z połączonymi komórkami i pustymi wierszami.
- Użytkownik masowy z 4000 niechlujnych rekordów zamiast 10 czystych.
- Rozrabiaka, który robi dokładnie to, czego nie powinien.
Oprogramowanie psuje się na danych wejściowych, których się nie spodziewałeś.
Najbardziej „proste” funkcje są często najbardziej niebezpieczne. Przycisk importu, pole wyszukiwania i formularz kontaktowy wyglądają nieszkodliwie. Tak nie jest.
Jeśli funkcja przechodzi ścieżkę sukcesu, nie idź dalej. Bądź osobą, która pyta: „A co, jeśli prześlę najgorszy możliwy plik?”.
A potem to zrób.
Optional learning community: https://t.me/GyaanSetuAi
