Przejdź do głównej zawartości

Plan nauki: Python + pytest dla testera automatyzującego

Kompleksowy plan nauki Pythona i pytest, ukierunkowany na pracę testera automatyzującego.
Nacisk na OOP, testowalność kodu, dobre praktyki i realne scenariusze testowe.


🔰 ETAP 0 – Przygotowanie środowiska

  • Instalacja Python 3.11+
  • Wirtualne środowiska (venv)
  • pip / requirements.txt / pyproject.toml
  • pytest, pytest-cov
  • IDE (VS Code / PyCharm)
  • Git – podstawy
  • Struktura projektu testowego

🧱 ETAP 1 – Python: absolutne podstawy

  • Zmienne i typy danych
  • Operatory
  • Instrukcje warunkowe
  • Pętle
  • Listy, słowniki, krotki, zbiory
  • Funkcje
  • Importy
  • Obsługa wyjątków

🧪 ETAP 2 – pytest: podstawy

  • Instalacja pytest
  • Struktura testów
  • assert
  • Uruchamianie testów
  • Testowanie wyjątków
  • Parametryzacja testów
  • Markery

🧱 ETAP 3 – Python pod testy

  • Moduły i pakiety
  • Praca z plikami (JSON, CSV)
  • datetime
  • enum
  • Type hints
  • Czytelność i testowalność kodu

🧩 ETAP 4 – OOP dla testera

  • Klasy i obiekty
  • __init__
  • Metody instancji
  • Atrybuty
  • Dziedziczenie
  • Kompozycja
  • __repr__, __str__

🧩 ETAP 5 – OOP zaawansowane

  • Enkapsulacja
  • @property
  • Klasy abstrakcyjne (abc)
  • Dataclasses
  • SOLID w testach
  • Dependency Injection
  • Projektowanie kodu testowalnego

🔌 ETAP 6 – pytest: fixtures i struktura

  • Fixtures
  • Scope fixtures
  • autouse
  • conftest.py
  • Parametryzacja danych testowych
  • Setup / teardown

🧪 ETAP 7 – Mockowanie i izolacja

  • unittest.mock
  • Mock, MagicMock
  • patch
  • monkeypatch
  • Mockowanie API
  • Mockowanie bazy danych
  • Mockowanie czasu

🌐 ETAP 8 – Testy API i integracyjne

  • Biblioteka requests
  • Testy REST API
  • Status codes
  • Walidacja JSON
  • Testy negatywne
  • Testy regresji
  • Podstawy testów kontraktowych

📊 ETAP 9 – Jakość testów

  • pytest-cov
  • Coverage
  • Testy deterministyczne
  • Flaky tests
  • Refaktoryzacja testów
  • Organizacja danych testowych

⚙️ ETAP 10 – Framework testowy

  • Architektura frameworka
  • Warstwy testów
  • Konfiguracja środowisk
  • Logowanie
  • Raporty testowe
  • Dokumentacja (README)

🚀 ETAP 11 – CI/CD

  • Uruchamianie pytest w CI
  • GitHub Actions / GitLab CI
  • Raporty i artefakty
  • Fail fast
  • Testy jako element pipeline

🎯 ETAP 12 – Projekt końcowy

  • Projekt testowy end-to-end
  • Testy unit + integracyjne
  • OOP i SOLID
  • Mockowanie zależności
  • Coverage ≥ 90%
  • Dokumentacja projektu

✅ Efekt końcowy

  • Umiejętność pisania testów w pytest
  • Rozumienie i stosowanie OOP
  • Tworzenie testowalnego kodu
  • Mockowanie zależności
  • Budowa własnego frameworka testowego
  • Gotowy projekt do portfolio