Testarea nefuncțională se referă la testarea software care se efectuează pentru a testa aspectele nefuncționale ale unei aplicații software.
Există o mulțime de tipuri diferite de testare nefuncțională, iar unele tipuri de testare a software-ului pot fi considerate atât testare funcțională, cât și nefuncțională în același timp.
Testarea nefuncțională este necesară deoarece evaluează criteriile esențiale pentru utilizator, cum ar fi performanța și utilizabilitatea, și verifică dacă software-ul funcționează conform așteptărilor în afara funcționalității de bază.
În acest articol, explorăm definiția și caracteristicile testării nefuncționale, alături de tipurile de testare nefuncțională, abordările testării nefuncționale și instrumentele de testare care vă pot ajuta să optimizați și să îmbunătățiți propriile procese de testare nefuncțională.
Ce este testarea non-funcțională?
Testarea nefuncțională este orice tip de testare a software-ului în care sunt testate aspectele nefuncționale ale construcției software-ului.
Printre exemplele de teste nefuncționale se numără testele concepute pentru a evalua capacitatea, performanța, capacitatea de utilizare, recuperarea și portabilitatea.
Verificarea calității și a stării fiecăruia dintre aceste criterii nefuncționale este la fel de importantă ca și verificarea funcțiilor unui software, dar acești parametri nu sunt testați în cadrul testelor funcționale standard.
În esență, testarea nefuncțională înseamnă testarea “cum” funcționează funcțiile software, mai degrabă decât testarea “dacă” acestea funcționează.
1. Când aveți nevoie de testarea nefuncțională?
Testarea nefuncțională se efectuează în timpul fazei de testare a sistemului de testare a software-ului, după ce au avut loc testarea unitară și testarea de integrare.
În timpul testării sistemului, testerii vor efectua atât teste funcționale, cât și teste nefuncționale, începând cu testele funcționale.
După ce testerii au stabilit că software-ul funcționează conform așteptărilor, aceștia efectuează testele nefuncționale pentru a evalua dacă acesta îndeplinește și parametrii nefuncționali.
De obicei, este necesar să se efectueze testarea funcțională înainte de testarea nefuncțională, deoarece este imposibil să se testeze fiabilitatea sau performanța unor funcții care nu funcționează deloc. Testarea nefuncțională este una dintre ultimele etape ale testării software înainte de testarea acceptării de către utilizator și de lansarea produsului final.
2. Când nu aveți nevoie de testare nefuncțională
Întotdeauna este important să testați aspectele nefuncționale ale software-ului, cu excepția cazului în care acestea au fost deja testate și s-au dovedit a fi adecvate.
Chiar dacă ați mai efectuat teste nefuncționale asupra unui software, ar putea fi necesar să testați din nou parametrii nefuncționali, de exemplu, dacă au fost adăugate noi caracteristici la software sau dacă au fost efectuate modificări ale codului care ar putea afecta performanța și fiabilitatea.
Obiectivele testării non-funcționale
Obiectivele testării nefuncționale sunt de a verifica dacă produsul îndeplinește așteptările utilizatorilor și de a optimiza produsul înainte de lansare.
De asemenea, îi poate ajuta pe dezvoltatori și testeri să înțeleagă mai bine software-ul și să utilizeze aceste cunoștințe în optimizările viitoare.
1. Controlul calității
Testarea nefuncțională are ca scop testarea factorilor care au un impact asupra utilizabilității, fiabilității, mentenanței, portabilității și eficienței produsului.
Testarea acestor elemente garantează că produsul lansat pe piață este de o calitate suficient de ridicată și că îndeplinește așteptările utilizatorilor în ceea ce privește performanța, timpii de încărcare și capacitatea de utilizare.
2. Managementul riscurilor
Testarea nefuncțională reduce, de asemenea, riscul și costurile asociate cu lansarea unui produs pe piață, maximizând șansele ca echipa să lanseze un produs satisfăcător.
Prin verificarea parametrilor nefuncționali ai construcției software-ului, este posibilă reducerea costurilor de lansare a produsului, deoarece se reduce nevoia de dezvoltare ulterioară și de modificări ulterioare ale software-ului.
3. Optimizare
Testarea nefuncțională îi ajută pe testeri și pe dezvoltatori să optimizeze construcția software-ului și să optimizeze performanța în timpul instalării, configurării, execuției și utilizării.
De asemenea, puteți utiliza testarea nefuncțională pentru a optimiza modul în care gestionați și monitorizați construirea software-ului.
4. Colectarea datelor
Testarea nefuncțională le permite tesatorilor să colecteze și să producă măsurători și indicatori care pot fi utilizați de echipele de testare pentru cercetare și dezvoltare internă.
Puteți utiliza datele pe care le colectați din testele nefuncționale pentru a înțelege cum funcționează produsul dvs. și cum îl puteți optimiza mai eficient pentru utilizatori.
5. Îmbunătățirea cunoștințelor
Testarea nefuncțională îmbunătățește și sporește cunoștințele echipei de testare cu privire la comportamentul produsului și la tehnologiile pe care acesta le utilizează.
Acest lucru nu numai că ajută echipele de testare să înțeleagă mai bine software-ul la care lucrează, dar poate oferi, de asemenea, cunoștințe utile care îi ajută pe testeri să înțeleagă mai bine viitoarele versiuni.
Cine este implicat în testarea non-funcțională?
Testarea nefuncțională este de obicei efectuată de către testeri în mediul QA, dar uneori dezvoltatorii pot efectua teste nefuncționale în timpul dezvoltării.
Testarea sistemului este aproape întotdeauna efectuată de către testeri, iar aceasta este faza de testare în care are loc cea mai mare parte a testării nefuncționale.
În cazul în care testele nefuncționale eșuează, testerii vor trimite software-ul înapoi la dezvoltatori pentru a corecta erorile de performanță înainte de a testa din nou.
Beneficiile testării non-funcționale
Testarea nefuncțională prezintă numeroase beneficii, iar testarea nefuncțională este o etapă esențială în testarea sistemelor.
Fără testarea nefuncțională, echipele de testare nu ar fi în măsură să verifice dacă software-ul îndeplinește efectiv cerințele clientului sau dacă îndeplinește cerințele stabilite în planul de dezvoltare a software-ului.
1. Îmbunătățirea performanțelor software
Testarea nefuncțională îi poate ajuta pe testeri și pe dezvoltatori să îmbunătățească performanța generală a aplicațiilor software. Testele nefuncționale identifică zonele în care performanța software-ului este deficitară, de exemplu în ceea ce privește viteza de încărcare sau capacitatea de procesare, și determină echipele de software să facă modificări pentru a corecta aceste defecte.
Astfel, echipele de software se asigură că echipele de software îl fac public doar atunci când este gata și când performanța sa este suficient de bună.
2. Păstrați software-ul în siguranță
Testele nefuncționale includ testele de securitate, care sunt esențiale pentru a se asigura că un software este sigur și protejat de amenințări și atacuri externe.
Testele de securitate le permit testerilor și dezvoltatorilor să verifice dacă software-ul protejează în mod adecvat datele confidențiale și dacă dispune de suficiente măsuri de securitate pentru a se proteja împotriva atacurilor cibernetice contemporane.
3. Creșterea ușurinței de utilizare a software-ului
Testarea nefuncțională este cea mai bună modalitate de a face software-ul mai ușor de utilizat, în special prin efectuarea de teste de utilizare, care evaluează cât de ușor este pentru utilizatori să învețe cum să utilizeze și să opereze software-ul dumneavoastră.
Ușurința de utilizare este foarte importantă, deoarece determină gradul de satisfacție al utilizatorilor față de software-ul dumneavoastră și asigură faptul că aceștia sunt capabili să profite pe deplin de tot ceea ce oferă software-ul dumneavoastră.
4. Asigurați-vă că software-ul răspunde nevoilor utilizatorilor
Garantarea faptului că software-ul răspunde nevoilor utilizatorilor ar trebui să fie una dintre prioritățile principale ale tuturor echipelor de dezvoltare și testare a software-ului. Pe lângă faptul că se așteaptă ca software-ul să fie funcțional, utilizatorii se așteaptă ca acesta să fie performant, să funcționeze fără probleme și să protejeze datele confidențiale.
Testarea nefuncțională este una dintre singurele modalități de a vă asigura că software-ul dumneavoastră îndeplinește aceste cerințe.
Provocările testării non-funcționale
Există unele dezavantaje în ceea ce privește efectuarea testelor nefuncționale. Deși testarea nefuncțională este esențială în timpul fazei de testare a sistemului de testare a software-ului, procesul de testare nefuncțională poate reprezenta o provocare pentru echipele de software care nu dispun de resurse și instrumente ample.
1. Repetiție
Testarea nefuncțională în cadrul testării software trebuie să fie efectuată de fiecare dată când software-ul este actualizat de către dezvoltatori sau de fiecare dată când codul este modificat. Acest lucru înseamnă că testarea nefuncțională poate fi foarte repetitivă, ceea ce nu numai că necesită timp, dar îi și obosește pe testeri.
Testatorii obosiți care efectuează sarcini foarte repetitive sunt, de asemenea, mai predispuși să fie distrași și să facă greșeli.
2. Costuri
Deoarece testarea nefuncțională este atât de repetitivă, aceasta poate fi și destul de costisitoare, în special pentru echipele de testare care se bazează pe testarea nefuncțională manuală.
Echipele de software trebuie să aloce timp și buget pentru teste nefuncționale frecvente, iar dezvoltatorii de software vor trebui să plătească suplimentar pentru aceste teste suplimentare.
Ce testăm în testarea nefuncțională?
Testarea nefuncțională poate fi utilizată pentru a testa mulți parametri nefuncționali diferiți, fiecare dintre aceștia afectând calitatea și utilizabilitatea sistemului. Fiecare dintre acești parametri este testat în timpul testării sistemului în funcție de criteriile stabilite în planul de testare.
1. Securitate
Testarea securității este un tip de testare nefuncțională care măsoară cât de bine este protejat un sistem împotriva amenințărilor și atacurilor externe. Acestea includ încălcări deliberate ale securității, precum și scurgeri de date și alte încălcări comune.
Testarea securității este o etapă importantă în cadrul testării nefuncționale, deoarece oferă utilizatorilor finali și clienților garanția că datele lor sunt în siguranță.
2. Fiabilitatea
Testatorii folosesc testarea nefuncțională pentru a evalua fiabilitatea software-ului și pentru a se asigura că software-ul poate îndeplini în permanență funcțiile specificate fără erori.
În timp ce testarea funcțională garantează că software-ul își îndeplinește funcțiile cheie, numai testarea nefuncțională testează efectiv fiabilitatea și repetabilitatea acestor rezultate.
3. Supraviețuire
Capacitatea de supraviețuire descrie modul în care un sistem software răspunde în cazul în care nu funcționează, iar testarea capacității de supraviețuire garantează că, în cazul în care apar erori și defecțiuni, sistemul se poate recupera singur.
Testarea supraviețuirii poate verifica dacă software-ul este capabil să salveze datele pentru a minimiza pierderea de date în cazul unei defecțiuni bruște, de exemplu.
4. Disponibilitate
Disponibilitatea software-ului se referă la gradul în care utilizatorul poate depinde de sistem în timpul funcționării sale. Acest lucru se mai numește și stabilitate și este testat prin teste de stabilitate.
Testarea stabilității se aseamănă într-o oarecare măsură cu testarea fiabilității, deoarece verifică dacă sistemul poate funcționa în mod constant la standardele așteptate.
5. Utilizabilitatea
Testarea capacității de utilizare este un alt tip important de testare nefuncțională în testarea software. Acest tip de testare evaluează cât de bine poate utilizatorul să învețe, să opereze și să utilizeze sistemul software urmând instrucțiunile furnizate pe ecran și alte ghiduri de bază.
Testarea capacității de utilizare este importantă deoarece, dacă software-ul nu este foarte ușor de utilizat, majoritatea utilizatorilor îl vor abandona sau vor alege să folosească altceva.
6. Scalabilitate
Testarea scalabilității testează în ce măsură o aplicație software își poate extinde capacitatea de procesare pentru a satisface o cerere în creștere.
De exemplu, dacă software-ul este conceput pentru a fi utilizat de mai mulți utilizatori dintr-o singură rețea în același timp, cum funcționează atunci când zece utilizatori se conectează în același timp? Un număr mai mare de utilizatori afectează semnificativ performanța sau timpii de încărcare?
7. Interoperabilitate
Testarea interoperabilității este un tip de testare nefuncțională care verifică cât de bine un sistem software se interfațează cu alte sisteme software.
Acest lucru este deosebit de important atunci când software-ul este conceput ca parte a unei suite de produse care se integrează unele cu altele.
8. Eficiență
Eficiența în testarea software se referă la măsura în care un sistem software poate face față capacității, cantității și timpului de răspuns.
De exemplu, testerii pot evalua numărul de utilizatori care se pot conecta la sistem în același timp, cât timp este nevoie pentru a prelua date din baza de date sau cât de repede poate efectua software-ul sarcini de bază.
9. Flexibilitate
Flexibilitatea măsoară gradul în care un sistem software poate funcționa cu diferite tipuri de hardware și periferice.
De exemplu, de câtă memorie RAM are nevoie software-ul sau dacă acesta necesită o anumită cantitate de procesor. Cu cât cerințele pentru aplicația software sunt mai mici, cu atât software-ul este mai flexibil.
10. Portabilitate
Testarea portabilității este utilizată pentru a testa cât de flexibil poate fi transferat software-ul din mediul său hardware sau software actual și cât de ușor se poate face acest lucru.
Portabilitatea este importantă deoarece afectează ușurința cu care utilizatorii finali pot gestiona software-ul și îl pot muta între diferite sisteme.
11. Reutilizabilitate
Testarea reutilizabilității este un tip de testare nefuncțională care testează dacă anumite părți ale sistemului software pot fi convertite pentru a fi reutilizate în cadrul unei alte aplicații.
Deși testele de reutilizare nu afectează, de obicei, clienții și utilizatorii finali, ele reflectă în mod eficient modul în care dezvoltatorii creează componente care pot fi reutilizate în viitor.
Caracteristicile testelor nefuncționale
Înțelegerea a ceea ce sunt testele nefuncționale implică înțelegerea caracteristicilor testelor nefuncționale. Aceste caracteristici definesc testarea nefuncțională în testarea software.
1. Măsurabil
Testarea nefuncțională este întotdeauna cantitativă și măsurabilă, ceea ce înseamnă că testerii nu folosesc expresii subiective precum “frumos” sau “bun”, ci folosesc cifre și fapte pentru a descrie rezultatele testării nefuncționale.
De exemplu, mai degrabă decât să descrie timpii de încărcare ca fiind “rapizi” sau “lenți”, testarea nefuncțională ar trebui să aibă ca rezultat cifre specifice care să arate numărul de ori.
2. Specific
Atunci când se efectuează testarea nefuncțională, scopul testelor trebuie să fie specific specificativ pentru specificațiile de proiectare ale software-ului.
De exemplu, dacă planul de proiect software se referă la numărul de utilizatori care ar trebui să se poată conecta simultan, acest lucru ar trebui să fie prioritar în cadrul testelor nefuncționale.
3. Necunoscut
În timp ce testarea nefuncțională poate fi special concepută pentru a măsura atributele stabilite în planurile de proiect, în multe cazuri aceste atribute nu vor fi specificate în avans.
În acest caz, testerii ar trebui să efectueze pur și simplu teste nefuncționale pentru a evalua software-ul în funcție de fiecare parametru și, ulterior, să le compare cu așteptările.
Ciclul de viață al testelor non-funcționale
Deoarece testarea nefuncțională nu se referă la o fază specifică din ciclul de viață al testării software, ci pur și simplu la un tip de testare care are loc de obicei în timpul fazei de testare a sistemului de testare software, ciclul de viață al testării nefuncționale poate varia foarte mult de la un proiect la altul.
În general, urmează un ciclu de viață similar cu alte tipuri de testare software, care începe cu analiza cerințelor proiectului și se termină cu execuția testelor și îndeplinirea ciclului.
1. Analiza cerințelor software
Prima etapă a ciclului de viață pentru testarea nefuncțională este analiza cerințelor software. Echipele de software lucrează în funcție de criterii specifice atunci când construiesc și testează aplicații, iar aceste criterii ar trebui să dicteze ce tip de teste trebuie efectuate.
2. Planificarea testelor
Următoarea etapă a ciclului de viață este planificarea testelor. În timpul etapei de planificare a testelor, responsabilul cu asigurarea calității va întocmi un plan de testare detaliat care va detalia ce va fi testat, cine va efectua testarea și ce abordări, metode și instrumente de testare vor fi utilizate.
Planul de testare ar trebui să includă toate detaliile necesare de care testerii au nevoie pentru a crea și executa cazurile de testare.
3. Crearea cazurilor de testare
Crearea cazurilor de testare este următoarea etapă a testării nefuncționale. Această etapă implică dezvoltarea de cazuri de testare nefuncțională pe care testerii le vor executa într-o etapă ulterioară pentru a testa cerințele nefuncționale ale sistemului.
Cazurile de testare descriu ce va fi testat, cum va fi testat și care este rezultatul așteptat al testului.
4. Configurarea mediului de testare
Următoarea etapă în ciclul de viață al testării nefuncționale este crearea mediului de testare înainte de începerea testării.
Mediul de testare este locul în care au loc toate testele și în care se află resursele și instrumentele pe care le veți utiliza pentru a executa testele nefuncționale.
Echipa de testare pregătește mediul de testare configurat înainte de executarea testului.
5. Executarea testului
Executarea testului este următoarea fază a ciclului de viață al testării nefuncționale. Aceasta implică executarea cazurilor de testare create anterior pentru a testa diferite aspecte ale aplicațiilor software, inclusiv securitatea, timpii de încărcare, capacitatea și portabilitatea.
Echipa de testare execută fiecare caz în parte și verifică rezultatul fiecărui test în funcție de rezultatul așteptat.
6. Repetarea ciclului
Etapa finală a ciclului de viață al testării nefuncționale este îndeplinirea și repetarea ciclului. După executarea tuturor cazurilor de testare, testerii verifică ce teste au trecut și ce teste au eșuat.
Testele care eșuează indică, de obicei, că există un defect care trebuie rezolvat de către dezvoltatori. După ce dezvoltatorii au corectat sau editat codul, ciclul de testare a software-ului se repetă din nou până când nu se mai găsesc defecte.
Clarificarea unor confuzii:
Testarea nefuncțională vs testarea funcțională
Testarea funcțională și testarea nefuncțională sunt două tipuri diferite, dar la fel de importante, de testare a software-ului care, împreună, sunt folosite pentru a evalua dacă o aplicație software îndeplinește cerințele utilizatorilor, așa cum sunt stabilite în fișa de proiect.
Deși ambele sunt tipuri de testare necesare care permit echipelor de software să identifice defectele în cadrul construcțiilor de software, testarea funcțională și cea nefuncțională sunt complet diferite una de cealaltă.
1. Care este diferența dintre testarea funcțională și cea nefuncțională?
Diferența dintre testarea funcțională și cea nefuncțională constă în ceea ce testează. Testarea funcțională testează funcțiile aplicației și verifică dacă acestea funcționează conform așteptărilor. Testarea nefuncțională testează alte aspecte ale aplicației care afectează satisfacția utilizatorului și calitatea aplicației.
Testarea funcțională și cea nefuncțională au loc în diferite faze ale testării software, dar ambele tipuri de testare sunt de obicei efectuate în timpul fazei de testare a sistemului.
Atât testarea funcțională, cât și cea nefuncțională ne pot ajuta să înțelegem cât de bine funcționează o aplicație și dacă aceasta își îndeplinește sarcinile în mod adecvat.
De exemplu, dacă testați o aplicație mobilă care permite utilizatorilor să salveze liste de sarcini și liste de cumpărături, testarea funcțională poate testa funcții precum crearea unei liste noi, salvarea unei liste și modificarea listelor existente.
Testele nefuncționale pot evalua cât de bine funcționează aplicația pe diferite dispozitive mobile, cât de repede se încarcă listele și cât de mult este afectată performanța aplicației atunci când alte aplicații rulează în fundal.
2. Concluzie: testarea nefuncțională vs. testarea funcțională
Atât testarea funcțională, cât și cea nefuncțională sunt tipuri importante de testare a software-ului, care pot ajuta testerii și echipele de asigurare a calității să evalueze dacă o aplicație îndeplinește cerințele actuale.
În timp ce testarea funcțională testează funcțiile software-ului, testarea nefuncțională testează alte aspecte care ar putea afecta performanța, eficiența și securitatea.
Testarea unitară, testarea de integrare și testarea API sunt toate forme de testare funcțională. În fiecare dintre aceste etape de testare a software-ului, testerii evaluează cât de bine funcționează funcțiile și caracteristicile, fie individual, fie împreună, și identifică erorile și defectele care împiedică funcțiile să funcționeze conform așteptărilor.
Testele de securitate, testele de utilizare, testele de portabilitate și testele de încărcare sunt toate forme de teste nefuncționale care permit tesatorilor să evalueze cât de bine o aplicație își îndeplinește funcțiile și răspunde nevoilor utilizatorilor.
Tipuri de testare nefuncțională
Există o mulțime de tipuri diferite de testare nefuncțională, fiecare dintre acestea testând un aspect nefuncțional diferit al performanței sau eficienței unei aplicații software.
Fiecare dintre aceste tipuri de teste va testa parametri diferiți, iar unele teste pot testa aceiași parametri în moduri diferite.
1. Teste de performanță
Testele de performanță sunt un tip de test nefuncțional care verifică cât de bine funcționează diferite componente software. Mai degrabă decât să testeze funcționalitatea acestora, ceea ce face testarea funcțională, testele de performanță pot testa timpii de răspuns, blocajele și punctele de defecțiune. Testarea performanței îi ajută pe testeri să se asigure că software-ul este de înaltă calitate și că este rapid, stabil și fiabil.
2. Teste de stres
Testarea la stres este un tip de testare nefuncțională care testează cât de bine se comportă software-ul atunci când este supus unor solicitări anormale. Aceasta ar putea însemna testarea modului în care software-ul se comportă atunci când cineva încearcă să utilizeze o mulțime de caracteristici diferite în același timp sau în timp ce rulează multe alte aplicații în același timp.
Testarea la stres urmărește să identifice limita la care software-ul încetează să mai funcționeze corect și ce se întâmplă atunci când sistemul este supus la stres. Aceasta le permite testerilor să înțeleagă dacă sistemul se poate recupera singur și dacă notifică utilizatorii cu mesaje de eroare adecvate.
3. Teste de sarcină
Testarea sarcinii este un tip de testare care evaluează modul în care se comportă software-ul atât în condiții normale, cât și atunci când este supus unor sarcini mai mari. Se utilizează pentru a determina cât de mult poate gestiona software-ul simultan fără ca performanța să fie afectată negativ.
Testele de încărcare pot fi utilizate pentru a testa modul în care funcționează aplicațiile atunci când sunt utilizate de mai mulți utilizatori în același timp sau atunci când utilizatorii încearcă să descarce o mulțime de date în același timp.
Testarea sarcinii este importantă dacă doriți să verificați dacă software-ul dumneavoastră este scalabil.
4. Teste de securitate
Testele de securitate evaluează aplicațiile software și caută vulnerabilități în ceea ce privește securitatea software-ului. Printre acestea se numără potențialele riscuri de securitate care ar putea duce la pierderi de date sau la breșe care ar putea expune date confidențiale.
Testele de securitate sunt importante pentru că asigură că produsul este protejat în mod adecvat împotriva pirateriei informatice, a încălcărilor de date și a altor amenințări externe la adresa securității.
Printre exemplele de teste de securitate pe care le pot efectua testerii se numără auditurile de securitate, hackingul etic, testele de penetrare, scanările de securitate și evaluările de postură.
5. Teste de actualizare și instalare
Testarea actualizărilor și a instalărilor este un tip de testare nefuncțională a software-ului care verifică cât de bine funcționează software-ul pe diferite mașini.
Scopul acestui tip de testare este de a se asigura că noii utilizatori pot instala cu ușurință software-ul pe mașinile lor și că utilizatorii existenți îl pot actualiza atunci când sunt lansate noi actualizări.
Testele de actualizare și de instalare sunt importante deoarece utilizatorii finali trebuie să poată instala cu ușurință produsul dvs., cu condiția să lucreze cu o mașină compatibilă cu acesta.
6. Teste de volum
Testarea volumului este un tip de testare care există pentru a verifica ce se întâmplă atunci când volume mari de date sunt adăugate simultan în baza de date. Aceasta identifică dacă aplicația poate gestiona volume mari de date și ce se întâmplă cu sistemul în caz contrar.
Testarea volumului este, de asemenea, cunoscută sub numele de testare a inundațiilor și o puteți utiliza pentru a evalua pierderea de date și mesajele de eroare care apar atunci când adăugați cantități semnificative de date în sistem.
Testarea volumului este singura modalitate de a ne asigura că software-ul poate gestiona volumele de date la care se așteaptă utilizatorii.
7. Teste de recuperare
Testele de recuperare implică forțarea sistemului software să eșueze pentru a testa cât de bine se recuperează sistemul după o defecțiune.
Testele de recuperare îi pot ajuta pe testeri să înțeleagă modul în care software-ul recuperează datele și previne pierderile în cazul în care hardware-ul este scos din priză în timpul utilizării, dacă software-ul este deconectat de la rețea în timpul unui transfer de date sau dacă reporniți sistemul în mod neașteptat.
Acest tip de testare este important, deoarece sistemele fără protocoale de recuperare adecvate ar putea suferi pierderi grave de date atunci când se produc astfel de accidente.
De ce aveți nevoie pentru a începe testarea non-funcțională
Înainte de a începe testarea nefuncțională, va trebui să vă asigurați că ați pregătit mediul de testare și că ați adunat instrumentele și datele de care aveți nevoie.
1. Planul de testare
Înainte de a începe testarea nefuncțională, asigurați-vă că aveți un plan de testare finalizat și semnat de persoanele corespunzătoare.
Planul de testare ar trebui să includă toate detaliile relevante despre ceea ce urmează să testați și cum. Acesta ar trebui să explice când veți folosi testarea manuală și când veți folosi testarea automată, precum și să prezinte rolurile și responsabilitățile tuturor celor implicați în procesul de testare.
2. Cazuri de testare
Înainte de a putea executa testele nefuncționale, va trebui să creați cazuri de testare. Fiecare caz de testare prezintă un anumit lucru pe care urmează să îl testați, explică modul în care îl veți testa și descrie rezultatul așteptat al testului.
De exemplu, dacă efectuați teste de încărcare, un exemplu de caz de testare poate fi testarea modului în care software-ul se comportă atunci când zece utilizatori utilizează același modul în același timp.
3. Verificarea funcțională
Nu puteți efectua teste nefuncționale pe componentele software dacă acestea nu sunt funcționale.
De exemplu, dacă doriți să testați câți utilizatori pot fi conectați în același timp, este important să verificați mai întâi dacă utilizatorii individuali se pot conecta efectiv la software.
Înainte de a începe testarea nefuncțională, asigurați-vă că toate testele funcționale au trecut și că software-ul funcționează așa cum vă așteptați.
Acest lucru înseamnă, de obicei, că testele de fum, testele de sanitate, testele unitare, testele de integrare și testele funcționale ale sistemului au fost deja efectuate.
4. Instrumente de testare
Înainte de a începe testarea nefuncțională, adunați toate instrumentele de testare pe care doriți să le utilizați pentru a efectua testele.
Fie că folosiți instrumente de automatizare pentru a automatizați unele dintre testele dvs. sau instrumente de documentare pentru a vă ajuta să gestionați și să stocați rapoartele de testare pentru utilizare ulterioară, asigurați-vă că instrumentele pe care doriți să le utilizați sunt disponibile și gata de utilizare și că toți membrii echipei de testare știu cum să utilizeze fiecare instrument în mod corespunzător.
5. Mediul de testare
Configurați mediul de testare înainte de a începe testarea nefuncțională. Este posibil să aveți deja un mediu de testare adecvat, în special dacă puteți utiliza același mediu pentru testarea sistemului nefuncțional și pentru testarea sistemului funcțional.
Mediul de testare ideal vă permite să testați fiecare element de care aveți nevoie pe dispozitivele corecte.
De exemplu, dacă testați gestionarea volumului pe dispozitive smartphone, este mai bine să testați acest lucru pe un dispozitiv smartphone real decât să încercați să emulați un mediu mobil pe un computer desktop.
Procesul de testare non-funcțională
Testarea aspectelor nefuncționale ale unui software este un proces în mai multe etape care implică pregătirea mediului de testare, crearea de cazuri de testare, colectarea datelor de testare și executarea de teste nefuncționale.
Este posibil să împărțiți procesul de testare în bucăți mici pentru a fi mai ușor de urmărit pentru începătorii în domeniul testării nefuncționale.
1. Verificări ale pregătirii pentru testarea nefuncțională
Înainte de a începe testarea nefuncțională, este important să verificați dacă sunteți pregătit pentru această fază de testare.
Acest lucru poate însemna evaluarea criteriilor de ieșire pentru ultima fază de testare pentru a se asigura că software-ul a trecut de aceasta și pentru a se asigura că software-ul a trecut toate testele funcționale necesare înainte de a avea loc testarea nefuncțională.
Unele echipe pot crea criterii de intrare pentru testarea nefuncțională, care cuprind toate condițiile care trebuie îndeplinite înainte de începerea testării nefuncționale.
2. Creați un plan de testare
Este posibil să fi efectuat deja acest pas mai devreme, dacă efectuați testarea nefuncțională ca parte a testării sistemului și dacă urmați planul de testare a sistemului. Un plan de testare prezintă toate testele pe care trebuie să le efectuați și modul în care intenționați să le efectuați.
Fără un plan de testare clar, este ușor să pierdeți din vedere domeniul de aplicare și obiectivele testelor pe care le efectuați.
3. Crearea cazurilor de testare
Următoarea etapă a testării nefuncționale constă în crearea de cazuri de testare concepute pentru a testa fiecare parametru nefuncțional al software-ului.
Fiecare caz de testare ar trebui să aibă un ID al cazului de testare, un nume al cazului de testare, o descriere și detalii privind rezultatul așteptat al testului, precum și orice criterii de reușită sau de eșec care sunt stabilite în prealabil. Acest lucru îi ajută pe testeri să înțeleagă cum să efectueze fiecare test și ce rezultate să caute.
4. Colectarea datelor de testare
Înainte de a putea executa fiecare caz de testare, va trebui să adunați datele de testare pe care le veți utiliza pentru fiecare caz de testare.
Acest lucru înseamnă, de obicei, colectarea de cod și de date de la diferite module și componente care alcătuiesc funcțiile și domeniile pe care urmează să le testați. Dacă doriți să maximizați acoperirea testelor, ar trebui să aveți o mulțime de date de testare cu care să lucrați.
5. Pregătiți mediul de testare
Următoarea etapă a testării nefuncționale este pregătirea mediului de testare. Mediul de testare este un server de testare pe care îl veți utiliza pentru a efectua teste software de diferite tipuri.
Aceasta vă permite să creați condiții identice în care să vă testați software-ul și să vă configurați software-ul cu diferite configurații pentru testarea configurației, testarea securității și alte tipuri de testare nefuncțională.
6. Executarea testelor nefuncționale
Odată ce mediul de testare este gata, este timpul să se execute testele nefuncționale. Puteți decide să executați testele în ordinea tipului, de exemplu, să începeți cu testele de performanță înainte de a trece la testele de securitate și la alte tipuri de teste nefuncționale.
Pe măsură ce efectuați fiecare test, notați rezultatele în raportul de testare. Dacă automatizați testele, instrumentul de automatizare va avea și el o modalitate standardizată de raportare a rezultatelor în mod clar și neechivoc.
7. Raportarea rezultatelor testelor
După ce ați executat fiecare caz de testare, compilați rezultatele testelor nefuncționale într-un singur raport.
Acest raport ar trebui să fie clar în ceea ce privește rezultatele fiecărui test și să indice fără echivoc dacă fiecare test a trecut sau nu.
Urmați o structură standardizată pentru raportul de testare pentru a vă asigura că sunt incluse toate informațiile pe care trebuie să le transmiteți.
8. Remedierea defectelor
Odată ce ați primit rezultatele testelor, înapoiați software-ul dezvoltatorilor dacă testele au eșuat sau dacă ați identificat erori nefuncționale care trebuie remediate.
De exemplu, dacă software-ul nu gestionează un număr adecvat de utilizatori în același timp sau dacă performanța încetinește prea mult atunci când mai multe programe rulează în același timp, aceste probleme vor trebui probabil să fie rezolvate în cadrul codului pentru a se asigura că utilizatorii sunt mulțumiți de produs.
9. Repetarea ciclului de testare
Odată ce dezvoltatorii au reparat toate defectele găsite în faza inițială de testare nefuncțională, ciclul de testare poate începe din nou.
Dezvoltatorii vor testa modificările pe care le fac și vor transmite noua versiune testelor QA, care vor efectua apoi o serie completă de teste, începând cu testele de fum, testele unitare, testele de integrare și, în final, testele de sistem.
Ciclul de testare se repetă până când nu mai apar erori sau defecte în niciun punct, după care construcția poate intra în etapa finală de testare: testarea acceptării de către utilizator.
Cazuri de testare pentru testarea nefuncțională
Cazurile de testare reprezintă un aspect important al tuturor testelor software, iar atunci când efectuați atât teste funcționale, cât și teste nefuncționale, veți utiliza cazuri de testare pentru a defini ce veți testa și cum veți testa.
Fiecare caz de testare poate fi considerat ca un mini-test, iar fiecare caz de testare va avea propriile ieșiri și rezultate definite.
1. Ce sunt cazurile de testare pentru testarea nefuncțională?
Un caz de testare este un set de acțiuni efectuate asupra unei construcții de software pentru a testa dacă aceasta îndeplinește condițiile definite în planul de software. Fiecare caz de testare le spune efectiv tesatorilor ce și cum să testeze și este conceput pentru a testa o anumită funcție sau o caracteristică nefuncțională a aplicației software.
Cazurile de testare nefuncționale pot include testarea a ceea ce se întâmplă atunci când cineva încearcă să acceseze date securizate în cadrul sistemului sau testarea rapidității cu care se încarcă software-ul la pornire.
2. Cum se proiectează cazurile de testare nefuncțională?
Atunci când proiectați cazuri de testare pentru testarea nefuncțională, este important să urmați practicile standard de testare a cazurilor de testare, ținând cont în același timp de obiectivele testelor nefuncționale.
Urmați pașii de mai jos pentru a scrie cazuri de testare pentru testarea nefuncțională, care să sublinieze în mod clar ce trebuie să facă testerii dumneavoastră pentru a efectua fiecare test.
1. Definiți zona pe care doriți să o acoperiți
Pentru fiecare caz de testare, luați în considerare ce zonă a software-ului dumneavoastră va acoperi acest caz de testare.
De exemplu, dacă scrieți cazuri de testare pentru testarea instalării și a actualizării, puteți include cazuri de testare care să evalueze cât de ușor se instalează aplicația pe diferite dispozitive și cât durează actualizarea software-ului cu ajutorul unui nou patch.
2. Creați un ID unic al cazului de testare
Fiecare caz de testare trebuie să aibă un ID unic de caz de testare. Acest lucru facilitează găsirea ulterioară a descrierii cazului de testare și a rezultatelor și clarifică orice confuzie cu privire la care dintre cazurile de testare la care vă referiți în cazul în care două cazuri de testare au nume sau descrieri similare.
3. Numiți și descrieți fiecare test
În timp ce ID-ul cazului de testare identifică testul, veți dori, de asemenea, să furnizați un nume și o descriere pentru fiecare caz de testare pe care îl scrieți.
Ar trebui să fie un nume simplu care să rezume ceea ce testați, în timp ce descrierea este o singură propoziție care detaliază puțin mai mult.
Descrierea ar trebui să fie suficient de clară pentru ca testerii să știe ce trebuie să testeze și cum să o facă, precum și orice condiții speciale care trebuie îndeplinite în cadrul testului.
4. Precizați rezultatul așteptat
Pentru fiecare caz de testare, descrieți rezultatul care ar trebui să apară dacă software-ul funcționează conform așteptărilor.
În testele nefuncționale, cum ar fi testele de performanță și testele de încărcare, acest lucru poate însemna, în multe cazuri, că software-ul continuă să funcționeze în mod normal, fără să încetinească, să întârzie sau să se blocheze.
În alte cazuri, poate însemna că anumite mesaje de eroare apar pentru a notifica utilizatorul cu privire la problemă și pentru a recomanda o soluție.
5. Recomandarea tehnicilor de testare
Pentru fiecare caz de testare, recomandați tipul de tehnici de testare și instrumentele de testare nefuncțională pe care credeți că testerul ar trebui să le utilizeze în timpul testării.
În cadrul testării nefuncționale, testerii pot folosi abordări foarte diferite pentru diferite tipuri de testare.
De exemplu, testele de încărcare și testele de stres pot necesita automatizare, deoarece nu este practic să se simuleze manual un trafic extrem de intens, în timp ce alte tipuri de teste pot fi mai ușor de realizat fără instrumente sau tehnologii specifice.
6. Fiecare caz de testare trebuie să fie revizuit de către colegi
Înainte de a semna fiecare caz de testare, cereți ca fiecare caz să fie revizuit de cineva cu care lucrați. Acesta poate fi un alt tester sau un responsabil cu asigurarea calității.
Revizuirea de către colegi a cazurilor de testare asigură faptul că acestea sunt suficient de clare pentru a putea fi urmate de un tester terț și că nu includ ambiguități sau greșeli care ar putea duce la o testare necorespunzătoare.
3. Exemple de cazuri de testare nefuncțională
Dacă scrieți cazuri de testare pentru testarea nefuncțională, acestea ar putea arăta ca în exemplele de testare nefuncțională de mai jos.
Exemplu de testare a scalabilității
ID-ul cazului de testare: 6671
Numele cazului de test: Test de autentificare a mai multor utilizatori
Descriere: Emulați mai mult de 20 de utilizatori care se conectează la software în același timp folosind instrumente de automatizare.
Rezultate așteptate: Software-ul ar trebui să funcționeze în mod normal pentru fiecare utilizator, permițând fiecărui utilizator să se conecteze cu succes în mai puțin de 5 secunde.
Exemplu de testare a compatibilității
ID-ul cazului de testare: 5214
Numele cazului de test: Încărcarea aplicației în browserul Opera
Descriere: Încărcați aplicația în browserul web Opera.
Rezultate așteptate: Aplicația se încarcă în mod normal în browserul web Opera cu rezoluție și aspect standard.
Teste nefuncționale manuale sau automate?
Atunci când alegeți între diferite tehnici de testare nefuncțională, va trebui să decideți dacă doriți să efectuați teste nefuncționale manuale sau automate.
Testele manuale sunt efectuate de testeri umani, ceea ce înseamnă că, de obicei, sunt mai lungi de realizat, dar oferă și oportunități de testare exploratorie.
Testele automatizate nefuncționale sunt mai rapide și, într-un fel, mai fiabile, dar necesită și mai multe resurse sau instrumente. Automatizarea și hiperautomatizarea devin din ce în ce mai populare în domeniul testării, în special atunci când vine vorba de testarea nefuncțională.
Testarea manuală non-funcțională: Beneficii, provocări și procese
Testarea manuală nefuncțională este efectuată exclusiv de către testeri, care vor testa fiecare element nefuncțional în parte, în mod independent.
Atunci când se efectuează teste nefuncționale manuale, testerii trebuie să adune informații despre software, să creeze cazuri de testare individuale care corespund planului de testare și să execute aceste cazuri de testare manual.
Acest lucru necesită un timp considerabil, dar înseamnă, de asemenea, că testerele de asigurare a calității au libertatea de a determina ce și cum se testează.
1. Unele dintre beneficiile testării manuale includ:
● Testarea manuală poate fi mai ieftină decât testarea automată, deoarece nu necesită tehnologii specifice sau cunoștințe tehnice.
● Testarea manuală le permite tesatorilor să ofere o perspectivă umană și subiectivitate asupra modului în care funcționează software-ul și dacă acesta funcționează în mod satisfăcător.
● Testarea manuală poate fi utilizată pentru a efectua testarea sistemului în scenarii în care este imposibil de automatizat.
● Testarea manuală le permite tesatorilor să evalueze aspectele vizuale ale sistemului, cum ar fi interfața grafică și alți factori care ar putea afecta utilizabilitatea.
● Testarea manuală oferă tesatorilor o perspectivă mai largă asupra sistemului ca întreg și asupra modului în care diferite module și componente funcționează împreună.
Cu toate acestea, testarea manuală are și dezavantaje.
2. Unele dintre provocările testării manuale includ:
● Unele tipuri de teste nefuncționale, inclusiv testele de încărcare și testele de performanță, nu sunt practice pentru a fi efectuate manual.
● Testarea manuală necesită mult mai mult timp decât testarea automată nefuncțională
● Testatorii manuali pot fi distrași, își pot pierde concentrarea și pot face greșeli, în special atunci când efectuează sarcini de testare foarte repetitive.
Testarea automatizată nefuncțională: Beneficii, provocări și procese
Testarea automată nefuncțională se realizează cu ajutorul scripturilor automate și al instrumentelor de testare. Atunci când se utilizează metode de testare automată, testerii pot efectua teste în fundal, în timp ce își continuă alte sarcini, odată ce testele automate au fost inițiate.
1. Unele dintre beneficiile automatizării testelor nefuncționale sunt:
1. Economisiți timp și resurse prin reducerea timpului pe care îl dedicați unor sarcini lungi și consumatoare de timp
2. Automatizarea face posibilă creșterea acoperirii testelor prin acoperirea unei game mai largi de componente și caracteristici.
3. Este mai fezabilă efectuarea frecventă a testelor automate, deoarece acestea necesită mai puțin timp pentru a fi efectuate
4. Testarea automatizată este ideală pentru sarcinile de testare care necesită mult timp, cum ar fi testarea sarcinii, testarea volumului și testarea la stres, care sunt foarte greu de realizat manual.
5. Există o șansă mai mică de apariție a erorilor în timpul efectuării testelor automate
Cu toate acestea, există și unele dezavantaje ale testării automate, ceea ce înseamnă că nu este întotdeauna abordarea potrivită pentru toate tipurile de testare nefuncțională.
2. Unele dintre provocările testării automate nefuncționale includ:
1. Testarea automatizată este mai costisitoare decât testarea manuală
2. Configurarea automatizării testelor poate necesita timp și resurse tehnice
3. Automatizarea testelor nu lasă spațiu pentru testarea exploratorie
4. Automatizarea testelor necesită încă timp pentru crearea cazurilor de testare
Concluzie: Manual sau automat
testarea non-funcțională?
În majoritatea tipurilor de testare a software-ului, combinarea testării manuale și automate oferă, de obicei, cele mai bune rezultate. Acest lucru permite echipelor de testare să beneficieze de eficiența, fiabilitatea și acuratețea testării automate, efectuând în același timp teste exploratorii care permit tesatorilor să evalueze software-ul dintr-o perspectivă mai subiectivă.
În testarea nefuncțională, atât testarea manuală, cât și cea automată sunt practic necesare pentru majoritatea echipelor de testare.
Testarea manuală este cel mai bine utilizată pentru a efectua sarcini de testare nefuncțională, cum ar fi testarea capacității de utilizare, în timp ce testarea automatizată este cel mai adesea utilizată pentru a efectua teste care ar necesita prea mult timp și ar fi prea dificil de efectuat manual, cum ar fi testarea la stres sau testarea volumului.
Testarea nefuncțională este unul dintre cele mai evidente domenii în care se pot utiliza tehnici de automatizare a testelor, deoarece este un tip de testare cantitativă, măsurabilă, care nu solicită rezultate subiective.
Ca și în cazul altor tipuri de testare, testarea nefuncțională se realizează, de obicei, folosind un amestec de testare manuală și automată.
Cu toate acestea, testarea automată este practic necesară pentru multe tipuri de testare nefuncțională, iar parametrii și metricile testării nefuncționale înseamnă că automatizarea este mai potrivită pentru acest tip de testare decât pentru testarea funcțională.
Cele mai bune practici pentru testarea non-funcțională
Atunci când întreprindeți teste nefuncționale pentru prima dată, respectarea celor mai bune practici de testare vă poate ajuta să vă standardizați procesul de testare și să optimizați eficacitatea testelor.
Cele mai bune practici servesc drept linii directoare pentru echipele de testare software care doresc să îmbunătățească procesele de testare și să se alinieze la standardele industriei.
1. Utilizați instrumente de automatizare
În cadrul testelor nefuncționale, mai mult decât în cazul altor tipuri de teste, este important să se utilizeze instrumente de automatizare pentru a automatiza anumite tipuri de teste, în special testele de volum, testele de stres și testele de încărcare.
Aceste tipuri de teste verifică, de obicei, cât de bine funcționează software-ul sub o presiune puternică din partea utilizatorilor, a datelor și a traficului, condiții care pot fi foarte greu de emulat manual.
Automatizarea acestor tipuri de teste nefuncționale nu numai că va fi mai eficientă, dar va fi și mai precisă și le va permite testerilor să reproducă cu ușurință sarcini și tensiuni mai mari.
2. Examinarea colegială a întregii documentații
Pe lângă faptul că le cereți colegilor să revizuiască cazurile de testare pe care le creați, cereți colegilor din cadrul echipei de testare să revizuiască rapoartele de eroare, rapoartele de testare, planurile de testare și alte forme de documentație formală create în timpul procesului de testare.
Acest lucru reduce riscul unor mici greșeli care ar putea cauza întârzieri serioase în procesul de testare și dezvoltare.
3. Definirea cerințelor măsurabile
Atunci când definiți cerințele software-ului dumneavoastră înainte de începerea testării nefuncționale, asigurați-vă că fiecare cerință este obiectivă și măsurabilă.
Acest lucru facilitează verificarea de către testeri a faptului că software-ul îndeplinește aceste cerințe în timpul testării și nu lasă loc de interpretări.
Ce se consideră “rapid” sau “eficient”? Folosiți numere și valori cantitative pentru a defini ceea ce căutați.
4. Luați în considerare cu atenție parametrii de testare
Înainte de a decide ce măsurători veți folosi pentru a măsura performanța software-ului dumneavoastră, luați în considerare ceea ce vor dori utilizatorii software-ului și ce măsurători se aliniază efectiv cu planul și cerințele software-ului.
Majoritatea software-urilor ar trebui să fie rapide și fiabile, dar ce alți parametri ar putea căuta utilizatorii dumneavoastră? Există parametri specifici pentru software pe care ar trebui să îi luați în considerare în timpul procesului de testare?
Tipuri de rezultate ale unui test nefuncțional
Atunci când efectuați teste nefuncționale, veți primi diferite tipuri de rezultate de la testele pe care le efectuați.
Acestea sunt, de obicei, destul de diferite de rezultatele testelor funcționale, care sunt adesea mai clare, deoarece testele funcționale testează pur și simplu dacă o funcție funcționează așa cum ar trebui sau nu.
La fel ca în cazul testelor funcționale, testerii ar trebui să stabilească așteptări clare pentru fiecare caz de testare care să faciliteze determinarea dacă fiecare test trece sau nu.
1. Numere absolute
Atunci când efectuați teste de performanță, teste de stres și alte tipuri de teste nefuncționale, rezultatele pe care le puteți examina cel mai adesea sunt vitezele și alte numere absolute.
Testele de performanță verifică cât de repede poate sistemul să îndeplinească anumite sarcini, iar acest lucru se va măsura în secunde sau milisecunde.
Dacă efectuați teste de încărcare, puteți evalua cât de multe date poate gestiona software-ul deodată fără să se blocheze sau să întârzie.
2. Mesaje de eroare
Testarea nefuncțională verifică, de asemenea, modul în care funcționează sistemul atunci când apar erori, cum ar fi erori de securitate, erori de validare și erori de configurare.
Este important ca sistemele să afișeze mesaje de eroare precise și clare atunci când apar erori, astfel încât utilizatorii să poată lua măsuri pentru a corecta problema și pentru a continua să utilizeze software-ul.
Mesajele de eroare ar trebui să apară, de asemenea, în timpul testelor de securitate, atunci când sistemul împiedică utilizatorii să încalce funcțiile de securitate încorporate în software.
3. Accidente
Blocajul este un semn de eșec al sistemului și, de obicei, indică faptul că sistemul nu este capabil să funcționeze la nivelul la care îl testați și poate însemna că testul a trecut.
În unele cazuri, sistemul se poate prăbuși și totuși să treacă cazul de testare la care lucrați, de exemplu, dacă sistemul rezistă la cantitatea necesară de stres sau de trafic înainte de a se prăbuși.
Atunci când efectuează teste nefuncționale, testerii trebuie să se aștepte ca sistemul să se blocheze în mod regulat, în special atunci când îl împing la limită pentru teste de stres și alte teste de performanță.
Exemple de teste nefuncționale
Exemplele de teste nefuncționale sunt similare cu exemplele de mai sus pentru cazurile de testare nefuncționale.
Puteți consulta exemple de teste nefuncționale pentru a înțelege mai bine ce este testarea nefuncțională și ce testează în cadrul unei aplicații software.
1. Exemplu de testare a performanțelor
Dacă lucrați la o aplicație mobilă care conectează utilizatorii la o bază de date online, este important ca un număr mare de utilizatori să poată accesa și descărca datele din această bază de date în același timp.
Aceasta este, de asemenea, o parte esențială a testelor de scalabilitate, în special dacă doriți să creșteți numărul de utilizatori ai aplicației în viitor.
Apoi veți testa modul în care sistemul reacționează atunci când, de exemplu, 1 000 de utilizatori încearcă să acceseze aceeași bază de date în același timp și veți stabili cerințele privind viteza de încărcare a aplicației în aceste condiții.
2. Testarea compatibilității
Dacă testați o nouă aplicație de gestionare a documentelor, va trebui să testați dacă aceasta funcționează pe toate dispozitivele pentru care este destinată.
Acest lucru înseamnă că trebuie să testați dacă puteți instala și încărca aplicația pe toate versiunile cele mai recente de Windows, Mac și orice alt sistem de operare (cum ar fi Linux) cu care doriți ca software-ul să fie compatibil.
3. Testarea securității
Atunci când efectuați teste de securitate, veți testa unele dintre modalitățile prin care oamenii ar putea încerca să acceseze date confidențiale sau să încalce măsurile de securitate ale software-ului pentru a verifica dacă sistemul se comportă așa cum vă așteptați în aceste situații.
De exemplu, puteți să vă conectați ca utilizator și să încercați să accesați fișiere pentru care nu aveți autorizație de securitate pentru a vă asigura că sistemul nu vă permite să accesați aceste fișiere.
Tipuri de erori și erori detectate
prin testare nefuncțională
Testarea nefuncțională poate scoate la iveală o mulțime de erori și defecte care nu sunt la fel de ușor de găsit ca cele identificate în cadrul testării funcționale. Acest lucru se datorează faptului că testarea nefuncțională necesită adesea ca testerii să verifice diferite configurații, setări și combinații de condiții pentru a evalua cât de bine funcționează sistemul într-o multitudine de setări diferite.
1. Defecte de performanță
Defectele de performanță apar atunci când sistemul funcționează, dar nu funcționează atât de rapid sau de eficient pe cât vă așteptați să o facă.
De exemplu, s-ar putea să constatați că sistemul nu se încarcă suficient de repede în anumite condiții sau chiar se blochează dacă se conectează prea mulți utilizatori în același timp.
Defectele de performanță nu îi împiedică complet pe oameni să folosească software-ul, dar pot face ca acesta să fie mai puțin utilizabil și să nu îndeplinească cerințele utilizatorilor.
2. Defecte de securitate
Defectele de securitate sunt acele defecte care afectează securitatea sistemului software și a datelor stocate în cadrul acestuia.
Defectele de securitate pot apărea dacă, de exemplu, utilizatorii pot avea acces la date confidențiale la care nu ar trebui să aibă acces sau dacă anumite părți ale aplicației nu sunt protejate corect prin parolă sau dacă criptarea eșuează.
Acestea ar putea duce la breșe de securitate, care pot avea un impact grav asupra reputației unui editor de software.
3. Defecte funcționale
Deși testarea nefuncțională nu este concepută pentru a testa funcțiile unei aplicații software, în unele cazuri, testarea nefuncțională poate identifica defecte funcționale în cadrul software-ului.
De exemplu, scopul testării fiabilității nu este de a testa dacă aplicația funcționează, ci de a testa dacă aplicația funcționează în mod fiabil la încercări repetate.
Acest lucru poate dezvălui faptul că unele caracteristici nu funcționează corect în mod fiabil atunci când o acțiune este repetată, iar acestea pot fi clasificate ca erori funcționale.
Măsurători comune de testare nefuncțională
Parametrii de testare nefuncțională descriu acei parametri prin care se măsoară performanța și eficiența sistemului.
Diferitele tipuri de testare nefuncțională se bazează pe diferite măsurători și puteți alege să utilizați o varietate de măsurători în funcție de obiectivele finale ale proiectului.
1. Timp
Măsurătorile de timp măsoară cât timp este nevoie pentru a efectua anumite sarcini sau cât timp trebuie să aștepte utilizatorii pentru ca funcțiile să se încarce.
Câteva exemple de măsurători de timp sunt numărul de tranzacții sau descărcări pe care o aplicație le poate efectua într-un interval de timp dat, timpii de răspuns ai diferitelor funcții și timpul necesar pentru ca aplicația să finalizeze o anumită operațiune.
Diferite tipuri de teste vor măsura rezultatele în secunde sau ca o prezentare a numărului de operații pe secundă.
2. Spațiu
Spațiul este o altă măsură importantă în testarea nefuncțională. Măsurătorile de spațiu pot testa cât de mult spațiu de procesare necesită sistemul sau cât spațiu ocupă software-ul pe hard disk după ce este complet instalat.
Unele exemple de măsurători de spațiu includ memoria cache, memoria principală și memoria auxiliară.
Un software care necesită o cantitate mare de spațiu pentru a funcționa fără probleme poate fi potrivit pentru un număr mai mic de clienți.
3. Utilizabilitatea
Unii indicatori din cadrul testării nefuncționale iau în considerare capacitatea de utilizare a sistemului, de exemplu, cât timp este nevoie pentru a instrui utilizatorii să utilizeze sistemul în mod corespunzător, câte opțiuni trebuie să parcurgă utilizatorii pentru a efectua funcții cheie sau câte clicuri de mouse sunt necesare pentru a îndeplini anumite sarcini.
Testele nefuncționale pot măsura cantitativ fiecare dintre acești parametri, iar cifrele mai mici implică, în general, niveluri mai ridicate de utilizare.
4. Fiabilitatea
O altă măsură importantă în testarea nefuncțională este fiabilitatea. Fiabilitatea reflectă probabilitatea ca un sistem să se comporte în același mod în mod repetat sau să funcționeze așa cum ar trebui pentru o perioadă lungă de timp.
Printre exemplele de măsurători utilizate pentru a măsura fiabilitatea se numără timpul mediu până la defecțiune, rata de defecțiune, disponibilitatea și probabilitatea de întrerupere a activității.
Fiecare dintre acești parametri îi ajută pe testeri să verifice dacă sistemul poate funcționa pentru o perioadă lungă de timp fără a se confrunta cu defecțiuni sau blocări.
5. Robustețe
Robustețea este măsura în care sistemul gestionează defecțiunile și cât de bine se poate reface singur în caz de defecțiune.
Printre exemplele de măsurători care măsoară robustețea se numără timpul necesar pentru ca sistemul să se recupereze după o defecțiune, procentul de incidente care duc la o defecțiune catastrofală și probabilitatea ca fișierele de date să fie corupte după ce sistemul eșuează.
Acești indicatori sunt importanți deoarece utilizatorii se așteaptă ca sistemele să cedeze uneori fără a pierde toate datele sau a corupe fișierele.
6. Portabilitate
Parametrii de portabilitate măsoară ușurința cu care software-ul poate fi transferat pe diferite sisteme sau mutat într-o nouă locație în cadrul unei rețele.
Printre exemplele de măsurători care măsoară portabilitatea se numără procentajul de cod neportabil și numărul de sisteme pe care software-ul poate rula.
În mod ideal, software-ul care poate rula pe o mulțime de sisteme diferite este mai portabil și, prin urmare, mai convenabil pentru utilizarea în medii care ar putea necesita transferuri sau relocări frecvente.
Strategii pentru efectuarea de teste nefuncționale
Atunci când începeți testarea nefuncțională, este important să abordați această fază de testare cu o strategie în minte. Responsabilii cu asigurarea calității și managerii de testare software trebuie să ia în considerare riscurile testării, resursele pe care le au la dispoziție și scopul testării înainte de a începe testarea nefuncțională.
Elaborarea unei strategii vă poate ajuta să vă optimizați testele nefuncționale încă de la început.
1. Alocarea rolurilor și responsabilităților
Înainte de a începe testarea nefuncțională, alocați roluri și responsabilități membrilor cheie ai echipei de testare. Astfel, este mai ușor să gestionați volumul de muncă al testării nefuncționale și să vă asigurați că testerii experimentați sunt responsabili de menținerea calității și eficienței testelor pe care le efectuați.
Asigurați-vă că persoanele pe care le alegeți pentru a prelua aceste roluri au cunoștințele și experiența necesare pentru a îndeplini sarcinile pe care le așteptați, în special dacă aceste sarcini necesită competențe tehnice.
2. Adunați instrumentele de testare relevante
Adunați toate tehnologiile și instrumentele pe care doriți să le utilizați pentru a efectua testele nefuncționale. Asigurați-vă că toți membrii echipei dvs. știu cum să le utilizeze în mod eficient și organizați cursuri de formare pentru a acoperi lacunele de competențe, acolo unde este necesar.
Asigurați-vă că toată lumea știe ce instrumente de testare trebuie să utilizeze și cum să le folosească înainte de începerea testării nefuncționale, reducând astfel riscul de a fi nevoiți să întrerupeți testarea sau să refaceți testele din cauza cunoștințelor insuficiente.
3. Stabilirea priorităților de testare
Înainte de a începe testarea nefuncțională, faceți o listă cu toate aspectele sistemului pe care trebuie să le testați și stabiliți prioritățile în funcție de urgență și importanță.
Puteți prioritiza testarea nefuncțională în funcție de nivelul de risc implicat în fiecare aspect al sistemului pe care îl testați.
De exemplu, pot avea loc teste de securitate de bază, deoarece securitatea adecvată este considerată extrem de importantă în software-ul modern. Cu cât identificați mai devreme defectele cu risc ridicat, cu atât mai mic poate fi impactul potențial al acestor defecte asupra altor aspecte ale sistemului.
7 cele mai bune instrumente de testare non-funcțională
Instrumentele de testare nefuncțională pot simplifica procesul de testare, pot face mai ușoară și mai rentabilă automatizarea testării și pot ajuta responsabilii cu asigurarea calității să gestioneze procesul de testare și de documentare.
Există o mulțime de instrumente de testare nefuncțională gratuite disponibile online, precum și unele instrumente pentru care puteți plăti o taxă lunară pentru a le actualiza.
1. ZAPTEST FREE edition
ZAPTEST este un instrument popular de testare software care permite utilizatorilor să efectueze rapid și ușor teste software funcționale și nefuncționale. Puteți utiliza ZAPTEST pentru a automatiza testele software și pentru a utiliza tehnologia RPA pentru a emula diverse funcții și condiții în testele nefuncționale.
Ediția ZAPTEST FREE este doar o versiune redusă a ediției enterprise, oferind multe dintre aceleași funcționalități la o scară mai mică. Puteți solicita asistență pe forumul ZAPTEST și puteți efectua teste de performanță cu un număr nelimitat de utilizatori virtuali.
2. Appium
Appium este un instrument gratuit de testare a software-ului care este cel mai potrivit pentru testarea aplicațiilor mobile pe o varietate de platforme diferite, inclusiv dispozitive iOS și Android. Appium oferă utilizatorilor o mare flexibilitate pentru a-și concepe propriile cadre și strategii de testare, beneficiind în același timp de abilitățile de automatizare pe care le oferă Appium.
3. Loadium
Loadium este un instrument de testare nefuncțională care este cel mai bine utilizat pentru a efectua teste de performanță și teste de încărcare, două tipuri de teste nefuncționale care sunt mult mai ușor de realizat cu ajutorul instrumentelor de automatizare.
Loadium permite utilizatorilor să ruleze teste de încărcare la scară largă și oferă soluții personalizate, astfel încât să vă puteți adapta testele la obiectivele software-ului dumneavoastră.
Puteți încerca Loadium gratuit sau puteți plăti pentru a descărca versiunea completă a aplicației.
4. Obkio
Obkio este un instrument de testare a software-ului care ajută responsabilii de QA și managerii de testare să prioritizeze și să clasifice problemele în funcție de gravitatea lor. Obkio poate detecta problemele înaintea utilizatorilor, le oferă utilizatorilor notificări inteligente și poate ajuta la detectarea locului în care se află problema.
Obkio nu este doar pentru testarea nefuncțională, ci este un instrument de testare gratuit extrem de util care poate fi utilizat în toate etapele ciclului de viață al testării.
5. SonarQube
SonarQube este un instrument de testare a securității cu sursă deschisă care poate analiza automat codul pentru a detecta erori și vulnerabilități. Scris în Java, puteți utiliza SonarQube pentru a analiza codul în peste douăzeci de limbaje de programare diferite, iar interfața curată a sistemului facilitează detectarea problemelor care ar putea cauza vulnerabilități de securitate în viitor.
6. Tsung
Tsung este un alt instrument de testare nefuncțională, ideal dacă doriți să automatizați testele de încărcare și de stres, dar nu vă înțelegeți cu versiunea gratuită a Loadium.
Tsung este un instrument open-source care permite utilizatorilor să efectueze teste de încărcare de mare volum pe mai multe protocoale și servere, inclusiv HTTP și SOAP.
Tsung este complet gratuit și îi poate ajuta pe testeri să se asigure că software-ul la care lucrează oferă un nivel ridicat de performanță într-o varietate de condiții dificile.
7. Sikuli
Sikuli este o altă aplicație care utilizează automatizarea robotică a proceselor pentru a automatiza procesul de testare. Aplicația poate automatiza orice lucru care poate fi văzut pe ecran. Puteți utiliza Sikuli pentru a testa aplicații care nu sunt bazate pe web și pentru a reproduce rapid erorile.
Lista de verificare, sfaturi și trucuri pentru testarea non-funcțională
Înainte de a începe testarea nefuncțională, verificați dacă aveți tot ce vă trebuie pentru a efectua teste nefuncționale complete într-un mediu pregătit.
Urmați lista de verificare de mai jos pentru sfaturi și trucuri înainte de a începe testarea non-funcțională.
1. Lucrați după un program
Fie că îl includeți în planul de testare sau creați un document separat pentru acesta, structurați testele software în jurul unui program de testare.
Dacă găsiți mai multe bug-uri și defecte decât vă așteptați, s-ar putea să vă abateți uneori de la program, dar existența unui program pentru început poate ajuta la ghidarea testeriștilor și îi poate motiva să lucreze eficient, în special atunci când se efectuează teste manuale care necesită mult timp.
2. Identificați-vă echipa de testare
Delegarea responsabilităților și atribuirea de roluri și titluri oficiale membrilor echipei de testare vă poate ajuta să vă asigurați că procesul de testare se desfășoară fără probleme.
Comunicați în mod clar rolurile și responsabilitățile în cadrul echipei dumneavoastră înainte de începerea testării și atribuiți diferiților testeri responsabilitatea pentru diferite aspecte ale testării nefuncționale, astfel încât fiecare să fie responsabil pentru propriile sarcini.
3. Selectarea instrumentelor și tehnologiilor înainte de testare
Dacă decideți să lucrați cu anumite instrumente și tehnologii doar după ce începeți testarea nefuncțională, acest lucru poate întârzia procesul de testare și poate provoca confuzie în rândul testeriștilor.
În schimb, faceți cercetări în avans și decideți dacă există instrumente pe care doriți să le utilizați înainte de începerea testelor. Acest lucru facilitează încorporarea acestor instrumente în planul de testare și instruirea testerilor pentru a le utiliza înainte de începerea testării.
4. Întotdeauna obțineți o aprobare formală pentru teste și documentație
Testarea este un proces de asigurare a calității, iar cel mai bun mod de a maximiza valoarea testelor pe care le efectuați este de a efectua un control de calitate de bază și pentru testele pe care le planificați și le executați.
Introduceți protocoale simple care le cer tesatorilor să ceară responsabililor și managerilor de asigurare a calității să revizuiască și să semneze planurile de testare și rapoartele de testare înainte de a trece la etapa următoare.
Acest lucru crește masiv șansele ca greșelile de testare să fie detectate și corectate din timp.
7 greșeli și capcane de evitat la implementarea testelor nefuncționale
Dacă sunteți nou în domeniul testării nefuncționale, poate fi ușor să faceți unele greșeli comune în care testerii și profesioniștii din domeniul QA cad adesea.
Testarea nefuncțională este o activitate complexă care implică examinarea unui software din toate unghiurile și perspectivele.
Mai jos este prezentată o listă cu unele dintre cele mai frecvente capcane pe care le fac testerii atunci când efectuează testarea nefuncțională.
1. Nu planifică
Dacă sunteți nou în domeniul testării nefuncționale, s-ar putea să credeți că puteți să vă aruncați direct în etapa de testare fără a crea în prealabil un plan de testare amănunțit.
Unele echipe de testare pot întocmi documente de testare incomplete sau rezumate superficiale ale planului de testare care nu prezintă în mod adecvat acțiunile pe care trebuie să le întreprindă testerii în timpul testării nefuncționale.
2. Gestionarea defectuoasă a testelor
Problemele pot apărea dacă testele sunt gestionate greșit în orice etapă a procesului de testare. Un management necorespunzător poate însemna că testerii nu au resursele necesare pentru a efectua testele în detaliu sau că nu li se acordă suficient timp pentru a testa fiecare aspect al proiectului.
Managerii de testare trebuie să fie capabili să învețe din greșelile pe care le fac și să dezvolte planuri de testare mai eficiente pentru viitor.
3. Comunicare deficitară
Comunicarea deficitară poate cauza multe probleme în timpul procesului de testare, în special în cadrul testării nefuncționale.
Acest lucru poate însemna o comunicare deficitară în cadrul echipei de testare sau o comunicare deficitară între testeri, dezvoltatori și părțile interesate.
Acest lucru se întâmplă adesea atunci când testerii nu păstrează documentele de testare în mod adecvat sau nu comunică în mod regulat cu alte departamente în timpul procesului de testare.
4. Ignorarea dezvoltatorilor
Testatorii și dezvoltatorii lucrează, de obicei, destul de separat unul de celălalt, dar echipele de testare care lucrează îndeaproape cu dezvoltatorii pot beneficia de cunoștințe suplimentare despre modul în care funcționează software-ul și despre modul în care diferitele module interacționează între ele.
Implicarea dezvoltatorilor în procesul de testare sau solicitarea de feedback din partea acestora în momente cheie poate ajuta echipele de testare să elaboreze planuri de testare mai eficiente și mai complete.
5. Scopul testării
Mulți testeri încă mai cred că scopul testării este de a verifica dacă software-ul funcționează sau de a demonstra părților interesate și investitorilor că software-ul funcționează.
În schimb, testerii ar trebui să abordeze testarea cu atitudinea că scopul testării este de a căuta defecte.
Testatorii care nu găsesc defecte pot fi mulțumiți că software-ul pe care îl testează nu conține erori doar dacă sunt convinși că au căutat peste tot unde ar putea fi găsite defecte.
6. Erori manuale vs. erori de automatizare
Este important să vă gândiți dacă pentru fiecare tip de test pe care îl efectuați este mai bine să alegeți între testarea manuală sau cea automată.
Metodele de testare automatizată sunt extrem de potrivite pentru aproape toate formele de testare nefuncțională, iar echipele de testare obișnuite cu testarea funcțională pot face greșeala de a presupune că pot testa manual caracteristicile nefuncționale la fel de ușor.
7. Utilizarea unor instrumente de testare greșite
Este ușor să alegeți instrumentele și tehnologiile de testare greșite înainte de a începe testarea nefuncțională, mai ales dacă echipele de testare sunt obișnuite să efectueze teste manuale și nu sunt obișnuite să utilizeze instrumente de testare.
Cercetați în prealabil metodele de testare nefuncțională pe care doriți să le utilizați și alegeți instrumentele software și instrumentele de automatizare care îndeplinesc cerințele specifice ale proiectului dumneavoastră.
Concluzie
Testarea nefuncțională este o etapă esențială în procesul de testare care permite tesatorilor să verifice cât de bine funcționează un sistem și în ce măsură acesta îndeplinește cerințele nefuncționale, cum ar fi timpul de încărcare, capacitatea și protecția securității.
Există o mulțime de moduri diferite de a efectua testele nefuncționale, dar instrumentele de automatizare contemporane facilitează maximizarea acoperirii și acurateței testelor fără a compromite calitatea rezultatelor.
Întrebări frecvente și resurse
Dacă doriți să aflați mai multe despre testarea nefuncțională, există o mulțime de întrebări frecvente și resurse disponibile online.
Răsfoiți resursele noastre preferate de testare nefuncțională online de mai jos sau citiți răspunsurile la unele dintre cele mai frecvente întrebări despre testarea nefuncțională.
1. Cele mai bune cursuri privind testarea nefuncțională
Există o mulțime de cursuri disponibile online care vă pot ajuta să vă extindeți cunoștințele despre metodele și abordările de testare nefuncțională.
Unele dintre aceste cursuri sunt disponibile gratuit, iar altele pot oferi un certificat sau o calificare în schimbul unei taxe. Dacă doriți să urmați un curs acreditat, puteți să vă întrebați angajatorul dacă vă va sponsoriza și va acoperi costurile de școlarizare.
Unele dintre cele mai bune cursuri privind testarea nefuncțională includ:
- STG: Curs de formare nefuncțională de 2 zile
- Udemy: Bootcamp-ul complet de testare software 2023
- Edx: Certificat profesional de testare software
- Educativ: Automatizarea testelor de performanță 101
2. Care sunt cele mai importante 5 întrebări de interviu privind testarea nefuncțională?
Dacă vă pregătiți pentru un interviu de angajare pentru a lucra în domeniul testării software, intervievatorul vă poate pune întrebări despre testarea nefuncțională pentru a se asigura că înțelegeți cum funcționează această etapă esențială a testării software. Pregătiți-vă pentru interviu pregătindu-vă din timp răspunsuri eficiente la întrebările obișnuite de la interviu.
● În ce fel ar putea fi diferite abordările și metodele pe care le folosiți în testarea nefuncțională față de cele pe care le folosiți în testarea funcțională?
● Prin ce diferă testarea nefuncțională de testarea funcțională?
● Ce tipuri diferite de testare nefuncțională există?
● Cum prioritizezi testele funcționale și cazurile de testare?
● În ce etapă a testării software se efectuează de obicei testarea funcțională?
3. Cele mai bune tutoriale YouTube despre testarea nefuncțională
Dacă preferați să învățați vizionând videoclipuri, s-ar putea să găsiți în tutorialele de pe YouTube despre testarea nefuncțională o modalitate utilă de a afla mai multe despre acest tip de testare software.
Mai jos sunt câteva dintre cele mai bune tutoriale YouTube despre testarea software disponibile în prezent.
Ce este testarea nefuncțională a software-ului? Un tutorial de testare software
Ajutor pentru testarea software-ului: Testarea nefuncțională
Testarea non-funcțională în testarea software
Vizitați W3Schools
Testarea funcțională și nefuncțională
4. Cum se mențin testele nefuncționale
O întreținere adecvată a testelor asigură faptul că testele software pot fi repetate fără a compromite calitatea rezultatelor testelor.
Menținând testele nefuncționale, vă puteți asigura că testarea în fiecare etapă a procesului de dezvoltare este adecvată și că testele sunt întotdeauna actualizate în conformitate cu codul în continuă schimbare.
Puteți menține testele nefuncționale urmând sfaturile noastre de mai jos.
● Comunică în mod clar în cadrul echipei de testare atunci când creează cazuri de testare și scrie documentația
● Urmați întotdeauna cele mai bune practici de proiectare a testelor
● Reevaluarea protocoalelor de testare în diferite etape ale procesului de testare
● Actualizați modificările în testul dvs. pe măsură ce mergeți
Luați în considerare proiectele viitoare atunci când faceți modificări la testele actuale
5. Testarea nefuncțională este de tip black box sau white box?
Testarea nefuncțională este un tip de testare de tip black box, ceea ce înseamnă că testerii nu sunt preocupați de funcționarea internă a sistemului, ci doar de ieșirile sale externe.
Acest lucru contrastează cu testarea cutiei albe, care testează modul în care funcționează sistemul în interior. Printre exemplele de testare cu cutie albă se numără testarea unitară și testarea de integrare.
Testarea cerințelor funcționale și nefuncționale sunt exemple de testare a cutiei negre. Acest lucru înseamnă că testerii nu au nevoie de competențe tehnice avansate sau de cunoștințe de programare pentru a efectua testarea cutiei negre și nici nu trebuie să învețe cum să implementeze sistemele pe care le testează.