Android Tutorial de testare a aplicațiilor cu cadru de automatizare

De ce Android Testarea?

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

Android Testarea

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

Android Testarea

Android Strategia de testare

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

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

Android Strategia de testare

Testele unitare

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

Android platforma vine pre-integrată Junit cadru 3.0. Este un cadru open source pentru automatizare Testarea unității. Android Testing Framework este un instrument puternic pentru dezvoltatori pentru a scrie programul eficient de testare unitară.

Integrarea Android si  JUnit Cadru
Integrarea Android si JUnit cadru

Un plus față de Testarea unitară sunt testele interfeței cu utilizatorul (UI). Aceste teste se referă la componentele UI ale aplicației dvs. țintă. Testele UI asigură că aplicația dvs. returnează rezultatul corect al UI ca răspuns la secvența de acțiuni ale utilizatorului pe dispozitiv.

Acțiuni comune ale interfeței utilizatorului pe aplicație
Acțiuni obișnuite ale interfeței utilizatorului pe aplicație

Modul obișnuit de a testa performanța UI pe dispozitiv este Android Instrumentație. Dar asta are probleme de performanță. Unul dintre cele mai bune instrumente pentru a efectua testarea UI Android is Robotium.

Teste de integrare

In Testare de integrare, toate modulele testate în unitate, sunt combinate și verificate. În Android, testele de integrare implică adesea verificarea integrării cuAndroid componente precum testarea serviciilor, testarea activității, testarea furnizorilor de conținut etc

Teste de integrare
Tipuri de testare de integrare pe Android

Există multe cadre de testare pentru care sunt utilizate pentru a efectua teste de integrare Android precum Troyd, Robolectric, Robotium.

Operateste naţionale

  • Operaționale sunt numite și Teste funcționale sau Teste de acceptare. Sunt teste de nivel înalt concepute pentru a verifica caracterul complet și corectitudinea aplicării.
  • In Android, Fitness este un cadru open-source care facilitează efectuarea de teste operaționale pentru aplicația țintă.

Teste de sistem

In Testarea sistemului sistemul este testat ca un întreg și interacțiunea dintre componente, software și hardware este verificată.

In Android, Testarea sistemului include în mod normal

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

În lista de mai sus, Test de performanta i se acordă mai multă atenție. Puteți folosi instrumente precum Traceview pentru a efectua un test de performanță pe Android .Acest instrument vă poate ajuta să vă depanați aplicația și să profilați performanța acesteia.

TESTARE ANDROID automatizată

Deoarece Android este fragmentat, este necesară testarea pe o multitudine de dispozitive. Dar asta te va costa și bani. Automatizat Android Testarea poate ajuta la reducerea costurilor

Beneficiile testării automate Android

  • Reduceți timpul pentru executarea cazurilor de testare
  • Creșteți productivitatea procesului dvs. de dezvoltare
  • Detectarea timpurie a erorilor, economisiți costurile de întreținere a software-ului
  • Găsiți și remediați rapid erorile la implementare
  • Asigurați calitatea software-ului

Vom studia următoarele 2 cadre

  • Android Cadrul de testare
  • Cadrul de testare Roboelectric

Android cadrul de testare

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

Android Cadrul de testare
Android cadrul de testare Architectură
  1. Pachetul aplicației este aplicația dvs. țintă care trebuie testată
  2. InstrumentationTestRunner este Caz de testare runner care execută cazul de testare pe aplicația țintă. Include:

2a) Instrumente de testare: Un instrument SDK pentru testarea construcției. Sunt integrati in Eclipse IDE sau rulați ca linie de comandă.

xnumxb) MonkeyRunner: Un instrument care oferă API-uri pentru scrierea programelor care controlează un Android dispozitiv sau emulator în afara Android cod.

  1. Pachet de testare sunt organizate în proiecte de testare. Acest pachet urmează convenția de denumire. Dacă aplicația testată are un nume de pachet „com.mydomain.myapp”, atunci pachetul de testare ar trebui să fie „com.mydomain.myapp.test”. Pachetul de testare include 2 obiecte, după cum urmează:

3a) Clase de cazuri de testare: includ metode de testare pentru a fi executate pe aplicația țintă.

3b) Obiecte simulate: include date simulate care vor fi folosite ca intrare de probă pentru cazurile de testare.

Android Clasele de caz de testare

Android Clasele de caz de testare
AndroidDiagrama de clasă TestCase
  1. TestCase include JUnit metode de rulare JUnit test
  2. TestSuite este folosit 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 runnerul de caz de testare care execută cazul de testare pe aplicația țintă.
  5. AndroidTestCase extinde JUnit TestCase. Conține metode de accesare a resurselor, cum ar fi contextul activității.
  6. ApplicationTestCase verifică clasele de aplicație î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 unui singur ContentProvider.
  10. ServiceTestCase este folosit pentru a testa clasele de servicii în mediul de testare. De asemenea, susține ciclul de viață al serviciului.
  11. SingeLauchActivityTestCase este folosit pentru a testa o singură activitate cu un InstrumentationTestCase.
  12. ActivityUnitTestCase este utilizat pentru a testa o singură activitate izolată.
  13. ActivityInstrumentationTestCase2 extinde JUnit Clasa TestCase. Vă conectează la aplicația țintă cu instrumente. Cu această clasă, puteți accesa componenta GUI a aplicației și puteți trimite un eveniment UI (apăsare de taste sau eveniment de atingere) către UI.

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

ActivityInstrumentationTestCase2 Testare
Exemplu de testare ActivityInstrumentationTestCase2

Cadrul de testare Roboelectric

Testarea folosind Android Testarea cadrului cu dispozitiv sau emulator este dificilă. Testul de construire și rulare este lent și necesită mult efort de dezvoltare. Pentru a rezolva această problemă, există o altă opțiune - Roboelectric cadrul de testare.

Cadrul Roboelectric vă permite să rulați Android teste direct pe JVM fără necesitatea unui dispozitiv sau a unui emulator.

Caracteristicile avansate ale Robolectric
Caracteristicile avansate ale Robolectric

Clasele de caz de testare Roboelectric

Operaţie a Robolectric
Operaţie a 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 Android clasă
  • Utilizează javaassist pentru a suprascrie corpurile metodei Android clasă
  • Leagă obiectul Shadow la Android clasă
  • Acest lucru permite codului testat să se execute fără Android mediu. (envrironment)

Alții cadru de testare

Pe lângă cadrele de testare care au fost menționate mai sus, există multe alte cadre de testare, cum ar fi:

Mituri ale Android Testarea

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

Mitul #1: Toate Android dispozitivele sunt aceleași... testul pe emulatori este suficient

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

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

Emulatorii sunt nu e suficient pentru testarea dvs. pe mobil. Trebuie să vă testați aplicația pe dispozitive reale.

Mitul #2: Testarea pe unele dispozitive comune este suficientă

  • Pe diferite dispozitive, aplicația dvs. arată diferit, deoarece diferitele dispozitive au hardware, dimensiuni de ecran, memorie diferite etc. Trebuie să vă testați aplicația pe diferite dispozitive, versiuni de sistem de operare, rețele de transport și locații.

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

  • În general, în toate testele, proiectăm cazurile de testare și apoi le executăm. Dar în testarea exploratorie, proiectarea și execuția testelor se vor face toate împreună.
  • În testarea exploratorie, nu există niciun plan și nicio pregătire, atunci testerul ar face testele pe care dorește 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 îți dezinstalează aplicația
  • Problemele de calitate sunt primul motiv pentru recenzia proastă în Google Play. Îți afectează reputația și pierzi încrederea clienților.

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

Cele mai bune practici în Android Testarea

  • Dezvoltatorii de aplicații ar trebui să creeze cazurile de testare în același timp când scriu codul
  • Toate cazurile de testare ar trebui să fie stocate în controlul versiunii, împreună cu codul sursă
  • Utilizați integrarea continuă și rulați teste de fiecare dată când codul este schimbat
  • Evitați utilizarea emulatoarelor și a dispozitivelor înrădăcinate