Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Softwarequalität für öffentliche TYPO3-Extensions

Softwarequalität für öffentliche TYPO3-Extensions

Avatar for Oliver Klee

Oliver Klee

October 16, 2026

More Decks by Oliver Klee

Other Decks in Programming

Transcript

  1. Fahrplan > Warum automatisiert testen? > Welche Versionen wovon supporten?

    > Mit welchen Tools anfangen? > Welche Kombinationen minimal testen? > Wo lassen wir testen? > Wie ausführen lassen? Fragemodus: Köser-Regel Verständnisfragen sofort Diskussionsfragen am Ende eitle Selbstdarstellung im nächsten Slot
  2. Wer hat versehentlich etwas mit einer Änderung in einer Extension

    kaputtgemacht, ohne es zu merken? Wer hat eine Extension installiert und dann später gemerkt, dass sie eine total niedrige Qualität hatte?
  3. Warum automatisiert testen? Ihr wisst, ob die Basics eurer Extension

    korrekt funktionieren. Ihr kriegt schneller mit, wenn PRs etwas kaputt machen würden. Ihr habt eine Hilfe beim Debuggen, um die Fehlerursachen zu finden. Ihr kriegt mit, wenn neue Versionen von Dependencies (inklusive TYPO3Updates) etwas kaputt machen oder ihr etwas Deprecatetes nutzt. In eurem Repository ist sichtbar, dass eure Extension eine bestimmte Qualität hat → mehr Vertrauen bei der Entscheidung für/gegen eure Extension.
  4. Welche Versionen wovon supporten? TYPO3 PHP DBMS Symfony Minimal: die

    aktuelle niedrigere LTSVersion alle PHP-Versionen, die von den unterstützten TYPO3-Versionen offiziell unterstützt werden alle DBMS, die von den kompatiblen TYPO3-Versionen offiziell unterstützt werden > SQLite (Default) > MySQL > MariaDB > Postgres alle MinorVersionen, die von den unterstützten TYPO3-Versionen kompatibel sind Empfohlen: auch die aktuell höhere LTS-Version Abhängigkeiten explizit machen (nicht auf transitive Abhängigkeiten verlassen) Versionen von Dev-Dependencies pinnen “10.5.45” statt “^10.5”
  5. Mit welchen Tools anfangen? PHP-Linter PHP-CS-Fixer PHPStan findet Syntaxfehler Code

    Style findet potenzielle Fehler > -l > parallel-lint > mit den TYPO3Coding-Standards > mit TYPO3-Rules und PHPUnit-Rules Unit Tests Functional Tests testet einzelne Komponenten testet das Zusammenspiel > mit PHPUnit und dem TYPO3-Testing-Framework > mit PHPUnit und dem TYPO3-Testing-Framework > TYPO3-versionsspezifische Baselines
  6. Unit-und Functional-Tests-Matrix (Functionals mit SQLite) > min-max PHP > min-max

    TYPO3 > min-max Composer-Dependencies Functional-Tests mit anderen DBMS > alle unterstützen TYPO3-Versionen > Max-Dependencies, Max-PHP > die anderen DBMS: MySQL, MariaDB, Postgres
  7. Wie ausführen lassen? runTests.sh (für Standalone-Extensions, die nicht Teil eines

    DDEV-Projekts sind) kopieren von Tea-Beispiel (von der Core-runTests.sh adaptiert)