Automatizácia Funkˇcných Testov S Nástrojom Ranorex

Automatizácia Funkˇcných Testov S Nástrojom Ranorex

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

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    77 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us