Masarykova univerzita Fakulta informatiky
Vyhodnocení použitelnosti GUI testovacích nástrojů pro automatické testování Bakalářská práce
Jiří Šamánek
Brno, podzim 2009
Prohlášení Prohlašuji, že tato bakalářská práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj.
Jiří Šamánek
Poděkování Na tomto místě bych rád poděkoval vedoucímu práce panu docentu Matyášovi a technickému konzultantovi panu Neugebauerovi za jejich rady a poznatky při vypracovávání práce.
Vedoucí práce: doc. RNDr. Václav Matyáš, M.Sc., Ph.D.
2
Shrnutí Cílem této bakalářské práce je vyhodnotit schopnosti několika testovacích nástrojů, které automaticky testují grafické rozhraní aplikací. Na trhu je mnoho dostupných nástrojů, ale ne každý splňuje všechny požadavky (např. podpora webových prohlížečů, rámců, skriptů či platforem). Práce zahrnuje analýzu testovacího prostředí, zhodnocení dostupných testovacích nástrojů a jejich použitelnosti pro YSoft SafeQ® GUI.
3
Klíčová slova Automatizace testu, skript, regresní test, testovací scénář, test-driven development
4
Obsah Prohlášení .......................................................................................................................................... 2 Shrnutí ............................................................................................................................................... 2 Klíčová slova ...................................................................................................................................... 4 Obsah ................................................................................................................................................. 5 1. Úvod ............................................................................................................................................... 6 2. Postup ............................................................................................................................................ 8 2.1 Popis produktového portfolia SafeQ ........................................................................................... 9 2.2 Popis technologií ..................................................................................................................... 12 3. Testování aplikací ........................................................................................................................ 13 3.1 HP QuickTest Professional ...................................................................................................... 13 3.2 AppPerfect............................................................................................................................... 17 3.3 Selenium.................................................................................................................................. 20 3.4 Webtest.................................................................................................................................... 24 3.5 HttpWatch + Watir................................................................................................................... 28 3.5.1 HttpWatch ........................................................................................................................ 28 3.5.2 Watir ................................................................................................................................ 30 4. Závěr ............................................................................................................................................ 33
5
1. Úvod Výpočetní technika se v dnešní době stále více uplatňuje v oborech lidské činnosti, ať už se jedná o lékařství, automobilový průmysl, letectví nebo zemědělství. Dnes již téměř neexistuje obor, který by nevyužíval počítačů. Jejich výstupem nemusí být jen řízení raketoplánu nebo vysoké pece, ale může jím být také klasický tisk. Tisknout se mohou jak složité grafické produkty (například meteorologické mapy), tak i jednoduché účtenky v obchodě nebo recepty na medikamenty u lékaře. Má-li být výstupem tisk, musí být počítač připojen k zařízení, které je schopno tuto činnost vykonat. Pro některé aplikace je vhodné mít tiskárnu umístěnou přímo na dosah, v jiných případech, jedná-li se o složitější a specializovanější tisková zařízení (např. plottery, fotografické tiskárny či multifunkční zařízení), je vhodné kumulovat připojení pro více uživatelů. Takovéto zařízení nemá každý v blízkém dosahu, ale tato nevýhoda je vyvážena možností využívat kvalitnější a dražší zařízení místo několika levnějších. Každý přitom může přistupovat k zařízení buď přímo, nebo přes tzv. tiskový server. Při přímém přístupu více procesů mohou nastat situace, kdy jeden proces s krátkým souborem může čekat na ukončení tisku jiného rozsáhlejšího souboru. Zařízení není při tom efektivně využito a může docházet ke zbytečným prodlevám a kombinacím výstupů od různých uživatelů. Tuto nevýhodu odstraňují právě tiskové servery, které při správném nastavení zajišťují optimální využitelnost tiskového zařízení. Mohou být realizovány hardwarově jako samostatná jednotka nebo programově na straně serveru. Mohou určovat prioritu tiskových úloh a také sbírat statistické údaje o jednotlivých uživatelích. Tiskové servery, jako všechny aplikace před nasazením do provozu, je nutné odladit a otestovat. V tomto případě nejen samozřejmě z pohledu funkčnosti, ale i zatížitelnosti. Techniky pro testování tiskových serverů jsou v zásadě dvě. První je manuální testování tzn., že pracovník ručně zadává do počítače data a tak zkouší určité části programu. Druhou možností je automatické testování, manuální testování je nahrazeno programem, který je přesnější a rychlejší. Těchto nástrojů se s postupem času na trhu objevuje stále větší množství. V současné době je jich více než šest set. Jednak jsou to nástroje komerční a jednak volně šiřitelné. Velkou část z těchto volně šiřitelných programů jsou tzv. open-source, tedy programy, ke kterým jsou zveřejněny zdrojové kódy. Programátor si tak může jednotlivé části programu přizpůsobit pro svou potřebu. Není nutné jednat s komerční firmou o úpravě či doplnění jejich produktu. I přes velký počet programů na trhu všechny nesplňují kritéria, která jsou na tento produkt kladena. Je třeba stanovit jaký nástroj a od jaké firmy. Výběr vhodného testovacího nástroje, který nejlépe otestuje náš objekt, není jednoduchý. Ne všechny aplikace jsou použitelné pod požadovaným operačním systémem a umí testovat právě ty funkce objektu, které potřebujeme otestovat. Samozřejmě je možné použít testovacích nástrojů několik. Nás teď budou zajímat aplikace na testování grafického rozhraní.
6
Cílem této bakalářské práce je zhodnotit použitelnost a vhodnost několika (viz dále) aplikací pro firmu Y Soft s.r.o. [1]. Ať už se jedná o komerční či open-source produkty, všechny fungují v zásadě na stejném principu: 1) aplikace zjistí informace o prostředí, ve kterém se test bude provádět (názvy oken, názvy tlačítek a různé jiné atributy); 2) vytvoření testu (ať už je to zaznamenání několika akcí uživatele či čistě manuálně napsaný kód); 3) možnost vytvoření skupiny testů; 4) u vytvořených testů je možnost měnit parametry testu, hodnoty proměnných a upravovat test podle svých potřeb; 5) samotný test; 6) vyhodnocení výsledků testu (chybovost, doba trvání).
Práce posuzuje schopnosti aplikací zvládat výše uvedené principy v automatizovaném testování a zjišťuje, která aplikace splňuje konkrétní kriteria (podpora platformy, webového rozhraní, skriptu, rámce aj.). Po seznámení se s metodikou testování (kapitola č. 2) se v kapitole č. 3 budeme zabývat následujícími aplikacemi: HP QuickTest Professional [2], AppPerfect [3], Selenium [4], WebTest [5], HttpWatch [6], Watir [7]. Závěr (kapitola č. 4) práce obsahuje vyhodnocení použitelnosti aplikací pro firmu Y Soft s.r.o.
7
2. Postup V této kapitole si stručně vysvětlíme způsob, jakým budu postupovat při hodnocení jednotlivých aplikací podle požadovaných kriterií. Nejdříve se podíváme na dostupnost aplikace. Zjistíme, zda je aplikace komerční či volně šiřitelná. Dále se podíváme na podporu operačních systémů. Dva budou od firmy Microsoft a to ve verzích Windows XP a Windows Vista a třetím operačním systémem bude Linux. Následně zjistíme s jakými webovými prohlížeči je aplikace kompatibilní. Pozornost budeme věnovat prohlížečům Internet Explorer 6 a 7, Mozilla Firefox 3 a Opera 9.6. V těchto prostředích pak zjistíme, jak si aplikace poradí se stránkami vytvořenými pomocí rámců (webové rozhraní tiskového serveru firmy Y Soft s.r.o. je tvořeno rámci). V neposlední řadě se podíváme na podporu konkrétních technologií. Zhodnotíme samozřejmě i uživatelské rozhraní aplikace, uživatelskou přítulnost, možnosti nastavení jednotlivých testů a také formu, kterou aplikace poskytne výsledky testů. Na závěr se zaměříme na to, jak se program bude chovat při chybových scénářích (neotevřený webový prohlížeč či chybějící prvek na stránce aj.) Nakonec zhodnotíme celkový dojem a použitelnost pro firmu Y Soft s.r.o.
8
2.1 Popis produktového portfolia SafeQ1 Portfolio produktové rodiny YSoft SafeQ® představuje komplexní, na platformě nebo výrobci nezávislé řešení, od počátku vyvíjené s cílem vyřešit nejpalčivější problémy moderních kancelářských tiskových prostředí.
Náklady a produktivita SafeQ umožňuje od okamžiku nasazení: • • •
Poskytuje centrální přehled o všech nákladech spojených s tiskem a kopírováním, včetně detailního rozúčtování mezi odděleními. Zaznamenává všechny náklady na tisky a umožní je prezentovat ve snadno čitelných reportech jako Excel, Web, Pdf nebo XML. Umožňuje rozdělení nákladů za tisk a kopírování na projekty. Projektové účtování pak poskytuje mechanizmus pro přímé fakturování nákladů zákazníkům projektu.
Prodej tiskových služeb SafeQ je ideální řešení pro instituce jakými jsou školy, knihovny, univerzity nebo kopírovací centra, jelikož obsahuje mnoho užitečných funkcí. • •
Integruje kreditní systém s virtuálními účty pro zpoplatnění tisků, kopií a skenů. Ukládá peníze pomocí systému virtuálních účtů a dává tak uživatelům plnou kontrolu. Pokud již existuje platební systém, SafeQ se na něj dokáže napojit, sjednotí jej s uživatelskou databází a zajisti transparentní využití tohoto systému pro tisk a kopírování.
Bezpečnost, důvěryhodnost a dostupnost Přemýšleli jste někdy, co by se stalo, kdyby ve Vaší společnosti nebylo možné vytisknout jedinou stránku? Se SafeQ se není potřeba takových situací bát, jelikož přináší řadu funkcí ke zvýšení dostupnosti a zabezpečení celého prostředí: • • • •
1
Zajišťuje 99.9% dostupnost celého řešení s využitím aplikačního clusteru v edici YSoft SafeQ Enterprise. Přináší detailnější kontrolu nad skenovanými dokumenty. S PKI rozšířením pro SafeQ Scan Management, obsahují všechny nově skenované dokumenty digitální podpis autora. Zabezpečuje přístup k jednotlivým funkcím MFD - včetně autentizace a autorizace - zajišťujíc tak důvěryhodnost tiskových dat. Poskytuje audit všech aktivit spojených s tiskem, kopírováním a skenováním.
převzato ze stránek firmy Y Soft [1]
9
Pohodlí a integrace Díky své flexibilitě a nezávislosti na výrobci SafeQ zákazníkům umožňuje připojit veškerá existující zařízení. Mimo to nabízí velké množství dalších výhod. • • •
Zjednodušuje autentizaci pomocí využití existující ID karet. Centralizuje správu pomocí 100% webového administrátorského rozhraní, umožňujíc tak vzdálenou správu odkudkoliv ze sítě. Přináší na platformě nezávislý serverový systém, fungující jak v prostředí Windows tak Linux, a plně transparentní platformu pro klienty, kteří mohou tisknout ze všech operačních systémů umožňujících přístup k počítačové síti.
Různé funkce pro různé zákazníky A jak to všechno funguje? Následující obrázek představuje kompletní schéma komunikace v systému SafeQ 3.1.5. V závislosti na vybrané architektuře nemusí být zapojeny některé komponenty.
Obrázek 2.1 Různé funkce pro různé zákazníky
10
K tiskovému serveru firmy Y Soft s.r.o. se přistupuje primárně přes webové rozhraní. Server umožňuje vytváření uživatelů, o kterých jsou vedeny různé statistiky. Je zde možné najít detailní logy, které vypovídají o tom, kdy která úloha začala, skončila a zda proběhla úspěšně a také zaznamenávají výskyt chyb. Jednoduché webové rozhraní se skládá ze dvou částí. V levé části se nachází svislá navigační lišta a pravou část tvoří hlavní okno.
Obrázek 2.2 Přihlašovací okno
11
2.2 Popis technologií Tiskový server firmy Y Soft s.r.o. používá následující technologie: a) Sun Microsystems © Java™ 2 Platform Standard Ed. 5.0 [8] •
V dnešní době velmi rozšířená technologie, která umožňuje například hraní online počítačových her, chatování či zobrazování obrázků v 3D
b) The Apache Software © Jakarta Tomcat 5.0 [9] •
Volně šiřitelná implementace technologií Java Servlet (konzistentní mechanismus pro rozšíření funkcionality webových serverů) a JavaServer Pages (zjednodušený způsob vytváření dynamického webového obsahu)
c) GNU GPL Ghostscript 8.54 [10] •
Interpreter pro jazyk PostScript (TM) a pro Adobe Portable Document Format (PDF)
•
Knihovna obsahující C procedury rozšiřující jazyk PostScript (TM) a PDF
d) RedTitan © EscapeE [11] • •
Interpretuje Hewlett-Packard's Printer Control Language (PCL) a Graphics Language (HPGL, používaný plottery) Interpretuje také soubory ve formátu TIFFs (Tag Image Format Files)
e) The Legion Of The Bouncy Castle © Crypto APIs [12] •
Java implementace kryptografických algoritmů
12
3. Testování aplikací 3.1 HP QuickTest Professional První aplikací, kterou budeme testovat, je QuickTest Professional (dále jen QTP) od firmy Hewlett Packard (dále HP). Jedná se o pokročilý nástroj automatického testování na vytváření jak funkcionálních, tak regresních testů. V dnešní době se nachází již ve své desáté verzi, kterou je možné si stáhnout a zdarma vyzkoušet po dobu 14 dní. Program QTP byl navržen pro platformu Microsoft Windows. Operační systém Linux není v současné době podporován. Přestože QTP (verze 9.2) může pracovat nejen pod 32bitovým, ale i pod 64bitovým operačním systémem. S 64bitovými aplikacemi si však neporadí. Pro správný chod aplikace (verze 10.0) je vyžadován jeden z následujících prohlížečů: Microsoft Internet Explorer 6.0 Service Pack 1 nebo Microsoft Internet Explorer 7.0. HP uvádí kompatibilitu i s prohlížeči Mozilla Firefox, Netscape či AOL. Prohlížeč Opera zde nebyl uveden, přesto si v něm aplikace vedla celkem uspokojivě, ale ne úplně korektně (občas aplikace nerozeznala některé komponenty na webové stránce). Výše zmiňovaný nedostatek se objevil i u prohlížeče Mozilla Firefox. Dále se budeme věnovat uživatelskému rozhraní aplikace. Výchozí vzhled aplikace se skládá tří segmentů.
Obrázek 3.1 Části aplikace 13
V horní části obrázku 3.1 jsou zobrazeny jednotlivé akce uživatele, které byly zaznamenány při vytváření testu (viz dále). Jsou dvě možnosti zobrazení těchto akcí. První možností je tzv. Keyword view. Je to pohled na jednotlivé kroky testu. Akce a funkce jsou zde uspořádané do přehledného stromu, který obsahuje sloupce popisující jméno funkce či akce, parametry a komentáře. Tento mód je jednodušší a přehlednější pro méně zkušené uživatele, kteří takto mohou vytvářet testy či měnit parametry testu bez potřeby znalosti kódu, který je poté generován automaticky. Druhou možností je tzv. Expert view. Jedná se o pohled na zdrojový kód testu zapsány pomocí VBScriptu. Pohled umožňuje nejen prohlížení, ale také editaci zdrojového kódu. Jednotlivé pohledy lze přepínat pomocí záložek na liště viditelné uprostřed obrázku. V levé dolní části obrázku 3.1 je umístěna Data table. V této tabulce, která je implementována jako sešit Microsoft Excel, se mohou nastavovat parametry testu. Je rozdělena na globální a lokální data a naskýtá se nám zde i možnost čtení dat z externího datového souboru. Vpravo dole na obrázku 3.1 se nachází Active Screen. Jedná se o aktuální pohled na jednotlivé kroky testu. Uživatel tak má možnost vidět, která etapa testu právě probíhá a jaké má efekty na webovou aplikaci. Teď se zaměříme na některé vlastnosti. Zajímavou vlastností je vytváření testu pomocí funkce Record and Playback. Uživatel klikne na tlačítko Record, QTP začne ukládat akce uživatele a zapisovat jednotlivé kroky pomocí VBScriptu. V okamžiku, kdy jsou potřebné akce zaznamenány, má uživatel možnost je upravovat ve dvou výše zmíněných módech. Pro přehrání testu slouží tlačítko Run. Po stisknutí tohoto tlačítka se program pokusí vykonat všechny akce požadované uživatelem. Další užitečnou vlastností je možnost přidání tzv. checkpoints. Jsou to záchytné body umožňující provádět pouze určitou část testu a sledovat tak například funkčnost pouze některého ze zkoumaných objektů. QTP má 10druhů těchto záchytných bodů umožňující zkoumat různé aspekty testovaných objektů. Pokud uživateli předdefinované body nestačí či nevyhovují, má možnost si definovat své vlastní. Aplikace podporuje přidávání plug-ins (rozšíření), která vyžadují některé aplikace ke svému chodu. Jsou jimi například ActiveX či Microsoft .NET. QTP již v sobě obsahuje limitovanou množinu těchto rozšíření a další si uživatel může dokoupit. Při výskytu neočekávané chyby v průběhu testu může být program nastaven na znovuspuštění testu či na pokračování zbývajících kroků. Některé závažnější chyby ovšem způsobují ukončení. QTP si dobře poradí jak s rozpoznávání rámců na stránkách, tak i s různými dalšími prvky, jako jsou například javascript aj. Forma výsledků je velmi přehledná, opět je to logicky uspořádaný strom. Je zde mimo jiné vidět kdy jednotlivé kroky testu začaly a skončily, zdali kroky proběhly úspěšně či případný popis chyby. Na výsledky testu lze aplikovat různé filtry (např. viditelnost výsledků jen jednoho objektu) a výsledky lze exportovat buď do formátu pdf či dokumentu Microsoft Word. K těmto výsledkům je také možno přidat uživatelem definované obrázky či screenshots pro lepší identifikaci chyby. Na obrázku 3.2 je vidět výsledek jednoduchého testu.
14
Obrázek 3.2 Výsledky testu
Používání aplikace QuickTest Professional je intuitivní a jednoduché, jak pro člověka, který pracuje s aplikací poprvé, tedy úplného začátečníka, tak i pro zkušenějšího uživatele. Mezi možné nevýhody může patřit úplná podpora pouze prohlížeče Internet Explorer či nekompatibilita s operačním systémem Linux. Následuje shrnutí mých poznatků o této aplikaci. Přestože je aplikace navrhnuta přímo pro platformu Windows (nepodporuje ani Unix ani Mac), tak si někdy úplně nerozumí například s vestavěným přehrávačem této platformy a to s přehrávačem Windows Media Player (WMP). Konkrétní chyba spočívá v tom, že WMP není možné spustit později než QTP. Jak už jednou QTP běží, tak spuštění WMP generuje chyby a operační systém vyžaduje ukončení této aplikace. Pokud je WMP spuštěn dříve než QTP, tak sice funguje správně, ale pokud je již jednou zavřen tento přehrávač ať už uživatelem či třeba přímo testem QTP, tak ho již není možné spustit. QTP si neporadí s prohlížením internetových stránek v panelech. Pokud se pokusíte spustit testovací scénář a v prohlížeči IE je povoleno prohlížení v panelech, tak si aplikace ATP sama vyžádá vypnutí této funkce. Dřívější verze QTP nepodporovaly jak čtení, tak výstup do XML formátu, do novějších verzí (10 a novější) již firma HP implementovala podporu práce s tímto formátem.
15
Dialogová okna internetového prohlížeče jsou dalším problémem pro tuto aplikaci. Pokud pracujeme na více monitorech a snažíme se testovat na sekundárním monitoru, tak při zobrazení dialogového okna aplikace hlásí chybu či opět čeká a nic nedělá. Což znamená, neumožnění nalogovat se na stránky vyžadující heslo či jiné potřebné zadání dat či potvrzení v dialogovém okně. Tyto činnosti lze provádět pouze na primárním monitoru. QTP používá pro zápis testovacích scénářů jazyk VBscript. Narozdíl od ostatních aplikací si neporadí s jinými programovacími jazyky. Dalším možným nedostatkem je nemožnost zavolat QTP skript z jiného QTP skriptu.
16
3.2 AppPerfect Nyní se podíváme na AppPerfect Test Studio. Je to balíček tří aplikací: AppPerfect Functional Tester for windows applications, AppPerfect Functional Tester for web applications a AppPerfect Load Tester. Tento balíček si můžeme stáhnout a zkoušet ho po dobu 15 dnů v jeho profesionální verzi zdarma. Po uplynutí zkušební doby, pokud si nekoupíme licenci, se aplikace sama převede na standardní verzi, která je zdarma pro nekomerční účely, ale některé funkce z profesionální verze budou nedostupné. Všechny tři aplikace jsou schopny fungovat jak pod 32bit, tak pod 64bit operačním systémem. Balíček je možné nainstalovat a spustit pod těmito operačními systémy: Windows 2000/XP/2003/Vista, Linux x86, Mac OS X. Následuje výčet funkcí jednotlivých aplikací. AppPerfect Load Tester (dále LT) LT je nástroj určený na testování webových aplikací a databází na zatížitelnost, rozšiřitelnost, spolehlivost a výdrž. LT může simulovat až několik stovek virtuálních uživatelů (v trial verzi je počet virtuálních uživatelů omezen na 10) a monitoruje systémové zdroje (viz obrázek 3.3) přístroje, na kterém je aplikace testována. Pro vytváření testu je zde opět použita jednoduchá technika „record and play”. Tímto způsobem lze jednoduše vytvořit testovací scénář a není při tom zapotřebí znalosti žádného skriptovacího jazyka. Zdrojový kód testu je psán v java skriptu a je možné jej editovat i v zabudovaném editoru, nejen pomocí grafického editoru aplikace.
Obrázek 3.3 Sledování systémových zdrojů
17
AppPerfect Functional Tester for windows applications (dále FTwin) a AppPerfect Functional Tester for web applications (dále FTweb) FTwin a FTweb jsou aplikace určené pro provádění funkcionálních a regresních testů windows aplikací (FTwin) a webových aplikací (FTweb). I u těchto dvou aplikací je možné vytvářet testy pomocí funkce „record and play” a tak není nutností ovládat java skript, ve kterém je zde také psán zdrojový kód testu. Aplikace zaznamenají uživatelovy akce a automaticky je znovu vykonávají a zjišťují, zda nedošlo k nějaké chybě, například při změně systémového nastavení. Pokud již dojde k nějaké chybě během přehrávání testu, aplikace nabízí možnost tuto chybu ignorovat. FTweb by měla spolehlivě běžet v těchto prohlížečích: Microsoft Internet Explorer 5.x a vyšší, Firefox 2 a vyšší, Safari 3 a vyšší, Opera 9 a vyšší. S bezproblémovým chodem jsem se setkal pouze u Internet Exploreru, v prohlížeči Firefox jsem měl problémy s nastavením proxy serveru a při nastavení použití prohlížeče Opera se test vůbec nezačal nahrávat. FTweb si poradí s rámci a podporuje mnoho rozšířených a hodně používaných technologií jakou jsou Flash, .NET, PHP, AJAX, ASP a další. Obě aplikace vyžívají tzv. funkci Object spy, která rozpoznává jednotlivé prvky testované aplikace a zjišťuje vlastnosti tohoto prvku. Nabízí se nám zde možnost široké parametrizovatelnosti testu, aby bylo možné testovat aplikace v co možná nejreálnějším prostředí. Forma výsledků všech tří aplikací je stejná. Jedná se o přehledný logicky uspořádaný strom (viz obrázek 3.4). Je zde možné vidět, které akce skončily (ne)úspěšně a jak dlouho která akce trvala. Při rozkliknutí jednotlivé akce se zobrazí detailnější popis akce (např. případný popis chyby). Výsledky je možné exportovat do html, pdf, csv, xls či XML formátů.
Obrázek 3.4 Výsledky testu 18
Ačkoliv prostředí a ovládání základních funkcí aplikací je velmi intuitivní, přesto některá nastavení vyžadují lepší znalost aplikace. K seznámení mohou posloužit příklady projektů, názorná videa a návody nacházející se na stránkách výrobce [3]. U spouštění testů nemusí být uživatel vůbec přítomen. Testy se dají naplánovat a poté v určitou dobu automaticky spustit. O dokončení testů může být pak uživatel informován prostřednictvím e-mailu nebo služby SMS. Další možností je spuštění testů na několika strojích a monitorování těchto testů z jednoho centrálního počítače. Výsledky testu pak mohou obsahovat jak celkový výsledek, tak výsledky jednotlivých strojů. Následují mé poznatky z testování aplikace popsané výše. Prvním faktorem stojícím za zmínku, je rychlost aplikace. Aplikace při nahrávání několika testů za sebou se buď velmi zpomalí (na odezvu se musí čekat desítky sekund). A to i při takových úkonech jako je nahrání jednoduchého kroku do testovacího scénáře, například napsání adresy internetové stránky či jen pouhé kliknutí na objekt na stránce. Problém se mi podařilo vyřešit vždy jen restartováním aplikace a až poté bylo možné nahrát v rozumné době další testy. Někdy se dokonce stalo, že se zpomalil či dokonce zatuhnul celý počítač. Celkově byla práce v Internet Exploreru rychlejší než práce v prohlížeči Firefox. U prohlížeče Firefox se objevil další problém a to v použití (i v případě nepoužití) proxy. Ani automatické, ani ruční nastavení proxy nepomohlo a stále se objevovala chyba. Další problém nastal při přijímání dočasných certifikátů na stránkách. Při nahrávání testů bylo většinou vše v pořádku, ale při přehrávání testů se aplikace buď zasekla či se vyskytla chyba „connection refused“. Stejně tak jako předchozí aplikace ani tato si neporadí s prohlížením stránek ve více panelech najednou. Druhý otevřený panel aplikace zcela ignorovala. Prohlížení ve více oknech bylo ovšem bezproblémové.
19
3.3 Selenium Selenium je balíčkem nástrojů na vytváření funkcionálních a systémových testů webových aplikací. Aplikace je postavena na JavaScript platformě a běží přímo v internetovém prohlížeči. Jelikož se jedná o tzv. open-source aplikaci, tak nejen všechny její vydané verze, ale také její zdrojové kódy jsou dostupné na internetových stránkách [4] ke stažení. Podporovanými operačními systémy jsou: Microsoft Windows, OS X, Linux a Solaris. Mezi podporované prohlížeče patří: Internet Explorer (ve verzích 6 a vyšších), Mozilla Firefox (ve verzích 2 a vyšších), Opera (verze 8 a vyšší), Konqueror a další. Selenium má tři různé přístupy k vytváření testů. Prvním a nejjednodušším z nich je přístup pomocí Selenium IDE. Toto integrované vývojové prostředí je implementováno jako rozšíření internetového prohlížeče Mozilla Firefox. Dá se zde použít opět jak funkce Record and Playback, která zaznamenává jednotlivé akce uživatele jako kroky, které se poté dají znovu přehrát, tak i ruční psaní testu. Testy lze psát a převádět mezi těmito podporovanými programovacími jazyky: html, Java, C#, PHP, Perl, Python a Ruby. Podíváme-li se na kroky testu zapsané ne zdrojovým kódem, ale pomocí tabulky, (tak) zjistíme, že každá akce má svůj vlastní řádek a tři buňky. Řádek postupně v jednotlivých buňkách zleva doprava obsahuje: příkaz, cíl a hodnotu. Prostředí rozlišuje tři druhy příkazů. Actions – příkazy, které obecně mění stav aplikace například „kliknutí na odkaz“ či „vyber toto nastavení“. Jako příponu lze zde přidat „AndWait“, což říká, aby aplikace počkala například na načtení stránky a až poté vykonala další krok. Accessors – druh příkazu, který zjišťuje stav aplikace a ukládá zjištěné výsledky pomocí proměnných například příkaz „storeTitle“, který uloží název stránky. Třetím typem příkazů jsou Assertions – příkazy, které ověřují určitý stav aplikace. Mohou ověřit výskyt určité slova na stránce, zkontrolovat zatržení checkbox políček či vyplnění formuláře aj.
Obrázek 3.5 Příklad nahraného testu 20
Druhým přístupem je Selenium Core. Lze jím testovat pouze internetová stránka či webový server, ke kterému máme přístup a můžeme ji/jej spravovat. Selenium Core je napsán v DHTML/JavaScript a tudíž se na tuto aplikaci vztahují bezpečnostní omezení JavaScriptu. Instalace obnáší pouze rozbalení zip souboru do adresáře, ve kterém je umístěn webový server. Pro spuštění aplikace poté slouží TestRunner.html, viz následující obrázek. Okno je zde rozděleno na čtyři části:
Obrázek 3.6 TestRunner.html „Test Suite“ – zde se volí cesta k testovacím balíčkům, „Current Test“ – zobrazení podrobností o právě probíhajícím testu, „Control Panel“ – ovládací panel na spuštění testu a zvolení rychlosti vykonávání jednotlivých kroků, pod ovládacími tlačítky jsou vidět výsledky kolik testů a jednotlivých příkazů proběhlo v pořádku/neúspěšně či se nedokončilo, „Main frame“ – hlavní rámec, ve kterém vidíme testovanou aplikaci. Pomocí ovládacího panelu lze spouštět jednotlivé testy, balíky testů či jen jednotlivé části testu nastavené pomocí záchytných bodů.
21
Třetím přístupem je Selenium Remote Control (dále SRC). Skládá se ze dvou hlavních částí: 1) Serveru, který automaticky spouští a ukončuje webový prohlížeč a také slouží jako http proxy pro webové požadavky těchto prohlížečů. Tento server v sobě také obsahuje Selenium Core, které se nahrává do internetového prohlížeče. 2) Klientské knihovny pro programovací jazyk, ve kterém jsme si zvolili psát testy. Podpora prohlížečů je zde větší než u Selenium IDE (jen Firefox), SRC podporuje každý prohlížeč, ve kterém je povolen JavaScript. Následující obrázek ukazuje zjednodušenou architektonickou representaci.
Obrázek 3.7 Architektonická representace SRC příkazy mohou být posílány použitím „http get/post“ požadavků. Z toho vyplývá, že je zde možné použít jakýkoli programovací jazyk, který umí používat http požadavky. Aplikace poskytuje objektové balíčky pro několik užívaných programovacích jazyků, jako jsou: Java, .NET, Perl, Python a Ruby. Nyní několik nevýhod Selenia. SRC zvládá spuštění pouze několika paralelních testů, poté začne být nestabilní. Spuštění více než šesti prohlížečů zároveň většinou skončí chybou či pádem aplikace (u Internet Exploreru k těmto pádům dochází i dříve). Ovládání prohlížeče pomocí Selenia je značně pomalé, což by při rozsáhlejším testování mohlo zbytečně zpomalovat projekt. Mezi výhody může patřit vícejazyčná podpora či fakt, že si Selenium dobře poradí i se špatně formátovanou html stránkou. 22
Závěrem shrnutí mých poznatků z testování aplikace 3.3. Podpora dialogových oken je zde pouze částečná. Aplikace zvládá většinu základních operací s těmito okny, ale některé operace jako je například zjištění názvu dialogové okna nezvládne. Toto se netýká jen dialogových oken, ale většiny UI objektů. Některé události, metody či vlastnosti objektů Selenium nepodporuje. I přesto, že Selenium podporuje prohlížeče IE, Firefox, Safari a Opera, tak nahrání testu v jednom prohlížeči neznamená, že tento test půjde bezproblémově přehrát v jiném prohlížeči, než ve kterém byl nahrán. Při nahrávání testů aplikace některé uživatelovy akce ignoruje a vůbec je nezaznamená. Některé z těchto akcí jdou poté doplnit manuálně. Práce s aplikací je v určitém pohledu více uživatelsky přítulnější. Selenium nenutí pracovat v určitém prostředí jako tomu je například u QTP, ale uživatel si může zvolit svoje oblíbené prostředí například NetBeans. Další velkou výhodou je podpora více platforem, takže uživatel má opět na výběr a není nucen kupovat operační systém, ale celé testování může provádět zdarma například pod Linuxem. Některé z výše popsaných nedostatků, jako je třeba nedokonalé rozeznávání objektů na stránce, mohou být odstraněny díky třetí straně například pomocí rozšíření Selenia a to jen díky tomu, že je Selenium open-source aplikace. Oproti výše testovaným si tato aplikace dobře poradí s prohlížením internetových stránek v panelech. Zvládne si například i zapamatovat uloženou relaci v prohlížeči Firefox a bez problémů načíst všechny panely při dalším testování. Padání aplikace při obnovení relace s nenačteným panelem bylo opraveno. Minulé verze aplikace měnily vzhled pdf dokumentů při jejich prohlížení, tato chyba byla také již opravena. Velkým omezením aplikace je možnost práce pouze s html (+XML a text obsahem webových stránek) či fakt, že aplikace ignoruje chyby v Javascriptu.
23
3.4 Canoo Webtest Canoo Webtest je dalším nástrojem pro automatické testování. Jedná se o nástroj, který je opět opensource a je zdarma stažitelný z internetu [5] a existuje od roku 2001. Aplikace podporuje všechny platformy, na kterých běží Java. Není problém ji nainstalovat a spustit ji jak na Windows, tak na Mac Os či Linux platformě. Pro chod aplikace je nutné mít nainstalované vývojové prostředí JDK (Java Development Kit) a to ve verzi 5 a vyšší. Dalším požadavkem je mít nainstalovaný Apache Ant (webová distribuce již v sobě obsahuje nezbytnou část). Apache Ant je buildovací nástroj podobný GNU make, ale je určený převážně pro vývoj v jazyce Java (sám je napsaný v Javě). Hlavním rozdílem oproti make je používání XML souborů pro popisování postupu sestavování. Použití Ant dovoluje přímé volání například z CruiseControl, což je nástroj jak na kontinuální integraci, tak na rozšíření soustavy pro vytváření uživatelských kontinuálních buildovacích procesů. Webtest obsahuje množinu úloh, které simulují chod internetového prohlížeče bez grafického uživatelského rozhraní dříve známým jako HttpUnit, ale v posledních letech nazývaným HtmlUnit. Tento „prohlížeč” modeluje html dokumenty a poskytuje API, které umožňuje volání stránek, vyplňování textových polí, klikání na odkazy a další akce jako v normálním internetovém prohlížeči. Hlavní výhodou tohoto způsobu simulování je rychlost aplikace. Na rozdíl od aplikace Selenium není třeba opravdový internetový prohlížeč s vlastním profilem. Webtest nestahuje CSS styly ani obrázky a nepotřebuje počítat vyobrazení (rendering) stránek. Aplikace využívá jeden proces s nastavitelným počtem vláken, což umožňuje i několik paralelních testů s malými hardwarovými nároky. Tvůrci tohoto prohlížeče tvrdí docela dobrou podporu Javascriptu a možnost pracovat i s komplexními knihovnami AJAXu. Testování ukázalo, že tato podpora je pouze pro značně omezenou množinu těchto knihoven. Na rozdíl od aplikace Selenium si však Webtest dobře poradí se zachytáváním chyb v Javascriptu. Po objevení chyby ovšem test zastaví. Test nás sice upozorní na výskyt chyby v JS, ale zbytek testu neproběhne, dokud se chyba neodstraní. Aplikace obsahuje více než 100 příkazů se, kterými se dá simulovat chování a akce uživatele. Patří mezi ně například: Obecné
Formuláře <setInputField…/> <setRadioButton…/>
Verifikace
PDF
Excel dokumenty <ExcelFindRow…/> <ExcelVerifyCellValue…/> A další příkazy podporující e-mail či Applets a další. Pro psaní testů v aplikaci Webtest jsou zatím podporovány dva programovací jazyky (v experimentálním vývoji je třetí jazyk WebDriver). Prvním jazykem je Xml. Protože Webtest používá HtmlUnit, tak je možné, místo Xml, volat přímo HtmlUnit a psát testy v Javě. Druhým jazykem je agilní dynamický programovací jazyk nazývaný Groowy. Je to jazyk inspirovaný jazyky 24
jako jsou Python, Ruby a Smalltalk, využívající silné stránky Javy a přidávající další vlastnosti z těchto jazyků. Webtest v současné době používá Jaxen jakožto XPath engine, což znamená podporu XPath 1.0 a také několika funkcí z XPath 2, což umožňuje definování vlastních Xpath funkcí. Podporovanými prohlížeči jsou Internet Explorer a Firefox. Pro prohlížeč Firefox existuje rozšíření, které umožňuje vytváření prvního návrhu skriptu pomocí zaznamenávání akcí uživatele přímo uvnitř prohlížeče.
Obrázek 3.8 Firefox addon Xml vs Groowy Nahrávání testů pomocí Webtest Recorderu není zdaleka dokonalé, obsahuje mnoho chyb. Pokud testovaná stránka například obsahuje více odkazů se stejným jménem, tak se po kliknutí na jeden odkaz, akce do testu zaznamená vícekrát. Jednou z předností aplikace Webtest je forma podávání výsledků, které mohou být generovány buď jako prostý text či ve formátu XML pro pozdější prezentaci v XSLT. Komplexní zpráva o výsledcích obsahuje detailní informace o jednotlivých krocích tesu, jako je doba trvání, (ne)úspěšnost kroku a další. Výsledky jsou generovány ve dvou formách. Shrnutí všech vykonaných kroků a detailní zpráva o každém kroku. Příklad výsledků je vidět na následujícím obrázku v html formě.
25
Obrázek 3.9 Webtest - výsledky 26
Závěrem celkové shrnutí poznatků o aplikaci Canoo Webtest. Aplikace Webtest nemá problémy s podporou platforem ani operačních systémů. Díky použití Apache Ant se dají psát testy ve formátu XML či v programovacím jazyku Groowy, díky možnému přístupu k HtmlUnit je možné psát testy i v Javě. Bohužel s jinými programovacími jazyky si aplikace zatím neporadí. Podpora Javascriptu je dobrá, nikoli však dokonalá. Hlavní výhodou aplikace je rychlost a nízké hardwarové nároky na testování. Jelikož aplikace pouze simuluje chod reálného prohlížeče tak i přesto, že aplikace zvládá data-driven testování, tak není možné provádět testy v reálném prostředí, které není vždy dokonalé. Aplikace podporuje práci se SSL, ovšem například s autentifikací certifikátů si neporadí. Tento i jiné nedostatky aplikace se dají vyřešit pomocí využití doplňků, kterých již existuje spousta. Díky tomu, že je aplikace open-source si můžeme napsat i doplňky své. Mezi další výhody aplikace patří podpora kontinuální integrace. Na internetu je dostupná rozsáhlá aktuální dokumentace aplikace, tak i stránky, kde uživatelé mohou podávat zprávy o chybách v aplikace či třeba přání o doplnění nových postrádaných funkcí. Aplikace má občas problémy se špatně formátovanými stránkami a podle mého názoru není vhodná pro začátečníky díky absenci grafického rozhraní aplikace, které pomáhá méně zkušeným uživatelům k lepšímu pochopení probíhajících kroků aplikace.
27
3.5 HttpWatch + Watir 3.5.1 HttpWatch HttpWatch je monitorovací nástroj v podobě add-onu vyvinutý primárně pro prohlížeč Internet Explorer (nyní existuje již i pro prohlížeč Mozilla Firefox) a podporuje v současné době verze těchto prohlížečů Internet Explorer 6.0 - 8.0 a Mozilla Firefox 2.0 - 3.5. Jelikož je aplikace určena výhradně pro prohlížeč Internet Explorer, tak z toho vyplývá zúžení podpory platforem pouze na MS Windows. HttpWatch monitoruje a zaznamenává http/http provoz uvnitř prohlížeče umožňující odstraňování chyb a optimalizaci provozu stránky. Zobrazuje hlavičky, cookies, kompresi, obsah a další informace při prohlížení webové stránky. Hlavní využití aplikace může sloužit k: •
Lokalizování problémů s přesměrováváním, cookies či POST daty
•
Vyšetřování ukládání dat do paměti cache a komprese - využití pro optimalizaci ukládání dat pro: Nového návštěvníka stránky, který ještě nemá v cache paměti uloženy žádné skripty, CSS styly či obrázky Pro vracejícího se uživatele, který již výše zmíněné objekty, v jeho paměti cache, má uloženy
Aplikace pracuje zatím pouze v 32-bitovém režimu díky nedostatečné podpoře 64-bitových aplikací od firem Microsoft či Adobe. HttpWatch se skládá ze dvou hlavních částí. První z nich je samotný add-on a druhou částí je pak samostatný prohlížeč výsledků testů nazvaný HttpWatch Studio. Aplikace se dá použít buď samostatně vedle prohlížeče či jako jeho součást. Na internetu je k vyzkoušení zdarma Basic verze. Pro použití verze Professional je nutné koupit licenci. Cena roční licence se pohybuje od 475$ (pro jednoho uživatele) až po 36tis$ za licenci pro firmu. Rozdíl základní verze oproti verze Professional je, že verze Basic pouze povoluje prohlížení výsledků na určité množině stránek (microsoft.com, ebay.com, google.com a několik dalších). Výsledky zaznamenané v průběhu monitorování se ukládají do .hwl souboru, který obsahuje kompletní, detailní záznamy o http požadavcích se statistikou sítě a seznamem URL adress, které způsobily chybu. Výsledky se dají exportovat do formátů Csv, Har či XML. HttpWatch zaznamenává provoz na úrovni procesů. Proto při použití prohlížeče Internet Explorer v8 budou výsledky ukládány odděleně pro každý panel či pop-up okno, protože IE v8 využívá samostatný proces pro každou takovou činnost. Na rozdíl od prohlížeče Firefox, který využívá pouze jeden proces a tak HttpWatch udržuje pouze jeden log soubor. U IE se dá nastavit, aby pro tyto akce využíval jen jeden proces či v druhém případě nezbývá nic jiného než prohlížet jednotlivé log soubory samostatně. Jiný „problém” se v tomto ohledu nevyskytl. Na výsledky jde aplikovat filtry například na zobrazení informací pouze o určitém elementu. Na následujícím obrázku je příklad výsledků testu prohlížených HttpWatch Studiem.
28
Obrázek 3.10 Výsledky v HttpWatch Studio Některé testy pracující s nezabezpečeným http obsahem na zabezpečené https stránce napsané a fungující v Ie7 či dřívějších verzích Mozilly způsobovaly zobrazení chyb a bylo třeba na některých místech upravit (doplnění uvozovek) zdrojový kód stránky. Jelikož volání funkcí Ajaxu je podobné jako volání http požadavku, tak si s nimi aplikace celkem dobře poradí. Ovšem některé plug-in komponenty jako jsou ActiveX controls či Java applets, které obchází při podávání http požadavků Internet Explorer, nejsou aplikací HttpWatch zaznamenávány. Mezi prvky aplikace by mohla patřit aktuálnější dokumentace, která je dostupná jen ve verzi off-line. HttpWatch má Com based rozhraní s 16třídami a více než 100metodami, které umožňují programové ovládání aplikace a poskytují přístup k datům zaznačených při testech. Velkou předností této aplikace je, že může být ovládána automaticky jinou aplikací. Jednou z nich je aplikace Watir/Ruby.
29
3.5.2 Watir Watir je open-source (BSD) knihovnou na automatizování webových prohlížečů. Je to nástroj automatického testování, který používá objektově orientovaný skriptovací jazyk Ruby pro vytváření testů na řízení webového prohlížeče. Watir je soubor Ruby knihoven, které řídí webový prohlížeč stejným způsobem jako člověk: a) Klikání na odkazy b) Vyplňování textových polí c) Klikání na tlačítka Watir může také například kontrolovat, zdali se určitý text objevil na stránce. Může být použit na testování různých druhů aplikací. Podporuje technologie jako je ASP, .NET, JSP, PHP, Rails, Ajax a další. Dříve aplikace podporovala pouze prohlížeč Internet Explorer na platformě Windows. Nyní již podporuje aplikace nejen platformu Windows, ale také Mac a Linux. Podporovanými prohlížeči jsou Internet Explorer (již od verze 5.5), Firefox, Safari či Chrome. Ovšem ne ve všech těchto prohlížečích se dají testovat stejná kritéria. Watir sám o sobě neumí vůbec testovat Flash či Java Applets. Pomocí rozšíření FlashWatir se dají testovat komponenty Macromedia Flash, ale zatím pouze v prohlížeči Firefox. Podpora prohlížeče Internet Explorer tímto rozšířením je teprve ve vývoji. Dalším nedostatkem aplikace Watir je testování způsobem nahráním akcí uživatele a poté jejich přehráním, ale i tato funkce se dá přidat pomocí rozšíření Watir WebRecorder či WatirMaker. Některá rozšíření mohou být sice užitečná, ale například rozšíření WebRecorder je zdarma, ale není open-source. Dále jsou zde rozšíření jako FireWatir či SafariWatir, které zajišťují to, že testy napsané pro jeden prohlížeč, budou kompatibilní s jinými prohlížeči podporovanými výše zmíněnými rozšířeními. Díky tomu, že je Watir založen na jazyku Ruby, umožňuje následující funkce: •
Propojení s databází
•
Zapisovat či číst z textového souboru či SQL souboru
•
Pracovat se soubory pdf
•
Pracovat s aplikací Excel
•
Exportovat data (XML, html, Excel)
•
Strukturovat kód do později použitelných knihoven
30
Pro ty, kteří chtějí použít Watir API, a preferují používání jiného programovacího jazyka, mají možnost použít jednu z následujících variant: •
Watij – pro programování v Javě
•
WatiN – pro programování v .Net
Watir pracuje celkem dobře s normálními dialogovými okny. Ovšem příkaz, který se k tomu používá (Watir::IE.attach) nepodporuje modální dialogová okna. Tzn. okna, která se objeví po otevření stránky a nepustí uživatele dál, dokud je nezavře. Dialogová okna tohoto typu nejsou moc obvyklá a jsou podporována pouze prohlížečem Internet Exporer, takže se dá říci, že podpora dialogových oken je celkem přijatelná. Okna generovaná pomocí Javascriptu jako jsou výstražná okna, Windows Security okna, a další okna, která nejsou zahrnuta do webového prohlížeče, nejsou přístupná stejnou cestou, jako jsou ostatní html prvky a tak i tady má Watir problémy. Autoři se již několikrát pokoušeli o implementování podpory pro tato okna, ale zatím pouze s částečným úspěchem. Díky tomu, že Watir nesimuluje chování webového prohlížeče, ale využívá reálný prohlížeč pro svoje testování, tak některé operace trvají delší dobu. Na jednu stranu je to sice pomalejší než teoretická simulace chování prohlížeče, ale na druhou stranu je to testování v reálném prostředí. Testování pomocí Watir vyžaduje tři základní komponenty, reálný prohlížeč (ať už je to Internet Explorer, Firefox či jiný prohlížeč) dále jsou tu Ruby knihovny a nakonec je tu samotný Watir. Problém je zde ten, že při zjišťování, co aplikace nezvládá za činnosti či technologie, není občas jednoduché určit, ve které ze tří komponent je chyba nebo špatná podpora této technologie případně činnosti. Některé nefungují kvůli nekompatibilitě některých verzí knihoven jazyku Ruby a aplikace Watir. Jiné kvůli chybám v jednotlivých prohlížečích. Problémy se také objevovaly při přechodu na vyšší verzi prohlížeče (například při práci s rámci a přechod z IE 7 na IE8). Současná verze má menší problémy se získáváním informací o elementech vnořených rámců. Tento problém existuje již nějaký čas, autoři Watir se jej snažili opravit několika vydanými záplatami, ale zatím bez úspěchu. Na jednu stranu není možné kontrolování funkčnosti odkazů, ale na druhé straně se nachází aktivní a rozrůstající se komunita a také rozsáhlá aktuální dokumentace.
31
Obrázek 3.11 Propojení HttpWatch a Watir
32
4. Závěr V této kapitole se pokusím shrnout nejdůležitější poznatky o jednotlivých aplikacích. Většina aplikací si poradí s jednoduchými stránkami a běžnými základními technologiemi, a proto se zaměřím spíše na to, co jednotlivé aplikace zvládají méně či s čím si neporadí vůbec. Následující tabulka uvádí přehledně základní kritéria testovaných aplikací:
Aplikace Kritéria
QuickTest Professional
AppPerfect
Selenium
Webtest
Watir
Typ
Komerční
Komerční
Open-source
Open-source
Open-source
Platforma
Windows
Windows, Linux, Mac
Windows, Linux, Mac
Windows, Linux, Mac
Windows, Linux, Mac
Prohlížeč
IE (vyžaduje), jiný
IE, Firefox, Safari, Opera
IE, Firefox, Opera, Konqueror
HtmlUnit
IE, Firefox, Safari, Chrome
Simulace nebo reálný prohlížeč
Reálný prohlížeč
Reálný prohlížeč
Reálný prohlížeč
Simulace
Reálný prohlížeč
XML, Groowy, Java
Ruby (Java, .Net)
JDK
Ruby, Watij, WatiN
Program. jazyk
VBSkript
Javascript
html, Java, C#, PHP, Perl, Python a Ruby
Možné program. prostředí
Pouze QTP
AppPerfect
Selenium, TestMaker aj.
Data-driven Způsob podávání výsledků testů
Dobrý
Dobrý
Dobrý
Výborný
Ne tak dobrá
Export výsledků
Pdf, Word
html, pdf, csv, xls či XML
Podle zvoleného jazyku
Prostý text, XML
XML, html, Excel
Dokumentace
Dobrá
Dobrá
Výborná
Výborná
Výborná
33
Dobrá
Problém s Javascript okny
Dobrá
Dobrá
Xpath, .Net, Flash, Ajax (výborná)
Xpath, Ajax, Java Applets
FlashWatir, ASP, .NET, JSP, PHP, Rails, Ajax, Xpath
Flash, JS
Ajax
ActiveX
Dialogová okna
Dobrá
Dobrá
Částečná podpora
Rámce
Dobrá
Dobrá
Dobrá
Podporované technologie
ActiveX, .NET, Xpath, Ajax
Flash, .NET, PHP, Ajax, ASP
Problém
Tabulka č.1 Z údajů uvedených v tabulce č. 1 je zřejmé, že QTP a AppPerfect jsou komerční aplikace a musí se platit nejen za samotnou aplikaci, ale i za případná rozšíření aplikace. Ostatní aplikace jsou open-source, ovšem není tomu tak u všech rozšíření u těchto aplikací. Všechny aplikace kromě QTP (jen Windows – potřebuje k chodu IE) běží na Windows, Linuxu či Macu. Aplikace Webtest simuluje chod prohlížeče, ostatní aplikace využívají reálný prohlížeč a podporují IE či Firefox, někdy i další jako jsou Safari, Opera, Chrome či Konqueror. Největší volbu programovacího jazyku nám umožňuje aplikace Selenium, naopak bez volby a s jediným zabudovaným programovacím jazykem pro psaní skriptů se musíme spokojit u QTP a AppPerfect. Z podpory různých jazyků vyplývá i možnost volby jiného než defaultního vývojového prostředí a to konkrétně u aplikací Selenium a Webtest. Data-driven testování je možné u všech aplikací kromě aplikace zabudované do prohlížeče, která čte data pouze ze serveru, jedná se o aplikaci Selenium. Způsob podávání zpráv o výsledcích byl u většiny aplikací uspokojivý, na jednu stranu velmi dobrým způsobem podávala výsledky aplikace Webtest, na druhou stranu u aplikace Watir není taková možnost formátování způsobu podávání výsledků. Všechny aplikace kromě Selenia mají zabudovaný generátor zprávy o výsledcích a výsledky se u jednotlivých aplikací dají exportovat do různých typů souborů, jako jsou pdf, word, html, XML či jen prostý text. U Selenia se musí výsledky generovat podle toho, jaký programovací jazyk byl pro skriptování zvolen. Všechny aplikace mají dobrou dokumentaci. Ovšem nikoli u všech je dokumentace aktuální. U open-source aplikací byla dokumentace většinou rozsáhlá a aktuální. Podpora dialogových oken byla dobrá, ovšem některé aplikace si neporadily se základními činnostmi (Selenium) či měly menší problémy s určitými druhy těchto oken (Watir). S rámci si aplikace poradily celkem dobře až na některé akce, jako jsou například zjišťování informací o více elementech ve vnořených rámcích. Většina aplikací podporuje technologie (ať už samotná aplikace či je třeba doplněk), jako jsou .Net, Xpath, PHP, Ajax, Flash a další. Jak jsem již psal výše, ve svém testování jsem hledal spíše technologie, se kterými budou mít jednotlivé aplikace problémy. Následuje jejich popis: 34
QTP
Práce s touto aplikací byla asi nejméně problémová. Nenašel jsem konkrétní technologie, se kterými by si aplikace vyloženě neporadila. Aplikace vykazovala pouze menší nedostatky, jako složitější práce s dialogovými okny či menší problémy s některými Windows aplikacemi. Možnosti testování nejen webových aplikací, ale i Windows aplikací patří rozhodně mezi velké přednosti této aplikace. Mezi velké dvě nevýhody patří vysoká cena aplikace a nemožnost volby jiného programovacího jazyka, než VBskript.
AppPerfect Primárně určena pro testování a monitorování Java aplikací, takže je pravděpodobně nejlepší volbou testování tohoto druhu aplikací. S rozpoznáváním html prvků na stránce má aplikace občas problémy. Další problémy, které jsem měl s aplikací, byly: Pomalost aplikace či nereagování aplikace vůbec. Selenium
Aplikace je známá svoji dobrou podporou technologie Ajax. Hlavním problémem je zde fakt, že aplikace nezachytává a zcela ignoruje Javascript chyby. Velkým omezením u této aplikace je fakt, že se dá použít pouze pro práci s html obsahem (+XML a text). Testy napsané pro jeden typ prohlížeče občas nefungují v prohlížečích jiných.
Webtest
Má občas problémy s některými funkcemi Javascriptu. I když autoři tvrdí, že má aplikace dobrou podporu Ajax knihoven, tak se jedná pouze o omezenou množinu těchto knihoven a tak aplikace není nejlepší volbou pro rozsáhlejší testování. Na druhou stranu většina aplikací má podporu pouze Xpath 1.0, kdežto Webtest podporuje i některé funkce z verze Xpath 2.0, což umožňuje programování vlastních funkcí. Možnost kontinuální integrity testů je dalším kladem této aplikace.
Watir
Neporadí si vůbec s testováním Java Applets a i když existuje rozšíření aplikace nazvané FlashWatir pro podporu testování Macrmedia Flash prvků, tak je podpora zatím pouze pro prohlížeč Firefox. Díky nedávnému spojení tvůrců aplikace Watir a FireWatir je zde zajištěna kompatibilita testů v různých prohlížečích.
35
Literatura [1]
Y Soft s.r.o. Úvod - Y Soft [online]. c2009, 2009-03-26 [cit. 2009-04-26]. Dostupný z WWW:
.
[2]
Hewlett-Packard Development Company, L.P.. HP QuickTest Professional software: HP BTO Software [online]. c2009 [cit. 2009-04-26]. Dostupný z WWW:
.
[3]
AppPerfect Corporation. Web Testing, Java Testing, Server Monitoring: AppPerfect [online]. c2003-2009 [cit. 2009-04-26]. Dostupný z WWW: .
[4]
Selenium web application testing system [online]. OpenQA, [2004] [cit. 2009-04-26]. Dostupný z WWW: .
[5]
Canoo Engineering AG. Canoo WebTest [online]. c2002-2008 [cit. 2009-04-26]. Dostupný z WWW: .
[6]
Simtec Limited. HttpWatch: Automated Testing with HttpWatch, Ruby and WATIR [online]. c2002-2009 [cit. 2009-04-26]. Dostupný z WWW: .
[7]
SCOTT, Jacinda, VIKLUND, Andreas. Watir: Overwiev [online]. RubyForge and OpenQA, [2006] [cit. 2009-04-26]. Dostupný z WWW: .
[8]
Sun Microsystems. Java.com: Java + You [online]. 2009 [cit. 2009-10-28]. Dostupný z WWW: .
[9]
The Apache software foundation. Apache Tomcat - Welcome! [online]. 2009 [cit. 2009-10-28]. Dostupný z WWW: .
[10]
Ghostscript, Ghostview and GSview [online]. 2009 [cit. 2009-10-28]. Dostupný z WWW: .
[11]
Ee_manual.pdf [online]. 2009 [cit. 2009-10-28]. Dostupný z WWW: .
[12]
Legion of the Bouncy Castle. Bouncycastle.org [online]. 2009 [cit. 2009-10-28]. Dostupný z WWW: .
36