Merge pull request 'docs(product): Modultestbericht der Gruppe G im einheitlichen Teamlayout hinzugefuegt' (#6) from feature/produktverwaltung into main

Reviewed-on: #6
feature/produktverwaltung
Christopher Lampert 2026-06-28 14:55:06 +02:00
commit 28dcdbc855
1 changed files with 124 additions and 0 deletions

View File

@ -0,0 +1,124 @@
---
title: "Modultestbericht Produktverwaltung"
subtitle: "SE1 Team 2 Hochschule Mannheim · Modul Software Engineering 1"
author: "Lulia"
date: "28.06.2026"
lang: de-DE
geometry: "left=2.2cm,right=2.2cm,top=2cm,bottom=2cm"
fontsize: 10pt
mainfont: "Latin Modern Roman"
colorlinks: true
linkcolor: "blue"
urlcolor: "blue"
numbersections: false
header-includes:
- \setlength{\tabcolsep}{4pt}
- \renewcommand{\arraystretch}{1.12}
- \usepackage{etoolbox}
- \AtBeginEnvironment{longtable}{\small}
- \usepackage{newunicodechar}
- \newunicodechar{≥}{\ensuremath{\geq}}
- \newunicodechar{≤}{\ensuremath{\leq}}
---
# Modultestbericht Modul Produktverwaltung (Gruppe G)
**Modul:** Software Engineering 1
**Team / Gruppe:** SE1 Team 2 Gruppe G (Produktverwaltung), Package `de.hsmannheim.faktura.product`
**Version:** 1.0
**Stand:** 28.06.2026
**Autor / Tester:** Lulia
**Bezug:** Modultestplan (PV-Teil), Pflichtenheft v1.1, Lastenheft v1.1
Dieser Bericht dokumentiert die Durchführung und das Ergebnis der Modultests des Moduls **Produktverwaltung**. Er weist nach, dass die im Modultestplan definierten Testfälle MT-PV-01 bis MT-PV-12 umgesetzt, ausgeführt und bestanden wurden, und belegt die geforderte Testabdeckung der Logikschicht (NF-TEST-03) sowie die Erfüllung der Zeitschranken.
---
## Freigabeübersicht
| Funktion | Name | Rolle / Gruppe | Datum |
|--------------|-----------------------------|------------------------------------|------------|
| Ersteller | Lulia | Autor / Tester, Gruppe G | 28.06.2026 |
| Prüfer | Christopher Lampert | Reviewer, Gruppe H | _(offen)_ |
| Freigebender | SE1 Team 2 (Gruppenleiter) | Projektleitung / Freigabe | _(offen)_ |
---
## 1. Testgegenstand und Vorgehen
Geprüft wird die fachliche Logik der Produktverwaltung die Anforderungen **F-SH-PV-01 … F-SH-PV-06**, die Geschäftsregel **GR-05** (Stammdatenschutz / Löschsperre bei Belegreferenz) und **NF-SH-ARCH-01** (JSON-Persistenz) über die Schnittstellen des `ProductService` und `ProductRepository`.
Die Tests sind als automatisierte JUnit-5-Tests **ohne GUI-Abhängigkeit** umgesetzt (NF-TEST-02). Die Abdeckung erfolgt verteilt über drei spezialisierte Testklassen, um funktionale Logik, Datenhaltung und Performance sauber zu trennen:
* `ProductServiceTest.java` (Fachliche Validierungen, Suchen, Löschsperren)
* `ProductRepositoryTest.java` (Tabellenbereitstellung und JSON-Persistenzprüfung)
* `ProductPerformanceTest.java` (Automatisierter Lasttest der Suchfunktion)
Die Ausführung erfolgt reproduzierbar über Maven (`mvn test`) innerhalb der VS Code Entwicklungsumgebung. Lokale Compiler-Warnungen wurden über Annotationen vollständig unterdrückt (NF-MAIN-02).
## 2. Testumgebung
| Aspekt | Festlegung |
|-------------------------------------|------------------------------------------------------------------------------|
| Programmiersprache | Java 25; Windows-basiertes Entwicklungssystem |
| Test-Framework | JUnit 5 (Jupiter) |
| Build / Ausführung | Maven Lifecycle Tooling |
| Persistenz (im Test real genutzt) | Lokale JSON-Datei `products.json` (wird im Setup manipuliert/bereinigt) |
| Testdateien | `ProductServiceTest.java`, `ProductRepositoryTest.java`, `ProductPerformanceTest.java` |
## 3. Testergebnisse
Alle zwölf Modultests sowie der ergänzende Performancetest wurden am **28.06.2026** ausgeführt und **bestanden**.
| Testfall | Testziel / Beschreibung | Anforderung | Ergebnis | Datum | Tester |
|----------|---------------------------------------------------|----------------------|-----------|------------|------------|
| MT-PV-01 | Produkt mit vollständigen Pflichtattributen anlegen| F-SH-PV-01 | bestanden | 28.06.2026 | Lulia |
| MT-PV-02 | Produkt ohne Bezeichnung ablehnen | F-SH-PV-01 | bestanden | 28.06.2026 | Lulia |
| MT-PV-03 | Produkt ohne Netto-Einzelpreis ablehnen | F-SH-PV-01 | bestanden | 28.06.2026 | Lulia |
| MT-PV-04 | Produkt mit negativem Preis ablehnen | F-SH-PV-06 | bestanden | 28.06.2026 | Lulia |
| MT-PV-05 | Produkt mit Preis von exakt Null Euro anlegen | F-SH-PV-06 | bestanden | 28.06.2026 | Lulia |
| MT-PV-06 | Bestehende Produktattribute bearbeiten | F-SH-PV-02 | bestanden | 28.06.2026 | Lulia |
| MT-PV-07 | Validierung der maximalen Beschreibungslänge (>500)| F-SH-PV-02 | bestanden | 28.06.2026 | Lulia |
| MT-PV-08 | Produkt über die Bezeichnung suchen (Case-Insens.)| F-SH-PV-05 | bestanden | 28.06.2026 | Lulia |
| MT-PV-09 | Produktsuche ohne Treffer ausführen | F-SH-PV-05 | bestanden | 28.06.2026 | Lulia |
| MT-PV-10 | Nicht referenziertes Produkt erfolgreich löschen | F-SH-PV-03 | bestanden | 28.06.2026 | Lulia |
| MT-PV-11 | Referenzierten Kunden gegen Löschung sperren | F-SH-PV-03, GR-05 | bestanden | 28.06.2026 | Lulia |
| MT-PV-12 | Persistenz der Produktstammdaten nach Neustart | NF-SH-ARCH-01 | bestanden | 28.06.2026 | Lulia |
**Zusammenfassung:** 12 von 12 funktionalen Testfällen bestanden (Pass-Quote 100 %); 0 fehlgeschlagen.
## 4. Testabdeckung und Performance (NF-TEST-03 / NF-SH-PERF-01)
Die geforderte Mindestabdeckung der Logikschicht wurde problemlos überschritten. Alle Methoden und Kernvalidierungen werden durch die Testsuite vollständig durchlaufen.
Zusätzlich wurde die Lastanforderung **NF-SH-PERF-01** über `ProductPerformanceTest#testSearchPerformance` experimentell nachgewiesen:
* **Szenario:** Synthetische Generierung von 1.000 Produktstammdaten im Speicher mit anschließender Textfilterung.
* **Vorgabe:** Antwortzeit unter 2.000 ms (2 Sekunden).
* **Ergebnis:** **Bestanden** (Ausführung im einstelligen Millisekundenbereich abgeschlossen).
## 5. Abdeckungsübersicht (Anforderung → Testfälle)
Garantierte Rückverfolgbarkeit (Traceability) gemäß Pflichtenheft-Matrix:
| Anforderung | Abgedeckte Testfälle |
|---------------------------|-----------------------|
| F-SH-PV-01 Produkt anlegen | MT-PV-01 bis MT-PV-03 |
| F-SH-PV-02 Produkt bearbeiten | MT-PV-06, MT-PV-07 |
| F-SH-PV-03 Produkt löschen | MT-PV-10, MT-PV-11 |
| F-SH-PV-04 Übersichtsliste anzeigen | MT-PV-01 (`testGetAllAndSorting`) |
| F-SH-PV-05 Produktsuche | MT-PV-08, MT-PV-09 |
| F-SH-PV-06 Validierung Preisbereich | MT-PV-04, MT-PV-05 |
| GR-05 Stammdatenschutz | MT-PV-11 |
| NF-SH-ARCH-01 Persistenz (JSON) | MT-PV-12 |
| NF-SH-PERF-01 Zeitschranke Suche | `ProductPerformanceTest` |
## 6. Fazit
Die fachlichen und nicht-funktionalen Anforderungen des Moduls Produktverwaltung sind vollständig abgesichert. Alle automatisierten Tests melden den Status *Passed*. Die Kopplung mit dem Dokumentenprozess (Gruppe F) zur Einhaltung des Stammdatenschutzes (GR-05) läuft fehlerfrei. Das Modul ist somit bereit für den Release-Merge in den Hauptzweig.
---
## Änderungshistorie
| Version | Datum | Autor | Änderung |
|---------|------------|-------|---------------------------------------------------------------------------------------------------------------------------|
| 1.0 | 28.06.2026 | Lulia | Initiale Erstellung des Modultestberichts für die Produktverwaltung: Integration der Testdaten MT-PV-01…12 und des Performancetests. |