Debugging

Definition - Was bedeutet Debuggen?

Das Debuggen ist der Routineprozess zum Auffinden und Entfernen von Fehlern, Fehlern oder Anomalien in Computerprogrammen, der von Softwareprogrammierern über Debugging-Tools methodisch behandelt wird. Das Debuggen überprüft, erkennt und korrigiert Fehler (oder "Fehler"), um einen ordnungsgemäßen Programmbetrieb gemäß den festgelegten Spezifikationen zu ermöglichen.

Das Debuggen wird auch als Debuggen bezeichnet.

Technische.me erklärt das Debuggen

Während Profis Softwareprogramme entwickeln, implementieren sie wichtige Teile des Prozesses wie umfangreiche Tests, Aktualisierungen, Fehlerbehebung und Wartung.

Normalerweise enthält Software Fehler und Bugs, die routinemäßig behoben werden. Während des Debugging-Prozesses werden regelmäßig vollständige Softwareprogramme kompiliert und ausgeführt, um Probleme zu identifizieren und zu beheben. Große Softwareprogramme, die Millionen von Quellcodezeilen enthalten, sind in kleine Komponenten unterteilt. Aus Effizienzgründen wird jede Komponente zunächst separat getestet, gefolgt vom gesamten Programm. Im Allgemeinen hängt die Art und Weise, wie das Debuggen funktioniert, von den ausgewählten globalen Teststrategien ab.

Das Debuggen als grundlegender Bestandteil des Code-Handlings und der Software-Entwicklung ist ein guter Indikator dafür, wie wir Technologien im Allgemeinen produzieren. Es spiegelt wider, was wir mit Programmiersprachen tun konnten, um in einer Welt der digitalen Automatisierung und KI voranzukommen.

Eine andere Möglichkeit, dies zu sagen, besteht darin, dass sich das Debuggen zusammen mit den Technologien entwickelt, mit denen wir Programme codieren und schreiben.

Experten sprechen häufig vom Debuggen als „Personen, Prozesse und Systeme“, die dazu beitragen, Probleme mit einer vorhandenen Codebasis auszubügeln. Wie dies funktioniert, ist in verschiedenen Epochen unterschiedlich: Beispielsweise wird das Debugging, das in den frühen Tagen des PCs in Bare-Metal-Umgebungen mit linearem, nicht objektorientiertem Code stattfand, anders sein als das Debugging passiert heute.

Ein hervorragendes Beispiel dafür ist der Aufstieg moderner Praktiken, die als "Reverse Debugging" bezeichnet werden.

Im Zeitalter von devOps und agiler Softwareentwicklung umfasst das Reverse-Debugging die Überwachung von Programmen und die Bereitstellung von Daten auf bestimmte Weise, um den Debugging-Prozess zu automatisieren. Dies wurde früher von einzelnen Informatikern in einem Prozess durchgeführt, der oft einer Art technischer Detektivarbeit ähnelte.

Früher reichten Programmierer einzelne Tickets ein, nachdem sie beim Testen einen Funktionsfehler festgestellt hatten, und gingen dann zurück und durchsuchten den Code mit jetzt primitiven Debuggern, um herauszufinden, was los war. Es war nicht ungewöhnlich, dass selbst ein erfahrenes Team für eine Weile „ratlos“ war, entweder aufgrund der Raffinesse des Codes, der den Fehler verursacht hat, oder aufgrund der Eitelkeit des Fehlers beim Testen oder beidem.

Im Gegensatz dazu verfolgen Reverse-Debugging-Systeme, die dem Design von Flugschreibern in Flugzeugen ähneln, Programme zur Laufzeit oder überwachen Programme auf andere Weise, um die richtigen Informationen zu liefern, damit das Debuggen mehr zu einem automatisierten Prozess wird.

Durch die differenziertere Überwachung in Echtzeit oder bei der Verwendung von Programmen erfassen Reverse-Debugging-Tools mehr Details, die Informatiker traditionell hätten untersuchen müssen.

Das Testen hat sich ebenfalls geändert, da bei CICD und verwandten Prozessen einige Tests von Ingenieuren durchgeführt werden können und andere Arten von Tests von Endbenutzern in einer Produktionsumgebung oder in der Beta oder an anderer Stelle in der Pipeline durchgeführt werden können.

Am Ende wird das Debuggen weiterhin ein kritischer Bestandteil der Verwaltung einer Codebasis sein.