SE1_Team_1/Modultestplan_GruppeA.md

9.2 KiB
Raw Blame History

title subtitle author version lang toc toc-depth numbersections papersize geometry fontsize linestretch mainfont sansfont monofont header-includes
Modultestplan Desktop-Fakturierungsanwendung — Gruppe A: Prozess / Dokumentenzyklus
Team 1 Gruppe A
1.0 de-DE true 3 false a4 margin=3cm 12pt 1.5 Times New Roman Arial DejaVu Sans Mono \usepackage{fancyhdr} \usepackage{lastpage} \pagestyle{fancy} \fancyhf{} \fancyhead[L]{Team 1 Gruppe A} \fancyhead[C]{Modultestplan} \fancyhead[R]{Version 1.0} \fancyfoot[C]{\thepage\ /\ \pageref{LastPage}} \renewcommand{\headrulewidth}{0.4pt} \renewcommand{\footrulewidth}{0pt}

\newpage

+-------------------------+-------------------------+-------------------------+ | Autor | Prüfer | Freigebender | +=========================+=========================+=========================+ | Strubel, Lucas | Prof. Dr. Marmitt, Gerd | Prof. Dr. Marmitt, Gerd | +-------------------------+-------------------------+-------------------------+ | Gruppe A (Prozess) | Modulverantwortlicher | Modulverantwortlicher | +-------------------------+-------------------------+-------------------------+ | 15.06.2026 | 15.06.2026 | 15.06.2026 | +-------------------------+-------------------------+-------------------------+

Freigabevermerk: Dieses Dokument ist nach Prüfung und Freigabe durch den Modulverantwortlichen verbindliche Grundlage für den Modultest der Komponente Prozess / Dokumentenzyklus.

Dokumentenhistorie

Version Datum Autor Grund der Änderung
1.0 15.06.2026 Lucas Strubel Initiale Erstellung (ausgegliedert aus Pflichtenheft Gruppe A v1.2)

\newpage

1. Einleitung

1.1 Zweck des Dokuments

Dieser Modultestplan spezifiziert die Modul-/Komponententests der Komponente Prozess / Dokumentenzyklus (Gruppe A). Er leitet sich direkt aus dem Pflichtenheft Gruppe A (ab Version 1.2) ab — insbesondere aus den funktionalen Anforderungen (Kapitel 4), den Daten und Schnittstellen (Kapitel 6) sowie den testbaren Abnahmekriterien (Kapitel 8) — und überführt diese in deterministische, mit JUnit umsetzbare Testfälle.

1.2 Rahmenbedingungen

Die folgenden Testfälle sind deterministisch (feste Ein-/Ausgaben) und mit JUnit 5 umsetzbar. Geldbeträge werden als BigDecimal mit Scale 2 erwartet (assertEquals(new BigDecimal("119.00"), …) bzw. compareTo). Die Schnittstellen der Gruppen B (Produkte) und C (Kunden) sowie der PDF-Export werden in den Tests durch Stubs ersetzt.

2. Testfälle

+-------+--------------------+-----------------------------+---------------------------+-----------------------------+ | TC | Abgedeckte PH-Anf. | Vorbedingung | Eingabe | Erwartetes Ergebnis | +=======+====================+=============================+===========================+=============================+ | TC-01 | F-23, F-03 | Position mit Netto 100.00 | berechne() | Steuer = 19.00, Brutto = | | | | €, Steuersatz 0.19 | | 119.00 (Scale 2) | +-------+--------------------+-----------------------------+---------------------------+-----------------------------+ | TC-02 | F-23 | Einzelpreis 50.00 €, | Positionssumme | positionssummeNetto = | | | | Menge 3 | berechnen | 150.00 | +-------+--------------------+-----------------------------+---------------------------+-----------------------------+ | TC-03 | F-03, F-13 | Beleg mit 2 Positionen | Summen berechnen | summeNetto = 200.00, | | | | (150.00 € @ 0.19; | | summeSteuer = 32.00, | | | | 50.00 € @ 0.07) | | summeBrutto = 232.00 | +-------+--------------------+-----------------------------+---------------------------+-----------------------------+ | TC-04 | F-12, GR-01 | Letzte Rechnungsnummer | naechsteNummer | liefert R-2026-000124 | | | | R-2026-000123 | (RECHNUNG, 2026) | (lückenlos) | +-------+--------------------+-----------------------------+---------------------------+-----------------------------+ | TC-05 | F-12 (Format) | Zähler = 7, Jahr 2026 | naechsteNummer | liefert R-2026-000007 | | | | | (RECHNUNG, 2026) | (führende Nullen, String) | +-------+--------------------+-----------------------------+---------------------------+-----------------------------+ | TC-06 | F-14, GR-06 | Rechnungsdatum 2026-06-09, | Rechnung erstellen | zahlungsziel = | | | | kein Zahlungsziel | | 2026-06-23 (+14 Tage) | +-------+--------------------+-----------------------------+---------------------------+-----------------------------+ | TC-07 | F-14 | Rechnungsdatum 2026-06-09, | Rechnung erstellen | zahlungsziel = 2026-07-31 | | | | Zahlungsziel 2026-07-31 | | (übernommen) | +-------+--------------------+-----------------------------+---------------------------+-----------------------------+ | TC-08 | F-24, NF-INT-01 | Rechnung im Status | setzePosition(...) / | wirft | | | | VERSENDET | Änderung | IllegalStateException | +-------+--------------------+-----------------------------+---------------------------+-----------------------------+ | TC-09 | F-19, F-20 | Rechnung im Status OFFEN | storniere() | Status = STORNIERT; | | | | | | nicht in | | | | | | offeneRechnungen(); | | | | | | storniertAm gesetzt | +-------+--------------------+-----------------------------+---------------------------+-----------------------------+ | TC-10 | F-22, GR-05 | Angebot AN-2026-000001 | ausAngebot(angebot) | AB übernimmt Kunde/ | | | | mit Kunde + 2 Positionen | (AB erzeugen) | Positionen/Mengen; | | | | | | vorgaengerNr = | | | | | | "AN-2026-000001" | +-------+--------------------+-----------------------------+---------------------------+-----------------------------+ | TC-11 | F-23, F-24 | Rechnung mit Produkt @ | erste Rechnung erneut | einzelpreisNetto bleibt | | | | 50.00 €; danach | lesen | 50.00 (Snapshot | | | | Produktpreis → 80.00 € | | unverändert) | +-------+--------------------+-----------------------------+---------------------------+-----------------------------+ | TC-12 | F-18, NF-USE-02 | Rechnung ohne Kunde | speichere() | Speichern abgelehnt; | | | | oder ohne Position | | Validierungsfehler benennt | | | | | | fehlendes Pflichtfeld | +-------+--------------------+-----------------------------+---------------------------+-----------------------------+ | TC-13 | F-11, F-12, F-13 | Kunde + 1 Position | vollständige Rechnung | Rechnung gespeichert, | | | | vorhanden | erstellen | Nummer vergeben, alle | | | | | | § 14 UStG-Pflichtangaben | | | | | | gesetzt | +-------+--------------------+-----------------------------+---------------------------+-----------------------------+

Damit sind 13 Testfälle (> 10) spezifiziert, die alle funktionalen Kernregeln (F-12, F-14, F-18, F-22, F-23, F-24) sowie die zentralen Geschäftsregeln (GR-01, GR-02, GR-03, GR-05, GR-06) abdecken.

3. Abkürzungen

Abkürzung Bedeutung
TC Testfall (Test Case)
F Funktionale Anforderung (Pflichtenheft)
NF Nicht-funktionale Anforderung (Pflichtenheft)
GR Geschäftsregel (Lastenheft)
Q Qualitätsanforderung (Lastenheft)
PH Pflichtenheft