ios app testing beginners guide with practical approach
Sbírka základních znalostí pro testování aplikací pro iOS:
'Víte, každý má mobilní telefon, ale neznám jednoho člověka, který má rád svůj mobilní telefon.' Chci vyrobit telefon, který lidé milují. “ - Steve Jobs.
Jednalo se o iPhone od Steva Jobse. Steve opravdu přiměl Apple pracovat na tom, aby se jejich mobilní zařízení stalo oblíbeným pro všechny.
Uživatelé vždy milovali mobilní zařízení Apple, ať už jde o iPhone, iPod Touch nebo iPad. Aktuální data naznačují, že na světě funguje téměř 1 miliarda zařízení Apple, která běží na systému iOS.
To je celá miliarda z nich.
Následuje analýza podílu na trhu iPhonů v roce 2016:

(obraz zdroj )
Co se naučíte:
- ios
- Testování iOS
- Typy testování aplikací pro iOS
- Ruční testování - pomocí zařízení
- Ruční testování - použití emulátoru
- Automatizace iOS
- Osvědčené postupy pro testování aplikací pro iOS
- Automatizační rámce pro iOS
- Závěr
- Doporučené čtení
ios
iOS je mobilní operační systém navržený společností Apple přesně pro jejich zařízení, často označovaný jako iDevices. Od roku 2007, kdy byl iOS vyroben pouze pro iPhony, se operační systém vyvinul tak, aby podporoval i Touch zařízení a iPady.
Aktuální výzkum uvádí, že iOS je druhým nejpopulárnějším mobilním operačním systémem na trhu. Android běží na zařízeních postavených různými výrobci, ale iOS je na kráse to, že je omezen pouze na hardware Apple, což jasně uvádí popularitu operačního systému.
pl / sql rozhovor otázky a odpovědi
iOS zaznamenal v průběhu let celkem 10 hlavních verzí a ve všech svých verzích nabídl významné aktualizace funkcí.

Tento operační systém iOS je známý svou uživatelskou přívětivostí, plynulostí v provozu, aplikacemi bez pádu atd. Při diskusích o aplikacích je obchod s aplikacemi Apple iTunes pro iOS příliš bohatý na množství aplikací, které vystřelují až 2,2 milionu. Stahování aplikací rychle vzrostlo na neuvěřitelných 130 miliard.
iOS je operační systém, který není omezen žádnou zonální ani jazykovou bariérou. To je jeden z hlavních faktorů tohoto operačního systému, který se stal tak slavným za pouhých 10 let svého vývoje. Podporuje 40 různých jazyků.
Nejen jazyky, dokonce i uživatelské rozhraní zařízení iOS je ve srovnání se zařízeními Android velmi atraktivní a elegantní.


Když mluvíme o Aplikacích podrobně, níže jsou uvedeny některé jejich statistiky:
- Obchod s aplikacemi Apple iTunes získá každý den téměř 1 000 nových žádostí.
- Asi 1/3rdz celkového počtu aplikací v obchodě Apple iTunes je zdarma ke stažení.
- Placené poplatky za aplikace pro iOS se v průměru pohybují od 1,10 do 1,30 $.
- Průměrná cena hry pro iOS se pohybuje od 0,55 do 0,65 $.
Kolik aplikací jste použili na svém iPhone, iPod Touch nebo iPad?
Docela hrstka! Že jo? Počínaje službami Gmail a Facebook až po střet klanů a asfaltů. Tento druh aplikací, počet a různorodost uživatelů přinášejí softwarovým testerům vážnou věc. Ne?
Jako tester je třeba provést nejen ověření funkčnosti, ale také důkladné testování uživatelského rozhraní, aby bylo možné ověřit aplikaci na iPhonu, iPodu a iPadu kvůli rozdílům v jejich velikostech.
Testování iOS
Jak již bylo řečeno, iOS je omezen pouze na hardware Apple nebo zařízení Apple. To je opravdu obrovská úleva. Existuje však řada zařízení Apple a jejich verzí, které iOS podporují.
Závěrem je, že Apple má uzavřený systém, na rozdíl od Androidu, který je otevřeným systémem. Vydání OS nebo zařízení jsou dobře naplánována.
To je další výhoda, protože:
- Velikost zařízení, která jsou k dispozici nebo budou vydána, jsou pevná a jako QA musíme mít velmi jasnou představu o tom, co jsou všechna zařízení mimo trh. Pro QA je snadné rozhodnout o zkušebně pro testování
- Stejně jako zařízení nepotřebujeme provádět hlubokou analýzu operačního systému, protože se jedná o uzavřený systém, je méně času (a námahy) náročné rozhodovat o testovacím lůžku pro testování OS.
- Apple má celou řadu vlastních automatizačních nástrojů, i když je trochu obtížné se je naučit.
- Pamatuji si, že pro testování GPS pro Android jsem musel strávit 2–3 dny, než jsem zjistil, jak vytvořit fiktivní skripty pro odesílání falešných pozic. V systému iOS to ale bylo velmi jednoduché a přímočaré, protože má vestavěnou funkci pro odesílání falešných GPS pro chůzi, běh, cyklistiku atd.
- Při počátečním testování se nedoporučuje testovat GPS testem v terénu, doporučuje se odesílání fiktivních dat GPS a šetří to také čas.
- Apple má přísné pokyny pro podávání žádostí, což je spíše velká pomoc, než aby vás po odeslání odmítli a měli dobrou šanci na úspěch, na rozdíl od jiných OS, kde žádné přísné pokyny neexistují.
- Funkčnost samotného zařízení a OS je pevná a přímá, a proto snižuje pravděpodobnost, že vám přijdou způsoby, jak může aplikace fungovat. V iOS neexistuje žádný způsob, jak vynutit zastavení aplikace, zatímco v Androidu můžeme zabít a vynutit zastavení aplikací. Složitost se tak pro testování zde snižuje.
To jsou některé z výhod, které odvozujeme od produktů Apple, ale ne nutně to jsou výhody každého produktu nebo aplikace. Zatímco pro aplikace vyvíjené v různých platformách je iOS obtížné zvládnout.
The vysoká úroveň klasifikace je uvedena níže:

Prvním krokem v testování aplikací iOS je zvážit typ implementace.
Implementací aplikace může být kterýkoli z níže uvedených 3 typů:
1) Webové aplikace: Jedná se o aplikace, které se chovají podobně jako sestavení v aplikacích pro iOS. Toto jsou běžné webové stránky, na které uživatel přistupuje v prohlížeči Safari na iPhonu.
2) Nativní aplikace: Aplikace vyvinutá pomocí sady iOS SDK (Software Development Kit) běží nativně na podporovaných zařízeních iOS, jako jsou VLC, Flipboard, Uber atd.
3) Hybridní aplikace: Toto je směs nebo hybrid obou výše zmíněných typů. To umožňuje přístup k webovému obsahu prostřednictvím oblasti pro prohlížení webového obsahu a má také některé prvky uživatelského rozhraní pro iOS. Např. Zomato, Twitter, Gmail atd
Typy testování aplikací pro iOS
Různé typy testování aplikací pro iOS (jak se provádí za typických podmínek) mohou být následující:
- Ruční testování - pomocí zařízení
- Testování systému
- Testování UI / UX
- Testování zabezpečení
- Polní testování
- Ruční testování - použití emulátoru
- Testování jednotek
- Testování integrace
- Testování uživatelského rozhraní
- Testování automatizace
- Regresní testování
- Testování BVT
- Testování kompatibility
- Testování výkonu
Příklad aplikace:
Než se pustíme do různých aspektů testovacích procesů iOS, vezměme si příklad typické aplikace pro iOS.
Vezměme v úvahu aplikaci pro získávání finančních prostředků pro sportovní týmy. Aplikace bude mít sociální účet pro přihlášení (Google / Facebook) a platební stránku.
Před přechodem na stránku plateb by měla existovat možnost vybrat částky definované systémem nebo vlastní pole pro zadání částky. Jakmile je platba dokončena, měl by se na obrazovce zobrazit certifikát PDF a současně musí být soubor PDF zaslán e-mailem na e-mailový účet aktuálně přihlášeného uživatele.

Ruční testování - pomocí zařízení
a) Testování systému:
Tento typ testování iOS se provádí v systému, aby se zkontrolovalo, zda různé součásti systému spolupracují.
V tomto testovacím procesu se aplikace pro iOS spouští na skutečném zařízení Apple, po kterém následuje jeho interakce s uživatelským rozhraním, aby se spustila konkrétní sada nebo sady akcí uživatele. Typickými akcemi uživatele může být dotyková operace nebo přejetí prstem po obrazovce.
Nakonec je výsledek testován proti očekávanému výsledku.
Pro našePříkladjak je uvedeno výše, může typický test systému zahrnovat následující kroky:
- Přihlaste se ke sportovnímu týmu iOS a aplikaci pro získávání finančních prostředků pomocí přihlášení k účtu Facebook pomocí otevřeného ověřování.
- Vyberte předdefinovanou částku systému 10 $ z daných možností.
- Pokračujte k platební bráně.
- Vyberte platební metodu PayTm pro platební proces.
Testy systému jsou operace, které většinou pokrývají různé toky typu End to End v systému. Každý test musí být proveden s různými dostupnými konfiguracemi. Záleží také na zařízení a verzi iOS, na které je aplikace nainstalována.
b) Testování uživatelského rozhraní iOS
UI / UX zařízení iOS byla klíčovým prvkem jejich úspěšného příběhu.
Testování UI / UX v zařízeních iOS lze rozdělit do následujících kategorií:
- Vstupy: Do této kategorie spadá testování funkcí dotykové obrazovky (jako dlouhý / krátký dotek, 3D dotek, posouvání), velikosti tlačítek, umístění tlačítek, barva písma a jejich velikost atd.
- Klávesy: Nativní aplikace fungují bez problémů s vestavěnými hardwarovými klávesami / pevnými klávesami přítomnými v zařízení, jako jsou Home Key, Sound buttons atd. Testovaná aplikace by měla také pracovat s pevnými klávesami podobným způsobem.
- Softklávesy / měkká klávesnice: Jak nepříjemné je, když se klávesnice nezobrazí, když jste na stránce se zprávami Whatsapp? Je nutný vzhled klávesnice, možnost skrýt se, když ji nepotřebujete, podpora smajlíků, symbolů, všech znaků / symbolů atd.
- V našem Příklad , klávesnice může přijít do obrázku na více místech, jako je zadání vlastní částky, zadání údajů o pověření / kartě v platební bráně atd.
- Obrazovka: Pokud je aplikace podporována na více zařízeních, měla by být testována na její orientaci ve všech zařízeních. Na základě zařízení, které je vybráno pro proces testování, mohou nastat některé změny rozlišení. Zároveň by mělo být provedeno testování režimů na výšku / na šířku a použití klávesnice v každém z případů.
Pokud je vaše aplikace vytvořena nejen pro iOS, existuje několik ukazatelů, které je třeba speciálně otestovat pro iOS, například:
- Seznamy: Když se v iOS zobrazí seznam, který se má zobrazit, vždy se zobrazí úplně nová obrazovka, na rozdíl od Androidu, kde se zobrazí vyskakovací okno.
Následuje příklad toho samého:

( zdroj )

- Zprávy: Když dojde k chybě aplikace, zpráva zobrazená v systému iOS se liší od zprávy v systému Android. Pokud jste si všimli, malé zprávy blikají na telefonech Android, když uvolníte paměť, například „# GB uvolněné paměti“ atd., Ale v iOS se nikdy neuvidíme.
Následuje příklad:


( zdroj )
- Potvrzení smazání: Pokud pozorně sledujete aplikaci pro iOS, ve vyskakovacím okně s potvrzením odstranění je akce Storno nalevo od možnosti Odstranit. Zatímco v systému Android nebo jiném operačním systému je to naopak.


Toto jsou některé z příkladů, které vyžadují samostatné testovací případy a testování, protože iOS má své výchozí uživatelské rozhraní, zprávy atd., Které nelze změnit.
c) Testování bezpečnosti:
V našem příklad , máme aplikaci s platební bránou a přihlašovací stránkou podporovanou integrací sociálních stránek.
Například , Předpokládejme, že máte v telefonu aplikaci ICICI a když se přihlásíte, spíše než informace o vašem účtu, pokud se zobrazí informace někoho jiného nebo pokud provedete převod peněz a aplikace odešle OTP na jiné telefonní číslo, které není vaše si dokážete představit, co se stane. Testování zabezpečení je tedy nutností.
Data, pokud jde o přihlášení na sociální média a platební bránu, by měla být šifrována nebo zabezpečena, aby byla aplikace bezpečná před hackery.
d) Polní testování:
K ověření chování aplikace v datové síti telefonu se provádí test v terénu.
Tento test se obvykle provádí, když aplikace dosáhne stabilní fáze, a nedochází ke zhroucení při interním testování a byly vyřešeny všechny problémy s funkčností. To se provádí hlavně za účelem testování výkonu aplikace v pomalé datové síti.
Ruční testování - použití emulátoru
a) Testování jednotek:
Většinou to provádí vývojový tým / individuální vývojář. Toto testování zkontroluje, zda určitý modul zdrojového kódu funguje podle očekávání nebo ne.
Vývojáři navrhují testovací případy jednotek pro jednu komponentu, tj. Izolovaný modul, na kterém pracují. Tento test prokazuje fungování jednotlivých modulů, po kterých je vložen do zdrojového kódu, aby fungoval jako prvek integrované architektury. Jak říká záhlaví, jedná se většinou o ruční testovací běh prováděný pomocí testovací emulace.
b) Testování integrace:
V předchozích krocích jsme diskutovali více o testování jednotek. Nyní, když jsme si jisti funkčností jednotlivých jednotek / modulů, je nutné zkontrolovat také integraci. Toto testování se provádí za účelem zjištění problémů souvisejících s různými integračními body.
V našem Příklady , můžeme přihlašovací údaje volat jako jeden modul a platební bránu jako další modul.
Testování jednotek bude zahrnovat testování obou jednotlivě. Testování integrace však otestuje integritu obou modulů.
c) Testování uživatelského rozhraní:
Jak je vysvětleno výše, je třeba u aplikace provést testování uživatelského rozhraní, protože je to klíčový faktor úspěchu aplikace.
Nákup všech modelů telefonů k testování prakticky není možný, protože by to stálo hodně. Proto je použití emulátoru nejlepší volbou, protože je zdarma a na emulátorech se také snadno zachytí zjevné chyby uživatelského rozhraní.
Automatizace iOS
a) Regresní testování:
V neustále se měnícím prostředí se neustále provádějí změny, které vylepšují aplikaci nebo opravují problémy, které byly nalezeny v předchozí verzi. Při implementaci změn přichází šance, že změny provedené v aplikaci mohou změnit stávající funkce.
Jednoduše řečeno, provedené změny mohou v aplikaci zavést novou sadu problémů.
Chcete-li ověřit, zda aplikace funguje stejným způsobem i po implementaci změn, je třeba provést regresní testování. A protože se jedná o opakující se aktivitu, pro tento druh zkušebního provozu se hodí automatizace.
b) Testování BVT:
Je dobrým zvykem mít na nové verzi vydané pro testování automatizovanou sadu, která šetří spoustu času a pokud dojde k selhání základních funkcí, bude ohlášena okamžitě. Ve srovnání s manuálním úsilím lze výsledky automatizovaných základních ověřovacích testů přijmout nebo odmítnout sestavení provést během několika minut.
c) Testování kompatibility:
Jak již bylo řečeno, existuje mnoho zařízení / typů, které jsou vydávány společností Apple. Přesněji řečeno, na trhu je 15 různých typů telefonů iPhone, 6 modelů iPod Touch, 10 modelů iPad a 2 modely iPad Pro.
Nyní, když je vyvinuta aplikace, jako je naše (Sports team fundraising application), měla by být podporována všemi výše uvedenými zařízeními. Z toho vyplývá jedna věc - Všechny testovací případy se mají spouštět na všech těchto zařízeních.
Ruční úsilí nyní není možné, když je počet zařízení obrovský. Z důvodu kompatibility je upřednostňováno testování automatizace.
d) Testování výkonu:
Některé z těch, které jsou testovány v testování výkonu, jsou:
- Jak se aplikace chová, když je uvedena do provozu nebo běží velmi dlouho. Během provozního období nechte aplikaci komunikovat / komunikovat / zůstat nečinná.
- Stejná operace musí být provedena pokaždé s různým počtem zátěží.
- Jak se systém chová, když je přenos dat opravdu obrovský.
Tyto případy mají opakující se povahu a většinou se provádějí pomocí automatizace.
Osvědčené postupy pro testování aplikací pro iOS
Testování aplikací pro iOS může být náročné, složité a náročné, pokud není provedeno správně.
Aby bylo možné přesunout testování aplikací pro iOS správným směrem, lze implementovat následující postupy:
# 1) Zapomeňte na emulátory: Ve většině případů se dává přednost emulátorům před skutečnými zařízeními. Ale to není ideální případ. Na emulátorech nelze testovat věci, jako jsou interakce uživatelů, spotřeba baterie, dostupnost sítě, výkon při používání, alokace paměti. Zkuste tedy neustále testovat na reálných zařízeních.
# 2) Automatizujte věci spíše než ručně: Jak rychle děláte konkrétní úkol? V dnešním světě se všichni hlavně zajímají o čas strávený. Automatizace nejen zkracuje dobu provádění, ale také zvyšuje účinnost, efektivitu a pokrytí testování softwaru.
# 3) Sdílejte práci: Sdílejte testování napříč týmy, včetně vývojového týmu. Můžeme získat pomoc, pokud jde o ruční provádění testovacích případů, a také pomoc od vývojového týmu, pokud jde o automatizaci manuálních testovacích případů.
# 4) Chyťte Crash Logs: Aplikace pro iOS může za určitých okolností zamrzat nebo narazit. K vyřešení problému hrají zásadní roli protokoly o selhání.
K zachycení protokolů o selhání lze provést následující kroky:
- Pro MacOS:
- Synchronizujte zařízení iOS s počítačem (Mac).
- V systému Mac OS podržte klávesu Option a otevřete lištu nabídek.
- Přejděte do nabídky Přejít a klikněte na Knihovna.
- Přejděte do ~ / Library / Logs / CrashReporter / MobileDevice //.
- Název souboru protokolu by měl začínat názvem aplikace.
- Pro operační systém Windows:
- Synchronizujte zařízení iOS s počítačem (Windows).
- Přejděte do složky C: Users AppData Roaming Applecomputer Logs CrashReporter MobileDevice \
- Název souboru protokolu by měl začínat názvem aplikace.
# 5) Zachycení protokolů konzoly:
Protokoly konzoly poskytují celkové informace o aplikacích v zařízení iOS.
To lze provést pomocí nástrojů, jako je iTools. Když je zařízení iOS připojeno k systému, na kterém je spuštěn iTools, v aplikaci iTools klikněte na ikonu „Toolbox“. Kliknutím na „Protokol v reálném čase“ získáte protokol konzoly v reálném čase.
# 6) Obrazovka snímání: Je snadné pochopit problém, a proto je snadné jej opravit, pokud jsou kroky vizuální.
Je vhodné zaznamenat obrazovku nebo pořídit snímky obrazovky s problémy, aby jim vývojový tým lépe porozuměl. Snímek obrazovky lze pořídit pomocí vestavěné funkce současným stisknutím tlačítka Napájení a Domů.
Nahrávání obrazovky lze provést pomocí záznamu přehrávače Quick Time, zatímco je zařízení iOS připojeno k Macu pomocí bleskového kabelu.
Automatizační rámce pro iOS
Níže jsou uvedeny některé z nejčastěji používaných rámců automatizace:
# 1) epochy;
Appium používá selenový webový ovladač k automatizaci testování aplikací pro iOS.
Tato platforma je nezávislá a lze ji použít jak na webu, tak na mobilních zařízeních (Android i iOS). Toto je open source a není omezen jazykem. Pro automatizaci pomocí aplikace Appium nejsou vyžadovány změny aplikace nebo přístup ke zdrojovému kódu.
Appium funguje hladce nezávisle na typu aplikace: ať už je to nativní, hybridní nebo webová.
# 2) Calabash:
Calabash je multiplatformní framework s otevřeným zdrojovým kódem, který podporuje testování automatizace Android i iOS.
bublina seřadit sestupně c ++
Testy Calabash jsou psány v okurce, která je obdobou specifikace a je snadno srozumitelná. Calabash se skládá z knihoven, které uživateli umožňují interakci s nativními i hybridními aplikacemi. Podporuje interakce, jako jsou gesta, tvrzení, snímek obrazovky atd.
# 3) Earl Gray:
Earl Gray je vlastní interní rámec pro testování uživatelského rozhraní společnosti Google. Používá se k testování YouTube, Fotek Google, Hudby Google Play, Kalendáře Google atd.
Earl Gray byl nedávno vytvořen jako open source. Některé z hlavních výhod Earla Graye jsou: Synchronizace vestavění, Kontroly viditelnosti před interakcemi, skutečná interakce s uživatelem (Klepnutí, přejetí prstem atd.). Je to velmi podobné espressu od Googlu, které se používá pro automatizaci uživatelského rozhraní Android.
# 4) Automatizace uživatelského rozhraní:
UI Automation je vyvinut společností Apple a je velmi podobný UI Automator pro Android. API jsou definována společností Apple a testy jsou psány v JAVA.
# 5) JAK:
KIF znamená „Keep it Functional“. Toto je rámec třetí strany a Open source.
Toto je testovací rámec integrace iOS, který úzce souvisí a používá se pro testovací cíle XCTest. KIF lze snadno konfigurovat nebo integrovat do projektu Xcode, a proto není vyžadován další webový server ani další balíčky. KIF má široké pokrytí, pokud jde o verze iOS.
Závěr
Testování aplikací pro iOS může být nejnáročnějším úkolem. Doufám, že jste v tomto článku dobře porozuměli testování aplikací pro iOS.
Výběr správného přístupu, nejlepší možný testovací proces, metodiky, nástroje, emulátory / zařízení atd. Však učiní testování aplikací iOS velmi úspěšným.
Náš nadcházející výukový program vás seznámí se všemi základními pojmy Výukový program pro testování aplikací pro Android .
Doporučené čtení
- Nejlepší nástroje pro testování softwaru 2021 (QA Test Automation Tools)
- Příručka pro testování přenositelnosti s praktickými příklady
- Alfa testování a beta testování (kompletní průvodce)
- Funkční testování vs. nefunkční testování
- Vytvořte Appium Test pro aplikaci pro iOS
- Testování stahování e-knih Primer
- Co je to Early Testing: Test Early, Test often ALE Jak? (Praktický průvodce)
- Výukové programy pro testování mobilních aplikací (Kompletní průvodce s 30 a více výukové programy)