Test-Driven Development                              ... undOliver Klee, 27.-28.08.2011   mehr
Unit-Tests?
Manuelles Testen ist mühsam
AutomatisierteTests sindschnell
Unit-Tests für dieRealty-Manager-   Extension
mehr als1600 Tests
in weniger als 60 Sekunden
Sicher sein, dass derCode das Richtige tut
Verhindern, dass deineÄnderungen etwas anderes           kaputt machen
Verhindern,         dass andere Leutedeinen Code kaputtmachen
Auch bei komplexen Projekten         nichts kaputt machen
Baue ein   Sicherheitsnetz            fürs Refactoring
Grün fühlt sich   gut                   an!
Grün fühlt sich   gut                   an!
Kenne    deineWerkzeuge
Die phpunit-Extensionbringt alles Wichtige mit
Die phpunit-Extensionbringt alles Wichtige mitphpunit (TYPO3-Extension)
Die phpunit-Extensionbringt alles Wichtige mitphpunit (TYPO3-Extension)  PHPUnit (PEAR-Paket)
Die phpunit-Extensionbringt alles Wichtige mitphpunit (TYPO3-Extension)  PHPUnit (PEAR-Paket) Testrunner (Back-end-   Modul)
Die phpunit-Extensionbringt alles Wichtige mitphpunit (TYPO3-Extension)  PHPUnit (PEAR-Paket) Testrunner      Testrunner (...
Die phpunit-Extensionbringt alles Wichtige mitphpunit (TYPO3-Extension)  PHPUnit (PEAR-Paket)  Testing-Framework für FE & ...
Treffen sichzwei Tests ...
Test   Treffen sich       zwei Tests ...
Test      Treffen sichAssertion   zwei Tests ...
Test      Treffen sichAssertion   zwei Tests ...  Test  Test
Test      Treffen sichAssertion   zwei Tests ...  Test  TestTestcase
Test      Treffen sichAssertion   zwei Tests ...  Test  TestTestcaseTestcase
Test       Treffen sichAssertion    zwei Tests ...  Test  TestTestcaseTestcase Testsuite
Benutze   aussagekräftige                    Unit-Test-   Namen
Benutze   aussagekräftige                          Unit-Test-   NamenBenenne das Verhalten.             classCanBeInstanti...
Benutze   aussagekräftige                          Unit-Test-   NamenBenenne das Verhalten.             classCanBeInstanti...
Benutze   aussagekräftige                                Unit-Test-   Namen Benenne das  Verhalten.                  class...
Benutze   aussagekräftige                                Unit-Test-   Namen Benenne das  Verhalten.                  class...
Benutze   aussagekräftige                                Unit-Test-   Namen Benenne das  Verhalten.                  class...
Benutze   aussagekräftige                                Unit-Test-   Namen Benenne das  Verhalten.                  class...
Lebenszyklus Tests           eines
Lebenszyklus Tests           eines
Lebenszyklus Tests            eines           new FooTest();
Lebenszyklus Tests            eines           new FooTest();
Lebenszyklus Tests            eines           new FooTest();                    setUp();
Lebenszyklus Tests            eines           new FooTest();                    setUp();           /** @test */           ...
Lebenszyklus Tests            eines           new FooTest();                    setUp();           /** @test */           ...
Lebenszyklus Tests            eines           new FooTest();                    setUp();           /** @test */           ...
Lebenszyklus Tests            eines           new FooTest();                    setUp();           /** @test */           ...
Lebenszyklus Tests            eines           new FooTest();                    setUp();           /** @test */           ...
Schreibe   zuerst   den   Test
Schreibe   zuerst   den   Test
Schreibe   zuerst   den   Test        Test     schreiben
Schreibe   zuerst   den   Test        Test     schreiben
Schreibe   zuerst   den   Test        Test       Code     schreiben   schreiben
Schreibe   zuerst   den   Test        Test       Code     schreiben   schreiben
Schreibe   zuerst   den   Test        Test       Code     schreiben   schreiben
Schreibe   zuerst   den   Test        Test       Code     schreiben   schreiben                             refactoren
Schreibe   zuerst   den   Test        Test       Code     schreiben   schreiben                             refactoren
Es gibtkleine und große              Tests
Unit-Tests sind    klein und schnell
Integrationstests testen      das große Ganze
Automatisierte Klick-Tests testen die Außenansicht
Automatisierte Klick-Tests testen die Außenansicht                  Selenium
Blackbox-Tests      testen         das   nach außen Sichtbare
Whitebox-Tests    testen                  wie genau es        innen funktioniert
Code Review:    4-Augen-      Prinzip
Mozilla setzt auf  doppelte Kontrolle
Mozilla setzt auf  doppelte KontrollePatch
Mozilla setzt auf  doppelte KontrollePatch        Bugtracker
Mozilla setzt auf  doppelte Kontrolle                      Peer-Patch                Review        Bugtracker
Mozilla setzt auf  doppelte Kontrolle        nicht okay                      Peer-Patch                Review        Bugtr...
Mozilla setzt auf  doppelte Kontrolle        nicht okay                      Peer-   so okayPatch                Review   ...
Mozilla setzt auf  doppelte Kontrolle        nicht okay                      Peer-   so okayPatch                Review   ...
Mozilla setzt auf  doppelte Kontrolle        nicht okay                      Peer-   so okayPatch                Review   ...
Mozilla setzt auf  doppelte Kontrolle        nicht okay                      Peer-   so okayPatch                Review   ...
Mozilla setzt auf  doppelte Kontrolle        nicht okay                         Approval                      Peer-   so o...
Mozilla setzt auf  doppelte Kontrolle                         nicht okay        nicht okay                         Approva...
Mozilla setzt auf  doppelte Kontrolle                         nicht okay                                           okay   ...
Mozilla setzt auf  doppelte Kontrolle                                                 Checkin                         nich...
oliverklee.de                      reichen     4 Augen        nicht okay                      Peer-   so okayPatch        ...
oliverklee.de                      reichen     4 Augen        nicht okay                      Peer-   so okay       Checki...
Das TYPO3-Core -Team          stimmt ab
Das TYPO3-Core -Team              stimmt abPatch
Das TYPO3-Core -Team                     stimmt ab        BugtrackerPatch        Newsgroup
Das TYPO3-Core -Team                           stimmt ab        Bugtracker   Diskussion inPatch                Newsgroup, ...
Das TYPO3-Core -Team                           stimmt ab   Überarbeitungsbedarf        Bugtracker   Diskussion inPatch    ...
Das TYPO3-Core -Team                           stimmt ab   Überarbeitungsbedarf                     Diskussion in   mehr +...
Das TYPO3-Core -Team                           stimmt ab   Überarbeitungsbedarf      mindestens                           ...
Das TYPO3-Core -Team                           stimmt ab                                          Checkin   Überarbeitungs...
Pair-Programmingist ständigerReview
Pair-Programmingist ständigerReview        ... und     ständige    Schulung
Versionskontrolle   ist deine Rettung
Branches erlaubenparallele Versionen
Üblich: Der Trunk ist die„Bleeding Edge“
Üblich: Der Trunk ist die„Bleeding Edge“        Trunk
Üblich: Der Trunk ist die„Bleeding Edge“        Trunk                 Fe                    atu                        re
Üblich: Der Trunk ist die„Bleeding Edge“                 Milestone 4        Trunk                 Fe                    at...
Üblich: Der Trunk ist die„Bleeding Edge“                 Milestone 4        Trunk                 Fe          Bu          ...
Üblich: Der Trunk ist die„Bleeding Edge“                 Milestone 4        Trunk                 Fe          Bu       Fe ...
Üblich: Der Trunk ist die„Bleeding Edge“                  Milestone 4        Trunk                  Fe          Bu       F...
Üblich: Der Trunk ist die„Bleeding Edge“                   Milestone 4        Trunk                   Fe          Bu      ...
Üblich: Der Trunk ist die„Bleeding Edge“                   Milestone 4        Trunk                   Fe          Bu      ...
Üblich: Der Trunk ist die„Bleeding Edge“                   Milestone 4        Trunk                   Fe          Bu      ...
Üblich: Der Trunk ist die„Bleeding Edge“                   Milestone 4        Trunk                   Fe          Bu      ...
Üblich: Der Trunk ist die„Bleeding Edge“                   Milestone 4        Trunk                   Fe          Bu      ...
Branches für Experimente             (eher selten)
Branches für Experimente             (eher selten)            tu re      fix      tu re         Fea        Bug     FeaTrunk
Branches für Experimente              (eher selten)             tu re      fix      tu re          Fea        Bug     Fea T...
Branches für Experimente              (eher selten)                      tu re       fix      tu re                   Fea  ...
Branches für Experimente              (eher selten)                      tu re       fix      tu re                   Fea  ...
ContinuousIntegration
ContinuousIntegration    =
ContinuousIntegration     = öfter maleinchecken
Der Continuous-Integration-Server               überwacht den Code     Checkin                            Repository (SVN)
Der Continuous-Integration-Server               überwacht den Code     Checkin                      k                  -Ho...
Der Continuous-Integration-Server                überwacht den Code     Checkin                        k                  ...
Der Continuous-Integration-Server                überwacht den Code     Checkin                        k                  ...
Der Continuous-Integration-Server                überwacht den Code     Checkin                        k                  ...
Der Continuous-Integration-Server                überwacht den Code     Checkin                        k                  ...
Test-Driven Development ... und mehr
Test-Driven Development ... und mehr
Nächste SlideShare
Wird geladen in …5
×

Test-Driven Development ... und mehr

1.620 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.620
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \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

    ×