Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Testing für TYPO3-Extensions
Search
Oliver Klee
June 22, 2022
Programming
0
120
Testing für TYPO3-Extensions
Oliver Klee
June 22, 2022
Tweet
Share
More Decks by Oliver Klee
See All by Oliver Klee
Content-Synchronisierung
oliverklee
0
21
Gewaltfreie Kommunikation: ein Crashkurs
oliverklee
0
62
Motivationspsychologie und Gamification in Non-Profit-Organisationen
oliverklee
0
83
Test-driven development with PHPUnit
oliverklee
0
170
Writing PHPUnit tests for TYPO3 extensions
oliverklee
0
150
Software quality for TYPO3 projects: A story of cheese, games and tools
oliverklee
0
220
TDD für Senior-Devs
oliverklee
0
64
Gamification für Arbeit in Communities
oliverklee
0
110
Software quality, cheese and games
oliverklee
0
300
Other Decks in Programming
See All in Programming
0→1と1→10の狭間で Javaという技術選定を振り返る/Reflecting on the Decision to Choose Java Between Scaling from 0 to 1 and 1 to 10
jaguar_imo
2
380
サイコロで理解する統計的仮説検定の考え方
tatamiya
4
950
単体テストを書かない技術 #phpcon_odawara
o0h
PRO
27
8.3k
dbtのドメイン分割による データ基盤の改善とDigdagとの連携
sakama
0
350
"config" ってなんだ? / What is "config"?
okashoi
0
240
PostmanでAPIの動作確認が楽になった話
h455h1
0
170
PHP8.3の機能を振り返る / Review of PHP 8.3 features
seike460
PRO
1
110
TCAとKMPを用いた新規動画配信アプリ 「ABEMA Live」の設計
tomu28
1
110
Prepare for Jakarta EE 11 - Performance and Developer Productivity
ivargrimstad
0
800
Goのmultiple errorsについて (2024年4月版)
syumai
4
900
二郎系ラーメンのコールで学ぶ AST 解析
memory1994
PRO
7
1.7k
見た目から始める生産性向上
ikumatadokoro
7
850
Featured
See All Featured
The Cult of Friendly URLs
andyhume
74
5.7k
Build The Right Thing And Hit Your Dates
maggiecrowley
24
2k
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Faster Mobile Websites
deanohume
299
30k
Building Flexible Design Systems
yeseniaperezcruz
319
37k
Designing with Data
zakiwarfel
96
4.8k
Design by the Numbers
sachag
274
18k
A Philosophy of Restraint
colly
197
16k
Ruby is Unlike a Banana
tanoku
96
10k
BBQ
matthewcrist
80
8.8k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
Transcript
Testing für TYPO3-Extension Oliver Klee, 2022-06 @oliklee
[email protected]
Fahrplan 1. Einstieg 2. Überblick und Konzepte 3. ich baue
4. ihr baut :-) 5. Feedback & Schluss
Was braucht ihr? https://ddev.readthedocs.io / https://github.com/TYPO3-Documentation/tea/
Unit- Tests?
Manuelles Testen ist mühsam
Automatisierte Tests sind schnell
Tests für den TYPO3-Core
Unit-Tests 406 (144) Tests/s
Functional-Tests 8,13 (1,97) Tests/s
Acceptance-Tests 0,009 (0,003) 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
Baue ein Sicherheitsnetz fürs Refactoring oder für TYPO3-Updates
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
Testsuite Testcase Test Assertion Test Test Testcase
Lebenszyklus eines Tests new FooTest(); setUp(); /** @test */ lifeIsGood();
tearDown();
Test-Level http:// fi lipdefar.com/2015/06/tested-be-thy-name.html
Unit-Tests sind klein und schnell
Integrationstests testen das Zusammenspiel von Komponenten in TYPO3: „Functional
Tests“
Systemtests testen das große Ganze
Test-Typen
Blackbox-Tests testen das nach außen Sichtbare
Whitebox-Tests wie genau es innen funktioniert testen,
Akzeptanztests Selenium Codeception
Anti- Zombie- Tests-
Regressionstests
Smoketests
Smoketests
Story-Tests für Behavior-Driven Developmen t (BDD) Behat Codeception
Die Test-Pyramide Unit Functional/ Integration Acceptance System Photo by Eugene
Tkachenko on Unsplash: https://unsplash.com/photos/TF47p5PHW18
Picture by Diego González on Unsplash: https://unsplash.com/photos/-I8lDurtfAo Werbepause
4 Test-Phasen Setup (aufbauen) setUp() Code in der Testmethode Exercise
(ausführen) Methodenaufruf Verify (prüfen) assert…() Teardown (abbauen) tearDown()
None