93 lines
5.0 KiB
Markdown
93 lines
5.0 KiB
Markdown
# AP11 – M1-Abnahme
|
||
|
||
## Ziel
|
||
|
||
Der letzte Schritt in M1: Alles wird gegen die Meilenstein-Abnahmekriterien aus `docs/specs/meilensteine.md` v3 **geprüft**, ein **End-to-End-Lauf** mit einer Minimal-Eingabedatei wird durchgeführt, und alle AP-Berichte werden in einem **konsolidierten M1-Abschlussbericht** zusammengeführt.
|
||
|
||
## Voraussetzungen
|
||
|
||
- AP01 bis AP10 abgeschlossen und grün
|
||
- alle AP-Berichte liegen in `docs/arbeitspakete/m1/berichte/` vor
|
||
|
||
## Scope IN
|
||
|
||
### End-to-End-Lauf
|
||
1. **Minimaldatei erstellen**: eine einfache Dummy-Textdatei im ISO-8859-15-Encoding, z.B. `test-artefakte/m1/minimal.txt` mit ein paar Zeilen Inhalt. Keine echten ASV-Daten, kein gültiges EDIFACT — dies ist nur ein Lauftest, kein Fachtest.
|
||
2. **JAR bauen**: `mvn clean package`
|
||
3. **Lauf 1**: `java -jar target/asv-format-validator-0.0.1-SNAPSHOT.jar test-artefakte/m1/minimal.txt`
|
||
- **Erwartung:** Exit-Code `0` (Dummy-Pfad, leerer Report), Berichtdatei `minimal.txt.txt` und Log-Datei `minimal.txt.log` entstehen, Konsolenausgabe vorhanden
|
||
4. **Lauf 2**: identischer Aufruf
|
||
- **Erwartung:** `minimal.txt_v1.txt` und `minimal.txt_v1.log` entstehen
|
||
5. **Lauf 3**: `java -jar ... nicht-vorhanden.txt`
|
||
- **Erwartung:** Exit-Code `2`, Minimalbericht auf Konsole, gegebenenfalls Berichtdatei im übergeordneten Verzeichnis wenn schreibbar
|
||
6. **Lauf 4**: `java -jar ...` (ohne Argument)
|
||
- **Erwartung:** Exit-Code `2`, Minimalbericht **nur** auf Konsole
|
||
7. **Lauf 5**: `java -jar ... datei1.txt datei2.txt`
|
||
- **Erwartung:** Exit-Code `2`, Minimalbericht auf Konsole
|
||
|
||
Alle fünf Läufe werden im M1-Abschlussbericht dokumentiert (Befehl, Exit-Code, relevante Ausgabe).
|
||
|
||
### Meilenstein-Abnahmeprüfung
|
||
Jeder Abnahmepunkt aus `docs/specs/meilensteine.md` v3 Abschnitt „Abnahme von M1" wird mit einem konkreten Nachweis verknüpft:
|
||
|
||
| M1-Abnahmekriterium | Nachweis | Status |
|
||
|---|---|---|
|
||
| Anwendung ist als JAR unter Windows mit Java 21 startbar | Lauf 1, JAR-Pfad | ✅ |
|
||
| falsches oder fehlendes Argument → Exit-Code `2` mit Minimalbericht | Lauf 3, 4, 5 | ✅ |
|
||
| Bericht- und Log-Datei werden im Eingabeverzeichnis mit korrekter Suffix-Logik erzeugt | Lauf 1 + Lauf 2 | ✅ |
|
||
| Log4j2-Bindung ist außerhalb von Bootstrap und Logging-Adapter nicht sichtbar | Architekturtest AP10, Test 1 | ✅ |
|
||
| Befundmodell unterscheidet Spec-Urteil und diagnostische Weiteranalyse | Unit-Test AP05 | ✅ |
|
||
| Build und Tests sind grün | `mvn clean verify` | ✅ |
|
||
|
||
### M1-Abschlussbericht
|
||
- Datei: `docs/arbeitspakete/m1/berichte/M1-abschlussbericht.md`
|
||
- Inhalt:
|
||
- **Zusammenfassung**: Was ist M1 geworden, in zwei Absätzen
|
||
- **AP-Übersicht**: Tabelle mit allen 11 APs, Status, Commit-Hashes, Abschlussdatum
|
||
- **Meilenstein-Abnahmetabelle** (siehe oben)
|
||
- **End-to-End-Protokoll**: die fünf Läufe mit Befehl, Exit-Code, Zusammenfassung der Ausgabe
|
||
- **Quality-Metriken** (Coverage, Testanzahl — **keine harten Gates in M1**, nur Informationswert)
|
||
- **Rest-Risiken und übertragene Punkte** aus allen AP-Berichten konsolidiert
|
||
- **Empfehlungen für M2**: Was sollte M2 beachten? Was ist aus M1-Sicht offen geblieben?
|
||
- **Commit-Graph-Snapshot**: `git log --oneline --graph main` für den M1-Zeitraum
|
||
- Freigabe-Vermerk am Ende: „M1 ist abnahmebereit" oder „M1 ist mit folgenden Einschränkungen abnahmebereit: ..."
|
||
|
||
### Tagging
|
||
- Git-Tag `m1-done` auf dem letzten AP11-Commit setzen
|
||
- Tag-Message: „Meilenstein 1 abgeschlossen, siehe docs/arbeitspakete/m1/berichte/M1-abschlussbericht.md"
|
||
|
||
## Scope OUT
|
||
|
||
- Vorgriffe auf M2-Themen (Dateinamensschemata, globale Rahmenregeln, ISO-8859-15 über Dateinamen hinaus — außer dem Einlese-Encoding aus AP06, das bleibt)
|
||
- Release-Builds, Signierung, Publizierung
|
||
- Externe Reviews (die kommen vom Rezensenten der Arbeitspakete, nicht aus diesem AP)
|
||
|
||
## Schritte
|
||
|
||
1. Branch `m1/ap11-abnahme`
|
||
2. Test-Artefakt `test-artefakte/m1/minimal.txt` anlegen (ISO-8859-15, 3–5 Zeilen Dummy-Inhalt)
|
||
3. `mvn clean package` ausführen
|
||
4. Die fünf Läufe durchführen und protokollieren
|
||
5. Konsolidierten M1-Abschlussbericht schreiben
|
||
6. `mvn clean verify` ein letztes Mal laufen lassen
|
||
7. Commit `M1-AP11: M1-Abnahme, End-to-End-Protokoll, konsolidierter Abschlussbericht`
|
||
8. Git-Tag `m1-done` setzen: `git tag -a m1-done -m "Meilenstein 1 abgeschlossen"`
|
||
|
||
## Abnahmekriterien
|
||
|
||
- `test-artefakte/m1/minimal.txt` existiert
|
||
- alle fünf Läufe sind protokolliert
|
||
- M1-Abschlussbericht existiert und enthält alle oben genannten Abschnitte
|
||
- Meilenstein-Abnahmetabelle ist vollständig und jede Zeile hat einen konkreten Nachweis
|
||
- `mvn clean verify` ist grün
|
||
- Git-Tag `m1-done` ist gesetzt
|
||
- der Freigabe-Vermerk am Ende des Abschlussberichts ist explizit
|
||
|
||
## Rest-Risiken und offene Punkte
|
||
|
||
- Dieser AP ist ein reines Zusammenfassungs-AP. Wenn hier Abnahmekriterien nicht erfüllt sind, zeigt das, dass ein früheres AP unvollständig war. In dem Fall: **zurück zum betroffenen AP**, nachbessern, dann AP11 wiederholen. Keine Abkürzungen.
|
||
|
||
## Bericht
|
||
|
||
`docs/arbeitspakete/m1/berichte/AP11-bericht.md` nach `templates/ap-bericht.md` **zusätzlich** zum konsolidierten `M1-abschlussbericht.md`.
|