Kiedy myślimy o umiejętnościach testowania, zwykle konsolidujemy je w dwóch obszernych kategoriach umiejętności — testy manualne i automatyczne. Trzeba jednak pamiętać, że w ciągu ostatnich kilku dekad technologia ewoluowała, a te obszerne terminy maskują podstawowe nowe umiejętności, których trzeba się nauczyć, aby przeprowadzać różne kontrole jakości i dostarczać wysokiej jakości aplikacje webowe i mobilne.

 

Dziesięć umiejętności testowania full stack pozwalających na skuteczne przeprowadzanie testów pokazano na poniższym rysunku.

 

 

 

Przyjrzyjmy się tym dziesięciu umiejętnościom i spróbujmy uzasadnić, dlaczego warto się ich nauczyć:

 

Ręczne testowanie eksploracyjne

 

Po pierwsze, należy podkreślić, że ręczne testowanie eksploracyjne różni się od testowania ręcznego. To ostatnie odnosi się do weryfikacji ustalonej listy wymagań i niekoniecznie wymaga analitycznego sposobu myślenia. Dla odróżnienia — ręczne testowanie eksploracyjne to umiejętność zagłębiania się w szczegóły aplikacji, wymyślania różnych rzeczywistych scenariuszy wykraczających poza te, które zostały udokumentowane w historyjkach użytkownika, symulowania ich w środowisku testowym i obserwowania zachowania aplikacji. Wymaga ono logicznego, analitycznego sposobu myślenia i jest pierwszą i najważniejszą umiejętnością wymaganą do stworzenia aplikacji wolnej od błędów. Istnieją różne metodologie i podejścia, których można się nauczyć, aby opracować strukturę sesji eksploracji.

 

Automatyczne testowanie funkcjonalne

 

Jak napisałam wcześniej, jest to jedna z podstawowych umiejętności testowania shift-left. Przeprowadzanie testów automatycznych znacznie zmniejsza również wysiłek związany z testowaniem ręcznym, zwłaszcza gdy aplikacja rozszerza się o dodatkowe funkcje. Mówiąc prosto, umiejętność polega na pisaniu kodu w celu automatycznego testowania wymagań dotyczących funkcjonalności aplikacji bez interwencji człowieka. Aby to zrobić, potrzebne są odpowiednie narzędzia, a zatem do zdobycia tej umiejętności wymagana jest znajomość różnych narzędzi, które można wykorzystać do pisania testów dla różnych warstw aplikacji. Na tym jednak testowanie automatyczne się nie kończy. Trzeba też wiedzieć, jakich antywzorców szukać w testach automatycznych i jak trzymać się od nich z daleka.

 

Testowanie ciągłe

 

Ciągłe dostarczanie (ang. continuous delivery — CD) to praktyka, w której funkcjonalności są dostarczane docelowym użytkownikom przyrostowo, w krótkich cyklach, zamiast poprzez pojedyncze obszerne wydanie. Dzięki ciągłemu dostarczaniu firma osiąga zyski na wczesnym etapie i może szybko ocenić i dostosować swoją strategię rozwoju produktu w oparciu o opinie uzyskane od użytkowników. Aby umożliwić ciągłe dostarczanie, trzeba testować aplikację stale tak, aby była zawsze w stanie gotowości do wydania. Choć może się to wydawać oczywiste, mądrym sposobem na osiągnięcie tego celu jest zautomatyzowanie i zintegrowanie kontroli jakości z potokami ciągłej integracji (CI) i ciągłego wdrażania (CD) i częste ich przeprowadzanie w celu ułatwienia procesu testowania. Umiejętność ciągłego testowania polega na określeniu typów testów automatycznych, które powinny być uruchamiane na każdym etapie cyklu dostarczania tak, aby zespół mógł uzyskać szybsze informacje zwrotne i skutecznie zintegrować je z potokami CI/CD.

 

Testowanie danych

 

Być może słyszałeś powiedzenia „dane to pieniądze” i „dane to nowa ropa naftowa”. Podkreślają one, jak ważne jest dziś testowanie integralności danych. Gdy dane użytkowników zostaną utracone lub aplikacja wyświetli użytkownikom nieprawidłowe dane, tracą oni do niej zaufanie. Umiejętność testowania danych wymaga wiedzy na temat różnych rodzajów systemów magazynowania danych oraz ich przetwarzania, zwykle stosowanych w aplikacjach webowych i mobilnych (bazy danych, pamięci podręczne, strumienie zdarzeń itp.), a także umiejętności opracowywania odpowiednich przypadków testowych.

 

Testowanie wizualne

 

Wygląd i działanie aplikacji są głównym czynnikiem wpływającym na wartość marki firmy, zwłaszcza jeśli chodzi o duże produkty typu business-to-customer (B2C) używane przez miliony osób. Niska jakość wizualna może natychmiast wpłynąć na wartość marki. Dlatego ważne jest, aby uzyskać pewność, że docelowi użytkownicy otrzymują harmonijne i przyjemne wrażenia wizualne. Tę pewność można zdobyć dzięki testom wizualnej warstwy aplikacji. Testowanie wizualne wymaga zrozumienia sposobu, w jaki współdziałają ze sobą komponenty interfejsu użytkownika, a w przypadku aplikacji webowych także z przeglądarką internetową. Takie testy również można zautomatyzować. Służą do tego inne narzędzia niż te używane do przeprowadzania automatycznych testów funkcjonalnych.

 

Testowanie zabezpieczeń

 

W dzisiejszym świecie naruszenia bezpieczeństwa stały się powszechne. Z ataków na zabezpieczenia nie są wykluczeni nawet tacy giganci, jak Facebook czy Twitter. Kwestie bezpieczeństwa wiążą się z dużymi kosztami zarówno dla docelowych użytkowników, jak i firmy, wynikającymi z utraty lub ujawnienia poufnych informacji, sankcji prawnych czy reputacji marki. Do tej pory testy bezpieczeństwa były postrzegane jako niszowa umiejętność w branży, a wykwalifikowani testerzy penetracyjni, aby szukać problemów z zabezpieczeniami, zazwyczaj angażowali się w proces testowania dopiero pod koniec cyklu rozwoju. Jednak w związku z brakiem profesjonalistów zajmujących się testowaniem zabezpieczeń oraz rosnącą częstością naruszeń bezpieczeństwa zaleca się zespołom programistycznym włączenie podstawowych testów zabezpieczeń do codziennej pracy.

 

Testowanie wydajności

 

Nawet niewielki spadek wydajności aplikacji może prowadzić do ogromnych strat finansowych i wizerunkowych dla firmy. Umiejętność testowania wydajności obejmuje pomiar zbioru kluczowych wskaźników wydajności w różnych warstwach aplikacji. Testy wydajności również można zautomatyzować i zintegrować z potokami ciągłej integracji, co pozwala uzyskiwać ciągłe informacje zwrotne.

 

Testowanie dostępności

 

Aplikacje webowe i mobilne stały się dziś towarem codziennej potrzeby. Udostępnianie ich osobom z trwałymi lub czasowymi niepełnosprawnościami jest nie tylko nakazane w wielu krajach przez przepisy prawne, ale także słuszne etycznie. Aby zdobyć umiejętność testowania dostępności, trzeba najpierw zrozumieć standardy dostępności wymagane przez prawo. Następnie, aby sprawdzić, czy te standardy są spełnione, można skorzystać zarówno z ręcznych, jak i automatycznych narzędzi audytu dostępności.

 

Testowanie wymagań obejmujących wiele funkcjonalności

 

Wcześniej pisałam, że oprócz zapotrzebowania na funkcjonalności wolne od błędów docelowi użytkownicy i firmy mają długą listę wymagań jakościowych, takich jak dostępność, skalowalność, łatwość utrzymania, obserwowalność i tak dalej. Są to tzw. wymagania CFR (ang. cross-functional requirements — dosłownie: wymagania obejmujące wiele funkcjonalności). Chociaż wymagania funkcjonalne zazwyczaj przyciągają najwięcej uwagi, to wymagania CFR wprowadzają do aplikacji jakość, a rezygnacja z ich testowania doprowadzi do niezadowolenia wśród zespołów biznesowych lub programistycznych, docelowych użytkowników lub obu tych grup.

 

Testowanie mobilne

 

Sama liczba aplikacji dostępnych w 2021 roku w wiodących sklepach z aplikacjami (Google Play i Apple App Store) może być zaskoczeniem — w sumie było ich 5,7 miliona (https://oreil.ly/L47MG). Eksplozja liczby aplikacji mobilnych wynika głównie ze zwiększonego wykorzystania urządzeń mobilnych. Firma Global Stats zajmująca się analityką internetową ogłosiła w 2016 r., że zgodnie z ich danymi z internetu częściej korzysta się na urządzeniach mobilnych i tabletach niż na komputerach stacjonarnych (https://oreil.ly/mL3YF). Z tego względu umiejętność testowania aplikacji mobilnych i zgodności stron internetowych z urządzeniami mobilnymi ma dziś kluczowe znaczenie.

 

Chociaż do testowania aplikacji mobilnych wymagane są wszystkie wymienione wcześniej umiejętności, testowanie mobilne wymaga zmiany sposobu myślenia. Ponadto aby przeprowadzić różne kontrole jakości aplikacji mobilnych, trzeba nauczyć się całego zestawu specyficznych narzędzi do testowania aplikacji na urządzeniach mobilnych.

 

Wymienione 10 umiejętności testowania full stack łącznie pozwoli Ci przetestować pełny zakres holistycznych aspektów jakości aplikacji webowych i mobilnych. Jak wspomniałam wcześniej, pewien stopień kompetencji w każdej z tych umiejętności powinny zdobyć osoby pełniące w zespole każdą z ról.

 

*Fragment pochodzi z książki "Testowanie full stack. Praktyczny przewodnik dostarczania oprogramowania wysokiej jakości", która pokaże Ci, jak zdobyć te umiejętności, wraz z praktycznymi przykładami.

Okładka - Testowanie full stack. Praktyczny przewodnik dostarczania oprogramowania wysokiej jakości - Gayathri Mohan

(druk)

53.40 zł 89.00 zł (-40%)

(53,40 zł najniższa cena z 30 dni)