Posted in: Vývoj počítačů

Funkční automatické testování

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
Back to Top