Szkolenie: Python TDD: Test Driven Development and CI/CD
Uczestnicy szkolenia zapoznają się z procesem Test Driven Development (TDD) oraz metodami wdrażania ciągłej integracją (ang. Continuous Integration) w projektach Python.
- Trenerzy praktycy
- Kameralne grupy
Czas trwania szkolenia:3 dni (24h)
Kod kursu:PYTHON/TDD
Python TDD: Test Driven Development and CI/CD
Cele szkolenia
Nauka wytwarzania oprogramowania w procesie TDD
Umiejętność wykorzystania narzędzi i frameworków wspierających TDD tj. mock oraz stub
Określenie dobrych i złych praktyk, związanych z procesem ciągłej integracji
Praktyczne budowanie planu testów i komunikacji w ramach CI
Ponadto uczestnictwo w szkoleniu Python z zakresu Test-Driven Development (TDD) obejmuje zarówno rozwój umiejętności programistycznych, jak i doskonalenie praktyk związanych z tworzeniem oprogramowania, tj:
Zrozumienie metodologii TDD: Zdobycie pełnego zrozumienia idei Test-Driven Development, czyli pisanie testów jednostkowych przed napisaniem właściwej implementacji.
Nauka praktycznych umiejętności związanych z TDD w pythonie: Opanowanie praktycznych umiejętności korzystania z narzędzi i frameworków do testowania jednostkowego w języku Python, takich jak unittest, pytest czy nose.
Rozwój umiejętności testowania jednostkowego: Doskonalenie umiejętności tworzenia skutecznych testów jednostkowych, które są łatwe w utrzymaniu i dostarczają wartościowe informacje zwrotne.
Zastosowanie testów jako dokumentacji kodu: Nauczenie się korzystania z testów jako formy dokumentacji kodu, umożliwiającej zrozumienie funkcji i wymagań.
Zwiększenie jakości oprogramowania: Celowym użyciem TDD można poprawić jakość oprogramowania poprzez wcześniejsze wykrywanie i rozwiązywanie błędów.
Zrozumienie korzyści długoterminowych: Zrozumienie korzyści, jakie TDD może przynieść w dłuższej perspektywie, takie jak zwiększona łatwość utrzymania kodu, szybsze wprowadzanie zmian, czy też zwiększona pewność co do działania kodu.
Integracja testów w proces tworzenia oprogramowania: Nauczenie się, jak efektywnie integrować testy jednostkowe w procesie tworzenia oprogramowania, zarówno na etapie deweloperskim, jak i w procesie CI/CD.
Zdobycie doświadczenia w refaktoryzacji: Wykorzystanie TDD do prowadzenia refaktoryzacji kodu z zachowaniem pełnej funkcjonalności, co pozwala na poprawę struktury kodu bez obawy o wprowadzenie błędów.
Efektywne używanie narzędzi do testowania w pythonie: Zdobycie praktycznych umiejętności korzystania z narzędzi automatyzujących proces testowania w języku Python.
Skupienie na tworzeniu wartościowych rozwiązań: Zrozumienie, jak TDD może pomóc w skupieniu się na tworzeniu rozwiązań, które rzeczywiście dostarczają wartość dla użytkowników.
Uczestnictwo w szkoleniu TDD w Pythonie może pomóc w osiągnięciu tych celów, co przyczynia się do profesjonalnego rozwoju w dziedzinie tworzenia oprogramowania.
Dla kogo?
Programistów i testerów
Osób odpowiedzialnych jakość wytwarzanego oprogramowania
Zalety
Uczestnik zapozna się z procesem TDD i będzie potrafił wytwarzać oprogramowanie stosując tą technikę
Omówione zostanie wykorzystanie mocków i stubów, a także problem precyzji IEEE-754 oraz testowania wartości pseudolosowych
Zapoznanie się ze wszystkimi elementami składowymi procesów związanych z wydaniami ciągłymi oprogramowania
Wymagania
Umiejętność wytwarzania oprogramowania w języku Python
Znajomość obiektowego paradygmatu wytwarzania oprogrogramowania
Umiejętność korzystania z konsoli systemu operacyjnego
Znajomość podstawowych koncepcji związanych z infrastrukturą
Wiedza o procesach obejmujących wytwarzanie oprogramowania
Uczestnictwo w co najmniej jednym projekcie związanym z wytwarzaniem oprogramowania
W cenie otrzymasz:
Materiały szkoleniowe
Certyfikat ukończenia szkolenia
W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Program szkolenia
Rodzaje testów na przykładach
Jednostkowe
Dymne
Analiza statyczna
Mutacyjne
Regresyjne
Funkcjonalne
Interfejsu
Obciążeniowe
Integracyjne
Bezpieczeństwa
Test Driven Development
Test first vs test last development
Mock vs Stub
Problem precyzji liczb float (IEEE-754)
Testowanie wartości pseudolosowych oraz pojęcie ziarna losowości
Framework unittest, doctest, pytest, behave
Uruchamianie testów w środowisku IDE (PyCharm) oraz z konsoli
Demonstracja TDD
Samodzielny projekt TDD (kilkanaście iteracji)
Demonstracja TDD
Techniki Code review i zespołowej oceny kodu
Opcje refaktoringu w środowisku IDE (PyCharm)
Testy aplikacji asynchronicznych
Refaktoryzacja
Rename
Extract Method
Extract Superclass
Inline
Introduce Variable
Introduce Constant
Introduce Field
Introduce Parameter
Pull Members Up
Push Members Down