Pozitív tesztelés és negatív tesztelés példákkal

⚡ Okos összefoglaló

A pozitív és negatív tesztelés együttesen dönti el, hogy a szoftver elfogadja-e azt, amit el kellene fogadnia, és elutasítja-e azt, amit nem. Ez a cikk mindkét megközelítést ismerteti, a mögöttük álló technikákat, a gyakorlati példákat és azokat a gyakorlatokat, amelyek alacsonyan tartják a hibaszivárgást.

  • ✅ Pozitív teszt: Csak érvényes adatokat adjon meg, és ellenőrizze, hogy az alkalmazás pontosan a specifikációban leírtak szerint hajtja-e végre a kívánt folyamatot.
  • ⛔ Negatív teszt: Érvénytelen vagy extrém adatokat adjon meg, és ellenőrizze, hogy az alkalmazás elutasítja-e azokat, egyértelmű hibát jelez-e, és stabil marad-e.
  • 📏 Határérték-elemzés: Teszteld le minden elfogadott tartomány szélét, majd lépj egyet azon kívülre, hogy gyorsan észrevedd az egyenkénti hibákat.
  • 🧩 Ekvivalencia particionálás: Oszd fel a bemeneteket érvényes és érvénytelen csoportokra, majd mindegyik csoportból egy értéket vegyél mintába ahelyett, hogy mindent tesztelnél.
  • 🇧🇷 Lefedettségi szabály: Írj legalább két esetet követelményenként, egy pozitívat és egy negatívat, így egyetlen elfogadási kritérium sem kerül tesztelés nélkül kiszállításra.
  • 🛡️ Biztonsági jutalék: A negatív esetek olyan injektálási hibákat, lejárt tokeneket és kezeletlen kivételeket tárnak fel, amelyeket a pozitív futtatások soha nem érintenek.
  • 🤖 Automatizálási illeszkedés: Automatizálja a stabil pozitív folyamatokat a regressziós értékhez, és automatizálja a negatív validációs ellenőrzéseket a rugalmassági visszajelzéshez.

A szoftvertesztelés egy szoftveralkalmazás ellenőrzésének és validálásának folyamata annak megállapítására, hogy az a várt módon működik-e. A cél a hibák felkutatása és a termékminőség javítása. A szoftverek tesztelésének két módja van, nevezetesen a pozitív tesztelés és a negatív tesztelés.

A két megközelítés ellentétes kérdésekre ad választ: működik-e az alkalmazás, ha minden jól megy, és stabil marad-e, ha valami rosszul sül el?

Mi a pozitív teszt?

Pozitív tesztelés egy olyan tesztelési típus, amelyet egy szoftveralkalmazáson hajtanak végre érvényes adathalmazok bemenetként való megadásával. Azt ellenőrzi, hogy a szoftveralkalmazás a várt módon viselkedik-e pozitív bemenetek esetén vagy sem.

A pozitív tesztelés célja annak ellenőrzése, hogy a szoftveralkalmazás pontosan azt teszi-e, amit elvárnak tőle. Ezért boldogút tesztelésnek is nevezik.

Vegyük például az alább látható numerikus szövegdobozt.

Pozitív tesztelés

Az alkalmazásokban van egy szövegdoboz, amely csak számokat tud fogadni. A 99999-ig terjedő értékek bevitelét a rendszer elfogadja, és ezen kívül semmilyen más érték nem elfogadható. Pozitív teszteléshez állítsa be az érvényes bemeneti értékeket 0 és 99999 között, és ellenőrizze, hogy a rendszer elfogadja-e az értékeket.

#1 LEGJOBB ÖSSZESÍTÉSBENGlobális alkalmazástesztelés
9.8/ 10
★ ★ ★ ★ ★
Ingyenes demó letöltése
PractiTest
9.5/ 10
★ ★ ★ ★ ★
Látogat PractiTest
Testiny
9.3/ 10
★ ★ ★ ★ ★
Látogat Testiny
LegmegfelelőbbKözösségi tesztelés és minőségbiztosításTesztkezelésKis és közepes minőségbiztosítási csapatok
Legfontosabb jellemzője✓Harmadik féltől származó integrációs tesztelés✓Központosított tesztmenedzsment✓Manuális + automatizált tesztesetek
Integráció✓Jira, Slack, TestRail✓Jira, Jenkins, Slack✓Jira, GitHub, GitLab
Ingyenes próbaverzióIngyenes bemutató14 napos ingyenes próbaIngyenes bemutató
Ingyenes demó letöltéseLátogat PractiTestLátogat Testiny

Mi az a negatív teszt?

Negatív tesztelés egy tesztelési módszer, amelyet érvénytelen vagy helytelen adathalmazok bemenetként történő megadásával hajtanak végre a szoftveralkalmazáson. Azt ellenőrzi, hogy a szoftveralkalmazás a várt módon viselkedik-e negatív vagy nem kívánt felhasználói bemenetekkel.

A negatív tesztelés célja annak biztosítása, hogy a szoftveralkalmazás ne omoljon össze, és érvénytelen adatbevitel esetén is stabil maradjon. Ezért hibaútvonal-tesztelésnek vagy hibatesztelésnek is nevezik.

Például vegyük ugyanazt a mezőt, amely karaktereket fogad számjegyek helyett.

Negatív tesztelés

Negatív tesztelés hajtható végre A-tól Z-ig vagy a-tól z-ig karakterek beírásával. A szoftverrendszer vagy nem fogadja el az értékeket, vagy hibaüzenetet küld ezekre az érvénytelen adatbevitelekre.

Mindkét típusú vizsgálatnál a következőket kell figyelembe venni:

  • Beviteli adat
  • Egy művelet, amelyet végre kell hajtani
  • Kimeneti eredmény

Pozitív teszt vs. negatív teszt: Főbb különbségek

Mindkét megközelítés ugyanazt a közös pontot képviseli próbaper szerkezet. A különbség a megadott bemeneti adatokban és abban rejlik, hogy mit bizonyít egy átmeneti eredmény.

Vizsgált paraméter Pozitív tesztelés Negatív tesztelés
Más néven Boldog út tesztelés Hibaút vagy hiba tesztelése
Felhasznált bemenet Érvényes, várt adatok Érvénytelen, szélsőséges vagy váratlan adatok
Cél Győződjön meg arról, hogy a funkció azt teszi, amit kell Erősítsd meg, hogy a funkció visszautasítja azt, amit nem kellene
Várható eredmény A folyamat sikeresen befejeződik Egyértelmű hiba jelenik meg, és a rendszer stabil marad
Hibakezelés Nem a fókuszban A teljes fókusz
Lefedettség Keskeny, a specifikációnak megfelelően Széleskörű, mindent feltár, ami túlmutat a specifikáción
Tipikus kockázat kihagyás esetén A főbb jellemzők hibásan szállítottak Összeomlások és biztonsági réseket tapasztalhatunk az éles környezetben is

A sikertelen pozitív teszt hibás működést jelez. A sikertelen negatív teszt hiányzó védőburkolatot jelez, amelynek javítása sokkal költségesebb, ha a felhasználók megtalálták.

Pozitív és negatív teszteléshez használt tesztelési technikák

A gyakorlatban két klasszikus bemeneti tervezési technika generál pozitív és negatív eseteket ugyanazon követelményből:

  • Határérték-elemzés
  • Egyenértékű particionálás

Határérték-elemzés

Ez az egyik olyan szoftvertesztelési technika, amelyben a tesztesetek úgy vannak megtervezve, hogy a határértékeken szerepeljenek. Ha a bemeneti adatokat a határértékeken belül használják fel, akkor azt pozitív tesztelésnek nevezzük. Ha a bemeneti adatokat a határérték határain kívül választják ki, akkor azt negatív tesztelésnek nevezik.

Például tekintse meg az alább látható elfogadott tartományt.

Pozitív vs negatív teszt

A rendszer 0 és 10 közötti számértékeket képes elfogadni. Az összes többi szám érvénytelen érték. Ezzel a technikával a -1,0,1 és 9,10,11 határértékeket tesztelik.

Egyenértékű particionálás

Ez egy szoftver tesztelés technika, amely a bemeneti adatokat több partícióra osztja. Minden partíció értékeit legalább egyszer tesztelni kell. Az érvényes értékekkel rendelkező partíciókat a rendszer a pozitív teszteléshez használja. Míg az érvénytelen értékű partíciókat negatív teszteléshez használják.

Például tanulmányozza az alább látható két partíciót.

Egyenértékű particionálás

A nullától tízig terjedő numerikus értékek két (vagy három) partícióra oszthatók. Esetünkben két partíciónk van: -10-től -1-ig és 0-tól 10-ig. Mindkét részből vehetünk mintaértékeket (5 és -5) a forgatókönyvek teszteléséhez. Lásd a ekvivalencia-particionálás és határérték-analízis lecke további kidolgozott példákért.

Hogyan végezzünk pozitív és negatív teszteket?

A következő sorozat az egyik követelményt pozitív és negatív esetek kiegyensúlyozott halmazává alakítja.

  1. Olvasd el a korlátokra vonatkozó követelményeket. Jegyezzen fel minden elfogadott formátumot, tartományt és kötelező mezőt. Amit a specifikáció megenged, az pozitív esetnek, amit kizár, az negatívnak minősül.
  2. Először a pozitív esetet írd le. Adjon meg érvényes adatokat, hajtsa végre a műveletet, és rögzítse a várható siker eredményét alapértékként.
  3. Ugyanezen határértékekből származtassa a negatív eseteket. Határérték-analízis és ekvivalencia-particionálás segítségével üres mezőket, helytelen adattípusokat és tartományon kívüli számokat hozhat létre.
  4. Ellenséges bemenet hozzáadása. Tartalmaz SQL injektálás karakterláncok, lejárt tokenek és hibásan formázott API-adatok biztonsági tesztelés a rések korán felszínre kerülnek.
  5. Kiterjeszd a nem funkcionális ellenőrzésekre. A terhelési teszt a támogatott felhasználók száma pozitív, míg a stressz teszt ezen a határon túl található az egyező negatív eset.
  6. Válassza ki, hogy az egyes esetek hol futnak. Tartsd távol a negatív eseteket füst- és egészségvizsgálat, amelyek gyors pozitív kapuk, és funkcionálisan és regressziós teszt ciklusokat.

Egy ATM-es készpénzfelvétel mutatja a párosítást. A pozitív esetben helyes PIN-kódot és érvényes összeget ad meg, így készpénz és nyugta következik. A negatív esetben rossz PIN-kódot ad meg, és elutasító üzenetet vár, majd kártyablokkolást.

Bevált gyakorlatok az egyensúly megőrzéséhez

  • Írj legalább két esetet követelményenként, egy pozitívat és egy negatívat, mielőtt elkezdődik a fejlesztés.
  • A negatív eseteket hatás szerint rangsorolja, hogy a befecskendezési és fizetési hibák megelőzzék a kozmetikai beviteli hibákat.
  • Magát a hibaüzenetet is állítsd, ne csak azt, hogy a művelet sikertelen volt, mert a homályos üzenetek is hibák.
  • Hagyj helyet a feltáró tesztelés, és naplózza a megállapításokat a hibakezelési folyamat.

⚠️ Figyelmeztetés: Soha ne futtass negatív eseteket éles környezetben. Ezek a hibák kikényszerítésére szolgálnak, és egy szándékos összeomlás valódi felhasználókat és valódi adatokat érint.

GYIK

Negatív teszt ellenőrzi, hogy egy alkalmazás szabályosan utasítja-e el az érvénytelen bemenetet. A destruktív tesztelés ennél is továbbmegy, és szándékosan a rendszert a kudarc felé tolja, például megszakít egy adatbázis-kapcsolatot tranzakció közben, hogy felmérje a helyreállítási viselkedést és a rugalmasságot extrém körülmények között.

Nem. Füst- és egészségvizsgálat Csak pozitív ellenőrzéseket használjunk, mivel ezek gyors minőségellenőrzési kapuként működnek egy új build esetében. A negatív esetek szándékosan hoznak létre hibákat, ezért a csapatok inkább mélyebb funkcionális ciklusok során futtatják őket.

Igen. A mesterséges intelligencia generátorok követelményeket vagy felhasználói történeteket olvasnak, és érvényes, illetve érvénytelen bemeneti halmazokat javasolnak, beleértve a határértékeket is. A tesztelő továbbra is felülvizsgálja őket, mivel a generált negatív esetek gyakran nem felelnek meg a tartománykorlátoknak, például a szabályozási küszöbértékeknek vagy a devizakerekítési szabályoknak.

Igen. A mesterséges intelligencia funkcióinak negatív esetekre van szükségük az azonnali injektáláshoz, a hibásan formázott modellválaszokhoz, az időtúllépésekhez és a hatókörön kívüli kérdésekhez. Mivel a kimenetek a futtatások között változnak, az assertions-eknek a válaszformátumot, a biztonsági szűrőket és a tartalék viselkedést kell ellenőrizniük egy fix várható karakterlánc helyett.

Selenium böngésző mezőellenőrzést hajt végre, Postman lefedi az érvénytelen API-adatokat és állapotkódokat, valamint JMeter A terhelést a feszültségforgatókönyveknél a támogatott határértéken túlra tolja. Válassza ki az érvényesíteni kívánt rétegnek megfelelő eszközt.

Foglald össze ezt a bejegyzést a következőképpen: