Ein Coding Agent schreibt in Sekunden mehr Tests, als du an einem Tag schreiben würdest. Sie sind grün, und die Code Coverage steigt. Ob sie prüfen, was deine Software tun soll, oder nur festhalten, was sie gerade tut, einschließlich ihrer Fehler, sagt dir der Agent nicht. Das Schreiben von Tests ist damit nicht mehr der Engpass. Knapp ist das Urteil darüber, ob ein Test etwas taugt, und die Fähigkeit, einem Agenten vorzugeben, was er testen und was er implementieren soll.
Nach diesem Engpass habe ich mein Schulungsprogramm für 2027 ausgerichtet. In den meisten der dreizehn Schulungen spielt ein Coding Agent eine Rolle: als Autor von Tests, die du beurteilst, als Empfänger von Vorgaben, die du festlegst, oder als Leser einer Testausgabe, die sein Kontextfenster nicht füllen soll. Alle Schulungen auf einen Blick findest du auf der Seite Schulungen.
Das Fundament kommt vor dem ersten Test
Ein Urteil über einen Test setzt voraus, dass du weißt, wie ein guter Test aussieht. Woher soll dieses Wissen kommen, wenn ein Agent die meisten Tests schreibt? Diese Frage zieht sich durch das ganze Programm.
Meine Antwort beginnt mit „Testen verstehen“. Diese Schulung legt das theoretische Fundament, auf dem du danach lernst und übst, Tests zu schreiben, und auf dem du Tests beurteilst, egal, wer sie geschrieben hat. In den sechs Sitzungen schreibst du keinen Code, du liest ihn. Du lernst die Begriffe und Prinzipien des Testens, vom Orakel eines Tests über F.I.R.S.T. und Test Doubles bis zu der Frage, was Code Coverage misst und was nicht, und wendest sie auf vorgelegte Tests an, von denen viele ein Agent geschrieben hat.
Die Reihenfolge ist Absicht: erst das Fundament, dann das Schreiben und das Beurteilen. Wenn dein Projekt nicht so lange warten kann, besuchst du parallel „Startklar mit PHPUnit“. Dort richtest du ein, was dein Projekt braucht, damit Tests zum Alltag werden, von der Ordnung in der Testsuite über den Testlauf im Container und in der CI bis zur Testdatenbank mit synthetischen Daten. Tests schreibst du in dieser Schulung nicht selbst, sie kommen aus dem Übungsprojekt oder von deinem Agenten.
Wenn Agenten Tests schreiben, muss jemand festlegen, wie diese Tests aussehen. In „Tests mit System“ legst du in der ersten Sitzung fest, welche Tests ein Projekt braucht und welchen Regeln sie folgen, und begründest jede Entscheidung. In der zweiten machst du die Regeln mit einer strengen Konfiguration von PHPUnit und mit PHPStan prüfbar, sodass ein Werkzeug jede Abweichung meldet, auch die eines Agenten.
Testen verstehen
- Ohne PHPUnit-Vorkenntnisse
- Für jede Programmiersprache
Nächster Termin:
Startklar mit PHPUnit
- Ohne PHPUnit-Vorkenntnisse
Nächster Termin:
Tests mit System
Nächster Termin:
Der Agent schreibt, du verantwortest
In „Agentic PHPUnit“ arbeitest du mit deinem eigenen Coding Agent. Er schreibt die Tests, du beurteilst sie, und zwar gegen die Anforderung statt gegen den Code. Ein Agent, der deinen Code liest, schreibt auf, was der Code tut, und hat der Code einen Fehler, bestätigen die Tests ihn. Du lernst, den Agenten mit einer AGENTS.md und den richtigen Aufträgen anzuleiten, ihm Leitplanken zu setzen, die schwache Tests aufhalten, bevor du sie lesen musst, und Tests, die nur das Ist-Verhalten festhalten, von fachlichen Tests zu unterscheiden, die das nächste Refactoring überleben. Weil Agenten nicht deterministisch antworten, kommen in jeder Übung verschiedene Testsuiten heraus, und aus dem Vergleich mehrerer lernst du mehr als aus einer.
„Testgetrieben entwickeln mit KI-Agenten“ dreht die Richtung um. Hier schreibst du die Tests selbst, und zwar zuerst: Sie legen fest, was der Agent implementiert. Das setzt voraus, dass du testgetriebene Entwicklung beherrschst. Deshalb lernst du sie in den ersten vier Sitzungen von Grund auf und ohne KI, im Ensemble Programming an einem gemeinsamen Bildschirm. Erst in den letzten beiden Sitzungen überträgst du die Arbeitsweise auf deinen Agenten, und ein Quality Gate aus Coding Standard, PHPStan, Deptrac, PHPUnit und Infection entscheidet, ob seine Implementierung gut genug ist.
Agentic PHPUnit
Nächster Termin:
Testgetrieben entwickeln mit KI-Agenten
Nächster Termin:
Grün heißt nicht richtig
Auch eine Testsuite, die du sorgfältig beurteilt hast, prüft nur die Beispiele, an die jemand gedacht hat. „Testen jenseits der Beispiele“ zeigt dir drei Techniken, die finden, woran niemand gedacht hat. Property-Based Testing lernst du mit der neuen Unterstützung in PHPUnit 14. Mutation Testing beantwortet die Frage, ob deine Tests einen echten Fehler überhaupt bemerken würden, für jeden Test, auch für einen generierten. Fuzzing füttert deinen Code mit Eingaben, mit denen niemand rechnet.
Was eine Testsuite übersieht, kann auch eine Sicherheitslücke sein. In „Sicherheitslücken dauerhaft schließen“ findest du Schwachstellen per Capture the Flag, hältst jede als PHPUnit-Test fest und schließt sie dann. Ein Coding Agent hilft dir beim Finden und Beheben. Ob die Lücke wirklich zu ist, entscheidet der Test, und weil er in der Testsuite bleibt, merkst du es, wenn sie wieder aufgeht.
Testen jenseits der Beispiele
- Ohne PHPUnit-Vorkenntnisse
- Für jede Programmiersprache
Nächster Termin:
Sicherheitslücken dauerhaft schließen
Nächster Termin:
Testlauf, Git und Abhängigkeiten müssen mit Agenten rechnen
Ein Agent schreibt nicht nur Code und Tests. Er liest die Ausgabe deiner Testläufe, arbeitet in deinem Repository und fügt Pakete zu deinem Projekt hinzu. Drei Schulungen nehmen das auf.
In „Zeit und Tokens sparen mit PHPUnit“ ist der Agent der Leser deiner Testausgabe. Eine langsame Testsuite kostet Zeit, eine ausufernde Testausgabe kostet Tokens. In den ersten vier Sitzungen misst du, wo deine Testsuite ihre Zeit verbringt, und beschleunigst sie. In den letzten beiden richtest du Testläufe so ein, dass ein Agent ihr Ergebnis richtig liest und eine Lücke in der Code Coverage benennt, statt eine Zahl zu optimieren.
„Git im Griff“ behandelt saubere Commits, das, was bei einem Merge wirklich passiert, und ein Entwicklungsmodell, das zu deinem Team passt. Die fünfte Sitzung zeigt, wie mehrere Menschen und Agenten mit Worktrees gleichzeitig arbeiten, ohne sich in die Quere zu kommen.
„Dependency Management & Supply Chain Security“ beginnt bei dem, was bei composer require, install und update wirklich geschieht, und bei der Frage, welcher Code bei jeder Installation läuft. Die letzte Sitzung fragt, was ein Coding Agent an deinen Abhängigkeiten ändern darf.
Zeit und Tokens sparen mit PHPUnit
Nächster Termin:
Git im Griff
- Ohne PHPUnit-Vorkenntnisse
Nächster Termin:
Dependency Management & Supply Chain Security
- Ohne PHPUnit-Vorkenntnisse
Nächster Termin: (bisherige Fassung mit 5 Sitzungen)
Upgrades gehören in den Kalender
Im November erscheint eine neue PHP-Version, im Februar eine neue Hauptversion von PHPUnit. Beides lässt sich planen, und drei Schulungen folgen diesem Takt. „Was ist neu in PHP?“ ordnet die neue PHP-Version ein: was sie bringt, warum sie so entworfen wurde und was beim Upgrade kaputtgeht. In „PHPUnit 14 Unwrapped“ packe ich zwei Stunden lang aus, was in PHPUnit 14 neu ist und warum es sich geändert hat. In „PHPUnit-Upgrade ohne Überraschungen“ bringst du danach deine Testsuite von PHPUnit 13 auf PHPUnit 14 und sorgst dafür, dass das nächste Upgrade klein bleibt.
Was ist neu in PHP?
- Ohne PHPUnit-Vorkenntnisse
Nächster Termin: (auf Englisch)
PHPUnit 14 Unwrapped
Nächster Termin: (auf Englisch)
PHPUnit-Upgrade ohne Überraschungen
Nächster Termin:
Sechs Sitzungen in drei Tagen
Bis 2026 fand an jedem Tag einer Schulung eine Sitzung statt. Ab 2027 sind es zwei, von 10 bis 12 Uhr und von 15 bis 17 Uhr, an aufeinanderfolgenden Werktagen. Eine Schulung mit sechs Sitzungen dauert damit drei Tage, eine mit vier Sitzungen zwei Tage und eine mit zwei Sitzungen einen Tag. Freitagnachmittags findet keine Sitzung statt. Das neue Format geht auf Rückmeldungen von Teilnehmenden zurück und auf die Erfahrungen, die mein Partner bei thePHP.cc, Stefan Priebsch, mit diesem Format gesammelt hat.
Zwischen zwei Sitzungen liegen jetzt drei Stunden oder eine Nacht. Für Aufgaben an deinem eigenen Projekt reicht das nicht, und keine Schulung setzt solche Aufgaben voraus. Wo dein eigener Code gebraucht wird, holen die Schulungen ihn in die Sitzungen: „Agentic PHPUnit“ und „Testen jenseits der Beispiele“ widmen ihm jeweils die letzte.
Vier Schulungen bringen mein Buch mit
2027 erscheint mein Buch „PHPUnit Best Practices“, auf Englisch und zusammen mit einer Extension für PHPStan und mit Agent Skills. Das Buch begründet seine Regeln, die Extension meldet, wo Testcode von ihnen abweicht, und die Agent Skills geben sie einem Coding Agent in einer Form mit, nach der er handeln kann. Dahinter steht derselbe Gedanke wie hinter „Tests mit System“: Eine Regel, die ein Werkzeug prüft, hält besser als eine, an die jemand im Review denken muss.
Wer an „Tests mit System“, „Agentic PHPUnit“, „Testgetrieben entwickeln mit KI-Agenten“ oder „Zeit und Tokens sparen mit PHPUnit“ teilnimmt, bekommt das Buch, die Extension und die Agent Skills.
Wo du einsteigst, hängt von deinem Projekt ab
Die Lernpfade verbinden die Schulungen zu Wegen, etwa vom ersten Test bis zur Arbeit mit einem Agenten, der Tests schreibt, oder zu gemeinsamen Testvorgaben für ein Team. Alle Termine stehen im Terminkalender. Gebucht werden die Schulungen bei der thePHP.cc Academy, und die Seite jeder Schulung verlinkt die Anmeldung, sobald sie geöffnet ist.
Läuft in deinem Projekt noch kein einziger automatisierter Test, beginnt der Weg mit „Wo sind deine Tests?“, einer kostenlosen Stunde.
Wo sind deine Tests?
- Ohne PHPUnit-Vorkenntnisse
- Für jede Programmiersprache
Nächster Termin:
Jede dieser Schulungen gibt es auch nur für dein Team, online oder bei euch vor Ort, auf Deutsch oder auf Englisch. Dann arbeiten wir an euren Fragen und, wo es passt, an eurem Code. Eine solche Schulung kannst du bei thePHP.cc anfragen.