Your SlideShare is downloading. ×
Test-Driven Development ... und mehr
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Test-Driven Development ... und mehr

363
views

Published on

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
363
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript

    • 1. Test-Driven Development ... undOliver Klee, 27.-28.08.2011 mehr
    • 2. Unit-Tests?
    • 3. Manuelles Testen ist mühsam
    • 4. AutomatisierteTests sindschnell
    • 5. Unit-Tests für dieRealty-Manager- Extension
    • 6. mehr als1600 Tests
    • 7. in weniger als 60 Sekunden
    • 8. Sicher sein, dass derCode das Richtige tut
    • 9. Verhindern, dass deineÄnderungen etwas anderes kaputt machen
    • 10. Verhindern, dass andere Leutedeinen Code kaputtmachen
    • 11. Auch bei komplexen Projekten nichts kaputt machen
    • 12. Baue ein Sicherheitsnetz fürs Refactoring
    • 13. Grün fühlt sich gut an!
    • 14. Grün fühlt sich gut an!
    • 15. Kenne deineWerkzeuge
    • 16. Die phpunit-Extensionbringt alles Wichtige mit
    • 17. Die phpunit-Extensionbringt alles Wichtige mitphpunit (TYPO3-Extension)
    • 18. Die phpunit-Extensionbringt alles Wichtige mitphpunit (TYPO3-Extension) PHPUnit (PEAR-Paket)
    • 19. Die phpunit-Extensionbringt alles Wichtige mitphpunit (TYPO3-Extension) PHPUnit (PEAR-Paket) Testrunner (Back-end- Modul)
    • 20. Die phpunit-Extensionbringt alles Wichtige mitphpunit (TYPO3-Extension) PHPUnit (PEAR-Paket) Testrunner Testrunner (Back-end- (Kommandozeilen- Modul) Modul)
    • 21. Die phpunit-Extensionbringt alles Wichtige mitphpunit (TYPO3-Extension) PHPUnit (PEAR-Paket) Testing-Framework für FE & DB Testrunner Testrunner (Back-end- (Kommandozeilen- Modul) Modul)
    • 22. Treffen sichzwei Tests ...
    • 23. Test Treffen sich zwei Tests ...
    • 24. Test Treffen sichAssertion zwei Tests ...
    • 25. Test Treffen sichAssertion zwei Tests ... Test Test
    • 26. Test Treffen sichAssertion zwei Tests ... Test TestTestcase
    • 27. Test Treffen sichAssertion zwei Tests ... Test TestTestcaseTestcase
    • 28. Test Treffen sichAssertion zwei Tests ... Test TestTestcaseTestcase Testsuite
    • 29. Benutze aussagekräftige Unit-Test- Namen
    • 30. Benutze aussagekräftige Unit-Test- NamenBenenne das Verhalten. classCanBeInstantiated
    • 31. Benutze aussagekräftige Unit-Test- NamenBenenne das Verhalten. classCanBeInstantiated Nenne die Methode. setTitleSetsTitle
    • 32. Benutze aussagekräftige Unit-Test- Namen Benenne das Verhalten. classCanBeInstantiated Nenne die Methode. setTitleSetsTitle Nenne die setSizeWithZeroThrowsExceptionVorbedingungen. hasTitleForEmptyTitleReturnsFalse
    • 33. Benutze aussagekräftige Unit-Test- Namen Benenne das Verhalten. classCanBeInstantiated Nenne die Methode. setTitleSetsTitle Nenne die setSizeWithZeroThrowsExceptionVorbedingungen. hasTitleForEmptyTitleReturnsFalse Benutze nicht „works“ oder „correctly“.
    • 34. Benutze aussagekräftige Unit-Test- Namen Benenne das Verhalten. classCanBeInstantiated Nenne die Methode. setTitleSetsTitle Nenne die setSizeWithZeroThrowsExceptionVorbedingungen. hasTitleForEmptyTitleReturnsFalse Benutze nicht „works“ oder measureFrubbleWorksCorrectly „correctly“.
    • 35. Benutze aussagekräftige Unit-Test- Namen Benenne das Verhalten. classCanBeInstantiated Nenne die Methode. setTitleSetsTitle Nenne die setSizeWithZeroThrowsExceptionVorbedingungen. hasTitleForEmptyTitleReturnsFalse Benutze nicht „works“ oder measureFrubbleWorksCorrectly „correctly“.
    • 36. Lebenszyklus Tests eines
    • 37. Lebenszyklus Tests eines
    • 38. Lebenszyklus Tests eines new FooTest();
    • 39. Lebenszyklus Tests eines new FooTest();
    • 40. Lebenszyklus Tests eines new FooTest(); setUp();
    • 41. Lebenszyklus Tests eines new FooTest(); setUp(); /** @test */ lifeIsGood();
    • 42. Lebenszyklus Tests eines new FooTest(); setUp(); /** @test */ lifeIsGood();
    • 43. Lebenszyklus Tests eines new FooTest(); setUp(); /** @test */ lifeIsGood(); tearDown();
    • 44. Lebenszyklus Tests eines new FooTest(); setUp(); /** @test */ lifeIsGood(); tearDown();
    • 45. Lebenszyklus Tests eines new FooTest(); setUp(); /** @test */ lifeIsGood(); tearDown();
    • 46. Schreibe zuerst den Test
    • 47. Schreibe zuerst den Test
    • 48. Schreibe zuerst den Test Test schreiben
    • 49. Schreibe zuerst den Test Test schreiben
    • 50. Schreibe zuerst den Test Test Code schreiben schreiben
    • 51. Schreibe zuerst den Test Test Code schreiben schreiben
    • 52. Schreibe zuerst den Test Test Code schreiben schreiben
    • 53. Schreibe zuerst den Test Test Code schreiben schreiben refactoren
    • 54. Schreibe zuerst den Test Test Code schreiben schreiben refactoren
    • 55. Es gibtkleine und große Tests
    • 56. Unit-Tests sind klein und schnell
    • 57. Integrationstests testen das große Ganze
    • 58. Automatisierte Klick-Tests testen die Außenansicht
    • 59. Automatisierte Klick-Tests testen die Außenansicht Selenium
    • 60. Blackbox-Tests testen das nach außen Sichtbare
    • 61. Whitebox-Tests testen wie genau es innen funktioniert
    • 62. Code Review: 4-Augen- Prinzip
    • 63. Mozilla setzt auf doppelte Kontrolle
    • 64. Mozilla setzt auf doppelte KontrollePatch
    • 65. Mozilla setzt auf doppelte KontrollePatch Bugtracker
    • 66. Mozilla setzt auf doppelte Kontrolle Peer-Patch Review Bugtracker
    • 67. Mozilla setzt auf doppelte Kontrolle nicht okay Peer-Patch Review Bugtracker
    • 68. Mozilla setzt auf doppelte Kontrolle nicht okay Peer- so okayPatch Review Bugtracker
    • 69. Mozilla setzt auf doppelte Kontrolle nicht okay Peer- so okayPatch Review Bugtracker okay, aber mit Änderungen
    • 70. Mozilla setzt auf doppelte Kontrolle nicht okay Peer- so okayPatch Review Bugtracker okay, aber mit Änderungen überarbeiteter Patch
    • 71. Mozilla setzt auf doppelte Kontrolle nicht okay Peer- so okayPatch Review Bugtracker okay, aber mit Änderungen überarbeiteter Patch
    • 72. Mozilla setzt auf doppelte Kontrolle nicht okay Approval Peer- so okay vomPatch Review Module- Bugtracker Owner okay, aber mit Änderungen überarbeiteter Patch
    • 73. Mozilla setzt auf doppelte Kontrolle nicht okay nicht okay Approval Peer- so okay vomPatch Review Module- Bugtracker Owner okay, aber mit Änderungen überarbeiteter Patch
    • 74. Mozilla setzt auf doppelte Kontrolle nicht okay okay nicht okay Approval Peer- so okay vomPatch Review Module- Bugtracker Owner okay, aber mit Änderungen überarbeiteter Patch
    • 75. Mozilla setzt auf doppelte Kontrolle Checkin nicht okay okay nicht okay Approval Peer- so okay vomPatch Review Module- Bugtracker Owner okay, aber mit Änderungen überarbeiteter Patch
    • 76. oliverklee.de reichen 4 Augen nicht okay Peer- so okayPatch Review Bugtracker okay, aber mit Änderungen überarbeiteter Patch
    • 77. oliverklee.de reichen 4 Augen nicht okay Peer- so okay CheckinPatch Review Bugtracker okay, aber mit Änderungen überarbeiteter Patch
    • 78. Das TYPO3-Core -Team stimmt ab
    • 79. Das TYPO3-Core -Team stimmt abPatch
    • 80. Das TYPO3-Core -Team stimmt ab BugtrackerPatch Newsgroup
    • 81. Das TYPO3-Core -Team stimmt ab Bugtracker Diskussion inPatch Newsgroup, Newsgroup +1 oder -1
    • 82. Das TYPO3-Core -Team stimmt ab Überarbeitungsbedarf Bugtracker Diskussion inPatch Newsgroup, Newsgroup +1 oder -1
    • 83. Das TYPO3-Core -Team stimmt ab Überarbeitungsbedarf Diskussion in mehr +1 Bugtracker als -1Patch Newsgroup, Newsgroup +1 oder -1
    • 84. Das TYPO3-Core -Team stimmt ab Überarbeitungsbedarf mindestens ein +1 vom Core-Team Diskussion in mehr +1 Bugtracker als -1Patch Newsgroup, Newsgroup +1 oder -1
    • 85. Das TYPO3-Core -Team stimmt ab Checkin Überarbeitungsbedarf mindestens ein +1 vom Core-Team Diskussion in mehr +1 Bugtracker als -1Patch Newsgroup, Newsgroup +1 oder -1
    • 86. Pair-Programmingist ständigerReview
    • 87. Pair-Programmingist ständigerReview ... und ständige Schulung
    • 88. Versionskontrolle ist deine Rettung
    • 89. Branches erlaubenparallele Versionen
    • 90. Üblich: Der Trunk ist die„Bleeding Edge“
    • 91. Üblich: Der Trunk ist die„Bleeding Edge“ Trunk
    • 92. Üblich: Der Trunk ist die„Bleeding Edge“ Trunk Fe atu re
    • 93. Üblich: Der Trunk ist die„Bleeding Edge“ Milestone 4 Trunk Fe atu re
    • 94. Üblich: Der Trunk ist die„Bleeding Edge“ Milestone 4 Trunk Fe Bu atu gfi re x
    • 95. Üblich: Der Trunk ist die„Bleeding Edge“ Milestone 4 Trunk Fe Bu Fe atu gfi atu re x re
    • 96. Üblich: Der Trunk ist die„Bleeding Edge“ Milestone 4 Trunk Fe Bu Fe Br atu gfi atu an re x re ch
    • 97. Üblich: Der Trunk ist die„Bleeding Edge“ Milestone 4 Trunk Fe Bu Fe Br atu gfi atu an re x re ch Bug fix
    • 98. Üblich: Der Trunk ist die„Bleeding Edge“ Milestone 4 Trunk Fe Bu Fe Br atu gfi atu an re x re ch RC 1 Bug fix
    • 99. Üblich: Der Trunk ist die„Bleeding Edge“ Milestone 4 Trunk Fe Bu Fe Br atu gfi atu an re x re ch RC 1 Bug Bug fix fix
    • 100. Üblich: Der Trunk ist die„Bleeding Edge“ Milestone 4 Trunk Fe Bu Fe Br atu gfi atu an re x re ch RC 1 Bug RC 2 Bug fix fix
    • 101. Üblich: Der Trunk ist die„Bleeding Edge“ Milestone 4 Trunk Fe Bu Fe Br atu gfi atu an re x re ch RC 1 Bug RC 2 V1.0 Bug fix fix
    • 102. Branches für Experimente (eher selten)
    • 103. Branches für Experimente (eher selten) tu re fix tu re Fea Bug FeaTrunk
    • 104. Branches für Experimente (eher selten) tu re fix tu re Fea Bug Fea TrunkBran ch
    • 105. Branches für Experimente (eher selten) tu re fix tu re Fea Bug Fea Trunk ureBr urean t ure Fea ch t Fea t Fea
    • 106. Branches für Experimente (eher selten) tu re fix tu re Fea Bug Fea Trunk ureBr urean t ure Fea ch t Fea t Fea
    • 107. ContinuousIntegration
    • 108. ContinuousIntegration =
    • 109. ContinuousIntegration = öfter maleinchecken
    • 110. Der Continuous-Integration-Server überwacht den Code Checkin Repository (SVN)
    • 111. Der Continuous-Integration-Server überwacht den Code Checkin k -Hoo Repository (SVN) SVN
    • 112. Der Continuous-Integration-Server überwacht den Code Checkin k -Hoo Repository (SVN) SVN Continuous-Integration- Server
    • 113. Der Continuous-Integration-Server überwacht den Code Checkin k -Hoo Repository (SVN) SVN Hey, eine Änderung! Continuous-Integration- Server
    • 114. Der Continuous-Integration-Server überwacht den Code Checkin k -Hoo Repository (SVN) SVN Hey, eine Änderung! Continuous-Integration- Unit-Tests Server laufen lassen
    • 115. Der Continuous-Integration-Server überwacht den Code Checkin k -Hoo Repository (SVN) SVN Hey, eine Änderung! Continuous-Integration- Unit-Tests Bericht Server laufen lassen