Page:
Teststrategie
Pages
07 JFX 09.05.2025
08 JFX 16.05.2025
1 Internal Meeting 16.04.2025
2 Internal Meeting 19.04.2025
3 Internal Meeting 24.04.2025
4 Zusatz JFK 26.04.2025
5 MR1 28.04.2025
6 JFX 02.05.2025
Datenbankdiagramm
Documents
Dokumentationskonvention
Frontend Design Mockups
Frontend Style Guide
Frontend
Git
Home
Logo & Corporate
Math rendering
Meetings
PDF generation
Pentesting Backend
Projektauftrag
Projektidee
Real Time Collaboration Research
Technical Research
Teststrategie
Timetracking
UML Klassendiagramm Backend
Versioning and Database Research
Y Websocket Server in Java
No results
1
Teststrategie
Benjamin Goisser edited this page 2026-02-04 18:44:28 +01:00
Teststrategie
Ziel
Die Teststrategie stellt sicher, dass
- alle definierten Features (z.B. Dokument speichern, Rechteverwaltung, Kollaboration) technisch korrekt umgesetzt sind und sich so verhalten, wie sie beschrieben sind.
- die Tests das gewünschte Verhalten der Software dokumentieren.
- sowohl die Abgrenzung und der Testumfang klar definiert sind.
Dieses Dokument bezieht sich ausschließlich auf Tests im Backend.
Testarten
Unit-Tests
- Ziel: Sicherstellen, dass einzelne Module oder Funktionen isoliert korrekt funktionieren.
- Umfang:
- Validierung von Eingaben und Ausgaben.
- Fehlerbehandlung (z. B. ungültige Eingaben, Ausnahmen).
- Datenbankoperationen.
- Beispiele:
- Token-Validierung für die Authentifizierung.
- CRUD-Operationen für Dokumente.
Integrationstests
- Ziel: Sicherstellen, dass verschiedene Backend-Komponenten korrekt zusammenarbeiten.
- Umfang:
- Interaktion zwischen Datenbank und API-Endpunkten.
- Echtzeit-Kollaborationslogik.
- Beispiele:
- Speichern und Abrufen von Dokumenten aus der Datenbank.
- Synchronisation von Änderungen in Echtzeit.
Automatisierte Tests
- Tools: JUnit (Java), Spring Boot Test.
- Ziel: Automatisierung aller Unit- und Integrationstests.
Testprinzipien
Atomarität
- Tests sollten genau eine Funktionalität oder ein Verhalten prüfen.
- Es ist zu vermeiden, mehrere Funktionalitäten in einem Test zu kombinieren.
- Präzise und beschreibende Testnamen sind zu verwenden, um den Zweck des Tests klar zu machen.
Isolation
- Mocking-Frameworks (z. B. Mockito) sind zu verwenden, um Abhängigkeiten zu isolieren.
- Gemeinsame Zustände zwischen Tests sind durch das Zurücksetzen der Testumgebung vor jedem Test zu vermeiden.
Reproduzierbarkeit
- Feste Eingabedaten und deterministische Logik sind in den Tests zu verwenden.
- Abhängigkeiten von externen Faktoren wie Systemzeit oder Netzwerkbedingungen sind zu vermeiden.
- Konsistente Testumgebungen (z. B. identische Datenbankschemata und Konfigurationen) sind sicherzustellen.
Klarheit
- Klare und beschreibende Testnamen (z. B.
getByIdShouldReturnNotFoundForInvalidDocumentID) sind zu verwenden. - Eine konsistente Struktur, wie Arrange-Act-Assert (AAA), ist in den Testfällen einzuhalten.
- Kommentare sind nur hinzuzufügen, wenn sie notwendig sind, um komplexe Logik zu erklären.
Vollständigkeit
- Der, in diesem Dokument, beschriebene Testumfang ist abzudecken.
- Alle Randfälle und Szenarien, welche im Laufe der Entwicklung bekannt werden, werden durch Tests abgedeckt.
Testumfang
Persistenz
- Validierung des Speicherns von Dokumenten.
- Validierung des Abrufs von Dokumenten.
- Validierung des Löschens von Dokumenten.
- Fehlerbehandlung bei ungültigen Dokumentformat in der Datenbank.
- Testen, dass ein Fehler zurückgegeben wird, wenn die Datenbank nicht verfügbar ist.
Realtime-Kollaboration
- Validierung der Synchronisationslogik für Änderungen.
- Sicherstellen, dass mehrere Nutzer gleichzeitig dasselbe Dokument bearbeiten können.
Berechtigungen & Teilen
- Validierung der Token-Generierung.
- Validierung des Erstellens von geteilten Links.
- Validierung des Widerrufs (Löschen) von geteilten Links.
- Validierung des Abrufs von geteilten Links.
- Validierung des Aktualisieren von geteilten Links.
- Validierung, dass Berechtigungsstufen (z. B. Nur-Lesen, Bearbeiten) korrekt umgesetzt sind.
- Validierung, dass abgelaufene Tokens keinen Zugriff mehr gewähren.
- Sicherstellen, dass ein Benutzer ohne Berechtigung keinen Zugriff auf geteilte Inhalte erhält.
Export
- Validierung des Erstellen eines Exports
- Validierung, dass exportierte Dateien den korrekten Inhalt und das richtige Format enthalten.
- Validierung, dass Medien korrekt in exportierten Dateien eingebettet werden.
- Validierung, dass nur Exports in die unterstützten Formate möglich sind.
Versionierung
- Validierung der Erstellung von Versionen.
- Validierung des Abrufs von Versionen.
- Sicherstellen, dass das Wiederherstellen früherer Versionen korrekt funktioniert.
- Sicherstellen, dass die Versionierung nachvollziehbar und chronologisch korrekt ist.
- Validierung, dass Änderungen zwischen Versionen korrekt protokolliert werden.
Medienverwaltung
- Validierung der Logik für Datei-Uploads und -Speicherung.
- Sicherstellen, dass Medien korrekt mit Dokumenten verknüpft werden.
- Sicherstellen, dass ein Fehler zurückgegeben wird, wenn die Datei zu groß ist.
- Sicherstellen, dass nur bestimmte Dateiformate akzeptiert werden.
Abgrenzung
- Tests für Frontend-spezifische Features (z. B. UI/UX, clientseitige Validierung) sind nicht Teil dieser Teststrategie.