Details zum E-Book

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

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

Gayathri Mohan

E-book

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

  • Titel: Testowanie full stack. Praktyczny przewodnik dostarczania oprogramowania wysokiej jakości
  • Autor: Gayathri Mohan
  • Originaler Titel: Full Stack Testing: A Practical Guide for Delivering High Quality Software
  • Übersetzung: Radosław Meryk
  • ISBN: 978-83-8322-016-1, 9788383220161
  • Veröffentlichungsdatum: 2023-03-14
  • Format: E-book
  • Artikelkennung: tefust
  • Verleger: Helion