Wie gehe ich mit einem Fehler um, der sich selbst behoben zu haben scheint? [geschlossen]

16

Ich bin ein Webanwendungsentwickler für ein internes System. Ein Benutzer meldet, dass ein Fehler vorliegt.

Der Fehler war, dass einige Wörter nicht angezeigt werden konnten. Der Bericht enthält eine Bildschirmkopie, die den Fehler deutlich zeigt. Der Bericht ist jedoch fast einen Monat alt und der Fehler kann in unserer Produktionsumgebung nicht mehr reproduziert werden.

Wie soll ich dem Kunden und dem Benutzer antworten?

Ben Cheng
quelle
1
Finde heraus, wie du es wiederholbar machst.
Wyatt Barnett
2
Wie viel Zeit können Sie sich für diese Untersuchung leisten? Wie kritisch war der Fehler und seine negativen Auswirkungen? Wenn die Antworten sehr gering und vernachlässigbar sind, würde ich sagen, dass das Markieren mit einem Vermerk der Umstände, unter denen sie nicht wirklich behoben wurden, und das Warten auf ihre Wiederkehr eine vollkommen akzeptable Verwendung der Ressourcen Ihres Unternehmens darstellt.
Newtopian
2
Dies erfordert nur eine ziemlich standardmäßige Antwort auf das Boilerplate: " Sehr geehrter [Benutzer], das Problem mit X, das Sie am Y. gemeldet haben, scheint mit der neuesten Version von Z behoben worden zu sein. Bitte markieren Sie das Problem als behoben, wenn dies tatsächlich der Fall ist Wenn nicht, senden Sie mir diese bitte mit Einzelheiten darüber zurück, wie Sie auf sie gestoßen sind. "
Lilienthal,
1
@Lilienthal Nur weil ein Fehler nicht reproduziert werden kann, heißt das nicht, dass er behoben wurde. Sie wissen nicht einmal, dass es im letzten Monat sogar eine Neuerscheinung gegeben hat.
Paparazzo

Antworten:

32

Stellen Sie in Ihrer Entwicklungsumgebung die Version wieder her, in der der Fehler festgestellt wurde, und stellen Sie sicher, dass der Fehler vorhanden ist.

Wenn es dort ist, können Sie den Fehler untersuchen und sicherstellen, dass die aktuelle Version es nicht hat. Schließen Sie dann den Fehlerbericht mit dem Kommentar, dass eine nicht verwandte Änderung den Fehler behoben hat. Fügen Sie bei Bedarf einen Regressionstest hinzu.

Wenn Sie den Fehler in dieser Version nicht reproduzieren können, sind die in vielen anderen Fragen beschriebenen Strategien hilfreich (Danke Thomas für die erste Liste):

Ratschenfreak
quelle
2
Nach meiner Erfahrung aktivieren die meisten Teams einfach die Option "Reproduzieren nicht möglich" im Ticketsystem und schließen sie. Das Testen des "Damals" - und "Jetzt" -Codes, um sicherzustellen, dass das Problem vorhanden war und nicht länger besteht, scheint eine bessere Lösung zu sein. Es ist jedoch auch zeitaufwändiger, als "nicht reproduzierbar" zu sagen und es zu schließen, sodass es möglicherweise nicht für jeden Fehler eine Option ist.
Paul J Abernathy
5
Hängt davon ab, wie ernst der Fehler ist. Wenn es sich nur um einen Layout-Fehler handelt, kann es sich in der Tat nicht lohnen, einen Repro-Stempel zu erstellen. Wenn es jedoch unheimlicher sein könnte, dann können sich ein paar Stunden für einen Regressionstest lohnen.
Ratschenfreak
2
@ratchetfreak Alternativ hängt es davon ab, wie ernst dieser bestimmte Kunde ist. Wenn sie Ihre Gehaltsschecks im Alleingang finanzieren, lohnt es sich vielleicht, sie zu belohnen ;-)
Cort Ammon - Setzen Sie Monica
7
Probleme, die von selbst weggehen, kommen von selbst zurück.
Pete Becker
1
Es ist alles eine Frage der Arbeitsbelastung. Wenn Sie einen Fehler haben, der vor einem Monat reproduzierbar war und nicht mehr vorhanden ist, und einen weiteren Fehler, der jetzt reproduzierbar ist , beheben Sie zuerst den Fehler, der jetzt reproduzierbar ist. Wenn Sie jemals in einen Zustand kommen, in dem Sie sich total langweilen, können Sie nachforschen. Und wenn das Problem von selbst wieder
auftritt,
2

Ich gehe davon aus, dass Sie wirklich alles getan haben, um den Fehler zu reproduzieren, aber nicht können.

In einem solchen Fall ist es häufig am besten, Code im Bereich der Anwendung hinzuzufügen, der die ausgeführten Arbeiten nicht protokolliert hat, damit Sie hoffentlich mehr Daten für die Arbeit haben, falls dies erneut geschieht. Überlegen Sie, welche Informationen Sie benötigen, die Ihnen derzeit nicht zur Verfügung stehen. Beispielsweise tritt es möglicherweise nur auf, wenn ein bestimmter Satz von Eingabeparametern gesendet wird, und Sie zeichnen diese bei jeder Ausführung des Prozesses auf. Informieren Sie sich jedoch bei Ihrem Chef, bevor Sie dies tun. Abhängig von der Wichtigkeit des Fehlers und der Häufigkeit, mit der er aufgetreten ist, möchte er möglicherweise nicht die Zeit dafür aufwenden.

Dann gehen Sie zu der Person, die den Fehler gemeldet hat (Sie können dies in der Anwendung zur Fehlerverfolgung tun, wenn Sie eine haben, müssen Sie nicht persönlich gehen) und sagen, dass Sie den Fehler nicht reproduzieren konnten, aber einige zusätzliche hinzugefügt haben Protokollierung, um detailliertere Informationen über den Vorgang zu erhalten, falls der Fehler erneut auftritt. Dann schließe den Bug.

Wenn Sie keine zusätzliche Protokollierung durchführen können. Melden Sie einfach, dass der Fehler nicht reproduzierbar war und dass dies die Informationen sind, die Sie benötigen, um ihn zu reproduzieren und ihnen mitzuteilen, was Sie benötigen. Wir bitten sie oft, uns genau zu sagen, welche Eingabeparameter sie eingegeben haben, als sie den Fehler erhielten. Nur ein Screenshot des Fehlers hilft, aber es ist hilfreicher, genau zu wissen, welche Schritte sie unternommen haben und welche Informationen sie zum Zeitpunkt des Fehlers zu verwenden versuchten. Im Grunde genommen müssen Sie sie also erneut beauftragen, Ihnen weitere Informationen zu geben, wenn sie den Fehler melden, falls er erneut auftritt.

Erklären Sie in Ihrem Bug-Tracker unbedingt, welche Schritte Sie versucht haben, damit die Person, die den Bug bearbeitet, im Falle eines erneuten Auftretens Hintergrundinformationen zu den zuvor durchgeführten Schritten hat.

HLGEM
quelle
1

Nicht reproduzierbare Taschen sind das Schlimmste! Möglicherweise wurde es in der Zwischenzeit behoben, oder es ist immer noch vorhanden, aber es kommt nur sporadisch vor oder die Schritte zur Reproduktion sind nicht ausreichend angegeben. Sie müssen ein Urteil darüber fällen, wie risikoreich der Fehler ist und wie viel Sie bei der Untersuchung noch tun werden. Erstellen Sie einen Online-Rezeptmanager oder eine Steuerungssoftware für Nuklearraketen?

Wenn es sich um einen Fehler mit geringer Auswirkung handelt und Sie wissen, dass Änderungen vorgenommen wurden, die dazu geführt haben könnten , dass der Fehler unbeabsichtigt behoben wurde, kann es akzeptabel sein, den Fehler mit dem Hinweis zu schließen, dass er nicht reproduzierbar ist, und Sie gehen davon aus, dass er behoben wurde .

Wenn Sie sich mehr Sorgen machen, können Sie einige Theorien darüber anstellen, was den Fehler verursacht hat, und das Änderungsprotokoll und den Quellverlauf durchsehen, um festzustellen, wo die Fehler behoben wurden.

Bei einem schwerwiegenden Fehler müssen Sie die Quelle bis zum letzten Release zurücksetzen und dann versuchen, sie zu reproduzieren. Wenn Sie erfolgreich reproduzieren, können Sie Tests schreiben, um sicherzustellen, dass diese in späteren Commits behoben werden.

JacquesB
quelle