Automatizácia Funkˇcných Testov S Nástrojom Ranorex
Total Page:16
File Type:pdf, Size:1020Kb
MASARYKOVA UNIVERZITA FAKULTA}w¡¢£¤¥¦§¨ INFORMATIKY !"#$%&'()+,-./012345<yA| Automatizácia funkˇcných testov s nástrojom Ranorex DIPLOMOVÁ PRÁCA Bc. Michal Tkáˇc Brno, 2016 Prehlásenie Prehlasujem, že táto diplomová práca je mojím pôvodným autor- ským dielom, ktoré som vypracoval samostatne. Všetky zdroje, pra- mene a literatúru, ktoré som pri vypracovaní používal alebo z nich ˇcerpal,v práci riadne citujem s uvedením úplného odkazu na prí- slušný zdroj. Bc. Michal Tkáˇc Vedúci práce: Ing. Petr Adámek ii Pod’akovanie Rád by som sa pod’akoval vedúcemu práce, Ing. Petrovi Adámkovi, za cenné rady, ochotu a ˇcas,ktorý si na mˇnavždy pri tvorbe tejto diplomovej práce našiel. Takisto d’akujem kolegom za skvelý kolek- tív a pohodu pri každodennej práci. iii Zhrnutie Ciel’om tejto práce je zoznámenie sa s problematikou automatizá- cie funkˇcnýchtestov webových a desktopových aplikácií. Selenium a White sú aktívne využívané nástroje v procese automatizácie v spo- loˇcnostiEmbedIT a nástroj Ranorex je vhodný kandidát na ich nahra- denie. Všetky klady a zápory nástrojov sú podrobne zanalyzované a porovnané. Pre tento úˇcelboli implementované vhodné ukážkové príklady a na nich sú demonštrované rozdiely medzi jednotlivými nástrojmi. iv Kl’úˇcovéslová Funkˇcnétestovanie, automatizácia testov, užívatel’ské rozhranie, kon- tinuálna integrácia, webová aplikácia, desktopová aplikácia, Selenium, White, Ranorex. v Obsah 1 Úvod ................................3 2 Testovanie softvéru ........................5 2.1 Validácia a verifikácia ....................5 2.2 Testovacie metódy .....................6 2.3 Manuálne vs. automatizované testovanie ........9 2.3.1 Kedy a preˇcoje automatizácia vhodná? . 11 2.3.2 Problémy automatizácie . 13 2.3.3 Údržba kódu a testov . 16 2.4 Testovanie v rámci životného cyklu softvéru ...... 17 2.4.1 V-model . 18 2.4.2 Typy testov . 20 2.4.3 Funkˇcnétestovanie . 22 3 Nástroje na automatizáciu funkˇcnýchtestov ......... 24 3.1 Selenium ........................... 24 3.1.1 Selenium Remote Control (RC) . 25 3.1.2 Selenium IDE . 27 3.1.3 Selenium Grid . 29 3.1.4 Selenium WebDriver . 31 3.2 White ............................. 37 3.3 Ranorex ............................ 40 4 Ukážkové príklady ........................ 45 4.1 Selenium ........................... 45 4.1.1 Použité technológie . 45 4.1.2 Štruktúra projektu . 47 4.2 White ............................. 48 4.2.1 Použité technológie . 48 4.2.2 Štruktúra projektu . 49 4.3 Ranorex ............................ 51 4.3.1 Použité technológie . 52 4.3.2 Štruktúra projektu . 53 5 Porovnanie jednotlivých nástrojov .............. 56 5.1 Štruktúra projektu ...................... 56 5.1.1 Existujúce riešenie . 56 5.1.2 Ranorex . 56 5.2 Kombinované testovanie .................. 57 1 5.2.1 Existujúce riešenie . 57 5.2.2 Ranorex . 57 5.3 Identifikácia elementov ................... 58 5.3.1 Existujúce riešenie . 58 5.3.2 Ranorex . 58 5.4 Spúšt’anie testov ...................... 59 5.4.1 Existujúce riešenie . 59 5.4.2 Ranorex . 60 5.5 Reportovanie výsledkov .................. 60 5.5.1 Existujúce riešenie . 60 5.5.2 Ranorex . 62 5.6 Cena ............................. 64 5.6.1 Existujúce riešenie . 64 5.6.2 Ranorex . 64 5.7 Zhrnutie ........................... 65 6 Záver ................................ 68 A Príloha ............................... 72 A.1 Testovací scenár ....................... 72 2 1 Úvod Tak ako sa vesmírna raketa s posádkou nezaobíde bez všetkých bez- peˇcnostnýchprevierok a kontrol, tak ani softvér sa nezaobíde bez ˇconajdôkladnejšieho otestovania. Ako povedal Bill Gates pre online portál InformationWeek: „Máme tol’ko testerov, kol’ko máme vývojárov. A testeri trávia všetok svoj ˇcastestovaním a vývojári trávia polovicu ich ˇcasutestovaním. Sme viac organizácia zameraná na testovanie a kvalitu softvéru ako sme softvérová organizácia.“ [1] Tieto slová potvrdzujú, že pri vývoji softvéru treba vynaložit’ nemalé prostriedky na testova- nie jeho kvality. Samozrejme, pri testovaní nesmieme zabúdat’ ani na bezpeˇcnost’. Pretože ako vraví Gene Spafford: „Jediný systém, ktorý je naozaj bezpeˇcný,je ten, ktorý je vypnutý a odpojený, uzamknutý v titáno- vom trezore, pochovaný v betónovom bunkri a je obklopený nervovým ply- nom a vel’mi dobre platenou ozbrojenou ochrankou. Dokonca ani vtedy by som zaˇnnestavil svoj život.“ [2] To, že sa v softvéri nájde chyba, môže ušetrit’ nemalé finanˇcnéprostriedky, a dokonca aj nejeden l’udský život. Ciel’om tejto diplomovej práce je preštudovat’ nástroj Ranorex, ktorý slúži na automatizáciu funkˇcnýchtestov, následné zanalyzo- vanie a porovnanie tohto nástroja s už existujúcim riešením v spo- loˇcnostiEmbedIT a zistenie, ˇcije vhodný pre nahradenie aktuálnych riešení využívajúcich nástroje Selenium a White. Práca je rozdelená na dve ˇcasti. Prvá ˇcast’ (Kapitola 2) sa zaoberá teoretickými znalost’ami testo- vania, definovaním pojmov validácia a verifikácia, zoznámením ˇci- tatel’ov s druhmi testovacích metód, kde je dôraz kladený najmä na rozdiel medzi automatizovaným a manuálnym testovaním a nako- niec je predstavené testovanie v rámci životného cyklu softvéru. Na konci tejto kapitoly sú definované rôzne druhy testov, ktoré sa vy- užívajú v rámci životného cyklu softvéru. Druhá ˇcast’ (Kapitola 3 - 5) sa zaoberá nástrojmi na automatizáciu funkˇcnýchtestov. V kapitole 3 sa nachádza podrobný popis nástrojov Selenium, White a Ranorex. Prvé dva sú využívané v existujúcom riešení spoloˇcnostiEmbedIT a nástroj Ranorex je možný nástupca, ktorý by prevzal rolu automatizovania testov. Kapitola 4 prezentuje ukážkové príklady. Obsahuje použité tech- 3 1. ÚVOD nológie, ktoré sú potrebné na požadovanú funkˇcnost’ daného ná- stroja a popisuje štruktúru jednotlivých riešení. Dalšiaˇ kapitola (Kapitola 5) obsahuje porovnanie jednotlivých ná- strojov zamerané na štruktúru projektov, kombinované testovanie, identifikáciu elementov, spúšt’anie testov, reportovanie výsledkov tes- tov a nakoniec cenu, ktorá predstavuje náklady na automatizáciu s využitím automatizaˇcnýchnástrojov, prípadne doplnkových, ktoré sú pri danom nástroji nevyhnutné. V závere práce sú zhrnuté rozdiely a taktiež doporuˇcenie,ˇcije Ranorex vhodný na automatizáciu funkˇcnýchtestov v spoloˇcnosti EmbedIT. V prílohe sa nachádzajú iba kl’úˇcovéˇcastiimplementácie, pretože kompletné zdrojové kódy a skripty nemôžu byt’ zverejnené. 4 2 Testovanie softvéru Testovanie je neoddelitel’nou súˇcast’ou vývoja softvéru v každej jeho fáze s ciel’om vytvorenia požadovaného, kvalitného a bezpeˇcného produktu. Podl’a ISTQB (International Software Testing Qualificati- ons Board) testovanie softvéru je [3]: • proces spúšt’ania a pracovania s programom alebo aplikáciou s ciel’om nájdenia chyby alebo aj • proces validácie a verifikácie toho, že program alebo apliká- cia, alebo produkt: 1. sp´lˇnabiznisové a technické požiadavky, ktoré sprevá- dzali jeho dizajn a vývoj; 2. pracuje tak, ako je oˇcakávané; 3. môže byt’ naimplementovaný s rovnakou charakteristi- kou. V tejto kapitole je vysvetlené, ˇcoznamenajú pojmy validácia a ve- rifikácia, sú v nej zadefinované testovacie metódy a nachádza sa tu taktiež rozdelenie testov do jednotlivých kategórií. 2.1 Validácia a verifikácia Tieto dva, na pohl’ad podobné pojmy, bývajú ˇcastozamenené. Aby sme tomu predišli, pod’me si ich zadefinovat’. Organizácia IEEE- SA (Institute of Electrical and Electronics Engineers Standards Asso- ciation) vypracováva globálne štandardy pre široké spektrum prie- myslu, zahrˇnujúceenergetiku, telekomunikácie, prepravu, biome- dicínu, zdravotnú starostlivost’, informaˇcnétechnológie, robotiku, automatizáciu domácností, nanotechnológiu a mnoho d’alších. Nie je formálne autorizovaná žiadnou vládou, ale je to komunita, ktorá každý rok vedie vyše 200 hlasovaní o štandardoch. Je to proces, pri ktorom sa hlasuje, ˇcidané návrhy štandardov sú technicky dôvery- hodné. 5 2. TESTOVANIE SOFTVÉRU Podl’a štandardu IEEE 610, ktorý je slovník terminológie softvé- rového inžinierstva, sú tieto pojmy definované ako [4]: • Validácia: proces vyhodnocovania softvéru s ciel’om overe- nia ˇciprodukt danej vývojovej fázy (pozn. autora: napríklad dokumentácia so špecifikáciou) sp´lˇnapodmienky, ktoré boli stanovené na zaˇciatkutejto fázy. • Verifikácia: proces vyhodnocovania softvéru poˇcasalebo na konci vývojového procesu s ciel’om overenia, ˇcisp´lˇnašpecifi- kované požiadavky. Zjednodušene, validácia teda overuje, ˇcivytvárame správny pro- dukt (odpovedajúci požiadavkám) a verifikácia, ˇcivytvárame pro- dukt správne (odpovedajúci špecifikácii). Ciel’om týchto dvoch poj- mov je odhalit’ chyby poˇcasvývoja a preukázat’ požadované vlast- nosti, pretože test, ktorý neodhalí nesprávne správanie sa systému, je neúspešný. 2.2 Testovacie metódy V procese testovania sa dajú použit’ rôzne metódy. Patria do rôz- nych kategórií, z ktorých sa niektoré dajú medzi sebou kombinovat’. Prvou takouto kategóriou je rozdelenie testovania z hl’adiska zdro- jového kódu, kde patria nasledujúce metódy [5]: • Statická: Je to revízia, kontrola samotného zdrojového kódu. Castoˇ bý- va implicitná, pretože sa nachádza priamo v programovacích nástrojoch alebo textových editoroch na kontrolu štruktúry zdrojového kódu a v kompilátoroch na kontrolu syntaxe ako statická programová analýza. Patria sem nástroje ako PMD, Findbugs, Checkstyle, ale aj revízia kódu (code review). • Dynamická: Testuje vlastnosti systému poˇcasjeho behu. Môže byt’ vyko- návaná aj vtedy, ak ešte nie je celý softvér naimplementovaný s ciel’om overenia funkˇcnostijednotlivých ˇcastí— modulov. 6 2. TESTOVANIE SOFTVÉRU Druhá kategória