Výukový program pro testování aplikací pro Android s Automation Framework

Obsah:

Anonim

Proč Android Testing?

Android je největší operační systém na světě. Současně je Android fragmentovaný. existuje spousta zařízení a verzí systému Android, 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 objeví se chyby.

V tomto výukovém programu se naučíte

  • Proč Android Testing?
  • Strategie testování Android
    • Jednotkové testy
    • Testy integrace
    • Provozní zkoušky
    • Testy systému
  • Automatizované testování Android
    • Rámec testování Android
    • Robolektrický testovací rámec
  • Mýty o testování systému Android
  • Osvědčené postupy v testování systému Android

Strategie testování Android

Správná strategie testování systému Android by měla obsahovat následující

  1. Test jednotky
  2. Test integrace
  3. Provozní zkouška
  4. Test systému

Jednotkové testy

Testy jednotek zahrnují sady jednoho nebo více programů, které jsou určeny k ověření atomové jednotky zdrojového kódu, například metody nebo třídy.

Platforma Android přichází s předem integrovaným frameworkem Junit 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 testování jednotek.

Integrace platformy Android a JUnit

Kromě 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 vrátí správný výstup uživatelského rozhraní v reakci na posloupnost akcí uživatele v zařízení.

Běžné akce uživatelského rozhraní v aplikaci

Běžným způsobem testování výkonu uživatelského rozhraní na zařízení je Android Instrumentation. Ale to má problémy s výkonem. Jedním z nejlepších nástrojů k provádění testování uživatelského rozhraní v systému Android je Robotium.

Testy integrace

V Integration Testing jsou všechny jednotky testované moduly kombinovány a ověřeny. V systému Android testy integrace často zahrnují kontrolu integrace s komponentami Android, jako je testování služeb, testování aktivity, testování poskytovatele obsahu atd

Typy testu integrace na Androidu

Existuje mnoho testovacích rámců, které se používají k provádění integračního testu pro Android, jako jsou Troyd, Robolectric, Robotium.

Provozní zkoušky

  • Provozní se také nazývají funkční testy nebo přejímací testy. Jedná se o testy na vysoké úrovni určené ke kontrole úplnosti a správnosti aplikace.
  • V Androidu je FitNesse open-source framework, který usnadňuje provádění provozních testů pro cílovou aplikaci.

Testy systému

Při testování systému je systém testován jako celek a je kontrolována interakce mezi komponentami, softwarem a hardwarem.

V systému Android obvykle zahrnuje Testování systému

  • Testy GUI
  • Testy použitelnosti
  • Testy výkonu
  • Zátěžové testy

Ve výše uvedeném seznamu se více zaměřuje na testování výkonu . K provedení testu výkonu v systému Android můžete použít nástroje jako Traceview. Tento nástroj vám pomůže ladit aplikaci a profilovat její výkon.

Automatizované testování Android

Protože je Android fragmentovaný, je nutné testování na mnoha zařízeních. Ale to vás také bude stát peníze. Automatizované testování systému Android může pomoci snížit náklady

Výhody automatizovaného testování systému Android

  • Zkraťte čas na provedení testovacích případů
  • Zvyšte produktivitu svého vývojového procesu
  • Včasná detekce chyb, úspora nákladů na údržbu softwaru
  • Rychle vyhledejte a opravte chyby při implementaci
  • Zajistěte kvalitu softwaru

Budeme studovat následující 2 rámce

  • Rámec testování Android
  • Robolektrický testovací rámec

Rámec testování Android

Jedním ze standardních testovacích rámců pro aplikace pro Android je Android testování rámec . Jedná se o výkonný a snadno použitelný testovací rámec, který je dobře integrován s nástroji Android SDK.

Architektura testování architektury Android

  1. Balíček aplikace je vaše cílová aplikace, kterou je třeba otestovat
  2. InstrumentationTestRunner je testovací běžec, který provádí testovací případ v cílové aplikaci. To zahrnuje:

2a) Testovací nástroje: Nástroje SDK pro testování budov. Jsou integrovány do Eclipse IDE nebo běží jako příkazový řádek.

2b) MonkeyRunner: Nástroj, který poskytuje rozhraní API pro psaní programu, který ovládá zařízení nebo emulátor Android mimo kód Android.

  1. Testovací balíček je uspořádán do testovacích projektů. Tento balíček dodržuje konvenci 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“. Balíček testu obsahuje 2 objekty, jak je uvedeno níže:

3a) Třídy testovacích případů: zahrnují testovací metody prováděné v cílové aplikaci.

3b) Mock objekty: zahrnuje falešná data, která budou použita jako vstupní vzorek pro testovací případy.

Třídy testovacích případů Android

Diagram tříd AndroidTestCase

  1. TestCase obsahuje metody JUnit pro spuštění testu JUnit
  2. TestSuite se používá ke spuštění sady testovacích případů
  3. InstrumentationTestSuite je TestSuite, který před spuštěním vloží Instrumentation do InstrumentationTestCase.
  4. InstrumentationTestRunner je testovací běžec, který provádí testovací případ v cílové aplikaci.
  5. AndroidTestCase rozšiřuje JUnit TestCase. Obsahuje metody pro přístup k prostředkům, jako je kontext aktivity.
  6. ApplicationTestCase ověřuje třídy aplikací 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í aktivit aplikací.
  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í jedné izolované aktivity.
  13. ActivityInstrumentationTestCase2 rozšiřuje třídu JUnit TestCase. Spojuje vás s cílovou aplikací s přístrojovým vybavením. S touto třídou můžete přistupovat ke komponentě GUI aplikace a odesílat do uživatelského rozhraní událost uživatelského rozhraní (stisk klávesy nebo dotyková událost).

Níže je příklad ActivityInstrumentationTestCase. Ověří činnost uživatelského rozhraní aplikace Kalkulačka, zkontroluje správnost výstupů uživatelského rozhraní.

Příklad testování ActivityInstrumentationTestCase2

Robolektrický testovací rámec

Testování pomocí platformy Android Testing se zařízením nebo emulátorem je obtížné. Vytváření a provozování testu je pomalé a vyžaduje mnoho vývojového úsilí. Chcete-li tento problém vyřešit, existuje další volba - rámec Robolectric Testing .

Robolektrický rámec umožňuje spouštět testy Androidu přímo na JVM bez potřeby zařízení nebo emulátoru.

Pokročilé funkce Robolectric

Robolektrické třídy testovacích případů

Provoz Robolectric

  • 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í třídy Android
  • Používá javaassist k přepsání těl metod třídy Android
  • Vázat stínový objekt do třídy Android
  • To umožňuje spuštění testovaného kódu bez prostředí Android.

Ostatní testovací rámec

Kromě testovacích frameworků, které byly zmíněny výše, existuje mnoho dalších testovacích frameworků, jako například:

  • Android Junit Report, vlastní testovací nástroj pro Android pro Android, který generuje zprávy XML pro integraci s dalšími nástroji.
  • Expresso
  • Appium

Mýty o testování systému Android

Mnoho podniků vyvíjí strategie testování systému Android, které jsou založeny na běžných mylných představách. Tato část zkoumá několik populárních mýtů a realit testování systému Android.

Mýtus č. 1: Všechna zařízení Android jsou stejná ... test na emulátorech je dost

Začněme jednoduchým příkladem. Aplikace funguje perfektně na emulátorech, ale na některých reálných zařízeních se během provádění zhroutí

Selhání aplikace během provádění na skutečném zařízení

Emulátory pro testování na mobilních zařízeních nestačí . Svou aplikaci musíte otestovat na skutečných zařízeních.

Mýtus č. 2: Testování na některých běžných zařízeních je dost

  • Na různých zařízeních vypadá vaše aplikace jinak, protože různá zařízení mají odlišný hardware, velikost obrazovky, paměť atd. Je nutné otestovat aplikaci na různých zařízeních, verzích OS, sítích operátora a umístění.

Mýtus č. 3: Stačí průzkumné testování těsně před spuštěním

  • Obecně při všech testech navrhujeme testovací případy a poté je spouštíme. Ale v Průzkumném testování, návrhu a provedení testu bude vše provedeno společně.
  • Při průzkumném testování neexistuje žádný plán ani žádná příprava, potom 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í
  • Prvním důvodem špatné kontroly na Google Play jsou problémy s kvalitou. Ovlivňuje to vaši pověst a ztrácíte důvěru zákazníků.

Proto je nezbytné mít zavedenou správnou strategii testování systému Android

Osvědčené postupy v testování systému Android

  • Vývojáři aplikací by měli testovací případy vytvářet současně při psaní kódu
  • Všechny testovací případy by měly být uloženy v řízení verzí společně se zdrojovým kódem
  • Používejte nepřetržitou integraci a spusťte testy při každé změně kódu
  • Nepoužívejte emulátory a rootovaná zařízení