Testowanie full stack

Book description

Wysoka jakość aplikacji nie bierze się znikąd! Aby ją zapewnić, testowanie musi być integralnym aspektem inżynierii oprogramowania, wplecionym w każdy etap cyklu jego dostarczania. Błędy czy niedoskonałości w kodzie, pominięte z powodu niedokładnego testowania, mogą się okazać niezwykle kosztowne, jeśli ujawnią się w środowisku produkcyjnym. Oznacza to, że wdrożenie mądrej strategii testowania jest warunkiem sukcesu w branży dostarczania oprogramowania.

Ten praktyczny przewodnik zawiera szeroki przegląd strategii, wzorców i form testowania oprogramowania, ułatwiających dobór ścieżek i podejść do konkretnych projektów w zależności od zakresu, budżetu i ram czasowych. Książka uczy przydatnych umiejętności w zakresie przeprowadzania testów wydajności, bezpieczeństwa i dostępności, w tym testów eksploracyjnych, automatyzacji testów, testów wielofunkcyjnych, testowania danych, testowania mobilnego i wielu innych. Zaprezentowano tu także łączenie testów w potokach ciągłej integracji, co pozwala na szybkie otrzymywanie informacji zwrotnych. W ten sposób łatwiejsze staje się kontrolowanie trudnych przepływów pracy programistycznej i uzyskiwanie wysokiej jakości aplikacji.

Najciekawsze zagadnienia:

ponad 40 narzędzi do testowania kodu
zasady dobierania testów pod kątem jakości oprogramowania
strategie i koncepcje dotyczące testowania
praktyczne korzystanie z poszczególnych narzędzi do testowania
najlepsze praktyki przeprowadzania testów

Po pierwsze, po drugie i po trzecie: testuj swój kod!

Table of contents

  1. Opinie o książce Testowanie Full Stack
  2. Wstęp
  3. Przedmowa
    1. Dlaczego napisałam tę książkę?
    2. Kto powinien przeczytać tę książkę?
    3. Poruszanie się po tej książce
    4. Konwencje typograficzne zastosowane w tej książce
    5. Podziękowania
  4. Rozdział 1. Wprowadzenie do testowania full stack
    1. Testowanie full stack w celu uzyskania wysokiej jakości
    2. Testowanie shift-left
    3. Dziesięć umiejętności testowania full stack
    4. Kluczowe wnioski
  5. Rozdział 2. Ręczne testowanie eksploracyjne
    1. Bloki konstrukcyjne
      1. Schematy stosowane w testach eksploracyjnych
        1. Podział klasy równoważności
        2. Analiza wartości granicznych
        3. Przejścia stanu
        4. Tabele decyzyjne
        5. Grafy przyczynowo-skutkowe
        6. Testowanie parami
        7. Próbkowanie
        8. Metoda odgadywania błędów
      2. Odkrywanie funkcjonalności
        1. Funkcjonalne przepływy pracy użytkowników
        2. Awarie i obsługa błędów
        3. Wygląd i działanie interfejsu użytkownika
        4. Aspekty obejmujące wiele funkcjonalności
    2. Strategia ręcznego testowania eksploracyjnego
      1. Zrozumienie aplikacji
      2. Eksploracja częściami
      3. Powtarzanie testów eksploracyjnych w wielu fazach
    3. Ćwiczenia
      1. Testowanie API
        1. Postman
        2. WireMock
      2. Testowanie interfejsu webowego
        1. Przeglądarki
        2. Bug Magnet
        3. Wtyczka DevTools przeglądarki Chrome
    4. Perspektywy: higiena środowiska testowego
    5. Kluczowe wnioski
  6. Rozdział 3. Automatyczne testowanie funkcjonalne
    1. Bloki konstrukcyjne
      1. Wprowadzenie w tematykę testów typu mikro i makro
        1. Testy jednostkowe
        2. Testy integracyjne
        3. Testy kontraktów
        4. Testy usług
        5. Testy funkcjonalne interfejsu użytkownika
        6. Testy kompleksowe („od końca do końca”)
    2. Strategia automatycznego testowania funkcjonalnego
    3. Ćwiczenia
      1. Testy funkcjonalne na bazie interfejsu użytkownika
        1. Java i framework Selenium WebDriver
        2. Framework JavaScript–Cypress
      2. Testy usług
        1. Wymagania wstępne.
        2. Framework Javy — REST Assured
      3. Testy jednostkowe
        1. JUnit
    4. Dodatkowe narzędzia do testowania
      1. Pact
      2. Karate
      3. Narzędzia AI/ML w automatycznych testach funkcjonalnych
        1. Tworzenie testów
        2. Utrzymywanie testów
        3. Analiza raportu z testów
        4. Zarządzanie testami
    5. Perspektywy
      1. Antywzorce do wyeliminowania
        1. Rożek lodowy
        2. Babeczka
      2. Stuprocentowe pokrycie testami automatycznymi!
    6. Kluczowe wnioski
  7. Rozdział 4. Ciągłe testowanie
    1. Bloki konstrukcyjne
      1. Wprowadzenie w tematykę ciągłej integracji
      2. Procesy ciągłej integracji, ciągłego wdrażania i ciągłego testowania
      3. Zasady i etykieta
    2. Strategia ciągłego testowania
      1. Korzyści
    3. Ćwiczenie
      1. Git
        1. Instalacja
        2. Przepływ pracy
      2. Jenkins
        1. Instalacja
        2. Przepływ pracy
    4. Cztery kluczowe wskaźniki
    5. Najważniejsze wnioski
  8. Rozdział 5. Testowanie danych
    1. Bloki konstrukcyjne
      1. Bazy danych
      2. Pamięci podręczne
      3. Systemy przetwarzania wsadowego
      4. Strumienie zdarzeń
    2. Strategia testowania danych
    3. Ćwiczenia
      1. SQL
        1. Wymagania wstępne
        2. Przepływ pracy
      2. JDBC
        1. Konfiguracja i przepływ pracy
      3. Apache Kafka i Zerocode
        1. Instalacja
        2. Przepływ pracy
    4. Dodatkowe narzędzia do testowania
      1. Kontenery testowe
      2. Deequ
    5. Kluczowe wnioski
  9. Rozdział 6. Testowanie wizualne
    1. Bloki konstrukcyjne
      1. Wprowadzenie w tematykę testów wizualnych
      2. Przypadki użycia o kluczowym znaczeniu dla projektu i jego wymagań biznesowych
    2. Strategia testowania frontendu
      1. Testy jednostkowe
      2. Testy integracyjne (na poziomie komponentów)
      3. Testy migawkowe
      4. Funkcjonalne testy „od-końca-do-końca”
      5. Testy wizualne
      6. Testowanie w wielu przeglądarkach
      7. Testowanie wydajności frontendu
      8. Testowanie dostępności
    3. Ćwiczenia
      1. BackstopJS
        1. Instalacja
        2. Przepływ pracy
      2. Cypress
        1. Instalacja
        2. Przepływ pracy
    4. Dodatkowe narzędzia do testowania
      1. Applitools Eyes — narzędzie oparte na sztucznej inteligencji
      2. Storybook
    5. Perspektywy: wyzwania związane z testowaniem wizualnym
    6. Kluczowe wnioski
  10. Rozdział 7. Testowanie zabezpieczeń
    1. Bloki konstrukcyjne
      1. Popularne rodzaje cyberataków
        1. Web scraping
        2. Metoda siłowa
        3. Socjotechnika
        4. Phishing
        5. Ataki XSS
        6. Ransomware
        7. Fałszowanie plików cookie
        8. Cryptojacking
      2. Model zagrożenia STRIDE
        1. Fałszowanie tożsamości
        2. Manipulowanie danymi wejściowymi
        3. Zaprzeczanie działań
        4. Ujawnianie informacji
        5. Odmowa usługi
        6. Eskalacja uprawnień
      3. Luki w zabezpieczeniach aplikacji
        1. Wstrzykiwanie kodu lub zapytań SQL
        2. Skrypty XSS
        3. Nieobsłużone znane luki w zabezpieczeniach
        4. Uwierzytelnianie i niewłaściwe zarządzanie sesjami
        5. Niezaszyfrowane prywatne dane
        6. Błędne konfiguracje aplikacji
        7. Ujawnienie poufnych wpisów aplikacji
      4. Modelowanie zagrożeń
        1. Etapy modelowania zagrożeń
        2. Warsztaty modelowania zagrożeń
        3. Przypadki testowe zabezpieczeń na podstawie modelu zagrożeń
    2. Strategia testowania zabezpieczeń
    3. Ćwiczenia
      1. OWASP Dependency-Check
        1. Konfiguracja i przepływ pracy
      2. OWASP ZAP
        1. Instalacja
        2. Przepływ pracy
    4. Dodatkowe narzędzia do testowania
      1. Wtyczka Snyk IDE
      2. Hak pre-commit Talisman
      3. Chrome DevTools i Postman
    5. Perspektywy: bezpieczeństwo to nawyk
    6. Kluczowe wnioski
  11. Rozdział 8. Testy wydajności
    1. Bloki konstrukcyjne testowania wydajności backendu
      1. Wydajność, sprzedaż i wolne weekendy są ze sobą powiązane!
      2. Proste cele wydajności
      3. Czynniki wpływające na wydajność aplikacji
      4. Kluczowe wskaźniki wydajności
      5. Rodzaje testów wydajności
      6. Rodzaje wzorców obciążenia
      7. Etapy testowania wydajności
        1. Krok 1. Zdefiniuj docelowe wskaźniki KPI
        2. Krok 2. Zdefiniuj przypadki testowe
        3. Krok 3. Przygotuj środowisko testowania wydajności
        4. Krok 4. Przygotuj dane testowe
        5. Krok 5. Zintegruj narzędzia monitorowania wydajności aplikacji
        6. Krok 6. Utwórz skrypty i uruchom testy wydajności z wykorzystaniem właściwych narzędzi
    2. Ćwiczenia
      1. Krok 1. Zdefiniuj docelowe wskaźniki KPI
      2. Krok 2. Zdefiniuj przypadki testowe
      3. Kroki 3 – 5. Przygotuj dane, środowisko i narzędzia
      4. Krok 6. Utwórz skrypty przypadków testowych i uruchom je z wykorzystaniem narzędzia JMeter
        1. Instalacja
        2. Przepływ pracy
        3. Projektowanie innych przypadków testowych wydajności
        4. Testy wydajności oparte na danych
        5. Integracja z potokiem CI
    3. Dodatkowe narzędzia do testowania
      1. Gatling
      2. Apache Benchmark
    4. Bloki konstrukcyjne testów wydajności frontendu
      1. Czynniki wpływające na wydajność frontendu
      2. Model RAIL
      3. Metryki wydajności frontendu
    5. Ćwiczenia
      1. WebPageTest
        1. Przepływ pracy
      2. Lighthouse
        1. Przepływ pracy
    6. Dodatkowe narzędzia do testowania
      1. PageSpeed Insights
      2. Wtyczka DevTools przeglądarki Chrome
    7. Strategia testowania wydajności
    8. Najważniejsze wnioski
  12. Rozdział 9. Testowanie dostępności
    1. Bloki konstrukcyjne
      1. Sylwetki użytkowników związanych z ułatwieniami dostępu
      2. Ekosystem ułatwień dostępu
      3. Przykład: czytniki ekranu
      4. WCAG 2.0: zasady przewodnie i poziomy
      5. Standardy zgodności poziomu A
        1. Widoczność
        2. Funkcjonalność
        3. Czytelność
        4. Solidność
      6. Frameworki programistyczne z obsługą ułatwień dostępu
    2. Strategia testowania dostępności
      1. Lista kontrolna elementów dostępności w historyjkach użytkowników
      2. Narzędzia do automatycznej inspekcji ułatwień dostępu
      3. Testowanie ręczne
    3. Ćwiczenia
      1. WAVE
        1. Przepływ pracy
      2. Lighthouse
        1. Przepływ pracy
      3. Moduł Node wtyczki Lighthouse
        1. Przepływ pracy
    4. Dodatkowe narzędzia testowe
      1. Moduł Node PA11y CI
      2. Axe-core
    5. Perspektywy: dostępność jako kultura
    6. Najważniejsze wnioski
  13. Rozdział 10. Testowanie wymagań wielofunkcyjnych
    1. Bloki konstrukcyjne
    2. Strategia testowania wymagań CFR
      1. Funkcjonalność
      2. Wygoda użytkowania
      3. Niezawodność
      4. Wydajność
      5. Możliwości wsparcia
    3. Inne metody testowania wymagań CFR
      1. Inżynieria chaosu
        1. Eksperyment chaosu
      2. Testowanie architektury
      3. Testowanie infrastruktury
      4. Testowanie zgodności z przepisami
        1. Ogólne rozporządzenie o ochronie danych osobowych (RODO)
        2. PCI DSS i PSD2
    4. Perspektywy: możliwości ewolucji i próba czasu!
    5. Najważniejsze wnioski
  14. Rozdział 11. Testowanie mobilne
    1. Bloki konstrukcyjne
      1. Wprowadzenie do krajobrazu mobilnego
        1. Urządzenia
        2. Aplikacja
        3. Sieć
      2. Architektura aplikacji mobilnych
    2. Strategia testowania mobilnego
      1. Ręczne testowanie eksploracyjne
      2. Funkcjonalne testy automatyczne
      3. Testowanie danych
      4. Testy wizualne
      5. Testy zabezpieczeń
      6. Testy wydajności
      7. Testowanie dostępności
        1. iOS
        2. Android
      8. Testy wymagań CFR
    3. Ćwiczenia
      1. Appium
        1. Warunki wstępne
        2. Emulator systemu Android
        3. Konfiguracja Appium 2.0
        4. Przepływ pracy
      2. Wtyczka Appium Visual Testing
        1. Instalacja
        2. Przepływ pracy
    4. Dodatkowe narzędzia testowe
      1. Database Inspector w środowisku Android Studio
      2. Narzędzia do testowania wydajności
        1. Monkey
        2. Rozszerzenia: mechanizm dławienia sieci
        3. API wydajności Appium
      3. Narzędzia do testowania zabezpieczeń
        1. Qark
      4. Accessibility Scanner
    5. Perspektywy: piramida testowania aplikacji mobilnych
    6. Najważniejsze wnioski
  15. Rozdział 12. Nie tylko testowanie
    1. Najważniejsze zasady testowania
      1. Zapobieganie defektom zamiast ich wykrywania
      2. Testy empatyczne
      3. Testy na poziomie mikro i makro
      4. Szybkie informacje zwrotne
      5. Ciągłe sprzężenie zwrotne
      6. Mierzenie wskaźników jakości
      7. Kluczem do jakości są komunikacja i współpraca
    2. Umiejętności miękkie pomagają w budowaniu nastawienia na jakość
    3. Podsumowanie
  16. Rozdział 13. Wprowadzenie do testowania w nowych technologiach
    1. Sztuczna inteligencja i uczenie maszynowe
      1. Wprowadzenie do uczenia maszynowego
      2. Testowanie aplikacji ML
    2. Blockchain
      1. Wprowadzenie do pojęć związanych z blockchainem
      2. Testowanie aplikacji Blockchain
    3. Internet rzeczy
      1. Wprowadzenie do pięciowarstwowej architektury IoT
      2. Testowanie aplikacji IoT
    4. Rzeczywistość rozszerzona i wirtualna
      1. Testowanie aplikacji AR i VR
    5. O autorce
    6. Kolofon

Product information

  • Title: Testowanie full stack
  • Author(s): Gayathri Mohan
  • Release date: March 2023
  • Publisher(s): Helion
  • ISBN: 9788383220161