Systematisches Testen von BACH und anderen LLM-OS-Systemen. Orchestrator fuer Test- und Vergleichs-Workflows.
Zweck: Systematisches Testen von BACH und anderen LLM-OS-Systemen Typ: Orchestrator fuer Test- und Vergleichs-Workflows Version: 1.1.0
| Nr | Faehigkeit | Beschreibung | |:--:|------------|--------------| | 1 | Selbsttest | BACH auf Funktionalitaet pruefen | | 2 | Systemvergleich | Andere Systeme mit BACH vergleichen | | 3 | Qualitaetsmetriken | Abdeckungskoeffizienten berechnen | | 4 | Regressionstests | Nach Aenderungen Integritaet pruefen | | 5 | Synopse erstellen | Vergleichende Analyse dokumentieren |
┌─────────────────┬─────────────────┬─────────────────┐
│ B-Tests │ O-Tests │ E-Tests │
│ BEOBACHTUNG │ AUSGABE │ ERFAHRUNG │
├─────────────────┼─────────────────┼─────────────────┤
│ Extern │ Funktional │ Intern │
│ Automatisiert │ Input->Output │ Subjektiv │
│ Python-Scripts │ Python-Scripts │ Claude-gefuehrt │
│ "Was existiert?"│ "Funktioniert?" │ "Wie fuehlt es?"│
└─────────────────┴─────────────────┴─────────────────┘
| ID | Name | Misst | |----|------|-------| | B001 | file_inventory | Anzahl, Typen, Groessen | | B002 | format_consistency | Einheitlichkeit | | B003 | directory_depth | Max/Avg Tiefe | | B004 | naming_analysis | Namens-Konsistenz | | B005 | documentation_check | Doku-Vollstaendigkeit | | B006 | code_metrics | LOC, Komplexitaet | | B007 | dependencies | Abhaengigkeiten | | B008 | age_analysis | Letzte Aenderungen |
| ID | Name | Prueft | |----|------|--------| | O001 | task_roundtrip | Task CRUD | | O002 | memory_persistence | Memory Write/Read | | O003 | tool_registry | Tool finden/nutzen | | O004 | backup_restore | Backup/Restore | | O005 | config_validation | Configs parsbar | | O006 | export_import | Daten ex-/import |
| ID | Name | Erfasst | |----|------|---------| | E001 | skill_readability | SKILL.md Lesbarkeit | | E002 | navigation | Dateisystem-Erkundung | | E003 | task_create | Aufgabe erstellen | | E004 | task_find | Aufgabe finden | | E005 | memory_write | Memory schreiben | | E006 | memory_read | Memory lesen | | E007 | tool_use | Tool nutzen | | E008 | error_recovery | Fehler-Recovery | | E009 | session_start | Session starten | | E010 | overall_impression | Gesamteindruck |
| Profil | Dauer | B-Tests | O-Tests | E-Tests | |--------|:-----:|:-------:|:-------:|:-------:| | QUICK | 5 Min | B001 | O001 | E001,E010 | | STANDARD | 20 Min | B001-B005 | O001-O003 | E001-E007,E010 | | FULL | 40 Min | B001-B008 | O001-O006 | Alle | | OBSERVATION | 15 Min | B001-B008 | - | - | | OUTPUT | 20 Min | - | O001-O006 | - | | MEMORY_FOCUS | 10 Min | - | O002 | E005,E006 | | TASK_FOCUS | 10 Min | - | O001 | E003,E004 |
ZIEL: BACH auf Funktionalitaet pruefen
SCHRITT 1: Automatisierte Tests
python tools/testing/test_runner.py --profile STANDARD
SCHRITT 2: E-Tests manuell (falls gewuenscht)
- fc_get_time() -> Start
- E-Tests aus e_tests/AUFGABEN/ durchfuehren
- fc_get_time() -> Ende
- Bewertungen dokumentieren
SCHRITT 3: Ergebnis pruefen
- Score > 4.0 = GUT
- Score 3.0-4.0 = AKZEPTABEL
- Score < 3.0 = AKTION ERFORDERLICH
ZIEL: Anderes System mit BACH vergleichen
SCHRITT 1: Zielsystem identifizieren
- Pfad zum System
- Hat es SKILL.md?
- Systemklasse? (SKILL/AGENT/OS)
SCHRITT 2: Tests fuer beide ausfuehren
python tools/testing/test_runner.py "BACH" -p STANDARD
python tools/testing/test_runner.py "<anderes>" -p STANDARD
ODER direkt vergleichen:
python tools/testing/test_runner.py "BACH" --compare "<anderes>"
SCHRITT 3: Feature-Matrix erstellen
┌──────────────┬──────┬──────────┐
│ Feature │ BACH │ Anderes │
├──────────────┼──────┼──────────┤
│ CLI │ ? │ ? │
│ Memory │ ? │ ? │
│ Tasks │ ? │ ? │
└──────────────┴──────┴──────────┘
SCHRITT 4: Synopse erstellen (siehe WORKFLOW 3)
ZIEL: Vergleichende Analyse dokumentieren
SCHRITT 1: Daten sammeln
- Testergebnisse aus tools/testing/results/
- Feature-Listen
- Beobachtungen
SCHRITT 2: Dimensionen bewerten (1-5)
D1 Onboarding
D2 Navigation
D3 Memory
D4 Tasks
D5 Kommunikation
D6 Tools
D7 Fehlertoleranz
SCHRITT 3: Staerken/Schwaechen
- Top 3 Staerken pro System
- Top 3 Schwaechen pro System
SCHRITT 4: Synopse schreiben
-> docs/_Reports/SYNOPSE_<Thema>_<Datum>.md
FORMAT:
1. Gesamtergebnis (Ranking)
2. Dimensionsvergleich
3. Feature-Matrix
4. Staerken-Schwaechen
5. Best-of Extraktion
6. Empfehlungen
ZIEL: Nach Aenderungen Integritaet pruefen
TRIGGER:
- Nach groesserer Aenderung
- Vor Release/Commit
- Regelmaessig (woechentlich)
ABLAUF:
1. python tools/testing/test_runner.py -p QUICK
2. Score mit letztem Ergebnis vergleichen
3. Bei Verschlechterung > 0.5: Ursache finden
4. Ergebnis in docs/_Reports/ dokumentieren
# BACH selbst testen (Standard-Profil)
python tools/testing/test_runner.py
# Mit spezifischem Profil
python tools/testing/test_runner.py -p QUICK
python tools/testing/test_runner.py -p FULL
# Anderes System testen
python tools/testing/test_runner.py "C:\...\anderes_system"
# Zwei Systeme vergleichen
python tools/testing/test_runner.py "BACH" --compare "C:\...\anderes"
# Profile anzeigen
python tools/testing/test_runner.py --list-profiles
# B-Tests
python tools/testing/b_tests/B001_file_inventory.py "BACH"
python tools/testing/b_tests/run_b_tests.py "BACH" "results"
# O-Tests
python tools/testing/o_tests/O001_task_roundtrip.py "BACH"
python tools/testing/o_tests/run_o_tests.py "BACH" "results"
tools/testing/
├── test_runner.py # Haupt-Runner (NEU)
├── query_tests.py # DB-Abfragen
├── populate_tests.py # DB befuellen
├── test_schema.sql # DB-Schema
│
├── b_tests/ # B-Tests (automatisiert)
│ ├── B001_file_inventory.py
│ ├── B002_format_consistency.py
│ ├── ...
│ └── run_b_tests.py
│
├── o_tests/ # O-Tests (funktional)
│ ├── O001_task_roundtrip.py
│ ├── O002_memory_persistence.py
│ ├── ...
│ └── run_o_tests.py
│
├── e_tests/ # E-Tests (subjektiv)
│ ├── AUFGABEN/
│ │ ├── E001_skill_readability.txt
│ │ └── ...
│ └── PROMPT_TEMPLATE.txt
│
├── profiles/ # Testprofile (JSON)
│ ├── QUICK.json
│ ├── STANDARD.json
│ └── FULL.json
│
└── results/ # Testergebnisse
└── BACH/
| Wert | Bedeutung | Aktion | |:----:|-----------|--------| | 5 | Exzellent | Beibehalten | | 4 | Gut | Kleine Verbesserungen | | 3 | Akzeptabel | Mittelfristig verbessern | | 2 | Mangelhaft | Zeitnah verbessern | | 1 | Kritisch | Sofort beheben |
| Status | Code | Bedeutung | |--------|:----:|-----------| | SUCCESS | 2 | Vollstaendig erledigt | | PARTIAL | 1 | Teilweise / mit Hilfe | | FAILED | 0 | Nicht geschafft | | TIMEOUT | -1 | Zeitlimit ueberschritten | | BLOCKED | -2 | Feature fehlt |
| Dim | Name | Kernfrage | |:---:|------|-----------| | D1 | Onboarding | Wie schnell orientiert? | | D2 | Navigation | Wie leicht zu finden? | | D3 | Memory | Kontext persistent? | | D4 | Tasks | Aufgaben-Handling? | | D5 | Kommunikation | User-Interaktion? | | D6 | Tools | Werkzeuge nutzbar? | | D7 | Fehlertoleranz | Recovery moeglich? |
KRITISCH: Immer fc_get_time() nutzen!
Vor Aufgabe: fc_get_time() -> T_START
Nach Aufgabe: fc_get_time() -> T_END
Differenz: T_TOTAL = T_END - T_START
| Kontext | Max Zeit | |---------|:--------:| | Einzelaufgabe | 10 Min | | QUICK Profil | 15 Min | | STANDARD Profil | 30 Min | | FULL Profil | 60 Min |
{
"system": "BACH",
"profile": "STANDARD",
"test_date": "2026-01-17T14:00:00",
"b_tests": {
"B001": {"status": "success", "score": 4.2}
},
"o_tests": {
"O001": {"status": "PASS", "score": 5.0}
},
"dimensions": {
"d1_onboarding": 4,
"d2_navigation": 4,
"d3_memory": 5,
"d4_tasks": 4,
"d5_communication": 3,
"d6_tools": 5,
"d7_error_tolerance": 4
},
"summary": {
"b_avg": 4.2,
"o_avg": 4.8,
"overall": 4.5
}
}
python tools/testing/test_runner.py -p QUICK
python tools/testing/test_runner.py -p STANDARD
python tools/testing/test_runner.py --compare "C:\...\anderes_system"
Agent Version: 1.1.0 Erstellt: 2026-01-17 Quelle: BACH_STREAM/PRODUCTION/TESTS + WORKFLOWS
Category:other