Testowanie aplikacji mobilnych [Część 2]

Sty 17, 2021

W poprzednim materiale szczegółowo przedstawiłem aplikacje mobilne, ich typy, wady oraz zalety. Powiedziałem również nieco o testowaniu aplikacji mobilnych na urządzeniach rzeczywistych, emulatorach oraz w chmurze. Dzisiaj chciałbym skupić się stricte na etapach testów, jakim możemy poddać aplikację mobilną.

Testy manualne i automatyczne

Jak w przypadku każdego rodzaju aplikacji, tak również aplikacje mobilne możemy zarówno testować manualnie, jak i automatycznie z wykorzystaniem dedykowanych narzędzi i rozwiązań.

Decyzja czy należy testować manualnie, czy automatycznie powinna być podejmowana na podstawie dogłębnych analiz i przemyśleń. Zarówno testy ręczne, jak i automatyczne mają swoje lepsze i słabsze strony. Moim zdaniem optymalnym wyborem jest umiejętne połączenie tych dwóch typów testów.

Główne zalety ręcznego testowania aplikacji mobilnych:

  • Bardziej opłacalne w krótszej perspektywie czasowej
  • Niższy próg wejścia w testy manualne niż w testy automatyczne
  • Testowanie ręczne jest bardziej elastyczne
  • Lepsza symulacja działań użytkownika

Główne wady ręcznego testowania aplikacji mobilnych:

  • Manualne przypadki testowe nie są reużywalne
  • Mało efektywne wykonywanie powtarzalnych zadań
  • Testowanie manualne jest wolne
  • Niektórych przypadków testowych nie można wykonać ręcznie (testowanie wydajności)

Główne zalety testów automatyzacji aplikacji:

  • Testy są szybkie
  • W dłuższej perspektywie czasowej są bardzo opłacalne (jeśli są odpowiednio wykorzystywane)
  • Możliwa duża reużywalność
  • Jedyna opcja w przypadku np. testów wydajnościowych
  • Wyniki testów można łatwo udostępniać

Główne wady testowania automatyzacji aplikacji:

  • Zautomatyzowane narzędzia do testów mobilnych mają pewne ograniczenia
  • Czasochłonny proces
  • Wysoki próg wejścia w automatyzację testów
  • Często niezbędne są spore zmiany w podejściu całej organizacji

Najważniejsze etapy testowania aplikacji mobilnych

  1. Testowanie dokumentacji

Testowanie dokumentacji jest pierwszym, startowym etapem testowania aplikacji mobilnych. Ten etap poprzedza wszystkie inne właściwe etapy testowania aplikacji. Jest to etap, który znajduje się nawet przed etapami tworzenia aplikacji przez developerów. Testom, przeglądom, weryfikacją podlegają takie artefakty testowe jak: specyfikacja, plan testów, scenariusze testowe, przypadki testowe. Dokumenty sprawdzane są pod kątem poprawności, spójności, kompletności, logiki i szacowania.

2. Testy funkcjonalne

Testy funkcjonalne mają na celu weryfikację, czy aplikacji działa zgodnie z przyjętymi wymaganiami. Testowanie funkcjonalnie koncentruje się na weryfikacji tego, co robi program, na jego funkcjach, które ma za zadanie realizować.

Możemy w dużym uproszczeniu przyjąć trzy główne weryfikacje, jakie należy przeprowadzić w ramach testów funkcjonalnych na aplikacji mobilnej:

Instalowanie i uruchamianie aplikacji

Weryfikacja czy aplikacje można bez przeszkód pobrać na urządzenie, zainstalować oraz uruchomić na różnych konfiguracjach urządzeń mobilnych. Warto w tym miejscu również sprawdzić, czy aplikacja jest poprawnie opisana, czy dostępna jest instrukcja obsługi, instalacji, wymagań sprzętowych.

Testowanie pól i przycisków

Weryfikacja czy pola i przyciski działają poprawnie. Chodzi o to, by sprawdzić ich podstawowe funkcje, a więc klikanie, wpisywanie tekstu.

Testowanie funkcji biznesowych

Weryfikacja głównych, podstawowych funkcji biznesowych, takich  jak: wyszukanie produktu, dodanie do koszyka, zamówienie, kanały płatności.

Testowanie przerw w dostępie do aplikacji

Przerwy działania aplikacji mogą wynikać z wielu sytuacji, które mogą zaistnieć na urządzeniu mobilnym:

  • Połączenia przychodzące i wychodzące
  • Wiadomości przychodzące i wychodzące
  • Utrata dostępu do sieci
  • Ładowanie urządzenia

Testowanie aktualizacji

Weryfikacje czy aktualizacje instalują się poprawnie, działają i są kompatybilne z różnymi wersjami systemów operacyjnych.

Testowanie zasobów urządzenia

Weryfikacje pod kątem zasobów urządzenia, np.:

  • Brak miejsca na instalację
  • Wycieki pamięci
  • Ewentualne kolidacje z innymi zainstalowanymi aplikacjami
  • Brak niektórych standardowych funkcji jak np. brak przedniej kamery

3. Testowanie użyteczności

Weryfikacja użyteczności aplikacji pod kątem wygody użytkowania przez użytkownika końcowego. Badane są tutaj przede wszystkim takie cechy aplikacji jak: intuicyjność korzystania, zadowolenie użytkownika, wydajność, skuteczność działania aplikacji.

  • Weryfikacje, jakie na tym etapie testów są przeprowadzane w kontekście testów użyteczności to np.:
  • Weryfikacja czy zastosowane w aplikacji czcionki są wyraziste, czytelne, o odpowiednim rozmiarze
  • Weryfikacja nawigacji po aplikacji, czy jest intuicyjna, łatwo dostępna
  • Weryfikacja szybkości reakcji na działania użytkownika, czy jest wystarczająco szybka, czy spełnia oczekiwania użytkownika

4. Testowanie interfejsu użytkownika

Weryfikacja interfejsu graficznego użytkownika (GUI), pod kątem tego, że spełnia wymagania końcowego użytkownika.

Przykłady testów:

  • Weryfikacja GUI na różnych rozdzielczościach i wielkościach ekranu
  • Weryfikacja responsywności aplikacji
  • Weryfikacja orientacji poziomej i pionowej

5. Testowanie zgodności (konfiguracji)

Weryfikacja pod kątem poprawnego działania aplikacji na różnych urządzeniach, biorąc po uwagę różne konfiguracje sprzętowe, rozdzielczość ekranu, wersje systemu, konfigurację sieci, czy bazy danych itp.

6. Testowanie wydajności

Weryfikacje pod kątem poprawnego działania aplikacji w różnym stopniu obciążenia oraz wykorzystania zasobów sprzętowych. Wyróżniamy tutaj różne typy testów:

Testy wydajnościowe, obciążeniowe, przeciążeniowe, testy stabilności, testowanie współbieżności.

7. Testy bezpieczeństwa

Weryfikacja aplikacji pod kątem jej bezpieczeństwa. Weryfikacja potencjalnych ryzyk, luk, które mogą wpłynąć na nieuprawiony dostęp do aplikacji osób trzecich, czy też ataków celowych, np. wykonanych przez hakerów.

Przykłady testów, które możemy wykonać na tym etapie w ramach testów bezpieczeństwa:

  • Weryfikacja czy hasła, loginy, dane wrażliwe np. numery kart kredytowych są poprawnie chronione, szyfrowane przed dostępem osób nieuprawnionych.
  • Weryfikacja czy komunikacja krytyczna odbywa się poprzez chronione, zaszyfrowane protokoły komunikacyjne
  • Weryfikacja uprawnień i ról użytkownika
  • Weryfikacja bezpiecznego przechowywania informacji
  • Weryfikacja mechanizmów zapobiegających atakom np. SQL injection czy DoS

8. Test regeneracji

Weryfikacja czy aplikacja jest w stanie przywrócić swoje prawidłowe działanie, po niepożądanych przerwach, awariach czy braku dostępności zasobów sprzętowych.

9. Testowanie lokalizacji

Weryfikacja adaptacji aplikacji pod kontem określone grupy docelowej

Przykłady weryfikacji:

  • Weryfikacja różnych języków dostępnych z poziomu aplikacji
  • Weryfikacja tłumaczeń na inne dostępne języki
  • Weryfikacja formatu czasu i daty

Pozostałe:

Selenium WebDriver VS Cypress

Z pewnością Cypress miał mocne wejście w świat automatyzacji testów. Jednak od jego debiutu minęło już sporo czasu. Zamiast rozpychać się na rynku - Cypress widocznie mocno spuścił z tonu.Nie oznacza to jednak, że przestał się rozwijać, gdyż cały...

WOŚP 2021 – Twoje udostępnienie to nasza wpłata!

Od laika do Automatyka - największy w Polsce kurs online o automatyzacji testów, szkolenia, konsulting, doradztwo, usługi audytowe i wdrożeniowe. Dołącz do akcji wsparcia WOŚP Zapraszamy Cię do dołączenia do akcji wspierającej Wielką Orkiestrę Świątecznej Pomocy- 29...

Testowanie aplikacji mobilnych [Cześć 1]

O tym, jak ważną rolę odrywania testowanie w całym procesie wytwórczym, nie trzeba już dzisiaj nikogo przekonywać. Ostatnio bardzo dotkliwie brak odpowiedniej jakości testów doświadczyli twórcy gry „CyberPunk 2077”. Długo wyczekiwana światowa premiera gry nie wypadła...

Testowanie manualne vs testowanie automatyczne

Aby jasno i konkretnie opisać korelacje oraz różnice miedzy testami manualnymi a testami automatycznymi, musimy przypomnieć sobie czym konkretnie są te dwie czynności. Testowanie manualne (inaczej ręczne) jest formą testowania oprogramowania, w której testy są...