Artikelserie Test: Unit, Functional, Coverage

24. November 2025, 07:55 Uhr · Quelle: Pressebox
Artikelserie Test: Unit, Functional, Coverage
Foto: Pressebox
Ein kleiner Beispieltest für einen einfachen Validator
Unit-Tests stellen sicher, dass einzelne PHP-Methoden korrekt funktionieren. Functional Tests prüfen die Integration in das Gesamtsystem für zuverlässige Ergebnisse.

Karlsruhe, 24.11.2025 (PresseBox) - Als Entwickler sollte man sich immer darauf verlassen können, dass der Code, den man schreibt, so funktioniert wie er soll, und dass er keine Nebenwirkungen auf ältere, bereits bestehende Funktionen hat. Zu diesem Zweck gibt es automatische Tests. Wie mein Team bei der punkt.de diese verwendet, kann man in der Artikelserie über Tests nachlesen.

Im ersten Teil der Serieging es darum, dass geprüft wird, dass unser Code immer den selben Stil hat, sauber verwendet wird und Fremdlibraries aktuell sind. Nun wollen wir prüfen, dass der Code auch wirklich die Funktion erfüllt, die er soll.

Unit-Tests – klein aber fein

Der erste Schritt dazu sind Unit-Tests, welche wir insbesondere im Backend für den PHP-Code schreiben. Die Tests selbst werden mit dem Tool phpUnit umgesetzt.

Die Idee davon ist, dass Code schreibt, welcher von einer Klasse, welche man Testen möchte, einzelne Methoden aufruft und prüft, dass bei entsprechend befüllten Argumenten immer das korrekte Ergebnis ausgegeben wird.

Ein kleiner Beispieltest für einen einfachen Validator:

Für Unittests gibt es ein paar kleine Ideen:

  1. Man testet das „public Interface“ einer Klasse:Normalerweise will man nur die Methoden testen, die wirklich von außen aufgerufen werden, da diese im Endeffekt die Funktionalität widerspiegeln
  2. Dependencies – insbesondere Fremdcode – wird gemockt:Da man genau die eine Funktion testen möchte, und nicht einen großen Funktionen-Baum (mit Code, den man gar nicht unter Kontrolle hat), sagt man phpUnit „rufe nicht die Original-Dependency auf, sondern gib an der Stelle immer X zurück“
  3. AAA – Arrange, Act, Assert:Ein Test ist dann am einfachsten zu verstehen, wenn man zuerst alles vorbereitet (Arrange), dann alles ausführt (Act) und am Ende prüft, ob die Ergebnisse korrekt waren (Assert)
  4. Keine Logik in Tests:Die Logik, die man testet, ist innerhalb der getesteten Methoden. Wenn man zu viel Logik innerhalb eines Tests schreibt, dann braucht man einen Test für den Test, und damit hat man zu wenig Gewinn
Natürlich gibt es Ausnahmen zu diesen Ideen; Beispielsweise hatten wir im Team vor Jahren einen Test, der in einer Klasse genau eine protected Methode getestet hat, da diese das Kernstück der Klasse war und alle public Methoden nur diese protected aufgerufen hatten. Damit konnten wir uns Testaufwand sparen. Auch kann man zu viel Mocken und beispielsweise dafür sorgen, dass man nicht mehr echten Code testet, sondern nur noch die Mocks. Dies sind Fallstricke, die man immer wieder prüfen muss und die bei jedem Test wieder auf's neue Relevant werden.

Mit Unit-Tests wissen wir nun, dass unsere Puzzelteile im Code korrekt funktionieren, nun müssen wir prüfen, dass diese auch korrekt zusammengesetzt werden.

Funktionale Tests - die Summe der kleinen Teile

In den Unit-Tests wird nur eine einzelne Codestelle aufgerufen. Wir wollen nun wissen, dass die Codestellen zusammen mit dem verwendten Backend-Framework (in unserem Fall TYPO3 Extbase) in der Anwendungslogik korrekt funktionieren. Zu diesem Zweck schreiben wir Funtional Tests nach der entsprechendenTYPO3-Doku.

Dadurch, dass wir die Tests innerhalb eines TYPO3-Contextes aufrufen, stellen wir sicher, dass das „Außenherum“ korrekt initialisiert ist. Anschließend können wir Tests schreiben, welche beispielsweise Zugriff auf eine (teilweise generierte) Datenbank haben – in unserem Fall testen wir beispielsweise einen Importer.

Wir bereiten eine CSV-Datei vor, rufen innerhalb des Tests die Import-Methode auf und können danach in der Datenbank verifizieren, dass die Zeilen genau den Stand haben, den wir erwarten – wieder sehen wir AAA (Arrange, Act, Assert). Importer sind hier nur ein Beispiel, man kann theoretisch auch Scheduler-Tasks, Controller-Actions, Middlewares und anderes aufrufen.

Wir wissen, was wir testen – aber was testen wir genau?

Ein Thema, welches bei uns im Team derzeit noch nicht dediziert umgesetzt wird, aber zukünftig eingeplant wird, ist das Erfassen der Code Coverage. Man kann in phpUnit konfigurieren, welche Quellcode-Dateien theoretisch Teil des Testumfeldes sind, und phpUnit erfasst dann für diese Dateien, welche Methoden, Codezeilen und ähnliches innerhalb der Tests wirklich aufgerufen werden.

Daraus kann man sich dann eine Liste erstellen, in der man sieht, ob man z.B. in einer komplexen Methode Pfade entwickelt hat, welche nicht getestet sind, oder ob es ungetestete Klassen gibt. Außerdem wird eine Statistik erstellt, welche prozentual angibt, wie hoch der Anteil des getesteten Codes wirklich ist.

Ausblick

Im ersten Artikel hatten wir auf die Qualität des Codes geschaut, in diesem Teil auf die Funktionen innerhalb der php-Klassen. Im nächsten Teil unserer Serie werden wir darauf schauen, wie wir Teile unserer eigentlichen Anwendung testen.

Agiles Testing und Prozess-Know-how für Ihr Team:

Egal ob Agentur, Industrieunternehmen oder ein eigenständiges Entwicklerteam: Wenn Sie agile Testing-Prozesse etablieren oder weiterentwickeln wollen, unterstützen wir Sie mit unserem Know-how – sei es durch praxisorientierte Workshops oder durch direkte, projektbezogene Mitarbeit. Wir begleiten Sie von der Einführung agiler Testmethoden über die Optimierung bestehender Abläufe bis hin zur Entwicklung und Umsetzung individueller Testing-Strategien. Sprechen Sie uns gerne an, um gemeinsam Ihre Qualitätssicherung und Entwicklungsprozesse auf ein neues Level zu heben!

Autor:Christian Keuerleber

Software / Unit-Tests / Functional-Tests / PHP / Code-Coverage
[pressebox.de] · 24.11.2025 · 07:55 Uhr
[0 Kommentare]
Backup. Firewall. MFA. Und dann? Wenn Recovery scheitert, zählt professionelle Datenrettung
Leipzig, 29.04.2026 (PresseBox) - Backup-Lösungen, Firewalls, Multi-Faktor-Authentifizierung, Endpoint Security und Zero-Trust-Konzepte gehören heute in vielen Unternehmen zur IT-Sicherheitsarchitektur. Sie reduzieren Risiken, schützen Zugänge und schaffen wichtige technische Barrieren. Doch sie beantworten nicht automatisch die entscheidende Frage im […] (00)
vor 6 Stunden
Trump empfängt NASA-Astronauten
Washington (dpa) - Die USA prüfen nach Aussage von Präsident Donald Trump eine mögliche Truppenreduzierung in Deutschland. Eine Entscheidung solle in Kürze getroffen werden, schrieb er auf seiner Plattform Truth Social.  Die Ankündigung folgt auf Trumps deutliche Kritik an Bundeskanzler Friedrich Merz, weil dieser sich kritisch über die US-Offensive […] (01)
vor 15 Minuten
Sir Ringo Starr weigerte sich, 'eine der traurigsten Zeilen' auf seinem neuen Album zu singen.
(BANG) - Sir Ringo Starr weigerte sich, "eine der traurigsten Zeilen" zu singen, die T-Bone Burnett für 'Long Long Road' geschrieben hat. Die Beatles-Legende hat sich für das neue, hochkarätig besetzte Country-Album wieder mit dem ikonischen Produzenten zusammengetan und gab zu, dass einige Texte zu herzzerreißend waren, um sie zu singen. Rückblickend […] (00)
vor 6 Stunden
Amazon
Seattle (dpa) - Amazon hat zum Jahresauftakt in seiner Cloud-Sparte AWS die höchste Wachstumsrate seit 2022 verzeichnet. Der Umsatz des Segments legte in den ersten drei Monaten des Jahres im Jahresvergleich um 28 Prozent auf knapp 38 Milliarden Dollar (rund 32,5 Mrd Euro) zu. Insgesamt kletterten die Erlöse des Handels- und Technologiekonzerns um 17 Prozent auf 181,5 […] (00)
vor 16 Minuten
Steam Deck 2 lebt noch! – Valve arbeitet weiter am Nachfolger
Valve hat den Steam Deck 2 nicht auf Eis gelegt. Im Gegenteil: Laut einer neuen Einordnung von PCGamer.com unter Berufung auf ein aktuelles Gespräch mit Pierre-Loup Griffais ist Valve weiter „hart am Arbeiten“ zum Nachfolger des Steam Decks. Eine konkrete Ankündigung oder einen Starttermin gibt es aber weiterhin nicht. Das ist vor allem deshalb […] (01)
vor 4 Stunden
Sky beleuchtet das Leben von Katie Price in neuer Doku-Serie
Die vierteilige Reihe verspricht einen schonungslosen Blick hinter die Schlagzeilen einer der schillerndsten britischen Prominenten. Mit Katie Price: Nothing to Hide widmet sich Sky in diesem Sommer einer der bekanntesten Figuren der britischen Boulevardkultur. Die vierteilige Dokumentationsreihe porträtiert Katie Price und will dabei bewusst mit gängigen Wahrnehmungen brechen. Produziert wird […] (00)
vor 1 Stunde
Atlético Madrid - FC Arsenal
Madrid (dpa) - Der FC Arsenal hat sich auch ohne den verletzten Kai Havertz eine gute Ausgangsposition für den Einzug ins Finale der Champions League verschafft. Im Stimmungstempel von Atlético Madrid retteten die weiter ungeschlagenen Londoner ein 1: 1 (1: 0) gegen die Mannschaft von Diego Simeone.  24 Stunden nach dem irren Tor-Spektakel von Paris […] (01)
vor 1 Stunde
man, business, adult, suit, bitcoin, cryptocurrency, blockchain, crypto, formal, confident
Western Union hat angekündigt, auf der Blockchain-Plattform Solana zu bauen. Diese Entscheidung könnte darauf hindeuten, dass sich die Grundlagen der globalen Zahlungsinfrastruktur verändern. Western Union, bekannt für grenzüberschreitende Geldtransfers, hat traditionell auf ein Netzwerk von Vermittlern und regionalen Beschränkungen gesetzt. Der Schritt […] (00)
vor 57 Minuten
 
Voyage-Privé-Datenleck: Reise- und Passdaten betroffen
Lahr, 29.04.2026 (lifePR) - Kunden des Reiseportals Voyage Privé sind offenbar von einem […] (00)
Der perfekte Einstieg in die Welt der Vielseitigkeit
Aham, 29.04.2026 (lifePR) - Ein Öl, das universell einsetzbar, seit über 120 Jahren […] (00)
Knauf unterstützt Bündnis für Biodiversität
Iphofen, 29.04.2026 (lifePR) - Knauf ist Gründungsmitglied im von der IHK Würzburg- […] (00)
Chinesische Fahne (Archiv)
München - BASF-Chef Markus Kamieth hat die EU aufgefordert, Chinas unfairen […] (01)
Netatmo – Kamera, Flutlicht und Sirene in einem Produkt
Laut aktueller,  jährlichen Statistik des GDV  findet in Deutschland alle sechs […] (00)
Testspiel Hamburger SV - FC Bayern München
Hamburg (dpa) - Kathleen Krüger soll Berichten zufolge den seit vier Monaten vakanten […] (03)
Demi Lovatos Ehe mit Jutes ist voller Lachen, und die Beziehung bringt ihr 'so viel Freude'.
(BANG) - Demi Lovatos Ehe mit Jutes ist voller "Lachen", und die Beziehung bringt ihr […] (00)
Anne Hathaway hat betont, dass keine Models aus 'Der Teufel trägt Prada 2' gefeuert wurden.
(BANG) - Anne Hathaway hat betont, dass keine Models aus 'Der Teufel trägt Prada 2' […] (01)
 
 
Suchbegriff