automated regression testing
Acest tutorial explică provocările testării automate de regresie. Vom afla, de asemenea, despre procesul și pașii pentru automatizarea testării de regresie:
Vom învăța cum să automatizăm cazurile de testare de regresie începând de la identificarea acestora, selectând un instrument pentru automatizare, efectuând analize de cost, timp și efort, scriind scripturi și livrându-le în cele din urmă echipei de testare manuală, astfel încât să poată executa cazurile de testare de oriunde oricând.
Dacă vă întrebați de ce numai suita de test de regresie, este pentru că suita de test de regresie este candidatul principal pentru automatizare, deoarece este setul de cazuri de testare care sunt repetitive și care necesită timp. Astfel, automatizarea acestora ar economisi într-adevăr o mulțime de resurse și ar consuma mai puțin timp.
Veți primi rapoarte rapide cu privire la cazurile de test de regresie și puteți utiliza acești pași pentru a automatiza și orice alte suite de testare.
=> Faceți clic aici pentru seria completă de testare a regresiei.
Ce veți învăța:
- Testare automată de regresie
- Testare automată: provocări în mediul agil
- Pași pentru automatizarea testării de regresie
- Concluzie
Testare automată de regresie
Recent, când am vrut să încep noul meu proiect de testare automată cu patru resurse, m-am gândit să aplic oricare dintre metodologiile Agile. Dar nu am putut continua pentru că mi-au fost ridicate o serie de întrebări.
Întrebările au fost de genul:
- Este posibil să se utilizeze metodologii Agile în testarea automată?
- Pot folosi instrumentele tradiționale?
- Ar trebui să mă apuc de instrumente open-source?
- Care sunt provocările cu care trebuie să mă confrunt dacă implementez automatizarea în mediul agil?
În acest articol, permiteți-ne să analizăm câteva dintre provocările cu care ne confruntăm în timp ce implementăm metodologii de automatizare cu Agile. Testarea automată de regresie în mediul Agile reprezintă un risc de a deveni haotic, nestructurat și necontrolat.
Proiectele Agile prezintă propriile provocări echipei de automatizare. Metodologia Agile pune accentul pe colaborarea în echipă și livrarea frecventă a unui produs. Factori precum domeniul de aplicare neclar al proiectului, iterații multiple, documentare minimă, nevoi de automatizare timpurii și frecvente și implicarea activă a părților interesate etc., cer o mulțime de provocări de la echipa de automatizare.
Testare automată: provocări în mediul agil
Există mai multe provocări Agile pentru echipa de automatizare. Cu toate acestea, a câteva dintre ele sunt prezentate mai jos.
Provocarea 1:Faza Cerințelor
Dezvoltatorul Test Automation surprinde cerințele sub formă de „povești ale utilizatorilor”, care sunt scurte descrieri ale funcționalității relevante pentru clienți.
Fiecare cerință trebuie prioritizată după cum urmează:
Înalt: Acestea sunt cerințe critice pentru misiune, care trebuie îndeplinite în prima versiune
Mediu: Acestea sunt cerințele importante, dar care pot fi soluționate până la implementare.
Scăzut: Acestea sunt cerințele care sunt plăcute, dar nu critice pentru funcționarea software-ului.
Odată stabilite prioritățile, sunt planificate „iterațiile” de lansare. În mod normal, fiecare iterație de lansare Agile durează între 1 și 3 luni pentru livrare. Utilizatorii clienți / software își iau libertatea de a face prea multe modificări ale cerințelor. Uneori, aceste modificări sunt atât de volatile, încât iterațiile sunt blocate. Aceste schimbări reprezintă provocări mai mari în implementarea procesului de testare Agile Automation.
program de sortare simplă merge în c ++
Provocarea 2:Selectarea instrumentelor potrivite
Instrumentele tradiționale, cu ultimele teste, cu funcții de înregistrare și redare, obligă echipele să aștepte până la finalizarea software-ului. Mai mult, instrumentele tradiționale de automatizare a testelor nu funcționează pentru un context Agile, deoarece soluționează probleme tradiționale care sunt diferite de provocările cu care se confruntă echipele Agile Automation.
Automatizarea în primele etape ale unui proiect agil este de obicei foarte dură, dar pe măsură ce sistemul crește și evoluează, unele aspecte se soluționează și devine adecvată implementarea automatizării. Așadar, alegerea instrumentelor de testare devine esențială pentru obținerea beneficiilor eficienței și calității agilității.
Provocarea 3:Faza de dezvoltare a scriptului
Testerele de automatizare, dezvoltatorii, analiștii de afaceri și părțile interesate ale proiectului contribuie în totalitate la întâlnirile inițiale în care sunt selectate „User-Stories” pentru următorul sprint. Odată ce „User-Stories” sunt selectate pentru sprint, acestea sunt utilizate ca bază pentru un set de teste.
Pe măsură ce funcționalitatea crește cu fiecare iterație, testarea de regresie trebuie efectuată pentru a se asigura că funcționalitatea existentă nu a fost afectată de introducerea de noi funcționalități în fiecare ciclu de iterație. scara testării de regresie crește cu fiecare sprint și se asigură că aceasta rămâne o sarcină ușor de gestionat, iar echipa de testare utilizează automatizarea testului pentru suita de regresie.
Provocarea 4:Managementul resurselor
Abordarea agilă necesită un amestec de abilități de testare, adică vor fi necesare resurse de testare pentru a defini scenarii neclare și a testa cazurile, pentru a conduce Testare manuală alături de dezvoltatori, scrieți teste de regresie automată și executați pachetele de regresie automată.
Pe măsură ce proiectul progresează, vor fi necesare, de asemenea, abilități de specialitate pentru a acoperi alte domenii de testare care ar putea include integrarea și testarea performanței.
Ar trebui să existe un amestec adecvat de specialiști în domeniu care planifică și colectează cerințele. Partea provocatoare din managementul resurselor este de a afla resursele de testare cu mai multe abilități și de a le aloca.
Provocarea 5:Comunicare
O bună comunicare trebuie să existe între Testarea automatizării echipă, dezvoltatori, analiști de afaceri și părți interesate. Trebuie să existe o interacțiune foarte colaborativă între client și echipele de livrare. Implicarea mai mare a clientului implică mai multe sugestii sau modificări din partea clientului. Și implică mai multă lățime de bandă pentru comunicare.
Provocarea cheie este că procesul ar trebui să poată capta și implementa în mod eficient toate modificările, iar integritatea datelor trebuie păstrată. În testarea tradițională, dezvoltatorii și testerii sunt ca uleiul și apa, dar într-un mediu agil, sarcina provocatoare este că amândoi trebuie să lucreze împreună pentru a atinge ținta.
Provocarea 6:Întâlnire zilnică Scrum
Întâlnirea zilnică Scrum este una dintre activitățile cheie din procesul Agile. Echipele se întâlnesc timp de 15 minute. Care este eficacitatea acestor întâlniri? În ce măsură aceste întâlniri ajută dezvoltatorii de practici de automatizare? etc., sunt discutate la această întâlnire.
Provocarea 7:Faza de lansare
Scopul proiectului Agile este de a furniza un produs de lucru de bază cât mai repede posibil și apoi de a trece printr-un proces de îmbunătățire continuă. Aceasta înseamnă că nu există o singură fază de eliberare pentru un produs. Partea provocatoare constă în testarea integrării și testarea acceptării produsului.
Pași pentru automatizarea testării de regresie
Procesul care trebuie urmat pentru automatizarea regresiei poate fi împărțit cu precizie în următorii pași:
Acești 7 pași sunt explicați mai jos în detaliu în termeni simpli pentru înțelegerea dvs. ușoară.
1. Identificare
# 1) Identificați cazuri de testare care ar trebui să facă parte din suita de testare de regresie.
- Pentru a începe automatizarea cazurilor de test de regresie, primul lucru pe care trebuie să-l faceți este să identificați și să definiți corect cazurile de test de regresie cu toți pașii, datele și condițiile prealabile.
- Pentru a vă asigura că aveți o suită de teste de regresie eficientă, nu uitați să includeți:
- Testați cazurile cu defecte recurente.
- Testează cazurile care acoperă scenarii cap la cap.
- Testați cazurile care sunt mai vizibile pentru utilizatorii finali.
- Testați cazurile pe valorile limită.
- Amestec bun de cazuri de test pozitive și negative.
- Cazuri complexe de testare.
#Două) Identificați instrumente de automatizare care sunt cele mai bune pentru cerințele dvs. și comportamentul aplicației. Odată ce cazurile de testare de regresie sunt identificate și gata pentru automatizare, identificați instrumentele care se potrivesc cel mai bine cazurilor de testare.
Cel mai bun mod de a identifica instrumentele este să creați o matrice cu instrumentele și cerințele dvs. și apoi să urmăriți care dintre instrumente satisface cerințele.
Lectură sugerată => Lista celor mai bune instrumente de testare a automatizării
# 3) Identificați Limbaj de programare pe care vrei să o folosești. Cu atât de multe instrumente disponibile pe piață, mai multe limbi sunt acceptate de aceste instrumente. Prin urmare, este important să identificați limbajul de programare în care doriți să scrieți testele de automatizare.
Exemplu :Să presupunem că avem un proiect în care dorim să automatizăm o suită de teste de regresie pentru o aplicație bazată pe browser.
După cum s-a explicat mai sus, vom identifica cazurile de testare.
- Să presupunem că cazul nostru de testare este „Verificați dacă un utilizator se poate conecta cu succes folosind un nume de utilizator și o parolă valide”.
În continuare, vom identifica Instrumentele de automatizare.
- Un caz de test bazat pe browser poate fi automatizat cu „ Seleniu ',' Ranorex ”,„ TestComplete ”. Să decidem asupra instrumentului Selenium, deoarece se potrivește cel mai bine cerințelor.
Acum, să identificăm un limbaj de programare.
- Vrem să folosim „ Java ”Ca limbaj de programare ca limbaj foarte susținut.
2. Analiza
# 1) Do Cost analiză. Este foarte important să lucrați în limitele bugetare. Astfel, după faza de identificare, veți avea o idee despre câte cazuri de testare trebuie automatizate și care sunt instrumentele posibile care pot fi utilizate.
Toate constatările din faza de identificare vă vor ajuta să veniți cu un buget aproximativ și, astfel, puteți obține orice aprobare etc., dacă este necesar.
#Două) Do resursă și efort analiză pentru a vedea dacă aveți resursele pentru a lucra la acest lucru. Împreună cu analiza costurilor, este foarte important să se facă o analiză a resurselor și a efortului pentru o alocare mai bună a resurselor și utilizarea eficientă a timpului lor pe proiect.
În timp ce estimați resursele și eforturile, asigurați-vă că țineți cont de riscuri precum, dacă cineva se îmbolnăvește sau dacă unele cazuri de testare au nevoie de mai multe resurse pentru executare etc.
# 3) Do Timp Analiză. Este necesară analiza timpului pentru a vă asigura că puteți finaliza proiectul de automatizare în limita bugetului și a termenelor. În timp ce lucrați la analiza timpului, va fi util să pregătiți o diagramă cronologică pentru a monitoriza progresul în timpul dezvoltării.
Pentru o mai bună analiză cronologică a proiectului:
- Identificați sarcinile și sarcinile secundare din proiectele dvs.
- Prioritizați sarcinile și sarcinile secundare.
- Desenați o diagramă Gantt sau o diagramă de rețea pentru o mai bună picturizare a cronologiei.
Exemplu :Continuând cu exemplul nostru în faza de identificare, explicația pentru această fază este dată mai jos:
Analiza costului:
Să presupunem că costul aproximativ pentru acest proiect este de suma de X $.
Resurse și efort:
Pentru aceasta, un caz de testare trebuie automatizat de la capăt la capăt și avem nevoie de o resursă cu normă întreagă timp de aproximativ 24 de ore și avem nevoie, de asemenea, de o altă resursă pentru a revedea lucrarea. Astfel, avem nevoie de 2 resurse, iar estimarea efortului este de aproximativ 40 de ore.
Analiza timpului:
Pentru aceasta, să desenăm o mică diagramă Gantt pentru a vedea cronologia.
3. Instruire / Angajare
# 1) Dacă unele resurse necesită Instruire , apoi planificați pregătirea lor. Uneori este posibil să aveți anumite resurse de testare manuală care sunt interesate să scrie cazuri de testare a automatizării sau unii oameni au lucrat la automatizare, dar diferite instrumente și sunt dispuși să învețe instrumentul pe care l-ați selectat pentru automatizarea dvs.
În acest caz, identificați aceste resurse și planificați pregătirea lor, astfel încât să poată începe să lucreze la automatizarea cazurilor de test de regresie.
#Două) Dacă avem nevoie de mai multe resurse, atunci lucrăm la angajare plan. Când ați făcut analiza resurselor pentru eforturi și dacă nu puteți satisface nevoile cu resursele deja disponibile, atunci planificați angajarea unor resurse noi cu abilități adecvate care sunt necesare pentru proiect în cadrul bugetului.
Exemplu:
Să presupunem că avem deja o resursă care este familiarizată cu conceptele Java și dorește să învețe seleniu. Apoi vom aranja pregătirea pentru seleniu pentru acea persoană.
Dacă nu avem resurse disponibile pentru automatizare. Apoi, vom angaja o persoană care are experiență în automatizarea unor astfel de cazuri de testare folosind seleniu și java.
4. Cadrul și liniile directoare
# 1) Odată ce instrumentul și resursele sunt gata, lucrați la elaborarea unui cadru sau de a decide pe care să îl utilizați din cadrul existent. Pot fi utilizate mai multe cadre deja construite sau vă puteți construi cadrul de la zero.
În timp ce selectați sau construiți un cadru, asigurați-vă că implicați componentele, testarea cazurilor, jurnalele, rapoartele, intrarea, conexiunea la baza de date etc.
#Două) Decideți-vă pe celălalt instrumente de sprijin pe care vrei să o folosești. Deoarece dezvoltarea scriptului de automatizare este o sarcină de dezvoltare care implică scrierea codului, ar fi mult mai bine să vă dați seama de celelalte instrumente de dezvoltare care ar fi necesare pentru a sprijini scrierea scripturilor.
De exemplu , Unele instrumente care pot fi de ajutor includ git, GitHub, Jenkins etc.
# 3) Conturează instrucțiuni pentru scrierea scripturilor de automatizare. Este necesar să se sublinieze liniile directoare, astfel încât toate resursele care lucrează la proiect să fie sincronizate și să utilizeze aceleași convenții de denumire, aceleași proceduri pentru check-in / check-out cod și același limbaj de programare.
cum se deschide fișierul a.dat pe Mac
Exemplu:
Cadru: Să decidem BDD (dezvoltare bazată pe comportament) cadru pentru testarea automatizării.
Instrumente de sprijin: Instrumentele de care avem nevoie pentru a sprijini pe deplin automatizarea vor fi, GitHub, Jenkins, Log4J, Cucumber și JUnit.
5. Scripturi de automatizare
Începeți să scrieți scripturi de automatizare. Odată ce avem totul, adică instrumentul, limbajul de programare, abilitățile necesare și cazurile de testare care trebuie automatizate, putem începe să scriem scripturi de automatizare.
În timp ce scriem scripturi, trebuie să ne asigurăm că:
- Se respectă liniile directoare.
- Folosim instrumentele.
- Cazurile de testare sunt modularizate.
- Ar trebui să putem reutiliza componentele dacă sunt necesare în mai multe cazuri de testare.
De asemenea, trebuie să ne asigurăm că codul este menținut corect în instrumentul de control al versiunii și că toți membrii echipei pot colabora cu ușurință.
Exemplu:
Să scriem script-uri reale pentru a face acest caz de testare rulat. Exemplele din scripturi pot fi afișate ca mai jos.
În primul rând, scenariul de castravete pentru acest caz de testare ar arăta mai jos:
Caracteristică: Verificați funcționalitatea de conectare
Ca utilizator vreau să mă autentific în aplicație
Schița scenariului: conectați-vă la aplicație
Având în vedere că deschid aplicația
Când introduc numele de utilizator „”
Și introduc parola „”
Și fac clic pe butonul Login
Apoi mă duc la pagina principală
Exemple:
| nume de utilizator | parola |
| testuser1 | parola1 |
| testuser2 | parola2 |
După fișierul de caracteristici, vom implementa definiția pasului pentru pașii menționați în fișierul de caracteristici.
public class Login { LoginImpl loginImpl = new LoginImpl(); @Given('^I open application$') public void i_open_application() { loginImpl.openURL('URL'); } @When('^I Enter username '((^')*)'$') public void i_Enter_username(String arg1) { loginImpl.enterUserName(arg1); } @When('^I Enter password '((^')*)'$') public void i_Enter_password(String arg1) { loginImpl.enterPassword(arg1); } @When('^I click on Login button$') public void i_click_on_Login_button() { loginImpl.clickLoginButton(); } @Then('^I go to Home page$') public void i_go_to_Home_page() { loginImpl.verifyHomePage(); } }
În cele din urmă, implementarea efectivă a clasei de funcționalitate de conectare ar arăta mai jos:
public class LoginImpl { WebDriver driver; public LoginImpl(){ System.setProperty('webdriver.chrome.driver', 'webdriver/chromedriver.exe'); driver = new ChromeDriver(); } public void openURL(String string) { driver.get(string); } public void enterUserName(String arg1) { driver.findElement(By.id('UserName')).sendKeys(arg1); } public void enterPassword(String arg1) { driver.findElement(By.id('Password')).sendKeys(arg1); } public void clickLoginButton() { driver.findElement(By.id('LoginButton')).click(); } public void verifyHomePage() { String currUrl = driver.getCurrentUrl(); if(currUrl.equals('homePageURL')) { System.out.println('Home page verified'); } } }
6. Recenzie
(imagine sursă )
# 1) Revizuirea codului: Odată ce un dezvoltator de automatizare este terminat cu scrierea de scripturi de automatizare, este foarte important să parcurgeți diferitele niveluri de revizuire a codului.
Recenzii de coduri ajută în
- Identificarea verificărilor greșite.
- Găsirea punctelor de optimizare a codului.
- Găsirea unor modalități mai bune de implementare a funcționalității pentru utilizarea eficientă a resurselor.
Revizuirile codului expun și lucrarea unui dezvoltator celorlalți dezvoltatori și îi oferă o perspectivă diferită și spațiu de îmbunătățire.
# 2) Revizuirea cazurilor de testare: Împreună cu revizuirea codului, revizuirea cazului de testare este, de asemenea, foarte importantă. Trebuie să ne asigurăm că scripturile de testare a automatizării, atunci când sunt executate, efectuează același set de acțiuni și verificări pe care le așteptăm din cazurile de testare manuale.
Astfel, revizuirea cazurilor de test de automatizare cu analiști de afaceri sau experți în teste ajută la creșterea încrederii în testarea de automatizare a acestor cazuri de testare.
Exemplu:
Pentru exemplul nostru analizat, să presupunem că pentru examinarea codului am primit comentarii precum „element de căutare după ID și nu nume”. Aici, vom lua în considerare acest lucru și vom modifica scriptul în consecință.
De asemenea, s-ar putea face o examinare a testului pentru a adăuga pași pentru testare dacă vă aflați pe pagina de pornire după o autentificare reușită. Apoi, am adăuga acest lucru și scripturilor noastre.
7. Livrează
Oferiți testele, astfel încât oricine să le poată rula oricând. Odată ce scripturile de automatizare sunt gata de utilizare, este foarte important să veniți cu un plan de livrare pentru scripturile de automatizare.
Acest plan este necesar deoarece vrem să ne asigurăm că automatizarea cazurilor de testare nu limitează execuția acestuia la un anumit set de persoane sau abilități. Toată lumea din echipă sau din proiect ar trebui să aibă permisiunea de a executa cazurile de testare.
Unul dintre planurile de livrare posibile este de a oferi un job Jenkins care poate fi declanșat pentru a executa cazurile de testare automate.
Exemplu:
În cazul nostru, să presupunem că am livrat cazul de testare folosind un job Jenkins. Această lucrare Jenkins, preia codul de la GitHub, îl construiește și rulează cazurile de testare pe o altă mașină.
Odată ce lucrarea are succes, acesta vă arată raportul de testare generat. Oricine are acces la Jenkins poate rula acest job. De asemenea, acest job poate fi programat să ruleze la un anumit moment.
Concluzie
Dacă putem face față acestor provocări într-o manieră bine optimizată, atunci Testarea automată de regresie în mediul Agile este o oportunitate excelentă pentru QA de a prelua conducerea proceselor agile. Este mai bine plasat pentru a acoperi decalajul dintre utilizatori și dezvoltatori, pentru a înțelege ce este necesar, cum poate fi realizat și cum poate fi asigurat înainte de implementare.
Practica de automatizare ar trebui să aibă un interes personal în ambele, rezultatul, precum și să asigure în continuare că întregul sistem în evoluție îndeplinește obiectivele de afaceri și că este adecvat scopului.
Automatizarea unui caz de test de regresie este întotdeauna utilă, fiind cel mai bun candidat pentru pornire testarea automatizării . Puteți urma pașii menționați mai sus pentru a automatiza orice suită de teste și nu doar regresia.
Testarea automatizării este, de asemenea, foarte utilă și rentabilă, iar timpul investit în testarea automatizării este doar în scrierea de scripturi și întreținerea acestora. Astfel, testarea automatizării trebuie să fie planificată și programată corespunzător pentru un proiect de succes.
Despre autor: J. B. Rajkumar are mai mult de 15 ani de experiență atât în domeniul academic, cât și în testarea software-ului. A lucrat ca Trainer Corporativ, Conducător de Test, Manager QA și Manager QC.
Spuneți-ne comentariile / sugestiile dvs. despre acest articol.
=> Vizitați aici pentru seria completă de testare a regresiei.
Lectură recomandată
- Cele mai bune instrumente de testare software 2021 (Instrumente de automatizare a testelor de calitate)
- Descărcare eBook Descărcare Primer
- 4 pași către dezvoltarea mentalității de testare agilă pentru tranziția de succes la procesul agil
- Provocări de testare manuală și de automatizare
- Diferența dintre retestare și testare de regresie cu exemplu
- 5 Provocări și soluții de testare mobilă
- Testarea SaaS: provocări, instrumente și abordare de testare
- Topul celor mai populare 10 instrumente de testare a regresiei în 2021