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

Praktyczne wprowadzenie do TDD

Praktyczne wprowadzenie do TDD

Chcielibyśmy pokazać Test Driven Development od praktycznej strony poprzez wykonanie z uczestnikami krótkich zadań programistycznych. Warsztat składać się będzie z: 1. Wprowadzenie do techniki TDD 2. Praktyczna prezentacja procesu TDD 3. Ćwiczenia z uczestnikami (code kata) Wymagania: 1 laptop na 2 osoby PHP >= 5.4 Zapraszamy szczególnie osoby początkujące

Leszek Prabucki

November 14, 2015
Tweet

More Decks by Leszek Prabucki

Other Decks in Programming

Transcript

  1. * proces - Red Green Refactor * korzyści wynikające ze

    stosowania TDD * code kata - ciągłe doskonalnie * composer - pobieranie bibliotek i zarządzanie ich zależnościami * phpspec - narzędzie do specyfikacji jednostek w kodzie O czym powiemy?
  2. * wytwarzanie oprogramowania sterowane testsami * test first * Kent

    Beck * specyfikacja vs test * London TDD vs Classic TDD TDD
  3. 1. Nie pisz kodu produkcyjnego bez specyfikacji (testu) 2. Pisz

    tylko tyle specyfikacji (testów) ile jest potrzebne do ukazania problemów w kodzie produkcyjnym 3. Pisz tylko tyle kodu produkcyjnego ile jest potrzebne do spełnienia specyfikacji 3 prawa wujka Boba
  4. 1. Mniejszy czas debugowania 2. "Żyjąca" dokumentacja 3. Wymusza tworzenie

    kodu łatwotestowalnego = słabo powiązanego (low coupling) 4. Testy regresji - odwaga do zmian w projekcie Korzyści ze stosowania TDD
  5. 1. Specyfikacja powstaje po kodzie – to nie TDD 2.

    Testowanie i 120% pokrycia testami 3. Testy przywiązane do implementacji utrudniają zmianę (beton) 4. Testy to też kod (czytelność i utrzymanie) Błędy w TDD
  6. 1. Krótkie, proste zadania programistyczne (~30min) 2. Ciągłe potwarzanie 3.

    Trenowanie nawyków 4. Bowling game, Prime Factors, String calculator, FizzBuzz Code Kata
  7. Rozkład liczby na czynniki pierwsze Przykład 1 -> [] 2

    -> [2] 3 -> [3] 4 -> [2,2] 6 -> [2,3] 8 -> [2, 2, 2] 9 -> [3,3] 12 -> [2,2,3] 15 -> [3,5] Przykład – Prime Factors
  8. { "require-dev": { "phpspec/phpspec": "~2.3" }, "config": { "bin-dir": "bin"

    }, "autoload": { "psr-0": {"": "src"} } } composer.json