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

Test-driven-Development mit TYPO3

Oliver Klee
September 12, 2017

Test-driven-Development mit TYPO3

Oliver Klee

September 12, 2017
Tweet

More Decks by Oliver Klee

Other Decks in Technology

Transcript

  1. Test-driven- 

    Development

    mit TYPO3
    Oliver Klee, 2017-09
    @oliklee [email protected]

    View Slide

  2. Unit-
    Tests?

    View Slide

  3. Manuelles Testen ist mühsam

    View Slide

  4. Automatisierte
    Tests sind schnell

    View Slide

  5. Unit-Tests für die

    Realty-Manager-
    TYPO3-Extension

    View Slide

  6. >1600 Tests

    View Slide

  7. < 60 Sekunden

    View Slide

  8. Sicher sein, dass der
    Code das Richtige tut

    View Slide

  9. Verhindern, dass deine
    Änderungen etwas anderes
    kaputt machen

    View Slide

  10. Verhindern,
    dass andere Leute
    deinen Code kaputtmachen

    View Slide

  11. Auch bei komplexen

    Projekten nichts

    kaputt machen

    View Slide

  12. Baue ein Sicherheitsnetz
    fürs Refactoring
    oder für

    TYPO3-Updates

    View Slide

  13. Verbessere
    die Struktur
    des Codes

    View Slide

  14. Grün fühlt sich gut an!

    View Slide

  15. View Slide

  16. Lasst uns

    ein paar
    Begriffe

    klarstellen

    View Slide

  17. Die zwei Programmier-Modi
    sauber
    hacky

    View Slide

  18. Testsuite
    Testcase
    Test
    Assertion
    Test
    Test
    Testcase

    View Slide

  19. Lebenszyklus eines Tests
    new FooTest();
    setUp();
    /** @test */
    lifeIsGood();
    tearDown();

    View Slide

  20. 4 Test-Phasen
    Setup (aufbauen)
    setUp()

    Code in der Testmethode
    Exercise (ausführen) Methodenaufruf
    Verify (prüfen) assert…()
    Teardown (abbauen) tearDown()

    View Slide

  21. Schreibe zuerst den Test
    Test

    schreiben
    Code

    schreiben
    refactoren

    View Slide

  22. View Slide

  23. Test-Level
    http://filipdefar.com/2015/06/tested-be-thy-name.html

    View Slide

  24. Unit-Tests sind
    klein und schnell

    View Slide

  25. Integrationstests
    testen das Zusammenspiel
    von Komponenten
    in TYPO3:

    „Functional Tests“

    View Slide

  26. Systemtests testen
    das große Ganze

    View Slide

  27. Test-Typen

    View Slide

  28. Blackbox-Tests
    testen das
    nach außen Sichtbare

    View Slide

  29. Whitebox-Tests wie genau es
    innen funktioniert
    testen,

    View Slide

  30. Functional

    Tests

    View Slide

  31. Akzeptanztests

    View Slide

  32. Anti-

    Zombie-

    Tests-

    View Slide

  33. Regressionstests

    View Slide

  34. Smoketests

    View Slide

  35. Smoketests

    View Slide

  36. Story-Tests für
    Behavior-Driven Development
    (BDD)

    View Slide

  37. View Slide

  38. Test-
    Namen

    View Slide

  39. Benutze aussagekräftige
    Test-Namen
    classCanBeInstantiated
    setTitleSetsTitle
    setSizeWithZeroThrowsException
    hasTitleForEmptyTitleReturnsFalse
    Benenne das
    Verhalten.
    Nenne die
    Vorbedingungen.
    Nenne die
    Methode.
    Benutze nicht
    „works“ oder
    „correctly“.
    measureFrubbleWorksCorrectly

    View Slide

  40. View Slide

  41. Code-

    Kata

    View Slide

  42. View Slide

  43. Kenne
    Werkzeuge
    deine

    View Slide

  44. TYPO3-Testing-Frameworks
    TYPO3 CMS PHPUnit PHP Fokus
    typo3/

    testing-
    framework
    8.5.x-9.x 6.2.x 7.0.x-7.1.x
    Core

    (Extensions)
    nimut/

    testing-
    framework
    6.2.x-8.7.x

    (6.2.x-9.x)
    4.8.x-5.7.x 5.3.x-7.1.x Extensions

    View Slide