Jak radzić sobie z błędem, który sam się naprawił? [Zamknięte]


16

Jestem programistą aplikacji internetowych dla systemu wewnętrznego. Użytkownik zgłasza błąd.

Błąd polegał na tym, że niektóre słowa nie mogły zostać wyświetlone. Raport zawiera zrzut ekranu, który wyraźnie pokazuje błąd. Ale raport ma prawie miesiąc, a błędu nie można już odtworzyć w naszym środowisku produkcyjnym.

Jak mam odpowiedzieć klientowi i użytkownikowi?



1
Zastanów się, jak to zrobić.
Wyatt Barnett,

2
Ile czasu możesz sobie pozwolić na to dochodzenie? Jak krytyczny był błąd i jego negatywne skutki? Jeśli odpowiedzi są bardzo małe i nieistotne, powiedziałbym, że oznaczenie tego na stałe notatką o okolicznościach, w których tak naprawdę nie jest naprawione, i czekanie na jego powrót jest całkowicie akceptowalnym wykorzystaniem zasobów Twojej firmy.
Newtopian,

2
To po prostu wymaga dość standardowej odpowiedzi: „ Drogi [użytkowniku], Wydaje się, że problem z X, który zgłosiłeś na Yth, został rozwiązany w najnowszej wersji Z. Proszę oznaczyć problem jako rozwiązany, jeśli rzeczywiście tak jest Jeśli nie, prześlij mi to ze szczegółami, w jaki sposób się z tym spotkałeś.
Lilienthal,

1
@Lilienthal To, że błędu nie można odtworzyć, nie oznacza, że ​​został on rozwiązany. Nawet nie wiesz, że w ostatnim miesiącu pojawiła się nowa wersja.
paparazzo

Odpowiedzi:


32

Przywróć środowisko programistyczne do wersji, w której wykryto błąd, i sprawdź, czy błąd istnieje.

Jeśli tak, możesz zbadać błąd i upewnić się, że bieżąca wersja go nie ma. Następnie zamknij raport o błędzie z komentarzem, że niepowiązana zmiana go naprawiła. W razie potrzeby dodaj test regresji.

Jeśli nie możesz odtworzyć błędu w tej wersji, przydadzą się strategie przedstawione w wielu innych pytaniach tutaj (Dziękujemy Thomas za wstępną listę):


2
Z mojego doświadczenia wynika, że ​​większość zespołów po prostu zaznacza opcję „nie można odtworzyć” w systemie biletowym i zamyka ją. Testowanie kodu „wtedy” i „teraz”, aby upewnić się, że problem występuje i nie jest już lepszym rozwiązaniem. Ale jest to również bardziej czasochłonne niż powiedzenie „nie można odtworzyć” i zamknięcie go, więc może nie być opcją dla każdego błędu.
Paul J Abernathy,

5
Zależy od tego, jak poważny jest błąd. Jeśli jest to tylko głupek układu, to rzeczywiście nie można powtórzyć stempla i zrobić to, ale jeśli może być bardziej złowrogi, warto poświęcić kilka godzin na test regresji.
maniak zapadkowy

2
@ratchetfreak Ewentualnie zależy to od tego, jak poważny jest ten konkretny klient. Jeśli samodzielnie finansują twoje wypłaty, być może warto je uspokoić ;-)
Cort Ammon - Przywróć Monikę

7
Problemy, które same znikają, same wracają.
Pete Becker,

1
To wszystko kwestia obciążenia pracą. Jeśli masz jeden błąd, który był odtwarzalny miesiąc temu i już go nie ma, oraz inny błąd, który jest odtwarzalny teraz , to naprawisz ten, który jest odtwarzalny teraz jako pierwszy. Jeśli kiedykolwiek znajdziesz się w stanie, w którym jesteś całkowicie znudzony, możesz to zbadać. A kiedy problem sam wróci, to oczywiście jest to powtarzalny błąd i zaczynasz go naprawiać :-)
gnasher729

2

Zakładam, że naprawdę zrobiłeś wszystko, co możliwe, aby odtworzyć błąd, ale nie możesz.

W takim przypadku często najlepiej jest dodać kod w obszarze aplikacji, który nie zarejestrował wykonywanej pracy, aby mieć nadzieję, że będziesz mieć więcej danych do pracy, jeśli to się powtórzy. Zastanów się, jakie informacje musisz mieć, których obecnie nie masz. Na przykład może zdarza się to tylko wtedy, gdy wysyłany jest określony zestaw parametrów wejściowych, więc zapisujesz je przy każdym uruchomieniu procesu. Skontaktuj się z szefem, ale zanim to zrobisz, w zależności od wagi błędu i częstotliwości jego występowania, może on nie chcieć poświęcać czasu na to.

Następnie udajesz się do osoby, która zgłosiła błąd (możesz to zrobić w aplikacji do śledzenia błędów, jeśli go masz, nie musisz iść osobiście) i powiedzieć, że nie udało się odtworzyć błędu, ale dodałeś kilka dodatkowych logowanie, aby uzyskać więcej informacji na temat tego, co robi proces na wypadek ponownego wystąpienia błędu. Następnie zamknij błąd.

Jeśli nie możesz wykonać dodatkowego logowania. po prostu zgłoś, że błąd nie był odtwarzalny i że jeśli ponownie go napotka, będą to informacje potrzebne do jego odtworzenia i powiedzenia im, czego potrzebujesz. Często prosimy ich, aby powiedzieli nam dokładnie, jakie parametry wejściowe wprowadzali, gdy otrzymali błąd. Sam zrzut ekranu z błędem pomaga, ale dokładniejsza znajomość kroków, które podjęli i jakich informacji próbowali użyć w momencie wystąpienia błędu. Zasadniczo więc nakładasz na nich ciężar, aby uzyskać więcej informacji, gdy zgłaszają błąd, jeśli wystąpi ponownie.

W swoim narzędziu do śledzenia błędów wyjaśnij, jakie kroki próbowałeś, aby jeśli błąd wystąpił ponownie, osoba zajmująca się nim będzie miała doświadczenie w tym, co zostało zrobione wcześniej.


1

Najgorsze są torby niepowtarzalne! W międzyczasie mógł zostać naprawiony lub może nadal tam być, ale jest sporadyczny lub etapy odtwarzania są niewystarczająco określone. Musisz osądzić, jak wysokie jest ryzyko błędu i jak bardzo rozwiniesz się podczas jego badania. Czy tworzysz internetowy menedżer receptur lub oprogramowanie do sterowania rakietami nuklearnymi?

Jeśli jest to błąd o niskim wpływie i wiesz, że dokonano zmian, które mogły spowodować nieświadomie naprawienie błędu, dopuszczalne jest zamknięcie błędu z informacją, że nie jest on powtarzalny i zakładasz, że został naprawiony .

Jeśli jesteś bardziej zaniepokojony, możesz w pierwszej kolejności sformułować teorie o przyczynach błędu i przejrzeć dziennik zmian i historię źródeł, aby sprawdzić, czy można zauważyć, gdzie został naprawiony.

W przypadku poważniejszego błędu będziesz musiał cofnąć źródło do momentu ostatniego wydania, a następnie spróbować odtworzyć. Jeśli powielasz się pomyślnie, możesz napisać testy, aby upewnić się, że zostanie to naprawione w późniejszych zatwierdzeniach.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.