Co je dynamické testování? Typy, techniky a příklady
Dynamické testování
Dynamické testování je metoda testování softwaru používaná k testování dynamického chování softwarového kódu. Hlavním účelem dynamického testování je otestovat chování softwaru s dynamickými proměnnými nebo proměnnými, které nejsou konstantní, a najít slabá místa v běhovém prostředí softwaru. Aby bylo možné otestovat dynamické chování, musí být kód spuštěn.
Všichni víme, že Testování je ověřování a validace a k dokončení testování trvá 2 V. Ze 2 V se Ověření nazývá statické testování a další „V“ Ověření se nazývá dynamické testování.
Příklad dynamického testování
Pojďme pochopit, jak provádět dynamické testování na příkladu:
Předpokládejme, že testujeme přihlašovací stránku, kde máme dvě pole „Uživatelské jméno“ a „Heslo“ a uživatelské jméno je omezeno na alfanumerické.
Když uživatel zadá uživatelské jméno jako „Guru99“, systém totéž přijme. Kde jako když uživatel zadá jako Guru99@123, pak aplikace vyvolá chybovou zprávu. Tento výsledek ukazuje, že kód funguje dynamicky na základě uživatelského vstupu.
Dynamické testování je, když pracujete se skutečným systémem tím, že poskytujete vstup a porovnáváte skutečné chování aplikace s očekávaným chováním. Jinými slovy, práce se systémem se záměrem najít chyby.
Na základě výše uvedených tvrzení tedy můžeme říci nebo dojít k závěru, že dynamické testování je proces ověřování softwarových aplikací jako koncového uživatele v různých prostředích, aby se vytvořil správný software.
Co dělá dynamické testování?
Hlavním cílem dynamických testů je zajistit, aby software fungoval správně během a po instalaci softwaru a zajistil tak stabilní aplikaci bez větších nedostatků (toto tvrzení je uvedeno proto, že žádný software není bezchybný, pouze testování může prokázat přítomnost vad a ne nepřítomnost)
Hlavním účelem dynamického testu je zajistit konzistenci softwaru; probereme to na příkladu.
V bankovní aplikaci najdeme různé obrazovky, jako je sekce Moje účty, Převod prostředků, Bill Platit atd.. Všechny tyto obrazovky obsahují pole částky, které přijímá některé znaky.
Řekněme, že pole Moje účty zobrazuje částku jako 25,000 a Převod prostředků as $25,000 si Bill platební obrazovka jako $25000 ačkoli je částka stejná, způsob zobrazení částky není stejný, takže software je nekonzistentní.
Konzistence není omezena pouze na funkčnost, ale odkazuje také na různé standardy, jako je výkon, použitelnost, kompatibilita atd., a proto je velmi důležité provádět dynamické testování.
Typy dynamického testování
Dynamické testování je rozděleno do dvou kategorií
- Bílý Box Testování
- Černá Box Testování
Níže uvedené obrázkové znázornění nám dává představu o typech dynamického testování, úrovních testování atd.
Pojďme stručně probrat každý typ testování a jeho zamýšlený účel
Bílý Box Testování - Bílý Box Testování je metoda testování softwaru, při které je testerovi známá vnitřní struktura/design. Hlavním cílem White Box testování je zkontrolovat, jak systém funguje na základě kódu. Provádějí to hlavně Vývojáři nebo Bílí Box Testeři, kteří mají znalosti o programování.
Černá Box Testování - Černá Box Testování je metoda testování, ve které je vnitřní struktura/kód/design NENÍ testerovi známé. Hlavním cílem tohoto testování je ověřit funkčnost testovaného systému a tento typ testování vyžaduje provedení kompletní sady testů a je prováděno především Testery a nejsou potřeba žádné znalosti programování.
Jedno Černý box Testování je opět rozděleno do dvou typů.
Jsou
- Funkční testování
- Nefunkční testování
Funkční testování:
Funkční testování se provádí, aby se ověřilo, že všechny vyvinuté funkce jsou v souladu s funkčními specifikacemi, a provádí se provedením funkčních testovacích případů napsaných týmem QA, ve fázi funkčního testování je systém testován poskytnutím vstupu, ověřením výstupu a porovnání skutečných výsledků s očekávanými výsledky.
Existují různé úrovně funkčního testování, z nichž nejdůležitější jsou
- Testování jednotek – Obecně Unit je malý kousek kódu, který je testovatelný, Testování jednotek je prováděna na jednotlivých jednotkách softwaru a je prováděna vývojáři
- Testování integrace - Testování integrace je testování, které se provádí po testování jednotek a je prováděno kombinací všech jednotlivých jednotek, které jsou testovatelné, a je prováděno vývojáři nebo testery
- Testování systému - Testování systému se provádí, aby se zajistilo, že systém funguje podle požadavků, a obecně se provádí, když je připraven celý systém, provádějí jej testeři, když je sestava nebo kód uvolněn týmu QA
- Akceptační testování – Akceptační testování se provádí za účelem ověření, zda systém splňuje obchodní požadavky a je připraven k použití nebo připraven k nasazení, a obvykle jej provádějí koncoví uživatelé.
Nefunkční testování: Nefunkční testování je testovací technika, která se nezaměřuje na funkční aspekty a soustředí se především na nefunkční atributy systému, jako jsou úniky paměti, výkon nebo robustnost systému. Nefunkční testování se provádí na všech úrovních testu.
Existuje mnoho nefunkčních testovacích technik, z nichž ty nejdůležitější jsou
- Testování výkonu - Testování výkonu se provádí pro kontrolu, zda je doba odezvy systému normální podle požadavků při požadovaném zatížení sítě.
- Testování zotavení – Testování obnovy je metoda, jak ověřit, jak dobře je systém schopen zotavit se z pádů a selhání hardwaru.
- Testování kompatibility – Provádí se testování kompatibility, aby se ověřilo, jak se systém chová v různých prostředích.
- Testování zabezpečení - Testování zabezpečení se provádí za účelem ověření robustnosti aplikace, tj. aby bylo zajištěno, že do systému přistupují pouze oprávnění uživatelé/role
- Testování použitelnosti - Testování použitelnosti je metoda k ověření použitelnosti systému koncovými uživateli, aby se ověřilo, jak jsou uživatelé se systémem spokojeni.
Dynamické testovací techniky
Dynamické testovací techniky in STLC sestává z různých úkolů, jako je analýza požadavků na testy, plánování testů, návrh a implementace testovacího případu, nastavení testovacího prostředí, provedení testovacího případu, hlášení chyb a nakonec uzavření testu. Všechny úlohy v technikách dynamického testování jsou závislé na dokončení předchozí úlohy v procesu testování.
V STLC můžeme říci, že skutečný dynamický testovací proces začíná od návrhu testovacího případu, pojďme diskutovat o každé činnosti podrobně.
Než se pustíme do procesu, prodiskutujeme strategii, kterou je třeba u dynamického testování dodržovat.
Strategie testování by se měla zaměřit především na dostupné zdroje a časový rámec. Na základě těchto faktorů musí být zdokumentován cíl testování, rozsah testování, fáze nebo cykly testování, typ prostředí, předpoklady nebo výzvy, kterým může čelit, rizika atd.
Jakmile je strategie definována a je akceptována vedením, začne vlastní návrh testovacího případu procesu
Co je návrh a implementace testu
V této fázi identifikujeme,
- Vlastnosti k testování
- Odvoďte zkušební podmínky
- Odvozte položky pokrytí
- Odvoďte testovací případy
Nastavení testovacího prostředí
Musíme zajistit, aby testovací prostředí bylo vždy podobné produkčnímu prostředí, v této fázi musíme nainstalovat sestavení a spravovat testovací stroje.
Provedení testu
Během této fáze se skutečně provádějí testovací případy.
Zpráva o chybě zachycena
Na základě provedení, pokud očekávané a skutečné výsledky nejsou stejné, musí být testovací případ označen jako neúspěšný a měla by být zaznamenána chyba.
Výhody dynamického testování
- Dynamické testování může odhalit odhalené defekty, které jsou považovány za příliš obtížné nebo komplikované a které nelze pokrýt statickou analýzou
- V dynamickém testování provádíme software od začátku do konce, čímž zajišťujeme bezchybný software, který zase zvyšuje kvalitu produktu a projektu.
- Dynamické testování se stává základním nástrojem pro detekci jakýchkoli bezpečnostních hrozeb
Nevýhody dynamického testování
- Dynamické testování je časově náročné, protože spouští aplikaci/software nebo kód, který vyžaduje obrovské množství zdrojů
- Dynamické testování zvyšuje náklady na projekt/produkt, protože nezačíná na začátku životního cyklu softwaru, a proto jakékoli problémy opravené v pozdějších fázích mohou vést ke zvýšení nákladů.
Proč investovat do čističky vzduchu?
In Softwarové inženýrství, Verifikace a Validace jsou dvě opatření používaná ke kontrole, zda softwarový produkt splňuje specifikace požadavků. Statické testování zahrnuje ověření, zatímco dynamické testování zahrnuje validaci. Společně pomáhají dodávat cenově výhodný kvalitní software.