Test Driven Development
Tento kurz pomáha pochopiť ako môže programovanie riadené testami viesť k udržateľnému vývojovému prostrediu. Počas kurzu Vám naši tréneri predstavia nástroje a techniky pre dosiahnutie tohto cieľa.
Pre koho
Java vývojári, Scrum mastri so znalosťou Java
Čo sa naučíte
- Prečo má byť testovanie prvoradé?
- Spoznáte rôzne kategórie testov
- Pochopíte či testami riadený vývoj je štýlom alebo dizajnom
- Naučíte sa udržiavať testovací kód pomocou vzorov a refaktoringu
- Naučíte sa vytvoriť kontinuálnu spätnú väzbu s pomocou kontinuálnej integrácie
Úroveň kurzu
Pokročilý
Trvanie kurzu
2 dni
Deň I – Sprint #1
„Prečo má byť testovanie prvé? „TDD je jednoduchý, ale revolučný objav: špecifikácia testov je špecifikáciou požiadaviek!“
Témy
- Ekosystém testami riadeného vývoja
“Ak je hodnotné vytvoriť t, potom je hodnotné to aj testovať, Ak to nie je hodné testovania, prečo potom míňate váš čas?” – Scott W. Ambler
- Prečo má byť test prvým? Špecifikácia testov je špecifikáciou požiadaviek.
- Benefity testovania najskôr
- Preváži šetrenie zvýšené investície?
- Kategorizácia testov
- Test za testom alebo Testy naraz?
- Zvonku dnu alebo zvnútra von?
- Verifikácia stavu alebo chovania?
- Stratégia automatizácie testov – stupne testovania, kontrola a validácia
- Softvérová architektúra a testovanie
- Skrátenie cyklu spätnej väzby
Cvičenie
Implementácia jednoduchej user story bez testov.
Deň I – Sprint #2
Ciele
- Získajte okamžitú praktickú skúsenosť s programovaním riadeným testami (napíšte testy ako prvé) v porovnaní s tradičným programovaním.
- Pochopenie pojmu Fixture a testovanie State Full Behavior.
- Aplikovanie testovacích vzorov
Témy
- Jednotka (unit), teda objektové testovanie
„Objektové, testami riadené, programovanie je viac štýlom programovania než klasickou kontrolou kvality.”- Akcie unit test driven vývoja.
- xUnit – Test Runner, trieda tesu, metóda testu
- Použitie JUnit/NUnit
- SUT, DOC a Test Fixture
- Taxonómia fixtures
- Implementácie gramotného testovania (Literate Testing)
- Použitie Mockito a PowerMock
- Jednotkové testy ako dokumentácia na úrovni dizajnu
- Vzory xUnit
Cvičenie
Implementácia jednoduchej user story s testami.
Deň II – Sprint #3
Ciele
- Pochopenie konceptu technického dlhu
- Rozpoznajte problémy
Témy
- Rast systému a udržanie malého technického dlhu
„Refaktoring kódu by mal byť načasovaný v projektovom pláne do takých detailov ako písanie cyklu.” Scott W. Ambler- Agónia alebo Agilita?
- Refaktoring ako stratégia udržania malého technického dlhu
- Čistý kód a refaktoring
- Problém v produkčnom kóde
- Refaktoring príkladu produkčného kódu
Cvičenie
- Identifikácia a diskusia o možnom refaktoringu výsledku Sprintu #1
- Refaktoring kódu v pároch
Deň II – Sprint #4
Ciele
- Pochopenie významu kontinuálneho dodávania v hodnotovom reťazci
- Zoznámenie sa s nástrojmi prekladu
- Použitie statickej analýzy kódu ako prevencie chýb
Témy
- Kontinuálne dodávanie
- Kontinuálne dodávanie v enterprise
- Patterny vytvárania produktu – vytváranie komplexných aplikácií použitím ANT
- Použitie CrusieControl
- Meranie pokrytia aplikácie testami pomocou Cobertura
- Analýza zdrojového kódu pomocou PMD a FindBugs
Cvičenie
- Implementácia skriptov vytváranie produktu pre cvičnú aplikáciu
- Automatizácia vytvárania pomocou CruiseControl
Požiadavky na účastníkov kurzu
- Kurz je vedený v anglickom jazyku.
- Pokročilá znalosť jazyka Java.
- Pochopenie základov Scrum.
- Pochopenie základov manažmentu požiadaviek.
- Skúsenosť s objektovo orientovaným vývojom.
Potreby
- Miestnosť dostatočne veľkú pre daný počet ľudí.
- Projektor.
- Flipchart, 1 rolku flipchartového papiera a fixy, 4 farby.
- Pre každého účastníka počítač, alebo notebook.
Občerstvenie
ScrumDesk zabezpečuje občerstvenie iba v prípade verejných školení. V prípade inhouse tréningov odporúčame zabezpečiť účastníkom vodu, resp. občerstvenie podľa zvyklostí firmy.