Test-Driven Development ... und mehr

2,003 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,003
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

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
  • Test-Driven Development ... und mehr

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

    ×