Testowanie aplikacji mobilnych [Część 2]

styczeń 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:

Typy testów

Testowanie oprogramowania to bardzo rozległy obszar branży IT. Testować aplikacje możemy na wiele sposobów, a same testy mogą mieć różne cele. I to właśnie wspomniane cele testowania, definiują typy testów, jakimi możemy poddać oprogramowanie. Jeśli celem testów jest...

Agile i SCRUM, czyli co?

Agile to ostatnimi czasy bardzo popularny termin. Jest odmieniamy przez wszystkie przypadki. Obecnie zdecydowana większość zespołów developerskich korzysta z Agile w swojej codziennej pracy. O „Agile” i „Zwinnym” podejściu do prowadzenia projektów słyszeli już chyba...

Raport z testów – must have!

Dzisiaj napiszę kilka słów o niezbędnym elemencie w każdym procesie testowym - mowa oczywiście o tytułowym – Raporcie z Testów. Na początek, krótka regułka określająca, czym tak naprawdę jest Raport z Testów: O jakich czynnościach testowych traktuje powyższa...

Testy wydajnościowe

W tym materiale chciałbym przybliżyć Wam tematykę testów wydajnościowych. Testy wydajnościowe te są dość specyficznym, ale jednocześnie popularnym i bardzo ważnym rodzajem testów w przekroju całego procesu testowego niemal każdego oprogramowania. Testowanie wydajności...

Testy End to End

W tym materiale postaram się przybliżyć Wam szczególny rodzaj testów, jakim niewątpliwie są testy End To End. Zapewne, jeśli jesteście testerami, czy tez osobami należącymi do zespołów zapewniania jakości, to nieraz słyszeliście termin „End-to-End”, czy...