Automatizované testování
Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od
verze recenzované 30. srpna 2018; kontroly vyžadují
6 úprav .
Automatizované testování softwaru je součástí procesu testování ve fázi kontroly kvality procesu vývoje softwaru . Ke spouštění testů a kontrole výsledků běhu používá softwarové nástroje, což pomáhá zkrátit dobu testování a zjednodušit proces testování.
Historie
První pokusy o "automatizaci" se objevily v éře operačních systémů DOS a CP/M . Pak to spočívalo ve vydávání příkazů do aplikace přes příkazový řádek a analýze výsledků. O něco později byla přidána vzdálená volání přes API pro práci přes síť . První Automatizované testování je zmíněno v knize Fredericka Brookse The Mythical Man-Month , která hovoří o vyhlídkách na používání jednotkového testování . Skutečná automatizace testů se však začala rozvíjet až v 80. letech 20. století.
Přístupy
Existují dva hlavní přístupy k automatizaci testování: testování na úrovni kódu a testování uživatelského rozhraní (konkrétně testování GUI). První typ zahrnuje zejména testování jednotek . K druhému - napodobování uživatelských akcí - funkční testování (pomocí speciálních testovacích rámců .)
automatizace GUI
Nejběžnější formou automatizace je testování aplikací prostřednictvím grafického uživatelského rozhraní ( GUI ) . Popularita tohoto typu testování je dána dvěma faktory: za prvé je aplikace testována stejným způsobem, jakým ji bude člověk používat, a za druhé je možné aplikaci testovat bez přístupu ke zdrojovému kódu.
Automatizace GUI se vyvinula ve 4 generacích nástrojů a technik:
- Nástroje pro snímání/ přehrávání zaznamenávají akce testeru během ručního testování . Umožňují provádět testy bez přímého lidského zásahu po dlouhou dobu, výrazně zvyšují produktivitu a eliminují „hloupé“ opakování opakujících se akcí při manuálním testování. Zároveň každá malá změna testovaného softwaru vyžaduje přepsání manuálních testů. Proto tato první generace nástrojů není efektivní ani škálovatelná.
- Skriptování , forma programování v jazycích speciálně navržených pro automatizaci testování softwaru, zmírňuje mnoho problémů nástrojů pro nahrávání a přehrávání. Vývoj však provádějí programátoři na vysoké úrovni, kteří pracují odděleně od testerů, kteří přímo provádějí testy. Skripty jsou navíc nejvhodnější pro testování GUI a nelze je do systému vkládat, balit ani žádným způsobem kombinovat. A konečně, změny v testovaném softwaru vyžadují složité změny v odpovídajících skriptech a udržování stále rostoucí knihovny testovacích skriptů se nakonec stává nepřekonatelným úkolem.
- Testování řízené daty je metodika, která se používá v automatizaci testování. Zvláštností je, že testovací skripty se spouštějí a ověřují na základě dat, která jsou uložena v centrálním datovém skladu nebo databázi. Roli databáze mohou plnit prostředky ODBC, soubory csv nebo xls atd. Testování řízené daty je kombinací několika vzájemně se ovlivňujících testovacích skriptů a jejich datových zdrojů do rámce používaného v metodice. V tomto rámci se proměnné používají jak pro vstupní hodnoty, tak pro výstupní testovací hodnoty: v testovacím skriptu je obvykle kódována navigace v aplikaci, čtení zdrojů dat a testování protokolování. Logika, která se má ve skriptu provést, tedy také závisí na datech.
- Automatizace testování na základě klíčových slov zahrnuje rozdělení procesu vytváření případu na 2 fáze: fázi plánování a fázi implementace . Konečným testem v tomto případě není kód programu, ale popis sekvence akcí s jejich parametry (například „vytvořit uživatele v databázi s přihlašovacím jménem XXX a heslem YYY“). V tomto případě je framework zodpovědný za přímou implementaci klíčových slov (akcí) a stačí, aby designér testu měl představu o celé sadě akcí implementovaných v frameworku. To umožňuje vytvářet testy pro lidi, kteří nemají znalosti programování.
Problémy
Jedním z hlavních problémů automatizovaného testování je jeho složitost: přestože umožňuje eliminovat některé rutinní operace a urychlit provádění testů, mohou být vynaloženy velké prostředky na aktualizaci samotných testů. To platí pro oba typy automatizace. Při refactoringu je často nutné aktualizovat i testy jednotek a změna testovacího kódu může trvat stejně dlouho jako změna hlavního kódu. Na druhou stranu při změně rozhraní aplikace je nutné přepsat všechny testy, které jsou s aktualizovanými okny spojeny, což při velkém počtu testů může zabrat nemalé prostředky.
Aplikace
Existuje mnoho aplikací pro automatizaci testování. Nejoblíbenější z nich podle výsledků roku 2007: [1]
Použití těchto nástrojů pomáhá testerům automatizovat následující úkoly:
- instalace produktu
- vytváření testovacích dat
- interakce GUI
- definice problému
Automatizované testy však nemohou zcela nahradit manuální testování. Automatizace všech testů je velmi nákladný proces, a proto je automatické testování pouze doplňkem ručního testování. Nejlepším případem použití pro automatizované testy je regresní testování .
Toolkit
Viz také
Poznámky
- ↑ SoftJournal 'září 2007/ SoftJournal 'září 2007 (odkaz není dostupný) . Získáno 12. dubna 2010. Archivováno z originálu 23. března 2010. (neurčitý)
Odkazy