Samouczek dotyczący testowania aplikacji na iOS: instrukcja & Automatyzacja

Spisie treści:

Anonim

Co to jest testowanie aplikacji na iOS?

Testowanie aplikacji iOS to proces testowy, w którym aplikacja iOS jest testowana na prawdziwych urządzeniach Apple w celu sprawdzenia, czy działa zgodnie z oczekiwaniami, czy nie w przypadku określonych działań użytkownika, takich jak czas instalacji, interfejs użytkownika, wrażenia użytkownika, wygląd, zachowanie, funkcjonalność, czas ładowania, wydajność, lista App Store, obsługa wersji systemu operacyjnego itp.

Dlaczego testowanie aplikacji na iOS?

Testowanie aplikacji na iOS jest wymagane, ponieważ iOS jest platformą Apple dla aplikacji mobilnych, która została wydana 29 czerwca 2007. W przeciwieństwie do Androida, Apple nie licencjonuje iOS do instalacji na sprzęcie innym niż Apple. Aplikacje iOS i iOS można instalować tylko na urządzeniach Apple, dlatego aplikacja iOS musi być kompatybilna z wersjami iOS i urządzeniami iOS.

To częste pytanie, gdy programista tworzy aplikację na iOS.

Nie ma znaczenia, ile czasu poświęcisz na projektowanie i wdrażanie, błędy są nieuniknione i pojawią się błędy. W aplikacji na iOS jest kilka typowych błędów. Jak pokazano na poniższym rysunku.

  1. Awaria aplikacji

Jednym z najbardziej frustrujących problemów podczas korzystania z urządzeń Apple jest częsta awaria aplikacji podczas wykonywania. Wiele razy aplikacja ulega awarii z powodu błędów lub wycieków pamięci w aplikacjach.

  1. Niezgodności aplikacji

Twoja aplikacja na iOS może działać doskonale na aktualnej wersji iOS, ale jeśli iOS zostanie zaktualizowany, może nie działać z powodu problemów z niekompatybilnością.

  1. Luka w zabezpieczeniach

Luka w zabezpieczeniach systemu iOS umożliwia hakerowi atakowanie urządzeń z systemem iOS i kradzież prywatnych informacji. Do tej pory poważne luki w zabezpieczeniach iPhone'a są wykrywane w różnych wersjach iOS.

  1. Wycieki pamięci

Wycieki pamięci to bloki przydzielonej pamięci, których program już nie używa. Wycieki pamięci powodują awarię aplikacji na iOS. Są to błędy i zawsze należy je naprawić.

W tym samouczku nauczysz się:

  • Dlaczego testy na iOS?
  • Testy na iOS MindMap
  • Lista kontrolna testowania iOS
  • Strategia testowania iOS
  • Testowanie automatyczne
    • Testowanie jednostkowe za pomocą OCUnit
    • Testowanie interfejsu użytkownika za pomocą UIAutomation
  • Testowanie ręczne
    • Testowanie eksploracyjne
    • Testowanie użytkowników
      • Testowanie koncepcji
      • Test użyteczności
      • Testowanie beta
      • Testy A / B
  • Testowanie iOS Najlepsza praktyka
  • MITY O testowaniu iOS

Testy na iOS MindMap

Jak pokazano na powyższym rysunku, testowanie iOS MindMap pokazuje wszystkie elementy, które tester powinien wziąć pod uwagę podczas przeprowadzania testów na iOS.

Lista kontrolna testowania aplikacji na iOS

Ta lista kontrolna została specjalnie zaprojektowana do testowania charakterystyk aplikacji mobilnych iOS. Oczywiście testuje tylko ogólne cechy aplikacji, a nie jej funkcjonalność.

  • Sprawdź czas instalacji aplikacji na urządzeniu. Upewnij się, że aplikacja została zainstalowana w akceptowalnym czasie.
  • Po zainstalowaniu aplikacji sprawdź, czy aplikacja ma ikonę i nazwę aplikacji. Upewnij się również, że zarówno ikona, jak i nazwa nie wymagają objaśnień, odzwierciedlając główny cel aplikacji.
  • Uruchom aplikację i sprawdź, czy jest wyświetlany ekran powitalny.
  • Sprawdź limit czasu ekranu powitalnego i czas ładowania ekranu głównego. Ekran główny aplikacji powinien załadować się w akceptowalnym czasie. Jeśli załadowanie ekranu głównego zajmuje tylko więcej czasu, użytkownik ma większą szansę na zamknięcie lub nawet odinstalowanie samej aplikacji. Sprawdź także, jak zawartość jest ładowana na ekranie głównym.
  • Główna funkcja aplikacji powinna być widoczna natychmiast. Powinien mówić sam za siebie.
  • Sprawdź, czy aplikacja obsługuje orientację poziomą i pionową. Jeśli tak, sprawdź aplikację w obu orientacjach. Interfejs użytkownika aplikacji powinien zostać odpowiednio ustawiony.
  • Bez połączenia z Internetem uruchom aplikację. Upewnij się, że aplikacja zachowuje się zgodnie z założeniami / oczekiwaniami. Istnieje prawdopodobieństwo, że aplikacja ulegnie awarii podczas jej uruchamiania lub po prostu wyświetli pusty ekran.
  • Jeśli aplikacja korzysta z usług lokalizacyjnych, sprawdź, czy alert o zezwoleniu na lokalizację jest wyświetlany, czy nie. Ten alert powinien być wyświetlany użytkownikowi tylko raz.
  • Jeśli aplikacja wysyła powiadomienia push, sprawdź, czy alert o zezwoleniu na powiadomienia push jest wyświetlany, czy nie. Ten alert powinien być również wyświetlany użytkownikowi tylko raz.
  • Uruchom aplikację, zamknij ją i uruchom ponownie. Sprawdź, czy aplikacja zachowuje się zgodnie z założeniami / oczekiwaniami
  • Zamknij aplikację, dotykając przycisku Home na urządzeniu i ponownie otwórz aplikację. Sprawdź, czy aplikacja działa zgodnie z założeniami / oczekiwaniami.
  • Po zainstalowaniu sprawdź, czy aplikacja jest wymieniona w aplikacji ustawień iPhone'a.
  • Po uruchomieniu aplikacji sprawdź, czy można ją znaleźć w „App Store”. Dostępna będzie obsługiwana wersja systemu operacyjnego dla aplikacji. Dlatego upewnij się, że aplikację można znaleźć w „App Store” urządzenia z obsługiwaną wersją systemu operacyjnego. Ponadto aplikacja nie powinna znajdować się na liście w „App Store” urządzenia z nieobsługiwaną wersją systemu operacyjnego.
  • Sprawdź, czy aplikacja przechodzi w tryb uśpienia, gdy działa w tle, aby zapobiec rozładowaniu baterii.
  • Jeśli działanie aplikacji jest powolne lub za każdym razem, gdy ładuje się zawartość, sprawdź, czy jest tam ikona stanu postępu („Ładowanie…”), najlepiej z określonym komunikatem.
  • Wyszukaj aplikację podając jej nazwę w pasku wyszukiwania urządzenia. Sprawdź, czy aplikacja jest na liście
  • Sprawdź, czy wygląd przycisków wykonujących standardowe czynności nie jest zmieniany w aplikacji (na przykład: odświeżanie, porządkowanie, kosz, Odpowiedz, Wstecz itp.)
  • Sprawdź, czy standardowe przyciski nie są używane do innych funkcji niż te, do których są zwykle używane

Strategia testowania iOS

Poniższy rysunek przedstawia niektóre popularne typy strategii testowania iOS.

Testowanie automatyczne

Testowanie automatyczne to największe zalety testów iOS. Umożliwia szybkie wykrycie błędu i problemów z wydajnością. Zalety testów automatycznych, jak pokazano poniżej:

  • Testowanie automatyczne może działać na wielu urządzeniach, oszczędzając czas
  • Testowanie automatyczne może być ukierunkowane na zestawy SDK. Możesz uruchomić test na różnych wersjach SDK
  • Testowanie automatyczne zwiększa produktywność testowania, oszczędza koszty tworzenia oprogramowania
  • Istnieje wiele platform testowych typu open source, które obsługują testy automatyczne w systemie iOS

Testowanie jednostkowe za pomocą OCUnit

Po wydaniu oryginalnego zestawu SDK systemu iOS brakowało mu możliwości testowania jednostkowego. Dlatego Apple przywrócił rozwiązanie do testów jednostkowych OCUnit w iOS SDK w wersji 2.2.

OCUnit to platforma testowa dla C-Objective w systemie Mac OS. Największymi zaletami frameworka OCUnit jest ścisła integracja ze środowiskiem programistycznym XCode, jak pokazano poniżej.

Poniższy rysunek przedstawia niektóre zalety OCUnit.

Testowanie interfejsu użytkownika za pomocą UIAutomation

UI Automation to biblioteka JavaScript dostarczona przez firmę Apple Inc, której można użyć do wykonania automatycznego testu na rzeczywistych urządzeniach i na symulatorze iOS. Ta struktura jest dodawana do iOS SDK4.0. Za pomocą UI Automation możesz zautomatyzować testowanie aplikacji nie tylko na symulatorze, ale także na rzeczywistym urządzeniu.

UIAutomation zapewnia następujące korzyści:

  • Zmniejsz wysiłek związany z testowaniem ręcznym
  • Używaj mniej pamięci do wykonywania wszystkich testów
  • Uprość procedurę testowania interfejsu użytkownika (wystarczy nacisnąć jeden lub trzy przyciski i uruchomić pełne zestawy testów)

Instrument UIAutomation działa ze skryptów, które są napisane w JavaScript. Symuluje zdarzenia użytkownika w docelowej aplikacji iOS.

UIAutomation Wady kontra zalety

Plusy Cons
1. Dobre wsparcie dla gestów i rotacji To nie jest oprogramowanie typu open source, mniej wsparcia ze strony programisty
2. Potrafi uruchamiać testy UIAutomation na urządzeniu, nie jedynym symulatorze. Nie można bardzo dobrze zintegrować z innymi narzędziami
3. Opracowany przez JavaScript, jest popularnym językiem programowania.

Powyższy rysunek przedstawia niektóre typowe klasy we frameworku UIAutomation.

  • UIAElement klasa jest super klasa dla wszystkich elementów interfejsu użytkownika w kontekście Automation
  • UIATarget klasy przedstawia elementy interfejsu użytkownika wysokiego poziomu systemu badanego
  • UIALogger klasa udostępnia testową i informacje o błędzie pobierania funkcjonalności
  • UIAActivityView klasa umożliwia dostęp i kontrolę, widoki na działalność w swojej aplikacji.
  • UIAActionSheet klasa umożliwia dostęp i kontrolę, arkusze działania w ramach aplikacji.
  • Akcja zdarzenia użytkownika
    • Klasa UISlider
    • Klasa UIAButton
    • Klasa UIAKey
    • Klasa UIAKeyboard

Inne zautomatyzowane platformy testowe

  • MonkeyTalk: narzędzie do automatycznego testowania aplikacji iOS, Android, HTML5 i Adobe. Jest to zintegrowane środowisko do zarządzania i uruchamiania zestawów testów
  • Frank: Framework zautomatyzowanego testu akceptacji dla iPhone'a i iPada
  • KIF: to platforma testów integracji systemu iOS . Pozwala na łatwą automatyzację aplikacji na iOS, wykorzystując atrybuty dostępności, które system operacyjny udostępnia osobom z niepełnosprawnością wzroku.

Testowanie ręczne

Testowanie eksploracyjne

Jest to testowanie bez formalnego planu testów. Testowanie eksploracyjne to tania metoda testowania, ale może przeoczyć potencjalne błędy w aplikacji iOS.

Testowanie eksploracyjne Wady kontra zalety

Plusy Cons
1. Potrzeba mniej przygotowań, wczesne wykrywanie poważnych błędów. Wymaga wysokich umiejętności testera
2. Nie potrzebujesz planu testów, aby przyspieszyć wykrywanie błędów. Pokrycie testu jest niskie. Nie gwarantuje, że wszystkie Twoje wymagania zostaną przetestowane.
3. Większość błędów jest wykrywana wcześnie podczas testów eksploracyjnych Brak dokumentacji testowej

Testowanie użytkowników

Testy użytkowników to rodzaj testów ręcznych w systemie iOS. Celem tych testów jest tworzenie lepszych aplikacji, a nie tylko aplikacji pozbawionych błędów . Poniższy rysunek przedstawia cztery rodzaje testów użytkownika

Testowanie koncepcji

Oceń reakcję użytkownika na pomysł aplikacji przed wypuszczeniem go na rynek. Poniżej opisano procedury testowania koncepcji w systemie iOS

Test użyteczności

Test użyteczności to test łatwości korzystania z aplikacji na iOS. W testach na iOS test użyteczności może być rejestrowany w celu zapamiętania lub udostępnienia innym.

Istnieje kilka narzędzi obsługujących testowanie użyteczności w systemie iOS.

Magitest, prosty test użyteczności iOS dla witryn i aplikacji.

Delight.io, to narzędzie może przechwytywać rzeczywistą interakcję użytkownika w aplikacjach na iOS.

Testowanie beta

Testy beta to testowanie integracji z użyciem rzeczywistych danych w celu uzyskania końcowej opinii użytkowników. Aby rozpowszechniać swoje aplikacje do testów beta, musisz wykonać poniższe czynności.

- Warunek wstępny : jeśli testujesz wersję beta ostatecznego kandydata do wydania, sprawdź poprawność aplikacji przed jej udostępnieniem testerom.

- Znajdź testera za pośrednictwem usługi : zbierasz identyfikatory urządzeń od testerów i dodajesz je do Centrum członkowskiego

- Utwórz dystrybucję ad hoc : dystrybucja ad hoc umożliwia testerowi uruchomienie aplikacji na swoim urządzeniu bez konieczności używania Xcode. Ten krok obejmuje 2 podetapy

  • Utwórz certyfikaty dystrybucyjne
  • Utwórz profile aprowizacji ad hoc

- Poproś o opinię od testera: Tester przeprowadza testy i wysyła do Ciebie raporty o błędach. Po wydaniu aplikacji możesz pobierać raporty z iTunes connect.

Testy A / B

Testy A / B to jeden z najpotężniejszych sposobów oceny skuteczności aplikacji na iOS . Wykorzystuje losowe eksperymenty z dwoma urządzeniami, A i B.

Testy A / B obejmują trzy główne etapy

  • Skonfiguruj test : przygotowano 2 wersje Twojej aplikacji na iOS (A i B) oraz dane testowe
  • Test : testuj jednocześnie 2 wersje aplikacji na iOS na urządzeniach.
  • Analiza : zmierz i wybierz lepszą wersję do wydania

Następujące narzędzia obsługują testy A / B w systemie iOS.

  • Powstają: testy A / B dla iOS i Androida. Można go zintegrować z aplikacją na iOS i przyspieszyć proces testowania.

Najlepsze praktyki dotyczące testów A / B

  • Określ cel swojego testu. Każdy test bez celu jest bezużyteczny.
  • Zobacz, jak użytkownicy końcowi używają Twojej aplikacji po raz pierwszy
  • Uruchom tylko jeden test na aktualizację. Oszczędza Twój czas podczas przeprowadzania testów
  • Uważnie obserwuj swój test. Możesz nauczyć się doświadczeń z testu, monitorując go.

Testowanie iOS Najlepsza praktyka

Oto kilka wskazówek, które powinieneś wiedzieć, organizując testowanie swojej aplikacji na iOS

  1. Przetestuj aplikację na prawdziwym urządzeniu, aby uzyskać rzeczywistą wydajność
  2. Ulepsz swoje metody testowania, ponieważ tradycyjne metody testowania nie wystarczają już do pokrycia wszystkich testów na testach iOS
  3. Używanie dziennika konsoli do testowania aplikacji iOS. Jest to funkcja systemu iOS obejmująca informacje z każdej aplikacji na urządzeniu.
  4. Dokumentuj błędy aplikacji za pomocą wbudowanego krótkiego polecenia na ekranie . Pomaga programistom zrozumieć, w jaki sposób występują błędy.
  5. Zgłaszanie awarii to przydatne narzędzie podczas testowania aplikacji. Mogą wykrywać awarie i rejestrować szczegółowe informacje, dzięki czemu można łatwo zbadać błędy.

MITY O testowaniu iOS

W tej sekcji omówiono kilka popularnych mitów i realiów testowania systemu iOS

Testowanie aplikacji na iOS i Androida to to samo.

iOS i Android to dwie platformy opracowane przez Apple Inc i Google. Są zupełnie inni. Środowiska testowe itp., Frameworki testowe, języki programowania.

Wystarczy przetestować aplikację na iOS Simulator.

Symulator iOS nie jest wystarczająco silny do testowania aplikacji. Ponieważ iOS Simulator ma pewne ograniczenia:

  • Ograniczenia sprzętowe (kamera, wejście mikrofonowe, czujnik)
  • Interfejs użytkownika Twojej aplikacji może wydawać się działać szybciej i płynniej niż na urządzeniu
  • Ograniczenia interfejsu API
  • Niektóre frameworki nie są obsługiwane (Media Player, Store Kit, Message UI…)

Wszyscy będą pobierać moje aplikacje ze sklepu z aplikacjami, ponieważ ma wiele funkcji

Im więcej funkcji ma Twoja aplikacja, tym więcej błędów można uzyskać. Żaden użytkownik nie pobierze Twojej aplikacji, jeśli nadal ma ona wiele wad.