Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
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
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.