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í.

Android Testování

Nezáleží na tom, kolik času investujete do návrhu a implementace, chyby jsou nevyhnutelné a chyby se objeví.

Android Testování

Android Strategie testování

Správná strategie testování Androidu by měla zahrnovat následující

  1. Test jednotky
  2. Integrační test
  3. Operanárodní test
  4. Test systému

Android Strategie testování

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.

Integrace Android si JUnit Rámec
Integrace Android si JUnit rámec

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é akce uživatelského uživatelského rozhraní v aplikaci
Běžné akce uživatelského rozhraní v aplikaci

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

Integrační testy
Typy integračního testu na Android

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.

Android Testovací rámec
Android testovací rámec Architecture
  1. Aplikační balíček je vaše cílová aplikace, kterou je třeba otestovat
  2. 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.

  1. 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ů

Android Třídy testovacích případů
AndroidDiagram tříd TestCase
  1. Modelový případ zahrnuje JUnit metody běhu JUnit test
  2. TestSuite se používá ke spuštění sady testovacích případů
  3. InstrumentationTestSuite je TestSuite, který vkládá Instrumentation do InstrumentationTestCase před jejich spuštěním.
  4. InstrumentationTestRunner je testovací případ, který provádí testovací případ na cílové aplikaci.
  5. AndroidModelový případ rozšiřuje JUnit Modelový případ. Obsahuje metody pro přístup ke zdrojům, jako je Kontext aktivity.
  6. ApplicationTestCase ověřuje třídy Application v kontrolovaném prostředí.
  7. InstrumentationTestCase ověřuje konkrétní funkci nebo chování cílové aplikace, například ověřuje výstup uživatelského rozhraní aplikace.
  8. ActivityTestCase je základní třída, která podporuje testování aplikačních aktivit.
  9. ProviderTestCase je třída pro testování jednoho ContentProvider.
  10. ServiceTestCase se používá k testování tříd služeb v testovacím prostředí. Podporuje také životní cyklus služby.
  11. SingeLauchActivityTestCase se používá k testování jedné aktivity pomocí InstrumentationTestCase.
  12. ActivityUnitTestCase se používá k testování jednotlivé izolované aktivity.
  13. 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í.

ActivityInstrumentationTestCase2 Testování
Příklad testování ActivityInstrumentationTestCase2

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.

Pokročilé funkce Robolectric
Pokročilé funkce Robolectric

Třídy robotických testovacích případů

Operaování robotiky
Operaování robotiky
  • 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:

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

Selhání aplikace během spouštění na skutečném zařízení
Aplikace padá během spouštění na skutečném zařízení

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í