Teststrategie
Mindwtr verwendet eine mehrschichtige Teststrategie für core, Plattform-Apps und Integrationsflächen.
Ziele
- Datenintegrität schützen (Synchronisierung, Speicherung, Zusammenführungsregeln)
- Regressionen in kritischen Benutzerabläufen erkennen
- Tests in der CI schnell und deterministisch halten
Testschichten
Core (packages/core)
- Primäre Abdeckung der Logik (Synchronisierung, Wiederholung, Parsing, Speicher-Hilfsfunktionen)
- Schnelle Unit-Tests mit deterministischen Fixtures
- Die meisten Invarianten der Datenintegrität sollten zuerst hier durchgesetzt werden
Desktop (apps/desktop)
- Tests für Komponenten- und Ansichtsverhalten (Vitest + Testing Library)
- Schwerpunkt auf interaktionsreichen Ansichten und Wrappern für die Synchronisierungsorchestrierung
Mobilgeräte (apps/mobile)
- Tests für Hilfsfunktionen und Orchestrierung
- Smoke-Tests für kritische Abläufe bei Synchronisierung und Aufgabenbearbeitung
- Gerätespezifisches UI-Verhalten ist weiterhin teilweise auf manuelle Überprüfung angewiesen
Cloud (apps/cloud)
- Tests für API-Endpunkte
- Validierung von Authentifizierung, Ratenbegrenzung und Pfaden
- Verhalten von CRUD- und Anhangsendpunkten
- Die Abdeckung konzentriert sich auf die grundlegende Anfrageverarbeitung, nicht auf alle denkbaren Szenarien gleichzeitiger Bereitstellungen
MCP-Server (apps/mcp-server)
- Korrektheit der Abfrageschicht (Suchen, Hinzufügen/Aktualisieren/Löschen/Wiederherstellen)
- Eingabevalidierung und Transaktionsverhalten
- Die Abdeckung konzentriert sich auf Werkzeugverhalten und Validierung, nicht auf vollständige End-to-End-Abläufe mit Editor/LLM
Derzeitige Abdeckungsgrenzen
packages/coreverfügt über die stärkste automatisierte Abdeckung und sollte bei Regressionen der Datenintegrität die erste Verteidigungslinie bleiben.- Der Desktop hat eine gute Komponentenabdeckung in kritischen Ansichten, aber nicht jeder Interaktionspfad wird End-to-End abgedeckt.
- Die Abdeckung für Mobilgeräte ist bewusst geringer als für Desktop/Core; Barrierefreiheit, Gesten und native Integrationspfade müssen weiterhin manuell auf Geräten geprüft werden.
- Cloud- und MCP-Server-Tests decken die zentralen Handler und Validierungspfade ab, simulieren aber noch nicht jeden Grenzfall bei Parallelität oder Bereitstellung in der Produktion.
Was zuerst getestet werden sollte
Priorisieren Sie Tests beim Hinzufügen oder Ändern von Verhalten in dieser Reihenfolge:
- Datenkorrektheit und Zusammenführungssemantik
- Fehlerpfade und Verhalten bei Wiederholungen/Zeitüberschreitungen
- Benutzerseitiger Interaktionspfad
- Leistungsempfindliche Logik (Suche/Synchronisierung/Listentransformationen)
Regressions-Checkliste
Vor dem Zusammenführen:
- Tests für das geänderte Verhalten hinzufügen oder aktualisieren
- Tests der betroffenen Pakete lokal ausführen
- Bei paketübergreifenden Änderungen umfassendere Workspace-Tests ausführen
- Sicherstellen, dass keine Kopplung von Snapshots/Zuständen zwischen Tests besteht
Praktische Regeln
- Deterministische Zeitstempel/Fixtures der tatsächlichen Uhrzeit vorziehen.
- Netzwerkabhängigkeiten in Unit-Tests vermeiden.
- Jeden Test auf ein Verhalten beschränken.
- Integrationstests für Grenzen von Arbeitsabläufen verwenden, nicht für jeden Zweig.
- Flaky Tests als Fehler behandeln und ihre Ursache zügig beheben.
- Wenn ein plattformspezifischer Fehler ohne robuste Automatisierung behoben wird, die erforderlichen manuellen Prüfschritte im PR dokumentieren.