Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Testing von TYPO3-Extensions
Search
Oliver Klee
October 22, 2026
Programming
30
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Testing von TYPO3-Extensions
Oliver Klee
October 22, 2026
Transcript
41 slides
Testing von TYPO3-Extension Oliver Klee, 2026-10 @
[email protected]
| oliverklee.de |
[email protected]
Über mich Oliver „Oli“ Klee #bonn #workshop-teacher (seit 1999) #extension-dev
(seit 2005) #unit-testing-guy (seit 2008) #phpstan-guy #best-practices-team #serious-games #metal
Workshops mit mir Extension-Entwicklung Test-driven-Development TYPO3-Extensions testen QA-Automatisierung Git &
Composer Refactoring
UnitTests?
Manuelles Testen ist mühsam
Automatisierte Tests sind schnell
Tests für den TYPO3-Core
Unit-Tests ca. 1700 Tests/s
Functional-Tests ca. 9,8 Tests/s
End-to-end-Tests ca. 0,18 Tests/s
Sicher sein, dass der Code das Richtige tut
Verhindern, dass deine Änderungen etwas anderes kaputt machen
Verhindern, dass andere Leute deinen Code kaputtmachen
Auch bei komplexen Projekten nichts kaputt machen
oder TYPO3-, PHP-, Symfony-Updates Baue ein Sicherheitsnetz fürs Refactoring
Verbessere die Struktur des Codes
Finde die Ursache von Bugs
Grün fühlt sich gut an!
Lasst uns ein paar Begriffe klarstellen
Die zwei Programmier-Modi sauber hacky
Test Assertion Test Test Testcase Testcase Testsuite
Lebenszyklus eines Tests new FooTest(); setUp(); [#Test] lifeIsGood(); tearDown();
4 Test-Phasen Setup (aufbauen) setUp() Code in der Testmethode Exercise
(ausführen) Methodenaufruf Verify (prüfen) assert…() Teardown (abbauen) tearDown()
Test-driven-Development Test schreiben Code schreiben refactoren
Auswirkungen von TDD höhere Testabdeckung erst denken, dann coden fokussierter
coden Tests testen, was der Code tun soll (anstatt, was er tut) sauberere Code-Struktur minimaler Code
Test-Level fi http:// lipdefar.com/2015/06/tested-be-thy-name.html
Unit-Tests sind klein und schnell
Functional-Tests testen das Zusammenspiel von Komponenten auch: „Integrationstests“
End-to-end-Tests t h g i r Playw s s e
r p y C
Test-Typen
Blackbox-Tests testen das nach außen Sichtbare
Whitebox-Tests testen, wie genau es innen funktioniert
Akzeptanztests m u i n e l Se n o
i t p e Co dec
AntiZombieTests-
Regressionstests
Smoketests
Smoketests
Story-Tests für Behavior-Driven Development (BDD) Behat r e b m
Cucu
Die Test-Pyramide End-to-End System Functional Unit Photo by Eugene Tkachenko
on Unsplash: https://unsplash.com/photos/TF47p5PHW18
Tests benennen
Benutze aussagekräftige Test-Namen Benenne das Verhalten. classCanBeInstantiated Nenne die Methode.
setTitleSetsTitle Nenne die Vorbedingungen. setSizeWithZeroThrowsException hasTitleForEmptyTitleReturnsFalse Benutze nicht „works“ oder „correctly“. measureFrubbleWorksCorrectly
More Decks by Oliver Klee
See All by Oliver Klee
Softwarequalität für öffentliche TYPO3-Extensions
oliverklee
0
85
Psychologische Sicherheit
oliverklee
0
50
Generative KI, Ethik und Nachhaltigkeit
oliverklee
0
290
Gewaltfreie Kommunikation: ein Crashkurs
oliverklee
0
160
Team-Management-Plattform
oliverklee
0
110
Vertrauen in Teams & Führung
oliverklee
0
340
Software-Qualität von TYPO3-Extensions automatisieren
oliverklee
0
72
Vertrauen in Teams & Führung
oliverklee
0
200
Testing von TYPO3-Extensions
oliverklee
0
120
Other Decks in Programming
See All in Programming
Seven New Principles of Software Engineering
yegor256
0
490
[Kotlin Fest 2026] eBPF Tracing for Kotlin
takehaya
1
130
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
akihisaikeda
1
320
エラーチャンネルのボールを拾い続けて鍛えるエンジニアの地力 / phpcon-niigata2026
meihei3
1
120
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5.9k
Claude Code ハーネスDeep Dive – 君はどこまで制御する? -
takateeen_knj
6
5.7k
AIが生成したコードは読むべきか?抽象化設計とコードの品質保証 / abstraction-design-and-quality
minodriven
16
9.1k
우리의 Nitro Modules는 당신의 Turbo Modules보다 아름답다
l2hyunwoo
0
260
PyConTW 2026 - AI Coding 不只是工具升級, 區域醫院醫療資訊系統協作開發與資訊團隊轉型實踐
cclai999
0
250
Будущее локальных LLM – Алексей Голобурдин, PythoNN
sobolevn
0
120
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
250
LLM 101
dalinaum
0
490
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
72
12k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
750
The Mindset for Success: Future Career Progression
greggifford
PRO
0
560
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
The Cult of Friendly URLs
andyhume
79
7.1k
Odyssey Design
rkendrick25
PRO
3
940
Mobile First: as difficult as doing things right
swwweet
225
10k
The Limits of Empathy - UXLibs8
cassininazir
2
780
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Git: the NoSQL Database
bkeepers
PRO
433
67k
Faster Mobile Websites
deanohume
310
32k
エンジニアに許された特別な時間の終わり
watany
109
250k