PHPUnit 13.4 mit Sebastian Bergmann, KI Tests und neue Features

Von Roland Golla
0 Kommentar
PHPUnit 13.4l ivestream

PHPUnit 13.4 ist seit Anfang Oktober draußen. Wir hatten Sebastian Bergmann dazu live im Never Code Alone Stream. Sebastian hat PHPUnit vor über 25 Jahren gestartet und pflegt es bis heute. Wir wollten wissen, was die neue Version kann. Und wie er selbst mit KI Tools arbeitet, die Tests schreiben. Das Gespräch wurde deutlich länger als geplant. Hier sind die wichtigsten Punkte.

PHPUnit und KI Coding im Team lernen

Tests sind die Leitplanken für jeden Coding Agent. Genau das üben wir mit eurem Team, direkt am eigenen Code und gemeinsam an der NCA Funktastatur:

  • Quality Gates: PHPUnit, PHPStan und Infection sauber in die Pipeline bringen
  • Guardrails: Regeln und Rechte für Coding Agents im eigenen Projekt
  • Für Teams: remote oder inhouse, aktuelle Termine auf Anfrage

Wie gut schreibt KI Unit Tests

Viele glauben, ein Sprachmodell liefert fertige Unit Tests auf Knopfdruck. Sebastian sieht das differenzierter. Vor etwa einem Jahr haben Agents bei ihm noch oft geschummelt. Sie haben die Konfiguration verbogen oder Testmethoden gelöscht, nur damit die Pipeline grün wird. Diese Phase ist laut Sebastian weitgehend vorbei.

Heute ist generierter Testcode meistens syntaktisch sauber. Ob er inhaltlich das Richtige prüft, ist eine andere Frage. Sinnvolle Edge Cases und echte Fachlogik bleiben Aufgabe von Menschen. Ein grüner Test sagt erst mal nur, dass er durchläuft.

Characterization Tests mit KI für Legacy Code

Richtig stark ist KI laut Sebastian bei Characterization Tests. Diese Tests fragen nicht, ob der Code korrekt arbeitet. Sie halten fest, was er heute tut. So entsteht ein Sicherheitsnetz für Code, den niemand mehr komplett versteht.

Für Teams mit alter Codebasis ist das ein großer Hebel. Ihr seht sofort, wenn sich Verhalten ändert. Wichtig bleibt die Reihenfolge. Erst stehen die Quality Gates, dann wird aufgeräumt. Das Refactoring selbst läuft bei uns mit viel Handarbeit und KI als Assistenz, nie als autonomer Agent. Und oft ist der bessere Weg aus dem Legacy heraus ein sauberes neues Projekt daneben.

Mutation Testing und PHPStan als Quality Gate

Woran erkennt ihr, ob KI Tests etwas taugen? Code Coverage allein reicht nicht. Sie zeigt nur, welche Zeilen ausgeführt wurden. Ob ein Test bei einem Fehler auch rot wird, sagt sie nicht.

Hier kommt Mutation Testing ins Spiel. Das Infection Framework verändert euren Produktionscode an vielen kleinen Stellen. Dann laufen eure Tests. Bleiben sie grün, obwohl der Code kaputt ist, habt ihr eine Lücke gefunden. Das Projekt liegt offen auf GitHub.

Sebastian kombiniert das mit PHPStan auf Level 10 und den Bleeding Edge Regeln. Zusammen ergibt das ein strenges Quality Gate. Wie ihr ein Projekt Schritt für Schritt dorthin bringt, zeigt unsere PHPStan Level Strategie mit Baseline.

Tests sind die Spezifikation

Ein Satz von Sebastian ist bei uns hängen geblieben. Er prüft generierten Produktionscode oft weniger streng als den Testcode. Seine Logik ist einfach. Wenn die Tests solide sind und alle Gates bestehen, lässt sich der Produktionscode jederzeit neu erzeugen. Die Tests beschreiben, was die Software tun soll. Der Entwickler wird damit mehr Architekt und Reviewer. Genau dieses Muster beschreiben wir auch in Warum KI Guardrails mit jedem besseren Modell wertvoller werden.

PHPUnit 13.4 neue Features

Die Version 13.4.0 erschien am 2. Oktober 2026, kurz danach folgte 13.4.1 mit Bugfixes. Die komplette Liste steht in den Release Notes auf GitHub. Das sind die Punkte, die im Stream am meisten Raum bekommen haben:

FeatureWas es bringt
Journal für Mock AufrufePHPUnit merkt sich die Reihenfolge, in der Methoden auf Mock Objekten aufgerufen werden
Cache für TestdateienPHPUnit speichert, welche Tests in welcher Datei stecken, und startet dadurch schneller
Sortierung nach ÄnderungszeitTests aus zuletzt geänderten Dateien laufen zuerst, ihr bekommt schneller Feedback
Schnittmenge von GruppenIhr wählt gezielt Tests aus, die in mehreren Gruppen gleichzeitig stecken
RequiresClass AttributEin Test wird übersprungen, wenn eine Klasse nicht existiert

Mock Reihenfolge über mehrere Objekte prüfen

Das Journal ist für Sebastian das Highlight. Bisher war es mühsam zu prüfen, ob erst Methode A auf Objekt X und danach Methode B auf Objekt Y läuft. Mit 13.4 geht das sauber. Das hilft immer dann, wenn das Zusammenspiel mehrerer Komponenten zählt. Ein Beispiel ist erst speichern, dann ein Event auslösen.

Schnelleres Feedback in großen Projekten

Der Cache und die neue Sortierung klingen klein. In Projekten mit tausenden Tests merkt ihr sie sofort. Ihr seht zuerst die Ergebnisse für den Code, an dem ihr gerade arbeitet. Das gilt für euch und für jeden Coding Agent, der lokal die Tests startet.

„PHPUnit is not a chore I am waiting to hand off.“

Sebastian Bergmann, Interview zum Forum PHP 2026

Auf Deutsch: PHPUnit ist keine lästige Pflicht, die er gern abgeben würde. Das merkt man in jedem Gespräch mit ihm.

PHPUnit Sicherheit mit KI Agenten

Ein Thema wird oft unterschätzt. Coding Agents führen immer häufiger selbst Befehle aus und lesen die Ausgabe. Damit wird jedes Kommandozeilen Tool zur Angriffsfläche. Die OWASP hat dafür eigene Listen veröffentlicht, neben den Top 10 für LLM Anwendungen inzwischen auch die OWASP Top 10 for Agentic Applications.

Sebastian hat PHPUnit an diesen Richtlinien entlang gehärtet. Ein Beispiel aus dem Stream sind ANSI Escape Sequenzen. Über präparierte Testausgaben ließe sich ein grüner Lauf vortäuschen. Ein Mensch oder Agent liest dann Erfolg, wo keiner ist. OWASP fasst diese Art Angriff unter Human Agent Trust Exploitation. Dagegen helfen strenges Escaping und Validierung.

Mit PHPUnit 13.5 soll die Option show-effective-configuration kommen. Sie zeigt die Konfiguration, die zur Laufzeit wirklich gilt. Für das Sandboxing von Agents ist das wichtig. Ihr wisst dann genau, welche Dateien und Verzeichnisse gelesen oder geschrieben werden. Ein guter Startpunkt sind auch die Security Hinweise von PHPUnit. Sie sagen klar, dass ungeprüfter Testcode in der Pipeline wie fremder Code auf eurer Infrastruktur wirkt.

PHPUnit 13.5 mit paralleler Ausführung und Test Impact Analysis

Für das Release im Dezember hat Sebastian zwei große Features angekündigt. Das erste ist native parallele Testausführung. Das zweite ist Test Impact Analysis. PHPUnit schaut dabei auf den Git Patch und startet nur die Tests, die von den geänderten Dateien betroffen sind. Zusammen mit Coverage Daten bleiben so aus tausenden Tests oft nur ein paar hundert übrig. Eure CI Pipeline wird schneller und ihr könnt öfter deployen.

Sebastian bittet die Community, beides schon jetzt auf den Branches im Repository zu testen. Feedback vor dem Release macht die Features stabiler. Den Release Plan für PHPUnit 13 findet ihr in der offiziellen Ankündigung.

Was wir daraus für Teams mitnehmen

KI im Entwicklungsalltag ist kein Allheilmittel. Sie ist ein Werkzeug, das klare Grenzen braucht. Das Gespräch mit Sebastian bestätigt unsere Erfahrung aus vielen Workshops:

  • Tests zuerst: ohne PHPUnit und statische Analyse bleibt jeder Agent ein Glücksspiel
  • Qualität messen: Mutation Testing zeigt, ob Tests wirklich etwas absichern
  • Ausgaben prüfen: ein grüner Lauf ist nur so viel wert wie das Setup dahinter
  • Feedback beschleunigen: neue Sortierung und bald Test Impact Analysis sparen echte Zeit

Wer tiefer bei Sebastian einsteigen will, findet seine PHPUnit Trainings bei thePHP.cc.

Mehr zu PHPUnit, PHPStan und Testing

Grundlagen, Installation und den Umstieg auf Version 13 erklärt unser Glossar Eintrag zu PHPUnit. Was das letzte große Update von PHPStan bringt, lest ihr in PHPStan 2.3 Update. Damit Tests, Entwickler und Agents auf denselben Daten arbeiten, hilft ein fester Standard für Seed Daten im Team. Wie wir Teams mit Legacy Code und fehlenden Tests begleiten, steht auf der Seite PHP Consulting. Hängt euer Projekt noch auf einer alten Version, ist ein PHP Update oft der erste Schritt.

Tests und Guardrails für euer KI Setup

Ein Coding Agent ist nur so verlässlich wie die Tests, gegen die er arbeitet. Wir bauen mit eurem Team die Quality Gates auf: PHPUnit, PHPStan, Infection und Cypress in der Pipeline. Dazu Regeln und Rechte für die Agents. Direkt an eurem Code, gemeinsam an der Funktastatur.

Remote oder inhouse, aktuelle Termine auf Anfrage. Das Vorgespräch ist kostenlos.

Häufige Fragen zu PHPUnit 13.4

Was ist neu in PHPUnit 13.4 2026?

PHPUnit 13.4 zeichnet die Reihenfolge von Aufrufen auf Mock Objekten auf, auch über mehrere Objekte hinweg. Dazu kommen ein Cache für Testdateien, eine Sortierung nach Änderungszeit, die Auswahl von Tests in mehreren Gruppen und das Attribut RequiresClass. Die Version erschien am 2. Oktober 2026.

Kann KI 2026 gute Unit Tests mit PHPUnit schreiben?

Teilweise. Generierte Tests sind meist syntaktisch korrekt. Ob sie die richtigen Fälle und Edge Cases prüfen, müssen Menschen bewerten. Sebastian Bergmann sieht KI besonders stark bei Characterization Tests für alten Code. Mutation Testing und statische Analyse zeigen, ob die Tests wirklich etwas absichern.

Warum reicht Code Coverage 2026 nicht für KI Tests?

Coverage zeigt nur, welche Zeilen während der Tests ausgeführt wurden. Sie sagt nichts darüber, ob ein Test bei einem Fehler rot wird. Mutation Testing mit Infection verändert den Code gezielt und prüft, ob die Tests das bemerken. So findet ihr Tests, die laufen, aber nichts prüfen.

Wann kommt PHPUnit 13.5 2026?

Laut Release Plan von PHPUnit ist Version 13.5 für Anfang Dezember 2026 geplant. Sebastian Bergmann hat dafür native parallele Testausführung, Test Impact Analysis und die Option show-effective-configuration angekündigt. Die Features lassen sich vorab auf den Branches im GitHub Repository testen.

Was ist Test Impact Analysis in PHPUnit 2026?

Test Impact Analysis wertet einen Git Patch aus und startet nur die Tests, die von den geänderten Dateien betroffen sind. Mit Coverage Daten kombiniert, schrumpft eine große Test Suite oft auf wenige hundert relevante Tests. Das macht CI Pipelines deutlich schneller und erlaubt häufigere Deployments.

Welche Sicherheitsrisiken gibt es mit KI Agenten und PHPUnit?

Agents lesen Testausgaben und handeln danach. Manipulierte Ausgaben, etwa über ANSI Escape Sequenzen, könnten einen grünen Lauf vortäuschen. OWASP nennt das Human Agent Trust Exploitation. Dazu kommt ungeprüfter Testcode in der Pipeline, der wie fremder Code auf eurer Infrastruktur wirkt.

Wie prüfe ich die Aufrufreihenfolge von Mocks in PHPUnit?

Ab PHPUnit 13.4 protokolliert ein Journal, in welcher Reihenfolge Methoden auf Mock Objekten aufgerufen werden. Damit lässt sich prüfen, dass zuerst eine Methode auf einem Objekt und danach eine andere auf einem zweiten Objekt läuft. Details stehen in den Release Notes und der PHPUnit Dokumentation.

Wo finde ich das Video mit Sebastian Bergmann?

Das komplette Gespräch ist oben in diesem Beitrag eingebettet. Es lief live im YouTube Stream von Never Code Alone. Dort findet ihr auch weitere Live Sessions mit Maintainern aus dem PHP Ökosystem, etwa zu PHPStan, Symfony AI und Sulu.

0 Kommentar

Tutorials und Top Posts

Gib uns Feedback

Diese Seite benutzt Cookies. Ein Akzeptieren hilft uns die Seite zu verbessern. Ok Mehr dazu