- ce este testarea de automatizare?
- de ce testarea automatizării este critică într-un ciclu de viață al Software-ului?
- poate un software să testeze un alt software?
- ce teste trebuie automatizate?
- Noțiuni de bază cu testarea automatizării
- exemplu de automatizare a testelor
- cum să treceți de la testarea manuală la cea automată
- Ce Să Automatizăm?
- cum se automatizează?
- Întreținerea automatizării testului
ce este testarea de automatizare?
după cum sugerează și numele. testarea automatizării ia activități de testare software și le execută printr-un set de instrumente sau cadru de automatizare. În cuvinte simple, este un tip de testare în care un instrument execută automat un set de sarcini într-un model definit.
este nevoie de presiunea de pe testere manuale, și le permite să se concentreze pe sarcini de valoare mai mare-teste de explorare, revizuirea rezultatelor testelor, etc. În esență, o mașină preia și implementează sarcini banale, repetitive, confuze în timp, cum ar fi testele de regresie. Testarea automatizării este esențială pentru obținerea unei acoperiri mai mari a testelor în termene mai scurte, precum și o precizie mai mare a rezultatelor.
de ce testarea automatizării este critică într-un ciclu de viață al Software-ului?
Imaginați-vă acest lucru.
în prima zi ca QA, trebuie să testați o aplicație care include aproximativ 100 de câmpuri care necesită intrare. Când efectuați teste exploratorii, trebuie să introduceți manual intrarea în fiecare câmp. Acest lucru durează aproximativ 10 minute dacă sunteți foarte rapid.
apăsați Submit. Apare un mesaj de eroare. Pare o excepție netratată. Raportați bug-ul și vă simțiți foarte bine în legătură cu o treabă bine făcută. Repetați procesul, găsiți câteva bug-uri și aveți o primă zi în general productivă.
a doua zi, dezvoltatorul remediază problemele și trebuie să testați noua versiune a software-ului, repetând aceiași pași ca cu o zi înainte. Bug fix. Treabă bine făcută. O experiență bună a utilizatorului asigurată, datorită eforturilor dvs.
în a treia zi, dezvoltatorii au lansat o versiune mai nouă cu funcții mai noi. Dar pentru a vă asigura că noile caracteristici nu au rupt caracteristicile de lucru mai vechi, trebuie să repetați procesul din nou. Nu s-au găsit probleme.
cu o lună înainte, dezvoltatorii lansează continuu versiuni mai noi, ceea ce înseamnă că trebuie să continuați să testați software-ul, repetând același proces (introducerea introducerii câmpului) de fiecare dată. Ești plictisit și obosit. Precizia dvs. începe să se clatine, în urma căreia în cele din urmă ajungeți să pierdeți un bug – posibil unul destul de evident.
credeți sau nu, acesta este un scenariu destul de comun pentru majoritatea QAs. Nu este posibil să faci același lucru din nou și din nou și să fii perfect la el de fiecare dată. Aici intervine testarea automatizării.
poate un software să testeze un alt software?
Da. Acesta este întregul punct al testării automatizării. Când vine vorba de testarea regresiei, investirea efortului manual este inutilă și risipitoare. În loc să ne așteptăm ca oamenii să repete aceiași pași cu aceeași viteză, precizie și energie, este mult mai logic să programăm o mașină să facă același lucru.
ce teste trebuie automatizate?
înainte de a crea o strategie de automatizare a testelor, să aruncăm o privire la ce teste sunt cele mai fezabile pentru automatizare:
- testarea regresiei: suitele de regresie sunt în continuă creștere și necesită completarea acelorași variabile de mai multe ori pentru a se asigura că noile caracteristici nu afectează funcțiile mai vechi. Acest lucru poate fi ușor automatizat.
- testarea funcționalităților complexe: Automatizați toate testele care necesită calcule complexe, ceva predispus la erori umane.
- testarea fumului: Rulați suite automate pentru a verifica calitatea funcționalităților majore. Acest lucru economisește timp oferind o analiză rapidă a faptului dacă o construcție necesită teste mai aprofundate.
- testare bazată pe date: Automatizați testele pentru a valida funcționalitățile care trebuie testate în mod repetat cu numeroase seturi de date.
- testarea performanței: Automatizați testele care monitorizează performanța software-ului în circumstanțe diferite. A face acest lucru manual ar fi extrem de dureros și consumator de timp.
- testarea funcțională: De fiecare dată când un dezvoltator prezintă un PR, testarea funcțională trebuie să fie executată rapid și să ofere feedback imediat. Acest lucru este imposibil de realizat fără automatizare, mai ales pe măsură ce organizațiile se extind.
Noțiuni de bază cu testarea automatizării
când treceți de la testarea manuală la testarea automatizării, rețineți următoarele puncte:
- nu vizați automatizarea testelor 100%. Nu toate testele pot fi automatizate. Chiar și printre testele care pot fi automatizate, nu setați o țintă inițială de automatizare completă.
- stabiliți un obiectiv realist. De exemplu, începeți prin mutarea câtorva teste la automatizare. Scrieți cazuri de testare mai mici care pot fi reutilizate cu ușurință în testele viitoare ale aceluiași software. Map cazuri de testare cu funcții corespunzătoare pentru a oferi o mai bună acoperire de testare. Etichetați cazurile de testare, astfel încât echipele să poată avea claritate cu privire la ce să automatizeze, precum și să raporteze mai eficient.
- explorați noi domenii ale aplicației cu automatizare. Atunci când creați strategii de automatizare, asigurați-vă că cerințele de afaceri sunt luate la fel de în serios ca și considerațiile tehnice.
- știu ce să nu automatizeze. Acest lucru vă ajută să decideți domeniul de aplicare al automatizării la începutul procesului de ideație. Următoarele teste sunt cel mai bine lăsate la acoperirea manuală:
- testarea experienței utilizatorului: instrumentele nu pot reproduce nicio călătorie a utilizatorului în întregime. Este imposibil ca un algoritm să prezică modul în care utilizatorii individuali vor interacționa cu o aplicație. În scopul de a judeca de fapt, calitatea experienței utilizatorului, stick la testeri umane. Încercați să utilizați instrumente manuale de testare interactive, cum ar fi BrowserStack Live.
- testarea accesibilității: Când testați cât de accesibilă este o aplicație, nu există niciun substitut pentru utilizarea umană. Un instrument nu poate măsura accesibilitatea, deoarece oamenii au adesea opinii diferite cu privire la ceea ce este considerat accesibil. Nu este posibil ca un instrument să recunoască dacă fluxul de lucru software oferă acces ușor pentru oamenii reali.
- selectați instrumentele potrivitetestarea automată depinde în întregime de instrumente. Iată ce trebuie să luați în considerare atunci când alegeți instrumentul potrivit:
- natura software – ului: aplicația este testată pe web sau pe mobil?
pentru a testa primul, utilizați un instrument precum Selenium pentru a vă automatiza testele. Pentru acesta din urmă, Appium este unul dintre cele mai bune instrumente posibile pentru automatizare. - experiența programatorului: alegeți cadre, limbi și instrumente care se potrivesc cu confortul și experiența testerilor. Unele dintre cele mai populare limbi utilizate pentru testarea automatizării includ Java, JavaScript, Ruby, C# etc.
- Open Source sau nu: în funcție de constrângerile bugetare, se poate alege să se utilizeze instrumente open-source, cum ar fi Selenium sau Appium, în scopuri de automatizare. Cu toate acestea, este important să ne amintim că toate instrumentele open-source nu sunt inferioare omologilor lor disponibili comercial. De exemplu, Selenium Webdriver este un instrument open-source care este cel mai favorizat de testerii Automatizați din întreaga lume.
- selectați grila de testare potrivită
grila de testare se referă la infrastructura pe care vor rula toate testele automate. Acesta cuprinde o serie de dispozitive, browsere și sisteme de operare (mai multe versiuni) pe care software-ul urmează să fie testat. Este întotdeauna cel mai bine să automatizați testele pe dispozitive și browsere reale. Acest lucru va asigura că software-ul este testat în condiții reale de utilizator.
în plus, grila de testare ideală ar trebui să permită testarea paralelă. Aceasta înseamnă că testerii ar trebui să poată rula mai multe teste pe mai multe dispozitive simultan. Acest lucru reduce timpul de testare, accelerează rezultatele și oferă rezultate în termene mai scurte.
altceva de decis este dacă grila de testare ar trebui găzduită la fața locului sau în cloud. Rețineți că infrastructura la fața locului este aproape întotdeauna costisitoare de configurat și întreținut. Este nevoie de urmărirea noilor dispozitive, browsere și sisteme de operare, Actualizarea și menținerea acestora în consecință. Aceasta este o provocare, deoarece mai multe versiuni ale fiecăruia sunt lansate în fiecare lună.
în schimb, testarea pe o rețea bazată pe cloud este mai ușoară, deoarece actualizarea și întreținerea vor fi îngrijite de organizația care oferă rețeaua. De exemplu, BrowserStack oferă o rețea Cloud Selenium care este conectată la peste 2000 de dispozitive și browsere reale pentru testare. Utilizatorii trebuie pur și simplu să se înscrie și să înceapă testarea pe o rețea robustă de seleniu care este actualizată constant pentru cele mai bune rezultate posibile.
BrowserStack ‘ s real Device cloud oferă peste 2000 de browsere și dispozitive reale pentru testare instantanee, la cerere. Norul oferă, de asemenea, integrări cu instrumente CI/CD populare, cum ar fi Jira, Jenkins, TeamCity, Travis CI și multe altele. În plus, există instrumente de depanare încorporate care permit testerilor să identifice și să rezolve imediat erorile. BrowserStack facilitează, de asemenea, testarea Cypress pe peste 30 de versiuni de browser cu paralelizare instantanee, fără probleme.
încercați testarea automatizării gratuit
exemplu de automatizare a testelor
când testați manual software-ul, testerul folosește un suport și o tastatură pentru a interacționa cu acesta. Scripturile și instrumentele de automatizare reproduc această interacțiune, pas cu pas.
în acest exemplu, un calculator este testat pentru a vedea dacă poate adăuga două numere și afișa rezultatul. Manual, pașii pentru a face acest lucru ar fi următoarele:
Pasul 1: Calculator de lansare
Pasul 2: Apăsați 2
Pasul 3: Apăsați +
Pasul 4: Apăsați 3
Pasul 5: Apăsați =
Pasul 6: ecranul afișează 5
Pasul 7: Închide Calculator
un instrument de automatizare poate efectua aceiași pași cu următorul script:
//the example is written in MS Coded UI using c# language.public void TestCalculator(){//launch the applicationvar app = ApplicationUnderTest.Launch("C:\Windows\System32\calc.exe");//do all the operationsMouse.Click(button2);Mouse.Click(buttonAdd);Mouse.Click(button3);Mouse.Click(buttonEqual); //evaluate the resultsAssert.AreEqual("5", txtResult.DisplayText,"Calculator is not showing 5");//close the applicationapp.Close();}
la executarea scriptului de mai sus, se afișează exact același rezultat (5). În loc să parcurgeți pașii manuali, pur și simplu scrieți scriptul și lăsați instrumentul să aibă grijă de restul.
cum să treceți de la testarea manuală la cea automată
pentru început: puneți două întrebări.
- ce să automatizăm?
- cum se automatizează?
Ce Să Automatizăm?
- Automatizați testele necesare pentru un ciclu de eliberare frecventă. Aceasta poate include teste de fum, teste de regresie și altele asemenea. Practic, automatizați testele care accelerează întregul ciclu de testare. Amintiți-vă, intervenția manuală mai mică este egală cu rezultate mai rapide.
- Automatizați testele pe baza priorității tehnice și de afaceri. Gândiți – vă astfel: automatizarea acestui test ar ajuta afacerea? Automatizarea acestui test ar ajuta la simplificarea complexităților tehnice? Dacă răspunsul este da la oricare dintre întrebări, automatizați.
- Automatizați pe baza utilizabilității. Unele teste, cum ar fi testele de compatibilitate a browserului încrucișat, funcționează pur și simplu mai bine atunci când sunt efectuate manual. Dependența de instrumente poate limita, de asemenea, potențialul de automatizare pentru o anumită echipă sau organizație de testare.
citiți mai multe: 10 Cele mai bune practici de automatizare a testelor de urmat
cum se automatizează?
pentru început, rețineți că nu toate testele pot fi automatizate. Prin aderarea la cele trei strategii din secțiunea anterioară, devine mai ușor să inițiezi testarea automată într-o manieră practică.
- începeți mic. Automatizarea 100% nu este obiectivul și, de asemenea, nu este posibilă. Scrieți cazuri de testare mai mici, deoarece acestea sunt mai ușor de întreținut și reutilizat. Mutați un număr mic de teste pe o platformă de automatizare, executați testele, analizați rezultatele și decideți dacă procesul s-a dovedit a fi benefic pentru procesul de dezvoltare software.
- dacă beneficiile semnificative provin din operațiune, treceți mai multe teste la automatizare. Începeți să mutați testele nu numai în volum, ci și creșteți tipul de teste automatizate. Amintiți-vă că aceasta este încă o etapă experimentală. Este posibil ca anumite teste să se dovedească a fi ineficiente în automatizare și să fie mutate înapoi la testarea manuală.
- mapați cazurile de testare cu fiecare metodă sau funcție pentru a obține o acoperire mai bună a testului. Etichetați cazurile de testare pentru o identificare mai ușoară, astfel încât echipa să poată ști rapid ce teste să automatizeze. Acest lucru ajută, de asemenea, la implementarea unei mai bune raportări.
- când începeți testarea automatizării începeți prin explorarea manuală a noilor zone ale aplicației. Apoi, creați un plan de risc care să detalieze ceea ce trebuie automatizat, pe baza priorităților de afaceri și tehnice.
- utilizați Google analytics pentru a determina preferințele utilizatorului final. Creați o listă de browsere și dispozitive cu care utilizatorii sunt cel mai probabil să acceseze software-ul. Acest lucru ajută testarea automatizării să acopere interfețele potrivite și optimizează performanța software-ului pe căile potrivite ale utilizatorilor.
încercați testarea automată pe dispozitivul Real Cloud
Întreținerea automatizării testului
odată artizanale, trebuie întreținute suitele de testare a automatizării. Pe măsură ce software-ul evoluează și baza de cod se extinde, scripturile de automatizare trebuie modificate și actualizate pentru a încorpora noi funcții și funcții. Chiar și modificările minuscule ale UI pot perturba testele și le pot determina să eșueze. La proiectarea cazurilor de testare, testerii de automatizare trebuie să țină cont de efortul și costurile de întreținere.
abordarea de întreținere a automatizării testelor funcționează din două perspective principale:
- eșecul testului: când depanarea testelor eșuate, caută posibile probleme de întreținere. Scriptul de testare nu a fost actualizat în mod adecvat? O modificare a codului software a interferat cu scriptul de testare? Aceasta este o modalitate ușoară de a identifica zonele care necesită eforturi de întreținere.
- schimbarea dependențelor sau a instrumentelor: Echipa sau organizația a schimbat API-uri, instrumente de raportare, baze de date etc.? Dacă da, este posibil ca testele să fie modificate sau actualizate pentru a se alinia la noile seturi de instrumente. Pentru a realiza acest lucru, dezvoltatorii și testerii vor trebui, evident, să fie instruiți cu privire la noua infrastructură, astfel încât să poată ține pasul cu eforturile de întreținere în viitor.
care sunt elementele cheie ale unei strategii eficiente de automatizare a testelor?
testarea automatizării este o parte integrantă a oricărui ecosistem de testare. Fără a trece la o configurare de automatizare, testarea cuprinzătoare devine dificilă, la fel ca și respectarea termenelor limită din ce în ce mai scurte. În consecință, este important să se inițieze protocoalele de testare a automatizării cât mai curând posibil, într-un mod care să echilibreze și să completeze testarea manuală.
încercați pașii descriși mai sus și experimentați suficient pentru a afla care abordări dau rezultate optime. Nu vă faceți griji să eșuați de câteva ori înainte de a găsi locul dulce care permite automatizarea eficientă fără a compromite validarea umană.