Einen guten Browser-Programmfehler melden

Wenn Sie die Browseranbieter über Probleme informieren, die Sie in ihrem Browser finden, trägt dies zur Verbesserung der Webplattform bei.

Das Einreichen eines guten Bugs ist nicht schwierig, erfordert aber ein wenig Arbeit. Das Ziel besteht darin, Fehler zu finden, die Ursache zu ermitteln und vor allem einen Weg zu finden, um das Problem zu beheben. Fehler, die einen schnellen Fortschritt machen, lassen sich in der Regel leicht mit einem klar erwarteten Verhalten reproduzieren.

Prüfen, ob es sich um einen Programmfehler handelt

Der erste Schritt besteht darin, herauszufinden, was das „richtige“ Verhalten sein sollte.

Was ist das richtige Verhalten?

Sehen Sie in der entsprechenden API-Dokumentation auf MDN nach oder suchen Sie nach zugehörigen Spezifikationen. Anhand dieser Informationen können Sie entscheiden, welche API fehlerhaft ist, wo sie fehlerhaft ist und wie sich das erwartete Verhalten verhält.

Funktioniert es in einem anderen Browser?

Ein Verhalten, das sich je nach Browser unterscheidet, wird im Allgemeinen als Interoperabilitätsproblem höher priorisiert, insbesondere wenn der Browser, der den Fehler enthält, nicht korrekt ist. Versuchen Sie, mit den neuesten Versionen von Chrome, Firefox, Safari und Edge zu testen, möglicherweise mit einem Tool wie BrowserStack.

Prüfen Sie nach Möglichkeit, ob die Seite sich absichtlich anders verhält, weil User-Agent-Sniffs durchgeführt wurden. Versuchen Sie, in den Chrome-Entwicklertools den String User-Agent auf einen anderen Browser zu setzen.

Ist sie in einer aktuellen Version beschädigt?

Hat das in der Vergangenheit wie erwartet funktioniert, aber in einer aktuellen Browserversion nicht mehr funktioniert? Solche „Regressionen“ lassen sich viel schneller bearbeiten, insbesondere wenn Sie eine Versionsnummer angeben, bei der der Fehler funktioniert hat, und eine, in der er fehlgeschlagen ist. Mit Tools wie BrowserStack können Sie alte Browserversionen einfach prüfen. Mit dem Tool „bisect-builds“ (für Chromium) können Sie sehr effizient nach der Änderung suchen.

Wenn es sich bei einem Problem um eine Regression handelt und reproduziert werden kann, lässt sich die Ursache in der Regel schnell finden und beheben.

Sehen andere dasselbe Problem?

Wenn bei Ihnen Probleme auftreten, ist es sehr wahrscheinlich, dass auch andere Entwickler betroffen sind. Suchen Sie zuerst in Stack Overflow nach dem Fehler. So können Sie ein abstraktes Problem möglicherweise in eine bestimmte fehlerhafte API übertragen und eine kurzfristige Problemumgehung finden, bis der Fehler behoben ist.

Wurde es schon einmal gemeldet?

Sobald Sie eine Vorstellung davon haben, worin der Fehler besteht, suchen Sie in der Fehlerdatenbank des Browsers, um zu prüfen, ob er bereits gemeldet wurde.

Wenn Sie einen vorhandenen Fehler finden, der das Problem beschreibt, fügen Sie ihn hinzu, indem Sie ihn markieren, zu den Favoriten hinzufügen oder ihn kommentieren. Auf vielen Websites kannst du dich selbst in die CC-Liste aufnehmen und Benachrichtigungen erhalten, wenn sich der Fehler ändert.

Wenn Sie den Fehler kommentieren möchten, fügen Sie Informationen dazu hinzu, wie er sich auf Ihre Website auswirkt. Vermeiden Sie das Hinzufügen von Kommentaren im Stil "+1", da Fehlertracker normalerweise für jeden Kommentar eine E-Mail senden.

Fehler melden

Wenn der Fehler noch nicht gemeldet wurde, ist es an der Zeit, den Browseranbieter darüber zu informieren.

Minimierten Testlauf erstellen

Mozilla bietet einen hilfreichen Artikel zum Erstellen eines minimierten Testlaufs. Eine kurze Beschreibung des Problems ist ein guter Anfang. Nichts geht über die Bereitstellung einer verlinkten Demo im Fehler, die das Problem aufzeigt. Um die Wahrscheinlichkeit eines schnellen Fortschritts zu maximieren, sollte das Beispiel so wenig Code wie möglich enthalten, der zur Darstellung des Problems erforderlich ist. Ein minimales Codebeispiel ist die wichtigste Maßnahme, um die Wahrscheinlichkeit zu erhöhen, dass der Fehler behoben wird.

Hier sind ein paar Tipps zum Minimieren eines Testlaufs:

  • Laden Sie die Webseite herunter, fügen Sie <base href="https://original.url"> hinzu und prüfen Sie, ob der Fehler lokal existiert. Falls für die URL HTTPS verwendet wird, ist möglicherweise ein aktiver HTTPS-Server erforderlich.
  • Teste die lokalen Dateien auf den neuesten Builds so vieler Browser wie möglich.
  • Versuchen Sie, alles in einer Datei zusammenzufassen.
  • Entfernen Sie Code (beginnen Sie mit Dingen, von denen Sie wissen, dass sie nicht mehr nötig sind), bis der Fehler behoben ist.
  • Verwenden Sie die Versionsverwaltung, damit Sie Ihre Arbeit speichern und Fehler rückgängig machen können.

Einen minimierten Testlauf hosten

Wenn Sie nach einem Ort suchen, an dem Sie Ihren reduzierten Testlauf hosten möchten, gibt es mehrere passende Orte:

Beachte, dass Inhalte auf einigen dieser Websites in einem iFrame angezeigt werden. Das kann dazu führen, dass sich Funktionen oder Programmfehler anders verhalten.

Problem einreichen

Sobald Sie Ihren minimierten Testlauf erstellt haben, können Sie den Fehler melden. Rufen Sie die richtige Website für das Tracking von Fehlern auf und erstellen Sie ein neues Problem.

Beschreiben Sie klar und deutlich, welche Schritte erforderlich sind, um das Problem zu reproduzieren.

Geben Sie zuerst eine klare Beschreibung an, damit das Engineering-Team schnell das Problem verstehen und es erkennen kann.

When installing a PWA using the `beforeinstallprompt.prompt()`, the
`appinstalled` event fires before the call to `prompt()` resolves.

Geben Sie als Nächstes die detaillierten Schritte an, die erforderlich sind, um das Problem zu reproduzieren. Hier kommt der minimierte Testlauf ins Spiel.

What steps will reproduce the problem?
1. Go to https://basic-pwa.glitch.me/, open DevTools and look at the
   console tab.
2. Click the Install button in the page, you might need to interact with
   the page a bit before it becomes enabled.
3. Click Install on the browser modal install confirmation.

Beschreiben Sie abschließend das erwartete und tatsächliche Ergebnis.

What is the expected result? In the console:
0. INSTALL: Available (logged when `beforeinstallprompt` event fired)
1. INSTALL_PROMPT_RESPONSE: {outcome: "accepted", platform: "web"}
   (logged when beforeinstallprompt.prompt()` resolves)
2. INSTALL: Success (logged when `appinstalled` event fired)

What is the actual result? In the console:
0. INSTALL: Available (logged when `beforeinstallprompt` event fired)
1. INSTALL: Success (logged when `appinstalled` event fired)
2. INSTALL_PROMPT_RESPONSE: {outcome: "accepted", platform: "web"}
   (logged when beforeinstallprompt.prompt()` resolves)

Weitere Informationen findest du in den Richtlinien zum Verfassen von Fehlerberichts auf der MDN.

Bonus: Screenshot oder Screencast des Problems hinzufügen

Obwohl dies nicht erforderlich ist, kann es in einigen Fällen hilfreich sein, einen Screenshot oder einen Screencast des Problems hinzuzufügen. Das ist besonders hilfreich, wenn Fehler seltsame Schritte zur Reproduktion erfordern. Zu sehen, was in einem Screencast oder auf einem Screenshot passiert, kann hilfreich sein.

Geben Sie Details zur Umgebung an.

Einige Fehler können nur auf bestimmten Betriebssystemen oder nur auf bestimmten Bildschirmen (z. B. Low-dpi oder High-dpi) reproduziert werden. Geben Sie unbedingt die Details zu allen Testumgebungen an, die Sie verwendet haben.

Fehler melden

Zum Schluss senden Sie den Fehler. Denken Sie dann daran, Ihre E-Mails im Auge zu behalten, um etwaige Antworten auf den Fehler zu erhalten. Entwickler haben in der Regel während der Untersuchung und Behebung des Fehlers weitere Fragen. Wenn sie Schwierigkeiten haben, das Problem zu reproduzieren, wenden sie sich an sie.