Bug Analyse

Oft ist es notwendig, einen Bug aufzuarbeiten und zu analysieren, um vergleichbare Fehler in Zukunft zu vermeiden.

Vorlage

Bug: Webupdater Proxy

Das Proxy System wurde umgebaut. Statt wie früher die Systemproperties, wird jetzt eine zentrale Verbindungsklasse Browser.java verwendet. Diese kümmert sich um alle Proxybelange. Alle! Verbindungen dürfen deshalb nur über new Browser() laufen. Der Webupdater verwendet eigene Routinen und wurde bei der Umstellung vergessen.Proxy User ohne direkte erbindung ins Netz können desshalb nicht mehr aktualisieren und sind vom Updatesystem ausgeschlossen.

Workaround

Der Benutzer kann einen neuen Installer laden sobald dieser verfügbar ist, oder über java -DproxySet=true -DproxyHost=proxy -DproxyPort=8080 -jar restore.jar starten.

Codeebene: Libraries(6)

Browser.java wurde angepasst

Auswirkungen: Updatesystem kaputt (6)

  • Benutzer ist vom Updatesystem augeschlossen
  • DLC geht nicht mehr, weil die Updateliste nicht mehr geladen werden kann.

Betroffen: Benutzergruppe (2)

Alle Proxybenutzer ohne direkte Verbindung

Möglichkeiten zur Fehlererkennung

Einzeltest des Entwicklers: zufällig (2)
Test alle Entwickler: warscheinlich (1)
Geplanter Test: sicher (0)

Ausbesserung

Reproduzieren: erschwert (1)

Alle Module müssen getestet werden, zusätzliche Verbindungskontrolle über 3rd Party tool

Fehler lokalisieren: einfach(1)

Verbindungsmethoden sollten einfach zu lokalisieren sein

Ausbessern: umfangreich (1)

Browser sollte auch für Webupdater verwendet werden

Stufen

Codeebene

Bezeichnet wie nahe die Änderungen am JD Kern sind. Je näher, desto höher die Gefahr der Seitenefekte

  • (0) Extern (Zusatztools)
  • (1) Ressourcen (Bilder, Sprachfiles,..)
  • (2) Addons (JdUNrar, …)
  • (3) Plugins (Hoster, Decrypter,..)
  • (4) Module (Reconnect,..)
  • (5) Controlling (Ablaufsteuerung,..)
  • (6) Libraries (Browser, Regex, Form ,…)
  • (7) Enviroment ( OS abhängigkeit, java versionen, Compiler Level,…)

Auswirkungsgrad

  • (0) Unschön
  • (1) Störend
  • (2) Penetrant störend
  • (3) Feature unbrauchbar (http reconnect)
  • (4) Modulbereich unbrauchbar (z.b. kompletter Reconnect)
  • (5) Interner Datenverlist (linkliste)
  • (6) Updater kaputt
  • (7) Programm kaputt
  • (8) Externer Datenverlust

Betroffen

  • (0) Sonderfall
  • (1) Einzellne Fälle
  • (2) Benutzergruppe (z.b. bestimmte router,..)
  • (3) Mehrheit
  • (4) Alle

Erkennungswarscheinlichkeit

  • (0) sicher (einfacher Test ausreichend)
  • (1) warscheinlich (kann fast nicht übersehen werden)
  • (2) zufällig (wird bei einfachen Tests höchstens zufällig endeckt)
  • (3) sehr unwahrscheinlich (tritt nur in Sonderfällen auf)

Lokalisieren

  • (0) sehr einfach (Exception –>Zeilenabgabe)
  • (1) einfach (durch Steppen falschen Wert finden)
  • (2) schwierig (Steppen schwer möglich)
  • (3) sehr schwer (Multithreaded, Timeing,..)

Reproduzieren

  • (0) sehr einfach
  • (1) erschwert (Zusatzsoftware wie Netlimiter)
  • (2) schwer (Teamviewer nötig,..bestimmte Einstellungen und Gegebenheiten nötig)
  • (3) sehr schwer (Timeing,…)

Ausbessern

  • (0) sehr einfach (<30 min)
  • (1) umfangreich (<2h)
  • (2) aufwendig (<4h/ein Nachmittag)
  • (3) sehr aufwendig (>4h/Nachmittag(e))
de/knowledge/wiki/development/bug_analytics.txt · Zuletzt geändert: 2016/06/27 16:32 (Externe Bearbeitung)