Kombinatorické Testování
Únor 24, 2020
Úvod:
v Dnešní době, softwarové systémy jsou rozmanité, stejně jako komplexní a mají mnoho možných konfigurací. Tyto vlastnosti a funkce v softwarových systémech zahájily poptávku po softwaru a aplikacích, které jsou jedinečně navrženy a mají inovativní i kreativní funkce. Kromě toho klienti a uživatelé také požadují exponenciální výkon, funkčnost, kvalitu, škálovatelnost, efektivitu a další. K dosažení těchto cílů a plnit požadavky klientů a spotřebitelů, softwarových inženýrů využití různých inovativních technik a metodik vyvinout produkt, stejně jako provádět přísné testování, jako produkty propuštěn s nedostatečné testování může způsobit nenapravitelné škody a ztráty klientovi, stejně jako uživatele, který je instalace aplikace nebo pomocí softwaru. Kromě toho může také způsobit ublížení na zdraví, což může mít za následek velké ekonomické ztráty nebo narušení bezpečnosti a také ovlivnit kvalitu každodenního života. Testeři softwaru však mají často omezený čas a rozpočet, což často znemožňuje vyčerpávající testování softwaru. Testeři navíc často intuitivně testují vady, které předpokládají, zatímco méně předpokládané vady jsou přehlíženy a nejsou testovány. Nejlepší způsob, jak tuto situaci překonat, je implementovat kombinatorické testování v softwaru a aplikacích. Kombinatorické testování je přístup, který může systematicky zkoumat nastavení systému v zvládnutelném počtu testů a systematickým pokrýváním interakcí t-way. Proto je zde vysvětlena diskuse o Kombinatorickém testování, definovat jeho význam, metody a další hlavní vlastnosti.
Popisující Kombinatorické Testování:
Kombinatorické Testování je nyní praktický přístup, který produkuje vysoce kvalitní testování na nižší náklady. Rozkládá hrubou silou do kroků k útoku na problém postupně oddělením analýzy a syntézy aktivity, které lze kvantifikovat a monitorovat a částečně podporovány nástroje. Kombinatorické testování je navíc velmi jednoduché. Jako technika založená na specifikaci nevyžaduje žádné znalosti o testované implementaci. Kombinatorické testování je založeno na předpokladu, že mnoho chyb v softwaru může vzniknout pouze interakcí dvou nebo více parametrů. Kombinatorické testování je proto účinnou technikou pro testování softwaru s více konfiguračními parametry. Používá se hlavně k detekci interakčních poruch způsobených kombinací parametrů. Typ testu generované kombinatorické testování zaměřují na generování krytina, která pokrývá všechny t-way parametry kombinace, kde ” t ” je dán krycí sílu. Základní kombinatorické testování lze použít dvěma způsoby, které lze použít buď samostatně, nebo současně. Tyto způsoby jsou:
- Kombinace hodnot konfigurace nebo parametry, ve které pokrývá pole se používají k výběru hodnot konfigurovatelných parametrů, případně s pomocí stejných testů, které spustit na všech kombinacích nastavení.
- krycí pole se používají k výběru hodnot vstupních dat, které se pak stanou součástí kompletních testovacích případů a vytvoří testovací oblek pro aplikaci. Použití této formy kombinatorického testování na software v reálném světě je náročné, protože představuje vyšší stupeň interakcí, pro které mohou být vyžadovány velmi velké testy.
metody používané pro generování kombinatorických testovacích obleků:
Popularita kombinatorického testování se v posledních letech výrazně zvýšila. Díky svým četným výhodám je využíván testery softwaru na různých úrovních testování. Z modelu, jednotkové, integrační, systémové a akceptační testování černé, bílé, model na základě testování, a další, testery provádějí kombinatorické testování získat efektivní výsledky za nákladově efektivní sazby. Navíc pro generování testovacích obleků pro kombinatorické testování používají softwaroví inženýři širokou škálu nástrojů, což ještě více zjednodušuje proces testování softwaru. Tyto kombinatorické testovací obleky poskytují vyšší pokrytí t-way, i když generování polí s vyšším pokrytím t-ways může spotřebovat významné výpočetní zdroje a produkovat velké výsledky. Většina algoritmů pro kombinatorické testování se navíc zaměřuje na speciální případ 2cestného testování. Také pro ruční konstrukci testovacího obleku pro kombinatorické testování se používají tři metody. Tyto metody poskytují testeru různé výhody a zajišťují, že výstup je co nejpřesnější. Tyto metody/algoritmy jsou:
- Algebraická metoda: Metoda nabízí efektivní konstrukcí s ohledem na čas, je však obtížné produkovat přesné výsledky na široké a obecné různými vstupy.
- Chamtivý Algoritmus: Tyto jsou dobře-studoval typ algoritmu pro výstavbu pokrývající pole, jak byly nalezeny relativně efektivní v ohledem na čas a přesnost.
- heuristické vyhledávání: heuristické vyhledávání, zejména když aplikace stimulovaného žíhání (SA) poskytla nejpřesnější výsledky v několika případech. Tato metoda místního vyhledávání poskytla mnoho nejmenších testovacích sad pro různé konfigurace systému; nicméně, za cenu doby provedení pro generování testovacích sad.
Párové Testování:
pairwise testing je kombinatorická metoda testování softwaru, která pro každý pár vstupních parametrů do systému testuje všechny možné diskrétní kombinace těchto parametrů. Jedná se o testovací konstrukční techniku, která poskytuje stoprocentní pokrytí testem. Nejčastější chyby v programu jsou obvykle nalezeny a spouštěny buď vstupním parametrem, nebo interakcí mezi dvojicí parametrů. Chyby zahrnující interakce mezi třemi nebo více parametry jsou postupně méně časté a postupně dražší, takové testování má jako limit testování všech možných vstupů. V tomto případě kombinatorické technika pro sběr testovacích případů, stejně jako všechny dvojice je velmi užitečné nákladů a přínosů kompromis, který umožňuje významné snížení počtu testovacích případů, aniž by se drasticky ohrožena funkční pokrytí. Proto je párová testovací technika nesmírně užitečná při navrhování testů pro aplikace zahrnující více parametrů. Jeho testovací oblek pokrývá všechny kombinace, a proto není vyčerpávající, ale velmi efektivní při hledání chyb. Když párového testování může výrazně snížit kombinace, to stále zůstává opravdu efektivní z hlediska chyba detekce a je opravdu inteligentní test design technika, která slibuje nejlepší testovací úsilí a mimořádnou účinnost.
výhody kombinatorického testování:
výše uvedená diskuse o kombinatorickém testování odráží jeho význam i užitečnost. Je to jedna z nejúčinnějších technik testování softwaru, protože testuje software s více konfigurovatelnými parametry. Navíc pomocí kombinatorického testování lze snadno detekovat poruchy interakcí způsobené kombinací parametrů. Další výhodou tohoto typu testování je to, že produkuje vysoce kvalitní testování za velmi nákladově efektivní cenu, což nejen pomáhá vývojářům a testerům softwaru, ale také prospívá organizaci, pro kterou je produkt vyvíjen. Další výhody tohoto přístupu jsou proto:
- zpracovává obavy z pokrytí při definování plánu testu.
- umožňuje systematické plánování testu.
- lze prakticky aplikovat na jakýkoli software a na různých úrovních abstrakcí.
- vyšší pokrytí testu s lepším zabezpečením kvality.
- nevyžaduje přístup k internímu zdrojovému kódu SUT.
- maximalizuje hodnotu každého testovaného scénáře.
- významné snížení počtu testů.
- může řídit rizika a snadno se kontroluje.
závěr:
softwarové systémy jsou složité a mohou způsobit exponenciální počet možných testů. Jakýkoli produkt, který je uvolněn bez řádného testování, může být významným nebezpečím pro organizaci i uživatele. Proto, aby bylo zajištěno, že žádná taková situace nebo problému dochází po vydání softwaru, software testery provádět přísné testování. Navíc často používají kombinatorické testování v různých testovacích úrovních, protože mohou snadno testovat software s více konfigurovatelnými parametry. Stručně řečeno, kombinatorické testování se používá k detekci interakčních poruch způsobených kombinací parametrů. Klíčový vhled, který je základem účinnosti kombinatorického testování, vyplynul z řady studií a výzkumů provedených NIST v letech 1999-2004. Je to nesmírně užitečný přístup, který může systematicky zkoumat nastavení systému v zvládnutelném počtu testů. Jedná se o přístup, který produkuje a provádí vysoce kvalitní testování za velmi nákladově efektivní cenu. Dále je to účinná technika plánování testů,která dokáže co nejdříve zvládnout obavy z pokrytí. Pokud tedy softwarový inženýr chce získat nejlepší výsledky testování, měl by určitě provést kombinatorické testování v rané fázi životního cyklu vývoje softwaru (SDLC).