Logs im Testen: Struktur, Arten und Tools
Ein Log ist eine Textaufzeichnung eines Ereignisses in einem System. Jeder Eintrag enthält ein Zeitstempel, einen Protokolllevel (INFO, DEBUG, WARN, ERROR, FATAL), die Quelle (Service oder Modul) sowie eine Beschreibung des Ereignisses. Bei Fehlern wird ein Stack Trace hinzugefügt – eine Liste der Funktionsaufrufe, die zum Fehler geführt haben – und zeigt den Ausführungsverlauf durch den Code.
Der Stack Trace zeigt beteiligte Dateien, Klassen und Methoden an. Dies ist entscheidend, um Bugs in Backend-Systemen oder mobilen Apps zu lokalisieren, wo die Benutzeroberfläche interne Details nicht offenlegt.
Die Rolle von Logs in der QA
Logs bestätigen die Existenz von Fehlern, identifizieren die Schwere der Störung (Client, Server, Integration) und liefern wertvolle Daten für Entwickler. Sie sind unverzichtbar bei sporadischen Fehlern, bei denen DevTools oder Paket-Sniffer versagen, oder wenn unerklärliche 500-Server-Fehler auftreten.
Tester extrahieren aus Logs:
- Anfrage- und Antwortparameter.
- Stack Traces zur Fehlersuche.
- Häufigkeit der Fehlerwiederholung.
Dies beschleunigt das erneute Testen und die Bereitstellung von Fixes.
Server-Logs: Zugriff und Analyse
Server-Logs erfassen Anfragen, Parameter, Antworten und Fehler. Zugänglich über SSH unter /var/log/ (syslog, access_log) oder spezialisierte Überwachungsplattformen.
Direkter SSH-Zugriff
Die SSH-Verbindung ermöglicht das Lesen roher Logs auf Linux-Servern. Verwenden Sie grep für ERROR-Einträge und tail -f für Echtzeitüberwachung. Ideal, wenn keine UI-Tools verfügbar sind.
Zentralisierte Systeme
- Kibana: Suche nach Level, Zeit oder Service. Filter für 500/422-Fehler; Anzeige vollständiger Anfragen/Antworten.
- Sentry: Vollständige Anfragendetails, Stack Traces, Fehlerhäufigkeit. Automatisierte Berichterstattung an Entwickler.
- Grafana: Dashboards zur Verfolgung von 4xx/5xx-Fehlern über Zeit und nach Endpunkt.
- Loguru: Einfache zeitgestempelte Text-Logs für grundlegende Analysen.
| Tool | Hauptfunktion | Einsatz in der QA |
|------|------------------|-----------|
| Kibana | Ereignisfilterung | Diagnose flackernder Fehler |
| Sentry | Stack Trace | Meldung an Entwickler |
| Grafana | Fehlermetriken | Überwachung von Systemausfällen |
| Loguru | Text-Logs | Grundlegende Log-Inspektion |
Nachrichtenbroker-Logs
In asynchronen Systemen (z. B. Apache Kafka) verfolgen Logs den Austausch von Nachrichten. Häufige Probleme: Nachrichtenverlust, ungültiges Format, Verzögerungen. Analyse erfolgt über Kibana, Loggly, Datadog oder Confluent Control Center.
Beispiel: Anfrage zum Kampfverlauf – die Consumer-Service-Logs zeigen Verarbeitungsfehler auf.
Mobile-Logs: ADB und Logcat
Für Android: ADB verbindet Geräte/Emulatoren; Logcat zeigt Ereignis-Logs (Bildschirme, Aktionen, Fehler). Filtern nach ERROR (E), Erkennung von Abstürzen.
Logcat ist essenziell, wenn die Oberfläche während Abstürzen stumm bleibt.
Docker-Container-Logs
Docker-Container-Logs werden mit docker logs <container_id> abgerufen. Erfassen stdout/stderr-Ausgabe von Anwendungen. Wichtig für Microservices – kombiniert mit Kubernetes (kubectl logs) für Orchestrierung.
Filter: --tail, --since für aktuelle Einträge. Integration mit ELK-Stack (Elasticsearch, Logstash, Kibana) für große Analysen.
Wichtige Erkenntnisse:
- Logs sind das erste Werkzeug für die Ursachenanalyse nach UI-basierter Diagnose.
- Levels: INFO/DEBUG für Nachverfolgung, ERROR/FATAL für Fehler.
- Stack Traces sind für Entwickler obligatorisch.
- Tools: Kibana/Sentry für Suche, Grafana für Metriken.
- Mobile: ADB + Logcat; Container:
docker logs.
— Editorial Team
Noch keine Kommentare.