Führt eine manuelle Test-Checkliste (eine schlichte Markdown-Datei) Punkt für Punkt mit dem Tester durch und schreibt die Ergebnisse in dieselbe Datei zurück. Ein Fenster statt einer abgehakten Papierliste: Vorbereitung, Datei und Klickfolge stehen sichtbar da, jede Einzelfrage bekommt ihren eigenen Haken und ihre eigene Notiz.
Gedacht für Projekte, deren Oberfläche sich nicht sinnvoll automatisiert testen lässt — die Checkliste liegt als Textdatei im Repository, wird also mitversioniert und ist ohne Server, Konto oder Datenbank nutzbar.
Voraussetzung: Python 3.9+ mit Tkinter (unter Windows im Standard-Installer enthalten). Keine weiteren Abhängigkeiten.
python testwizard.py # Checkliste im aktuellen Ordner führen
python testwizard.py --projekt ../MeinApp # Checkliste eines anderen Ordners
python testwizard.py --checkliste UI.md # genau diese Datei
python testwizard.py --abschnitt 14 # direkt bei Abschnitt 14 beginnenOhne Angaben sucht der Wizard MANUELLE_TESTS.md im aktuellen Verzeichnis. MANUELLE_TESTS.beispiel.md in diesem Repository zeigt den Aufbau und lässt sich als Vorlage kopieren.
Normales Markdown — die Datei bleibt ohne den Wizard lesbar und in jedem Editor bearbeitbar:
## 3. Suche
* [ ] **T3.1 Volltextsuche:** Findet die Suche ein Wort aus Seite 2? Bleibt die Trefferzahl nach dem Zurücksetzen stehen?
* Vorbereitung: Leere Datenbank, dann Beispieldaten importieren
* Datei: Eingang\Rechnung Muster GmbH.pdf
* Klicks: Extras → Import → Datei wählen → Importieren → Suchfeld → "Musterstadt" → Enter
* ✗ 2026-09-17: 1 ✓; 2 ✗ Trefferzahl sprang auf 0 — nur beim zweiten Durchlauf* [ ]/* [x]— ein Prüfpunkt, offen oder bestanden.[-]und[?]gelten als offen.**T3.1 Titel:**— feste Kennung plus Titel. Die Kennung ist frei wählbar (T<Abschnitt>.<Nr>); über sie findet der Wizard den Punkt auch wieder, wenn sich die Datei zwischendurch verschoben hat. Nie umnummerieren.- Der Text dahinter wird am
?in Einzelfragen zerlegt, die der Wizard als Tabelle zeigt. ## Überschrift— Abschnitt; die Abschnitte bilden den Baum auf der linken Seite.- Unterpunkte
* Vorbereitung:,* Datei:,* Klicks:(alle optional, Reihenfolge egal) zeigt der Wizard als eigene Felder. Klickfolgen mit→trennen und vollständig ausschreiben — „wie oben" hilft nicht, wenn der andere Punkt gerade nicht im Blick ist. * ✗ Datum: …— Fehlnotiz. Schreibt der Wizard selbst; frühere Befunde bleiben stehen und erscheinen rot unter den Fragen.* 📝 Datum: …/* 💡 Datum: …— Notiz bzw. Idee, unabhängig vom Ergebnis. Erscheinen blau unter den Fragen; im Baum zeigt ein 📝/💡 hinter dem Prüfpunkt, dass es welche gibt.
Links ein Baum: Abschnitte mit [offen/gesamt], darunter jeder Prüfpunkt mit Status — ✓ bestanden (grau), ✗ heute fehlgeschlagen (rot), ○ offen. Ein Klick zeigt ihn rechts, auch einen längst abgehakten. „Nur ungeprüfte zeigen" blendet Erledigtes aus; nach einem Neustart geht es damit beim nächsten offenen Punkt weiter.
Rechts der Prüfpunkt: Vorbereitung, Datei (mit „Ordner öffnen" / „Pfad kopieren") und Klickfolge, darunter die Fragen-Tabelle. Je Frage ein Haken Bestanden und eine Notiz-Spalte, darunter eine allgemeine Notiz.
Notizen sind unabhängig vom Ergebnis — sie gehen nie verloren. Darunter ein Feld 💡 Idee für Einfälle, die beim Testen kommen.
- Bestanden ✓ (oder Strg+Enter) hakt den Punkt in der Datei ab; vorhandene Notizen landen als
📝-Zeile darunter (nur die Fragen mit Notiz, z. B.📝 2026-10-25: 2: Uhrzeit fehlt — sonst gut). - Fehlgeschlagen ✗ schreibt eine Zeile aus Tabelle und Notiz, z. B.
✗ 2026-09-17: 1 ✓; 2 ✗ Tooltip fehlt; 3 ✓ — Fenster flackert, und lässt den Punkt offen. Beim erneuten Aufrufen liest der Wizard Haken und Notizen daraus zurück. - Nur Notiz speichern 📝 schreibt Notiz und Idee, ohne das Ergebnis anzufassen; der Punkt bleibt stehen, gesetzte Haken auch.
- Eine Idee im 💡-Feld wird bei jedem der drei Knöpfe als eigene
💡-Zeile gespeichert. - Sitzungs-Zusammenfassung legt alles Geprüfte dieser Sitzung samt Notizen und Ideen in die Zwischenablage — praktisch für einen Bug-Report oder die Notiz an den Entwickler.
Das Fenster bleibt im Vordergrund, damit es beim Testen nicht hinter der getesteten Anwendung verschwindet.
Optional, liegt neben der Checkliste. Alle Schlüssel sind freiwillig; relative Pfade gelten ab dem Projektordner:
{
"checkliste": "MANUELLE_TESTS.md",
"testordner": "C:/Testdaten/MeinApp",
"app_start": ["python", "main.py"],
"app_knopf": "App starten (main.py)",
"titel": "MeinApp - Manuelle Tests"
}testordner— Wurzel für dieDatei:-Angaben der Prüfpunkte. Ist er gesetzt, erscheint der Knopf „Testordner im Explorer".app_start— Kommando für den Knopf „App starten", als Liste (["python", "main.py"]) oder String.pythonwird durch den gerade laufenden Interpreter ersetzt, also die aktive venv. Ohne diesen Eintrag fehlt der Knopf.
python -m unittest discover -s tests -t . -p "test_*.py"Geprüft wird die Logik ohne Oberfläche: Checkliste parsen, Fragen zerlegen, Ergebnis zurückschreiben (inklusive Zeilenenden und Wiederfinden über die Kennung), Fehlnotizen schreiben und zurücklesen, Konfiguration laden.
Die üblichen Testmanagement-Werkzeuge sind Server- oder SaaS-Lösungen mit eigener Datenhaltung; die Checkliste liegt dann nicht mehr im Repository. Markdown-Checklisten-Runner wie markcheck laufen im Terminal, kennen keine Einzelfragen mit eigener Notiz und unterstützen kein Windows. Dieses Werkzeug bleibt bei einer Textdatei im Projekt und einem Fenster, das neben der getesteten Anwendung stehen kann.
MIT — siehe LICENSE.
