Befund aus dem QGIS-Test (Fenster immer auf dem Hauptbildschirm, im Vollbild nicht zu verlassen) in fallstricke.md festgehalten; Testkonzept, Modulkarte und Testkatalog an das Fenster mit Rahmen und die Pfadanzeige der Korrektur-Datei angepasst. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
94 lines
7.0 KiB
Markdown
94 lines
7.0 KiB
Markdown
# Testkonzept: Anzeige für den Eigentümer und Korrekturen
|
||
|
||
Plugin: `sn_verfahrensgebiet` · Stand: 06.10.2026 · Pflege: bei jeder Änderung an diesem Ablauf
|
||
|
||
## Worum es fachlich geht
|
||
|
||
Im Termin sitzt der Eigentümer vor einem zweiten Bildschirm. Dort sieht er nur seine eigenen gespeicherten Daten:
|
||
Name, Anschrift und E-Mail. Den QGIS-Bildschirm mit Trefferliste, Konten und anderen Personen sieht er nicht.
|
||
Die Sachbearbeitung beginnt zu Beginn der Termine eine Sitzung und schiebt das Anzeigefenster auf den Bildschirm des Eigentümers; beim nächsten Mal erscheint es wieder dort. Für jeden Eigentümer wählt sie in der Trefferliste
|
||
die passenden Einträge und zeigt sie an. Stimmt etwas nicht, korrigiert sie es im Plugin. Der Eigentümer sieht die
|
||
Korrektur sofort. Vor dem nächsten Eigentümer leert sie die Anzeige, ohne das Fenster zu schließen. Am Ende beendet
|
||
sie die Sitzung.
|
||
|
||
Die Eigentümerdatei selbst wird nie verändert. Jede Korrektur landet als eigene Zeile in einer Korrektur-CSV neben
|
||
der Eigentümerdatei und kann später in das Fachverfahren übernommen werden.
|
||
|
||
Die Suche bis zur Trefferliste beschreibt [`verfahrensgebiet-eigentuemersuche.md`](verfahrensgebiet-eigentuemersuche.md).
|
||
|
||
## Der Ablauf
|
||
|
||
```mermaid
|
||
flowchart TD
|
||
A["1 Sitzung beginnen"] --> B["2 Anzeigefenster öffnet leer, mit Rahmen;<br/>Bearbeiter schiebt es auf den zweiten Bildschirm"]
|
||
T["Trefferliste: Einträge wählen,<br/>„Daten anzeigen“"] --> C{"Sitzung läuft?"}
|
||
C -->|nein| A
|
||
C -->|ja| D["3 Eigentümer sieht Name,<br/>Anschrift, E-Mail"]
|
||
B --> D
|
||
D --> E{"4 Daten richtig?"}
|
||
E -->|nein| F["5 Korrigieren: Änderung<br/>in Korrektur-CSV, sofort angezeigt"]
|
||
F --> E
|
||
E -->|ja| G["6 Anzeige leeren<br/>(Fenster bleibt offen)"]
|
||
G --> T
|
||
G --> H["7 Sitzung beenden:<br/>Fenster schließt"]
|
||
|
||
style G fill:#e9f5e9,stroke:#2b8a3e
|
||
```
|
||
|
||
## Was geprüft wird
|
||
|
||
Die Tests liegen in `Plugin_SN_Verfahrensgebiet/tests/test_eigentuemer_anzeige.py` (Anzeigetext, Fenster öffnen),
|
||
`tests/test_eigentuemer_korrektur.py` (Korrekturlogik, Korrektur-CSV) und `tests/test_eigentuemer_tab.py`
|
||
(Sitzung, Korrektur im Tab).
|
||
|
||
| # | Schritt | Wird geprüft durch | Ebene |
|
||
|---|---|---|---|
|
||
| 2 | Sitzung beginnen: leeres Fenster mit Rahmen, nie Vollbild | `test_sitzung_beginnen_oeffnet_leeres_fenster_mit_rahmen`, `test_normales_fenster_in_standardgroesse` | Mock |
|
||
| 2 | Lage des Fensters gilt für die nächste Sitzung | `test_lage_gilt_fuer_naechste_sitzung`, `test_gemerkte_lage_wird_wiederhergestellt`, `test_unbrauchbare_lage_ergibt_standardgroesse` | Mock |
|
||
| 3 | „Daten anzeigen“ beginnt bei Bedarf die Sitzung | `test_daten_anzeigen_beginnt_sitzung_bei_bedarf`, `test_daten_anzeigen_gibt_auswahl_weiter` | Mock |
|
||
| 3 | Ohne Auswahl nur ein Hinweis | `test_daten_anzeigen_ohne_auswahl` | Mock |
|
||
| 3 | Inhalt: Name, Anschrift, E-Mail; mehrere Einträge | `test_name_anschrift_email`, `test_mehrere_eintraege_getrennt` | Mock |
|
||
| 3 | Keine internen Angaben für den Eigentümer | `test_keine_internen_angaben` | Mock |
|
||
| 3 | Fehlende E-Mail ausdrücklich nennen | `test_fehlende_email_wird_genannt` | Mock |
|
||
| 5 | Nur echte Änderungen, Leeren zählt | `test_nur_echte_aenderungen`, `test_feld_leeren_ist_aenderung`, `test_feldwerte` | Mock |
|
||
| 5 | Korrektur festhalten und sofort anzeigen | `test_korrektur_wird_festgehalten_und_angezeigt`, `test_wende_an` | Mock |
|
||
| 5 | Unverändert oder abgebrochen: nichts schreiben | `test_ohne_aenderung_nichts_schreiben`, `test_abbruch_nichts_schreiben` | Mock |
|
||
| 5 | Korrektur-CSV: Kopfzeile, BOM, anhängen | `test_neue_datei_mit_kopfzeile_und_bom`, `test_anhaengen_ohne_zweite_kopfzeile`, `test_ohne_aenderung_keine_datei` | Mock |
|
||
| 5 | Pfad neben der Eigentümerdatei, sonst Rückfrage | `test_textdatei_provider`, `test_ogr_provider`, `test_keine_csv`, `test_vorschlag_neben_der_eigentuemerdatei`, `test_ohne_csv_quelle_wird_gefragt` | Mock |
|
||
| 5 | Schreibfehler | `test_schreibfehler_wird_weitergereicht`, `test_schreibfehler_warnung_und_anzeige_unveraendert` | Mock |
|
||
| 5 | Ohne Anzeige keine Korrektur | `test_ohne_anzeige_keine_korrektur` | Mock |
|
||
| 5 | Pfad der Korrektur-Datei unter den Knöpfen | `test_ohne_eigentuemerdatei`, `test_pfad_neben_der_eigentuemerdatei`, `test_ohne_csv_quelle_wird_abgefragt`, `test_gewaehlter_pfad_wird_angezeigt` | Mock |
|
||
| 6 | Anzeige leeren, Fenster bleibt offen | `test_anzeige_leeren_laesst_fenster_offen`, `test_leer_nur_platzhalter` | Mock |
|
||
| 7 | Sitzung beenden bzw. Fenster von außen geschlossen | `test_sitzung_beenden_schliesst_fenster`, `test_von_aussen_geschlossen_beendet_sitzung` | Mock |
|
||
| — | Keine Personendaten auf der Konsole | `test_schreibt_nichts_auf_die_konsole` | Mock |
|
||
| — | Sieht das in QGIS richtig aus, auf zwei Bildschirmen? | manueller Test | manuell |
|
||
|
||
Ebene: `Mock` (ohne QGIS, Sekunden) · `QGIS` (gegen echtes QGIS) · `manuell` (Mensch in QGIS).
|
||
|
||
## Fachliche Sonderfälle
|
||
|
||
| Sonderfall | Kommt vor bei | Wird geprüft durch |
|
||
|---|---|---|
|
||
| Nur ein Bildschirm (Notebook) | Termin ohne zweiten Monitor, Ausprobieren | `test_normales_fenster_in_standardgroesse` (immer mit Rahmen, verdeckt QGIS nie ausweglos) |
|
||
| Eheleute oder Miteigentümer erscheinen gemeinsam | mehrere Einträge auf einmal anzeigen und einzeln korrigieren | `test_mehrere_eintraege_getrennt`, `test_korrektur_wird_festgehalten_und_angezeigt` |
|
||
| Eigentümer hat keine E-Mail hinterlegt | häufig; soll beim Termin ergänzt werden | `test_fehlende_email_wird_genannt` |
|
||
| Neue Anschrift mit Komma („Am Anger 3, Haus B“) | Zusatz zur Hausnummer | `test_neue_datei_mit_kopfzeile_und_bom` |
|
||
| Eigentümerdatei liegt in einem schreibgeschützten Ordner | Export auf einem Netzlaufwerk ohne Schreibrecht | `test_ohne_csv_quelle_wird_gefragt` (Rückfrage), `test_schreibfehler_warnung_und_anzeige_unveraendert` |
|
||
| Sonderzeichen oder spitze Klammern in den Daten | Firmennamen | `test_werte_werden_maskiert` |
|
||
|
||
## Bewusst nicht getestet
|
||
|
||
| Was | Warum | Wie stattdessen abgesichert |
|
||
|---|---|---|
|
||
| Wiederherstellen der Lage auf dem zweiten Bildschirm | braucht echte Bildschirme; im Mock-Modus gibt es keine | Aufruf mit Attrappe geprüft, manueller Test mit zwei Bildschirmen |
|
||
| Korrekturdialog mit echten Eingabefeldern | im Mock-Modus gibt es keine Widgets; die Vorbelegung (`feldwerte`) und die Auswertung sind als reine Funktionen getestet | manueller Test |
|
||
| Schriftgröße und Lesbarkeit der Anzeige | Geschmack und Bildschirmgröße | manueller Test im Termin |
|
||
|
||
## Bekannte Lücken
|
||
|
||
| Lücke | Auswirkung | Issue |
|
||
|---|---|---|
|
||
| Wiederherstellen der Lage in der nächsten Sitzung ist in QGIS noch nicht bestätigt | Das Fenster erscheint dann wieder auf dem Hauptbildschirm und muss erneut verschoben werden – lästig, aber gefahrlos | Verfahrensgebiet #56 |
|
||
| Die Lage wird nur bis zum Neustart von QGIS gemerkt | nach jedem Start einmal verschieben | bei Bedarf eigenes Issue (QSettings) |
|
||
| Eine neue Suche leert die Anzeige nicht von selbst | Wer „Anzeige leeren“ vergisst, zeigt dem nächsten Eigentümer noch die vorherigen Daten | bewusst so (Bearbeiter entscheidet); bei Bedarf eigenes Issue |
|