Testowanie z Pytest

Tytuł: Testowanie z Pytest
Kod: craft-test-pytest
Kategoria: Testowanie automatyczne
Forma: 20% wykłady, 80% warsztaty
Czas trwania: 3 dni
Odbiorcy: testerzy, developerzy, architekci
Zapisy: Indywidualne zamówienie i dopasowanie dla grupy.
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.

Przewodnik po technikach testowania wspomagających pracę programisty i testera automatyzującego.

Szkolenie łączy poznawanie dobrych praktyk testowania z opanowywaniem tajników pytesta. Program i ćwiczenia oparte o studium przypadku.

Dzień 1: pisanie scenariuszy akceptacyjnych, podstawy testów akceptacyjnych, jednostkowych i zaślepianie

Dzień 2: “Dobre praktyki” (weryfikacja, testowanie interfejsu zamiast implementacji, nazewnictwo testów)

Dzień 3: Opanowywanie narzędzia pytest oraz rozwiązywanie problemów z testami

Wyróżniki szkolenia

  • Wzorce i antywzorce
  • Strategia testowania
  • Testowalny kod

Program Szkolenia

Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.

  1. Piszemy testy z myślą o celu
    1. Wzorce
      1. Sterowanie implementacji testami
      2. Ochrona przed regresją
      3. Stabilne dostarczanie oprogramowania
      4. Wspomaganie programisty, nie spowalnianie
    2. Antywzorce
      1. Pisanie testów tylko po to, by spełnić cel pokrycia testsami
      2. Pisanie testów, które sprawdzają implementację zamiast zachowania
      3. Pisanie testów zawsze na końcu pracy nad zadaniem
  2. Struktura testu
    1. Pisanie testów tak, by mogły być uruchomione przez pytest
    2. Kroki
      1. Arrange
      2. Act
      3. Assert
      4. Kiedy łamiemy zasady?
  3. Testy jednostkowe
    1. Czym jest jednostka?
    2. Techniki zaślepiania
      1. Dummy
      2. Fake
      3. Stub
      4. Mock
      5. Dedykowane biblioteki dla określonych przypadków (np. responses, vcr.py, moto)
    3. Co i kiedy zaślepiać?
    4. Mock z biblioteki standardowej - jak go poprawnie wykorzystywać?
    5. Inne narzędzia do pisania obiektow - dublerów - mockito
  4. Testy akceptacyjne - sprawdzające spełnienie wymagań biznesowych
    1. Pisanie scenariuszy akceptacyjnych
    2. Wybór poziomu testowania akceptacyjnego - wady i zalety
      1. UI
      2. API
      3. Service layer
  5. Dobre praktyki testowania
    1. Sprawdzanie obserwowalnych wyników działania
      1. Rodzaje obserwowalnych wyników
        1. Zwracany rezultat
        2. Rzucany wyjątek lub jego brak
        3. Stan
        4. Interakcje
      2. Zastosowanie w różnych rodzajach testów
        1. testy jednostkowe
        2. testy akceptacyjne
    2. Testy implementacji kontra testy interfejsu
      1. Zapach testów - powielona implementacja w teście i testowanym kodzie
      2. Weryfikujemy zachowania wybranej jednostki
    3. Nazewnictwo testów
      1. Konwencje i dlaczego nie działają
      2. Używanie zdań oznajmujących
      3. Pozbywanie się szumu takiego jak “should”, “must”
      4. Nazywanie testu jako okazja do przemyślenia czy to dobry test
  6. Pokrycie kodu testami
    1. Po co mierzyć pokrycie kodu testami?
    2. Rodzaje pokrycia kodu testami
      1. Line coverage
      2. Branch coverage
      3. Conditional coverage
    3. pytest-cov i konfiguracja
    4. 100% pokrycia jako cel
      1. Jak dojść do 100% pokrycia testami i nie napracować się zbytnio?
    5. Techniki testowania wspomagające pokrycie
      1. Testy mutacyjne
      2. Property-based testing
  7. Strategia testowania
    1. Piramida testów według Mike Cohn’a
      1. Testy jednostkowe
      2. Testy serwisów
      3. Testy end-to-end
      4. Ocena wzorcowej piramidy
    2. Budowanie własnej strategii
      1. Gdy testy wyższego poziomu wystarczają
    3. Dobieranie strategii a architektura projektu
      1. Wygląd i możliwości pisania testów jest pochodną sposobu napisania kodu
      2. Typowy CRUD w Django
      3. czysta architektura / porty i adaptery
  8. Testowalny kod
    1. Stosowanie luźnego powiązania
    2. Odwracanie zależności
    3. Wydzielanie stabilnych interfejsów
  9. Testy akceptacyjne - rozwinięcie
    1. Własny DSL
      1. Przykład z giełdą i order bookiem
    2. BDD z behave lub pytest-bdd
    3. Taktyki zaślepiania w testach akceptacyjnych
      1. Znalezienie stabilnych punktów zaślepiania
  10. Testy kontraktowe
    1. Narzędzie do lepszej współpracy między zespołami budującymi rozproszony system
    2. Consumer-Driven Contract Testing
    3. Producer-Driven Contract Testing
    4. Przegląd narzędzi dostępnych w Pythonie
      1. Pact
  11. System fikstur w pytest
    1. Przenoszenie części lub całości kroku arrange do fikstur
    2. Sprzątanie w fiksturze po teście dzięki instrukcji yield
    3. Zakresy fikstur
    4. Parametryzowane fikstury
  12. Taktyki przyspieszania testów
    1. Metryki
      1. Czas od uruchomienia do przejścia pierwszego testu
      2. Czas od uruchomienia do zakończenia całego zestawu testów
      3. Czasy trwania poszczególnych testów
    2. Namierzanie wolnych testów
      1. Szybka powtórka z teorii ograniczeń
      2. Szukamy wąskich gardeł i je optymalizujemy
    3. Przyspieszanie wolnych testów
      1. Profilowanie
      2. Używanie stałych fikstur
    4. Szybkie i proste tweaki
  13. Taktyki poprawiania niestabilnych testów
    1. Fikstura kontrolna
    2. Naprawianie izolacji testów
      1. Transakcje
      2. Logiczna separacja
    3. Testy niestabilne z definicji
      1. Odseparowanie od głównego zestawu przy pomocy markerów
      2. Wbudowujemy mechanizmy ponawiania w kod produkcyjny
      3. Ponawiamy przy pomocy pytest-rerun


Pobierz program w formacie PDF

Trenerzy

Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.

Materiały związane ze szkoleniem

Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.

Zamów szkolenie

Imię i nazwisko:
Firma:
E-mail:
Nr tel:
Temat:
Wiadomość:

Jeżeli preferujesz osobisty kontakt to zawsze możesz zadzwonić.

Iwona Sobótka

Koordynatorka szkoleń


Twoje dane osobowe przetwarzamy, aby udzielić odpowiedzi na Twoje pytanie. Administratorem Twoich danych osobowych jest Bottega It Minds Sławomir Sobótka. Przysługuje Ci prawo wniesienia sprzeciwu wobec przetwarzania, prawo dostępu do danych, prawo żądania ich sprostowania, usunięcia lub ograniczenia ich przetwarzania. Szczegółowe informacje dotyczące przetwarzania Twoich danych osobowych znajdują się TUTAJ.