Tutorial de testare APP Android cu Automation Framework

Cuprins:

Anonim

De ce testarea Android?

Android este cel mai mare sistem de operare din lume. În același timp, Android este fragmentat. există o mulțime de dispozitive și versiuni Android cu care aplicația dvs. trebuie să fie compatibilă.

Nu contează cât timp investiți în proiectare și implementare, greșelile sunt inevitabile și vor apărea erori.

În acest tutorial, veți învăța-

  • De ce testarea Android?
  • Strategia de testare Android
    • Teste unitare
    • Teste de integrare
    • Teste operaționale
    • Teste de sistem
  • TESTARE ANDROID automatizată
    • Cadrul de testare Android
    • Cadrul de testare robolectrică
  • Mituri ale testării Android
  • Cele mai bune practici în testarea Android

Strategia de testare Android

O strategie corectă de testare pentru Android ar trebui să includă următoarele

  1. Test de unitate
  2. Test de integrare
  3. Test operațional
  4. Test de sistem

Teste unitare

Testele unitare includ seturi de unul sau mai multe programe care sunt concepute pentru a verifica o unitate atomică de cod sursă, cum ar fi o metodă sau o clasă.

Platforma Android vine cu un cadru pre-integrat Junit 3.0. Este un cadru open source pentru automatizarea testării unitare. Android Testing Framework este un instrument puternic pentru dezvoltator pentru a scrie programul de testare unitar eficient.

Integrarea cadrului Android și JUnit

Un plus la testarea unitară este testele interfeței utilizator (UI). Aceste teste se referă la componentele UI ale aplicației dvs. țintă. Testele UI vă asigură că aplicația dvs. returnează ieșirea UI corectă ca răspuns la secvența acțiunilor utilizatorului pe dispozitiv.

Acțiuni obișnuite ale interfeței de utilizare a utilizatorului în aplicație

Modul obișnuit de testare a performanței UI pe dispozitiv este Android Instrumentation. Dar acest lucru are probleme de performanță. Unul dintre cele mai bune instrumente pentru efectuarea testelor UI pe Android este Robotium.

Teste de integrare

În testarea integrării, toate modulele testate unitar sunt combinate și verificate. În Android, testele de integrare implică adesea verificarea integrării cu componente Android, cum ar fi testarea serviciului, testarea activității, testarea furnizorului de conținut etc.

Tipuri de test de integrare pe Android

Există multe cadre de testare utilizate pentru a efectua teste de integrare pentru Android, cum ar fi Troyd, Robolectric, Robotium.

Teste operaționale

  • Operaționale se mai numesc Teste funcționale sau Teste de acceptare. Sunt teste de nivel înalt concepute pentru a verifica completitudinea și corectitudinea aplicației.
  • În Android, FitNesse este un cadru open-source care facilitează efectuarea testelor operaționale pentru aplicația țintă.

Teste de sistem

În testarea sistemului, sistemul este testat în ansamblu și se verifică interacțiunea dintre componente, software și hardware.

În Android, Testarea sistemului include în mod normal

  • Teste GUI
  • Teste de utilizare
  • Teste de performanță
  • Testele de stres

În lista de mai sus, testarea performanței este mai concentrată. Puteți utiliza instrumente precum Traceview pentru a efectua testul de performanță pe Android. Acest instrument vă poate ajuta să depanați aplicația și să profilați de performanța acesteia.

TESTARE ANDROID automatizată

Deoarece Android este fragmentat, este necesară testarea pe o multitudine de dispozitive. Dar acest lucru vă va costa și bani. Testarea automată Android poate ajuta la reducerea costurilor

Avantajele testării automate Android

  • Reduceți timpul pentru executarea cazurilor de testare
  • Creșteți productivitatea procesului de dezvoltare
  • Detectarea timpurie a erorilor, economisește costul întreținerii software-ului
  • Găsit rapid și remediați erorile la implementare
  • Asigurați-vă calitatea software-ului

Vom studia următoarele 2 cadre

  • Cadrul de testare Android
  • Cadrul de testare robolectrică

Cadrul de testare Android

Unul dintre cadrele de testare standard pentru aplicația Android este cadrul de testare Android . Este un cadru de testare puternic și ușor de utilizat, care este bine integrat cu instrumentele SDK Android.

Arhitectură cadru de testare Android

  1. Pachetul de aplicații este aplicația dvs. țintă care trebuie testată
  2. InstrumentationTestRunner este testerul Runner care execută testul cazului pe aplicația țintă. Include:

2a) Instrumente de testare: un instrument SDK pentru testarea clădirilor. Acestea sunt integrate în Eclipse IDE sau rulează ca linie de comandă.

2b) MonkeyRunner: un instrument care oferă API-uri pentru programul de scriere care controlează un dispozitiv Android sau un emulator în afara codului Android.

  1. Pachetele de testare sunt organizate în proiecte de testare. Acest pachet respectă convenția de denumire. Dacă aplicația testată are un nume de pachet "com.mydomain.myapp" decât pachetul Test ar trebui să fie "com.mydomain.myapp.test". Pachetul de testare include 2 obiecte, după cum urmează:

3a) Clase de caz de testare: includ metode de testare pentru executarea pe aplicația țintă.

3b) Obiecte simulate: include date simulate care vor fi utilizate ca eșantion de intrare pentru cazurile de testare.

Clasele de cazuri de testare Android

Diagrama clasei AndroidTestCase

  1. TestCase include metode JUnit pentru a rula testul JUnit
  2. TestSuite este utilizat pentru a rula un set de cazuri de testare
  3. InstrumentationTestSuite este un TestSuite care injectează Instrumentation în InstrumentationTestCase înainte de a le rula.
  4. InstrumentationTestRunner este tester runner care execută test test pe aplicația țintă.
  5. AndroidTestCase extinde JUnit TestCase. Conține metode pentru accesarea resurselor, cum ar fi Contextul activității.
  6. ApplicationTestCase verifică clasele de aplicații într-un mediu controlat.
  7. InstrumentationTestCase verifică o anumită caracteristică sau comportament al aplicației țintă, de exemplu, verifică ieșirea UI a aplicației.
  8. ActivityTestCase este clasa de bază care acceptă testarea activităților aplicației.
  9. ProviderTestCase este clasa pentru testarea ContentProvider unic.
  10. ServiceTestCase este utilizat pentru a testa clasele de servicii în mediul de testare. De asemenea, susține ciclul de viață al serviciului.
  11. SingeLauchActivityTestCase este utilizat pentru a testa o singură activitate cu un InstrumentationTestCase.
  12. ActivityUnitTestCase este utilizat pentru a testa o singură activitate izolată.
  13. ActivityInstrumentationTestCase2 extinde clasa JUnit TestCase. Vă conectează la aplicația țintă cu instrumentație. Cu această clasă, puteți accesa componenta GUI a aplicației și puteți trimite eveniment UI (tastare sau eveniment tactil) către UI.

Mai jos este un exemplu de ActivityInstrumentationTestCase. Verifică funcționarea UI a aplicației Calculator, verifică corectitudinea ieșirilor UI.

Exemplu de testare ActivityInstrumentationTestCase2

Cadrul de testare robolectrică

Testarea utilizând cadrul de testare Android cu dispozitiv sau emulator este dificilă. Testul de construire și funcționare este lent și necesită mult efort de dezvoltare. Pentru a remedia această problemă, există o altă alegere - cadrul de testare Robolectric .

Cadrul Robolectric vă permite să rulați teste Android direct pe JVM fără a fi nevoie de un dispozitiv sau un emulator.

Caracteristici avansate ale Robolectric

Clase de cazuri de testare robolectrică

Funcționarea Robolectric

  • După cum se arată mai sus, Robolectric poate efectua următoarele acțiuni:
  • Înregistrați-vă și creați o clasă Shadow
  • Interceptați încărcarea clasei Android
  • Folosește javaassist pentru a suprascrie metodele corpurilor clasei Android
  • Legați obiectul Shadow de clasa Android
  • Aceasta permite executarea codului testat fără mediul Android.

Altele cadru de testare

În afară de cadrele de testare menționate mai sus, există multe alte cadre de testare, cum ar fi:

  • Android Junit Report, un tester de instrumentare personalizat pentru Android care generează rapoarte XML pentru integrare cu alte instrumente.
  • Expresso
  • Appium

Mituri ale testării Android

Multe întreprinderi dezvoltă strategii de testare Android care se bazează pe concepții greșite comune. Această secțiune examinează câteva mituri și realități populare ale testării Android.

Mitul nr. 1: Toate dispozitivele Android sunt aceleași ... testul pe emulatoare este suficient

Să începem cu un exemplu simplu. O aplicație funcționează perfect pe emulatoare, dar pe unele dispozitive reale, se blochează în timpul execuției

Aplicația se blochează în timpul execuției pe dispozitivul real

Emulatoarele nu sunt suficiente pentru testarea mobilă. Trebuie să vă testați aplicația pe dispozitive reale.

Mitul nr. 2: Testarea pe unele dispozitive comune este suficientă

  • Pe diferite dispozitive, aplicația dvs. arată diferit, deoarece diferite dispozitive au hardware, dimensiuni ale ecranului, memorie etc.

Mitul # 3: Testarea exploratorie chiar înainte de lansare este suficientă

  • În general, în toate testările, proiectăm cazurile de testare, apoi le executăm. Dar în testarea exploratorie, proiectarea și executarea testelor vor fi realizate împreună.
  • În testarea exploratorie, nu există niciun plan și nici o pregătire, apoi testerul ar face teste pe care vrea să le facă. Unele funcții vor fi testate în mod repetat, în timp ce unele funcții nu vor fi testate în totalitate.

Mitul # 4: dacă există unele erori în aplicație, utilizatorii vor înțelege

  • Dacă aplicația nu funcționează și are erori, utilizatorii vă dezinstalează aplicația
  • Problemele de calitate sunt primul motiv pentru recenzii proaste în Google Play. Vă afectează reputația și pierdeți încrederea clientului.

Prin urmare, este esențial să existe o strategie de testare Android adecvată

Cele mai bune practici în testarea Android

  • Dezvoltatorii de aplicații ar trebui să creeze cazurile de test în același timp când scriu codul
  • Toate cazurile de testare trebuie stocate în controlul versiunii, împreună cu codul sursă
  • Utilizați integrarea continuă și rulați teste de fiecare dată când codul este modificat
  • Evitați să utilizați emulatoare și dispozitive înrădăcinate