Von Dr. Cassian Holt, Senior Architect & Programming Language Historian bei Java Fleet Systems Consulting in Essen-Rüttenscheid


⚡ Kurze Zusammenfassung – Das Wichtigste in 30 Sekunden

Diese Testing-Serie ist anders: Cassian (Senior Architect) erklärt das WARUM – die wissenschaftlichen Grundlagen und Konzepte. Jamal (Backend Developer) zeigt das WIE – pragmatische Umsetzung ohne Theorie-Overhead. Praktische Themen (Unit Tests, Integration Tests) schreibt Jamal solo. Theoretische Themen (Property-Based Testing, Mutation Testing) schreibt Cassian solo. Kontroverse Themen wie TDD schreiben beide zusammen – mit ehrlichen Diskussionen über Theorie vs. Praxis. Du bekommst beide Perspektiven: Tiefes Verständnis UND sofort anwendbares Wissen. Nach der Serie kannst du nicht nur Tests schreiben, sondern auch verstehen, WANN welcher Test-Typ sinnvoll ist.


👥 Eine ungewöhnliche Zusammenarbeit

Cassian: Grüße, Code-Entdecker! Dr. Cassian hier. Ich bin normalerweise der Typ, der euch mit historischen Kontext-Einordnungen und Programming Language Theory bombardiert. Aber für diese Testing-Serie mache ich etwas Ungewöhnliches: Ich teile mir die Bühne.

Jamal: Moin! Jamal hier – Backend Developer, 6 Jahre Erfahrung mit Spring Boot. Ich bin der Typ, der morgens um 9 Uhr Code deployen muss und keine Zeit für 20-minütige Exkurse über die historische Entwicklung von JUnit hat. Keine Beleidigung, Cassian.

Cassian: Keine genommen. Genau deshalb machen wir das zusammen.


🤝 Warum wir beide?

Cassian: Testing ist ein faszinierendes Feld. Es verbindet wissenschaftliche Methodik mit praktischer Software-Entwicklung. Die theoretischen Grundlagen sind elegant, die historische Entwicklung von TDD ist—

Jamal: —und genau hier verlieren wir 80% der Leser.

Cassian: Touché.

Jamal: Schau, Cassian ist brilliant. Wirklich. Wenn du verstehen willst, WARUM Testing funktioniert, gibt’s niemand Besseren. Aber wenn du morgen einen Test schreiben musst und nicht weißt, wie – dann brauchst du mich.

Cassian: Deshalb teilen wir die Serie auf. Ich erkläre das „Warum“ und die Konzepte. Jamal zeigt das „Wie“ und die Praxis.

Jamal: Und manchmal muss ich Cassian daran erinnern, dass nicht jeder eine Promotion in Computer Science hat.

Cassian: Und manchmal muss ich Jamal daran erinnern, dass „es funktioniert“ nicht dasselbe ist wie „es ist gut“.

Jamal: Touché.


📚 Wie diese Serie aufgebaut ist

Artikel-Typen:

🔬 Cassian schreibt: (Konzeptionelle Themen)

  • Theoretische Grundlagen
  • Historische Entwicklung
  • Design Principles
  • „Warum funktioniert X so?“

🔧 Jamal schreibt: (Praktische Themen)

  • Hands-On Tutorials
  • „Wie setze ich X um?“
  • Real-World Beispiele
  • Debugging-Strategien

👥 Beide zusammen: (Theorie trifft Praxis)

  • TDD (Cassian: Die Philosophie, Jamal: Die kritische Sicht)
  • Refactoring Patterns
  • Testing-Strategien

🗓️ Die Serie im Überblick

Teil 1: Unit Testing Grundlagen 🔧

Autor: Jamal
Warum: Testing ist fundamentals Praxis. Du brauchst keine Theorie, um deinen ersten Test zu schreiben.

Jamal: Ich zeige dir, wie du heute deinen ersten vernünftigen Test schreibst. Keine Wissenschaft, nur Code.


Teil 2: Die Test-Pyramide & Testing-Strategie 👥

Autoren: Cassian & Jamal
Warum: Die Pyramide hat theoretische Gründe, aber praktische Konsequenzen.

Cassian: Die Test-Pyramide ist keine beliebige Empfehlung – sie folgt mathematischen Prinzipien.

Jamal: Und ich zeige dir, wie du sie in deinem Spring Boot Projekt umsetzt, ohne dass deine Build-Zeit explodiert.


Teil 3: Integration Testing 🔧

Autor: Jamal
Warum: Integration-Tests sind 100% Praxis.

Jamal: Spring Boot, Testcontainers, @MockBean – hands-on, kein Schnickschnack.


Teil 4: TDD – Test-Driven Development 👥

Autoren: Cassian & Jamal
Warum: TDD ist kontrovers. Es braucht beide Perspektiven.

Cassian: TDD ist wissenschaftliche Methode angewandt auf Code. Es führt zu besserem Design, weil—

Jamal: —weil es in der Theorie fantastisch klingt, aber in der Praxis oft frustrierend ist. Ich sage nicht, dass TDD schlecht ist. Aber ich sage, dass es nicht für jede Situation passt. Und das ist okay.

Cassian: Deshalb diskutieren wir das gemeinsam. Theorie vs. Reality Check.


Teil 5: Property-Based Testing 🔬

Autor: Cassian
Warum: Das ist pure Wissenschaft.

Cassian: Property-Based Testing ist mathematisch elegant und findet Bugs, die Example-Based Testing nie finden würde. Das ist Cassian-Territory.

Jamal: Ich hab’s versucht zu vereinfachen. Geht nicht. Das ist sein Ding. Viel Erfolg!


Teil 6: Mutation Testing 🔬

Autor: Cassian
Warum: Wissenschaftliche Methode zur Test-Quality-Messung.

Cassian: Mutation Testing ist faszinierend. Es testet deine Tests. Meta-Testing, wenn man so will.

Jamal: Ich nutze es auch, aber ich kann’s nicht so gut erklären wie er.


💡 Was diese Serie NICHT ist

Jamal: Keine Theorie-Vorlesung. Zumindest nicht nur.

Cassian: Keine Kochrezepte ohne Verständnis. Zumindest nicht nur.

Beide: Eine Balance. Verstehen UND Umsetzen.


🎯 Für wen ist diese Serie?

Für dich, wenn du:

✅ Testing lernst und nicht nur Copy-Paste willst
✅ Verstehen willst, WARUM bestimmte Patterns funktionieren
✅ Aber auch sehen willst, WIE man sie umsetzt
✅ Bereit bist, sowohl Theorie als auch Praxis zu lernen

Nicht für dich, wenn du:

❌ Nur Quick-Wins ohne Kontext suchst
❌ Denkst, dass Theorie Zeitverschwendung ist
❌ Oder dass Praxis ohne Fundament ausreicht


🤔 Eine ehrliche Diskussion über Testing

Cassian: Testing ist wissenschaftliche Methode. Jeder Test ist eine Hypothese über dein System. Ohne Tests ist Software-Entwicklung trial-and-error.

Jamal: Stimmt. Aber lass uns ehrlich sein: Viele Tests in Real-World-Projekten sind Müll. Sie testen nichts Sinnvolles, schlagen bei jedem Refactoring fehl, und niemand wartet sie.

Cassian: Das ist ein Problem der Implementation, nicht der Methode.

Jamal: Aber es IST ein Problem. Und wenn wir über Testing reden, müssen wir auch darüber reden, was in der Praxis schiefgeht.

Cassian: Fair enough. Deshalb ist es gut, dass wir beide hier sind.


🎭 Unsere unterschiedlichen Perspektiven

Cassian’s Ansatz:

„Testing ist angewandte Wissenschaft. Wenn du die Prinzipien verstehst – AAA-Pattern, Test-Pyramide, Property-Based Testing – dann kannst du gute Tests für JEDEN Kontext schreiben.“

Stärken:

  • Tiefes Verständnis führt zu besseren Entscheidungen
  • Patterns sind übertragbar
  • Du verstehst WARUM etwas funktioniert

Schwächen:

  • Kann überwältigend sein
  • Manchmal zu theoretisch
  • „Analysis Paralysis“ möglich

Jamal’s Ansatz:

„Testing ist Pragmatismus. Schreib Tests, die Wert bringen. Teste kritische Pfade zuerst. Perfekt ist der Feind von gut genug. Ship code that works.“

Stärken:

  • Sofort anwendbar
  • Fokus auf ROI (Return on Investment)
  • Real-World-orientiert

Schwächen:

  • Manchmal zu praktisch
  • Kann wichtige Konzepte überspringen
  • „Quick and Dirty“ Gefahr

🌟 Was du aus dieser Serie mitnehmen wirst

Nach dieser Serie kannst du:

Verstehen, WARUM Testing wichtig ist (Cassian)
Umsetzen, WIE man gute Tests schreibt (Jamal)
Entscheiden, WANN welche Test-Art sinnvoll ist (beide)
Kritisch bewerten, ob ein Test Wert bringt (beide)
Deine eigene Testing-Strategie entwickeln (beide)


💬 Eine letzte Sache…

Cassian: Testing ist keine Pflicht. Es ist—

Jamal: —eine Versicherung gegen Production-Disasters um 23 Uhr. Glaub mir, ich spreche aus Erfahrung.

Cassian: Ich wollte eigentlich sagen: Es ist Respekt vor der Zukunft, die deinen Code verändern wird.

Jamal: Das auch. Aber hauptsächlich die 23-Uhr-Sache.

Cassian: …manchmal vermisse ich es, alleine zu bloggen.

Jamal: Zu spät. Wir machen das jetzt zusammen.


🚀 Bereit?

Cassian: Nächste Woche startet Teil 1 mit den Unit Testing Grundlagen. Jamal übernimmt.

Jamal: Ich zeige dir, wie du deinen ersten vernünftigen Test schreibst. Kein Schnickschnack, nur praktische Schritte.

Cassian: Und ich halte die Klappe und greife nur ein, wenn Jamal etwas wissenschaftlich Fragwürdiges sagt.

Jamal: Was nie passieren wird.

Cassian: Wir werden sehen.


🎯 Die Artikel-Übersicht

✅ Prolog (heute): Warum diese Serie anders wird

📅 Kommende Teile:

  1. Unit Testing Grundlagen 🔧 (Jamal) – Deine ersten Tests schreiben
  2. Test-Pyramide & Strategie 👥 (beide) – Theorie trifft Praxis
  3. Integration Testing 🔧 (Jamal) – Spring Boot & Testcontainers
  4. TDD – Die kritische Diskussion 👥 (beide) – Philosophie vs. Pragmatismus
  5. Property-Based Testing 🔬 (Cassian) – Mathematisch elegante Tests
  6. Mutation Testing 🔬 (Cassian) – Testing deine Tests

💭 Zwischen den Zeilen

Cassian: Während ich diese Serie mit Jamal plane, merke ich: Collaboration ist wie gutes Testing. Man braucht verschiedene Perspektiven, um das Gesamtbild zu sehen.

Jamal: Und manchmal braucht man jemanden, der einen daran erinnert, dass nicht jeder stundenlang über Lambda-Kalkül nachdenken will.

Cassian: Manchmal sind die größten Bugs nicht im Code, sondern in unserer Art zu denken. Manche Geschichten sind komplizierter als Code… Falls du neugierig bist, was wir abseits der Technik erleben… unsere Website-Suche findet mehr als nur Code-Snippets. Probier mal „herzschmerz“ – nur so als Tipp! 🔍

Jamal: Das war jetzt sehr kryptisch, Cassian.

Cassian: Ich habe meine Momente.


Keep coding, keep learning! 🚀

Nächste Woche: Jamal zeigt dir, wie du deinen ersten Unit Test schreibst – pragmatisch, hands-on, ohne Theorie-Overhead!


Dr. Cassian Holt – Senior Architect & Programming Language Historian
„Testing ist Wissenschaft in Aktion“

Jamal Hassan – Backend Developer & Spring Boot Specialist
„Testing ist Versicherung gegen 23-Uhr-Hotfixes“


Java Fleet Systems Consulting, Essen-Rüttenscheid, Oktober 2025

Tags: #Testing #SerienStart #Collaboration #TheorieUndPraxis #JUnit #SpringBoot #TDD #RealWorldDevelopment

Autoren

  • Cassian Holt

    43 Jahre alt, promovierter Informatiker mit Spezialisierung auf Programming Language Theory. Cassian arbeitet als Senior Architect bei Java Fleet Systems Consulting und bringt eine einzigartige wissenschaftliche Perspektive in praktische Entwicklungsprojekte. Seine Leidenschaft: Die Evolution von Programmiersprachen und warum "neue" Features oft alte Konzepte sind.

  • Jamal Hassan

    ⚙️ Jamal Hassan – Der Zuverlässige

    Backend Developer | 34 Jahre | „Ich schau mir das an.“

    Wenn im Team jemand gebraucht wird, der ruhig bleibt, während alle anderen hektisch diskutieren, dann ist es Jamal.
    Er redet nicht viel – er löst.
    Er plant wie ein Schachspieler: drei Züge im Voraus, jede Entscheidung mit Folgen bedacht.
    Seine Art zu arbeiten ist kein Sprint, sondern eine Strategie.

    Er kam 2021 zur Java Fleet, nachdem sein vorheriges Startup gescheitert war. Statt Frust hat er Gelassenheit mitgebracht – und eine Haltung, die das Team bis heute prägt: Stabilität ist keine Bremse, sondern ein Fundament.
    In einer Welt voller Hypes baut Jamal Systeme, die bleiben.

    💻 Die Tech-Seite

    Jamal ist der Inbegriff von Backend-Handwerk.
    Er liebt Architektur, die logisch ist, Datenmodelle, die Bestand haben, und Services, die einfach laufen.
    Spring Boot, REST, Kafka, Docker, DDD – das sind seine Werkzeuge, aber nicht sein Selbstverständnis.
    Er versteht Systeme als Ökosysteme: Jede Entscheidung hat Auswirkungen, jedes Modul muss sich in das Ganze einfügen.

    Er ist der Typ Entwickler, der eine halbe Stunde in Stille auf den Bildschirm schaut – und dann mit einem Satz alles löst:

    „Das Problem liegt nicht im Code. Es liegt in der Annahme.“

    Sein Code ist wie seine Persönlichkeit: still, präzise, verlässlich.
    Er dokumentiert, was nötig ist, und schreibt Tests, weil er Verantwortung ernst nimmt.
    Er hält nichts von Schnellschüssen – und noch weniger von Ausreden.

    🌿 Die menschliche Seite

    Jamal ist kein Mensch der Bühne.
    Er mag es, wenn andere glänzen – Hauptsache, das System läuft.
    Er trinkt arabischen Kaffee, spielt Schach im Verein und genießt es, wenn Dinge logisch ineinandergreifen – egal ob Code oder Leben.
    In der Kaffeeküche hört man ihn selten, aber wenn er etwas sagt, ist es meist ein Satz, der hängen bleibt.

    Im Team ist er der stille Vertraute, der Probleme anhört, bevor er sie bewertet.
    Nova nennt ihn „den Debugger in Menschengestalt“, Kat sagt: „Wenn Jamal nickt, weißt du, dass du auf der richtigen Spur bist.“
    Und Cassian beschreibt ihn als „Architekt mit Geduld und ohne Ego“.

    🧠 Seine Rolle im Team

    Jamal ist das strukturelle Rückgrat der Crew.
    Er denkt in Systemen, nicht in Features – in Verantwortlichkeiten, nicht in Ruhm.
    Wenn Projekte drohen, aus dem Ruder zu laufen, bringt er sie mit wenigen Worten und einer klaren Architektur wieder auf Kurs.
    Er ist das, was Franz-Martin „den ruhigen Hafen im Sturm“ nennt.

    ⚡ Superkraft

    Stabilität durch Denken.
    Jamal löst nicht nur technische Probleme – er beseitigt deren Ursachen.

    ☕ Motto

    „Ich schau mir das an.“
    (Und wenn er das sagt, ist das Problem so gut wie gelöst.)