Files
Projektwissen/docs/vorlagen/testkonzept.md
T
AndreasTharangandClaude Sonnet 5 ab416fb34c Projektwissen: Git-Vorgaben, Ticketzugriff, Tests und Einstieg
Erster Stand des Repositories AG_QGIS/Projektwissen (bisher Arbeitstitel
"Workspace", ADR 0006). Der lokale Ordner heisst weiter AG_QGIS, weil darin
auch die Plugin-Klone liegen.

Git verbindlich (ADR 0007), aus dem bisherigen Wiki-Konzept entwickelt:
- docs/leitfaden/05_git_arbeitsweise.md mit Kanal-Kette, Branch-Namen und
  Gitea-Branch-Schutz.
- Der Einstiegspunkt eines Fixes richtet sich nach dem Kanal, in dem der
  Fehler sitzt; ein Fix an testing oder stable ist erst mit der
  Rueckfuehrung nach unten abgeschlossen. Das fehlte bisher.
- Der stabile Kanal heisst stable, nicht main: der Release-Workflow in
  Repository:hidden/workflows fuehrt git checkout "$CHANNEL" aus, der
  Branchname muss also dem Kanalnamen entsprechen. Er existiert in keinem
  Plugin-Repo und ist vom Maintainer anzulegen.
- Der Mensch drueckt ab: .claude/settings.json sperrt push, merge, tag.
- scripts/hallo.py und /hallo holen den Stand aller Klone, per
  Fast-Forward wo gefahrlos; nie mergen, stashen oder verwerfen.

Ticketzugriff:
- scripts/gitea.py liest Issues, Kommentare und PRs ueber die oeffentliche
  API, ohne Token, nur GET. Schreibendes nur als Entwurf in entwuerfe/.
- Skill sn-ticket.

Tests (ADR 0009):
- docs/leitfaden/06_tests.md: Testebenen, Testpflicht, und wie eine
  Fachperson beurteilt, ob Tests fachlich sinnvoll sind.
- scripts/testkatalog.py erzeugt docs/tests/testkatalog.md per ast-Parsing,
  ohne Import und ohne QGIS. Befund: nur 100 von 332 Tests haben einen
  Docstring, sn_basis keinen einzigen von 87.
- Vorlage und erste Testkonzept-Seite mit Mermaid. Dabei gefunden und gegen
  origin geprueft: _ermittle_gebietstyp_aus_fbschl hat keinen Test, obwohl
  PR #44/#45 genau diese Funktion tolerant gemacht hat.
- docs/konzept/07_qgis_tests_plan.md: Stufenplan fuer Tests gegen echtes
  QGIS. Dabei aufgefallen: QGIS 3.40 ist seit Januar 2026 End of Life,
  qgis_min steht aber noch darauf.

Werkzeuge (ADR 0008):
- 04_werkzeuge_einrichten.md nur noch Claude Code als CLI und in VS Code.
- .vscode/ entfernt, brauchbare Einstellungen als persoenliche Vorlage.

Ausserdem: README als Einstieg neu aufgebaut, Mermaid-Diagramm in
schnittstellen.md repariert (unmaskierte Klammern, rendert seither nicht).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 11:57:26 +02:00

66 lines
2.3 KiB
Markdown

<!--
Vorlage für eine Testkonzept-Seite unter docs/tests/<ablauf>.md.
Zweck: Eine Fachperson soll ohne Blick in den Quelltext beurteilen können, ob die Tests
fachlich das Richtige prüfen. Deshalb: fachliche Sprache, keine Klassennamen im Diagramm.
Erläuterung: docs/leitfaden/06_tests.md Abschnitt 7.
Diesen Kommentar beim Ausfüllen entfernen.
-->
# Testkonzept: <Name des fachlichen Ablaufs>
Plugin: `sn_<paket>` · Stand: <TT.MM.JJJJ> · Pflege: bei jeder Änderung an diesem Ablauf
## Worum es fachlich geht
<Zwei bis vier Sätze aus Sicht der Sachbearbeitung: Was macht der Anwender, was soll dabei herauskommen,
warum ist das wichtig. Keine Dateinamen, keine Funktionsnamen.>
## Der Ablauf
```mermaid
flowchart TD
A["1 <Was der Anwender tut>"] --> B["2 <Was das Plugin daraufhin tut>"]
B --> C{"<Fachliche Entscheidung>"}
C -->|"<Fall a>"| D["3a <Ergebnis>"]
C -->|"<Fall b>"| E["3b <Ergebnis>"]
D --> F["4 <Endzustand>"]
E --> F
```
## Was geprüft wird
| # | Schritt | Wird geprüft durch | Ebene |
|---|---|---|---|
| 1 | <Schritt aus dem Diagramm> | `test_<name>` in `tests/test_<modul>.py` | Mock |
| 2 | <Schritt> | `test_<name>` | Mock |
| 3a | <Fall a> | `test_<name>` | Mock |
| 3b | <Fall b> | — | — |
| 4 | <Endzustand> | manueller Test in QGIS | manuell |
Ebene: `Mock` (ohne QGIS, Sekunden) · `QGIS` (gegen echtes QGIS) · `manuell` (Mensch in QGIS).
Erläuterung der Ebenen: `docs/leitfaden/06_tests.md` Abschnitt 2.
## Fachliche Sonderfälle
Die Fälle, die in der Praxis wirklich vorkommen — hier entscheidet sich, ob die Suite etwas taugt.
| Sonderfall | Kommt vor bei | Wird geprüft durch |
|---|---|---|
| <z. B. leerer Export> | <Situation in der Praxis> | `test_<name>` |
| <z. B. abweichender Feldname> | <Situation> | `test_<name>` |
| <z. B. Datensatz aus dem Nachbarlandkreis> | <Situation> | — |
## Bewusst nicht getestet
| Was | Warum | Wie stattdessen abgesichert |
|---|---|---|
| <Aspekt> | <nachvollziehbarer Grund — „zu aufwendig" ist keiner> | <manueller Test, Review, anderer Test> |
## Bekannte Lücken
| Lücke | Auswirkung | Issue |
|---|---|---|
| <Was fehlt> | <Was im schlimmsten Fall unbemerkt bleibt> | #<nr> |
<Keine Lücken bekannt? Dann hier „Derzeit keine bekannten Lücken." und das Datum der letzten Durchsicht.>