• Ei tuloksia

Tarkempi katsaus onnistuneen testitapauksen sisällöstä Robot

Kuva 46. Tarkempi katsaus epäonnistuneesta testitapauksesta Robot Framewor-kin luomasta tiedostosta log.html.

5.8 Vertailukelpoiset testitulokset molemmilta alustoilta

Opinnäytetyössä on käytetty vain yhtä testitapausta alustaa kohden. Halutessa tar-kempia ja vertailukelpoisia testituloksia, on testitapauksien määrä oltava huomat-tavasti suurempi. Esimerkkitapaukset on luotu lähinnä havainnollistamistarkoituk-seen. Tuloksista voidaan päätellä, että molemmat testitapaukset toimivat testatta-vissa ympäristöissään.

Testituloksen on mahdollista ajaa erikseen tai yhdessä. Erikseen ajettuna testitu-lokset luodaan erillisiin raporttitiedostoihin, jolloin vertaileminen voi olla hanka-lampaa. Robot Framework tarjoaa kuitenkin mahdollisuuden ajaa useamman testi-tiedoston samaan aikaan, jolloin tässä tapauksessa molempien alustojen testita-paukset saadaan samaan raporttiin. Testaus suoritetaan komennolla ”robot (en-simmäisen tiedoston sijainti) (toisen tiedoston sijainti)” (Kuva 47). Tiedostonimiä on muutettu selkeyttämään raporttia.

Kuva 47. Molempien testitiedostojen yhtäaikainen ajaminen Robot Frameworkil-la.

Testin raportti tarjoaa näkymän, josta voidaan päätellä molempien testitapauksien onnistuneen (Kuva 48). Testitapaus sisältää sille annetun dokumentaation ja tun-nisteet sekä testin suorittamisajan.

Kuva 48. Yhteisien testituloksien näkymä report.html tiedostossa.

Raporttitiedostosta voidaan siirtyä suoraan lokitiedostoon klikkaamalla testita-pauksen nimeä tai painamalla sivun yläosassa oikealla sijaitsevaa ”LOG”-painiketta.

Lokitiedosto kattaa yksityiskohtaisemman näkymän testitapauksista, sisältäen jo-kaisen avainsanan ja niiden tietoja. Kuvasta voidaan päätellä, että jokainen testita-pauksen avainsana on toiminut onnistuneesti ja testitulokset vastaavat niiden odo-tettuja tuloksia (Kuva 49).

Kuva 49. Testitulokset avattuna lokinäkymässä.

6 JOHTOPÄÄTÖKSET JA POHDINTA

Robot Framework on ohjelmistotestaukseen hyvin monipuolinen työkalu ja työssä päästiin käyttämään vain murto-osaa sen tarjoamista ominaisuuksista. Maksi-moidessaan Robot Frameworkin todellisen potentiaalin, on oltava avoin haasteille ja tutkittava tämän testiautomaatiotyökalun tarjoamia mahdollisuuksia. Työkalu omaa kattavan dokumentaation ja aktiivisen yhteisön, joka pyrkii vastaamaan hankalimpiinkin kysymyksiin.

Opinnäytetyössä testattiin ohjelmia vain kahdella eri alustalla. Jokaisen testatta-van ohjelman kannalta olisi tärkeää saada kattavia testituloksia mahdollisimman monesta eri laitteesta ja alustasta. Tämä parantaa mahdollisuuksia virheiden ha-vainnollistamiseen ennen tuotteen pääsyä asiakkaalle. Mobiiliohjelmaa tulisi tes-tata mahdollisimman monella laitteella, jotka jokainen tarjoaa jotain erilaista, ku-ten eri kokoisia näyttötiloja sekä vanhempia käyttöjärjestelmäversioita. Nykypäi-vänä on mahdollista testata useita laitteita emulaattoreiden avulla, mutta kaikkein tarkimpia testituloksia saadaan fyysisten laitteiden avulla.

Jatkokehitystä ajatellen, opinnäytetyöstä jäi puuttumaan iOS – alustan testaami-nen. Robot Framework tarjoaa useita ulkoisia kirjastoja, kuten AppiumLibrary ja iOS Library, jotka mahdollistavat ohjelman testaamisen kyseisellä alustalla.

Vaikka projektissa luotiin havainnollistamistarkoitukseen vain yksi testitapaus molemmille alustoille, vastasivat ne sisällöltään opinnäytetyössä tavoiteltua pää-määrää. Testien kattavuutta hankaloitti sovelluksien eroavaisuus ja eri testikirjas-tojen käyttäminen. Ohjelmistoprojekteissa kehitetään usein samaa ohjelmaa kummallekin alustalle ja molemmissa käytetään samaa ohjelmointikieltä. Esi-merkkitapauksissa testattiin kahta erilaista sovellusta, Android-laitteen natii-visovellusta sekä Windows-käyttöjärjestelmällä pyörivää työpöytäsovellusta, jot-ka molemmat vaativat eri testikirjastojen käyttöä Robot Frameworkilla. Testatta-van sovelluksen ollessa sama molemmilla alustoilla, on huomattavasti helpompi kirjoittaa testitapauksia kummallekin alustalle, jolloin käyttäjän luomia avainsano-ja voidaan myös helposti kierrättää projektissa.

Vertailukelpoisempia testituloksia saadaan luotua parhaiten käyttämällä samaa tai samantyylisiä testauskirjastoja. AppiumLibrary ja SeleniumLibrary tarjoavat kummatkin lähes identtisiä avainsanoja käyttöön, jolloin käyttäjän ei tarvitse vaihdella testien kirjoitustyyliä alustoja vaihtaessaan. Olen myös huomannut, että testeissä käytettävien elementtien tunnistamiseen olisi hyvä käyttää samaa mene-telmää molemmille alustoille. Esimerkkitapauksissa käytettiin kahta erilaista tyy-liä ja työkalua, mikä voi aiheuttaa hankaluuksia verrattavuudessa. Helpoin tapa olisi, jos kehitettävä ohjelma mahdollistaa CSS Selectorin tai XPathin käytön elementtien paikantamiseen. Tällöin voidaan luoda myös käytettäville elementeil-le oma tiedosto, tarkoittaen toki sitä, että ohjelma käyttää samaa ulkoasua ja nä-kymää molemmilla alustoilla.

Ennen kuin tutustuin Robot Frameworkiin, käytin sovelluksien automaattitestien kirjoittamiseen erilaisia työkaluja, kuten Jasminea ja Mochaa, jotka molemmat ovat JavaScript-pohjaisia ohjelmistokehyksiä. Robot Framework eroaa selvästi näistä kolmesta sen helppokäyttöisyydellään ja ihmisluettavuudellaan, mikä mah-dollistaa sen, että muutkin kehittäjät, jotka eivät välttämättä ole tutustunut Ja-vaScript-pohjaisiin ohjelmistokehyksiin ja niiden avulla testien kirjoittamiseen, pystyvät luomaan uusia testitapauksia ongelmitta. Kaikki kolme ovat erittäin hy-viä vaihtoehtoja sovelluksen automaattiseen testaukseen ja tarjoavat testaajalle monia hyviä toiminnallisuuksia ja menetelmiä, joiden avulla kehitettävän sovel-luksen laadunvarmistusta saadaan paremmaksi.

LÄHTEET

/1/ Suomessa suosittu avoimen koodin ohjelmisto lähtee maailmalle. Viitattu 21.04.2019. https://www.tivi.fi/uutiset/suomessa-suosittu-avoimen-koodin-ohjelmisto-lahtee-maailmalle/f84a1f8c-8a2e-3c19-8747-536713057dd7 /2/ What is HTML? Viitattu 20.04.2019. https://html.com/

/3/ What is CSS? Viitattu 20.04.2019. https://html.com/css/

/4/ CSS Selectors. Viitattu 20.04.2019. https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors

/5/ XPath. Viitattu 20.04.2019. https://developer.mozilla.org/en-US/docs/Web/XPath

/6/ What is User Interface (UI) Design? Viitattu 20.04.2019.

https://www.interaction-design.org/literature/topics/ui-design /7/ What is User Experience (UX) Design? Viitattu 20.04.2019.

https://www.interaction-design.org/literature/topics/ux-design /8/ What is version control? Viitattu 20.04.2019.

https://www.atlassian.com/git/tutorials/what-is-version-control

/9/ Framework. Viitattu 21.04.2019. https://techterms.com/definition/framework /10/ What is a script? Viitattu 21.04.2019.

https://www.ntchosting.com/encyclopedia/scripting-and-programming/script/

/11/ What Is an API and Why Should I Use One? Viitattu 21.04.2019.

https://medium.com/@TebbaVonMathenstien/what-is-an-api-and-why-should-i-use-one-863c3365726b

/12/ What is open source? Viitattu 21.04.2019.

https://opensource.com/resources/what-open-source

/13/ Visual Studio Code Documentation. Viitattu 21.04.2019.

https://code.visualstudio.com/docs /14/ What is Git? Viitattu 21.04.2019.

https://www.atlassian.com/git/tutorials/what-is-git

/15/ What is Python? Everything you need to know. Viitattu 21.04.2019.

https://www.infoworld.com/article/3204016/what-is-python.html /16/ Test Automation for Web Applications. Viitattu 21.04.2019.

https://www.seleniumhq.org/docs/01_introducing_selenium.jsp

/17/ Introduction to Appium. Viitattu 21.04.2019. http://appium.io/docs/en/about-appium/intro/

/18/ ChromeDriver, Viitattu 21.04.2019. http://chromedriver.chromium.org/

/19/ Testaus lyhyesti. Viitattu 16.03.2019.

http://smarteducation.jyu.fi/projektit/systech/Periaatteet/suunnittelun-periaatteet/testaus/testaus-lyhyesti

/20/ Testauksen tasot. Viitattu 16.03.2019.

http://smarteducation.jyu.fi/projektit/systech/Periaatteet/suunnittelun-periaatteet/testaus/testauksen-tasot

/21/ What Is Unit Testing? Viitattu 16.03.2019.

https://smartbear.com/learn/automated-testing/what-is-unit-testing/

/22/ A quick guide to Manual Testing Vs Automated Testing. Viitattu 21.04.2019.

https://reqtest.com/testing-blog/manual-testing-vs-automated-testing/

/23/ Diplomityöntekijä keksi ohjelmiston, josta tuli suomalaisten suosikki. Viitattu 21.04.2019. https://www.tivi.fi/uutiset/diplomityontekija-keksi-ohjelmiston-josta-tuli-suomalaisten-suosikki/ccb0d491-794f-3cd5-b17e-53ff1c932c64

/24/ INTRODUCTION. Viitattu 21.04.2019.

https://robotframework.org/#introduction

/25/ Creating user keywords. Viitattu 21.04.2019.

http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.ht ml#creating-user-keywords

/26/ LIBRARIES. Viitattu 21.04.2019. https://robotframework.org/#libraries /27/ Standard Libraries. Viitattu 21.04.2019.

http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.ht ml#standard-libraries

/28/ External Libraries. Viitattu 21.04.2019.

http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.ht ml#external-libraries

/29/ SeleniumLibrary – Importing. Viitattu 21.04.2019.

http://robotframework.org/SeleniumLibrary/SeleniumLibrary.html#Importing /30/ Android Debug Bridge (adb). Viitattu 20.04.2019.

https://developer.android.com/studio/command-line/adb

/31/ 2 Ways to find appPackage and appActivity name of your App. Viitattu 20.04.2019. http://www.automationtestinghub.com/apppackage-and-appactivity-name/

/32/ UI Automator viewer. Viitattu 20.04.2019.

https://developer.android.com/training/testing/ui-automator#ui-automator-viewer /33/ Appium – Chromedriver. Viitattu 21.04.2019.

http://appium.io/docs/en/writing-running-appium/web/chromedriver/

/34/ robotframework-autoitlibrary 1.2.4. Viitattu 21.04.2019.

https://pypi.org/project/robotframework-autoitlibrary/

/35/ AutoIt Scripting Language. Viitattu 21.04.2019.

https://www.autoitscript.com/site/autoit /36/ Report file. Viitattu 21.04.2019.

http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.ht ml#report-file

/37/ Log file. Viitattu 21.04.2019.

http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.ht ml#log-fi

/38/ What is a Native App? How are Native Apps built? Viitattu 05.05.2019.

https://www.mobiloud.com/blog/native-web-or-hybrid-apps/#4 /39/ What is a Hybrid Mobile App? Viitattu 05.05.2019.

https://www.telerik.com/blogs/what-is-a-hybrid-mobile-app-