Mi a roncsolásos tesztelés a szoftverekben?

⚡ Okos összefoglaló

A roncsolásos tesztelés szándékosan addig tesztel egy szoftveralkalmazást, amíg az meghibásodik, feltárva azokat a pontokat, ahol a robusztusság nem megfelelő használat, érvénytelen bevitel és kiszámíthatatlan viselkedés esetén megbomlik, és amelyeket a hagyományos funkcionális ellenőrzések soha nem érnek el.

  • 💥 Alapötlet: Az alkalmazást szándékosan úgy tervezték, hogy hibát jelezzen, így a hibapontjai láthatóvá és mérhetővé válnak.
  • ???? Nincsenek szükséges követelmények: A specifikáció előzetes ismerete opcionális, bár élesíti a tesztelési stratégiát.
  • 🇧🇷 Ellentétes pár: A roncsolásmentes vizsgálat a jó utat járja, a roncsolásos vizsgálat pedig minden rossz oldalról támadja.
  • 🧰 Megközelít: Hibapont-elemzés, tesztelők általi szakmai értékelés, üzleti áttekintés és feltáró futtatások futtatási lapokkal.
  • 🧪 Újrafelhasznált módszerek: A regresszió, az interfész-tesztelés, az ekvivalencia-particionálás, a ciklus- és az elfogadási tesztelés mind destruktív célokat szolgál.
  • 📉 Őszinte korlátok: A lefedettséget nehéz garantálni, az erőfeszítés nagy, és az eredményeket nehéz lehet reprodukálni.

Mi a destruktív tesztelés szoftverekben, módszerekkel és technikákkal?

Mi az a roncsoló tesztelés?

Romboló tesztelés egy szoftvertesztelési módszer, amelyet a szoftverprogramok hibapontjainak megtalálására használnak. Ebben a technikában egy alkalmazást szándékosan hibára hoznak létre, hogy ellenőrizni lehessen a robusztusságát és azonosítani lehessen a hibapontjait. A destruktív tesztelés a kiszámíthatatlan felhasználói viselkedést vizsgálja az alkalmazáson belül.

A roncsolásos teszteléshez nem szükséges az eredeti követelmények ismerete. Bizonyos ismeretek azonban hasznosak a fejlesztés során.ping jó tesztelési stratégia.

Az alábbi ábra jól ragadja meg az elképzelést – a tesztelő a termék ellen dolgozik, nem pedig vele együtt.

Roncsolásos tesztelés koncepciója: egy alkalmazás szándékosan a kudarc pontjáig van optimalizálva.

Miért végeznek roncsolásos tesztelést?

  • Segít megérteni a szoftverek kiszámítható viselkedését, amikor a szoftvert nem megfelelő használatnak vetik alá.
  • Segít ellenőrizni egy szoftvertermék robusztusságát.
  • Olyan ritka hibákat tár fel, amelyeket a hétköznapi felhasználók soha nem okoznak, de később, a gyártás során jelennek meg.

Roncsolásos vizsgálat vs. roncsolásmentes vizsgálat

A két megközelítés kiegészíti egymást, nem pedig rivális. Roncsolásmentes vizsgálat – más néven pozitív vagy boldogút tesztelés – helyesen kommunikál a szoftverrel, és a buildet érintetlenül hagyja. A roncsolásos tesztelés az ellenkezőjét teszi: érvénytelen adatokat és rossz szekvenciákat táplál be, amíg valami el nem romlik.

Aspect Romboló tesztelés Roncsolásmentes vizsgálat
Elszánt Az alkalmazás kényszerített leállítása Győződjön meg arról, hogy az alkalmazás a megadottak szerint működik
Felhasznált bemenet Érvénytelen, hibás formátumú, tartományon kívüli, sorrenden kívüli Érvényes adatok a várt tartományon belül
Megválaszolt kérdés Hol és hogyan törik el? Azt teszi, amit kell?
Követelmények ismerete Választható Alapvető
Tipikus költség Magasabb szintű – felfedező és nyitott végű Alsóbb — szkriptelt és ismételhető
Eredmény Hibapontok, tartománykorlátok, helyreállítási viselkedés Megfelelt vagy nem felelt meg a specifikációnak

Mit ellenőriznek a roncsolásos vizsgálat során?

A roncsolásos tesztelés a viselkedési határ mindkét oldalát vizsgálja:

  • Megfelelő szoftver viselkedés
  • Nem megfelelő szoftverműködés
  • Nem megfelelő használat
  • Helytelen bevitt adatok
  • Megfelelő kimeneti adatok

A gyakorlat során két feltételnek kell teljesülnie:

  • A szoftver soha nem dolgozhat fel vagy fogadhat el érvénytelen bemeneti adatokat.
  • A bemeneti adatok érvényességétől vagy helyességétől függetlenül a szoftvernek mindig megfelelő kimeneti adatokat kell előállítania.

Hogyan végezzünk destruktív tesztet?

A destruktív tesztelés számos tevékenységet foglal magában, például tesztszkriptek tervezését, végrehajtását, hibák jelzését, javítását, valamint a sikeres vagy sikertelen tesztek metrikáinak biztosítását az érdekelt felek számára az iteráció végén.

Számos módja van a futtatásának. Néhány példa következik.

  • Hibapont elemzési módszer: a rendszer áttekintése, amely felméri, hogy mi mehet rosszul a különböző pontokon. Segítség egy üzleti elemző figyelembe vehető ehhez a stratégiához.
  • Tesztelői szakmai értékelés: szerezd meg teszt esetek egy olyan tesztelőtárs elemezte vagy ellenőrizte, aki kevésbé ismeri a rendszert vagy a funkciót.
  • Tesztesetek üzleti áttekintése: A végfelhasználók vagy a szakértők gyakran gondolnak érvényes forgatókönyvekre, amelyeket a tesztelők nem vesznek észre, mivel a tesztelő a meghatározott követelményekre összpontosít.
  • Végezzen feltáró vizsgálatokat futtatólapokkal: feltáró tesztelés A futtatási lapok rögzítik a tesztelt adatokat, lehetővé teszik a tesztek megismétlését és a tesztek lefedettségének ellenőrzését.
  • Használjon másik forrást: Kérj meg valaki mást, hogy fejtse ki a szoftverterméket, és elemezze a talált forgatókönyveket.

Roncsolásos tesztelés példa

Vegyük például egy banki alkalmazás bejelentkezési és profilképernyőjét. Egy romboló hozzáférési jelszó az alábbi esetekben működne:

  • Illesszen be egy 5,000 karakteres karakterláncot egy legfeljebb 50 karakterből álló mezőbe, és ellenőrizze, hogy a mező elutasítja-e ahelyett, hogy csendben csonkolná.
  • Írjon be betűket, szimbólumokat és negatív értékeket egy numerikus összegmezőbe.
  • Törje meg a várt sorrendet — nyissa meg közvetlenül a fizetést visszaigazoló oldalt az előző lépés elvégzése nélkül.
  • Nyomja meg ismételten és gyors egymásutánban a Küldés gombot, hogy ellenőrizze, létrejönnek-e duplikált rekordok.
  • Tranzakció közben bontsd a hálózati kapcsolatot, és ellenőrizd, hogy az alkalmazás hibátlanul helyreáll-e, vagy csak részleges rekordot hagy-e maga után.

Minden esethez tartozik egy meghatározott elvárás: egyértelmű validációs üzenet, adatvesztés és kezeletlen kivétel hiánya. Bármi más hibapont, amelyet érdemes hibaként jelezni.

Romboló vizsgálati módszerek

A szoftverfejlesztésben a következő módszereket alkalmazzák a destruktív tesztelési célok elérésére:

Romboló vizsgálati technikák

Az alábbi technikák módosításokkal alkalmazhatók:

A robusztusság elérése érdekében érdemes hozzáadni a következő kapcsolódó technikákat: negatív teszt, stresszteszt, helyreállítási tesztelés és a fuzz tesztelés.

A roncsolásos tesztelés előnyei és hátrányai

A kompromisszumot érdemes világosan megfogalmazni, mielőtt a technikát kiadásra tervezik.

Előnyök

  • Revolyan hibapontokat azonosít, amelyeket a specifikációvezérelt tesztelés soha nem ér el.
  • Valós hatótávolság-korlátokat határoz meg, így a termék magabiztosan üzemeltethető azokon belül.
  • Feltárja a ritka hibákat, amelyek a megjelenés után jóval a gyártás során kerülnek felszínre.
  • Ellenőrzi a tartósságot, a helyreállíthatóságot és a hibakezelést visszaélés esetén.

Hátrányok

  • Természeténél fogva nyitott, így a lefedettség nem garantálható vagy mérhető könnyen.
  • Időigényes és a tesztelők tapasztalatától és kreativitásától függ.
  • A megállapítások reprodukálása nehézkes lehet a felhasznált lépések gondos naplózása nélkül.
  • A rosszul ellenőrzött futtatások károsíthatják a megosztott tesztadatokat, ezért izolált környezetre van szükség.

GYIK

Átfedésben vannak, de hatókörükben különböznek. Negatív teszt ellenőrzi a definiált érvénytelen bemeneteket a várható hibakezeléssel szemben. A roncsolásos tesztelés tágabb és nyílt végű, minden olyan feltételt keres, amely az alkalmazás hibáját okozza.

Általában tapasztalt minőségbiztosítási mérnökök, akiket a modullal nem ismerő kollégák és üzleti felhasználók támogatnak. A külső szemek számítanak, mert az emberek, akik a funkciót építették, általában úgy tesztelik, ahogyan tervezték.

Miután a funkcionális csomag stabillá vált, a hibák inkább a robusztusságra, mint a befejezetlen funkciókra utalnak. Sok csapat a rendszer tesztelése során ütemezi be, és megismétli a nagyobb kiadások előtt. tesztelési életciklus.

A modellek hibásan formázott hasznos adatokat, határértékeket és szokatlan műveletsorozatokat generálnak olyan mennyiségben, amelyet a tesztelők nem tudnak összehasonlítani, majd rangsorolják azokat, amelyek anomáliákat okoztak. A múltbeli hibaadatokon alapuló gépi tanulás azt is megjósolja, hogy mely modulok érdemlik a legszigorúbb bánásmódot.

GitHub másodpilóta gyorsan elkészíti a bemeneti generátorok, határesetek és lebontási rutinok vázlatát. A tesztelő továbbra is eldönti, hogy mely hibamódok számítanak, és hogy a megfigyelt viselkedés elfogadható eredménynek számít-e.

A felhasznált pontos bemenet vagy szekvencia, a megfigyelt hiba, naplók és képernyőképek, a környezet és a hatás súlyossága. Az iteráció sikeres vagy sikertelen metrikái a résztvevőkkel együtt eljutnak az érdekelt felekhez. hibarekordok.

Soha ne érje hozzá az éles környezethez. Futtassa elszigetelt környezetben, visszaállítható adatokkal, mert a szándékosan érvénytelen bevitel és a kényszerített összeomlások részleges rekordokat eredményezhetnek, amelyek törlése költséges.

A munkamenet során vezessen futtatólistát, amelyen minden műveletet és bemenetet sorrendben rögzít. Játssza le újra a lapot egy tiszta állapotból, majd csökkentse a legrövidebb sorozatra, amely még mindig kiváltja a hibát.

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