Python TDD: Test Driven Development and CI/CD
Czas trwania szkolenia:3 dni (24h)
Kod kursu:PYTHON/TDD
Poziom zaawansowania:
O szkoleniu Python TDD: Test Driven Development and CI/CD
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
Dla kogo?
- Programistów i testerów
- Osób odpowiedzialnych jakość wytwarzanego 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
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
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
Program
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 vs doctest
- Uruchamianie testów w środowisku IDE (PyCharm) oraz z konsoli
- Demonstracja TDD
- Samodzielny projekt TDD (kilka iteracji)
- Demonstracja TDD oraz opcji refaktoringu w środowisku IDE (PyCharm)
- Testy aplikacji asynchronicznych
Automatyzacja testów
- Ekosystem narzędzi deweloperskich
- Continuous Integration
- Continuous Delivery
- Continuous Deployment
- Definiowanie Pipeline CI/CD
- Automatyzacja testów na środowisku testowym
- Zarządzanie zależnościami aplikacji
Refaktoryzacja
- Rename
- Extract Method
- Extract Superclass
- Inline
- Introduce Variable
- Introduce Constant
- Introduce Field
- Introduce Parameter
- Pull Members Up
- Push Members Down