Eliminierung technischer Schulden mit PHPStan, Rector PHP und PHPUnit. Über 20 Jahre Praxiserfahrung in skalierbaren Backends.
- Aktualisiert:
- Autor:
- Roland Golla
Was bedeutet Tests als lebende Spezifikation?
Inhalt
Lebende Spezifikation mit NCA: Schnelle Hilfe vom Experten
Testabdeckung aufbauen mit Never Code Alone
Finde das passende Angebot für dein Projekt
Anfrage-Konfiguration
Starten Sie Ihre Anfrage
Gesetzliche Konformität & Inklusion. Optimierung von Performance und Conversion durch radikal nutzerzentriertes, universelles Design.
Skalierbare KI-Systeme mit echtem Code Ownership. CI/CD, Backup-Strategien und Infrastruktur, die mit deinem Team wächst.
Anfrage-Konfiguration
Worauf liegt dein Fokus?
Wähle die Expertise, die dein Projekt jetzt am dringendsten benötigt.
Warum jede andere Dokumentation lügt
Die vier Ebenen einer lebenden Spezifikation
| Ebene | Beantwortet die Frage | Werkzeuge im NCA Stack |
|---|---|---|
| Statische Analyse | Passt der Code zu seinen eigenen Typen und Verträgen? | PHPStan, Psalm, mypy, TypeScript |
| Unit Test | Verhält sich diese Regel wie beschrieben? | PHPUnit, Pytest, Vitest |
| Funktionaler Test | Arbeiten die Bausteine im Zusammenspiel korrekt? | PHPUnit mit Datenbank, Symfony Testclient |
| End to End Test | Kann ein Mensch die Aufgabe tatsächlich erledigen? | Cypress mit Cypress Cloud |
Wie ein Test zur Spezifikation wird
public function testCalculate(): void
{
self::assertSame(0, $this->service->calc(5000, 0));
}
public function testVersandIstFreiAbFuenfzigEuroWarenwert(): void
{
$versandkosten = $this->service->berechneVersand(
warenwertInCent: 5000,
gutscheinInCent: 0,
);
self::assertSame(0, $versandkosten);
}
Lebende Spezifikation als Grundlage für sicheres Refactoring
Was das für KI Coding Agents bedeutet
Wo lebende Spezifikation an Grenzen stößt
Documentation has always been a source of frustration for everyone in software development.
Was Martraire damit meint
Aus der NCA Praxis: Der Testname ist die Dokumentation
NCA Vibe Coding Consulting
Roland Golla ist Entwickler aus Leidenschaft – seit über 20 Jahren. Er hat hunderte Projekte begleitet, von Legacy-Refactoring bis KI-Integration. Bei Vibe Coding verbindet er das Beste aus beiden Welten: Die Geschwindigkeit von KI-generiertem Code mit der Qualität professioneller Softwareentwicklung. Kein Bullshit, keine Agentur-Floskeln – direkte Hilfe von jemandem, der selbst täglich im Code steckt.
Häufige Fragen zu Tests als lebende Spezifikation
Was bedeutet lebende Spezifikation 2026 genau?
Eine lebende Spezifikation ist eine Sammlung ausführbarer Tests, die beschreibt, was die Software leisten soll, und diese Beschreibung bei jedem Lauf überprüft. Sie kann nicht stillschweigend veralten, weil eine Abweichung sofort einen roten Build erzeugt. Der englische Begriff dafür ist Living Documentation.
Warum ist das 2026 bei KI Entwicklung so wichtig?
Weil ein KI Coding Agent eine Abbruchbedingung braucht. Ohne sie iteriert er weiter, bis irgendetwas läuft. Mit einer lebenden Spezifikation ist die Bedingung eindeutig: Die benannten Tests sind grün und kein bestehender Test ist rot geworden. Das macht aus einem offenen Auftrag einen prüfbaren.
Ersetzt eine lebende Spezifikation 2026 die Dokumentation?
Nur teilweise. Tests dokumentieren Verhalten, nicht Entscheidungen. Warum ein Team eine bestimmte Datenbank oder Architektur gewählt hat, gehört weiterhin in Architecture Decision Records. Alles, was sich als konkreter Fall formulieren lässt, gehört dagegen in Tests, weil es dort nicht veralten kann.
Wie fange ich 2026 in einem Projekt ohne Tests an?
Nicht mit Vollständigkeit, sondern mit Risiko. Zuerst die Stellen absichern, an denen ein Fehler Geld oder Vertrauen kostet: Preise, Berechtigungen, Abrechnung. Dazu statische Analyse als schnelle erste Stufe. Erst wenn dieses Netz steht, wird refactored oder ein Agent auf die Codebasis gelassen.
Ist eine lebende Spezifikation 2026 dasselbe wie BDD?
Nicht ganz. BDD ist die Praxis, aus Gesprächen und Beispielen Tests abzuleiten. Die lebende Spezifikation ist das Ergebnis davon. Man kann sie auch ohne Gherkin und ohne Cucumber erreichen, mit gut benannten PHPUnit oder Pytest Tests. Entscheidend ist die fachliche Benennung, nicht das Framework.
Wie benenne ich Tests so, dass sie dokumentieren?
Der Name beschreibt die fachliche Regel in einem Satz, nicht die technische Methode. Statt testCalculate also testVersandIstFreiAbFuenfzigEuroWarenwert. Wenn dieser Test rot wird, steht im Protokoll direkt der Satz, der nicht mehr stimmt. Das spart beim Debuggen mehr Zeit, als das Umbenennen kostet.
Soll der KI Agent die Tests selbst schreiben?
Unter Führung ja, danach nein. Lässt man den Agenten zuerst implementieren und dann Tests schreiben, entstehen Tests, die zur Implementierung passen und nicht zur Anforderung. Das ist eine Bestätigung, keine Spezifikation. Die Tests gehören vor die Implementierung und gegen die fachliche Regel formuliert.
Wie gehe ich mit flaky Tests um?
Sofort und konsequent. Ein Test, der sporadisch rot wird, zerstört das Vertrauen in die gesamte Suite. Sobald ein Team anfängt, rote Builds wegzuklicken, ist die Spezifikation tot, auch wenn sie technisch noch läuft. Entweder wird der Test stabilisiert oder er fliegt raus, ein Dazwischen gibt es nicht.
Welche Rolle spielen E2E Tests dabei?
Sie beantworten die Frage, die kein Unit Test beantworten kann: Kann ein Mensch die Aufgabe tatsächlich erledigen. Wir setzen dafür Cypress mit Cypress Cloud ein. Gerade bei KI generiertem Code ist diese Ebene wichtig, weil einzelne Bausteine korrekt sein können, während der Ablauf als Ganzes nicht funktioniert.
Darf ich Tests gegen echte Kundendaten laufen lassen?
Nein. Bei uns gilt: Coding aus der Cloud, Datenverarbeitung aus dem eigenen Netzwerk. Coding Modelle laufen nicht auf Kundenhardware, deshalb arbeiten Agenten immer gegen lokale Entwicklungsumgebungen mit Fake Daten. Für souveräne Inferenz mit Zero Data Retention gibt es EU Anbieter, etwa TensorX oder Conversis in Duisburg.
Wie viel Testabdeckung ist genug?
Die Prozentzahl ist die falsche Frage. Eine Suite mit 90 Prozent Abdeckung, die die Preislogik auslässt, ist wertlos. Sinnvoller ist die Frage, ob jede fachliche Regel mindestens einen Test hat, der ihren Grenzfall trifft. Abdeckung misst Zeilen, Spezifikation misst Regeln.
Lohnt sich das auch für kleine Projekte?
Für Prototypen nicht. Wer in wenigen Stunden prüft, ob eine Idee trägt, braucht Tempo statt Spezifikation. Sobald das Projekt aber in Betrieb geht und mehr als eine Person daran arbeitet, kippt die Rechnung. Ab dem Moment kostet fehlende Spezifikation mehr, als sie je gespart hat.
Wie wir durch optimierte MCP Response Formate 90% Token eingespart haben. Praktische Anleitung für jeden der MCP Server oder API Tools für KI Agenten baut.