Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

TDD - Test Driven Development

Podobné prezentace


Prezentace na téma: "TDD - Test Driven Development"— Transkript prezentace:

1 TDD - Test Driven Development
Petr Šťovík, Software Developer & Architect I I Ostrava © GMC Classification: PUBLIC

2 Agenda Teoretické seznámení Demo příklad (> 50%)
Doména: Bowlingové skóre DEV workflow: pomocí nástroje bobril-build Zhodnocení TDD, aneb kdy použít Kooperace týmů – CI Server Závěr a volné otázky © GMC Classification: PUBLIC

3 Teorie © GMC Classification: PUBLIC

4 Cost of Change http://www.agilemodeling.com/essays/costOfChange.htm
© GMC Classification: PUBLIC

5 Cost of Change http://www.agilemodeling.com/essays/costOfChange.htm
NOTES u SW vývoje vždy zvažovat otestovatelnost - TDD tlačí k psaní testovatelného kódu © GMC Classification: PUBLIC

6 TDD – Test Driven Development
Add a test – tvorba očekávání je nejdůležitější fáze Run all tests and see if the new test fails Write the code Run tests Refactor code Repeat Protiklad – psaní funkcionality a následné pokrytí testy © GMC Classification: PUBLIC

7 TDD – Test Driven Development
© GMC Classification: PUBLIC

8 Demo příklad © GMC Classification: PUBLIC

9 Bowling Game Kata 1 hra má 10 kol (10 frames)
kolo má 1 nebo 2 hody (rolls) na 10 kuželek (pins) 10. kolo je jiné má 2 nebo 3 hody bonus za „strike“, „spare“ podle následných hodů © GMC Classification: PUBLIC

10 Demo 10:05 Intro: nástroj „bobril-build“
Fáze 1: vizuální očekávání – návrh datových struktur Fáze 2: očekávané chování – logika výpočtu 10:05 NOTES: TDD i jako technika pro implementaci GUI prvků © GMC Classification: PUBLIC

11 The Flow & Feedback „Pocit hlubokého zaujetí úkolem, aniž cítíme zvláštní námahu. Splynutí činnosti a vědomí, z mysli jsou vypuzeny běžné myšlenky.“ NOTES: Průběžný refactoring a rychlý feedback © GMC Classification: PUBLIC

12 TDD Evaluation © GMC Classification: PUBLIC

13 TDD Evaluation [1/2] TDD jako myšlenkový nástroj Kdy rozhodně ANO
Base philosophy TDD jako myšlenkový nástroj Kdy rozhodně ANO Jasné vstupy / výstupy Rozložitelnost na části s jasnými vstupy / výstupy Oblast již testy pokrytá (+ bug fixing) Kdy zvážit Složité nastavení prostředí „5 minutový projekt“ bez budoucnosti Nemám nástroje pro pouštění testů Čitelný projekt bez logiky „Test Driven: It is the mindset not the tool!“ NOTES: nejde o řešení příkladu ale o postup uvažování není to o dogmatismu, ale o tom vědět, co kdy pomůže a efektivně použít těžko se prezentuje něco, co prezentovat nelze... ale musí se zažít – jako kladivo © GMC Classification: PUBLIC

14 Specification/Test writting
TDD Evaluation [2/2] Specification/Test writting Popis testu by měl odpovědět na „proč?“ Typy očekávání Mít očekávané „success scénáře“ Mít očekávané „error scénáře“ Neočekávané scénáře doplňovat při bugfixingu Vrstvy abstrakce Interní funkce Knihovna Integrace (mockování) I testy potřebují údržbu Deduplikace (buildery, lokální funkce …) Čitelnost záměru důležitější než u produkčního kódu „Test Driven: It is the mindset not the tool!“ © GMC Classification: PUBLIC

15 Team Cooperation © GMC Classification: PUBLIC

16 DEV Team & Build Server DEV je nejefektivnější ve Flow
Spouštění všech testů trvá Build server (CI - Continous Integration) Ukázka – Jenkins ( Tým A Tým B Build Server © GMC Classification: PUBLIC

17 Summary © GMC Classification: PUBLIC

18 Summary 5 kroků TDD Ukázka „Bowling Game Kata“ pomocí „bobril-build“
Návrh struktur Definice chování Zhodnocení TDD Přínos pro tým(y) Protiklad – psaní funkcionality a následné pokrytí testy © GMC Classification: PUBLIC

19 What next © GMC Classification: PUBLIC

20 Your Questions © GMC Classification: PUBLIC

21 TDD se musí zažít! p.stovik@gmc.net
© GMC Classification: PUBLIC


Stáhnout ppt "TDD - Test Driven Development"

Podobné prezentace


Reklamy Google