Troubleshooting: Unterschied zwischen den Versionen
Zeile 36: | Zeile 36: | ||
* Oft wird bei der Fehlersuche ein erheblicher Aufwand und Schwerpunkt auf die Reproduzierbarkeit gelegt [...] | * Oft wird bei der Fehlersuche ein erheblicher Aufwand und Schwerpunkt auf die Reproduzierbarkeit gelegt [...] | ||
* auf die Suche nach einem Verfahren, mit dem das Symptom zuverlässig hervorgerufen werden kann | * auf die Suche nach einem Verfahren, mit dem das Symptom zuverlässig hervorgerufen werden kann | ||
== Mehrere Probleme == | == Mehrere Probleme == |
Version vom 30. Januar 2025, 13:54 Uhr
Troubleshooting - Systematische Fehlersuche und -behebung (Debugging)
Beschreibung
Form der Problemlösung
Logische systematische Suche nach Ursachen eines Problems
- Um es zu lösen und das Produkt oder den Prozess wieder funktionsfähig zu machen
- Die Fehlersuche ist erforderlich, um die Symptome zu identifizieren
Ermittlung der wahrscheinlichsten Ursache
- Prozess der Eliminierung
- bei dem potenzielle Ursachen eines Problems ausgeschlossen werden
- Schließlich muss bei der Fehlerbehebung bestätigt werden, dass die Lösung das Produkt oder den Prozess wieder in den funktionsfähigen Zustand versetzt
Halbierung
Eine effiziente, methodische Fehlerbehebung beginnt mit einem klaren Verständnis des erwarteten Verhaltens des Systems und der beobachteten Symptome
- Auf dieser Grundlage erstellt der Problemlöser Hypothesen zu möglichen Ursachen und entwickelt Tests (oder greift auf eine standardisierte Checkliste zurück), um diese potenziellen Ursachen zu beseitigen
- Dieser Ansatz wird oft als „divide and conquer“ bezeichnet
Zwei gängige Strategien, die von Problemlösern angewendet werden, sind die Überprüfung auf häufig auftretende oder leicht zu testende Bedingungen (z. B. die Überprüfung, ob die Anzeige eines Druckers leuchtet und ob das Kabel an beiden Enden fest sitzt)
- Dies wird oft als „Melken der Frontplatte“ bezeichnet
Dann wird das System „halbiert“ (z. B. wird bei einem Netzwerk-Drucksystem überprüft, ob der Auftrag den Server erreicht hat, um festzustellen, ob ein Problem in den Subsystemen „in Richtung“ des Benutzers oder „in Richtung“ des Geräts vorliegt)
Diese letztere Technik kann besonders effizient in Systemen mit langen Ketten von seriellen Abhängigkeiten oder Interaktionen zwischen ihren Komponenten sein
- Es handelt sich einfach um die Anwendung einer binären Suche über den gesamten Bereich der Abhängigkeiten, was oft als „Halbteilung“ bezeichnet wird
- Es ähnelt dem Spiel „20 Fragen“: Jeder kann eine Option aus einer Million herausfiltern, indem er die Menge der Alternativen 20 Mal in zwei Hälften teilt (da 2^10 = 1024 und 2^20 = 1.048.576)
Reproduzierbare Symptome
Eines der Grundprinzipien der Fehlersuche ist, dass reproduzierbare Probleme zuverlässig isoliert und gelöst werden können
- Oft wird bei der Fehlersuche ein erheblicher Aufwand und Schwerpunkt auf die Reproduzierbarkeit gelegt [...]
- auf die Suche nach einem Verfahren, mit dem das Symptom zuverlässig hervorgerufen werden kann
Mehrere Probleme
Das Isolieren einzelner Komponentenfehler, die reproduzierbare Symptome verursachen, ist relativ einfach
Viele Probleme treten jedoch nur als Folge mehrerer Fehler oder Störungen auf
- Dies gilt insbesondere für fehlertolerante Systeme oder solche mit integrierter Redundanz
- Funktionen, die einem System Redundanz, Fehlererkennung und Failover hinzufügen, können ebenfalls fehleranfällig sein, und genügend verschiedene Komponentenfehler in jedem System können es „zum Absturz bringen“
Selbst bei einfachen Systemen muss der Problemlöser immer die Möglichkeit in Betracht ziehen, dass es mehr als einen Fehler gibt. (Das Ersetzen jeder einzelnen Komponente, die Verwendung der Seriensubstitution und das anschließende Austauschen jeder neuen Komponente gegen die alte, wenn das Symptom weiterhin besteht, kann in solchen Fällen zu keiner Lösung führen
- Noch wichtiger ist, dass der Austausch einer Komponente durch eine defekte Komponente die Anzahl der Probleme sogar erhöhen kann, anstatt sie zu beseitigen)
Beachten Sie, dass, obwohl wir von „Komponenten ersetzen“ sprechen, die Lösung vieler Probleme eher Anpassungen oder Feinabstimmungen als „Ersetzen“ umfasst
- Beispielsweise müssen unterbrochene Leitungen – oder „verschmutzte oder lose Kontakte“ – möglicherweise einfach nur gereinigt und/oder festgezogen werden
- Bei allen Diskussionen über „Ersetzen“ sollte davon ausgegangen werden, dass es sich um „Ersetzen oder Anpassen oder andere Modifikationen“ handelt