Metodologii de testare software: modele QA
⚡ Rezumat inteligent
Metodologia de testare software definește strategiile și tipurile de testare utilizate pentru a certifica faptul că o aplicație îndeplinește așteptările clientului. Programarea în cascadă, iterativă, agilă și extremă modelează fiecare momentul în care începe testarea și modul în care se întoarce feedback-ul.

Ce este metodologia de testare a software-ului?
Metodologia de testare a software-ului este definită ca strategii și tipuri de testare utilizate pentru a certifica că aplicația în curs de testare îndeplinește așteptările clienților. Metodologiile de testare includ testarea funcțională și nefuncțională pentru validarea AUT. Exemple de metodologii de testare sunt Testarea unității, Testare de integrare, Testarea sistemului, Test de performanta etc. Fiecare metodologie de testare are un obiectiv de testare definit, o strategie de testare și rezultate.
notițe: Deoarece testarea software-ului este parte integrantă a oricărei metodologii de dezvoltare, multe companii folosesc termenul de metodologii de dezvoltare și metodologii de testare în mod colocvial. Prin urmare, Metodologiile de testare s-ar putea referi și la modelele Waterfall, Agile și alte modele QA, față de definiția de mai sus a Metodologiilor de testare. Discuțiile despre diferite tipuri de testare nu adaugă valoare pentru cititori. Prin urmare, vom discuta despre diferitele modele de dezvoltare.
Metodologie de testare vs. Tip de testare vs. Strategie de testare
Nota de mai sus sugerează o ambiguitate reală în domeniu. Trei termeni sunt folosiți interschimbabil în conversații, dar au semnificații diferite într-un document de proiect, iar confundarea lor produce planuri de testare care răspund la întrebarea greșită.
| Termen | Întrebare îi răspunde | Hotărât de | Exemple |
|---|---|---|---|
| Metodologia de testare | Când și cum se încadrează testarea în ciclul de dezvoltare? | Modelul de dezvoltare utilizat | Programare în cascadă, iterativă, agilă, extremă |
| Tipul de testare | Ce aspect al produsului este verificat? | Acoperirea riscurilor și a cerințelor | Unitate, integrare, sistem, performanță, securitate |
| Nivel de testare | La ce adâncime este examinat software-ul? | Poziția în ierarhia de construire | Componentă, integrare, sistem, acceptare |
| Strategia de testare | Care este abordarea noastră organizațională față de calitate? | Conducerea în domeniul asigurării calității, se aplică în toate proiectele | Bazat pe risc, automatizarea pe primul loc, schimbarea la stânga |
| Planul de testare | Ce va testa exact acest proiect, când și de către cine? | Manager de teste, specific proiectului | Domeniu de aplicare, calendar, resurse, criterii de intrare și ieșire |
O regulă generală utilă: metodologia stabilește ritmul, tipul stabilește ținta și planul de testare înregistrează angajamentul. Secțiunile de mai jos examinează metodologiile.
Modelul cascadei
Ce este asta?
În model de cascadă, dezvoltarea software-ului progresează prin diferite faze, cum ar fi analiza cerințelor, proiectare etc. secvențial.
În acest model, următoarea fază începe numai când faza anterioară este finalizată.
Care este abordarea de testare?
Prima fază a modelului cascadă este faza de cerințe în care toate cerințele proiectului sunt complet definite înainte de începerea testării. În această fază, echipa de testare analizează domeniul de aplicare al testării, strategia de testare și elaborează un plan de testare detaliat.
Doar odată ce proiectarea software-ului este finalizată, echipa va trece la execuția cazurilor de testare pentru a se asigura că software-ul dezvoltat se comportă așa cum se aștepta.
În această metodologie, echipa de testare trece la următoarea fază numai când faza anterioară este finalizată.
| Avantaje | Dezavantaje |
|---|---|
| Acest model de inginerie software este foarte simplu de planificat și gestionat. Prin urmare, proiectele, în care cerințele sunt clar definite și declarate în prealabil, pot fi testate cu ușurință folosind un model în cascadă. | În modelul cu cascadă, puteți începe cu următoarea fază numai după ce faza anterioară este finalizată. Prin urmare, acest model nu poate găzdui evenimente neplanificate și incertitudine. |
| Această metodologie nu este potrivită pentru proiectele în care cerințele se modifică frecvent. |
Dezvoltare iterativă
Ce este asta?
În acest model, un proiect mare este împărțit în părți mai mici, iar fiecare parte este supusă mai multor iterații ale modelului cascadă. La sfârșitul unei iterații, se dezvoltă un modul nou sau se îmbunătățește un modul existent. Acest modul este integrat în arhitectura software, iar întregul sistem este testat împreună.
Care este abordarea de testare?
De îndată ce iterația este finalizată, întregul sistem este supus testării. Feedback-ul de la testare este disponibil imediat și este încorporat în ciclul următor. Timpul de testare necesar în iterațiile succesive poate fi redus pe baza experienței acumulate din iterațiile anterioare.
| Avantaje | Dezavantaje |
|---|---|
| Principalul avantaj al dezvoltării iterative este că feedback-ul de testare este disponibil imediat la sfârșitul fiecărui ciclu. | Acest model crește semnificativ cheltuielile generale de comunicare, deoarece, la sfârșitul fiecărui ciclu, trebuie oferit feedback despre livrabile, efort etc. |
Metodologie agilă
Ce este asta?
Metodologiile tradiționale de dezvoltare a software-ului funcționează pe premisa că cerințele software rămân constante pe tot parcursul proiectului. Dar, odată cu creșterea complexității, cerințele suferă numeroase modificări și evoluează continuu. Uneori, clientul însuși nu este sigur ce vrea. Deși modelul iterativ abordează această problemă, se bazează în continuare pe modelul cascadei.
În metodologia Agile, software-ul este dezvoltat în cicluri incrementale, rapide. Interacțiunile dintre clienți, dezvoltatori și client sunt accentuate mai degrabă decât procesele și instrumentele. Metodologia agilă se concentrează pe răspunsul la schimbare, mai degrabă decât pe planificarea extinsă.
Care este abordarea de testare?
Testarea incrementală este utilizată în metodele de dezvoltare agile și, prin urmare, fiecare lansare a proiectului este testată în detaliu. Acest lucru asigură că orice erori din sistem sunt remediate înainte de următoarea ediție.
| Avantaje | Dezavantaje |
|---|---|
| Este posibil să faceți modificări în proiect în orice moment pentru a se conforma cerințelor. | Interacțiunea constantă cu clientul înseamnă o presiune suplimentară de timp asupra tuturor părților interesate, inclusiv a clientului însuși, a echipelor de dezvoltare de software și de testare. |
| Această testare incrementală minimizează riscurile. |
Programare extremă
Ce este asta?
Programarea extremă este un tip de metodologie agilă care crede în cicluri scurte de dezvoltare. Un proiect este împărțit în sarcini simple de inginerie. Programatorii codifică o bucată simplă de software și revin clientului pentru feedback. Revpunctele de vedere de la client sunt încorporate și dezvoltatorii continuă cu următoarea sarcină.
În cazul dezvoltatorilor de programare extremă, de obicei, lucrează în perechi.
Programare extremă este utilizat în locuri în care cerințele clienților sunt în continuă schimbare.
Care este abordarea de testare?
Programarea extremă urmează o dezvoltare condusă de teste care este descrisă după cum urmează -
- Adauga o Caz de testare la suita de teste pentru a verifica noua funcționalitate care urmează să fie dezvoltată
- Rulați toate testele și, evident, noul caz de testare adăugat trebuie să eșueze, deoarece funcționalitatea nu este încă codificată
- Scrieți un cod pentru a implementa caracteristica/funcționalitatea
- Rulați din nou suita de teste. De data aceasta, noul caz de testare ar trebui să treacă, deoarece funcționalitatea a fost codificată
| Avantaje | Dezavantaje |
|---|---|
| Clienții care au în minte un design de software vag ar putea folosi programare extremă | Întâlnirile dintre echipa de dezvoltare software și clienți sporesc cerințele de timp. |
| Testarea continuă și integrarea continuă a versiunilor mici asigură că livrarea codului software este de înaltă calitate |
Modelul în V și modelul spiralat
Două modele suplimentare apar în majoritatea proiectelor și completează imaginea, deoarece fiecare răspunde diferit unei slăbiciuni a abordării în cascadă.
Model în V. Adesea numit verificare și validare, modelul V asociază fiecare fază de dezvoltare cu o fază de testare corespunzătoare, reprezentată ca cele două brațe ale unui model V. Cerințele se asociază cu testarea de acceptare, proiectarea la nivel înalt cu testarea sistemului, proiectarea la nivel scăzut cu testarea de integrare, iar codarea cu testarea unitară. Avantajul constă în faptul că proiectarea testelor începe odată cu fiecare fază de dezvoltare, mai degrabă decât după codare, astfel încât cerințele ambigue sunt găsite de persoana care scrie testele de acceptare cu luni înainte ca un defect să poată fi construit. Slăbiciunea sa este moștenită din modelul waterfall: modelul presupune în continuare că cerințele sunt stabile.
Model spiralat. Spirala înfășoară iterația în jurul unei analize explicite a riscurilor. Fiecare buclă conține patru activități: determinarea obiectivelor, identificarea și rezolvarea riscurilor, dezvoltarea și testarea, apoi planificarea următoarei iterații. Prin urmare, testarea se concentrează acolo unde riscul este cel mai mare, mai degrabă decât să se răspândească uniform. Se potrivește programelor mari, costisitoare și de lungă durată, cum ar fi cele aerospațiale sau sistemele bancare de bază, unde costul unei descoperiri târzii este semnificativ. Pentru un proiect web mic, costul general al analizei formale a riscurilor pentru fiecare buclă este rareori justificat.
Ambele modele se situează între disciplina în cascadă și răspunsul agil. Acolo unde frecvența lansărilor contează mai mult decât oricare dintre ele, un DevOps Pipeline-ul împinge testarea în integrare continuă, astfel încât fiecare commit este verificat automat.
Ce metodologie software să alegi?
Există o mulțime de metodologii disponibile pentru dezvoltarea de software și testarea corespunzătoare a acestuia. Fiecare tehnică și metodologie de testare este concepută pentru un scop specific și are meritele și dezavantajele sale relative.
Selectarea unei anumite metodologii depinde de mulți factori, cum ar fi natura unui proiect, cerințele clientului, calendarul proiectului etc.
Din punct de vedere al testării, unele metodologii solicită testarea intrărilor la începutul ciclului de viață al dezvoltării, în timp ce altele așteaptă până când un model funcțional al sistemului este gata.
Cum se configurează metodologiile de testare a software-ului?
Metodologiile de testare a software-ului nu ar trebui să fie configurate doar de dragul testării codului software. Ar trebui luată în considerare imaginea de ansamblu, iar obiectivul principal al proiectului ar trebui să fie satisfăcut de metodologia de testare. Consultați această listă de reputate furnizorii de servicii de testare software care vă poate ajuta să stabiliți strategii de testare eficiente, adaptate obiectivelor proiectului dumneavoastră.
Programare
Programarea realistă este cheia implementării metodologiei de testare cu succes, iar programul ar trebui să răspundă nevoilor fiecărui membru al echipei.
Livrabile definite
Pentru a menține toți membrii echipei pe aceeași pagină, ar trebui furnizate livrabile bine definite. Livrabilele trebuie să conțină conținut direct, fără nicio ambiguitate.
Abordarea testului
Odată ce programarea este completă și livrabilele definite sunt puse la dispoziție, echipa de testare ar trebui să fie capabilă să formuleze abordarea de testare corectă. Documentele de definiție și întâlnirile dezvoltatorilor ar trebui să indice echipa despre cea mai bună abordare de testare care poate fi utilizată pentru proiect.
Raportarea
Raportarea transparentă este foarte dificil de realizat, dar acest pas determină eficacitatea abordării de testare utilizată în proiect.




