Test-Driven Development vám pomůže psát kód bez chyb a s téměř 100% pokrytím unit testy. Jako vedlejší efekt budete mít sadu příkladů použití, která zlepší vaši orientaci v kódu.
Nejbližší termíny |
14.11.2024 Praha |
Test-Driven Development (TDD) neboli programování řízené testy je technika je založeno na psaní kódu v extrémně krátkých cyklech (jeden cyklus typicky trvá několik minut). V každém cyklu se nejdříve napíše test, který dokazuje, že požadovaná funkcionalita ještě nefunguje. Ve druhé fázi se upraví produkční kód tak, aby procházel nový test i všechny předcházející. Poslední fází je potom tzv. refaktoring neboli vylepšení struktury kódu beze změny funkcionality.
Test Driven Development typicky vede k psaní mnohem kvalitnějšího kódu než, když se kód píše bez testů. Například programátoři přirozeně téměř přestanou používat debugger, protože ho nepotřebují. Navíc je z kód přirozeně postupně pokrýván testy, což vede k menším obavám ze změn do budoucna.
Kurz programování pomocí Test-Driven Development je praktickým úvodem do této populární techniky známé už přes dvacet let. TDD je vhodná technika pro snižování technického dluhu pomocí refaktoringu. Kurz provede účastníky krok po kroku úvodem do TDD a na modelových příkladech jim umožní získat praktické zkušenosti s touto programátorskou technikou. 90% času kurzu je věnováno programování na praktických příkladech. Modelové příklady jsou vybrány tak, aby byly jednoduché na pochopení a daly se na nich demonstrovat výhody TDD jako jsou kontrola nad psaným kódem, zvýšení pokrytí kódu testy nebo inkrementální vývoj.
Cíle kurzu
Cílem kurzu je poskytnout účastníkům praktickou zkušenost s technikou Test-Driven Development a dovednosti potřebné k tomu, aby potom mohli tuto techniku používat ve své každodenní praxi. Kurz se zaměřuje na začínající i zkušené programátory, kteří ale nemají s TDD osobní zkušenost. Po absolvování kurzu budou účastníci schopni psát kvalitnější modulární kód, který bude přirozeně pokrytý automatickými testy a bude obsahovat podstatně méně chyb.
Rozsah | 1 den |
Forma | osobně nebo online práce v párech 3-4x blok po dvou hodinách s přestávkami |
Pro koho je určen | vývojář tester člen Scrum týmu architekt cvičení je možné provádět v libovolném programovacím jazyce a technologii, např. JavaScript/TypeScript, C#, Java, python, atd. |
Obsah školení
Blok 1. Úvod do Test Driven Development
Odhalíte tajemství efektivního programování pomocí TDD. Naučíte se cyklus Red-Green-Refactor. Vyzkoušíte si TDD na jednoduchém příkladu a získáte pocit kontroly nad vyvíjeným kódem, který už nikdy neztratíte.
Cvičení: přestupný rok – osvojení nástrojů
Cvičení: Word Counter – trénink cyklu Red-Green-Refactor
Blok 2. Expanze kódu pomocí Test Driven Development
V tomto bloku se naučíte rozvíjet složitější kód krok za krokem. Použijete techniku zvanou ZOMBIEs (Zero-One-Many-Boundary-Interface-Exception), která vám pomůže vybrat následující test tak, abyste si udrželi kontrolu nad rostoucím a stále komplexnějším kódem.
Cvičení: IPv6 validator – rostoucí kód pomocí ZOMBIEs
Blok 3. Dodávání hodnoty inkrementálně
Naučíte se dodávat hodnotu po po malých, snadno uchopitelných částech. Z krátkého zadání vytvoříte seznam (backlog) 10-20 minipožadavků, z nichž každý je sám o sobě hodnotný. Potom tyto požadavky v průběhu 45 minut postupně naimplementujete, takže budete dodávat novou funkci každých několik minut.
Cvičení: Elephant Carpaccio – dodávání hodnoty inkrementálně
Blok 4. Testování kódu, který má závislosti
Jaké jsou hlavní problémy, když potřebujete testovat kód, který má závislosti? Pomalé a křehké testy, které se obtížně píšou. Co s tím – naučíte se hledat tzv. švy neboli místa, kde se kód dá izolovat k testování. A potom čtyři metody, jak testy psát – Integrační testy, mockování, využití dědičnosti, explicitní závislosti. Na praktických příkladech si vyzkoušíte výhody a nevýhody každé metody.
Cvičení: Pokémoni – 4 způsoby odstranění závislosti
Bonus
Co říkají výzkumy o Test-Driven Development? Naše zkušenosti jsou jedna věc, ale co říkají data? Jaká zlepšení vašich produktů a profesionálních schopností můžete očekávat, pokud budete pravidelně používat TDD?
Školení je pouze úvodem do TDD. Tento úvod je vhodné po školení doplnit dlouhou a intenzivní praxí na konkrétním kódu dané firmy, ideálně pod vedením zkušeného mentora.
Požadavky na účastníka
- základní znalost programování
- schopnost psát kód v jednom z těchto jazyků: JavaScript, C#, Java, python
- schopnost napsat jednoduchý unit test v jednom z těchto jazyků
Technické požadavky (BYOD)
- Počítač s jakýmkoli operačním systémem
- Docker
- Visual Studio Code s rozšířením DevContainers
Školení je pouze úvodem do TDD. Tento úvod je vhodné po školení doplnit dlouhou a intenzivní praxí na konkrétních příkladech dané firmy, ideálně pod vedením zkušeného mentora.
Zkušenosti zákazníků
“O TDD a o tom, že bychom ho v naší práci mohli využít, se u nás ve firmě mluvilo už nějakou dobu. Byla to ale spíše partyzánská akce pár nadšenců, čekající na všeobecné pochopení a uznání. K tomu došlo po workshopu s Robertem, kterému se podařilo jednoduchou a navíc praktickou cestou vysvětlit přínosy tohoto přístupu i těm méně nadšeným vývojářům. Všichni si workshop moc užili a už společně spřádáme plány, jak TDD začlenit do našeho každodenního vývojářského života. Moc děkujeme!”
Anita Bak, Easy Software