SlideShare a Scribd company logo
1 of 54
Jakub Janczyk
Wojtek Przechodzeń
Why is TDD slowing you down?
Szczera odpowiedź na pytania:
● Kto pisze testy ?
● Kto robi TDD ?
● Komu często zdarza się, że mimo przechodzących testów aplikacja
po włączeniu nie działa ?
● Kto jest gotowy na continuous deployment/delivery (CD) ?
Hand voting time!
Kod testowy vs kod produkcyjny
SQLite 730:1
Pragmatists 3:1
3:1
90 : 10
95 : 5
czytanie pisanie>
Czytelność
Czytelność
Arrange
Act
Assert
// given
// when
// then
Czytelność
Nazewnictwo
Czytelność
Mystery guest
Czytelność
Granice unitu
Czytelność
Granice unitu
Czytelność
Granice unitu
Czytelność
Granice unitu
Granice unitu
Czytelność
Granice unitu
Czytelność
klasasystem
+ testuje kolaboratorów
+ (prawie?) brak mockowania
+ łatwy i bezpieczny refaktoring
+ mocno izolowane
+ bardzo szybkie
Granice unitu
Overmocking
Czytelność
Czytelność
Rozmiar testu
Czytelność
Rozmiar testu
Czytelność
Rozmiar testu
Czytelność
Feedback w ogóle
Fast Feedback
● Nie jest łatwo mieć feedback w legacy kodzie ale warto szczególnie
w miejscach które będą ewoluowały
● Jeżeli jest ciężko - sparuj się
● Nie szukaj łatwych wymówek - trudny setup może wynikać z Twojego
braku wiedzy
● Im szybciej podejmiesz wyzwanie tym lepiej - później będzie już
tylko ciężej
● Większość technologii/języków można przetestować (EJB, PLSQL,
skrypty bashowe)
Feedback w ogóle
utPLSQL
Strata czasu
Nieistotny w testach after - na pewno?
Fast feedback
Uruchamianie springa - wydzielenie subcontextu
Fast feedback
Fast feedback - context springowy
Fast feedback - context springowy
Fast feedback - context springowy
Fast feedback
Testy unitowe vs testy uruchamiające springa
Fast feedback
W pełni izolowane testy vs test z dzieloną bazą
Test confidence
Strata czasu na ręczne testowanie
Strach przed refaktoryzacją
Random tests failing / flaky tests
Test confidence
Setup testów; niepełna izolacja
Test confidence - random tests failing
Test confidence - random tests failing
Spring context
Test confidence - random tests failing
@DirtiesContext
Częściowe testy
Test confidence
Losowo padające testy, których nie rozumiesz - usuń je!
Test confidence
False positive’s - angular test runner
Test confidence
Test confidence - false positive’s
Dziękujemy!
Q & A
Do zobaczenia na blog.pragmatists.com
Jakub Janczyk
Wojtek Przechodzeń
@janczyk_jakub
@wprzechodzen

More Related Content

Similar to JDD 2017: Why is TDD slowing you down? (Jakub Janczyk, Wojciech Przechodzień)

InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji
InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacjiInfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji
InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacjiJIT Solutions
 
KraQA #22, Filip Cynarski - Selenium Grid w chmurze Amazon Web Services
KraQA #22, Filip Cynarski -  Selenium Grid w chmurze Amazon Web ServicesKraQA #22, Filip Cynarski -  Selenium Grid w chmurze Amazon Web Services
KraQA #22, Filip Cynarski - Selenium Grid w chmurze Amazon Web Serviceskraqa
 
[Quality Meetup #14] Tomasz Kus - Testowanie w pętli
[Quality Meetup #14] Tomasz Kus - Testowanie w pętli[Quality Meetup #14] Tomasz Kus - Testowanie w pętli
[Quality Meetup #14] Tomasz Kus - Testowanie w pętliFuture Processing
 
TGT#15 - Piramida testów w praktyce (notatki z dyskusji)
TGT#15 - Piramida testów w praktyce (notatki z dyskusji)TGT#15 - Piramida testów w praktyce (notatki z dyskusji)
TGT#15 - Piramida testów w praktyce (notatki z dyskusji)Trójmiejska Grupa Testerska
 
ŁódQA - Session based testing
ŁódQA - Session based testingŁódQA - Session based testing
ŁódQA - Session based testingLodQA
 
InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]
InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]
InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]Wojciech Seliga
 
SkładQA 2018 - Daniel Dec
SkładQA 2018 - Daniel DecSkładQA 2018 - Daniel Dec
SkładQA 2018 - Daniel Deckraqa
 
Dwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędówDwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędówMichal Lukaszewski
 
Testowanie oprogramowania dla początkujących - Escola Software house
Testowanie oprogramowania dla początkujących - Escola Software houseTestowanie oprogramowania dla początkujących - Escola Software house
Testowanie oprogramowania dla początkujących - Escola Software houseEscola S.A.
 
Wyboista droga do dobrego kodu. ...
Wyboista droga do dobrego kodu.                                              ...Wyboista droga do dobrego kodu.                                              ...
Wyboista droga do dobrego kodu. ...Future Processing
 

Similar to JDD 2017: Why is TDD slowing you down? (Jakub Janczyk, Wojciech Przechodzień) (13)

InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji
InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacjiInfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji
InfoShare 2014: Skok na naderwanym bungee, czyli agile bez automatyzacji
 
KraQA #22, Filip Cynarski - Selenium Grid w chmurze Amazon Web Services
KraQA #22, Filip Cynarski -  Selenium Grid w chmurze Amazon Web ServicesKraQA #22, Filip Cynarski -  Selenium Grid w chmurze Amazon Web Services
KraQA #22, Filip Cynarski - Selenium Grid w chmurze Amazon Web Services
 
01 - Wprowadzenie do TDD
01 - Wprowadzenie do TDD01 - Wprowadzenie do TDD
01 - Wprowadzenie do TDD
 
[Quality Meetup #14] Tomasz Kus - Testowanie w pętli
[Quality Meetup #14] Tomasz Kus - Testowanie w pętli[Quality Meetup #14] Tomasz Kus - Testowanie w pętli
[Quality Meetup #14] Tomasz Kus - Testowanie w pętli
 
TGT#15 - Piramida testów w praktyce (notatki z dyskusji)
TGT#15 - Piramida testów w praktyce (notatki z dyskusji)TGT#15 - Piramida testów w praktyce (notatki z dyskusji)
TGT#15 - Piramida testów w praktyce (notatki z dyskusji)
 
ŁódQA - Session based testing
ŁódQA - Session based testingŁódQA - Session based testing
ŁódQA - Session based testing
 
InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]
InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]
InfoShare 2012 efektywne przeglądy kodu w zespołach agile [Polish]
 
TDD w iOS
TDD w iOS TDD w iOS
TDD w iOS
 
SkładQA 2018 - Daniel Dec
SkładQA 2018 - Daniel DecSkładQA 2018 - Daniel Dec
SkładQA 2018 - Daniel Dec
 
Dwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędówDwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędów
 
Testowanie oprogramowania dla początkujących - Escola Software house
Testowanie oprogramowania dla początkujących - Escola Software houseTestowanie oprogramowania dla początkujących - Escola Software house
Testowanie oprogramowania dla początkujących - Escola Software house
 
KICK ME
KICK MEKICK ME
KICK ME
 
Wyboista droga do dobrego kodu. ...
Wyboista droga do dobrego kodu.                                              ...Wyboista droga do dobrego kodu.                                              ...
Wyboista droga do dobrego kodu. ...
 

JDD 2017: Why is TDD slowing you down? (Jakub Janczyk, Wojciech Przechodzień)