Proces funkčního testování
- Automatizované testování je náročné na přípravu a údržbu
- Automatizace má smysl tam, kde již nemění GUI rozraní
- Automatizace se často využívá při regresních testech, poslední iterace SIT
- Před nasazením automatizace je třeba analyzovat účelnost

Funkční testování
- Má za cil ověřit 3 základní aspekty: správnou funkčnost, kvalitu, splnění BU požadavků
- Ověření funkcionality a vlastností aplikace: ověření z pohledu byznys work float a z pohledu ověření výstupů z aplikace na základě vstupních podmínek
- Ověření kvality aplikace: ověřujeme splnění podmínek na aplikaci z pohledu byznys uživatelů tak, aby po nasazení vykazovala minimum chyb a výpadků
- Ne všechny nalezené chyby jsou chyby aplikace, můžou být způsobeny nehlášeným restartem serveru, výpadkem sítě, chybou v provádění testu, chybou v testovacích datech
- Provádí se v odděleném prostředí od produkčního a provádí se ve více iteracích
- Regresní testy jsou většinou směřovány do poslední iterace
Funkcionalita a vlastnosti
- Je nutná definice rozsahu testů a způsobu ověření jejich správné funkčnosti
- Není možné testovat vše
Manuální testování
Může být ovlivněno: časové plánování a neplnění termínů u aktivit předchozího testování (dopad na komplexnost testů); regresní tety navyšují časovou náročnost…

- Pro urychlení exekuce a snížení nákladů se upřednostňují automatizované testy
- Automatizace umožňuje opakovatelnost chyb a spouštění jednoho scénáře na více platformách
- Automatizace umožňuje zvýšit počet testovaných případů => zvýšení kvality APP
- Automatizované testy lze spouštět v noci => prostor pro dotestování chyb
Automatizované testování
- Eliminuje chybu testera
- Skript je tvořen zaznamenáním činnosti uživatele v aplikaci pomocí testovacího nástroje
- Změna GUI je fatální změnou a skript musí být znovu vytvořen a odladěn
- Při změně technologie je nutné zkontrolovat podporu testovacího nástroje
- Nutno počítat s vyšší časovou náročností přípravy
- Náročnost přípravy je kompenzována rychlostí tesů
- Tester musí mít vyšší odbornost
Přínosy
- Provádění regresního testování
- Možnost otestovat větší množinu funkčností
- Možnost kontroly většího množství dat
- Automatický zápis protokolu
Analýza vhodnosti nasazení automatizace
- Je třeba vycházet z provozovaného portfolia aplikací a jeho tributů: technologie, frekvence a typ změn nad jednotlivými aplikacemi
- Automatizace vyžaduje podrobný popis testu
- Analýzou se získá podmnožina aplikací, která připadá v úvahu jako automatizovatelná
- Nad vybranou množinou se provede analýza vhodnosti automatizace
- Volba vhodného nástroje (cena, kompatibilita, komfort tvorby skriptu)
- Provedení technologického testu na dostatečném vzorku objektů z vybraných aplikací
- Nasazování probíhá od nejvhodnější a po získání zkušeností se přibírají další aplikace
- Je dobré ověřit vhodnost nově generovaných objektů k automatizovaném testování, jinak hrozí nutnost přehrání skriptů s každým nový buildem
- Je třeba zahrnout automatizaci do metodiky
- Je třeba mít zpracovaný byznys case, aby byly jasné přínosy
Opakování testů
- Více platforem
- Více lokálních nastavení
- Více verzí
- Více datových sad
- Více iterací v releasu
- Při chování uživatele závislém na jeho roli
- Realizace regresních testů
Časově náročné operace
- Opakování údajů
- Kontrola pravopisu
- Kontrola mrtvých odkazů
- Zachycení výsledků
- Ověření výpočtu
Bod ověření
- Je možné kontrolovat textová pole, obrázek, nebo celou tabulku či binární srovnání
- Možností kontroly je i přímí přístup dotazem do databáze a porovnání výsledků s hodnotami z databáze
- Je nutná specifikace očekávané hodnoty
Akce a parametrizace
- Skripty jsou často děleny do menších částí – akcí
- Akce se podobají funkcím ve standartním programování
- Pokud chceme skript sestavit z akcí je nutné, aby byla mezi koncem jedné a začátkem druhé akce návaznost
- Parametry jsou lokální pro konkrétní akci a globální pro celý test
- Je nedílnou součástí tvorby skriptu
- Parametrizují se jen hodnoty, které na ni mají požadavek, nebo pokud ji vyžaduje samotný běh skriptu
- Pokud je vstupní hodnotou parametr, tak se s každou iterací mění a je vhodné jej parametrizovat
Byznys proces testing
- Je odvislý od akcí
- Jednotlivé byznys procesy jsou rozděleny do akcí zvaných komponenta
- Komponenty jsou analytikem sestaveny do testů
- Testy spouští a vyhodnocuje tester
- Je vhodné pro skládání obrazovek dílčích funkčností a jejich ověření před dokončením funkčního modulu pro black box testy
- Komponenta je uzavřenou entitou, která neobsahuje žádné akce ani volání jiné komponenty
- Parametry komponenty jsou lokální, nelze užít globální proměnné
- Jednotlivé komponenty neobsahují ani vlastní repozitory objektů, existuje jedna sdílená pro všechny komponenty
- Všechny komponenty jsou externí a uložené v projektu Quality Center
- Jméno komponenty je též uloženo v QC a z QTP není měnitelné
- Datová tabulka komponenty má pouze jeden lokální list
- Pro vstupy a výstupy se užívá jen jeden řádek datové tabulky, data dalších iterací jsou definována v QC
- Vždy je využívána pouze jedna datová tabulka uložená spolu s komponentou
- Komponenta má některé vlastní nastavení a možnosti
Stálé problémy automatizace
- Přehnaná očekávání zákazníka
- Výsledek ještě snížen nevhodným výběrem nástroje
- Nevhodný výběr test cases
- Údržba skriptů i malá změna vede k jeho nefunkčnosti
- Problém s QA inženýry, málo jich umí i programovat => vyšší nákladnost