Task: Vytváření testovacích skriptů
Konkretizace testovacích případů do podoby jednotlivých kroků, které v postupném sledu za sebou specifikují jednotlivé akce testera a jim odpovídající očekávané reakce systému.
Disciplines: Implementace testů
Relationships
RolesPrimary Performer: Additional Performers:
Outputs
    Main Description

    Při návrhu testovacích případů bylo určeno, které testovací případy budou konkretizovány do větší míry detailu a které zůstanou v menší míře detailu pouze jako návody na to, co by mělo být otestováno. K testovacím případům s požadavkem na větší míru detailu jsou následně vytvářeny testovací skripty, které specifikují jednotlivé kroky při provádění testovacích případů.

    Vytváření testovacích skriptů spočívá v tom, že se v postupném sledu za sebou specifikují jednotlivé akce testera a jim odpovídající očekávané reakce systému či komponenty. Akce testera často spočívají v zadávání vstupních dat do systému. Vstupní data je možné zapsat přímo do jednotlivých kroků, nebo se z testovacího kroku odkázat na připravenou datovou sadu. Obdobně i data na výstupu systému mohou být buď přímou součástí kroku, nebo v podobě odkazu na datovou sadu.

    Při vytváření testovacích skriptů je třeba se také zamyslet nad možností automatizace skriptů. Při rozhodování, zda skripty automatizovat, či vytvářet manuální skripty, je potřeba zvážit výhody a nevýhody.

    Postoje různých expertů v oboru testování obecně k automatizaci testů se liší. Daniel Hoffman a spol., citován v [Singh, 2012, s. 494], uvádí:

    “The assurance of software reliability partially depends on testing. However, it is interesting to note that testing itself also needs to be reliable. Automating the testing process is a sound engineering approach, which can make the testing efficient, cost effective and reliable.”

     

    V překladu:

    „Zajištění spolehlivosti softwaru částečně závisí na testování. Je však zajímavé si také povšimnout, že je třeba, aby testování samotné bylo spolehlivé. Automatizace procesu testování je rozumný inženýrský přístup, díky kterému je testování efektivní, nákladově úsporné a spolehlivé.“

    Oproti tomu Michael Bolton, citován v [Soundararajan, 2008], se k automatizaci testů staví následovně:

    "People write code to find bugs on another code. They write code that is buggy which claims to find bugs on another code."

    "Writing test scripts is another development project. Most of them don't realize that they are running two development projects in parallel and hence their main development project suffers."

    V překladu:

    „Lidé píší kód, aby nalezli chyby v jiném kódu. Píší kód plný chyb a tvrdí, že nalézá chyby v jiném kódu.“

    „Psaní testovacích skriptů je další vývojový projekt. Většina z těch lidí si neuvědomuje, že vedou dva paralelní vývojové projekty, a proto jejich hlavní vývojový projekt trpí.“

    S oběma těmito tvrzeními lze za jistých okolností souhlasit, ale i nesouhlasit.

    Automatizace testování je efektivní a nákladově úsporná za předpokladu, že úsilí, náklady a čas vynaložené na vytvoření testovacích skriptů je menší než na manuální vytvoření a následné provádění testovacích skriptů. Vyplatí se tedy zejména u testů, které jsou dlouhodobě opakovány. U testů, které proběhnou pouze jednou, se investice úsilí, času a nákladů do automatizace skriptů příliš nevyplatí.

    Spolehlivost automatizovaných skriptů je vyšší než u manuálních skriptů za předpokladu, že jsou skripty napsány správně. Nástroj, který spouští skripty, je na rozdíl od člověka neúnavný a dává stále stejné výsledky. Nevýhodou však je, že na rozdíl od člověka, který při provádění testů přemýšlí a experimentuje, nástroj pracuje pořád stejně, což může vést k tzv. paradoxu pesticidů. Software si vypěstuje odolnost proti navrženým testům podobně jako škůdci proti pesticidům a testy přestanou nacházet nové defekty. To ovšem neznamená, že by nové defekty nevznikaly. Mohou se objevit v těch částech, které nejsou pokryty testy. Paradoxu pesticidů je možné zabránit občasným obměňováním testů.

    Je pravda, že kritickým faktorem úspěchu automatizovaných testů, jsou správně implementované skripty. Nástroje pro automatizaci testů obvykle mají funkci nahrávání a spouštění testovacích skriptů. Spouštění nahraných testů pak simuluje uživatele a může zahrnovat verifikační body, automatické logování průběhu testů a zaznamenávání defektů. [Faustová, 2009, s. 39] V případě skriptů nahraných v nástroji pro automatizaci příliš nehrozí, že by skripty byly nekorektní. Problém může nastat v případě, kdy testerům pouhé nahrání nestačí a doplňují si automaticky vygenerované skripty o další funkce. Zde hrozí, že při vlastním kódování skriptů zanesou do skriptů defekty.

    Nutno poznamenat, že volba mezi manuálními a automatizovanými testy se vztahuje na funkcionální typ testů. V případě, že má být daný systém či jeho komponenta podrobena výkonnostním nebo bezpečnostním testům, automatizace skriptů ve specializovaných nástrojích je nevyhnutelná.

    Nástroj IBM Rational Quality Manager umožňuje vytvářet manuální i automatizované skripty. U automatizovaných skriptů nabízí možnost přímého napojení skriptů na jiné nástroje, ve kterých byly skripty vytvořeny, například napojení na IBM Rational Functional Tester, IBM Rational Performance Tester, IBM Rational Service Tester for SOA Quality, IBM Rational Robot a IBM Rational AppScan Tester Edition. [IBM, 2012]

    More Information