jak robić to dobrze? testowanie...

119
Testowanie jednostkowe Jak robić to dobrze?

Upload: others

Post on 28-Mar-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Testowanie jednostkoweJak robić to dobrze?

Page 2: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Polidea

Logo or mockup

Szymon PrzedwojskiSenior Software Engineer @ Polidea

🎥 umniedziala.com🐍 pythonowiec.pl▶ facebook🐦 twitter📷 instagram🎶 tiktok

Page 3: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 4: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 5: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 6: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 7: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 8: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 9: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

👉 Dlaczego warto?

👉 Jak robić to dobrze?

👉 Jak przekonać innych?

Testowanie jednostkowe

Page 10: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 11: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 12: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 13: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 14: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

DB

Page 15: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

→ IntegracyjneDB

Page 16: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

→ IntegracyjneDB

Page 17: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

→ Integracyjne

→ End-to-end

DB

Page 18: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 19: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Jednostkowe: 100%, integracyjne: 0%

Page 20: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 21: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Polidea

Dlaczego warto?

Page 22: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

1. Poprawność kodu

Page 23: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Żeby sprawdzić, czy nasz kod działa tak, jak nam się wydaje

Page 24: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Żeby sprawdzać, czy nasz kod działa tak, jak nam się wydaje

Page 25: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Żeby sprawdzać, czy nasz kod działa tak, jak nam się wydaje

⇒ Regresja ⇐

Page 26: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

1. Poprawność kodu2. Łatwość zmiany

Page 27: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 28: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

1. Poprawność kodu2. Łatwość zmiany3. Refaktoring

Page 29: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 30: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 31: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

1. Poprawność kodu2. Łatwość zmiany3. Refaktoring4. Testowalny kod == “czysty kod”

Page 32: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 33: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

1. Poprawność kodu2. Łatwość zmiany3. Refaktoring4. Testowalny kod == “czysty kod”5. Uruchamialna dokumentacja

Page 34: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 35: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

1. Poprawność kodu2. Łatwość zmiany3. Refaktoring4. Testowalny kod == “czysty kod”5. Uruchamialna dokumentacja6. Niska bariera wejścia

Page 36: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 37: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Polidea

Jak robić to dobrze?

Page 38: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 39: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 40: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 41: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

1. Szybkie testy jednostkowe

Page 42: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 43: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Dlaczego testy jednostkowemuszą być szybkie?

Page 44: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Quick feedback loop

Page 45: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 46: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Test Driven Development

Page 47: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 48: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Jak szybkie?

Page 49: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

● us?● ms?● s?● min?

Page 50: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Zdroworozsądkowo...

Page 51: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 52: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Zachowanie “flow”

Page 53: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Jak to osiągnąć?

Page 54: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

a) Test Doubles

Page 55: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

● Fake● Mock● Stub● Spy

Page 56: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

b) Poprawna architektura

Page 57: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

● Modularyzacja● Trójwarstwowa● Heksagonalna● ...

Page 58: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

c) Nie cały suite, a część

Page 59: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 60: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

d) Wielowątkowość

Page 61: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 62: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

1. Szybkie testy jednostkowe2. Uruchamiaj je często

Page 63: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

● Automatycznie○ PyCharm○ pytest-watch

● Ręcznie skrótem○ ⇧F10 // ⌃F5

Page 64: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Serwer CI → za późno!!

Page 65: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

1. Szybkie testy jednostkowe2. Uruchamiaj je często3. Testuj publiczny kontrakt

Page 66: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Jeśli nie...

Page 67: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Testujemy “za nisko”

Page 68: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Kod staje się ”sztywny”

Page 69: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 70: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 71: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 72: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 73: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 74: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 75: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 76: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 77: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

1. Szybkie testy jednostkowe2. Uruchamiaj je często3. Testuj publiczny kontrakt4. Zawsze Red → Green

Page 78: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

“False positives”

Page 79: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Błąd: nowy “if” w kodzie...

Page 80: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

...a test bez zmian

Page 81: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 82: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Code coverage

Page 83: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 84: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

● PyCharm● coveragepy

Page 85: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

1. Szybkie testy jednostkowe2. Uruchamiaj je często3. Testuj publiczny kontrakt4. Zawsze Red → Green5. Testy w losowej kolejności

Page 86: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Zależność od side effectów

Page 87: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 88: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

1. Szybkie testy jednostkowe2. Uruchamiaj je często3. Testuj publiczny kontrakt4. Zawsze Red → Green5. Testy w losowej kolejności6. Dbaj o jakość testów

Page 89: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Testy to też kod!

Page 90: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Musi być...

Page 91: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Czytelny

Page 92: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Przejrzysty

Page 93: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Zrozumiały

Page 94: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Cechy dobrych testów:

Page 95: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

a) Given, When, Then

Page 96: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 97: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

b) Mały setup

Page 98: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

pytest fixtures

Page 99: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

c) Zasady Clean Code

Page 100: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Dobre nazwy

Page 101: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Wydzielanie metod

Page 102: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

etc.

Page 103: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Polidea

Jak przekonać innych?

Page 104: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

1. Koledzy z zespołu

Page 105: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 106: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

● Czy są umiejętności?

● Czy korzyści są jasne?

● Złe doświadczenia z przeszłości?

Co stoi na przeszkodzie?

Page 107: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

1. Koledzy z zespołu2. Interesariusze

Page 108: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

1. Koledzy z zespołu2. Interesariusze

● Manager / PO● Biznes● Klient

Page 109: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 110: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Są dwie drogi

Page 111: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

a) Metryki

Page 112: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

[YouTube] Unit Testing and TDD: Why you should care and how to make it happen

Page 113: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

b) Nie pytać o pozwolenie

Page 114: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 115: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Polidea

Do brzegu

Page 116: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

👉 Dlaczego warto? ✅

👉 Jak robić to dobrze? ✅

👉 Jak przekonać innych? ✅

Testowanie jednostkowe

Page 117: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy
Page 119: Jak robić to dobrze? Testowanie jednostkowepywaw.org/media/slides/pywaw-93-testowanie-jednostkowe... · 2020. 3. 31. · ⇧F10 // ⌃F5. Serwer CI → za późno!! 1. Szybkie testy

Polidea

Szymon Przedwojski🎥 umniedziala.com🐍 pythonowiec.pl▶ facebook🐦 twitter📷 instagram🎶 tiktok

Prezentacja: pythonowiec.pl/pywaw

📖 blog🐦 twitter👔 linkedin