Wyjątkowa okazja na szkolenie ISTQB online - teraz tylko 999 zł netto! (najtaniej na rynku - szkolenie dofinansowane!). Zapraszamy również na 2 dniowe szkolenie API teraz tylko 459 zł!

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

0 komentarzy

Wyślij komentarz

Twój adres e-mail nie zostanie opublikowany.

Pozostałe:

Dobry tester oprogramowania, czyli kto?

Tester oprogramowania to osoba odpowiedzialna za weryfikowanie jakości tworzonej aplikacji - pod kątem poprawności działania, ale także spełniania przyjętych na początku projektu założeń. Odpowiada za poszukiwanie luk, sprawiających, że oprogramowanie nie spełnia...

Testowanie regresywne

Każde oprogramowanie jest co jakiś czas odświeżane, rozszerzane i zmieniane. Zmiany w kodzie mogą dotyczyć wielu aspektów, m. in.: dodawania, usuwania lub modyfikowania funkcji, adaptacji oprogramowania do nowych warunków, systemów czy umożliwienia wykorzystania...

Siedem zasad testowania oprogramowania

Testowanie oprogramowania jest nieodłączną częścią procesu tworzenia oprogramowania: pozwala znaleźć błędy, luki i defekty w produkcie, zbadać jakość i wydajność oprogramowania, a także ocenić, na ile testowany system jest zgodny z zadaną specyfikacją oraz wymaganiami...

Testowanie API – wprowadzenie

Aplikacje, systemy, elementy oprogramowania potrzebują się ze sobą komunikować. Dokładnie tak jak ludzie. Komunikujemy się, aby realizować pewne rzeczy lub wymieniać się informacjami. W tym celu wykorzystujemy różne sposoby komunikacji takiej jak: gesty, słowa, pismo,...

Asercje w Selenium

    W załączonych fragmentach kodu z poprzednich lekcji, na pewno zauważyłeś instrukcje o nazwie Assert. Właśnie o szeroko pojętych asercjach będzie traktowała dzisiejsza lekcja. Rozłożymy sobie Asercje na czynniki pierwsze. Omówimy przykłady...