Historia pytania: Trudne do uchwycenia, przelotne błędy od dawna są przekleństwem dla testerów: pojawiają się nie zawsze i często są niewłaściwie udokumentowane, co utrudnia ich reprodukcję i analizę, a tym samym - naprawę.
Problem:
Głównym problemem z błędami intermittent jest niemożność stworzenia jednoznacznego scenariusza reprodukcji. Często przyczyną mogą być niestabilne środowiska, czas reakcji, błędy synchronizacji danych lub kolizje podczas pracy wielu użytkowników. Programiście trudno jest naprawić coś, czego nie można stabilnie uchwycić. Jeżeli tester nie dokumentuje towarzyszących warunków, błędy pozostają nierozwiązane.
Rozwiązanie:
Kluczowe cechy:
Czy można zamknąć błąd jako "nieskatalogowany", jeśli inżynier wsparcia nie był w stanie go reprodukować?
Nie. Jeśli istnieje podejrzenie o błąd, lepiej pozostawić zgłoszenie otwarte z adnotacją "reproducibility: low" i aktualizować je w miarę otrzymywania nowych danych.
Czy zawsze problemem jest kod, jeśli błąd pojawia się sporadycznie?
Nie. Możliwe są błędy w sieci, konfiguracji środowiska, przestarzałej pamięci podręcznej przeglądarki, specyfice działania zewnętrznych usług lub peryferiów.
Czy warto obniżać priorytet błędów intermittent, jeśli nie można ich reprodukować za każdym razem?
Nie zawsze. Konsekwencje mogą być czasami krytyczne dla użytkownika (np. podwójne pobranie pieniędzy), dlatego priorytetyzacja powinna uwzględniać ryzyko biznesowe.
Tester wykrył błąd odblokowania profilu, ale błąd pojawiał się nie więcej niż w 1 na 10 prób. Dokumentacja ograniczyła się do zrzutu ekranu błędu — błąd został zamknięty, ponieważ programista nie mógł go reprodukować.
Zalety:
Wady:
Tester dokładnie zanotował wszystkie warunki: przeglądarka, pora dnia, sposób logowania, dołączał krótkie filmy i logi, utrzymywał regularny kontakt z programistami do uzyskania stabilnego scenariusza.
Zalety:
Wady: