Samouczek testowania aplikacji iOS
โก Inteligentne podsumowanie
Testowanie aplikacji iOS weryfikuje, czy aplikacja instaluje siฤ, dziaลa i zachowuje siฤ poprawnie na urzฤ dzeniach Apple. ลฤ czy techniki rฤczne z automatycznymi frameworkami, takimi jak XCTest i XCUITest, aby wczeลnie wykrywaฤ awarie, niezgodnoลci i wycieki pamiฤci.

Co to jest testowanie aplikacji na iOS?
Testowanie aplikacji na iOS to proces testowania, podczas ktรณrego aplikacja iOS jest testowana na prawdziwych urzฤ dzeniach Apple w celu sprawdzenia, czy dziaลa zgodnie z oczekiwaniami, pod kฤ tem okreลlonych dziaลaล uลผytkownika, takich jak czas instalacji, interfejs uลผytkownika, wraลผenia uลผytkownika, wyglฤ d, zachowanie, funkcjonalnoลฤ, czas ลadowania, wydajnoลฤ, aplikacja Informacje o sklepie, obsลuga wersji systemu operacyjnego itp.
Dlaczego testowanie aplikacji na iOS?
Testowanie aplikacji na iOS jest wymagany, poniewaลผ iOS to platforma Apple dla aplikacji mobilnych, wydana po raz pierwszy 29 czerwca 2007 r. W przeciwieลstwie do AndroidApple nie udziela licencji na system iOS do instalacji na sprzฤcie innych producentรณw. Aplikacje na system iOS i iOS moลผna instalowaฤ tylko na urzฤ dzeniach Apple, dlatego aplikacja na system iOS musi byฤ zgodna z wersjami systemu iOS i urzฤ dzeniami iOS, ktรณre posiadajฤ Twoi uลผytkownicy.
Poniลผszy rysunek przedstawia najczฤstsze pytania, z jakimi mierzฤ siฤ programiลci podczas tworzenia aplikacji na system iOS.
Nie ma znaczenia, ile czasu poลwiฤcisz na projektowanie i wdraลผanie; bลฤdy sฤ nieuniknione i bฤdฤ siฤ pojawiaฤ. Poniลผszy rysunek przedstawia kilka typowych bลฤdรณw w aplikacjach iOS.
Awaria aplikacji
Jednym z najbardziej frustrujฤ cych problemรณw podczas korzystania z urzฤ dzeล Apple jest czฤste zawieszanie siฤ aplikacji podczas dziaลania. Czฤsto przyczynฤ awarii sฤ bลฤdy lub wycieki pamiฤci w kodzie.
Niekompatybilnoลci aplikacji
Twoja aplikacja iOS moลผe dziaลaฤ bez zarzutu w obecnej wersji systemu iOS, ale po uaktualnieniu systemu iOS moลผe przestaฤ dziaลaฤ z powodu problemรณw z kompatybilnoลciฤ .
Luka w zabezpieczeniach
Luka w zabezpieczeniach systemu iOS umoลผliwia hakerom atak na urzฤ dzenia z systemem iOS i kradzieลผ prywatnych danych. Na przestrzeni lat odkryto powaลผne luki w zabezpieczeniach iPhone'a w rรณลผnych wersjach systemu iOS.
Wycieki pamiฤci
Wycieki pamiฤci to bloki przydzielonej pamiฤci, ktรณrych program juลผ nie wykorzystuje. Wycieki pamiฤci powodujฤ
awariฤ aplikacji na iOS.
Sฤ
to bลฤdy i zawsze naleลผy je naprawiฤ.
Testowanie iOS MindMap
Jak pokazano na powyลผszym rysunku, iOS Testy MindMap pokazuje wszystkie elementy, ktรณre tester powinien wziฤ ฤ pod uwagฤ podczas przeprowadzania testรณw na systemie iOS.
Lista kontrolna testowania aplikacji na iOS
Ta lista kontrolna zostaลa zaprojektowana specjalnie do testowania wลaลciwoลci aplikacji mobilnych na iOS. Oczywiลcie, testuje ona tylko ogรณlne wลaลciwoลci aplikacji, a nie ich funkcjonalnoลฤ.
- Sprawdลบ czas instalacji aplikacji na urzฤ dzeniu. Upewnij siฤ, ลผe aplikacja zostaลa zainstalowana w akceptowalnym czasie.
- Po zainstalowaniu aplikacji sprawdลบ, czy ma ona ikonฤ i nazwฤ. Upewnij siฤ rรณwnieลผ, ลผe zarรณwno ikona, jak i nazwa sฤ zrozumiaลe i odzwierciedlajฤ gลรณwny cel aplikacji.
- Uruchom aplikacjฤ i sprawdลบ, czy wyลwietla siฤ ekran powitalny.
- Sprawdลบ limit czasu wyลwietlania ekranu powitalnego i czas ลadowania ekranu gลรณwnego. Ekran gลรณwny aplikacji powinien ลadowaฤ siฤ w akceptowalnym czasie. Jeลli ลadowanie ekranu gลรณwnego trwa zbyt dลugo, istnieje wiฤksze prawdopodobieลstwo, ลผe uลผytkownik zamknie aplikacjฤ, a nawet jฤ odinstaluje. Sprawdลบ rรณwnieลผ, jak ลaduje siฤ zawartoลฤ ekranu gลรณwnego.
- Gลรณwna funkcja aplikacji powinna byฤ widoczna od razu. To powinno mรณwiฤ samo za siebie.
- Sprawdลบ, czy aplikacja obsลuguje zarรณwno orientacjฤ poziomฤ , jak i pionowฤ . Jeลli tak, sprawdลบ aplikacjฤ w obu orientacjach. Interfejs uลผytkownika aplikacji powinien siฤ odpowiednio dostosowaฤ.
- Uruchom aplikacjฤ bez poลฤ czenia z internetem. Upewnij siฤ, ลผe dziaลa ona zgodnie z przeznaczeniem. Istnieje ryzyko, ลผe aplikacja ulegnie awarii podczas uruchamiania lub po prostu wyลwietli pusty ekran.
- Jeลli aplikacja korzysta z usลug lokalizacyjnych, sprawdลบ, czy wyลwietla siฤ alert dotyczฤ cy uprawnieล do lokalizacji. Ten alert powinien zostaฤ wyลwietlony uลผytkownikowi tylko raz.
- Jeลli aplikacja wysyลa powiadomienia push, sprawdลบ, czy wyลwietla siฤ alert o zezwoleniu na powiadomienia push. Ten alert powinien rรณwnieลผ zostaฤ wyลwietlony uลผytkownikowi tylko raz.
- Uruchom aplikacjฤ, zamknij jฤ i uruchom ponownie. Sprawdลบ, czy aplikacja zachowuje siฤ zgodnie z przeznaczeniem/poลผฤ danym dziaลaniem.
- Zamknij aplikacjฤ, dotykajฤ cping Naciลnij przycisk Home na urzฤ dzeniu i ponownie otwรณrz aplikacjฤ. Sprawdลบ, czy aplikacja dziaลa zgodnie z przeznaczeniem.
- Po zainstalowaniu sprawdลบ, czy aplikacja jest widoczna w ustawieniach iPhone'a.
- Po uruchomieniu aplikacji sprawdลบ, czy jest ona dostฤpna w App Store. Aplikacja bฤdzie obsลugiwana przez odpowiednie wersje systemรณw operacyjnych. Upewnij siฤ wiฤc, ลผe aplikacja jest dostฤpna w App Store na urzฤ dzeniach z obsลugiwanymi wersjami systemรณw operacyjnych. Aplikacja nie powinna byฤ rรณwnieลผ dostฤpna w App Store na urzฤ dzeniach z nieobsลugiwanymi wersjami systemรณw operacyjnych.
- 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 gdy ลaduje siฤ zawartoลฤ, sprawdลบ, czy widoczna jest ikona stanu postฤpu (โลadowanieโฆโ), najlepiej z okreลlonym komunikatem.
- Wyszukaj aplikacjฤ po jej nazwie w pasku wyszukiwania urzฤ dzenia. Sprawdลบ, czy aplikacja jest na liลcie.
- Sprawdลบ, czy wyglฤ d przyciskรณw wykonujฤ cych standardowe akcje nie ulegล zmianie w aplikacji (na przykลad: odลwieลผ, organizuj, kosz, Odpowiedz, Wstecz itp.)
- Sprawdลบ, czy standardowe przyciski nie sฤ uลผywane do innych funkcji niลผ te, do ktรณrych sฤ normalnie uลผywane.
Strategia testowania iOS
Gdy juลผ wiesz, co sprawdziฤ, kolejnym krokiem jest sposรณb testowania. Poniลผszy rysunek przedstawia kilka typowych strategii testowania iOS.
Automatyczne testowanie
Testowanie automatyczne to jedna z najwiฤkszych zalet testowania iOS. Pozwala ono na szybkie wykrywanie bลฤdรณw i problemรณw z wydajnoลciฤ . Korzyลci pลynฤ ce z testowania automatycznego przedstawiono poniลผej:
- Zautomatyzowane testy moลผna uruchomiฤ na wielu urzฤ dzeniach, oszczฤdzajฤ c Twรณj czas
- Testowanie automatyczne moลผe dotyczyฤ zestawรณw SDK. Moลผesz uruchamiaฤ testy na rรณลผnych wersjach zestawรณw SDK.
- Automatyczne testowanie zwiฤksza produktywnoลฤ testowania i pozwala zaoszczฤdziฤ na kosztach rozwoju oprogramowania
- Istnieje wiele otwartych frameworkรณw testowych, ktรณre obsลugujฤ automatyczne testowanie w systemie iOS
Testy jednostkowe za pomocฤ OCUnit
Kiedy wydano oryginalny zestaw SDK dla systemu iOS, brakowaลo go Testรณw jednostkowych moลผliwoลci. Dlatego Apple wprowadziลo OCUnit rozwiฤ zanie testu jednostkowego w wersji 2.2 iOS SDK.
OCUnit byล ลrodowiskiem testowym dla Objective-C na komputerach Mac (obecnie macOS). Najwiฤkszฤ zaletฤ frameworka OCUnit byลa jego ลcisลa integracja z Xcode ลrodowisko programistyczne, jak pokazano poniลผej.
Uwaga: OCUnit (SenTestingKit) jest przestarzaลy; poniewaลผ Xcode 5. Apple'a XCTest framework zastฤ piล go jako standard โ zobacz sekcjฤ XCTest poniลผej. Zrzuty ekranu przedstawiajฤ starszฤ wersjฤ Xcode wersja.
Niektรณre korzyลci wynikajฤ ce z zastosowania OCUnit przedstawiono na poniลผszym rysunku.
Testowanie interfejsu uลผytkownika za pomocฤ UIAutomation
Automatyzacja interfejsu uลผytkownika byลa JAVASCRIPT Biblioteka udostฤpniona przez Apple Inc., ktรณra moลผe byฤ uลผywana do przeprowadzania zautomatyzowanych testรณw na rzeczywistych urzฤ dzeniach i w symulatorze iOS. Ta struktura zostaลa dodana w pakiecie iOS SDK 4.0. Dziฤki automatyzacji interfejsu uลผytkownika moลผna zautomatyzowaฤ testowanie aplikacji nie tylko w symulatorze, ale takลผe na rzeczywistym urzฤ dzeniu.
Uwaga: Firma Apple wycofaลa automatyzacjฤ interfejsu uลผytkownika Xcode 8 (2016) i pรณลบniej usuniฤto. Uลผyj XCUITest do nowych projektรณw testowania interfejsu uลผytkownika; poniลผsze klasy i zrzuty ekranu odzwierciedlajฤ starszy zestaw narzฤdzi.
UIAutomation przyniosลo nastฤpujฤ ce korzyลci:
- Zmniejszony wysiลek Testowanie rฤczne
- Wymagane mniej wysiลku do wykonania wszystkich testรณw
- Uproszczono procedurฤ testowania interfejsu uลผytkownika (wystarczy nacisnฤ ฤ kilka przyciskรณw i uruchomiฤ peลne zestawy testรณw)
Narzฤdzie UIAutomation dziaลaลo na podstawie skryptรณw napisanych w JavaSkrypt. Symulowaล zdarzenia uลผytkownika w docelowej aplikacji iOS.
Wady i zalety UIAutomation
| ZALETY | Wady | |
|---|---|---|
| 1. | Dobre wsparcie dla gestรณw i rotacji | To nie jest oprogramowanie typu open source, mniejsze wsparcie ze strony programisty |
| 2. | Moลผliwoลฤ uruchamiania testรณw UIAutomation na urzฤ dzeniu, nie tylko na symulatorze. | Nie moลผna bardzo dobrze zintegrowaฤ siฤ z innymi narzฤdziami |
| 3. | Opracowany w JavaScript, popularny jฤzyk programowania. |
Powyลผszy rysunek przedstawia niektรณre powszechnie uลผywane klasy w ลrodowisku UIAutomation.
- Element UIAElement class jest superklasฤ dla wszystkich elementรณw interfejsu uลผytkownika w kontekลcie Automatyzacji
- UIATarget klasa reprezentuje elementy interfejsu uลผytkownika wysokiego poziomu testowanego systemu
- UIALogger class udostฤpnia informacje o testach i bลฤdach funkcji pobierania
- UIAActivityView class umoลผliwia dostฤp do widokรณw aktywnoลci w aplikacji i kontrolฤ nad nimi.
- Arkusz akcji UIAA class umoลผliwia dostฤp do arkuszy akcji w aplikacji i kontrolฤ nad nimi.
- System Rezerwacji Sal Smart Spacesยฎ rozwiฤ zuje problem zarzฤ dzania rezerwacjami sal, biurek i przestrzeni wspรณlnych. Zmiany w ostatniej chwili sฤ od razu widoczne, co uลatwia pracฤ recepcji i uลผytkownikom. Kalendarz w czasie rzeczywistym pokazuje wolne zasoby, ich parametry, a nawet zaplanowane sprzฤ tanie. Akcja zdarzenia
- Klasa UISlider
- Klasa UIAButton
- Klasa UIKey
- Klasa UIAKeyboard
Inne struktury testรณw automatycznych
- Szczery: Zautomatyzowane Test akceptacyjny framework dla iPhoneโa i iPada (nie jest juลผ aktywnie utrzymywany)
- KIF: to iOS test integracyjny struktura. Umoลผliwia ลatwฤ automatyzacjฤ aplikacji na iOS poprzez wykorzystanie atrybutรณw dostฤpnoลci udostฤpnianych przez system operacyjny osobom z niepeลnosprawnoลciฤ wzroku.
- Appium:popularny kod open source, cross-platform framework automatyzujฤ cy aplikacje iOS za pomocฤ sterownika XCUITest firmy Apple
XCTest i XCUITest: nowoczesne frameworki testowe firmy Apple
OCUnit i UIAutomation to waลผne technologie historyczne, ale obie zostaลy juลผ wycofane. Apple zastฤ piลo OCUnit XCTest in Xcode 5 (2013) i wycofano UIAutomation w Xcode 8 (2016) za XCUITest, komponent testowania interfejsu uลผytkownika w XCTest. Sฤ to struktury testowe dostarczane i obsลugiwane przez Apple w kaลผdej obecnej wersji Xcode.
W XCTest piszesz testy jednostkowe w Swift lub Objective-C i uruchom je z Xcode Nawigator testรณw, xcodebuild wiersza poleceล, w symulatorze lub na prawdziwych urzฤ
dzeniach. XCUITest przeprowadza Twojฤ
aplikacjฤ przez warstwฤ dostฤpnoลci, dziฤki czemu testy interfejsu uลผytkownika zachowujฤ
siฤ podobnie jak testy prawdziwego uลผytkownika.
| Stare ramy | Nowoczesna wymiana | Co siฤ zmieniลo |
|---|---|---|
| OCUnit (zestaw testowy SenTestingKit) | XCTest | Te same koncepcje testowania jednostkowego, teraz wbudowane w kaลผdy Xcode szablon projektu |
| Automatyzacja interfejsu uลผytkownika (JavaScenariusz) | XCUITest | Testy interfejsu uลผytkownika sฤ pisane w Swift lub Objective-C zamiast JavaScenariusz |
๐ก Wskazรณwka: Narzฤdzia wieloplatformowe, takie jak Appium zautomatyzowaฤ system iOS za pomocฤ XCUITest, dziฤki czemu te umiejฤtnoลci moลผna przenieลฤ bezpoลrednio.
Testowanie rฤczne
Automatyzacja zwiฤksza szybkoลฤ, ale opisane poniลผej techniki rฤczne wymagajฤ ludzkiej oceny, ktรณrej skrypty nie sฤ w stanie zapewniฤ.
Testowanie eksploracyjne
To testowanie bez formalnego planu testรณw. Testowanie eksploracyjne to tania metoda testowania, ale moลผe ona nie wykryฤ potencjalnych bลฤdรณw w aplikacji iOS.
Testowanie eksploracyjne โ wady i zalety
| ZALETY | Wady | |
|---|---|---|
| 1. | Less konieczne jest przygotowanie; powaลผne bลฤdy sฤ wykrywane wczeลnie. | Wymaga wysokich umiejฤtnoลci testera |
| 2. | Nie Plan testรณw jest konieczne, co przyspiesza wykrywanie bลฤdรณw. | Zasiฤg testรณw jest niski. Nie gwarantuje to, ลผe wszystkie Twoje wymagania zostanฤ przetestowane. |
| 3. | Wiฤkszoลฤ bลฤdรณw jest wykrywana wczeลnie w drodze testรณw eksploracyjnych | Brak dokumentacji testowej |
User Testing
Testowanie uลผytkownikรณw to rodzaj testรณw rฤcznych w systemie iOS. Celem tych testรณw jest nie tylko tworzenie lepszych aplikacji bez bลฤdรณw aplikacje. Poniลผszy rysunek przedstawia cztery typy testรณw uลผytkownikรณw.
Testowanie koncepcji
Oceล reakcjฤ uลผytkownikรณw na pomysล aplikacji przed wprowadzeniem jej na rynek. Procedury testowania koncepcji w systemie iOS opisano na poniลผszym rysunku.
Test uลผytecznoลci
Test uลผytecznoลci to test ลatwoลci korzystania z aplikacji iOS. W testach iOS test uลผytecznoลci moลผe byฤ nagrany zapamiฤtaฤ lub podzieliฤ siฤ z innymi.
Oto niektรณre narzฤdzia wspomagajฤ ce testowanie uลผytecznoลci w systemie iOS:
Trymata aplikacje do testowania uลผytkownikรณw mobilnych dla Android i iOS.
Delight.io, to narzฤdzie moลผe przechwytywaฤ rzeczywistฤ interakcjฤ uลผytkownika w aplikacjach na iOS.
Testowanie beta
Beta testy to testy integracyjne z rzeczywistymi danymi, aby uzyskaฤ ostatecznฤ opiniฤ uลผytkownikรณw. Aby udostฤpniฤ aplikacje do testรณw beta, wykonaj poniลผsze kroki.
-Warunek wstฤpny: Jeลli testujesz wersjฤ beta ostatecznego kandydata do wydania, pamiฤtaj o sprawdzeniu poprawnoลci aplikacji przed przekazaniem jej testerom.
-Znajdลบ testera poprzez serwis:zbierasz identyfikatory urzฤ dzeล od testerรณw i dodajesz je do swojego konta Apple Developer
-Utwรณrz dystrybucjฤ ad hoc:Dystrybucja Ad Hoc umoลผliwia testerowi uruchomienie aplikacji na swoim urzฤ dzeniu bez koniecznoลci Xcode. Ten krok obejmuje 2 podetapy
- Utwรณrz certyfikaty dystrybucyjne
- Twรณrz profile udostฤpniania ad hoc
-Poproล o opiniฤ od testera: Testerzy przeprowadzajฤ testy i wysyลajฤ Ci raporty o bลฤdach. Po wydaniu aplikacji moลผesz je otrzymaฤ odโฆ Poลฤ cz ze sklepem z aplikacjami (dawniej iTunes ลฤ czyฤ).
Uwaga: Obecnie wiฤkszoลฤ zespoลรณw dystrybuuje wersje beta z Lot testowy, dziฤki ktรณrej moลผesz zaprosiฤ do 10 000 zewnฤtrznych testerรณw bez koniecznoลci rฤcznego zbierania identyfikatorรณw urzฤ dzeล.
Testy A / B
Testy A / B to jeden z najpotฤลผniejszych sposobรณw oceล skutecznoลฤ swojej aplikacji na iOS. To uลผywa losowe eksperymenty z dwoma urzฤ dzeniami A i B.
Testowanie A/B skลada siฤ z trzech gลรณwnych etapรณw
- Skonfiguruj testPrzygotuj 2 wersje swojej aplikacji iOS (A i B) oraz metrykฤ testowฤ
- Testowanie: Przetestuj jednoczeลnie obie wersje aplikacji iOS na urzฤ dzeniach.
- Analizowaฤ:Zmierz i wybierz lepszฤ wersjฤ do wydania
Poniลผsze narzฤdzia obsลugujฤ testy A/B w systemie iOS.
- Powstaฤ: Testy A/B dla iOS i AndroidMoลผna go zintegrowaฤ z aplikacjฤ iOS, co przyspieszy proces testowania.
Najlepsze praktyki w zakresie testรณw A/B
- Zdefiniuj cel swojego testu. Kaลผdy test jest bezcelowy bez celu.
- Oglฤ daj uลผytkownicy koลcowi korzystajฤ z Twojej aplikacji po raz pierwszy
- Uruchom pierwszej Testuj tylko na aktualizacjฤ. Oszczฤdza to Twรณj czas podczas przeprowadzania testรณw.
- Monitorowanie Dokลadnie przeprowadลบ test. Moลผesz uczyฤ siฤ z testu, monitorujฤ c go.
Testowanie iOS Najlepsza praktyka
Oto kilka wskazรณwek, ktรณre warto znaฤ organizujฤ c testy aplikacji na iOS
- Przetestuj aplikacjฤ na prawdziwe urzฤ dzenie aby uzyskaฤ realistyczny obraz wydajnoลci
- Poprawa Twoje metody testowania, poniewaลผ tradycyjne metody testowania nie sฤ juลผ wystarczajฤ ce do pokrycia wszystkich testรณw w testowaniu iOS
- Uลผyj dziennik konsoli Aby przetestowaฤ aplikacjฤ iOS. Ta funkcja iOS obejmuje informacje z kaลผdej aplikacji na urzฤ dzeniu.
- dokument bลฤdy aplikacji przy uลผyciu wbudowany zrzut ekranu polecenie. Pomaga programistom zrozumieฤ, w jaki sposรณb powstajฤ bลฤdy.
- Zgลaszanie awarii Narzฤdzia sฤ przydatne podczas testowania aplikacji. Potrafiฤ wykrywaฤ awarie i rejestrowaฤ szczegรณลy, dziฤki czemu moลผna ลatwo badaฤ bลฤdy.
MITY na temat testowania iOS
W tej sekcji omรณwiono kilka popularnych mitรณw i realiรณw dotyczฤ cych testowania systemu iOS
Testowanie aplikacji na iOS i Android to jest to samo.
iOS oraz Android to dwie platformy opracowane przez Apple Inc. i Google odpowiednio. Sฤ one zupeลnie rรณลผne pod wzglฤdem ลrodowisk testowych, struktur testowych i jฤzykรณw programowania.
Wystarczy przetestowaฤ aplikacjฤ na symulatorze iOS.
Symulator iOS nie jest wystarczajฤ co mocny, aby testowaฤ aplikacjฤ, poniewaลผ ma pewne ograniczenia:
- Ograniczenia sprzฤtowe (kamera, wejลcie mikrofonowe, czujnik)
- Interfejs Twojej aplikacji moลผe wydawaฤ siฤ dziaลaฤ szybciej i pลynniej niลผ na urzฤ dzeniu
- Ograniczenia 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ลผ majฤ wiele funkcji
Im wiฤcej funkcji ma Twoja aplikacja, tym wiฤcej bลฤdรณw moลผesz napotkaฤ. ลปaden uลผytkownik nie pobierze Twojej aplikacji, jeลli nadal ma wiele defektรณw.

.png)











