Co je destruktivní testování v softwaru?
⚡ Chytré shrnutí
Destruktivní testování záměrně tlačí softwarovou aplikaci do selhání a odhaluje přesné body, kde se robustnost narušuje v důsledku nesprávného použití, neplatných vstupů a nepředvídatelného chování, kam běžné funkční kontroly nikdy nedosáhnou.
Co je destruktivní testování?
Destruktivní testování je metoda testování softwaru používaná k nalezení bodů selhání v softwarovém programu. Při této technice je aplikace záměrně nastavena tak, aby selhala, aby bylo možné ověřit její robustnost a identifikovat body selhání. Na rozdíl od testovacích metod, které ověřují, co má aplikace dělat, destruktivní testování zkoumá nepředvídatelné chování uživatele uvnitř aplikace.
Znalost původních požadavků není pro destruktivní testování nutná. Některé znalosti však pomáhají při vývojiping dobrá testovací strategie.
Níže uvedená ilustrace zachycuje myšlenku – tester pracuje proti produktu, nikoli s ním.
Proč provádět destruktivní testování?
- Pomáhá pochopit předvídatelné chování softwaru, když je software používán nesprávně.
- Pomáhá kontrolovat robustnost softwarového produktu.
- Odhaluje vzácné vady, které běžní uživatelé nikdy nespustí, ale objeví se později ve výrobě.
Destruktivní testování vs. nedestruktivní testování
Tyto dva přístupy se doplňují, nikoli soupeří. Nedestruktivní testování – nazývané také pozitivní testování nebo testování šťastné cesty – interaguje se softwarem správně a ponechává sestavu neporušenou. Destruktivní testování dělá opak: poskytuje neplatná data a nesprávné sekvence, dokud se něco nepokazí.
| Vzhled | Destruktivní testování | Nedestruktivní testování |
| Úmysl | Vynutit selhání aplikace | Ověřte, zda aplikace funguje podle specifikace |
| Použitý vstup | Neplatné, chybně formátované, mimo rozsah, mimo sekvenci | Platná data v očekávaném rozsahu |
| Odpověď na otázku | Kde a jak se to láme? | Dělá to, co by mělo? |
| Znalost požadavků | volitelný | Základní |
| Typická cena | Vyšší – průzkumné a otevřené | Nižší – skriptované a opakovatelné |
| Výsledek | Body selhání, limity rozsahu, chování při obnově | Splňuje nebo nesplňuje specifikaci |
Co se kontroluje při destruktivním testování?
Destruktivní testování se zaměřuje na obě strany hranice chování:
- Správné chování softwaru
- Nesprávné chování softwaru
- Nesprávné použití
- Nesprávná vstupní data
- Správná výstupní data
Během celého cvičení musí být splněny dvě podmínky:
- Software nikdy nezpracuje ani nepřijme neplatná vstupní data.
- Bez ohledu na platnost nebo správnost vstupních dat by software měl vždy produkovat správná výstupní data.
Jak provést destruktivní testování?
Destruktivní testování zahrnuje mnoho činností, jako je návrh sady testovacích skriptů, jejich spuštění, hlášení chyb, uzavírání chyb a poskytování metrik úspěšnosti nebo neúspěchu zúčastněným stranám na konci iterace.
Existuje mnoho způsobů, jak jej spustit. Následuje několik příkladů.
- Metoda analýzy bodu selhání: prohlídka systému, která vyhodnocuje, co by se mohlo v různých okamžicích pokazit. Pomoc od Obchodní analytik lze pro tuto strategii použít.
- Vzájemné hodnocení testerů: dostat své testovací případy analyzováno nebo zkontrolováno kolegou testerem, který je s daným systémem nebo funkcí méně obeznámen.
- Obchodní analýza testovacích případů: Koncoví uživatelé nebo odborníci často vymýšlejí platné scénáře, které testeři přehlížejí, protože se tester zaměřuje na uvedené požadavky.
- Proveďte průzkumné testování pomocí testovacích protokolů: průzkumné testování s protokoly o provedení testů zaznamenává, co bylo testováno, umožňuje opakování testů a udržuje pokrytí testy pod kontrolou.
- Použijte jiný zdroj: požádejte někoho jiného, aby rozbil softwarový produkt a analyzoval nalezené scénáře.
Příklad destruktivního testování
Vezměte si přihlašovací a profilovou obrazovku bankovní aplikace. Destruktivní přístup by fungoval v případech, jako jsou tyto:
- Vložte řetězec o délce 5 000 znaků do pole omezeného na 50 znaků a ověřte, zda jej pole odmítá, místo aby jej tiše zkrátilo.
- Zadejte písmena, symboly a záporné hodnoty do číselného pole pro částku.
- Přerušte očekávanou sekvenci – otevřete stránku s potvrzením platby přímo bez dokončení předchozího kroku.
- Opakovaně a rychle po sobě stiskněte tlačítko Odeslat, abyste zjistili, zda se nevytvořily duplicitní záznamy.
- Odpojte síť uprostřed transakce a zkontrolujte, zda se aplikace bez problémů obnoví, nebo zanechá jen částečný záznam.
Každý případ má definované očekávání: jasná ověřovací zpráva, žádné poškození dat a žádné neošetřené výjimky. Cokoli jiného je bod selhání, který stojí za to označit za vadu.
Metody destruktivního testování
V softwarovém inženýrství se k dosažení cílů destruktivního testování používají následující metody:
- Alfa / Beta testování
- Regresní testování
- Testování rozhraní
- Rozdělení ekvivalence
- Testování smyčky
- Akceptační testování a tak dále
Destruktivní testovací techniky
Níže uvedené techniky lze použít s úpravami:
- Bílé pole testování
- Testování zabezpečení
- Testování vad
- Testování kouře, a tak dále
Související techniky, které stojí za to přidat, když je cílem robustnost, jsou negativní testování, stresové testování, testování obnovy a testování fuzzu.
Výhody a nevýhody destruktivního testování
Kompromis je třeba jasně uvést před plánovaným uvedením techniky na trh.
Výhody
- Revidentifikuje body selhání, kterých testování řízené specifikacemi nikdy nedosáhne.
- Stanovuje skutečné limity dosahu, takže produkt lze v nich s jistotou provozovat.
- Odhaluje vzácné vady, které se objevují ve výrobě dlouho po uvedení na trh.
- Kontroluje trvanlivost, obnovitelnost a ošetření chyb při zneužití.
Nevýhody
- Otevřená povaha, takže krytí nelze snadno zaručit ani měřit.
- Časově náročné a závislé na zkušenostech a kreativitě testera.
- Bez pečlivého zaznamenávání použitých kroků může být obtížné reprodukovat zjištění.
- Špatně kontrolované běhy mohou poškodit sdílená testovací data, proto je nutné izolované prostředí.

