Klíčové vlastnosti
- Platformní nezávislost – GUI Master je na platformě nezávislé řešení. Podporuje webové aplikace, reportovací systémy, B2B, ERP, SAP, Infor, Navision, Oracle, Siebel, atd., a rovněž terminálové aplikace (např. AS400).
- Jednoduchost – jedno řešení pro všechny aplikace. Nejsou zapotřebí žádné dodatečné náklady na software nebo aplikační pluginy.
- Flexibilita – flexibilita GUI nástroje vysoce převyšuje ostatní “krabicové nástroje”. Funkcionalita může být rozšířena podle potřeby projektu. Testovací scénáře jsou přenosné mezi různými PC stejně, jako mezi operačními systémy Windows.
- Rychlá konfigurace testovacích scénářů – Vytváření scénář v nástroji GUI Master je velmi jednoduché a efektivní. Uživatel nepíše “testovací skript”, spíše staví testovací scénáře z prvků pomocí myši. Každá část testovacího scénáře mohou být znovu použita v jiném scénáři s jinými parametry.
- Programovací dovednosti nejsou nutné – nástroj nevyžaduje programovací / skriptovací dovednosti. Testovací scénáře jsou stavěny/spravovány v grafickém prostředí s podporou ladění scénářů.
- Daty řízené testování – v GUI Master jsou testovací data oddělena od scénářů a jsou uložena v souborech (xlsx/txt) nebo SQL databázi. Různé testovací scénáře jsou tak vytvářeny i výměnou dat v souborech/databázi.
- Automatické vyhodnocení výsledků testů – scénáře jsou automaticky vyhodnocovány podle zadaných pokynů. Dosažené výsledky mohou být porovnány s údaji chybové zprávy nebo reportu, nebo s hodnotami v souboru či databázové tabulce.
- Podrobný report – provádění testovacího scénáře (včetně screenshoty) včetně konečného výsledku je reportováno. Podporována je řada formátů včetně možnosti zaznamenání video sekvence z testu.
- Snadná integrace se systémy řízení testů – nástroj je plně integrován s většinou ALM aplikací např. SpiraTest, HP QC, nebo IBM Rational.
- Testovácí scénáře jsou rezistentní vůči změnám v testovaných aplikacích – GUI Master podporuje automatizované testování i v dynamickém prostředí, kde se testované aplikace často mění.
Princip fungování nástroje GUI Master
Při spuštění testovacího scénáře nad testovanou aplikací používá GUI Master rozpoznávání obrazu. Typický testovací scénář testování určuje transakci, která má být provedena, v ní použité parametry a vstupy parametrů. GUI Master na testované obrazovce hledá objekty (tlačítka, přepínače, combo boxy, seznamy, atd.) a postupně provádí požadované
akce (tj. zadání hodnot, výběr položky z menu či seznamu atd.). Přesná poloha objektů je irelevantní. Objekt lze na testované obrazovce nalézt kdekoli, včetně momentálně nezobrazených místech. Bitmapový vzorek může být rovněž dynamicky přizpůsoben novým úpravám (např. barvy, rozlišení obrazovky, nové písmo) testované aplikace. To činí testovací scénáře stabilní a jsou tak minimalizovány náklady na jejich správu i při častých úpravách v testované aplikaci.
GUI Master Editor
Nutným předpokladem pro automatizované GUI testování je rychlá a uživatelsky příjemná příprava testů. Pro tyto účely byla vyvinuta komponenta GUI Master Editor, která umožňuje rychlé a komfortní nastavení “klikacích“ maker testovacích scénářů. Libovolný blok připravených maker (např. přihlášení do testované aplikace) je možné uložit jako samostatný příkaz, který lze následně využít v dalších testovacích scénářích. V každé fázi přípravy lze samostatná či bloková makra spouštět a testovat tak jejich správnou funkčnost. Pomocí komponenty „Smart Action List“ je možné naprostou většinu maker nastavit stisknutím jediného tlačítka. Na základě vybraných vstupních parametrů (výběr se provádí pomocí myši) komponenta „Smart Action List“ nabídne seznam pouze těch maker, která dle vstupních parametrů přicházejí v úvahu a po výběru makra provede sama nastavení vstupních parametrů makra. Testovací scénář je v editoru zobrazován v grafické podobě pomocí stromové struktury.
GUI Master Launcher
Významným faktorem při testování je i otázka organizace testů, jejich vyhodnocení a průkazné reportování výsledků. Při reálném testování, kdy může být definováno až několik desítek testovacích scénářů, je tedy důležité mít mechanismy, které dovedou uživateli efektivně pomáhat. GUI Master Launcher je komponenta, která je určena pro provádění následujících operací:
- Vytvoření struktury testovacích scénářů a začlenění maker do těchto scénářů.
- Přípravu testovacích dat.
- Přípravu verifikací.
- Spouštění a vyhodnocení testů.
- Generování reportů o testování.
GUI Master Batch Runner
Přínos systému GUI Master se projeví především při opakovaném GUI testování. Při změnách lze automaticky provádět komplexní testování, které nespočívá pouze v otestování těch částí systému,které bezprostředně souvisejí s provedenými změnami (regresní testování), nýbrž otestováním systému jako celku a minimalizovat tak riziko případných kolaterálních efektů. V reálných případech se dá předpokládat spuštění (a vyhodnocení) řádově desítek až stovek testů. Pomocí komponenty GUI Master Batch Runner lze organizovat jednotlivé testy do dávek a tyto dávky automaticky spouštět. Při běhu dávky každý test generuje vlastní report, po doběhnutí dávky je generován navíc sumarizační report.
Příprava testovacích dat
Data, která GUI Master využívá v rámci testovacích scénářů lze uložit i do externích datových zdrojů – textových souborů, souboru aplikace MS Excel nebo databázových tabulek. V těchto datových zdrojích lze také připravit variantní sady testovacích dat na které se GUI Master připojí pomocí ovladače ODBC. Jako zdroj dat je možné využít i jiný systém. V takovém případě GUI Master vyvolá příslušnou transakci ze zdrojového systému, data načte a následně použije v testovacím scénáři.
Sběr dat z formulářů a verifikace výsledků
Pokud jsou data z obrazovkových formulářů ukládána do tabulek či souborů, lze provést verifikaci výsledků pomocí SQL příkazů, které systém QAceGen generuje a vyhodnocuje automaticky. V některých případech lze výsledky verifikovat pouze proti výstupním obrazovkám. Jedná se například o testování „front-end“ aplikací komplexních systémů, kde vnitřní struktura a ukládání dat není známa. V takovém případě umí GUI Master stáhnout požadovaná dat přímo z obrazovek, a to buď přímo (tzn. pomocí výběru dané oblasti), ev. pomocí zabudovaného systému OCR, které pak ukládá do textových souborů, které se pak dále používají pro verifikaci výsledků. Vyhodnocení výsledků lze pak provést spuštěním příslušných verifikátorů, které lze napsat v jakémkoli vyšším programovacím jazyce. GUI Master jako výchozí platformu používá jazyk Java. Stisknutím tlačítka se vygeneruje verifikační template, který lze pak dále dopracovat v některém dostupném vývojovém prostředí (NetBeans, Eclipse,…). Vzhledem k tomu, že na daném projektu se při verifikaci výsledků mohou v řadě případů využívat stejné postupy,je možné vytvářet knihovny kódů v jazyce Java,které přípravu verifikačních metod urychlují, případně lze takové připravené knihovny implementovat do systému GUI Master hned na začátku projektu.
Testování vstupních filtrů
V GUI aplikacích se velmi často vyskytuje technika kontroly vstupních dat na úrovni vstupních polí. Cílem je povolit uživateli vstup pouze požadovaných znaků (např. pouze čísla,ev. alfanumerické hodnoty,atd.). Při testování je pak nutno ověřit, že vstupní filtr pracuje správně, což v praxi znamená provést vstup i desítek znaků. Takových polí vstupních filtrů se ovšem ve formuláři může vyskytnout více, takže ruční testování vstupních filtrů se stává jak časově, tak i psychicky poměrně náročnou činností. GUI Master používá pro testování filtrů předdefinované makro, jehož vstupními parametry je seznam testovaných hodnot (tj. „zakázaných“ znaků, eventuálně formátů) a definice chybového stavu, kterým testovaná aplikace reaguje na vstup nepovoleného znaku/formátu. Seznam zakázaných znaků lze nadefinovat pomocí konstant řetězců, které si GUI Master sám „rozparsuje“ do seznamu vstupních parametrů. GUI Master při testování vkládá do příslušného pole všechny položky ze seznamu a očekává chybovou reakci aplikaci. Celý test je samozřejmě zdokumentován. Tímto způsobem lze automatizovat desítky/stovky testů vstupních hodnot a podle potřeby je kdykoliv opakovat.
Reportování výsledků
Nedílnou součástí testování je i reportování testů, které slouží jako o doklad o provedených testech. Systém GUI Master při provádění testů vytváří podrobný report pro každý testovací scénář automaticky. V reportu je zaznamenán nejen proces testování a výsledky, nýbrž odkazy na uložené soubory kopií obrazovek, tak aby bylo zřejmé, jak byly naplněny vstupní obrazovky daty, případně jak vypadaly výstupní obrazovky, ze kterých byla stažena data pro verifikaci výsledků.
Příprava GUI testovacích scénářů
Každá testovaná GUI aplikace ve své podstatě představuje množinu obrazovek,které jsou plněny vstupními daty podle daných business pravidel. Tato pravidla určují tedy i pořadí obrazovek včetně ošetřeních chybových stavů. Například založeni nového klienta do systému “XYZ” znamená naplnit vstupními daty několik formulářů a poté odeslat tyto naplněné formuláře stisknutím příslušného tlačítka dále ke zpracování. Takže dle předepsané logiky může může dojít k následujícímu větvení, a tedy možným testovacím scénářům. Testování pak spočívá v tom, že si připravíme pro každý testovací scénář takovou sadu dat, která musí projít příslušnou sekvencí obrazovek. Tzn., pokud by následující obrazovka byla jiná než očekávaná, systém ukončí test tohoto scénáře a chybu zaznamená do reportu. Samozřejmě součástí testů je i negativní testování, které spočívá v tom, jestli testovaná aplikace dovede reagovat na chyby tak, jak předepisuje daná business logika.
Efektivní GUI testování
Systém GUI Master představuje platformu pro efektivní testování GUI aplikací. Pomoci aplikace GUI Master lze rychle a uživatelsky příjemně připravovat makra pro testování GUI aplikací. Takto připravená makra lze pak jednoduše sestavit do přehledné struktury testovacích scénářů a jednoduchým způsobem pak zajistit spouštění a vyhodnocení testů, včetně důkladného zdokumentování celého procesu testování. Připravené testy lze kdykoliv opakovaně spouštět v plném rozsahu a zajistit tak komplexní provedení testů i při dodatečných změnách v projektu a minimalizovat tak rizika kolaterálních efektů při regresním testování.