Wykrywanie na żywo błędów JavaScript

Wykrywanie błędów front-end na żywo

Nieustannie testujemy wytworzone oprogramowanie. Testujemy kod back-end, wykonujemy testy automatyczne strony klienckiej przy większych projektach, wykonujemy testy obciążeniowe, testy bezpieczeństwa. Na sam koniec zostają testy interfejsu użytkownika. Popularnym i poważanym w społeczności webdev narzędziem do testów jest BrowserStack, który pokazuje jak powstała aplikacja będzie wyglądała na różnych platformach, jednak czasami to za mało. Wykrywanie błędów jest wyjątkowo żmudną pracą. Potem pomimo ciężkiej pracy i tak przychodzi dzień, gdy klient dzwoni, opisuje dokładnie problem, my sprawdzamy i jedyne co się ciśnie na język to stary żart/bolączka branży IT „u mnie działa„.

Przeważnie w przypadku braku możliwości odtworzenia błędu i potwierdzenia, że w zadanych warunkach błąd nie występuje zgłoszenie zostaje zamknięte. Na domiar złego często klient końcowy nie jest w stanie opisać problemu, tak abyśmy mogli cokolwiek z nim zrobić. W tym momencie – w zależności od klienta – często następuje frustracja, a my chcąc nie mieliśmy możliwości nic zrobić z takim problemem.

Opisana wyżej sytuacja to już przeszłość. W drugiej połowie 2016 roku wprowadziliśmy narzędzie, które na żywo wykrywa i przesyła do nas informacje o błędach JavaScript w przeglądarkach internetowych z całym stacktrace’em przeglądarki. Gdy postanowiliśmy wprowadzić to narzędzie szerzej to rozmowa z jednym z przedstawicieli IT klienta wyglądała tak:

– Od dzisiaj będziemy wiedzieli o wszystkich błędach JS przeglądarki w systemie przygotowanym dla Państwa. Użytkownicy mniej się będą męczyli, my szybciej załatamy ewentualne problemy.
– Panie Piotrze ale przecież i tak nie będzie miał Pan zrzutu z treści błędu, przecież to JavaScript, to strona przeglądarki.
– Będę miał.
– Ale jak?
– Na mailu :-)

Czysty zysk

Łatanie problemów od teraz jest dużo łatwiejsze. Wiemy, kto, gdzie, kiedy i jakie konkretnie miał problemy z przeglądarką. Nie kłamałem – treści błędów dostajemy na maila. Teraz często, nim klient zdąży zgłosić problem to już z naszej strony on został już załatany.

Oszczędności czasu przy rozwiązywaniu problemów są niebagatelne. Skraca się sam czas identyfikacji jak i rozwiązania błędów. Zysk dla nas był tak oczywisty, że w 2016 roku wprowadziliśmy to rozwiązanie od razu we wszystkich naszych projektach jeszcze objętych gwarancją.

Dodatkowe informacje

Przy okazji wprowadzonej innowacji bardzo dużo się dowiadujemy o końcowych użytkownikach tworzonych systemów. Dowiadujemy się, że często na działanie naszych systemów wpływ ma zewnętrzne oprogramowanie, wtyczki do przeglądarek, etc. Ciekawsze przypadki:

Wykrywanie na żywo błędów JavaScript
Okazało się, że antywirus Kasperski lubi ingerować w treść przesyłanych danych JSON pomiędzy przeglądarką a klientem końcowym.
Przeglądarka Maxthon jest całkiem popularna
Dowiedzieliśmy się, że przeglądarka mobilna Maxthon jest całkiem popularna ;)
Tryb prywanty Safari
Okazało się, że mobilne Safari w trybie prywatnym ma sporo ograniczeń jeśli chodzi o przestrzeń lokalną.
… ale nie tylko Mobile Safari ma takie problemy ;-)
Wiemy też, że spyware (jollywallet) zainstalowany w przeglądarkach internetowych klientów może powodować błędy w działaniu systemów.
Wiemy już też, że dinozaury jednak żyją na tym świecie i za nic mają kwestie bezpieczeństwa (Windows XP + Firefox 4) :-)

Wnioski?

Kolejne projekty uruchamiamy już tylko i wyłącznie z tym narzędziem. Stosowanie tego rozwiązania to czysty zysk, mniej frustracji i przyjemniejsza praca.