Android Výukový program pro testování APP s Automation Framework
Proč Android Testování?
Android je největší operační systém na světě. Ve stejnou dobu, Android je roztříštěný. existuje spousta zařízení a Android verze, se kterými musí být vaše aplikace kompatibilní.
Nezáleží na tom, kolik času investujete do návrhu a implementace, chyby jsou nevyhnutelné a chyby se objeví.
Android Strategie testování
Správná strategie testování Androidu by měla zahrnovat následující
- Test jednotky
- Integrační test
- Operanárodní test
- Test systému
Jednotkové testy
Testy jednotek zahrnují sady jednoho nebo více programů, které jsou navrženy k ověření atomické jednotky zdrojového kódu, jako je metoda nebo třída.
Android platforma je předintegrovaná Junit rámec 3.0. Je to open source framework pro automatizaci Testování jednotek. Android Testing Framework je výkonný nástroj pro vývojáře k psaní efektivního programu pro testování jednotek.
Dodatek k testování jednotek jsou testy uživatelského rozhraní (UI). Tyto testy se týkají komponent uživatelského rozhraní vaší cílové aplikace. Testy uživatelského rozhraní zajišťují, že vaše aplikace vrací správný výstup uživatelského rozhraní v reakci na posloupnost akcí uživatele na zařízení.
Běžný způsob provádění testů uživatelského rozhraní na zařízení je Android Instrumentace. To má ale problémy s výkonem. Jeden z nejlepších nástrojů pro testování uživatelského rozhraní Android is Robotium.
Integrační testy
In Testování integrace, všechny moduly testované na jednotku, jsou kombinovány a ověřeny. v Androidintegrační testy často zahrnují kontrolu integrace sAndroid komponenty, jako je testování služeb, testování aktivity, testování poskytovatelů obsahu atd
Existuje mnoho testovacích rámců, které se používají k provádění integračních testů Android jako je Troyd, Robolectric, Robotium.
Operanárodní testy
- Operase také nazývají funkční testy nebo akceptační testy. Jsou to testy vysoké úrovně určené ke kontrole úplnosti a správnosti aplikace.
- In Android, FitNesse je open-source framework, který usnadňuje provádění provozních testů pro cílovou aplikaci.
Systémové testy
In Testování systému systém je testován jako celek a je kontrolována interakce mezi komponentami, softwarem a hardwarem.
In Android, Testování systému obvykle zahrnuje
- GUI testy
- Testy použitelnosti
- Testy výkonu
- Zátěžové testy
Ve výše uvedeném seznamu Testování výkonu je věnována větší pozornost. Můžete použít nástroje jako Traceview provést test výkonu Android .Tento nástroj vám může pomoci ladit vaši aplikaci a profilovat její výkon.
Automatizované TESTOVÁNÍ ANDROIDU
Protože je Android roztříštěný, je nutné testování na velkém množství zařízení. To vás ale také bude stát peníze. Automatizované Android Testování může pomoci snížit náklady
Výhody automatického testování Androidu
- Zkraťte čas na provádění testovacích případů
- Zvyšte produktivitu vašeho vývojového procesu
- Včasná detekce chyb, úspora nákladů na údržbu softwaru
- Rychle nalezené a opravené chyby v implementaci
- Zajistěte kvalitu softwaru
Budeme studovat následující 2 rámce
- Android Testovací rámec
- Rámec pro robotické testování
Android testovací rámec
Jeden ze standardních testovacích rámců pro Android Aplikace je Android testovací rámec. Je to výkonný a snadno použitelný testovací rámec, který je dobře integrován s Android SDK nástroje.
- Aplikační balíček je vaše cílová aplikace, kterou je třeba otestovat
- InstrumentationTestRunner je Testovací případ runner, který provede testovací případ na cílové aplikaci. To zahrnuje:
2a) Testovací nástroje: SDK nástroje pro testování budov. Jsou integrovány v Eclipse IDE nebo spustit jako příkazový řádek.
2b) MonkeyRunner: Nástroj, který poskytuje rozhraní API pro psaní programů, které řídí Android zařízení nebo emulátoru mimo Android kód.
- Testovací balíček jsou organizovány do testovacích projektů. Tento balíček se řídí konvencí pojmenování. Pokud má testovaná aplikace název balíčku „com.mydomain.myapp“, pak by testovací balíček měl být „com.mydomain.myapp.test“. Testovací balíček obsahuje 2 objekty, jak je uvedeno níže:
3a) Třídy testovacích případů: zahrnují testovací metody, které se mají provést v cílové aplikaci.
3b) Mock objects : zahrnuje falešná data, která budou použita jako vzorový vstup pro testovací případy.
Android Třídy testovacích případů
- Modelový případ zahrnuje JUnit metody běhu JUnit test
- TestSuite se používá ke spuštění sady testovacích případů
- InstrumentationTestSuite je TestSuite, který vkládá Instrumentation do InstrumentationTestCase před jejich spuštěním.
- InstrumentationTestRunner je testovací případ, který provádí testovací případ na cílové aplikaci.
- AndroidModelový případ rozšiřuje JUnit Modelový případ. Obsahuje metody pro přístup ke zdrojům, jako je Kontext aktivity.
- ApplicationTestCase ověřuje třídy Application v kontrolovaném prostředí.
- InstrumentationTestCase ověřuje konkrétní funkci nebo chování cílové aplikace, například ověřuje výstup uživatelského rozhraní aplikace.
- ActivityTestCase je základní třída, která podporuje testování aplikačních aktivit.
- ProviderTestCase je třída pro testování jednoho ContentProvider.
- ServiceTestCase se používá k testování tříd služeb v testovacím prostředí. Podporuje také životní cyklus služby.
- SingeLauchActivityTestCase se používá k testování jedné aktivity pomocí InstrumentationTestCase.
- ActivityUnitTestCase se používá k testování jednotlivé izolované aktivity.
- ActivityInstrumentationTestCase2 rozšiřuje JUnit Třída TestCase. Připojí vás k cílové aplikaci s přístrojovým vybavením. Pomocí této třídy můžete přistupovat ke komponentě GUI aplikace a odesílat událost uživatelského rozhraní (událost stisknutí klávesy nebo dotyku) do uživatelského rozhraní.
Níže je uveden příklad ActivityInstrumentationTestCase. Ověřuje fungování uživatelského rozhraní aplikace Kalkulačka, kontroluje správnost výstupů uživatelského rozhraní.
Rámec pro robotické testování
Testování pomocí Android Testování frameworku se zařízením nebo emulátorem je obtížné. Vytváření a spouštění testu je pomalé a vyžaduje velké úsilí při vývoji. Chcete-li tento problém vyřešit, existuje další možnost – Roboelektrický testovací rámec.
Robolectric framework umožňuje běh Android Testy přímo na JVM bez potřeba zařízení nebo emulátoru.
Třídy robotických testovacích případů
- Jak je uvedeno výše, Robolectric může provádět následující akce:
- Zaregistrujte se a vytvořte třídu Shadow
- Zachyťte načítání Android třída
- Používá javaassist k přepsání těla metody Android třída
- Svázat objekt Shadow Android třída
- To umožňuje, aby se testovaný kód spustil bez Android prostředí.
Ostatní testovací rámec
Kromě testovacích rámců, které byly zmíněny výše, existuje mnoho dalších testovacích rámců, jako jsou:
- Android Junitova zpráva, vlastní přístrojový testovací běžec pro Android který generuje XML reporty pro integraci s dalšími nástroji.
- Expresso
- Appium
Mýty o Android Testování
Mnoho společností vyvíjí Android Testování strategie, které jsou založeny na běžných mylných představách. Tato část zkoumá několik populárních mýtů a skutečností Android testování.
Mýtus č. 1: Vše Android zařízení jsou stejná… stačí test na emulátorech
Začněme jednoduchým příkladem. Aplikace funguje perfektně na emulátorech, ale na některých skutečných zařízeních během provádění spadne
Emulátory jsou nedostatečný pro vaše mobilní testování. Svou aplikaci musíte otestovat na skutečných zařízeních.
Mýtus č. 2:Stačí testování na některých běžných zařízeních
- Na různých zařízeních vaše aplikace vypadá odlišně, protože různá zařízení mají různý hardware, velikost obrazovky, paměť atd. Aplikaci musíte otestovat na různých zařízeních, verzích OS, sítích operátorů a umístěních.
Mýtus č. 3: Průzkumné testování těsně před spuštěním stačí
- Obecně při každém testování navrhujeme testovací případy a poté je provádíme. Ale v průzkumném testování, návrhu testu a provádění bude vše provedeno společně.
- V průzkumném testování neexistuje žádný plán a žádná příprava, pak by tester provedl testy, které chce udělat. Některé funkce budou testovány opakovaně, zatímco některé funkce nebudou testovány úplně.
Mýtus č. 4: Pokud se v aplikaci vyskytnou nějaké chyby, uživatelé to pochopí
- Pokud aplikace nefunguje a obsahuje chyby, uživatelé ji odinstalují
- Problémy s kvalitou jsou prvním důvodem špatné recenze na Google Play. Ovlivňuje to vaši pověst a ztrácíte důvěru zákazníků.
Proto je nezbytné mít správnou strategii testování Androidu
Osvědčené postupy v Android Testování
- Vývojáři aplikací by měli vytvářet testovací případy ve stejnou dobu, kdy píší kód
- Všechny testovací případy by měly být uloženy ve správě verzí společně se zdrojovým kódem
- Používejte průběžnou integraci a spouštějte testy při každé změně kódu
- Vyhněte se používání emulátorů a zakořeněných zařízení