TDD – w poszukiwaniu źródeł jakości.

10
Test Driven Development w poszukiwaniu źródeł jakości Szymon Homa

description

Prezentacja Szymona Homy z II edycji konferencji Quality Excites.

Transcript of TDD – w poszukiwaniu źródeł jakości.

Page 1: TDD – w poszukiwaniu źródeł jakości.

Test Driven Developmentw poszukiwaniu źródeł jakości

Szymon Homa

Page 2: TDD – w poszukiwaniu źródeł jakości.

Co to znaczy, że oprogramowanie jest wysokiej jakości?

Oprogramowanie jest bez błędów.

Oprogramowanie spełnia wymagania klienta.

Oprogramowanie działa szybko.

Błędy są rzadkie i łatwe w lokalizacji.

Oprogramowanie daje się łatwo dostosować do wymagań klienta.

Oprogramowanie da się skalować, a „wąskie gardła wydajności” są łatwe w lokalizacji.

A może…

Page 3: TDD – w poszukiwaniu źródeł jakości.

TDD - Test Driven Development

„Nie można zacząć pisać kodu produkcyjnego do momentu napisania niespełnionego testu jednostkowego.”

„Nie można napisać więcej testów jednostkowych, które są wystarczające do niespełnienia testu, a brak kompilacji jest jednocześnie nieudanym testem.”

„Nie można pisać większej ilości kodu produkcyjnego, niż wystarczy do spełnienia obecnie niespełnianego testu.”

Robert C. Martin, „Czysty Kod, Podręcznik Dobrego Programisty”, Helion S.A. 2010

Page 4: TDD – w poszukiwaniu źródeł jakości.

TDD - Test Driven Development

Implementacja

Test

Page 5: TDD – w poszukiwaniu źródeł jakości.

TDD - Test Driven Development

Implementacja

Test

Implementacja

Test

Implementacja

Test

Implementacja

Test

Implementacja

Test

Każda linijka kodu ma swoje uzasadnienie w teście

Klasy mają małą odpowiedzialność

Klasy są częściej zależne od abstrakcji niż od konkretów

Klasy są mniejsze i bardziej spójne

Klasy są łatwe w użyciu

Kod klasy jest możliwie prosty

Implementację klasy można bezpiecznie modyfikować

SOLID

Refaktoryzację

KISS (Keep It Simple and Stupid)

YAGNI (You Aren’t Gona Need It)

Czysty Kod

Page 6: TDD – w poszukiwaniu źródeł jakości.

Czym tak naprawdę jest TDD?

1. Techniką projektowania.

2. Techniką pisania testów.

3. Techniką prowadzenia dokumentacji.

Page 7: TDD – w poszukiwaniu źródeł jakości.

Czy TDD jest dla każdego?

Szablonowy

Znikoma zmienność wymagań Nie stanowi o

konkurencyjności firmy

Ciągła zmienność wymagań i rozwój

Może zaważyć na sukcesie lub porażce firmy

Innowacyjność i jakość są kluczowe

Utility Strategic

Page 8: TDD – w poszukiwaniu źródeł jakości.

Czy TDD jest dla każdego?

Utility StrategicLicz

ba p

roje

któw

Page 9: TDD – w poszukiwaniu źródeł jakości.

Wyboje na drodze

Brak umiejętności i wiedzy.

Brak pomocy dla niewdrożonych programistów

Brak czasu na pracę z niewdrożonymi programistami

Brak zaangażowania w projekt

Page 10: TDD – w poszukiwaniu źródeł jakości.

Dziękuję za uwagę.

Co Dalej?• Andrew Hunt, David Thomas, „Pragmatyczny programista. Od czeladnika do mistrza”, Helion S.A. 2011

• Martin Fowler, Kent Beck, „Refaktoryzacja: Ulepszanie struktury istniejącego kodu”, Helion S.A. 2011

• Robert C. Martin, „Czysty Kod, Podręcznik Dobrego Programisty”, Helion S.A. 2010

• Gerard Meszaros, „xUnit Test Patterns: Refactoring Test Code”, Addison-Wesley 2007

• Martin Fowler, „Patterns of Enterprise Application Architecture”, Addison-Wesley 2002

• Eric Evans, „Domain Driven Design: Tackling Complexity in the Heart of Software”, Addison-Wesley 2003