PočítačeSoftware

Testovací programy - proces zjišťování chyb v softwarovém produktu

Při vývoji softwaru se významná část výrobního procesu spoléhá na programové testování. Co to je a jak se tato aktivita provádí, bude popsáno v tomto článku.

Co se nazývá testování?

To je chápáno jako proces, během kterého je software spuštěn, aby bylo možné nalézt místa nesprávného fungování kódu. Pro dosažení nejlepšího výsledku jsou složité sady vstupních dat záměrně sestaveny. Hlavním cílem auditora je vytvořit optimální příležitosti pro selhání softwarového produktu. Přestože lze někdy testování rozvinutého programu zjednodušit na normální kontrolu výkonu a výkonnost funkcí. To šetří čas, ale je často doprovázeno nespolehlivým softwarem, nespokojeností uživatelů a podobně.

Účinnost

Jak rychlé a rychlé chyby mají významný dopad na náklady a trvání vývoje softwaru požadované kvality. Takže navzdory skutečnosti, že testeři dostávají mzdy několikrát méně než programátoři, náklady na jejich služby obvykle dosahují 30-40% nákladů na celý projekt. Důvodem je počet zaměstnanců, protože hledání chyby je neobvyklým a poměrně složitým procesem. Ale i když software prošel hodně testů, pak neexistuje 100% záruka, že chyby nebudou. Není známo, kdy se budou projevovat. Chcete-li vyzvat testery k výběru typů ověření, u kterých je pravděpodobnější nalezení chyby, používají se různé motivační prostředky: morální i materiální.

Přístup k práci

Optimální situace je, když jsou implementovány různé mechanismy, které zajistí, že v softwaru nebudou žádné chyby od samého počátku. Za tímto účelem je třeba se postarat o správný návrh architektury, přesné technické zadání a je také důležité, aby se neprováděly úpravy, když projekt již byl zahájen. V tomto případě je zkušebník konfrontován s úkolem najít a určit malý počet chyb, které zůstávají v konečném výsledku. Tím ušetříte čas i peníze.

Co je test?

Jedná se o důležitý aspekt činnosti inspektora, který je nezbytný pro úspěšné zjištění nedostatků programového kódu. Jsou nezbytné pro kontrolu správnosti aplikace. Co je součástí testu? Obsahuje jejich počáteční data a hodnoty, které by měly být získány jako výsledné (nebo mezilehlé). Aby bylo možné úspěšně identifikovat problémy a nesrovnalosti, testy by měly být sestaveny po vytvoření algoritmu, ale programování nezačalo. Při výpočtu potřebných dat je žádoucí použít několik přístupů. V tomto případě se pravděpodobnost zjištění chyb zvyšuje, protože je možné zkontrolovat kód z jiného pohledu. Komplexní testy by měly poskytnout ověření externích efektů hotového softwarového produktu a jeho pracovních algoritmů. Zvláštní zájem poskytuje omezující a degenerované případy. Takže v praxi s činnostmi s chybami lze často odhalit, že cyklus běží o jedenkrát méně nebo více, než bylo plánováno. Je také důležité otestovat počítač, pomocí něhož můžete ověřit shodu požadovaného výsledku s různými stroji. To je nezbytné, aby se ujistil, že software může fungovat ve všech počítačích. Kromě toho je při vývoji multiplatformního vývoje důležité testovat počítač, na kterém bude vývoj probíhat.

Umění hledání chyb

Programy jsou často zaměřeny na práci s obrovským množstvím dat. Je skutečně nutné jej úplně vytvořit? Ne, to není. Praxe "miniaturizace" programu se rozšířila. V tomto případě dochází k přiměřenému snížení množství údajů v porovnání s tím, co by mělo být použito. Podívejme se na tento příklad: existuje program, ve kterém je vytvořena matice 50x50. Jinými slovy - musíte zadat ručně 2500 tisíc hodnot. To samozřejmě je možné, ale to bude trvat velmi dlouho. Pro testování výkonu však softwarový produkt obdrží matici, jejíž rozměr je 5x5. Chcete-li to provést, musíte zadat již 25 hodnot. Pokud v tomto případě existuje normální, bezchybná práce, znamená to, že je vše v pořádku. I když zde existují úskalí, které spočívají v tom, že v miniaturizaci nastane situace, v důsledku čehož se změny stanou implicitní a dočasně zmizí. To je také velmi vzácné, ale také se stává, že nové chyby jsou dělány.

Cílené cíle

Testování softwaru není snadným úkolem vzhledem k tomu, že tento proces nelze plně formalizovat. Velké programy téměř nikdy nemají potřebný přesný standard. Z tohoto důvodu se jako návod používá řada nepřímých dat, které však nemohou zcela odrážet charakteristiky a funkce vývoje softwaru, které jsou odladěny. A měly by být vybrány tak, aby byl správný výsledek vypočítán ještě před testováním softwarového produktu. Pokud tomu tak není v předstihu, je tu pokušení zvážit vše kolem a pokud výsledek stroje spadá do očekávaného rozmezí, pak bude učiněno chybné rozhodnutí, že je vše správné.

Zkontrolujte různé podmínky

Obvykle se testování programů vyskytuje v svazcích, které jsou požadovány pro minimální ověření funkčnosti v omezeném rozsahu. Činnosti jsou prováděny se změnami v parametrech a podmínkách jejich práce. Testovací proces lze rozdělit do tří fází:

  • Zkontrolujte normální podmínky. V tomto případě je testována základní funkce vyvinutého softwaru. Výsledek by měl být očekáván.
  • Zkontrolujte stav nouze. V těchto případech je cílem získat hraniční data, která mohou negativně ovlivnit efektivitu vytvořeného softwaru. Jako příklad můžete pracovat s extrémně velkými nebo malými počty, nebo obecně s úplným nedostatkem informací.
  • Kontrola výjimek. Zahrnuje použití dat, která leží mimo zpracování. V takových situacích je velmi špatné, když je software vnímá jako vhodný pro výpočet a vytváří věrohodný výsledek. Je třeba dbát na to, aby v takových případech došlo k odmítnutí všech údajů, které nemohou být správně zpracovány. Je také nutné poskytnout informace o tomto uživateli

Testování softwaru: Typy

Je velmi obtížné vytvářet software bez chyb. To trvá značné množství času. Chcete-li získat dobrý produkt, často se používají dva typy testů: "Alpha" a "Beta". Co jsou to? Když říkají o alfa testování, znamená to testování, které provádí pracovníci vývojářů v "laboratorních" podmínkách. Toto je poslední krok v testu před přenosem programu koncovým uživatelům. Proto se vývojáři snaží maximálně zapnout. Pro snadné ovládání lze data zaznamenávat a vytvořit tak chronologii problémů a jejich odstranění. Beta testování se chápe jako dodávání softwaru omezenému počtu uživatelů, aby mohli využívat program a identifikovat chybějící chyby. Funkce v tomto případě spočívá v tom, že software se často nepoužívá k určenému účelu. Kvůli tomu budou zjištěny chyby, kdy dříve nebylo nic vidět. To je docela normální a není třeba se o to bát.

Dokončení testování

Pokud byly předchozí kroky úspěšně dokončeny, je třeba provést přejímací test. V tomto případě se stává pouhou formalitou. Během této kontroly je potvrzení, že nebyly nalezeny žádné další problémy a software může být uvolněn na trh. Čím důležitější bude mít konečný výsledek, tím více by měl být proveden audit. Je nutné zajistit, aby byly všechny etapy úspěšně úspěšné. Takhle testovací proces vypadá obecně. A teď se podíváme na technické detaily a mluvíme o tak užitečných nástrojích, jako jsou testovací programy. Co jsou a v jakých případech se používají?

Automatizované testování

Předtím se věřilo, že dynamická analýza vyvinutého softwaru - je příliš těžký přístup, což je neúčinné při zjišťování závad. Ale kvůli nárůstu složitosti a objemu programů se objevil opačný názor. Automatické testování se používá tam, kde jsou nejdůležitějšími prioritami efektivita a bezpečnost. A měly by být se všemi vstupními daty. Jako příklad programů, pro které je vhodné takové testování, lze citovat: síťové protokoly, webový server, sandboxing. Dále budeme zvažovat několik vzorků, které lze použít pro takové činnosti. Pokud máte zájem o bezplatné zkušební programy, pak je docela těžké najít mezi nimi kvalitní. Existují však pirátské verze dobře osvědčených projektů, takže se můžete obrátit na jejich služby.

Avalanche

Tento nástroj pomáhá detekovat závady testováním programů v režimu dynamické analýzy. Shromažďuje data a analyzuje cestu provádění rozvinutého objektu. Tester má sadu vstupních dat, která způsobí chybu nebo obchází soubor dostupných omezení. Vzhledem k přítomnosti dobrého ověřovacího algoritmu je vyvinuta řada možných situací. Program přijímá řadu vstupních datových sad, které umožňují simulovat významný počet situací a vytvářet podmínky, kdy je nejpravděpodobnější výskyt selhání. Důležitou výhodou programu je použití heuristické metriky. Pokud se vyskytne problém, je velmi pravděpodobné, že chyba aplikace je. Tento program však má omezení, jako je kontrola pouze jednoho označeného vstupního soketu nebo souboru. Při provádění operace, jako je například testování programu, budou k dispozici podrobné informace o přítomnosti problémů s nulovými ukazateli, nekonečnými smyčky, nesprávnými adresami nebo poruchami způsobenými použitím knihoven. Samozřejmě, není to úplný seznam zjištěných chyb, ale pouze jejich běžných příkladů. Opravte nedostatky, bohužel, bude mít vývojáři - automatické nástroje pro tyto účely nejsou vhodné.

KLEE

To je dobrý program pro testování paměti. Může zachytit přibližně 50 systémových volání a velké množství virtuálních procesů, a tak je prováděno paralelně a samostatně. Obecně ale program nevyhledává jednotlivé podezřelé lokality, ale zpracovává maximální možný počet kódů a analyzuje použité cesty přenosu dat. Z tohoto důvodu doba testování programu závisí na velikosti objektu. Při kontrole se sázka provádí na symbolických procesech. Jedná se o jeden z možných způsobů, jak provádět úkoly v testovaném programu. Kvůli paralelnímu provozu je možné analyzovat velké množství variant provozů studované aplikace. Pro každou cestu po skončení testování začnou sady vstupních dat, ze kterých test začal. Je třeba poznamenat, že testovací programy používající KLEE pomáhají identifikovat velké množství odchylek, které by neměly být. To může najít problémy i v aplikacích, které jsou vyvíjeny po celá desetiletí.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 cs.delachieve.com. Theme powered by WordPress.