Metody testování softwaru a jejich srovnání. Testování metodou "černé krabice" a testování pomocí metody "bílé krabice"
Testování softwaru (software) odhaluje chyby, chyby a chyby v kódu, které je třeba odstranit. Může být také definován jako proces hodnocení funkčnosti a správnosti softwaru pomocí analýzy. Hlavní metody integrace a testování softwarových produktů zajišťují kvalitu aplikací a spočívají v kontrole specifikace, návrhu a kódu, hodnocení spolehlivosti, ověřování a ověřování.
Obsah
Metody
Hlavním cílem testování softwaru je potvrdit kvalitu softwarového balíčku systematickým laděním aplikací za pečlivě řízených podmínek, určením jejich úplnosti a správnosti a detekcí skrytých chyb.
Metody testování (testování) programů lze rozdělit na statické a dynamické.
První zahrnují neformální, kontrolní a technické přezkoumání, kontrolu, analýzu krok za krokem, audit, jakož i statickou analýzu toku dat a řízení.
Dynamické techniky jsou následující:
- Testování bílé krabice. Toto je detailní studie vnitřní logiky a struktury programu. To vyžaduje znalost zdrojového kódu.
- Testování černé krabice. Tato technika nevyžaduje žádné znalosti o vnitřním fungování aplikace. Uvažujeme pouze o hlavních aspektech systému, které nejsou propojeny nebo málo příbuzné vnitřní logické struktuře.
- Metoda šedé krabice. Kombinuje předchozí dva přístupy. Ladění s omezenou znalostí o vnitřním fungování aplikace je kombinováno se znalostmi základních aspektů systému.
Průhledné testování
V metodě bílé krabice se používají testovací scénáře řídicí struktury procedurálního projektu. Tato technika vám umožňuje identifikovat implementační chyby, jako je špatná správa kódu, analýzou vnitřního fungování softwaru. Tyto zkušební metody jsou použitelné na integračních, modulárních a systémových úrovních. Tester musí mít přístup ke zdrojovému kódu a pomocí něj zjistit, který blok se chová nevhodným způsobem.
Testovací programy používající metodu bílého rámečku mají následující výhody:
- umožňuje při odstraňování nepotřebných řádků zjistit chybu ve skrytém kódu;
- možnost použití vedlejších účinků;
- Maximální pokrytí je dosaženo napsáním zkušebního scénáře.
Nevýhody:
- Vysokovýkonný proces, který vyžaduje kvalifikovaný ladicí program;
- mnoho cest zůstane neprozkoumano, protože důkladná kontrola všech možných skrytých chyb je velmi složitá;
- část chybějícího kódu zůstane bez povšimnutí.
Testování na bílé krabici se někdy označuje také jako průhledné nebo otevřené testování, strukturální, logické testování, testování založené na zdrojích, architektura a logika.
Hlavní odrůdy jsou:
1) testování řízení toku je strukturální strategie, která využívá řízení toku programu jako model a dává přednost více jednoduchým cestám před menšími složitějšími;
2) odrušovací větvení má za cíl prověřit každou možnost (pravdivou nebo nepravdivou) každého kontrolního operátora, který také zahrnuje kombinované řešení;
3) testování hlavní cesty, která umožňuje testovateli zjistit míru logické složitosti procedurálního projektu pro přidělení základní sady výkonových cest;
4) ověření toku dat - strategii výzkumu toku řízeného řízením pomocí grafu s informacemi o deklaraci a použití programových proměnných;
5) testování cyklů - je plně zaměřen na správné provádění cyklických postupů.
Behaviorální ladění
Metoda testování černá krabička považuje software za "černý rámeček" - informace o interní práci programu se nezohledňují a kontrolují se pouze hlavní aspekty systému. V tomto případě musí tester znát systémovou architekturu bez přístupu ke zdrojovému kódu.
Výhody tohoto přístupu:
- efektivita pro velký segment kódu;
- jednoduchost vnímání testerem;
- perspektiva uživatele je z hlediska vývojáře jasně oddělena (programátor a tester jsou nezávislí na sobě);
- rychlejší tvorbu testů.
Testovací programy využívající metody black box mají následující nevýhody:
- ve skutečnosti se provádí vybraný počet zkušebních scénářů, což vede k omezenému pokrytí;
- nedostatek jasných specifikací ztěžuje vytváření testovacích scénářů;
- nízká účinnost.
Jiná jména této techniky jsou behaviorální, neprůhledná, funkční testování a ladění pomocí metody uzavřeného rámečku.
K této kategorii lze přiřadit následující metody testování softwaru:
1) ekvivalentní rozdělení, které může snížit sadu testovacích dat, protože vstupní data programového modulu jsou rozdělena do samostatných částí;
2) analýza okrajů se zaměřuje na ověření hranic nebo hraničních hodnot - minima, maxima, chybné a typické hodnoty;
3) Fuzzing - slouží k nalezení implementačních chyb zadáním zkreslených nebo polořadovkových údajů v automatickém nebo poloautomatickém režimu;
4) počty příčinné souvislosti - technika založená na vytváření grafů a určení vztahu mezi akce a důvody: Identita, negaci, logický součet a logický součin - čtyři hlavní znaky, vyjadřující vztah příčiny a následku;
5) ověření ortogonálních polí aplikovaných na problémy s poměrně malou oblastí vstupů, které přesahují možnosti vyčerpávajícího výzkumu;
6) testování všech párů - techniku, jejíž sada testovacích hodnot zahrnuje všechny možné jednotlivé kombinace každé dvojice vstupních parametrů;
7) ladění stavu přechodu je technika užitečná pro kontrolu stavu stroje, a také pro navigaci grafické rozhraní uživatele.
Testování na black-box: příklady
Technologie černé krabice je založena na specifikacích, dokumentaci a také popisu softwarového rozhraní nebo systému. Kromě toho je možné použít modely (formální nebo neformální), které představují očekávané chování softwaru.
Obvykle se tato metoda ladění používá na uživatelské rozhraní a vyžaduje interakci s aplikací zadáním dat a shromažďováním výsledků - z obrazovky, ze zpráv nebo výtisků.
Tester tak komunikuje se softwarem prostřednictvím vstupu, působí na přepínače, tlačítka nebo jiné rozhraní. Volba vstupních dat, pořadí jejich zavedení nebo sled činností může vést k obrovskému celkovému počtu kombinací, jak je vidět v následujícím příkladu.
Kolik testů by mělo být provedeno pro kontrolu všech možných hodnot pro čtyři zaškrtávací políčka a jedno dvoupolohové pole specifikující čas v sekundách? Na první pohled je výpočet jednoduchý: 4 pole s dvěma možnými stavy - 24 = 16, které musí být vynásobeny počtem možných pozic od 00 do 99, tj. 1600 možných testů.
Nicméně, tento výpočet je špatně: můžeme určit, že pole dvoubodové může také obsahovat mezeru, to znamená, že se skládá ze dvou alfanumerických poloh a může obsahovat alfanumerické znaky, speciální znaky, mezery, atd Proto, pokud .... systém je 16-ti bitový počítač, otočit 216 = 65536 jeden pro každou pozici ve výsledných 4294967296 testovací případy, které mají být vynásobeny 16 kombinací příznaků, které dává celkem 68,719,476 736. Pokud se vykonávají při rychlosti 1 testu za sekundu, pak celkem Doba trvání testu bude 2 177,5 let. U 32 nebo 64 bitových systémů je doba trvání ještě větší.
Proto je třeba tuto dobu zkrátit na přijatelnou hodnotu. Techniky by se proto měly používat ke snížení počtu testovacích případů, aniž by se snížilo pokrytí testováním.
Ekvivalentní rozklad
Ekvivalentní oddíl je jednoduchá metoda, která je použitelná pro všechny proměnné, které jsou přítomny v softwaru, ať již vstupní nebo výstupní hodnoty, symbolický, numerické a další. Je založen na principu, že všechna data z jednoho ekvivalentu oddílu bude zacházeno stejným způsobem a podle stejné pokyny.
Během testování je z každého definovaného ekvivalentního oddílu vybrán jeden zástupce. To vám umožní systematicky snižovat počet případných testovacích případů, aniž byste ztratili rozsah příkazů a funkcí.
Dalším důsledkem tohoto rozdělení je snížení kombinatorické exploze mezi různými proměnnými as tím spojené snížení počtu zkušebních případů.
Například v (1 / x)1/2 používá tři datové sekvence, tři ekvivalentní oddíly:
1. Všechny pozitivní čísla budou zpracovány stejným způsobem a měly by přinést správné výsledky.
2. Všechny záporné čísla se budou zacházet stejným způsobem se stejným výsledkem. To není pravda, protože kořen záporného čísla je fiktivní.
3. Nula bude zpracována samostatně a bude chybět "dělení nulou". Toto je část s jednou hodnotou.
Vidíme tedy tři různé sekce, z nichž jedna je redukována na jednu hodnotu. Existuje jedna "správná" část, která poskytuje spolehlivé výsledky a dvě "špatné" s nesprávnými výsledky.
Hraniční analýza
Zpracování dat na hranicích ekvivalentního oddělení může být provedeno jinak, než se očekávalo. Studium hraničních hodnot je dobře známým způsobem analýzy chování softwaru v těchto oblastech. Tato technika nám umožňuje identifikovat takové chyby:
- zneužití relačních operátorů (<,>, =, ne-, ge-, le-);
- jednotlivé chyby;
- Problémy v cyklech a iteracích,
- Špatné typy nebo velikost proměnných používaných k ukládání informací;
- umělá omezení spojená s daty a typy proměnných.
Poloprůhledné testování
Metoda šedé krabice zvyšuje pokrytí kontroly, což umožňuje soustředit se na všechny úrovně komplexního systému kombinací metod bílého a černého.
Při použití této techniky musí mít testovací přístroj pro vývoj testovacích hodnot znalost interních datových struktur a algoritmů. Příklady zkušebních metod pro šedé pole jsou:
- architektonický model;
- Unified Modeling Language (UML);
- stavový model (konečný stavový stroj).
V metodě šedé skříně pro vývoj testovacích případů se zkoumají bílé kódy modulů a skutečná zkouška se provádí na rozhraní černého technologického programu.
Takové zkušební metody mají následující výhody:
- kombinace výhod technik bílé a černé krabice;
- Tester se spoléhá na rozhraní a funkční specifikaci a ne na zdrojový kód;
- ladicí program může vytvořit vynikající zkušební skripty;
- ověření se provádí z pohledu uživatele, nikoli od tvůrce programu;
- vytváření přizpůsobených testů;
- objektivity.
Nevýhody:
- Pokrytí testů je omezené, protože neexistuje přístup ke zdrojovému kódu;
- složitost zjišťování závad v distribuovaných aplikacích;
- mnoho způsobů zůstává neprozkoumaná;
- Pokud vývojář softwaru již test provedl, může být další výzkum nadbytečný.
Dalším jménem technologie šedé skříně je poloprůhledné ladění.
Tato kategorie zahrnuje takové zkušební metody:
1) ortogonální pole - použití podmnožiny všech možných kombinací;
2) ladění matic pomocí dat o stavu programu;
3) regresní test prováděný při nových změnách softwaru;
4) test šablony, který analyzuje návrh a architekturu pevné aplikace.
Srovnání metod testování softwaru
Použití všech dynamických metod vede k kombinačnímu výbuchu počtu testů, které musí být vyvinuty, provedeny a prováděny. Každá technika by měla být používána pragmaticky, s ohledem na její omezení.
Jediná pravá metoda neexistuje, existují pouze ty, které jsou lépe přizpůsobeny konkrétnímu kontextu. Strukturální techniky nám umožňují najít zbytečný nebo škodlivý kód, ale jsou složité a nepoužitelné pro velké programy. Metody založené na specifikaci jsou jediné, které mohou identifikovat chybějící kód, ale nemohou identifikovat outsidera. Některé techniky jsou vhodnější pro určitou úroveň testování, jako jsou chyby nebo kontext, než jiné.
Níže jsou hlavní rozdíly mezi třemi dynamickými testovacími technikami, které jsou uvedeny ve srovnávací tabulce mezi třemi formami ladicího softwaru.
Aspekt | Metoda černé krabice | Metoda šedé skříně | Metoda bílé krabice |
Dostupnost informací o složení programu | Analyzují se pouze základní aspekty | Částečné znalosti interního návrhu programu | Plný přístup k zdrojovému kódu |
Stupeň fragmentace programu | Nízká | Průměrný | Vysoká |
Kdo dělá ladění? | Koncoví uživatelé, testery a vývojáři | Koncoví uživatelé, ladicí programy a vývojáři | Vývojáři a testery |
Báze | Testování je založeno na externích situacích na volné noze. | DB diagramy, diagramy datových toků, interní stavy, znalost algoritmu a architektura | Vnitřní uspořádání je zcela známé |
Stupeň pokrytí | Nejméně vyčerpávající a vyžaduje minimální čas | Průměrný | Potenciálně nejkomplexnější. Trvá to dlouho |
Data a vnitřní hranice | Jednoduché ladění při pokusu a omylu | Datové domény a vnitřní hranice mohou být zkontrolovány, pokud jsou známy | Lepší testování datových domén a vnitřních hranic |
Vhodnost pro testování algoritmu | Ne | Ne | Ano. |
Automatizace
Automatické metody testování softwarových produktů značně zjednodušují ověřovací proces bez ohledu na technické prostředí nebo kontext softwaru. Používají se ve dvou případech:
1) automatizovat provádění nudných, opakujících se nebo choulostivých úkolů, jako je porovnání souborů na několika tisících řádků, aby se uvolnil čas testeru, aby se soustředil na důležitější body;
2) provádět nebo sledovat úkoly, které lidé nemohou snadno implementovat, jako jsou kontroly výkonnosti nebo analýza času odezvy, které lze měřit ve stotinách sekundy.
Testovací nástroje lze klasifikovat různými způsoby. Následující rozdělení je založeno na úkolech, které podporují:
- Řízení testů, které zahrnují podporu pro správu projektů, verze, konfigurace, analýzu rizik, sledování testů, chyby, závady a nástroje pro vytváření přehledů;
- řízení požadavků, které zahrnují uchovávání požadavků a specifikací, jejich ověření úplnosti a nejednoznačnosti, jejich priorita a sledovatelnost každé zkoušky;
- kritické zhodnocení a statickou analýzu, včetně monitorování průtoku, a úkoly, nahrávání a ukládání připomínek, zjištění vady a plánované propojení řízení oprav na seznamy a pravidel, sledování komunikace podklady a kódu statickou analýzu ke zjištění vad, které zajistí soulad s normami psaní kódu, analýza struktur a jejich závislostí, výpočet metrických parametrů kódu a architektury. Navíc se používají kompilátory, analyzátory vazeb a generátory křížových odkazů;
- Modelování, které zahrnuje nástroje pro modelování podnikového chování a testování vytvořených modelů;
- Test vývoj zajišťuje generování dat očekávaných na základě podmínek a modelů uživatelského rozhraní a kódu podaří vytvořit nebo upravovat soubory a databáze, zprávy, ověřování dat na základě pravidel řízení, statistické analýzy podmínek a rizik;
- Kritické zobrazení při zadávání dat pomocí grafického uživatelského rozhraní, rozhraní API, příkazových řádků pomocí komparátorů, které pomáhají určit úspěšné a neúspěšné testy;
- Podpora ladění prostředí, které vám umožní nahradit chybějící hardware nebo software, v Vol. h. simulátorů zařízení na základě předem určené výstupním podskupiny, terminálových emulátorů, mobilní telefony nebo síťová zařízení, testovací prostředí pro jazyky, operační systémy a hardware nahrazením chybějící komponenty ovladače, figuríny modulů a podobně, stejně jako nástroje pro zachycení a úpravu OS navrhuje, aby omezení simulace CPU, RAM, ROM nebo síť .;
- porovnání datových souborů, databází, kontrola očekávaných výsledků během testování a po něm, včetně dynamických a sériových porovnání, automatické "věty";
- nátěr měření pro lokalizaci úniků paměti a jeho kontrola chování odhadovat systému nesprávné za simulovaných žádostí zatížení vytvářející zatížení, databází, sítí nebo serverů v realistickém scénáři růstu pro měření, analýzy a verifikace zprávy systémových zdrojů;
- zabezpečení;
- testování výkonu, zatížení a dynamické analýzy;
- Další nástroje, včetně kontroly pravopisu a syntaxe, zabezpečení sítě, dostupnost všech stránek webové stránky atd.
Perspektiva
Při změně trendů v softwarovém průmyslu může dojít ke změně procesu ladění. K dispozici jsou nové metody testování softwaru, jako je například služba-orientirovannae architektury (SOA), bezdrátové technologie, mobilní služby, a tak dále. E., se otevřely nové možnosti testování softwaru. Některé změny, které se očekávají v tomto odvětví v příštích několika letech, jsou uvedeny níže:
- Testery poskytují lehké modely, které vývojářům umožňují testovat jejich kód;
- vývoj zkušebních metod, včetně sledování a modelování programů v počáteční fázi, odstraní mnoho protikladů;
- Přítomnost více testovacích úseků zkrátí dobu detekce chyb;
- Statické analyzátory a detekční nástroje budou aplikovány širšímu spektru;
- použití užitečných matric, jako je pokrytí specifikací, krytí modelu a pokrytí kódem, určí vývoj projektů;
- kombinatorické nástroje umožní testovatelům určit prioritní směry ladění;
- Testery budou poskytovat viditelnější a cennější služby v průběhu celého procesu vývoje softwaru;
- debugéři budou schopni vytvářet nástroje a metody pro testování softwaru napsaného v různých programovacích jazycích a interakce s nimi;
- Odborníci na ladění budou odborněji vyškoleni.
Budou se měnit nové metody orientované na podnikání pro testovací programy, způsoby interakce se systémy a informace, které poskytují, se budou měnit, přičemž se snižují rizika a zvyšují se přínosy obchodních změn.
- Výstup chyb v PHP
- Funkce: co je to? Exkurze do světa IT slangu
- Ověření závaží - hlavní aspekty
- Jaká je beta verze a proč je potřeba?
- Program pro testování pevných disků na poškozených oblastech. Program pro testování rychlosti…
- Webový server pro testování webů a aplikací
- Program pro testování paměti RAM (Windows 7)
- Regresní testování softwaru. Co je regresní testování?
- Testovací programy jsou proces detekce chyb v softwarovém produktu
- Benchmark pro počítač: co je to?
- Program pro testování grafické karty v ruštině
- Testování pilot je statické: technologie, GOST a funkce
- Metody výuky mohou být různé
- Metody pedagogického výzkumu
- Funkční testování
- Ověření je proces ověření softwarového produktu
- Co je programový kód, aplikace, chyby
- Debug - co je to? Popis nástroje
- Metody kontroly kvality výrobků
- Testování statistických hypotéz: obecná logika
- Samodiagnostický notebook