Testare pozitivă și testare negativă cu exemple

⚡ Rezumat inteligent

Testarea pozitivă și cea negativă decid împreună dacă software-ul acceptă ceea ce ar trebui și respinge ceea ce nu ar trebui. Acest articol explică ambele abordări, tehnicile din spatele lor, exemple practice și practicile care mențin scurgerile de defecte la un nivel scăzut.

  • ✅ Testare pozitivă: Introduceți doar date valide și confirmați că aplicația finalizează fluxul dorit exact așa cum este descris în specificație.
  • ⛔ Testare negativă: Introduceți date nevalide sau extrem de precise și confirmați că aplicația le refuză, prezintă o eroare clară și rămâne stabilă.
  • 📏 Analiza valorilor limită: Testează limita fiecărui interval acceptat, apoi mergi cu un pas în afara acestuia, pentru a detecta rapid defectele aberante.
  • 🧩 Partiționare prin echivalență: Împărțiți intrările în grupuri valide și nevalide, apoi eșantionați o valoare din fiecare grup în loc să testați totul.
  • 🇧🇷 Regula de acoperire: Scrieți cel puțin două cazuri pentru fiecare cerință, unul pozitiv și unul negativ, astfel încât niciun criteriu de acceptare să nu fie expediat netestat.
  • 🛡️ Recompensă de securitate: Cazurile negative expun defecte de injectare, token-uri expirate și excepții netratate pe care rulările pozitive nu le ating niciodată.
  • 🤖 Adaptarea automatizării: Automatizați fluxurile pozitive stabile pentru valoarea de regresie și automatizați verificările de validare negative pentru feedback-ul de reziliență.

Testarea software este procesul de verificare și validare a unei aplicații software pentru a verifica dacă aceasta funcționează conform așteptărilor. Intenția este de a găsi defecte și de a îmbunătăți calitatea produsului. Există două modalități de a testa software-ul, și anume testarea pozitivă și testarea negativă.

Cele două abordări răspund la întrebări opuse: aplicația funcționează atunci când totul merge bine și rămâne stabilă atunci când ceva nu merge bine?

Ce este testarea pozitivă?

Testare pozitivă este un tip de testare efectuată asupra unei aplicații software prin furnizarea seturilor de date valide ca date de intrare. Verifică dacă aplicația software se comportă conform așteptărilor cu intrări pozitive sau nu.

Testarea pozitivă este efectuată pentru a verifica dacă aplicația software face exact ceea ce se așteaptă de la ea. Prin urmare, se numește și testare a căii fericite (happy path testing).

De exemplu, luați în considerare caseta de text numeric prezentată mai jos.

Testare pozitivă

Există o casetă de text într-o aplicație care poate accepta doar numere. Introducerea unor valori de până la 99999 va fi acceptabilă de către sistem și orice alte valori în afară de aceasta nu ar trebui să fie acceptabile. Pentru a efectua o testare pozitivă, setați valorile de intrare valide de la 0 la 99999 și verificați dacă sistemul acceptă valorile.

#1 CEL MAI BUN PERIOADĂTestarea globală a aplicațiilor
9.8/ 10
★ ★ ★ ★ ★
Obțineți o demonstrație gratuită
PractiTest
9.5/ 10
★ ★ ★ ★ ★
Vizita PractiTest
Testiny
9.3/ 10
★ ★ ★ ★ ★
Vizita Testiny
Cele mai buneTestare participativă și asigurare a calitățiiManagementul testelorEchipe de asigurare a calității mici și mijlocii
Caracteristica cheie✓Testarea integrării de către terți✓Management centralizat al testelor✓Cazuri de testare manuale + automatizate
Integrations✓Jira, Slack, TestRail✓Jira, Jenkins, Slack✓Jira, GitHub, GitLab
Încercare gratuităDemo gratuit14-Day Free TrialDemo gratuit
Obțineți o demonstrație gratuităVizita PractiTestVizita Testiny

Ce este testarea negativă?

Testare negativă este o metodă de testare efectuată asupra aplicației software prin furnizarea unor seturi de date nevalide sau improprii ca date de intrare. Verifică dacă aplicația software se comportă conform așteptărilor cu intrări negative sau nedorite din partea utilizatorului.

Scopul testării negative este de a se asigura că aplicația software nu se blochează și rămâne stabilă cu intrări de date nevalide. Prin urmare, se mai numește și testarea căii de eroare sau testarea eșecurilor.

De exemplu, să luăm în considerare același câmp care primește caractere în loc de cifre.

Testare negativă

Testarea negativă poate fi efectuată prin introducerea caracterelor de la A la Z sau de la a la z. Oricare sistem software nu ar trebui să accepte valorile sau ar trebui să arunce un mesaj de eroare pentru aceste intrări de date nevalide.

În ambele tipuri de testare, trebuie luate în considerare următoarele:

  • Date de intrare
  • O acțiune care trebuie efectuată
  • Rezultat de ieșire

Testare pozitivă vs. testare negativă: diferențe cheie

Ambele abordări au aceleași caracteristici caz de testare structură. Diferența constă în informațiile pe care le oferiți și în ceea ce dovedește un rezultat acceptabil.

Parametru Testare pozitivă Testare negativă
De asemenea cunoscut ca si Testarea căii fericite Testarea căii de eroare sau a eșecului
Intrare utilizată Date valide, așteptate Date nevalide, extreme sau neașteptate
Scop Confirmă că funcția face ceea ce ar trebui Confirmă că funcția refuză ceea ce nu ar trebui
Rezultat așteptat Fluxul se finalizează cu succes Apare o eroare clară și sistemul rămâne stabil
Eroare de manipulare Nu este focalizarea Întreaga concentrare
Acoperire Îngust, respectă specificațiile Amplu, explorează tot ce este în afara specificațiilor
Risc tipic în caz de omitere Caracteristicile principale sunt defecte la livrare Prăbușirile și breșele de securitate ajung în producție

Un test pozitiv eșuat semnalează o funcționalitate defectuoasă. Un test negativ eșuat semnalează o protecție lipsă, a cărei reparație este mult mai costisitoare odată ce utilizatorii au găsit-o.

Tehnici de testare utilizate pentru testarea pozitivă și negativă

În practică, două tehnici clasice de proiectare a inputurilor generează atât cazuri pozitive, cât și cazuri negative din aceeași cerință:

  • Analiza valorii limită
  • Partiționare echivalentă

Analiza valorii limită

Aceasta este una dintre tehnicile de testare software în care cazurile de testare sunt concepute pentru a include valori la limită. Dacă datele de intrare sunt utilizate în limitele valorii de limită, atunci se spune că este Testare pozitivă. Dacă datele de intrare sunt selectate în afara limitelor valorii de limită, atunci se spune că este Testare Negativă.

De exemplu, uitați-vă la intervalul acceptat ilustrat mai jos.

Testare pozitivă vs negativă

Un sistem poate accepta numere de la 0 la 10 valori numerice. Toate celelalte numere sunt valori nevalide. În cadrul acestei tehnici, vor fi testate valorile limită -1,0,1 și 9,10,11.

Partiționare echivalentă

Aceasta este o testare software tehnică care împarte datele de intrare în mai multe partiții. Valorile din fiecare partiție trebuie testate cel puțin o dată. Partițiile cu valori valide sunt utilizate pentru testarea pozitivă. În timp ce partițiile cu valori nevalide sunt folosite pentru testarea negativă.

De exemplu, studiați cele două partiții prezentate mai jos.

Partiționare echivalentă

Valorile numerice de la zero la zece pot fi împărțite în două (sau trei) partiții. În cazul nostru, avem două partiții -10 la -1 și 0 la 10. Valori eșantion (5 și -5) pot fi luate din fiecare parte pentru a testa scenariile. Vedeți partiționarea prin echivalență și analiza valorilor la limită lecție pentru mai multe exemple lucrate.

Cum se efectuează testele pozitive și negative

Următoarea secvență transformă o cerință într-un set echilibrat de cazuri pozitive și negative.

  1. Citiți cerințele privind limitele. Rețineți fiecare format, interval și câmp obligatoriu acceptat. Orice permite specificația devine un caz pozitiv, iar orice exclude devine unul negativ.
  2. Scrieți mai întâi cazul pozitiv. Furnizați date valide, efectuați acțiunea și înregistrați rezultatul așteptat ca referință.
  3. Derivați cazuri negative din aceleași limite. Folosește analiza valorilor limită și partiționarea prin echivalență pentru a produce câmpuri goale, tipuri de date greșite și numere în afara intervalului.
  4. Adăugați informații ostile. Include injecție SQL șiruri de caractere, token-uri expirate și sarcini utile API incorecte, astfel încât testare de securitate lacunele apar devreme.
  5. Extindeți la verificări nefuncționale. A testul de încărcare la numărul de utilizatori acceptați este pozitiv, în timp ce a test de stres dincolo de această limită se află cazul negativ corespunzător.
  6. Alegeți unde se desfășoară fiecare caz. Nu permiteți accesul la cazurile negative testarea fumului și a sănătății mintale, care sunt porți pozitive rapide, și le rulează în mod funcțional și testarea regresiei cicluri.

O retragere la bancomat arată asocierea. Cazul pozitiv introduce un cod PIN corect și o sumă validă, urmând numerar și o chitanță. Cazul negativ introduce un cod PIN greșit și așteaptă un mesaj de refuz, apoi un blocaj al cardului.

Cele mai bune practici pentru a menține echilibrul corect

  • Scrieți cel puțin două cazuri pentru fiecare cerință, unul pozitiv și unul negativ, înainte de începerea dezvoltării.
  • Prioritizați cazurile negative în funcție de impact, astfel încât eșecurile de injectare și plată să aibă loc înaintea erorilor cosmetice de introducere a datelor.
  • Afirmați mesajul de eroare în sine, nu doar că acțiunea a eșuat, deoarece mesajele vagi sunt și ele defecte.
  • Lasă loc pentru testare exploratorieși înregistrați constatările prin intermediul dvs. procesul de management al defectelor.

⚠️ Atenție: Nu rulați niciodată cazuri negative într-un mediu de producție live. Acestea există pentru a forța erori, iar o eroare deliberată afectează utilizatorii reali și datele reale.

Întrebări frecvente

Testare negativă verifică dacă o aplicație respinge corect datele de intrare nevalide. Testarea distructivă merge mai departe și împinge în mod deliberat sistemul spre eșec, cum ar fi închiderea unei conexiuni la baza de date în timpul tranzacției, pentru a măsura comportamentul de recuperare și reziliența în condiții extreme.

Nu. Testarea fumului și a sănătății mintale Folosiți doar verificări pozitive, deoarece acestea acționează ca niște porți rapide de calitate pentru o versiune nouă. Cazurile negative creează erori intenționat, așa că echipele le rulează în timpul ciclurilor funcționale mai profunde.

Da. Generatoarele de inteligență artificială citesc cerințe sau povești ale utilizatorilor și propun seturi de intrări valide și nevalide, inclusiv valori limită. Un tester le revizuiește în continuare, deoarece cazurile negative generate adesea ratează limitele domeniului, cum ar fi pragurile de reglementare sau regulile de rotunjire a valutelor.

Da. Funcțiile de inteligență artificială au nevoie de cazuri negative pentru injectarea promptă, răspunsuri la modele malformate, timeout-uri și întrebări în afara domeniului de aplicare. Deoarece rezultatele variază între rulări, aserțiunile ar trebui să verifice formatul răspunsului, filtrele de siguranță și comportamentul de rezervă, mai degrabă decât un șir fix așteptat.

Selenium conduce la validarea câmpurilor din browser, Postman acoperă sarcinile utile API și codurile de stare nevalide și JMeter împinge sarcina peste limita acceptată pentru scenariile de solicitare. Alegeți instrumentul care corespunde stratului pe care îl validați.

Rezumați această postare cu: