Un scurt ghid pentru testarea software-ului - Standarde și procese
Publicat: 2021-05-18„Tot codul este vinovat până când este testat nevinovat” – un necunoscut necunoscut.
Nu puteți avea un software bun fără a-l lăsa să treacă prin teste riguroase. În acest articol, veți afla mai multe despre standardele și procesele de testare a software-ului pe care ar trebui să le urmați pentru a putea oferi rezultate mai bune.
Ce este testarea software-ului?
Mai simplu spus, testarea software-ului face software-ul mai bun. Este un proces care identifică corectitudinea, completitudinea și calitatea software-ului dezvoltat. Testarea este importantă deoarece descoperă defecte/bug-uri înainte de livrarea către client, ceea ce garantează calitatea software-ului. Face software-ul mai fiabil de utilizat.

Etapele de testare a software-ului

Să trecem prin etapele enumerate mai sus ale testării software-ului:
Analiza cerințelor:
Analiza cerințelor definește așteptările utilizatorilor finali pentru o aplicație software care urmează să fie construită/modificată. Prin urmare, analiza cerințelor înseamnă analiza, raportarea, documentarea, validarea și gestionarea cerințelor software sau de sistem.
Inginerul de testare trebuie să efectueze următoarele sarcini pentru a finaliza analiza cerințelor
- Citiți fiecare cerință pentru a verifica caracterul complet, claritatea, ambiguitatea, dacă există.
- Verificați că toate scenariile posibile au fost luate în considerare într-o fază de analiză a cerințelor și încercați să identificați toate cazurile neacoperite sau orice lacune.
- Discuție asupra întrebărilor sau îndoielilor care apar din analiza cerințelor în cadrul apelurilor zilnice pentru ca echipa să fie pe aceeași pagină.
- Trebuie utilizată matricea de trasabilitate a cerințelor pentru a asigura acoperirea completă a cerințelor software-ului testat.
Mai jos este modelul de șablon RTM (Matricea de urmărire a cerințelor)

Credit: Opencodez
Planificarea testului:
Un plan de testare este un document care descrie obiectivele testului, programul, estimarea, livrabilele și resursele necesare pentru a efectua testarea software-ului pe o aplicație software. Un plan de testare ajută la înțelegerea și determinarea eforturilor necesare pentru validarea calității unei aplicații testate. Mai jos este un exemplu de plan de testare agil:

Credit: zenq
Design de testare:
Proiectarea testului este o fază în care sunt proiectate cazurile de utilizare necesare pentru testare. Proiectarea testului se realizează pe baza planului de testare. Cazurile de testare concepute sunt asigurate că acoperă toate cerințele aplicației software. Cartografierea cazurilor de testare cu matricea de trasabilitate este, de asemenea, considerată necesară pentru a acoperi toate lacunele cerințelor.
Scenarii de testare/cazuri de testare concepute pe baza tehnicilor de proiectare a testelor de mai jos pentru a asigura o acoperire completă a testului pe calea fericită și testarea scenariilor negative.
- Analiza valorii limită (BVA)
- Partiționare echivalentă (EP)
- Testarea cazului de utilizare
- Testare bazată pe impact
Mai jos este modelul de model de proiectare a testului

Credit: https://www.softwaretestingclass.com/
Configurarea mediului de testare:
Mediul de testare este o platformă construită pentru implementarea și executarea cazurilor de testare pe aplicația software. Mediul pentru testare este creat prin integrarea hardware-ului și software-ului necesar împreună cu configurația rețelei și setările necesare. Înainte de a începe orice testare, este întotdeauna important să efectuați un test de fum pe mediul de testare pentru a verifica fezabilitatea mediului de testare.
Execuția testului:
Execuția testului este procesul de execuție a cazurilor de testare proiectate, documentate și comparate rezultatele așteptate și cele reale. Următorii factori sunt luați în considerare pentru execuția unui test, luând în considerare riscurile. Selectați un subset al suitei de teste care urmează să fie executat pentru acest ciclu și atribuiți-l testerului/analistului de calitate respectiv.

- Execuția testului se realizează pe baza cazurilor de testare / scenariilor de testare concepute conform planului de testare
- Observații - Documentate pe biletul JIRA respectiv, așa cum a fost întâlnit în timpul execuției testului
- Documentația de probă de testare de pe biletul JIRA respectiv constă în următoarele
◦ Stare test: PASS / FAIL - Prezintă starea testului a biletului JIRA
◦ Test URL: cuprinde datele de testare utilizate pentru testarea unei anumite cerințe
◦ Testați scenariile și capturile de ecran ale acestora
- Sanitate și regresie - Testele de sanitate și regresie sunt efectuate în mediile superioare (STG) în mod regulat la fiecare final de sprint, ca parte a măsurilor de testare Pre UAT
Închiderea testului:
Lista de verificare a închiderii testului de sprint se asigură că următoarele activități sunt efectuate la sfârșitul fiecărui sprint pentru o tranziție lină între mai multe sprinturi.
- Teste funcționale finalizate conform termenelor, cu acoperire completă
- Toate observațiile înregistrate și abordate de echipă
- Observații valabile înregistrate ca defecte și atribuite deținătorilor de bilete respectivi
- Documentația de probă de testare actualizată pentru fiecare bilet cu testele manuale respective și rezultatele testării dispozitivului
- Test de regresie efectuat pe mediul de testare înainte ca codul să fie fuzionat cu mediile superioare, de exemplu. în acest caz de la Dev la STG
Testare dispozitiv/Testare între browsere:
Testarea dispozitivului/browser-ului este procesul prin care un dispozitiv/browser este testat pentru calitatea sa pentru a vedea cât de bine îndeplinește cerințele pentru care a fost dezvoltat. Testarea dispozitivelor/ browserelor încrucișate este acoperită cu lista de mai jos de dispozitive/browsere, așa cum este confirmată de client. Stiva de browser folosită ca platformă pentru testarea dispozitivelor.

Diferite tipuri de testare software
Testarea unitară:
Unit Testing este verificarea unor mici unități de cod pentru a furniza informații din timp pentru a vă accelera strategiile de testare și pentru a reduce ciclurile de testare nedorite. Testarea unitară este de obicei efectuată de un dezvoltator înainte ca codul să fie predat echipei de testare a software-ului.
Testarea fumului:
Smoke Testing este o procedură de testare a software-ului care determină dacă software-ul implementat este stabil sau nu. Testarea fumului este o confirmare pentru ca echipa de testare să continue cu testarea software-ului. Constă dintr-un set minim de teste care trebuie rulate pe fiecare build pentru a testa funcționalitățile software.
Testare de integrare:
Testele de integrare sunt definite ca un tip de testare efectuată într-un mediu hardware și software integrat pentru a verifica comportamentul sistemului. Componentele software/hardware sunt integrate și testate progresiv până când sistemul finalizat este testat.
Testarea sistemului:
Testarea sistemului a unui produs software complet integrat. Este testul final pentru a verifica dacă produsul livrat îndeplinește specificațiile cerințelor menționate în documentul de cerințe. Atât cerințele funcționale, cât și cele nefuncționale ar trebui luate în considerare în domeniul de aplicare.
Testare de regresie:
Regresia verifică că modificările recente ale codului nu modifică sau distrug funcționalitatea deja existentă. Testarea de regresie include atât subsetul/regresia completă, ambele putând fi acoperite cu scenarii de testare manuale sau automate.
Testarea de acceptare a utilizatorului (UAT):
Testarea de acceptare a utilizatorului este una dintre etapele finale ale ciclului de viață de testare a software-ului și este efectuată de client după ce software-ul a fost testat temeinic. UAT este efectuat de utilizatorii finali ai produsului pentru aprobări și implementări ale lansării de producție.
