01 - Wprowadzenie do TDD

26
Plan na dziś 1.Historia 2.Definicja 3.Skąd wiem, że mój kod działa? 4.Cykl TDD 5.Kata 6.Czego się nauczę na tych zajęciach? 7.Warunki zaliczenia

description

 

Transcript of 01 - Wprowadzenie do TDD

Page 1: 01 - Wprowadzenie do TDD

Plan na dziś

1.Historia

2.Definicja

3.Skąd wiem, że mój kod działa?

4.Cykl TDD

5.Kata

6.Czego się nauczę na tych zajęciach?

7.Warunki zaliczenia

Page 2: 01 - Wprowadzenie do TDD

Coś o mnie

Krzysztof Jelski

Page 3: 01 - Wprowadzenie do TDD

ZACZYNAMY!

Page 4: 01 - Wprowadzenie do TDD

TEST

DRIVEN

DEVELOPMENT

#1 wprowadzenie

Page 5: 01 - Wprowadzenie do TDD

HISTORIA

Page 6: 01 - Wprowadzenie do TDD

HISTORIA

Kent Beck

Page 7: 01 - Wprowadzenie do TDD

AUTOMATYCZNE TESTY

PROGRAMISTÓW

1

Page 8: 01 - Wprowadzenie do TDD

TESTY PISANE PRZED KODEM

2

Page 9: 01 - Wprowadzenie do TDD

STOPNIOWEPROJEKTOWANIE

3

Page 10: 01 - Wprowadzenie do TDD

PROGRAMOWANIE

Page 11: 01 - Wprowadzenie do TDD

CZY MÓJ KOD DZIAŁA?

Page 12: 01 - Wprowadzenie do TDD

t

LONG FEEDBACK LOOP

Page 13: 01 - Wprowadzenie do TDD

t

SHORT FEEDBACK LOOPS

Page 14: 01 - Wprowadzenie do TDD

CYKL TDD

REDGREEN

REFACTOR

Page 15: 01 - Wprowadzenie do TDD

CYKL TDD

REFACTOR

Page 16: 01 - Wprowadzenie do TDD

CYKL TDD

REDGREEN

REFACTOR

spraw abytest

przechodził

napisznieprzechodzący

test

refaktoryzuj

Page 17: 01 - Wprowadzenie do TDD

KATA

1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, Fizz Buzz,

16, 17, Fizz, 19, Buzz, Fizz, 22, 23, Fizz, Buzz, 26, Fizz, 28, 29, Fizz

Buzz, 31, 32, Fizz, 34, Buzz, Fizz, ...

Page 18: 01 - Wprowadzenie do TDD

SPODZIEWANE EFEKTY

TECHNIKA

KOMPETENCJE

WIEDZA

Page 19: 01 - Wprowadzenie do TDD

CYKL TDD

● znam i potrafię zastosować cykl TDD● znam zalety TDD

Page 20: 01 - Wprowadzenie do TDD

REFAKTORYZACJE

● potrafię dostrzec kilka rodzajów duplikacji i ją usunąć

● znam podstawowe refaktoryzacje niskopoziomowe

Page 21: 01 - Wprowadzenie do TDD

TESTOWALNOŚĆ

● rozumiem czym jest● wiem, co na nią wpływa i jak ją zwiększać

Page 22: 01 - Wprowadzenie do TDD

PROJEKTOWANIE

● znam i potrafię zastosować heurystyki (SOLID)● znam wzorce ułatwiające testowanie GUI

(Model-View-Presenter, Presentation Model)

Page 23: 01 - Wprowadzenie do TDD

TESTOWANIE JEDNOSTKOWE

● znam i potrafię stosować mocki/stuby● znam idiomy i wzorce testów jednostkowych

(Arrange-Act-Assert/Given-When-Then, testowanie wyjątków)

Page 24: 01 - Wprowadzenie do TDD

PRACA Z ODZIEDZICZONYM KODEM

● potrafię dodawać testy do istniejącego kodu● wiem jak pisać testy charakteryzacyjne

Page 25: 01 - Wprowadzenie do TDD

OCENA

● 30 punktów - Projekt - rozwiązanie prostego problemu za pomocą TDD w domu i prezentacja kodu na zajęciach (ok. 10 minut)

● 20 punktów - Screencast - ilustracja wybranego zagadnienia omawianego na zajęciach

● 50 punktów - Screencast - pokaz kodowania TDD

Page 26: 01 - Wprowadzenie do TDD

[3, 4] By Joe Mabel (Photo by Joe Mabel) [CC-BY-SA-3.0 or GFDL], from Wikimedia Commons[6] http://commons.wikimedia.org/wiki/File:Kent_Beck_no_Workshop_Mapping_XP.jpg[7] http://www.psa-peugeot-citroen-press.co.uk/images/2007-10-03/Laser%20welding%20robot%20on%20the%20body-assembly%20line%20of%20the%20FIAT%20FIORINO,%20PEUGEOT%20BIPPER%20and%20CITROEN%20NEMO.jpg[8] http://commons.wikimedia.org/wiki/File:April_dawn.jpg[9] http://www.flickr.com/photos/spaceamoeba/3101102763/[17] http://buzzyteam.files.wordpress.com/2009/05/bloglogo1.png?w=120&h=120[18] http://commons.wikimedia.org/wiki/File:2010_Winter_Olympics_Didier_Defago_in_downhill.jpg

DZIĘKUJĘ

Zdjęcia:

warsjawa.pl

15 października 2011, 9.00-17.30, EiTI