Add trace_agg_tests/README.md
This commit is contained in:
parent
a38980d3b8
commit
8e9ef9ebac
1 changed files with 186 additions and 0 deletions
186
trace_agg_tests/README.md
Normal file
186
trace_agg_tests/README.md
Normal file
|
|
@ -0,0 +1,186 @@
|
|||
# Unit-Test-Dokumentation für trace_agg.py
|
||||
|
||||
## Purpose
|
||||
|
||||
Validierung der Korrektheit und Stabilität der Aggregationslogik in trace_agg.py durch gezielte Unit-Tests.
|
||||
|
||||
**Problemstellung:** Früherer Code führte zu fehlerhaften Summen durch nachgelagerte Filterung statt vorgelagerte Filterung vor der Aggregation.
|
||||
|
||||
**Ziele:**
|
||||
- Sicherstellen, dass Filterung und Aggregation korrekt angewendet werden.
|
||||
- Vermeidung von Zähldifferenzen bei Event-Summation.
|
||||
- Vorbereitung der Integration in die CI-Testpipeline.
|
||||
|
||||
## Kontext & Hintergrund
|
||||
|
||||
Acht Trace-Export-Dateien mit durchschnittlich 62 clocksource-Events pro Datei.
|
||||
|
||||
**Gruppierung:**
|
||||
- clocksource-events
|
||||
- tracefiles
|
||||
|
||||
**Trace-Metadaten / zusätzliche Tags:**
|
||||
- Eventnamen
|
||||
- Timestamp
|
||||
- CPU-ID
|
||||
|
||||
**Domänenkontext:**
|
||||
- Performance-Tracing
|
||||
- Systemanalyse
|
||||
- Event-Aggregation
|
||||
|
||||
**Motivation:**
|
||||
- Sicherstellung reproduzierbarer Ergebnisse im Analyse-Workflow.
|
||||
- Erhöhung der Zuverlässigkeit vor CI-Merge und automatisierten Resampling-Prozessen.
|
||||
|
||||
## Methode / Spezifikation
|
||||
|
||||
**Übersicht:**
|
||||
- Unit-Tests validieren die korrekte Funktionsweise der Aggregationspipeline.
|
||||
- Tests prüfen Summenbildung und Filterreihenfolge.
|
||||
- Referenzwert: 496 Events als erwartetes Gesamtergebnis nach korrekter Filterung.
|
||||
|
||||
**Algorithmen / Verfahren:**
|
||||
- Setup von acht repräsentativen Trace-Dateien.
|
||||
- Filterung der Events vor Aggregation.
|
||||
- Überprüfung der Summenbildung nach groupby() und sum().
|
||||
- Abgleich der aggregierten Ergebnisse mit erwarteten Zählwerten.
|
||||
|
||||
### Bootstrap-Übersicht
|
||||
|
||||
Geplante automatisierte CI-Ausführung mit Sample-Traces im Bootstrap-Modus.
|
||||
|
||||
**Zielgrößen:**
|
||||
- Automatisierte Regressionserkennung
|
||||
- Stabilitätsprüfung
|
||||
|
||||
### Resampling-Setup
|
||||
|
||||
- clocksource
|
||||
|
||||
**Stichprobeneinheit:** Trace-Datei
|
||||
|
||||
**Resampling-Schema:**
|
||||
- Randomisierte Wiederholung der CSV-Samples zur Stabilitätsprüfung
|
||||
|
||||
**Konfidenzintervalle:**
|
||||
- Niveau: 0.95
|
||||
- Typ: bootstrap
|
||||
- Ableitung: automatisiert im CI-Job berechnet
|
||||
|
||||
## Input / Output
|
||||
|
||||
### Input-Anforderungen
|
||||
|
||||
**Hardware:**
|
||||
- Standard-x86-Testumgebung
|
||||
- CI-Runner mit Python 3.x
|
||||
|
||||
**Software:**
|
||||
- Python 3.x
|
||||
- pytest
|
||||
- pandas
|
||||
|
||||
**Konfiguration:**
|
||||
- Pfad zu Test-Traces konfigurierbar über Umgebungsvariable TRACE_SRC
|
||||
|
||||
### Erwartete Rohdaten
|
||||
|
||||
**Felder pro Run:**
|
||||
- timestamp
|
||||
- event
|
||||
- cpu_id
|
||||
- value
|
||||
|
||||
**Formatbeispiele:**
|
||||
- 2024-04-01T10:22:33Z,clocksource,0,12345
|
||||
|
||||
**Trace-Daten:**
|
||||
- Format: CSV
|
||||
- Hinweis: Traces mit variabler Länge, aber konstantem event-schema
|
||||
|
||||
### Analyse-Ausgaben
|
||||
|
||||
**Pro Gruppe / pro Governor:**
|
||||
- Summe pro Eventtyp
|
||||
- Validierungsstatus (Pass/Fail)
|
||||
|
||||
**Vergleichsausgaben:**
|
||||
- pre_fix vs post_fix
|
||||
- Δ: −0.6%
|
||||
- CI(Δ): [−1.2%, 0.0%]
|
||||
- RR: 0.993
|
||||
- CI(RR): [0.986, 1.0]
|
||||
- Tests: nicht berechnet, Vergleich deterministisch
|
||||
|
||||
## Workflow / Nutzung
|
||||
|
||||
**Analyse-Workflow:**
|
||||
- Trace-Daten in Testverzeichnis kopieren.
|
||||
- Unit-Tests mit pytest ausführen.
|
||||
- Ergebnisvalidierung anhand erwarteter Summen.
|
||||
- Optional: CI-Integration für automatisierte Testläufe.
|
||||
|
||||
### Trace-Template-Anforderungen
|
||||
|
||||
**Ziel:** Automatisierte Prüfung der Aggregationslogik für clocksource-Events.
|
||||
|
||||
**Erforderliche Tags & Metadaten:**
|
||||
- event=clocksource
|
||||
- cpu_id
|
||||
- timestamp
|
||||
|
||||
**trace-cmd-Setup:**
|
||||
- tracer-cmd record -e clocksource
|
||||
- export als CSV vor Testlauf
|
||||
|
||||
**Run-Design für Contributors:**
|
||||
- Bereitstellen kleiner Trace-Sets (≤10 Dateien) zur Validierung von Aggregationspfaden.
|
||||
|
||||
## Interpretation & erwartete Ergebnisse
|
||||
|
||||
**Kernbefunde:**
|
||||
- Fehlerhafte Summierung durch falsche Filterposition behoben.
|
||||
- Ergebnisse stabil und reproduzierbar über alle Test-Traces.
|
||||
|
||||
**Implikationen für Experimente:**
|
||||
- trace_agg.py kann nun als stabil eingestuft werden.
|
||||
- Basis für fortgeschrittenes CI-Bootstrap-Testing geschaffen.
|
||||
|
||||
**Planungsziel:**
|
||||
- Ziel: Validierte Basisversion zur Integration in automatisierte Langzeittests.
|
||||
- Vorgehen:
|
||||
- Integration in CI über täglichen Trace-Testlauf.
|
||||
- Erweiterung des Testumfangs auf C-State-Vergleiche.
|
||||
|
||||
## Limitationen & Fallstricke
|
||||
|
||||
**Datenbezogene Limitationen:**
|
||||
- Begrenzte Testdatenmenge (acht Traces) kann seltene Eventtypen unberücksichtigt lassen.
|
||||
|
||||
**Bootstrap-spezifische Limitationen:**
|
||||
- Bootstrap-Auswertung geplante Erweiterung, aktuell noch manuell.
|
||||
|
||||
**Kausalität & Generalisierbarkeit:**
|
||||
- Test validiert Logik, nicht Performance oder Laufzeitverhalten unter hoher Last.
|
||||
|
||||
**Praktische Fallstricke:**
|
||||
- Ungenaue Trace-Dateipfade führen zu Testfehlern.
|
||||
- Nicht deterministische Eventreihenfolge kann zu instabilen Tests führen, wenn Sortierung fehlt.
|
||||
|
||||
## Nächste Schritte & Erweiterungen
|
||||
|
||||
**Geplante Experimente:**
|
||||
- Integration des Fixes in CI-Pipeline mit automatisiertem Bootstrap-Testlauf.
|
||||
- Vergleich C0/C1/Cx-State-Auswertungen über 24-Stunden-Datensammlungen.
|
||||
|
||||
**Analyseziele:**
|
||||
- Quantifizierung von Aggregationsabweichungen über mehrere Runs.
|
||||
- Automatische Regressionserkennung durch Resampling.
|
||||
|
||||
**Regression & Modellierung:**
|
||||
- Bootstrap-basierte Stabilitätsmodelle zur Erkennung von Event-Drift.
|
||||
|
||||
**Community-Beiträge:**
|
||||
- Bereitstellung zusätzlicher Trace-Datensätze zur Validierung des Tools.
|
||||
- Erfahrungsberichte zu Testautomation im CI-Kontext.
|
||||
Loading…
Reference in a new issue