Files
Chatapp/testprotokoll.md
T
Francesco Lorenzo D'Amico a5d116358e Initial commit
2026-08-10 15:25:21 +02:00

4.2 KiB
Raw Blame History

title, author, date, geometry, fontsize
title author date geometry fontsize
Testprotokoll Blackbox Test Chat App 19.03.2026 margin=2cm 11pt

Projektinformationen

Projekt Chat App
Datum 19.03.2026
Tester _______________
Version 1.0

Testumgebung

Browser Chrome / Firefox
URL http://localhost
Methode Manueller Blackbox Test

Beschreibung der Systemteile

Komponente Technologie Aufgabe
Frontend React, Vite, Socket.IO Client, Nginx Benutzeroberfläche für den Chat. Stellt Verbindung zum Backend über WebSocket her und zeigt Nachrichten, Teilnehmer und Verbindungsstatus an.
Backend Node.js, Express, Socket.IO REST-API und WebSocket-Server. Verwaltet Benutzer-Sessions, Räume und leitet Nachrichten in Echtzeit weiter.
Datenbank MongoDB Persistente Speicherung von Nachrichten und Benutzerdaten. Alternativ steht ein JSON-Fallback-Store zur Verfügung.
Infrastruktur Docker, Docker Compose, Nginx Containerisierung aller Dienste. Nginx fungiert als Reverse Proxy für das Frontend.

Vorschläge zur Ausfallsicherheit

Frontend

  • Automatischer Reconnect bei WebSocket-Verbindungsabbruch ist bereits implementiert (5 Versuche)
  • Statische Dateien über CDN ausliefern für höhere Verfügbarkeit

Backend

  • Mehrere Instanzen hinter einem Load Balancer betreiben (z. B. Nginx upstream)
  • Bei mehreren Instanzen Socket.IO mit Redis Adapter koppeln, damit alle Instanzen dieselben Räume/Events teilen
  • Health-Check-Endpunkt /health ist bereits vorhanden und kann von einem Orchestrator (z. B. Kubernetes) genutzt werden

Datenbank

  • MongoDB Replica Set einrichten: primärer Node schreibt, sekundäre Nodes lesen → bei Ausfall des primären Nodes übernimmt automatisch ein sekundärer
  • Regelmäßige automatische Backups des Volumes einrichten
  • JSON-Fallback-Store dient als Notlösung bei MongoDB-Ausfall (bereits implementiert)

Infrastruktur

  • restart: unless-stopped ist in allen Docker-Diensten bereits konfiguriert → automatischer Neustart bei Absturz
  • Für Produktion: Docker Swarm oder Kubernetes für automatisches Failover und Skalierung

Testfälle

Nr. Beschreibung Eingabe Erwartetes Ergebnis Tatsächliches Ergebnis Status
T01 Beitreten mit gültigem Benutzernamen und Raum Username: Max, Room: general Benutzer tritt dem Raum bei, Chatverlauf wird angezeigt [ ]
T02 Beitreten ohne Benutzernamen Username: (leer), Room: general Fehlermeldung wird angezeigt, kein Beitritt [ ]
T03 Beitreten ohne Raumnamen Username: Max, Room: (leer) Fehlermeldung wird angezeigt, kein Beitritt [ ]
T04 Nachricht senden Nachricht: Hallo! → Senden Nachricht erscheint im Chat [ ]
T05 Leere Nachricht senden Nachricht: (leer) → Senden Nachricht wird nicht gesendet [ ]
T06 Zwei Benutzer im selben Raum Tab 1: Max / general, Tab 2: Anna / general Beide sehen Nachrichten des jeweils anderen in Echtzeit [ ]
T07 Benutzer in verschiedenen Räumen Tab 1: Max / general, Tab 2: Anna / privat Nachrichten sind voneinander getrennt [ ]
T08 Teilnehmerliste aktualisiert sich Tab 2 schließen Tab 1 zeigt Benutzer als offline/entfernt [ ]
T09 Chatverlauf nach Neuverbindung Seite neu laden, wieder einloggen Vorherige Nachrichten werden geladen [ ]
T10 Sonderzeichen in Nachricht Nachricht: <script>alert(1)</script> Text wird als plain text angezeigt, kein Script ausgeführt [ ]
T11 Langer Text Nachricht mit 500 Zeichen Nachricht vollständig angezeigt, kein Layout-Fehler [ ]
T12 Backend nicht erreichbar Backend stoppen, App öffnen Fehlermeldung oder Reconnect-Versuch wird angezeigt [ ]

Legende

Symbol Bedeutung
[OK] Bestanden
[X] Fehlgeschlagen
[ ] Nicht getestet

Gesamtergebnis

Gesamt Bestanden Fehlgeschlagen Nicht getestet
12

Bemerkungen

\vspace{1cm}


\vspace{1cm}