Files
Orchestrator/bahn/project-audit/analysis/sonarqube-deepdive.md
ankn a5f8fb49ab Migrate all repos into monorepo context folders
Bahn: aisupport, Analyse-O2C-C2S, awesome-bahn-mcp-servers, beam-mcp,
      Confluence_Bot, db-planet-mcp-server, O2C-Harness, project-audit,
      Projekt-KIQ-HP, teamlandkarte-mcp
Dhive: Jury-Voting
Privat: CV, NoteGraph (NOTE: NoteGraph needs complete redo after consolidation)
Shared: AI-Orchestrator, OrgMyLife, power_skills_and_more
Shared/references: symphony (read-only)

Bahn repos remain available as independent remotes - this monorepo
pulls them in via subtree, the originals are untouched.
2026-06-30 20:39:52 +02:00

6.7 KiB

SonarQube Deep Dive — Code-Qualitaet pro Team

Stand: 2026-04-30 | Quelle: SonarQube (74 Projekte, nur master/main Branches)


1. Ueberblick

Team Projekte Lines of Code Bugs Smells Smells/1K LoC Coverage QGate OK
Team 404 2 68.313 5 420 6.1 84.2% 0/2
Team CIB 15 121.727 7 2.535 20.8 78.2% 9/15
Team Zero 9 37.927 0 152 4.0 21.8%* 8/9
Shared Libs 6 4.877 2 50 10.3 0% 0/6
Andere/Infra 41 28.813 13 600 20.8 33.6% 29/41

*Zero Coverage-Durchschnitt verzerrt durch tadef-connector (27.6K Lines, 0% Coverage). Ohne tadef: 91.8% Coverage.


2. Detailanalyse pro Team

Team 404 (Portal) — 68K Lines, 2 Services

Service Lines Bugs Smells Coverage QGate
portal-ui (Angular) 42.726 4 77 85.8% ERROR
portal-middleware 25.587 1 343 81.4% ERROR

Bewertung:

  • Coverage ist gut (84-86%) — das Frontend-Qualitaetsproblem liegt NICHT an fehlenden Tests
  • Portal-Middleware hat 5x mehr Smells als Portal-UI (343 vs 77) bei halb so viel Code
  • Beide Services haben Quality Gate ERROR — vermutlich wegen Bugs (4+1=5)
  • Kernaussage: Die hohe Bug-Rate (33% aus Jira) korreliert NICHT mit schlechter Coverage. Das Problem ist eher in der Testqualitaet (was getestet wird) als in der Testquantitaet (wie viel getestet wird).

Empfehlung:

  • Portal-Middleware Smells reduzieren (343 bei 25K Lines = 13.4/1K — deutlich ueber Durchschnitt)
  • Bug-Ursachen analysieren: Sind es Regressions-Bugs (Tests fehlen fuer Edge Cases) oder Integrations-Bugs?

Team CIB (Backend) — 122K Lines, 15 Services

Service Lines Bugs Smells Coverage QGate
steuerung-vertrieb (SV) 93.146 3 2.214 81.6% ERROR
auftrags-verwaltung-trasse 8.430 0 102 86.2% OK
archivierungsservice 6.733 2 83 78.8% ERROR
ifp-mock 4.917 2 66 50.4% ERROR
kundendaten-bereitstellung 1.834 0 2 96.9% OK
rabattnummern-bereitstellung 1.374 0 9 86.3% OK
ifp-connector 1.318 0 5 84.9% OK
auftrag-service-kafkamock 2.221 0 35 0% ERROR
auftrag-service 949 0 19 0% ERROR

Bewertung:

  • SV ist das Sorgenkind: 93K Lines, 2.214 Smells (23.8/1K LoC!) — mit Abstand hoechste technische Schuld
  • Aber: SV hat 81.6% Coverage und die Bug-Rate sinkt (36% → 9%) — die Smells verursachen keine Bugs
  • Kleinere Services (KDV, Rabatt, IFP-Connector) sind vorbildlich: >85% Coverage, <10 Smells
  • AV-Trasse: Gute Qualitaet (86.2% Coverage, 102 Smells bei 8.4K Lines)
  • 2 Services ohne Coverage (Mocks) — akzeptabel fuer Mock-Services

Empfehlung:

  • SV-Smells langfristig abbauen (Top-Regel S1192: 976 String-Duplikate — Refactoring-Kandidat)
  • Archivierungsservice: 2 Bugs fixen, Coverage von 78.8% auf >85% bringen
  • IFP-Mock: Coverage von 50.4% ist zu niedrig fuer einen Service der in Tests genutzt wird

Team Zero (TAF/TAP) — 38K Lines, 9 Services

Service Lines Bugs Smells Coverage QGate
tadef-connector 27.646 0 99 0% ERROR
stammdaten-bereitstellung 5.042 0 13 82.0% OK
common-interface 4.056 0 37 93.8% OK
taftap-tdm-konverter 6.586 0 26 90.6% OK

Bewertung:

  • 0 Bugs in allen Zero-Services — beste Qualitaet im Programm
  • tadef-connector (27.6K Lines, 0% Coverage) ist der einzige Ausreisser — vermutlich generierter Code oder Legacy
  • Ohne tadef: 4.0 Smells/1K LoC und 91.8% Coverage — Benchmark fuer andere Teams
  • Common Interface: 93.8% Coverage bei SOAP-Schnittstelle — beeindruckend

Empfehlung:

  • tadef-connector: Klaeren ob Coverage moeglich/sinnvoll ist (generierter Code?)
  • Zero als Qualitaets-Benchmark beibehalten und Best Practices dokumentieren

3. Shared Libraries — 0% Coverage

Library Lines Smells Coverage
core-components-kafka 1.567 24 0%
core-components-common 1.096 5 0%
signature-database 1.091 12 0%
signature-message 622 5 0%

Bewertung:

  • Alle Shared Libraries haben 0% Coverage — das ist ein Risiko
  • Diese Libraries werden von ALLEN Services genutzt — ein Bug hier betrifft das gesamte System
  • Insgesamt nur 4.877 Lines — ueberschaubar

Empfehlung:

  • DRINGEND: Tests fuer core-components-kafka und core-components-common schreiben
  • Shared Libraries sollten die hoechste Coverage haben (>90%), nicht die niedrigste

4. Quality Gate Failures — Zusammenfassung

Grund Projekte Beispiele
Bugs > 0 8 portal-ui (4), SV (3), archivierungsservice (2)
Coverage = 0% 12 tadef-connector, Mocks, Shared Libs, Infra-Tools
Coverage < Schwelle 3 ifp-mock (50.4%), archivierungsservice (78.8%)

5. Korrelation: SonarQube vs. Jira Bug-Rate

Team SonarQube Bugs SonarQube Coverage Jira Bug-Rate (90d) Korrelation?
404 5 84.2% 33% (steigend) NEIN — hohe Coverage, trotzdem viele Bugs
CIB 7 78.2% 20% (sinkend) TEILWEISE — niedrigere Coverage, aber Bug-Rate sinkt
Zero 0 91.8%* 15% (stabil) JA — beste Coverage = wenigste Bugs

Fazit: Coverage allein erklaert die Bug-Rate nicht. Team 404 hat gute Coverage (84%) aber die hoechste Bug-Rate. Das deutet auf:

  1. Testqualitaet — Tests pruefen nicht die richtigen Szenarien (Edge Cases, Integration)
  2. Frontend-Komplexitaet — Angular-UI hat andere Fehlerquellen als Backend (State Management, Async, Browser-Kompatibilitaet)
  3. Fehlende E2E-Tests — Unit-Tests allein reichen nicht fuer Portal-Qualitaet

6. Top-Empfehlungen (priorisiert)

  1. Shared Libraries testen (DRINGEND) — 0% Coverage bei Code der ueberall genutzt wird. Risiko: Ein Bug hier betrifft alle Services.

  2. SV-Smells systematisch abbauen — 2.214 Smells, Top-Regel S1192 (976 String-Duplikate). Sprint-weise 50-100 Smells pro PI reduzieren.

  3. Portal: Testqualitaet statt -quantitaet — Coverage ist gut (84%). Problem sind fehlende Edge-Case-Tests und E2E-Tests. Empfehlung: Playwright/Cypress fuer kritische User Flows.

  4. tadef-connector klaeren — 27.6K Lines ohne Coverage. Ist das generierter Code? Wenn ja: aus SonarQube-Metriken ausschliessen. Wenn nein: Tests schreiben.

  5. IFP-Mock Coverage erhoehen — 50.4% ist zu niedrig fuer einen Mock-Service der in Integrationstests genutzt wird.