E-book details

Testowanie full stack. Praktyczny przewodnik dostarczania oprogramowania wysokiej jakości

Testowanie full stack. Praktyczny przewodnik dostarczania oprogramowania wysokiej jakości

Gayathri Mohan

Ebook

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!

Wstęp

Przedmowa

1. Wprowadzenie do testowania full stack

  • Testowanie full stack w celu uzyskania wysokiej jakości
  • Testowanie shift-left
  • Dziesięć umiejętności testowania full stack
  • Kluczowe wnioski

2. Ręczne testowanie eksploracyjne

  • Bloki konstrukcyjne
    • Schematy stosowane w testach eksploracyjnych
    • Odkrywanie funkcjonalności
  • Strategia ręcznego testowania eksploracyjnego
    • Zrozumienie aplikacji
    • Eksploracja częściami
    • Powtarzanie testów eksploracyjnych w wielu fazach
  • Ćwiczenia
    • Testowanie API
    • Testowanie interfejsu webowego
  • Perspektywy: higiena środowiska testowego
  • Kluczowe wnioski

3. Automatyczne testowanie funkcjonalne

  • Bloki konstrukcyjne
    • Wprowadzenie w tematykę testów typu mikro i makro
  • Strategia automatycznego testowania funkcjonalnego
  • Ćwiczenia
    • Stos technologiczny automatyzacji testów
    • Testy funkcjonalne na bazie interfejsu użytkownika
    • Skąd nazwa Selenium?
    • Programowanie sterowane zachowaniem (BDD)
    • Testy usług
    • Testy jednostkowe
    • Cechy dobrych testów
  • Dodatkowe narzędzia do testowania
    • Pact
    • Karate
    • Narzędzia AI/ML w automatycznych testach funkcjonalnych
  • Perspektywy
    • Antywzorce do wyeliminowania
    • Stuprocentowe pokrycie testami automatycznymi!
    • Pokrycie kodu i testowanie mutacji
  • Kluczowe wnioski

4. Ciągłe testowanie

  • Bloki konstrukcyjne
    • Wprowadzenie w tematykę ciągłej integracji
    • Procesy ciągłej integracji, ciągłego wdrażania i ciągłego testowania
    • Korzyści stosowania systemów VCS
    • Ciągłe wdrażanie a ciągłe dostarczanie
    • Zasady i etykieta
  • Strategia ciągłego testowania
    • Korzyści
  • Ćwiczenie
    • Git
    • Jenkins
  • Cztery kluczowe wskaźniki
  • Najważniejsze wnioski

5. Testowanie danych

  • Bloki konstrukcyjne
    • Bazy danych
    • Pamięci podręczne
    • Systemy przetwarzania wsadowego
    • Strumienie zdarzeń
  • Strategia testowania danych
  • Ćwiczenia
    • SQL
    • JDBC
    • Apache Kafka i Zerocode
  • Dodatkowe narzędzia do testowania
    • Kontenery testowe
    • Testowanie przenośności
    • Deequ
  • Kluczowe wnioski

6. Testowanie wizualne

  • Bloki konstrukcyjne
    • Wprowadzenie w tematykę testów wizualnych
    • Przypadki użycia o kluczowym znaczeniu dla projektu i jego wymagań biznesowych
  • Strategia testowania frontendu
    • Testy jednostkowe
    • Testy integracyjne (na poziomie komponentów)
    • Testy migawkowe
    • Funkcjonalne testy "od-końca-do-końca"
    • Testy wizualne
    • Testowanie wizualne a migawkowe
    • Testowanie w wielu przeglądarkach
    • Testowanie wydajności frontendu
    • Testowanie dostępności
  • Ćwiczenia
    • BackstopJS
    • Cypress
  • Dodatkowe narzędzia do testowania
    • Applitools Eyes - narzędzie oparte na sztucznej inteligencji
    • Storybook
  • Perspektywy: wyzwania związane z testowaniem wizualnym
  • Kluczowe wnioski

7. Testowanie zabezpieczeń

  • Bloki konstrukcyjne
    • Model zagrożenia STRIDE
    • Luki w zabezpieczeniach aplikacji
    • Modelowanie zagrożeń
  • Strategia testowania zabezpieczeń
  • Ćwiczenia
    • OWASP Dependency-Check
    • OWASP ZAP
  • Dodatkowe narzędzia do testowania
    • Wtyczka Snyk IDE
    • Hak pre-commit Talisman
    • Chrome DevTools i Postman
  • Perspektywy: bezpieczeństwo to nawyk
  • Kluczowe wnioski

8. Testy wydajności

  • Bloki konstrukcyjne testowania wydajności backendu
    • Wydajność, sprzedaż i wolne weekendy są ze sobą powiązane!
    • Proste cele wydajności
    • Czynniki wpływające na wydajność aplikacji
    • Kluczowe wskaźniki wydajności
    • Rodzaje testów wydajności
    • Rodzaje wzorców obciążenia
    • Etapy testowania wydajności
  • Ćwiczenia
    • Krok 1. Zdefiniuj docelowe wskaźniki KPI
    • Krok 2. Zdefiniuj przypadki testowe
    • Kroki 3 - 5. Przygotuj dane, środowisko i narzędzia
    • Krok 6. Utwórz skrypty przypadków testowych i uruchom je z wykorzystaniem narzędzia JMeter
  • Dodatkowe narzędzia do testowania
    • Gatling
    • Apache Benchmark
  • Bloki konstrukcyjne testów wydajności frontendu
    • Czynniki wpływające na wydajność frontendu
    • Model RAIL
    • Metryki wydajności frontendu
  • Ćwiczenia
    • WebPageTest
    • Lighthouse
  • Dodatkowe narzędzia do testowania
    • PageSpeed Insights
    • Wtyczka DevTools przeglądarki Chrome
  • Strategia testowania wydajności
  • Najważniejsze wnioski

9. Testowanie dostępności

  • Bloki konstrukcyjne
    • Sylwetki użytkowników związanych z ułatwieniami dostępu
    • Ekosystem ułatwień dostępu
    • Przykład: czytniki ekranu
    • WCAG 2.0: zasady przewodnie i poziomy
    • Standardy zgodności poziomu A
    • Frameworki programistyczne z obsługą ułatwień dostępu
  • Strategia testowania dostępności
    • Lista kontrolna elementów dostępności w historyjkach użytkowników
    • Narzędzia do automatycznej inspekcji ułatwień dostępu
    • Testowanie ręczne
  • Ćwiczenia
    • WAVE
    • Lighthouse
    • Moduł Node wtyczki Lighthouse
  • Dodatkowe narzędzia testowe
    • Moduł Node PA11y CI
    • Axe-core
  • Perspektywy: dostępność jako kultura
  • Najważniejsze wnioski

10. Testowanie wymagań wielofunkcyjnych

  • Bloki konstrukcyjne
  • Strategia testowania wymagań CFR
    • Funkcjonalność
    • Wygoda użytkowania
    • Niezawodność
    • Wydajność
    • Możliwości wsparcia
  • Inne metody testowania wymagań CFR
    • Inżynieria chaosu
    • Testowanie architektury
    • Testowanie infrastruktury
    • Testowanie zgodności z przepisami
  • Perspektywy: możliwości ewolucji i próba czasu!
  • Najważniejsze wnioski

11. Testowanie mobilne

  • Bloki konstrukcyjne
    • Wprowadzenie do krajobrazu mobilnego
    • Architektura aplikacji mobilnych
  • Strategia testowania mobilnego
    • Ręczne testowanie eksploracyjne
    • Funkcjonalne testy automatyczne
    • Testowanie danych
    • Testy wizualne
    • Testy zabezpieczeń
    • Testy wydajności
    • Testowanie dostępności
    • Testy wymagań CFR
  • Ćwiczenia
    • Appium
    • Wtyczka Appium Visual Testing
  • Dodatkowe narzędzia testowe
    • Database Inspector w środowisku Android Studio
    • Narzędzia do testowania wydajności
    • Narzędzia do testowania zabezpieczeń
    • Accessibility Scanner
  • Perspektywy: piramida testowania aplikacji mobilnych
  • Najważniejsze wnioski

12. Nie tylko testowanie

  • Najważniejsze zasady testowania
    • Zapobieganie defektom zamiast ich wykrywania
    • Testy empatyczne
    • Testy na poziomie mikro i makro
    • Szybkie informacje zwrotne
    • Ciągłe sprzężenie zwrotne
    • Mierzenie wskaźników jakości
    • Kluczem do jakości są komunikacja i współpraca
  • Umiejętności miękkie pomagają w budowaniu nastawienia na jakość
  • Podsumowanie

13. Wprowadzenie do testowania w nowych technologiach

  • Sztuczna inteligencja i uczenie maszynowe
    • Wprowadzenie do uczenia maszynowego
    • Testowanie aplikacji ML
  • Blockchain
    • Wprowadzenie do pojęć związanych z blockchainem
    • Testowanie aplikacji Blockchain
  • Internet rzeczy
    • Wprowadzenie do pięciowarstwowej architektury IoT
    • Testowanie aplikacji IoT
  • Rzeczywistość rozszerzona i wirtualna
    • Testowanie aplikacji AR i VR

Skorowidz

  • Title: Testowanie full stack. Praktyczny przewodnik dostarczania oprogramowania wysokiej jakości
  • Author: Gayathri Mohan
  • Original title: Full Stack Testing: A Practical Guide for Delivering High Quality Software
  • Translation: Radosław Meryk
  • ISBN: 978-83-8322-016-1, 9788383220161
  • Date of issue: 2023-03-14
  • Format: Ebook
  • Item ID: tefust
  • Publisher: Helion