Szczegóły ebooka

Programowanie sterowane testami w Pythonie. Jak tworzyć skalowalne zestawy testów i aplikacji

Programowanie sterowane testami w Pythonie. Jak tworzyć skalowalne zestawy testów i aplikacji

Alessandro Molina

Ebook

Spośród wielu koncepcji tworzenia oprogramowania na szczególną uwagę zasługuje model programowania sterowanego testami, znany jako TDD. Technika ta opiera się na integracji procesów projektowania aplikacji i pisania kodu z prowadzeniem testów. Mimo że taki sposób pracy wydaje się dość wymagający dla zespołów deweloperów, łatwo się przekonać, że TDD pozwala na stałe uzyskiwanie dobrych efektów, a opracowane tą metodą aplikacje zaskakują stabilnością i przewidywalnością w środowisku produkcyjnym.

W tej praktycznej książce dokładnie opisano koncepcje przeprowadzania testów oprogramowania, a szczególny akcent położono na model programowania sterowanego testami. Przedstawiono w niej również szeroką gamę przydatnych do testowania narzędzi, takich jak wbudowany w Pythona moduł testów jednostkowych unittest, frameworki pytest i Robot, a także biblioteka webtest. Omówiono też zasady projektowania testów, testowania kodu podczas implementacji nowych funkcjonalności i tworzenia pełnych zbiorów testów. Ponadto dokładnie zaprezentowano najlepsze praktyki związane z testami automatycznymi i modelem programowania TDD. Poszczególne koncepcje zostały zilustrowane praktycznymi przykładami zastosowania narzędzi dostępnych w Pythonie.

W książce między innymi:

  • najlepsze praktyki dotyczące projektowania testów
  • praca z frameworkiem pytest przeznaczonym do testowania aplikacji
  • tworzenie testów funkcjonalnych dla aplikacji WSGI za pomocą biblioteki webtest
  • zasady programowania sterowanego testami
  • techniki tworzenia niezawodnych aplikacji w Pythonie

Najważniejsze jest testowanie kodu - od pierwszej linii!


O autorze

O korektorze merytorycznym

Wprowadzenie

Część I. Testowanie oprogramowania i programowanie sterowane testami

  • Rozdział 1. Rozpoczęcie pracy z testowaniem oprogramowania
    • Wymagania techniczne
    • Wprowadzenie do testowania oprogramowania i kontroli jego jakości
    • Wprowadzenie do testów automatycznych i zbiorów testów
    • Wprowadzenie do programowania sterowanego testami i testów jednostkowych
    • Testy integracji i testy funkcjonalne
    • Piramida testów i trofeum testów
    • Podsumowanie
  • Rozdział 2. Dublery używane podczas testów na przykładzie aplikacji czatu
    • Wymagania techniczne
    • Wprowadzenie do dublerów używanych podczas testów
    • Aplikacja czatu opracowana z wykorzystaniem modelu TDD
    • Zastępowanie komponentów ich namiastkami
    • Sprawdzanie zachowania za pomocą szpiegów
    • Stosowanie imitacji
    • Zastępowanie zależności atrapami
    • Testy akceptacji i dublery używane podczas testów
    • Zarządzanie zależnościami za pomocą mechanizmu wstrzykiwania zależności
    • Podsumowanie
  • Rozdział 3. Programowanie sterowane testami na przykładzie aplikacji listy rzeczy do zrobienia
    • Wymagania techniczne
    • Rozpoczęcie pracy nad projektem wykorzystującym model TDD
    • Tworzenie aplikacji z użyciem modelu TDD
    • Zapobieganie regresji
    • Podsumowanie
  • Rozdział 4. Skalowanie zbioru testów
    • Wymagania techniczne
    • Skalowanie testów
    • Praca z wieloma zbiorami testów
    • Przeprowadzanie testów wydajności
    • Włączanie ciągłej integracji
    • Podsumowanie

Część II. Framework pytest

  • Rozdział 5. Wprowadzenie do frameworka pytest
    • Wymagania techniczne
    • Wykonywanie testów za pomocą frameworka pytest
    • Definiowanie warunków początkowych testów pytest
    • Stosowanie argumentu tmp_path do zarządzania danymi tymczasowymi
    • Stosowanie wtyczki capsys do testowania wejścia - wyjścia
    • Wykonywanie podzbioru testów
    • Podsumowanie
  • Rozdział 6. Testy parametryzowane i dynamiczna konfiguracja testów
    • Wymagania techniczne
    • Konfiguracja zbioru testów
    • Generowanie konfiguracji
    • Generowanie testów parametryzowane
    • Podsumowanie
  • Rozdział 7. Funkcje dopasowania na przykładzie aplikacji książki adresowej
    • Wymagania techniczne
    • Tworzenie testów akceptacji
    • Stosowanie modelu programowania sterowanego zachowaniem
    • Uwzględnianie specyfikacji na przykładzie
    • Podsumowanie
  • Rozdział 8. Najważniejsze wtyczki dla frameworka pytest
    • Wymagania techniczne
    • Stosowanie wtyczki pytest-conv do generowania informacji dotyczących stopnia pokrycia kodu źródłowego testami
    • Stosowanie wtyczki pytest-benchmark do przeprowadzania testów wydajności
    • Stosowanie wtyczki flaky do ponownego wykonywania niepewnych testów
    • Stosowanie wtyczki pytest-testmon do ponownego wykonywania testów po wprowadzeniu zmiany w kodzie
    • Jednoczesne wykonywanie testów za pomocą wtyczki pytest-xdist
    • Podsumowanie
  • Rozdział 9. Zarządzanie środowiskami testowymi za pomocą narzędzia Tox
    • Wymagania techniczne
    • Wprowadzenie do narzędzia Tox
    • Testowanie wielu wersji Pythona za pomocą narzędzia Tox
    • Stosowanie narzędzia Tox w połączeniu z usługą Travis CI
    • Podsumowanie
  • Rozdział 10. Testowanie dokumentacji i testowanie na podstawie właściwości
    • Wymagania techniczne
    • Testowanie dokumentacji
    • Testowanie na podstawie właściwości
    • Podsumowanie

Część III. Testowanie aplikacji internetowych

  • Rozdział 11. Testowanie na potrzeby internetu - WSGI kontra HTTP
    • Wymagania techniczne
    • Testowanie HTTP
    • Testowanie WSGI za pomocą biblioteki webtest
    • Stosowanie biblioteki webtest z frameworkami przeznaczonymi do tworzenia aplikacji internetowych
    • Tworzenie testów Django za pomocą klienta testów oferowanego przez Django
    • Podsumowanie
  • Rozdział 12. Testy E2E wykonywane za pomocą frameworka Robot
    • Wymagania techniczne
    • Wprowadzenie do frameworka Robot
    • Testowanie za pomocą przeglądarek WWW
    • Rozbudowa frameworka Robot
    • Podsumowanie
  • Tytuł: Programowanie sterowane testami w Pythonie. Jak tworzyć skalowalne zestawy testów i aplikacji
  • Autor: Alessandro Molina
  • Tytuł oryginału: Crafting Test-Driven Software with Python: Write test suites that scale with your applications
  • Tłumaczenie: Robert Górczyński
  • ISBN: 978-83-283-8665-5, 9788328386655
  • Data wydania: 2022-04-19
  • Format: Ebook
  • Identyfikator pozycji: proste
  • Wydawca: Helion