Ce este Agile Testing? Proces și ciclu de viață

Ce este Agile Testing?

Testare Agile este o practică de testare care urmează regulile și principiile dezvoltării agile de software. Spre deosebire de metoda Waterfall, Agile Testing poate începe la începutul proiectului cu integrare continuă între dezvoltare și testare. Metodologia Agile Testing nu este secvenţială (în sensul că se execută numai după faza de codificare) ci continuă.

Principiile testării agile

Iată principiile esențiale ale testării agile:

  • În acest model de testare Agile, software-ul de lucru este principala măsură a progresului.
  • Cel mai bun rezultat poate fi obținut de către echipele care se organizează singur.
  • Furnizarea de software valoros din timp și în mod continuu este cea mai mare prioritate a noastră.
  • Dezvoltatorii de software trebuie să acționeze pentru a se aduna zilnic pe parcursul proiectului.
  • Creșterea agilității prin îmbunătățire tehnică continuă și design bun.
  • Testarea Agile asigură că produsul final satisface așteptările companiei, oferind feedback continuu.
  • În procesul de testare Agile, trebuie să executăm procesul de testare în timpul implementării, ceea ce reduce timpul de dezvoltare.
  • Procesul de testare în Agile ar trebui să funcționeze în ritmul de dezvoltare constant
  • Oferă reflecții regulate despre cum să devii mai eficient.
  • Cele mai bune arhitecturi, cerințe și design-uri apar din echipele auto-organizate.
  • De fiecare dată când echipa se întâlnește, își revizuiește și își ajustează comportamentul pentru a deveni mai eficientă.
  • Conversația față în față cu echipa de dezvoltare este cea mai eficientă și eficientă metodă de transmitere a informațiilor în cadrul echipei.

Testarea Agile include diverse principii care ne ajută să creștem productivitatea Software-ului.

Ciclul de viață al testării agile

Ciclul de viață de testare agilă este finalizat în cinci faze diferite, așa cum putem vedea în imaginea următoare:

Ciclul de viață al testării agile

Iată pașii de testare a procesului Agile:

Faza 1: Evaluarea impactului: În această fază inițială, colectăm contribuții de la părțile interesate și utilizatori. Această fază se mai numește și faza de feedback, deoarece ajută inginerii de testare să stabilească obiectivele pentru următorul ciclu de viață.

Faza 2: Planificarea testării agile: Este a doua fază a ciclului de viață de testare Agile, în care toate părțile interesate se reunesc pentru a planifica programul procesului de testare și a rezultatelor.

Faza 3: Pregătirea pentru lansare: În această etapă, trecem în revistă funcțiile care au fost dezvoltate/Implementate sunt gata de funcționare sau nu. În această etapă, se decide și care dintre ele trebuie să se întoarcă la faza anterioară de dezvoltare.

Faza 4: Scrums zilnic: Această etapă include fiecare întâlnire de dimineață standup pentru a prinde din urmă stadiul testării și a stabili obiectivul pentru întreaga zi.

Faza 5: Testează Agilitatea Revvezi: Ultima fază a ciclului de viață Agile este Agilitatea Review întâlnire. Aceasta implică întâlniri săptămânale cu părțile interesate pentru a evalua și a evalua în mod regulat progresul în raport cu obiectivele.

Plan de testare Agile

Plan de testare agil include tipuri de testare efectuate în acea iterație, cum ar fi cerințele privind datele de testare, infrastructura, medii de testare, și rezultatele testelor. Spre deosebire de modelul cascadă, într-un model agil, un plan de testare este scris și actualizat pentru fiecare lansare. Planurile de testare tipice în agile includ

  • Domeniul de testare
  • Funcționalități noi care sunt testate
  • Nivel sau Tipuri de testare pe baza complexității caracteristicilor
  • Testare de încărcare și performanță
  • Considerarea infrastructurii
  • Plan de atenuare sau riscuri
  • Resurse
  • Produse livrate și repere

Strategii de testare agilă

Ciclul de viață al testării agile se întinde pe patru etape

Strategii de testare agilă

iterație 0

În prima etapă sau iterație 0, efectuați sarcini de configurare inițială. Include identificarea persoanelor pentru testare, instalarea instrumentelor de testare, planificarea resurselor (laborator de testare a utilizabilității), etc. Următorii pași sunt setați pentru a se realiza în Iterația 0

  • Stabilirea unui caz de afaceri pentru proiect
  • Stabiliți condițiile limită și domeniul de aplicare al proiectului
  • Subliniați cerințele cheie și cazurile de utilizare care vor determina compromisurile de proiectare
  • Schițați una sau mai multe arhitecturi candidate
  • Identificarea riscului
  • Estimarea costurilor si pregatirea unui proiect preliminar

Iterații de construcție

A doua fază a metodologiei de testare agilă este Iterațiile de construcție, majoritatea testării au loc în această fază. Această fază este observată ca un set de iterații pentru a construi o creștere a soluției. Pentru a face acest lucru, în cadrul fiecărei iterații, echipa implementează un hibrid de practici din XP, Scrum, modelare Agile și date agile și așa mai departe.

În iterația de construcție, echipa agilă urmează practica cerințelor prioritizate: cu fiecare iterație, preia cele mai esențiale cerințe rămase din stiva de articole de lucru și le implementează.

Iterația de construcție este clasificată în două, testare de confirmare și testare investigativă. Concentrate de testare de confirmare la verificarea faptului că sistemul îndeplinește intenția părților interesate așa cum a fost descrisă echipei până în prezent și este realizat de echipă. În timp ce testarea investigativă detectează problema pe care echipa de confirmare a omis-o sau a ignorat-o. În Testarea investigativă, testerul determină problemele potențiale sub formă de povești de defecte. Testarea investigativă tratează probleme comune, cum ar fi testarea de integrare, testarea de încărcare/stres și testarea de securitate.

Din nou, pentru testarea de confirmare, există două aspecte testarea dezvoltatorului si testare agilă de acceptare. Amândoi sunt automatizate pentru a permite testarea continuă de regresie pe tot parcursul ciclului de viață. Testarea de confirmare este echivalentul agil al testării conform specificațiilor.

Testarea agilă de acceptare este o combinație de testare funcțională tradițională și testarea de acceptare tradițională ca echipa de dezvoltare, iar părțile interesate o fac împreună. În timp ce testarea pentru dezvoltatori este o combinație de testare unitară tradițională și testare tradițională de integrare a serviciilor. Testarea dezvoltatorilor verifică atât codul aplicației, cât și schema bazei de date.

Lansare Sfârșitul jocului sau faza de tranziție

Scopul „Release, End Game” este să vă implementați sistemul cu succes în producție. Activitățile care includ în această fază sunt instruirea utilizatorilor finali, oamenii de asistență și oamenii operaționali. De asemenea, include comercializarea lansării produsului, back-up și restaurare, finalizarea sistemului și a documentației utilizator.

Etapa finală de testare a metodologiei agile include testarea completă a sistemului și testarea de acceptare. Pentru a finaliza etapa finală de testare fără obstacole, ar trebui să testați produsul mai riguros în timp ce acesta este în iterații de construcție. În timpul jocului final, testerii vor lucra la poveștile sale de defecte.

producere

După etapa de lansare, produsul va trece la etapa de producție.

Cadranele de testare agilă

Cadranele de testare agilă

Cadranele de testare agilă separă întregul proces în patru cadrane și ajută la înțelegerea modului în care este efectuată testarea agilă.

Cadranul Agil I

Calitatea codului intern este accent principal în acest cadran și constă în cazuri de testare care sunt bazate pe tehnologie și sunt implementate pentru a sprijini echipa, include

  • Teste unitare
  • Testele componente

Agile Quadrant II

Conține cazuri de testare care sunt bazate pe afaceri și sunt implementate pentru a sprijini echipa. Acest Cuadrant se concentrează pe cerințe. Tipul de test efectuat în această fază este

  • Testarea exemplelor de scenarii și fluxuri de lucru posibile
  • Testarea experienței utilizatorului, cum ar fi prototipurile
  • Testarea perechilor

Agile Quadrant III

Acest cadran oferă feedback către cadranele unu și doi. Cazurile de testare pot fi folosite ca bază pentru efectuarea testelor de automatizare. În acest cadran, sunt efectuate multe runde de recenzii iterative, ceea ce creează încrederea în produs. Genul de testare făcută în acest cadran este

  • Testarea utilizabilității
  • Testarea exploratorie
  • Testarea perechilor cu clienții
  • Testare în colaborare
  • Testarea de acceptare a utilizatorului

Quadrantul Agil IV

Acest cadran se concentrează pe cerințele nefuncționale precum performanța, securitatea, stabilitatea etc. Cu ajutorul acestui cadran, aplicația este realizată pentru a furniza calitățile nefuncționale și valoarea așteptată.

  • Teste nefuncționale, cum ar fi testele de stres și de performanță
  • Testarea de securitate cu privire la autentificare și hacking
  • Testarea infrastructurii
  • Testare de migrare a datelor
  • Testare de scalabilitate
  • Testare de sarcină

Provocări QA cu dezvoltarea agilă de software

  • Șansele de eroare sunt mai agile, deoarece documentației i se acordă mai puțină prioritate, în cele din urmă pune mai multă presiune asupra echipei QA
  • Noile funcții sunt introduse rapid, ceea ce reduce timpul disponibil pentru echipele de testare pentru a identifica dacă cele mai recente funcții sunt în conformitate cu cerințele și se adresează cu adevărat costumelor de afaceri
  • Testerii sunt adesea obligați să joace rolul unui semi-dezvoltator
  • Ciclurile de execuție a testelor sunt foarte comprimate
  • Foarte mai puțin timp pentru pregătirea planului de testare
  • Pentru testarea de regresie, acestea vor avea un timp minim
  • Schimbarea rolului lor de la a fi un gardian al calității la a fi partener în calitate
  • Modificările și actualizările cerințelor sunt inerente unei metode agile, devenind cea mai mare provocare pentru QA

Risc de automatizare în procesele Agile

  • Interfața de utilizare automată oferă un nivel ridicat de încredere, dar sunt lent de executat, fragile de întreținut și costisitoare de construit. Este posibil ca automatizarea să nu îmbunătățească semnificativ productivitatea testelor decât dacă testerii știu cum să testeze
  • Testele nesigure reprezintă o preocupare majoră în testarea automată. Remedierea testelor eșuate și rezolvarea problemelor legate de testele fragile ar trebui să fie o prioritate pentru a evita fals pozitive
  • Dacă testele automate sunt inițiate manual mai degrabă decât prin CI (integrare continuă), atunci există riscul ca acestea să nu ruleze în mod regulat și, prin urmare, pot duce la eșecul testelor.
  • Testele automate nu sunt un înlocuitor pentru o testare manuală exploratorie. Pentru a obține calitatea așteptată a produsului, este necesar un amestec de tipuri și niveluri de testare
  • Multe instrumente de automatizare disponibile comercial oferă caracteristici simple, cum ar fi automatizarea captării și reluării cazurilor de testare manuale. Un astfel de instrument încurajează testarea prin interfața de utilizare și duce la teste în mod inerent fragile și dificil de întreținut. De asemenea, stocarea cazurilor de testare în afara sistemului de control al versiunilor creează o complexitate inutilă
  • Pentru a economisi timp, de multe ori planul de testare de automatizare este planificat prost sau neplanificat, ceea ce duce la eșecul testului
  • Procedurile de configurare și demontare a testului sunt de obicei ratate în timpul automatizării testului, în timp ce Efectuarea testării manuale, procedurile de configurare și demontare a testului sună perfect
  • Valorile de productivitate, cum ar fi un număr de cazuri de testare create sau executate pe zi, pot fi teribil de înșelătoare și ar putea duce la investiții mari în efectuarea de teste inutile
  • Membrii echipei de automatizare agilă trebuie să fie consultanți eficienți: abordabili, cooperanți și plini de resurse, altfel acest sistem va eșua rapid
  • Automatizarea poate propune și furniza soluții de testare care necesită prea multă întreținere continuă în raport cu valoarea oferită
  • Testarea automată poate să nu aibă experiența necesară pentru a concepe și a oferi soluții eficiente
  • Testarea automată poate fi atât de reușită încât să rămână fără probleme importante de rezolvat și, astfel, să se îndrepte către probleme neimportante.

Concluzie

Metodologia agilă în testarea software-ului implică testarea cât mai devreme posibil în ciclul de viață al dezvoltării software-ului. Cere implicarea ridicată a clienților și codul de testare de îndată ce acesta devine disponibil. Codul ar trebui să fie suficient de stabil pentru a-l duce la testarea sistemului. Pot fi efectuate teste de regresie extinse pentru a vă asigura că erorile sunt remediate și testate. În principal, comunicarea dintre echipe face ca testarea modelelor agile să aibă succes!!!