Add delta_cases_analyzer/README.md
This commit is contained in:
parent
8fcfa6b13d
commit
38faa11bc0
1 changed files with 218 additions and 0 deletions
218
delta_cases_analyzer/README.md
Normal file
218
delta_cases_analyzer/README.md
Normal file
|
|
@ -0,0 +1,218 @@
|
||||||
|
# Analyse von Unknown-Fällen in delta_cases.csv
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
Dokumentation zur quantitativen Analyse und Differenzierung von Unknown-Fällen in CI-Gate-Prozessen anhand von delta_cases.csv.
|
||||||
|
|
||||||
|
**Problemstellung:** Unknown-Fälle verfälschen Gate-Analysen, wenn Artefaktmangel und Contract-Verletzung nicht getrennt betrachtet werden.
|
||||||
|
|
||||||
|
**Ziele:**
|
||||||
|
- Unknown-Fälle in CI-Artefakten kategorisieren
|
||||||
|
- Artefaktmängel von echten inhaltlichen Regressionsursachen trennen
|
||||||
|
- Stabilität von Gate v1 durch statistische Evidenz bewerten
|
||||||
|
|
||||||
|
## Kontext & Hintergrund
|
||||||
|
|
||||||
|
CSV-Datei delta_cases.csv mit Falltransitionsdaten pro Stratum in CI-Prozessen.
|
||||||
|
|
||||||
|
**Gruppierung:**
|
||||||
|
- Stratum A
|
||||||
|
- Stratum B
|
||||||
|
- Stratum C
|
||||||
|
|
||||||
|
**Trace-Metadaten / zusätzliche Tags:**
|
||||||
|
- new_status
|
||||||
|
- unknown_reason
|
||||||
|
- pipeline_output_status
|
||||||
|
|
||||||
|
**Domänenkontext:**
|
||||||
|
- Continuous Integration (CI)
|
||||||
|
- Automatisierte Gate-Entscheidungen
|
||||||
|
- Regressionserkennung
|
||||||
|
|
||||||
|
**Outlier-Definition:**
|
||||||
|
- Methode: Change-Rate-Delta
|
||||||
|
- Beschreibung: Erkennung signifikanter Zuwächse in PASS→Unknown Übergängen pro Stratum.
|
||||||
|
- Metrik: Unknown-Rate-Delta
|
||||||
|
|
||||||
|
**Motivation:**
|
||||||
|
- Erhöhung der Entscheidungssicherheit bei CI-Gates
|
||||||
|
- Reduktion von Fehlbeurteilungen durch Artefaktmängel
|
||||||
|
- Schaffung reproduzierbarer Analysen mittels Python-Skripten
|
||||||
|
|
||||||
|
## Methode / Spezifikation
|
||||||
|
|
||||||
|
**Übersicht:**
|
||||||
|
- Tägliche Erfassung des delta_cases.csv Snapshots über einen siebentägigen Beobachtungszeitraum.
|
||||||
|
- Filtern und Aggregieren von Fällen mit Statuswechsel zu Unknown.
|
||||||
|
- Kategorisierung der Unknown-Ursachen nach Typ (Artefaktmangel vs. Contract-Verletzung).
|
||||||
|
|
||||||
|
**Algorithmen / Verfahren:**
|
||||||
|
- Iteriere über delta_cases.csv mittels csv.DictReader.
|
||||||
|
- Zähle Unknown-Fälle nach unknown_reason über collections.Counter.
|
||||||
|
- Ableitung einer Unknown-Whitelist für bekannte Artefaktmängel.
|
||||||
|
|
||||||
|
### Bootstrap-Übersicht
|
||||||
|
|
||||||
|
Bootstrap-Resampling ist hier nicht angewandt, vorgesehen für spätere Stabilitätsbewertungen pro Unknown-Typ.
|
||||||
|
|
||||||
|
**Zielgrößen:**
|
||||||
|
- Unknown-Rate-Stabilität
|
||||||
|
- Konfidenzintervall des Unknown-Delta pro Stratum
|
||||||
|
|
||||||
|
### Resampling-Setup
|
||||||
|
|
||||||
|
- Stratum A
|
||||||
|
- Stratum B
|
||||||
|
- Stratum C
|
||||||
|
|
||||||
|
**Stichprobeneinheit:** Testfall pro CI-Run
|
||||||
|
|
||||||
|
**Resampling-Schema:**
|
||||||
|
- Fixed-Format pro Snapshot
|
||||||
|
- 7-Tage-Sequenz für zeitliche Differenzen
|
||||||
|
|
||||||
|
**Konfidenzintervalle:**
|
||||||
|
- Niveau: 0.95
|
||||||
|
- Typ: bootstrap
|
||||||
|
- Ableitung: Empirische Verteilung der Unknown-Anteile
|
||||||
|
|
||||||
|
### Abgeleitete Effektgrößen
|
||||||
|
|
||||||
|
**Risk Difference (Differenz der Raten):**
|
||||||
|
- Definition: Differenz der Unknown-Raten zwischen Tagen oder Strata.
|
||||||
|
- Bootstrap: CI aus wiederholtem Resampling derselben Gruppen
|
||||||
|
|
||||||
|
**Risk Ratio:**
|
||||||
|
- Definition: Verhältnis der Wahrscheinlichkeit Unknown vs. PASS in verschiedenen Strata.
|
||||||
|
- Bootstrap: Verteilungsbasierte CI-Schätzung mit 95%-Level
|
||||||
|
|
||||||
|
### C-State-Kontrolle
|
||||||
|
|
||||||
|
**Ziel:** Sicherstellen, dass Infrastructure-Induced Unknowns (Artefaktfehler) nicht als logische Regressionsfälle interpretiert werden.
|
||||||
|
|
||||||
|
**Vorgehen:**
|
||||||
|
- Separate Whitelist für identifizierte Artefaktmängel pflegen
|
||||||
|
- Nur Contract-Verletzungen als echte Regressionsindikatoren zählen
|
||||||
|
|
||||||
|
## Input / Output
|
||||||
|
|
||||||
|
### Input-Anforderungen
|
||||||
|
|
||||||
|
**Hardware:**
|
||||||
|
- Standard CI-Umgebung mit Python 3
|
||||||
|
|
||||||
|
**Software:**
|
||||||
|
- Python 3.8+
|
||||||
|
- csv-Modul (Standardbibliothek)
|
||||||
|
|
||||||
|
**Konfiguration:**
|
||||||
|
- delta_cases.csv im Root-Log-Verzeichnis pro Tag
|
||||||
|
- unknown_whitelist.json für bekannte Artefaktmängel
|
||||||
|
|
||||||
|
### Erwartete Rohdaten
|
||||||
|
|
||||||
|
**Felder pro Run:**
|
||||||
|
- case_id
|
||||||
|
- old_status
|
||||||
|
- new_status
|
||||||
|
- unknown_reason
|
||||||
|
- stratum
|
||||||
|
- timestamp
|
||||||
|
|
||||||
|
**Formatbeispiele:**
|
||||||
|
- 00123, PASS, Unknown, MissingOutputFile, A, 2024-02-11T09:23Z
|
||||||
|
|
||||||
|
**Trace-Daten:**
|
||||||
|
- Format: CSV-Tabellenstruktur
|
||||||
|
- Hinweis: Jede Zeile entspricht einem Testfallübergang im CI-Prozess
|
||||||
|
|
||||||
|
### Analyse-Ausgaben
|
||||||
|
|
||||||
|
**Pro Gruppe / pro Governor:**
|
||||||
|
- Anzahl Unknown pro Stratum
|
||||||
|
- Verteilung der unknown_reason Kategorien
|
||||||
|
|
||||||
|
**Vergleichsausgaben:**
|
||||||
|
- Tag1_StratumA vs Tag2_StratumA
|
||||||
|
- Δ: Δ Unknown = +x %
|
||||||
|
- CI(Δ): 95%-CI aus Resampling
|
||||||
|
- RR: RR Unknown(T2/T1)
|
||||||
|
- CI(RR): 95%-CI RR-Schätzung
|
||||||
|
|
||||||
|
- C-State-Korrelation: Analyse der Unknown-Auftritte in Relation zu Pipeline-/Infrastructure-Logs
|
||||||
|
- Trace-Muster: Zeitliche Muster der Unknown-Bildung über sieben Tage
|
||||||
|
|
||||||
|
## Workflow / Nutzung
|
||||||
|
|
||||||
|
**Analyse-Workflow:**
|
||||||
|
- Erstelle täglichen CI-Snapshot im festen delta_cases.csv Format.
|
||||||
|
- Führe Python-Skript zur Zählung der Unknown-Ursachen aus.
|
||||||
|
- Protokolliere Resultate als stabile Metrik im Logbook.
|
||||||
|
- Pflege unknown_whitelist.json manuell für sichere Artefaktmängel.
|
||||||
|
- Vermeide Regeländerungen während der Beobachtungsperiode.
|
||||||
|
|
||||||
|
### Trace-Template-Anforderungen
|
||||||
|
|
||||||
|
**Ziel:** Reproduzierbare Unknown-Erfassung über konsistente CSV-Struktur.
|
||||||
|
|
||||||
|
**Erforderliche Tags & Metadaten:**
|
||||||
|
- stratum
|
||||||
|
- new_status
|
||||||
|
- unknown_reason
|
||||||
|
|
||||||
|
**trace-cmd-Setup:**
|
||||||
|
- delta_cases.csv täglich exportieren
|
||||||
|
- keine automatischen Statusänderungen im Beobachtungszeitraum
|
||||||
|
|
||||||
|
**Run-Design für Contributors:**
|
||||||
|
- Beobachtungsläufe über 7 Tage mit identischer Konfiguration
|
||||||
|
- Trennung von funktionalen und Infrastrukturfehlern
|
||||||
|
|
||||||
|
## Interpretation & erwartete Ergebnisse
|
||||||
|
|
||||||
|
**Kernbefunde:**
|
||||||
|
- Unknown-Fälle bestehen aus mindestens zwei Hauptursachen: Artefaktmangel und Contract-Verletzung.
|
||||||
|
- PASS→Unknown Delta in Stratum A weist auf datenbedingte Instabilität hin.
|
||||||
|
- Korrekte Trennung erhöht Präzision der Gate-Entscheidung signifikant.
|
||||||
|
|
||||||
|
**Implikationen für Experimente:**
|
||||||
|
- Unknown-Gate-Fälle müssen kategorisiert werden, bevor sie als Stabilitätsindikator gelten.
|
||||||
|
- Ergebnisse bilden Grundlage für künftige automatisierte Whitelisting-Prozesse.
|
||||||
|
|
||||||
|
**Planungsziel:**
|
||||||
|
- Ziel: Stabile, datengetriebene Gate-Entscheidung ohne Fehlklassifikationen.
|
||||||
|
- Vorgehen:
|
||||||
|
- Langzeitbeobachtung der Unknown-Entwicklung
|
||||||
|
- Schrittweise Einbindung von Bootstrap-Analyse zur Varianzschätzung
|
||||||
|
|
||||||
|
## Limitationen & Fallstricke
|
||||||
|
|
||||||
|
**Datenbezogene Limitationen:**
|
||||||
|
- Fehlende oder inkonsistente unknown_reason Werte erschweren Klassifikation.
|
||||||
|
- CSV-Strukturfehler können Zählungen verfälschen.
|
||||||
|
|
||||||
|
**Bootstrap-spezifische Limitationen:**
|
||||||
|
- Noch keine Implementierung; spätere Anwendung erfordert genügend Datenpunkte pro Stratum.
|
||||||
|
|
||||||
|
**Kausalität & Generalisierbarkeit:**
|
||||||
|
- Beobachtung einzelner Pipelines liefert keine generalisierbaren Aussagen über andere Projekte.
|
||||||
|
|
||||||
|
**Praktische Fallstricke:**
|
||||||
|
- Zu häufige Anpassung der Whitelist unterminiert Vergleichbarkeit.
|
||||||
|
- Vermischung technischer und fachlicher Ursachen verfälscht Trenddaten.
|
||||||
|
|
||||||
|
## Nächste Schritte & Erweiterungen
|
||||||
|
|
||||||
|
**Geplante Experimente:**
|
||||||
|
- Tag-2 bis Tag-7 Auswertung der Unknown-Typen zur Stabilitätsprüfung.
|
||||||
|
|
||||||
|
**Analyseziele:**
|
||||||
|
- Unknown-Rate-Trendanalyse über Zeit
|
||||||
|
- Bootstrap-basierte Unsicherheitsabschätzung
|
||||||
|
|
||||||
|
**Regression & Modellierung:**
|
||||||
|
- Entwicklung eines einfachen Regressionsmodells zur Unknown-Prädiktion
|
||||||
|
|
||||||
|
**Community-Beiträge:**
|
||||||
|
- Best-Practices für Stable-Gate-Metriken in CI-Pipelines teilen
|
||||||
Loading…
Reference in a new issue