SE1_Team_2/Modultestplan.md

22 KiB
Raw Permalink Blame History

Modultestplan Fakturierungssystem

SE1 Team 2 Hochschule Mannheim

Christopher Lampert

11.06.2026

Kundenverwaltung

Die folgenden Modultests prüfen die fachlichen Anforderungen des Moduls Kundenverwaltung. Die Testfälle sind so formuliert, dass sie ohne GUI-Abhängigkeiten als automatisierte JUnit-Tests umgesetzt werden können. Die Zuordnung zu den Anforderungen gewährleistet die Traceability zwischen Anforderungen und Tests. Die Anforderungen BA-KV-01 bis BA-KV-04 sowie GR-05 und NF-ARCH-01 werden vollständig abgedeckt.

Testfälle

Testfall-ID Testziel / Beschreibung Vorbedingungen Testschritte Erwartetes Ergebnis Abgedeckte Anforderungen
MT-KV-01 Kunde mit vollständigen Pflichtattributen anlegen Kein Kunde mit derselben ID vorhanden Kundenobjekt mit Firmenname, Straße, PLZ und Ort anlegen und speichern Kunde wird gespeichert und ist in der Kundenliste vorhanden BA-KV-01
MT-KV-02 Kunde ohne Firmenname bzw. Nachname anlegen System betriebsbereit Kundenobjekt ohne Firmenname/Nachname speichern Speicherung wird abgelehnt, Fehlermeldung wird erzeugt BA-KV-01
MT-KV-03 Kunde ohne Straße anlegen System betriebsbereit Kundenobjekt ohne Straßenangabe speichern Speicherung wird abgelehnt, Fehlermeldung wird erzeugt BA-KV-01
MT-KV-04 Kunde mit ungültigem E-Mail-Format anlegen System betriebsbereit Kundenobjekt mit E-Mail „kunde@“ speichern Speicherung wird abgelehnt, da das E-Mail-Format ungültig ist BA-KV-01
MT-KV-05 Vorhandenen Kunden bearbeiten Kunde existiert bereits im System Telefonnummer des Kunden ändern und speichern Geänderte Telefonnummer wird gespeichert und angezeigt BA-KV-02
MT-KV-06 Persistenz geänderter Kundendaten prüfen Kunde existiert bereits Kundendaten ändern, speichern und erneut aus der Datenhaltung laden Geänderte Daten bleiben unverändert erhalten BA-KV-02, NF-ARCH-01
MT-KV-07 Kunde über Namen suchen Kunde „Muster GmbH“ vorhanden Suche mit Suchbegriff „Muster“ ausführen Kunde wird gefunden und zurückgegeben BA-KV-03
MT-KV-08 Kunde über Kundennummer suchen Kunde mit bekannter Kundennummer vorhanden Suche über Kundennummer ausführen Passender Kunde wird gefunden BA-KV-03
MT-KV-09 Nicht vorhandenen Kunden suchen Gesuchter Kunde existiert nicht Suche mit unbekanntem Namen oder unbekannter Kundennummer durchführen Leeres Suchergebnis bzw. Hinweis „Kein Kunde gefunden“ BA-KV-03
MT-KV-10 Nicht referenzierten Kunden löschen Kunde existiert und wird von keinem Dokument verwendet Löschvorgang ausführen und anschließend Suche starten Kunde wird gelöscht und kann nicht mehr gefunden werden BA-KV-04
MT-KV-11 Referenzierten Kunden löschen Kunde wird in Angebot, Auftragsbestätigung, Lieferschein oder Rechnung verwendet Löschvorgang ausführen Löschung wird abgewiesen, Kunde bleibt erhalten BA-KV-04, GR-05

Abdeckungsübersicht

Anforderung Abgedeckte Testfälle
BA-KV-01 Kunde anlegen MT-KV-01 bis MT-KV-04
BA-KV-02 Kunde bearbeiten MT-KV-05, MT-KV-06
BA-KV-03 Kunde suchen MT-KV-07 bis MT-KV-09
BA-KV-04 Kunde löschen MT-KV-10, MT-KV-11
GR-05 Stammdatenschutz MT-KV-11
NF-ARCH-01 Persistenz MT-KV-06


Produktverwaltung

Die folgenden Modultests prüfen die fachlichen und systemtechnischen Anforderungen des Moduls Produktverwaltung. Die Testfälle sind so formuliert, dass sie ohne GUI-Abhängigkeiten als automatisierte JUnit-Tests direkt gegen die Geschäftslogik (ProductService) und Datenhaltung (ProductRepository) umgesetzt werden können. Die Zuordnung zu den Anforderungen gewährleistet die vollständige Traceability.

Testfälle

Testfall-ID Testziel / Beschreibung Vorbedingungen Testschritte Erwartetes Ergebnis Abgedeckte Anforderungen
MT-PV-01 Produkt mit vollständigen Pflichtattributen anlegen Kein Produkt mit derselben ID vorhanden Produktobjekt mit Produkt-ID, Bezeichnung, Netto-Einzelpreis und Mehrwertsteuersatz anlegen und speichern Produkt wird erfolgreich in der Liste erfasst und persistent gespeichert F-SH-PV-01
MT-PV-02 Produkt ohne Bezeichnung anlegen System betriebsbereit Produktobjekt ohne Bezeichnung speichern Speicherung wird abgelehnt, eine Fehlermeldung wird erzeugt F-SH-PV-01
MT-PV-03 Produkt ohne Netto-Einzelpreis anlegen System betriebsbereit Produktobjekt ohne Preisangabe speichern Speicherung wird abgelehnt, eine Fehlermeldung wird erzeugt F-SH-PV-01
MT-PV-04 Produkt mit negativem Preis ablehnen System betriebsbereit Produktobjekt mit einem Preis kleiner als 0,00 Euro speichern Speicherung wird blockiert, eine Fehlermeldung wird erzeugt F-SH-PV-06
MT-PV-05 Produkt mit Preis von exakt Null Euro anlegen System betriebsbereit Produktobjekt mit einem Preis von exakt 0,00 Euro speichern Speicherung wird akzeptiert, das Produkt wird angelegt F-SH-PV-06
MT-PV-06 Bestehende Produktattribute bearbeiten Produkt existiert bereits im System Werte für Bezeichnung, Beschreibung oder Kategorie ändern und speichern Geänderte Attribute werden übernommen und aktualisiert angezeigt F-SH-PV-02
MT-PV-07 Validierung der maximalen Beschreibungslänge Produkt existiert bereits im System Beschreibung mit einer Länge von mehr als 500 Zeichen füllen und speichern Speicherung wird wegen Überschreitung der Zeichengrenze abgewiesen F-SH-PV-02
MT-PV-08 Produkt über die Bezeichnung suchen Produkte „Schraube M6“ und „SCHRAUBE M8“ vorhanden Suche mit dem Suchbegriff „schraube“ ausführen Beide Produkte werden unabhängig von Groß-/Kleinschreibung im Suchergebnis zurückgegeben F-SH-PV-05
MT-PV-09 Produktsuche ohne Treffer ausführen Gesuchtes Produkt existiert nicht im System Suche mit einem unbekannten Begriff durchführen Ein leeres Suchergebnis wird zurückgegeben F-SH-PV-05
MT-PV-10 Nicht referenziertes Produkt erfolgreich löschen Produkt existiert und wird in keinem Beleg verwendet Löschvorgang für die Produkt-ID ausführen und anschließend Suche starten Produkt wird gelöscht und kann nicht mehr gefunden werden F-SH-PV-03
MT-PV-11 Referenziertes Produkt gegen Löschung sperren Produkt wird in Angebot, Auftragsbestätigung, Lieferschein oder Rechnung verwendet Löschvorgang für die Produkt-ID ausführen Löschung wird abgewiesen, Produkt bleibt unverändert im System erhalten F-SH-PV-03, GR-05
MT-PV-12 Persistenz der Produktstammdaten nach Neustart prüfen System betriebsbereit Ein Produkt anlegen, speichern und die Daten erneut aus der Datenhaltung laden Daten bleiben nach dem Neuladen vollständig und unverändert erhalten NF-SH-ARCH-01

Abdeckungsübersicht

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
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


Dokumentenprozess

Die folgenden Modultests prüfen die fachlichen Anforderungen des Moduls Dokumentenprozess. Die Testfälle sind so formuliert, dass sie ohne GUI-Abhängigkeiten direkt als JUnit-Tests gegen DokumentService, DokumentRepository, NumberGenerator, FakeProductLookup und FakeCustomerLookup umgesetzt werden können. Dadurch wird die Traceability zwischen den Anforderungen des Pflichtenhefts, den Abnahmekriterien und den Modultests sichergestellt.

Die Tests decken die gesamte Dokumentenkette Angebot → Auftragsbestätigung → Lieferschein → Rechnung sowie Nummernkreise, Statusregeln, Summenberechnung, Preis-Snapshots, PDF-Export und Stammdatenreferenzen vollständig ab.

Testfälle

Testfall-ID Testziel / Beschreibung Vorbedingungen Testschritte Erwartetes Ergebnis Abgedeckte Anforderungen
MT-DP-01 Angebot mit vorhandenem Kunden und Positionen anlegen Kunde 10001 sowie Produkte 20001 und 20002 sind über FakeCustomerLookup und FakeProductLookup vorhanden erstelleAngebot(10001, Positionen mit 2x Produkt 20001 und 1x Produkt 20002) aufrufen Angebot wird gespeichert, Status = OFFEN, Datum = LocalDate.now(), zwei Positionen, Nummer im Format A-yyyy-nnnn PH-DP-01, PH-DP-14, PH-DP-16
MT-DP-02 Summenberechnung im Angebot prüfen Positionen: 2×100,00 EUR (19 % MwSt.) und 1×50,00 EUR (7 % MwSt.) Angebot erstellen / berechneSummen() ausführen Netto = 250,00 EUR, USt. = 41,50 EUR, Brutto = 291,50 EUR PH-DP-01, PH-DP-08, PH-DP-16
MT-DP-03 Fortlaufende Angebotsnummern vergeben Nummernkreis leer Zwei Angebote nacheinander erstellen Nummern A-2026-0001 und A-2026-0002 werden vergeben PH-DP-02, PH-DP-16
MT-DP-04 Offenes Angebot bearbeiten, überführtes Angebot gesperrt OFFENES und UEBERFUEHRTES Angebot existieren OFFEN: ändern; UEBERFUEHRT: aktualisieren OFFEN erfolgreich, UEBERFUEHRT → IllegalStateException PH-DP-03, PH-DP-16
MT-DP-05 Auftragsbestätigung aus Angebot erzeugen Offenes Angebot vorhanden erstelleAuftragsbestaetigung(angebotsNr) AB mit Nummer AB-yyyy-nnnn wird erstellt, Daten übernommen PH-DP-04, PH-DP-16
MT-DP-06 Doppelte Auftragsbestätigung verhindern AB existiert bereits erneute Erstellung DuplicateDocumentException, keine doppelte AB PH-DP-05, PH-DP-16
MT-DP-07 Lieferschein aus Auftragsbestätigung erzeugen AB im Status BESTAETIGT erstelleLieferschein(auftragsNr, lieferdatum) LS-yyyy-nnnn erstellt, Status GELIEFERT, Mengen übernommen PH-DP-06, PH-DP-16
MT-DP-08 Lieferschein ohne Preisfelder bereitstellen Lieferschein vorhanden DTO/Export erzeugen Nur Bezeichnung + Menge, keine Preise enthalten PH-DP-07, PH-DP-16
MT-DP-09 Rechnung aus Lieferschein erzeugen Lieferschein im Status GELIEFERT erstelleRechnung(lieferscheinNr) Rechnung R-yyyy-nnnn mit Pflichtangaben und Summen erstellt PH-DP-08, PH-DP-09, PH-DP-11, PH-DP-16
MT-DP-10 Fehlende Pflichtangaben in Rechnung ablehnen Unvollständige Kundendaten Rechnung erzeugen ValidationException, keine Speicherung PH-DP-09, PH-DP-16
MT-DP-11 Fortlaufende Rechnungsnummern vergeben Mehrere Lieferscheine vorhanden Rechnungen erzeugen Lückenlose Nummernfolge R-yyyy-0001… PH-DP-10, PH-DP-16
MT-DP-12 Festgeschriebene Rechnung ist unveränderbar Rechnung FESTGESCHRIEBEN Änderungen durchführen Änderungen werden blockiert PH-DP-11, PH-DP-16
MT-DP-13 Preis- und MwSt.-Snapshot sichern Produktpreis wird nach Erstellung geändert Angebot erstellen, Preis ändern, neu laden Alte Preise bleiben im Dokument erhalten PH-DP-14, PH-DP-16
MT-DP-14 PDF-Export erzeugt Datei Dokument existiert exportAlsPdf() PDF-Datei wird erstellt (>0 Byte), enthält Nummer + Typ PH-DP-12, PH-DP-16
MT-DP-15 Dokumentenübersicht pro Kunde Mehrere Kunden mit Dokumenten findByKunde(1) Nur Kundendokumente werden zurückgegeben, sortiert PH-DP-13, PH-DP-16
MT-DP-16 Stammdatenreferenzen prüfen Produkte und Kunden vorhanden isProductReferenced / isCustomerReferenced Referenzierte Werte = true, sonst false PH-DP-15, PH-DP-16

Abdeckungsübersicht

Anforderung Abgedeckte Testfälle
PH-DP-01 Angebot anlegen MT-DP-01, MT-DP-02
PH-DP-02 Angebotsnummer vergeben MT-DP-03
PH-DP-03 Angebot bearbeiten MT-DP-04
PH-DP-04 Auftragsbestätigung erzeugen MT-DP-05
PH-DP-05 Doppelte Auftragsbestätigung verhindern MT-DP-06
PH-DP-06 Lieferschein erzeugen MT-DP-07
PH-DP-07 Lieferschein ohne Preise MT-DP-08
PH-DP-08 Rechnung erzeugen MT-DP-02, MT-DP-09
PH-DP-09 Pflichtangaben prüfen MT-DP-09, MT-DP-10
PH-DP-10 Rechnungsnummer fortlaufend MT-DP-11
PH-DP-11 Rechnung festschreiben MT-DP-09, MT-DP-12
PH-DP-12 PDF-Export MT-DP-14
PH-DP-13 Dokumentenübersicht pro Kunde MT-DP-15
PH-DP-14 Preis-Snapshot sichern MT-DP-01, MT-DP-13
PH-DP-15 Stammdatenreferenzen prüfen MT-DP-16
PH-DP-16 Testbare Logik ohne GUI MT-DP-01 bis MT-DP-16

GUI

Die nachfolgende Abdeckungsübersicht zeigt die Zuordnung der definierten Testfälle zu den Anforderungen des Moduls GUI / Programmoberfläche (Gruppe E). Ziel ist es, die Rückverfolgbarkeit (Traceability) zwischen Anforderungen, Akzeptanztests und den geplanten JUnit-Testfällen sicherzustellen.

Jeder Testfall wurde so definiert, dass er eine oder mehrere Anforderungen des Pflichtenhefts überprüft. Dadurch kann nachvollzogen werden, welche Anforderungen bereits getestet werden und ob eine vollständige Testabdeckung erreicht wurde. Die Übersicht dient außerdem als Nachweis dafür, dass sämtliche Muss-Anforderungen sowie die zugehörigen Akzeptanztests durch geeignete Testfälle abgedeckt werden.

Testfälle

Testfall-ID Testziel / Beschreibung Vorbedingungen Testschritte Erwartetes Ergebnis Abgedeckte Anforderungen
TF-GUI-01 Prüfen, ob die Angebotserfassungsmaske geöffnet werden kann Mindestens ein Kunde und ein Produkt sind im System vorhanden Anwendung starten, Angebotserfassung öffnen Maske wird ohne Fehler angezeigt BA-GUI1-01
TF-GUI-02 Prüfen, ob Produkte über ein Dropdown ausgewählt werden können Angebotserfassungsmaske ist geöffnet Dropdown öffnen, Produkt auswählen Gewähltes Produkt wird dem Angebot hinzugefügt BA-GUI-01
TF-GUI-03 Prüfen der Live-Summenaktualisierung bei Mengenänderung Angebot enthält mindestens einen Artikel Artikel auswählen, Menge ändern Gesamtsumme wird sofort neu berechnet BA-GUI-01 AT-GUI-01
TF-GUI-04 Prüfen der Summenberechnung bei mehreren Artikeln Angebotserfassungsmaske ist geöffnet Mehrere Artikel hinzugefügen, Menge festlegen Gesamtsumme entspricht der Summe aller Positionen BA-GUI-01
TF-GUI-05 Prüfen der Erfolgsmeldung nach dem Speichern eines Angebots Angebot enthält Kunde und mindestens einen Artikel Angebot erfassen, Speichern auswählen Erfolgsmeldung wird angezeigt BA-GUI-05
TF-GUI-06 Prüfen der Umwandlung eines angenommenen Angebots in eine Auftragsbestätigung Angebot mit Status „angenommen“ vorhanden Angebot auswählen, "In Auftragsbestätigung umwandeln" ausführen Auftragsbestätigungsmaske wird geöffnet BA-GUI-02,
TF-GUI-07 Prüfen der vollständigen Datenübernahme in die Auftragsbestätigung Angebot mit Status „angenommen“ vorhanden Angebot auswählen, Umwandlung starten Kundendaten, Positionen und Preise werden vollständig übernommen BA-GUI-02, AT-GUI-03
TF-GUI-08 Prüfen der Markierung leerer Pflichtfelder Auftragsbestätigungsmaske geöffnet Liefertermin leer lassen Pflichtfeld für Liefertermin wird farblich markiert BA-GUI-02, AT-GUI-03
TF-GUI-09 Prüfen der Druckvorschau vor dem Speichern einer Rechnung Abrechnungsreifer Lieferschein vorhanden Rechnung aus Lieferschein erzeugen Druckvorschau wird vor dem finalen Speichern angezeigt BA-GUI-03, AT-GUI-04
TF-GUI-10 Prüfen der Statusanzeige nach erfolgreicher Rechnungslegung Rechnung wurde erfolgreich erstellt Rechnung speichern Auftragsstatus wird auf „Abgeschlossen“ gesetzt und durch ein grünes Icon dargestellt BA-GUI-03, AT-GUI-05
TF-GUI-11 Prüfen der Echtzeit-Filterung bei der Belegsuche Mehrere Belege sind im System vorhanden Suchbegriff eingeben Trefferliste wird sofort gefiltert und aktualisiert BA-GUI-04, AT-GUI-06
TF-GUI-12 Prüfen der Anzeige bei einer erfolglosen Suche Mehrere Belege sind im System vorhanden Ungültigen Suchbegriff eingeben Text „Keine Treffer gefunden“ wird angezeigt BA-GUI-04, AT-GUI-07
TF-GUI-13 Prüfen der Sichtbarkeit der PDF-Export-Schaltfläche Beliebiger Beleg wird angezeigt Beleg öffnen Schaltfläche „Als PDF exportieren“ ist sichtbar BA-GUI-05, AT-GUI-08
TF-GUI-14 Prüfen der PDF-Export-Funktion Beleg wird angezeigt Schaltfläche „Als PDF exportieren“ anklicken PDF wird erstellt und Erfolgsmeldung mit Speicherpfad angezeigt BA-GUI-05, AT-GUI-08

Abdeckungsübersicht

Anforderung Abgedeckte Testfälle
BA-GUI-01 Angebotserfassung über grafische Maske TF-GUI-01 bis TF-GUI-05
BA-GUI-02 Auftragsbestätigung über GUI TF-GUI-06 bis TF-GUI-08
BA-GUI-03 Rechnungslegung und Statusanzeige TF-GUI-09, TF-GUI-10
BA-GUI-04 Belegsuche mit Echtzeit-Filterung TF-GUI-11, TF-GUI-12
BA-GUI-05 PDF-Export aus der Belegansicht TF-GUI-13, TF-GUI-14