From 89512b2e8e2543011141426691f97d35e6d23d39 Mon Sep 17 00:00:00 2001 From: Lulia <3030489@stud.th-mannheim.de> Date: Sun, 28 Jun 2026 14:53:11 +0200 Subject: [PATCH] docs(product): Modultestbericht der Gruppe G im einheitlichen Teamlayout hinzugefuegt --- .../Modultestbericht_Produktverwaltung | 124 ++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 Unterlagen/Modultestbericht/Modultestbericht_Produktverwaltung diff --git a/Unterlagen/Modultestbericht/Modultestbericht_Produktverwaltung b/Unterlagen/Modultestbericht/Modultestbericht_Produktverwaltung new file mode 100644 index 0000000..9d21f4d --- /dev/null +++ b/Unterlagen/Modultestbericht/Modultestbericht_Produktverwaltung @@ -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. | \ No newline at end of file