Test Driven Development

Test-Driven Development (TDD) neboli programování řízené testy je technika, která je založena 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.

Rozsah1 den
Formaosobně nebo online
práce v párech
3-4x blok po dvou hodinách s přestávkami
Pro koho je určenvývojář
tester
člen Scrum týmu
architekt
cvičení je možné provádět v libovolném programovacím jazyce a technologii, např. C++, C#, Java, python, JavaScript, TypeScript, ruby, kotlin, atd.
Test Driven Development (TDD) cycle

Obsah školení

Blok 1. Úvod do Test Driven Development

  • testovací kvadranty
  • úvod do TDD
  • přínosy TDD
  • cvičení – osvojení nástrojů, 
  • cvičení – první kód pomocí TDD – např. počítání slov, kalkulátor řetězců

Blok 2. Expanze kódu pomocí Test Driven Development

  • co jsou ZOMBIEs
  • cvičení – expanze kódu – např. validace adresy IPV6

Blok 3. Dodávání hodnoty inkrementálně 

  • co je hodnota
  • cvičení – definice minikrůčků
  • cvičení – elephant carpaccio
  • reflexe

Blok 4. Testování kódu, který má závislosti

  • Integrační testy
  • Mockování
  • Využití dědičnosti
  • Explicitní závislosti

Bonus

  • co říkjí výzkumy o Test-Driven Development

Š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