Programowanie sterowane testami w Pythonie. Jak tworzyć skalowalne zestawy testów i aplikacji - ebook
Programowanie sterowane testami w Pythonie. Jak tworzyć skalowalne zestawy testów i aplikacji - 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!
Spis treści
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
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-8665-5 |
Rozmiar pliku: | 6,7 MB |