Co je automatické testování softwaru?
Software je testován, aby se potvrdilo, že všechny platné vstupy jsou správně interpretovány a provedeny, zatímco nesprávné vstupy jsou vyhozeny. Testy také ověřují, že výsledky jsou generovány efektivně a že velký objem dat lze zpracovávat bez škytnutí. Testování lze provádět ručně nebo elektronicky. Automatizované testování softwaru zahrnuje použití specializovaného softwaru k testování vyvíjeného kódu. Takové testování přináší výhody procesu vývoje softwaru, je-li uvážlivě použito.
Ruční testy závisí na pečlivosti lidí, kteří provádějí testování. Ruční testování softwaru je časově náročné a vyžaduje pro většinu aplikací významný poměr testerů k vývojářům. To zvyšuje náklady na vývoj. Kromě toho má ruční testování omezení, že velké množství dat nebo velký počet současných uživatelů nebo vstupů nelze snadno testovat.
Automatizované testování softwaru programově řídí provádění testu a vyhodnocení výstupu. Testovací software poskytuje vstupy, které odpovídají různým podmínkám, k vyhodnocovanému softwaru. Pro každou sadu podmínek testovací software porovná skutečné výsledky s požadovanými výsledky a udržuje statistiku agregovaného chování cílového softwaru. Po „běhu“ testovací software obvykle poskytuje souhrnné výsledky, aby lidé mohli rychle určit, co napravit.
Při automatizovaném testování softwaru se mechanizují únavné úkoly spojené s testováním, jako je přihlášení nebo zadávání údajů, jako jsou poštovní adresy. V každém běhu lze testovat obrovské kombinace podmínek. Protože automatizované testování zahrnuje použití počítačů a softwaru, umožňuje také simulaci velkého množství vstupních dat nebo extrémně rychlých vstupů. Každý běh řady testovacích podmínek může být dokončen během několika hodin. Proto je automatické testování velmi užitečné pro regresní testování, které zajišťuje, že nová funkce nebo oprava chyby nezmění neúmyslně předchozí pracovní kód.
Některé nedávné vývojové metodologie, jako je Extreme Programming, zdůrazňují, že testy jsou k dispozici před kódováním. Metodiky vývoje zdůrazňují, že regresní testování by mělo být prováděno vícekrát každý den, aby byla zajištěna správnost softwaru při jeho vývoji. Pokud softwarový tým musí dodržovat tuto metodiku pro jakýkoli významný software, je povinné používat automatické testování softwaru.
Software pro automatizační testování musí být napájen požadovanými vstupy a výstupy. Jedním ze způsobů, jak toho dosáhnout, je uložit do softwaru podmínky manuálního testu. Jiným způsobem je napsat kód pro generování různých podmínek v rámci přijatelných limitů testovaného softwaru. Základem automatizovaného testování softwaru je tedy rozhodně lidské úsilí. Automatizovaný testovací software nemůže jít nad rámec tohoto sám.
Automatizované testování softwaru má značné náklady, pokud jde o software, který má být získán, jakož i jeho používání. Takže, zda automatizovat a jakou část testování automatizovat, jsou klíčová rozhodnutí. Automatizované testování není vhodné pro funkce a prostředí, u nichž se očekává výrazná změna. Ve většině aplikací je vhodná kombinace ručního a automatizovaného testování.