-
Notifications
You must be signed in to change notification settings - Fork 1
guides_qa
GitHub Actions edited this page Jan 2, 2026
·
1 revision
Comprehensive QA and testing strategy guide.
- 📋 Übersicht
- ✨ Features
- 🚀 Quick Start
- 📖 Test Pyramid & Coverage
- 💡 Best Practices
- 🔧 Troubleshooting
- 📚 Siehe auch
- 📝 Changelog
Diese Seite beschreibt die Teststrategie, Werkzeuge und Best Practices zur Sicherstellung der Softwarequalität in ThemisDB: Unit/Integration/E2E-Tests, CI/CD, Code Coverage, statische Analysen und Performance-Regressionstests.
Stand: 22. Dezember 2025
Version: 1.3.0
Kategorie: 🛠️ Developer/Technical
- 📊 Test Pyramid - Unit, Integration, E2E test strategy
- 🧪 70-80% Coverage - Critical core path testing
- 🚀 Performance Benchmarks - Google Benchmark framework
- 🔄 CI/CD Integration - GitHub Actions automation
- 📈 Trend Monitoring - Track performance regressions
- Unit-Tests: Logiknah, schnell, unabhängig von I/O (z. B. Parser, Serializer, Hilfsfunktionen)
- Integrationstests: Zusammenspiel von Storage/Indexes/Query (z. B.
tests/test_*) - E2E-/API-Tests: HTTP-/OpenAPI-Endpunkte, CDC/SSE, Fehlerpfade, Berechtigungen
- Performance-Benchmarks: Google Benchmark (stabil, reproduzierbar), keine CI-Gates, aber Trends überwachen
Zielabdeckung: 70–80% auf kritischen Kernpfaden (Parser, Index, Query Engine, Storage-Wrapper).
- CTest/Executable (Windows PowerShell Beispiel):
# Build (Release empfohlen für realistischere Ausführungszeiten)
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release --parallel
# Tests
ctest --test-dir build --output-on-failure --parallel
# Alternativ: direktes Binary (falls vorhanden)
.\build\Release\themis_tests.exe- Testdateien in
tests/mit Präfixtest_*.cpp - Eine Testdatei pro Komponente/Subsystem
- Klarer Arrange-Act-Assert-Stil, aussagekräftige Namen, keine versteckten Sleeps/Timing-Hacks
- Deterministische Seeds für Zufallsdaten in Tests und Benchmarks
- Kleine, repräsentative Fixtures; große Datensätze nur in Benchmarks/Loadtests
- Cleanup von temporären DB-Pfaden pro Test (z. B. unter
data/test_*)
- Pipelines (Beispiele):
- build-and-test: MSVC (Windows) und Clang/GCC (Linux), Release + Debug
- static-analysis: clang-tidy, cppcheck (Nur-Warnungen, optional blockend für neue Issues)
- coverage: lcov/gcovr (Linux), Artefakte/Badges veröffentlichen
- package: Docker-Image bauen, SBOM generieren (Syft), Signatur (cosign) optional
- Caching: vcpkg/ccache (Linux) und MSVC Build Cache
- Artefakte: Testreports (JUnit), Coverage HTML, Binaries (Nightly)
- Linux:
-fprofile-arcs -ftest-coveragebzw.-fprofile-instr-generate -fcoverage-mapping - Werkzeuge: gcovr/lcov; Ausschlüsse für generierten Code/3rd-Party
- Schwellenwerte: z. B. Zeilen ≥ 70%, Funktionen ≥ 75% (nicht hart blockend, aber Trend-basiert)
- clang-tidy: Modernize-, Performance-, Readability-Checks aktivieren
- cppcheck: Fehleranfällige Muster, MISRA-ähnliche Regeln wo sinnvoll
- Formatierung: clang-format mit projektspezifischem Style; Pre-commit Hook empfohlen
- Google Benchmark-Suite regelmäßig auf dedizierter Maschine ausführen
- Relevante Filter: CRUD, MVCC, Pagination, Kompression, Vector-Suche
- Veränderungen dokumentieren (Changelog) und auffällige Deltas untersuchen
- Abhängigkeiten injizieren (Interfaces), um I/O zu mocken
- Pure Functions bevorzugen, deterministische Uhrzeit/Zufall abstrahieren
- Kleine, fokussierte Klassen/Methoden, klare Verantwortlichkeiten
- Korrektheit: Tests vorhanden (Happy Path + 1–2 Edge Cases)
- Robustheit: Fehlerpfade, Timeouts, Null/Empty-Handling
- Performance: Hot Paths, Allokationen, unnötige Kopien, Paging/Batching
- Sicherheit: Input-Validierung, Logging von Secrets vermeiden
- Docs: Öffentliche APIs und Verhalten dokumentiert, Changelog aktualisiert
- CI-Workflows hinzufügen (GitHub Actions) mit Build+Test, static-analysis, Coverage
- Abdeckungslücken identifizieren (Reports) und kritische Bereiche priorisieren
- Optional: Nightly Performance-Benchmarks mit Trend-Dashboards
ThemisDB v1.3.4 | GitHub | Documentation | Discussions | License
Last synced: January 02, 2026 | Commit: 6add659
Version: 1.3.0 | Stand: Dezember 2025
- Übersicht
- Home
- Dokumentations-Index
- Quick Reference
- Sachstandsbericht 2025
- Features
- Roadmap
- Ecosystem Overview
- Strategische Übersicht
- Geo/Relational Storage
- RocksDB Storage
- MVCC Design
- Transaktionen
- Time-Series
- Memory Tuning
- Chain of Thought Storage
- Query Engine & AQL
- AQL Syntax
- Explain & Profile
- Rekursive Pfadabfragen
- Temporale Graphen
- Zeitbereichs-Abfragen
- Semantischer Cache
- Hybrid Queries (Phase 1.5)
- AQL Hybrid Queries
- Hybrid Queries README
- Hybrid Query Benchmarks
- Subquery Quick Reference
- Subquery Implementation
- Content Pipeline
- Architektur-Details
- Ingestion
- JSON Ingestion Spec
- Enterprise Ingestion Interface
- Geo-Processor Design
- Image-Processor Design
- Hybrid Search Design
- Fulltext API
- Hybrid Fusion API
- Stemming
- Performance Tuning
- Migration Guide
- Future Work
- Pagination Benchmarks
- Enterprise README
- Scalability Features
- HTTP Client Pool
- Build Guide
- Implementation Status
- Final Report
- Integration Analysis
- Enterprise Strategy
- Verschlüsselungsstrategie
- Verschlüsselungsdeployment
- Spaltenverschlüsselung
- Encryption Next Steps
- Multi-Party Encryption
- Key Rotation Strategy
- Security Encryption Gap Analysis
- Audit Logging
- Audit & Retention
- Compliance Audit
- Compliance
- Extended Compliance Features
- Governance-Strategie
- Compliance-Integration
- Governance Usage
- Security/Compliance Review
- Threat Model
- Security Hardening Guide
- Security Audit Checklist
- Security Audit Report
- Security Implementation
- Development README
- Code Quality Pipeline
- Developers Guide
- Cost Models
- Todo Liste
- Tool Todo
- Core Feature Todo
- Priorities
- Implementation Status
- Roadmap
- Future Work
- Next Steps Analysis
- AQL LET Implementation
- Development Audit
- Sprint Summary (2025-11-17)
- WAL Archiving
- Search Gap Analysis
- Source Documentation Plan
- Changefeed README
- Changefeed CMake Patch
- Changefeed OpenAPI
- Changefeed OpenAPI Auth
- Changefeed SSE Examples
- Changefeed Test Harness
- Changefeed Tests
- Dokumentations-Inventar
- Documentation Summary
- Documentation TODO
- Documentation Gap Analysis
- Documentation Consolidation
- Documentation Final Status
- Documentation Phase 3
- Documentation Cleanup Validation
- API
- Authentication
- Cache
- CDC
- Content
- Geo
- Governance
- Index
- LLM
- Query
- Security
- Server
- Storage
- Time Series
- Transaction
- Utils
Vollständige Dokumentation: https://makr-code.github.io/ThemisDB/