Dezvoltare Aplicatii MobileTestarea automată pentru aplicații, jocuri și web mobile (I)Posted on May 31, 2021 by andra

Testarea automată pentru aplicații, jocuri și web mobile (I)

Testarea este crucială pentru asigurarea succesului în peisajul extrem de competitiv al aplicațiilor și jocurilor mobile. Dar chiar și testarea prost planificată poate ocupa 20-50% din efortul total de dezvoltare, caz în care ar reprezenta și cel mai mare cost unic din bugetul dvs. Pentru a ne asigura că testarea este extrem de eficientă, acoperind lățimea ecosistemelor mobile și a modelelor de dispozitive actuale, cea mai bună opțiune este un serviciu online bazat pe cloud.

Ecosisteme de aplicații mobile – să ne bazăm pe Android și iOS

Sunt incredibil de dinamici, dar suferă și de fragmentarea software-ului și a hardware-ului. Acest lucru este valabil mai ales pentru Android, dar fragmentarea există și în ecosistemul iOS, așa cum s-a experimentat cu lansarea iOS 8. Pe măsură ce a fost lansată cea mai recentă versiune de iOS, multe aplicații existente au devenit stângace pe dispozitivele actualizate.

Chiar și noul iPhone 6 și iPhone 6 Plus au avut probleme nu atât de tipice pentru dispozitivele Apple. În plus, o proporție semnificativă de utilizatori cu dispozitive mai vechi au foarte puține opțiuni: în esență, cumpărați hardware nou (adică un dispozitiv nou) pentru ca totul să funcționeze bine.

În lumea Android, lucrurile stau diferit. Pe măsură ce OEM-urile lansează noi dispozitive, actualizările de software și personalizările pentru dispozitivele lor, dezvoltatorii de aplicații și jocuri suferă de dureri de cap serioase, încercând să-și mențină cele mai recente produse la curent și să fie pe deplin compatibile cu toate variantele posibile de dispozitive. Totuși, nu se pune problema ca o anumită aplicație sau joc să funcționeze numai pe dispozitive de ultimă generație. De ce ar dori un dezvoltator să rateze o parte semnificativă din potențialii utilizatori?

Software-ul profesional de testare automată este o soluție la o problemă obișnuită: cum se produce software de înaltă calitate, robust și fiabil, cu complexitatea tot mai mare a tehnologiei și sub o presiune concurențială masivă. Testarea automată a software-ului este o soluție rentabilă pentru această problemă. Ca să nu mai vorbim, oferă trei avantaje pentru afaceri:

  • eficiență sporită a testării,
  • eficacitate crescută a testării,
  • timp mai rapid de lansare pe piață.

Ce vei învăța

Acest articol parcurge un exemplu de caz de utilizare pentru automatizarea testelor și oferă un exemplu descărcabil pentru a începe. De asemenea, ne vom concentra asupra diferitelor aspecte ale automatizării testelor mobile și vom explica modul în care acest subiect relativ nou, dar popular, poate ajuta dezvoltatorii de aplicații și jocuri mobile să construiască produse mai bune și mai robuste pentru consumatori. Cu exemplul avansat mai târziu în articol, vom arăta modul în care recunoașterea imaginii poate fi utilizată pentru a testa jocurile mobile; în mod specific, vom rula cadrul de automatizare a testului Appium împotriva jocului Supercell’s Clash of Clan pentru a ilustra modul în care recunoașterea imaginii poate fi integrată în procesul de automatizare a testelor.

Testarea automată este perfectă pentru dezvoltarea aplicațiilor mobile

Dezvoltarea de aplicații mobile este foarte diferită de dezvoltarea de software pentru computer sau chiar software încorporat. Dezvoltarea mobilă este menită să fie agilă și o mulțime de instrumente și practici excelente au fost dezvoltate pentru acea agilitate. Cu toate acestea, a face ceva manual – cum ar fi testarea unei aplicații – nu este niciodată agil, motiv pentru care automatizarea testelor a arătat o creștere extraordinară în rândul dezvoltatorilor de aplicații și jocuri, accelerând acțiunile lor și oferind rezultate robuste și mai bune.

Pentru a obține compatibilitatea între utilizatori, dispozitive și piață, inclusiv automatizarea testelor ca parte a procesului de dezvoltare agilă este tipică. Din fericire, sunt disponibile o mulțime de instrumente, iar automatizarea testelor se potrivește perfect pentru acest proces. De exemplu, să presupunem că sprintul tău de dezvoltare tipic este de două săptămâni. Aveți stand-uri zilnice și o mulțime de activități scrum și dețineți politici interne care orientează dezvoltarea către produsul final. Automatizarea testelor oferă o valoare adăugată semnificativă, permițând efectuarea testelor în paralel – de exemplu, ca sesiuni de testare nocturne. Până a doua zi dimineață, testele vor fi finalizate, iar rezultatele ultimei regresii vor fi gata pentru revizuire. Rezolvarea unei probleme mai devreme va economisi mult timp și va determina dezvoltatorii să finalizeze produsul mai devreme; cel mai important, se cumulează la o calitate mai bună, cu mai puține bug-uri.

 

Lucruri de luat în considerare la automatizarea testării aplicațiilor mobile

Să vedem cum automatizarea testelor (spre deosebire de testarea manuală) poate îmbunătăți procesul de dezvoltare, adăuga valoare și accelera dezvoltarea.

Automatizarea testelor oferă posibilitatea de a testa aplicațiile mobile instant și eficient. Odată ce testele au fost automatizate, acestea pot fi executate rapid și repetat, din nou și din nou. În aproape toate cazurile, aceasta este cea mai rentabilă metodă pentru testarea de regresie a produselor software care au o durată de viață lungă. De fapt, automatizarea testelor oricărei aplicații mobile este cea mai bună modalitate de a spori eficacitatea, eficiența și acoperirea procesului de testare. Adevăratul beneficiu al automatizării vine nu numai din repetabilitatea testelor, ci și din capacitatea de a executa teste care probabil nici măcar nu ar putea fi efectuate manual.

CHELTUIELI ȘI ACTIVE

Indiferent dacă alegeți testarea manuală sau automată, veți avea nevoie de următoarele active și resurse (toate acestea costând bani): timp, oameni, infrastructură, instrumente și instruire. În funcție de dimensiunea proiectului și a aplicației, automatizarea testelor va oferi, evident, o bună rentabilitate a investiției. De exemplu, odată ce au fost create cazurile de testare, testele automate pot fi rulate iar și iar fără costuri suplimentare, iar acestea pot fi finalizate mai rapid decât orice teste manuale. Testarea automată a software-ului poate reduce timpul necesar pentru efectuarea testelor repetitive de la săptămâni la ore. Aceasta este o economie semnificativă de timp care se traduce direct în economii de costuri.

CICLU INTEGRAT DE DEZVOLTARE ȘI TESTARE A APLICAȚIILOR

Creșterea eficienței și productivității cu automatizarea începe de fapt cu adoptarea unei noi mentalități. Testele software trebuie repetate adesea pe parcursul tuturor ciclurilor de dezvoltare pentru a asigura cea mai bună calitate posibilă a unei aplicații. De fiecare dată când codul sursă este modificat, testele software trebuie repetate. Pentru fiecare versiune, software-ul dvs. ar trebui testat pe toate variantele de sisteme de operare acceptate și pe toate configurațiile hardware. Repetarea manuală a acestor teste ar fi costisitoare și consumatoare de timp. De exemplu, efectuarea manuală a unor teste complete pe toate variantele de Android și pe dispozitivele reale ar necesita mult timp.

INSTRUMENTE ȘI TEHNOLOGIE: CADRE DE AUTOMATIZARE A TESTELOR

Pentru a profita la maximum de eforturile dvs. și pentru a maximiza acoperirea testării, selectați cea mai robustă și mai multiplată metodă. Este bine cunoscut faptul că metodele automatizate pot fi utilizate atât pentru validarea cerințelor, cât și pentru reducerea costurilor prin generarea automată de cazuri de testare. Cu toate acestea, automatizarea completă a entităților software mari vine, de asemenea, cu un cost pe care multe companii nu au fost gata să îl plătească. Din punct de vedere istoric, unul dintre motive a fost îngrijorarea cu privire la lipsa unei integrări adecvate cu cicluri de viață de dezvoltare bine stabilite.

 

ACOPERIREA ȘI REUSABILITATEA TESTULUI

Testarea automată poate crește profunzimea și sfera testelor și poate îmbunătăți semnificativ calitatea software-ului. Testele lungi și amănunțite – adesea imposibile cu testele manuale – pot fi rulate automat. În mod ideal, cazurile de testare ar trebui să aibă acces deplin la o aplicație și să testeze toate aspectele acesteia – conținutul memoriei, tabelele de date, conținutul fișierelor și stările interne ale programului – pentru a determina dacă produsul se comportă conform așteptărilor. Testele automatizate pot executa cu ușurință mii de cazuri de testare complexe în timpul fiecărei teste, oferind o acoperire care pur și simplu nu este posibilă cu testarea manuală. Dezvoltatorii, eliberați de teste manuale repetitive, vor avea mai mult timp pentru a crea noi teste automate și pentru a construi caracteristici mai convingătoare (și apoi mai multe cazuri de testare).

ÎMBUNĂTĂȚI EFICACITATEA 

Pe scurt, software-ul profesional de testare automată este o soluție la o problemă comună: cum să producem software de înaltă calitate, robust și fiabil, cu complexitatea tot mai mare a tehnologiei și sub o presiune concurențială masivă. Testarea automată îmbunătățește rezultatele afacerii în trei moduri: o eficiență mai mare a testării, o eficiență mai mare a testării și un timp mai scurt de lansare pe piață.

Diferite moduri de automatizare a testării mobile

În general, există trei modalități de automatizare a testării aplicațiilor mobile.

SCRIPTURI DE TEST MANUAL

De obicei, aceasta este cea mai bună alegere atunci când știți ce faceți și când aveți oameni capabili de programare care efectuează scripturile de testare. O mulțime de opțiuni sunt disponibile pentru cadrele, instrumentele și integrarea de automatizare a testelor – atât oferte comerciale, cât și open-source. Solicitarea inginerilor de a scrie toate scripturile de testare va ocupa ceva timp și va lega resursele, dar vă va oferi exact ceea ce doriți: scripturi bine structurate și detaliate, care testează cu precizie aspectele aplicației pe care doriți să le testați.

ABORDARE RECORD-PLAYBACK

Această abordare este mai puțin predispusă la erori, deoarece nu trebuie scris nimic în cod, dar este de obicei mai limitată în ceea ce privește funcționalitatea. Testele pot fi înregistrate rapid și apoi redate din nou și din nou pe diferite versiuni ale sistemului de operare și configurații ale dispozitivului. Aceste teste se concentrează pe interacțiunile utilizatorilor și activitățile conduse de utilizator. Unele lucruri ar putea să depășească domeniul de aplicare al testului (cum ar fi integrarea cu alte tehnologii și compatibilitatea cu alte programe software).

EXERCITATORI AUTOMATICI DE TESTE

Aparatele de testare automate oferă o modalitate excelentă de testare a fumului. Nu sunt necesare teste specifice; mai degrabă, accentul se pune pe testarea logicii interfeței utilizatorului (cum ar fi deschiderea meniurilor, clic pe butoane, glisare și acțiuni cu mai multe gesturi). Exerciții de testare automată oferă cele mai puține rezultate exacte, dar oferă feedback rapid cu privire la fiecare iterație a unei aplicații.

Domenii de concentrare în testarea aplicațiilor și jocurilor mobile

INTERFATA UTILIZATORULUI ȘI FUNCȚIONALITATEA

O interfață cu utilizatorul și funcționalitatea sa generală vor afecta în mod direct succesul aplicației sau jocului dvs. Aceste două lucruri, care cuprind atracția vizuală și jocul, sunt cele mai importante lucruri pentru a obține corect – și trebuie să vă asigurați că fragmentarea dispozitivului nu rupe nimic din acestea. Diverse lucruri din interfața de utilizare trebuie testate:

  • Aspecte și elemente ale interfeței de utilizare. Jocurile sunt în mod special vizate la un număr mare de rezoluții și tipuri de ecran diferite. Testarea de regresie trebuie făcută de fiecare dată când aspectul interfeței se schimbă pentru a se asigura că jocul funcționează.
  • Structura și funcțiile meniului. Testarea structurilor meniului, funcționalității și comportamentului poate fi automatizată cu instrumentare și cu ajutorul diferitelor cadre de testare-automatizare.
  • Orientarea ecranului. În mod surprinzător, atât de multe aplicații și jocuri de acolo se înșală. De exemplu, dacă orientarea unui ecran se schimbă în timpul unei interacțiuni, ce se întâmplă? Ce ar trebui să se întâmple? Aplicația sau jocul funcționează bine atât în modurile peisaj cât și în mod portret?
  • Rezolutia ecranului. Există o mulțime de rezoluții de ecran, în special pe Android, iar scalarea automată îi va ajuta de obicei pe dezvoltatori. Cu toate acestea, testați-vă jocul pe baza acestor rezoluții pentru a vă asigura că grafica nu se întinde.

PERFORMANȚĂ GRAFICĂ

Performanța trebuie să fie consecventă în toate variantele de dispozitiv ale utilizatorilor dvs. Din această cauză, testați pe cât mai multe dispozitive reale. Pentru a determina cât de bine răspunde aplicația sau jocul dvs. la diferite niveluri de utilizare, inclusiv performanța și utilizarea bateriei, luați în considerare crearea unor teste care durează ore întregi. Pentru a determina dacă jocul rulează eficient sub o sarcină grea pentru o lungă perioadă de timp, rulați testele de sarcină (sau de stres). Aceste teste de performanță vor măsura, de exemplu, cât de receptiv este jocul dvs. pe dispozitive reale.

Concluzie

Testarea este crucială pentru asigurarea succesului în peisajul extrem de competitiv al aplicațiilor și jocurilor mobile. Dar chiar și testarea prost planificată poate dura 20 până la 50% din efortul total de dezvoltare. În acest caz, acesta ar reprezenta și cel mai mare cost din bugetul dvs. Pentru a ne asigura că testarea este extrem de eficientă, acoperind lățimea ecosistemelor mobile și a modelelor de dispozitive actuale, cea mai bună opțiune este un serviciu online bazat pe cloud.

Dacă începeți să vă gândiți la testare doar cu câteva zile înainte ca aplicația să intre pe piață, este prea târziu. Va trebui să testați o multitudine de elemente, date și funcționalități încă din prima zi.

Tags: aplicatii mobile, dezvoltare aplicatii, testare aplicatii