Deutsche Umlaute in UI und Dokumentation korrigieren
This commit is contained in:
@@ -2,14 +2,14 @@
|
||||
|
||||
Stand: 2026-07-12
|
||||
|
||||
Da kein alter MS-SQL-Datenbankstand verfuegbar ist, wird M1 als rekonstruierter
|
||||
Da kein alter MS-SQL-Datenbankstand verfügbar ist, wird M1 als rekonstruierter
|
||||
Golden Master aufgebaut. Die Referenz entsteht aus Legacy-Code, Screenshots und
|
||||
kontrollierten Testdaten in der MySQL-Dev-Datenbank.
|
||||
|
||||
## Ziel
|
||||
|
||||
Die wichtigsten fachlichen Regeln werden mit kleinen, nachvollziehbaren
|
||||
Testfaellen festgeschrieben. Diese Tests dienen spaeter als Sicherheitsnetz fuer
|
||||
Testfällen festgeschrieben. Diese Tests dienen später als Sicherheitsnetz für
|
||||
die SaaS-Umstrukturierung.
|
||||
|
||||
## Testdaten-Gruppen
|
||||
@@ -28,7 +28,7 @@ die SaaS-Umstrukturierung.
|
||||
- Mehrere Einzahlungen an unterschiedlichen Tagen.
|
||||
- Strichbuchung mit einem Strich.
|
||||
- Strichbuchung mit zwei Strichen.
|
||||
- Sammelerfassung fuer mehrere Teilnehmer.
|
||||
- Sammelerfassung für mehrere Teilnehmer.
|
||||
- Web-Strich-Eintrag mit `Eintragsart = 2`.
|
||||
|
||||
### Salden
|
||||
@@ -36,13 +36,13 @@ die SaaS-Umstrukturierung.
|
||||
- Positiver Kontostand.
|
||||
- Negativer Kontostand.
|
||||
- Nullsaldo.
|
||||
- Jahreswerte fuer aktuelles Jahr.
|
||||
- Jahreswerte für aktuelles Jahr.
|
||||
- Altdaten aus Vorjahr, die nicht in Jahreswerte fallen.
|
||||
|
||||
### CSV-Import
|
||||
|
||||
- Treffer ueber Name.
|
||||
- Treffer ueber `paypalname`.
|
||||
- Treffer über Name.
|
||||
- Treffer über `paypalname`.
|
||||
- Dublette gleicher Teilnehmer, Betrag und Datum.
|
||||
- Unbekannter Name.
|
||||
- Negativer oder leerer Betrag.
|
||||
@@ -51,11 +51,11 @@ die SaaS-Umstrukturierung.
|
||||
|
||||
- Aktiver Hinweis.
|
||||
- Abgelaufener Hinweis.
|
||||
- Neuer Hinweis ueber Admin-Formular.
|
||||
- Neuer Hinweis über Admin-Formular.
|
||||
|
||||
## Erwartete Referenzwerte
|
||||
|
||||
Fuer jeden Testfall sollen erwartete Werte dokumentiert werden:
|
||||
Für jeden Testfall sollen erwartete Werte dokumentiert werden:
|
||||
|
||||
- Summe Einzahlungen.
|
||||
- Summe Kosten.
|
||||
@@ -72,25 +72,25 @@ Fuer jeden Testfall sollen erwartete Werte dokumentiert werden:
|
||||
Seed-Skript anlegen. Erledigt mit `scripts/seed-golden-master.php`.
|
||||
2. `scripts/init-mysql-dev.php` so erweitern, dass es die Testdaten idempotent
|
||||
anlegt. Entschieden: Golden-Master-Daten bleiben in einem separaten Skript,
|
||||
damit normale Dev-Daten nicht zwangsweise ueberschrieben werden.
|
||||
damit normale Dev-Daten nicht zwangsweise überschrieben werden.
|
||||
3. Ein erstes Vergleichsskript `scripts/check-golden-master.php` erstellen.
|
||||
Erledigt.
|
||||
4. Die wichtigsten Seiten per HTTP abrufen und auf erwartete Texte/Werte
|
||||
pruefen. Erledigt mit `scripts/http-smoke.php`.
|
||||
5. Danach M2 starten: technisches Fundament fuer SaaS-Struktur. M1 ist als
|
||||
prüfen. Erledigt mit `scripts/http-smoke.php`.
|
||||
5. Danach M2 starten: technisches Fundament für SaaS-Struktur. M1 ist als
|
||||
Sicherheitsnetz nutzbar; offene Dependency-Themen sind unten dokumentiert.
|
||||
|
||||
## Skripte
|
||||
|
||||
- `scripts/dev-db.php`: gemeinsame DB-Verbindung fuer Dev-Skripte.
|
||||
- `scripts/dev-db.php`: gemeinsame DB-Verbindung für Dev-Skripte.
|
||||
- `scripts/golden-master-data.php`: definierte Testdaten und erwartete Werte.
|
||||
- `scripts/seed-golden-master.php`: legt Golden-Master-Testdaten idempotent an.
|
||||
- `scripts/check-golden-master.php`: prueft Salden, Jahreswerte, Rollen,
|
||||
- `scripts/check-golden-master.php`: prüft Salden, Jahreswerte, Rollen,
|
||||
Listenfilter, CSV-Lookup und Hinweise.
|
||||
- `scripts/http-smoke.php`: ruft sichere GET-Seiten per HTTP ab und prueft auf
|
||||
- `scripts/http-smoke.php`: ruft sichere GET-Seiten per HTTP ab und prüft auf
|
||||
HTTP 200, erwartete Texte und PHP-Fehlermarker.
|
||||
|
||||
## Ausfuehrung
|
||||
## Ausführung
|
||||
|
||||
Mit normal installierter PHP-CLI:
|
||||
|
||||
@@ -122,7 +122,7 @@ LD_LIBRARY_PATH="$PWD/.local/php/usr/lib/x86_64-linux-gnu" \
|
||||
Die Skripte erwarten die bekannten Dev-Umgebungsvariablen `DB_HOST`, `DB_NAME`,
|
||||
`DB_USER` und `DB_PASS`.
|
||||
|
||||
## Abgedeckte Testfaelle
|
||||
## Abgedeckte Testfälle
|
||||
|
||||
| Testfall | Fixture |
|
||||
| --- | --- |
|
||||
@@ -131,77 +131,77 @@ Die Skripte erwarten die bekannten Dev-Umgebungsvariablen `DB_HOST`, `DB_NAME`,
|
||||
| Negativer Saldo | `gm-negative@test.local` |
|
||||
| Nullsaldo | `gm-zero@test.local` |
|
||||
| Inaktives Mitglied | `gm-inactive@test.local` |
|
||||
| PayPal-Name fuer CSV-Lookup | `gm-paypal@test.local` |
|
||||
| PayPal-Name für CSV-Lookup | `gm-paypal@test.local` |
|
||||
| Mitglied ohne Buchungen | `gm-empty@test.local` |
|
||||
| Vieltrinker fuer Vorderseite | `gm-heavy@test.local` |
|
||||
| Aktiver Hinweis | `[GM] Aktiver Hinweis fuer Golden-Master-Test` |
|
||||
| Abgelaufener Hinweis | `[GM] Abgelaufener Hinweis fuer Golden-Master-Test` |
|
||||
| Vieltrinker für Vorderseite | `gm-heavy@test.local` |
|
||||
| Aktiver Hinweis | `[GM] Aktiver Hinweis für Golden-Master-Test` |
|
||||
| Abgelaufener Hinweis | `[GM] Abgelaufener Hinweis für Golden-Master-Test` |
|
||||
|
||||
## HTTP-Smoke-Abdeckung
|
||||
|
||||
Der HTTP-Smoke-Test prueft nur GET-Seiten ohne bekannte Schreib- oder
|
||||
Der HTTP-Smoke-Test prüft nur GET-Seiten ohne bekannte Schreib- oder
|
||||
Versand-Nebenwirkungen.
|
||||
|
||||
| Seite | Erwartung |
|
||||
| --- | --- |
|
||||
| `index.php` | Dashboard laedt fuer `Test Admin` |
|
||||
| `stricheintragen.php` | Stricherfassung laedt |
|
||||
| `einzahlung.php` | Einzahlungserfassung laedt |
|
||||
| `kaffeeliste.php` | Gesamtuebersicht laedt |
|
||||
| `mitarbeiterverwalten.php` | Mitgliederverwaltung inkl. `PayPal-Name` laedt |
|
||||
| `index.php` | Dashboard lädt für `Test Admin` |
|
||||
| `stricheintragen.php` | Stricherfassung lädt |
|
||||
| `einzahlung.php` | Einzahlungserfassung lädt |
|
||||
| `kaffeeliste.php` | Gesamtübersicht lädt |
|
||||
| `mitarbeiterverwalten.php` | Mitgliederverwaltung inkl. `PayPal-Name` lädt |
|
||||
| `letzteneintraege.php` | letzte Einzahlungen und Striche laden |
|
||||
| `csvupload.php` | CSV-Upload-Formular laedt |
|
||||
| `hinweise.php` | Hinweisverwaltung laedt |
|
||||
| `faq.php` | FAQ laedt |
|
||||
| `namenanpassen.php` | Namensanpassung laedt |
|
||||
| `teilnehmerauswertung.php?user_id=1` | Teilnehmerauswertung fuer Dev-Admin laedt |
|
||||
| `mailausgebe.php` | Mailadress-Ausgabe laedt |
|
||||
| `umfrage.php` | geschlossene Umfrage laedt |
|
||||
| `umfrageergebnisse.php` | Umfrageauswertung laedt |
|
||||
| `csvupload.php` | CSV-Upload-Formular lädt |
|
||||
| `hinweise.php` | Hinweisverwaltung lädt |
|
||||
| `faq.php` | FAQ lädt |
|
||||
| `namenanpassen.php` | Namensanpassung lädt |
|
||||
| `teilnehmerauswertung.php?user_id=1` | Teilnehmerauswertung für Dev-Admin lädt |
|
||||
| `mailausgebe.php` | Mailadress-Ausgabe lädt |
|
||||
| `umfrage.php` | geschlossene Umfrage lädt |
|
||||
| `umfrageergebnisse.php` | Umfrageauswertung lädt |
|
||||
|
||||
## Akzeptanzkriterien
|
||||
|
||||
- Testdaten sind reproduzierbar.
|
||||
- Tests koennen mehrfach laufen, ohne Duplikate zu erzeugen.
|
||||
- Salden und Jahreswerte sind automatisch pruefbar.
|
||||
- CSV-Importfaelle sind fachlich abgedeckt.
|
||||
- Tests können mehrfach laufen, ohne Duplikate zu erzeugen.
|
||||
- Salden und Jahreswerte sind automatisch prüfbar.
|
||||
- CSV-Importfälle sind fachlich abgedeckt.
|
||||
- Die wichtigsten UI-Seiten liefern HTTP 200 ohne PHP-Warnings.
|
||||
- Seiten mit Schreib- oder Versand-Nebenwirkungen werden nicht automatisch per
|
||||
GET ausgefuehrt, sondern als Risiko dokumentiert.
|
||||
GET ausgeführt, sondern als Risiko dokumentiert.
|
||||
|
||||
## Gefundene Fehler und Bewertung
|
||||
|
||||
Im M1-Abschlusslauf wurden folgende Punkte geprueft:
|
||||
Im M1-Abschlusslauf wurden folgende Punkte geprüft:
|
||||
|
||||
- `number_format(null)` in `kaffeeliste.php`: behoben; leere Summen werden als
|
||||
`0` behandelt.
|
||||
- `paypalname` in der Mitgliederverwaltung: eingepflegt und im Golden Master
|
||||
abgedeckt.
|
||||
- `umfrage.php`: `mb_strtolower()` ist in der lokalen PHP-Umgebung nicht
|
||||
verfuegbar; Fallback auf `strtolower()` ergaenzt.
|
||||
verfügbar; Fallback auf `strtolower()` ergänzt.
|
||||
- `exportKaffeeliste.php`: Pfad auf `TCPDF/tcpdf.php` korrigiert. Der Export
|
||||
bleibt trotzdem als bekannter Dependency-Fehler offen, weil die TCPDF-Kopie im
|
||||
Repo unvollstaendig ist und `TCPDF/include/tcpdf_font_data.php` fehlt.
|
||||
- `mailversenden.php`: nicht automatisch per HTTP ausgefuehrt, weil ein GET bei
|
||||
vollstaendiger PHPMailer-Installation E-Mails versenden kann. Zusaetzlich ist
|
||||
die PHPMailer-Kopie im Repo unvollstaendig.
|
||||
- `jahresauswertung.php`: nicht automatisch per HTTP ausgefuehrt, weil ein GET
|
||||
Jahresbuchungen schreiben und E-Mails versenden kann. Zusaetzlich ist die
|
||||
PHPMailer-Kopie im Repo unvollstaendig.
|
||||
Repo unvollständig ist und `TCPDF/include/tcpdf_font_data.php` fehlt.
|
||||
- `mailversenden.php`: nicht automatisch per HTTP ausgeführt, weil ein GET bei
|
||||
vollständiger PHPMailer-Installation E-Mails versenden kann. Zusätzlich ist
|
||||
die PHPMailer-Kopie im Repo unvollständig.
|
||||
- `jahresauswertung.php`: nicht automatisch per HTTP ausgeführt, weil ein GET
|
||||
Jahresbuchungen schreiben und E-Mails versenden kann. Zusätzlich ist die
|
||||
PHPMailer-Kopie im Repo unvollständig.
|
||||
|
||||
## Aktueller Pruefstatus
|
||||
## Aktueller Prüfstatus
|
||||
|
||||
Stand 2026-07-12:
|
||||
|
||||
- `scripts/seed-golden-master.php` erfolgreich gegen die MySQL-Dev-Datenbank
|
||||
ausgefuehrt.
|
||||
- `scripts/check-golden-master.php` erfolgreich ausgefuehrt.
|
||||
- Zweiter Seed+Check-Lauf erfolgreich, Idempotenz bestaetigt.
|
||||
ausgeführt.
|
||||
- `scripts/check-golden-master.php` erfolgreich ausgeführt.
|
||||
- Zweiter Seed+Check-Lauf erfolgreich, Idempotenz bestätigt.
|
||||
- Ergebnis: 104 Assertions bestanden.
|
||||
- `scripts/http-smoke.php` erfolgreich gegen `http://127.0.0.1:8080`
|
||||
ausgefuehrt.
|
||||
ausgeführt.
|
||||
- Ergebnis: 14 sichere Seiten bestanden ohne `Deprecated`, `Warning`,
|
||||
`Fatal error`, `Parse error`, `Notice` oder `Uncaught Error`.
|
||||
- Bekannter offener Punkt: PDF-Export wegen unvollstaendiger TCPDF-Abhaengigkeit.
|
||||
- Bewusst nicht automatisch ausgefuehrt: `mailversenden.php` und
|
||||
- Bekannter offener Punkt: PDF-Export wegen unvollständiger TCPDF-Abhängigkeit.
|
||||
- Bewusst nicht automatisch ausgeführt: `mailversenden.php` und
|
||||
`jahresauswertung.php`, da GET dort Nebenwirkungen haben kann.
|
||||
|
||||
Reference in New Issue
Block a user