Testausautomaation mahdollisuudet käyttöliittymän testauksessa. Anssi Pekkarinen 5.11.2015



Samankaltaiset tiedostot
CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

Ohjelmistotestaus -09

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

TIE Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori

TIE Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

Lohtu-projekti. Testiraportti. Versiohistoria: syklin toteutuksen testit. 1. ajo Virve

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Suorituskyvyn varmistaminen sovelluskehityksen eri vaiheissa Paavo Häkkinen, Presales Teamleader Compuware Finland

Testi generaattori. Testien ajotyökalu. Kuva 1. Offline mallipohjainen testaus

Testauspalvelu laadunvarmistajana Arekin monitoimittajaympäristössä. Satu Koskinen Teknologiajohtaja, Arek Oy

EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE:

F-Secure KEY salasanojenhallintaohjelman käyttöönotto Mac -laitteella

Ohjelman Suositukset. Luku 5 Suositukset

Javan asennus ja ohjeita ongelmatilanteisiin

Opponointitestaus VYM -> LiKe

Tik Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu. LiKe Liiketoiminnan kehityksen tukiprojekti

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012

Microsoft Visual Studio 2005

Σ!3674. Advanced Test Automation for Complex Software-Intensive Systems

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure

Advanced Test Automation for Complex Software-Intensive Systems

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita.

Käyttöohje. Versiohistoria: versio Mari Kommenttien perusteella korjattu versio

Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan

Lumon tuotekirjaston asennusohje. Asennus- ja rekisteröintiohje

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

Tehokasta palkanlaskentaa

Testidatan generointi

Convergence of messaging

Järjestelmäarkkitehtuuri (TK081702) AJAX, Asynchronous JavaScript And XML. AJAX, Asynchronous JavaScript And XML

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö

Nspire CAS - koulutus Ohjelmiston käytön alkeet Pekka Vienonen

MOODLE-OHJE: Liitetiedoston lisääminen ja päivittäminen

LAATURAPORTTI Iteraatio 1

COTOOL dokumentaatio Testausdokumentit

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

Tikon kassamaksujen käsittely

Microsoft Dynamics CRM 4.0. Jani Liukkonen

Drupal-sivuston hallintaopas

Ammattijärjestäjä Aulasvuori Www-projektin kuvaus

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A Kandidaatintyö ja seminaari

XDW-TIETOVARASTO TALOUSHALLINNON OSA-ALUEEN TOTEUTUS

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaihe 3. Antti Jääskeläinen Matti Vuori

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

MUISTIO Kuvaus: Muutoksia BIC-koodien käsittelyyn. Mahdollisuus lisätä prosessille automaattivalinta esimiehen esimies.

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Maestro Lappeenranta Mannerheiminkatu Lappeenranta. Maestro Helsinki Huopalahdentie Helsinki

Vine Osoitepalvelu. Smartphone Solutions Oy

Simulaattoriavusteinen ohjelmistotestaus työkoneympäristössä. Simo Tauriainen

Asiointipalvelun ohje

58160 Ohjelmoinnin harjoitustyö

MPCC-työkalua voidaan käyttää yhden laitteen valvontaan ja yhden tai useamman laitteen konfigurointiin (Modbus broadcast, osoite 0).

TAMPUURI-käyttäjäpäivät Kenttätyö Tampuuri Tablet ja Phone sovelluksilla

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

vero.fi: Hankinnasta ylläpitoon Miten varmistaa saavutettavuus?

F-Secure KEY salasanojenhallintaohjelman käyttöönotto PC -laitteella

Kylmäjärjestelmien etävalvonta

Työmaapäiväkirjan käyttöohje

Electronisen nopeus ja matkamittarin kalibrointi laite huippunopeus muistilla.

3. Vasemman reunan resurssiselaimen Omiin resursseihin luodaan uusi Handmade -niminen kansio.

T&M Autori Versio Series 60 -puhelimiin

Ohje 1 (12) Maarit Hynninen-Ojala MOODLE PIKAOHJE. Kirjautuminen Moodleen ja työtilan valitseminen

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

T Testiraportti - järjestelmätestaus

PATA WEB KÄYTTÖLIITTYMISTÄ

Talotietojen päivittäminen

ADE Oy Hämeen valtatie TURKU. Tuotekonfigurointi. ADE Oy Ly Tunnus:

Suomi.fi: Asiointi ja lomakkeet osion käyttöliittymämallien käyttäjätestaus. Testaustulosten esittely

Työkalujen merkitys mittaamisessa

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

Nuorisoavustuspalveluiden ohjeistus. Asioijan käyttöliittymä. Nuorisoavustuspalveluiden ohjeistus. Espoo Sähköinen asiointi

Kieku-raportoinnin kehittäminen. Ratkaisupäällikkö Kimmo Järvinen, Valtiokonttori Kieku-käyttäjäfoorumi

Case TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä ! Java luokkia n. 5000

Ajankohtaista peltolohkorekisterissä

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

Mitä direktiivi käytännössä velvoittaa?

2007 Nokia. Kaikki oikeudet pidätetään. Nokia, Nokia Connecting People ja Nseries ovat Nokia Oyj:n tavaramerkkejä tai rekisteröityjä tavaramerkkejä.

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1

Visma Fivaldi. Ohjeet Java web startin ja HTML5-työkalun aktivointiin

Robotit kuntien päätöksenteon tukena

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

Lohtu-projekti. Testaussuunnitelma

1 PIKAOHJE SELAA AIKOJA PALAUTE AJANVARAUS VARAUKSEN TARKASTELU VAHVISTA LÄHTÖÖN OSALLISTUMINEN...

T Käyttäjäkeskeisen tuotekehityksen harjoitustyö kevät 2005

Uutta Remote Support Platform 3.0 -versiossa

Verkkosivut perinteisesti. Tanja Välisalo

VisualStudio Pikaopas, osa 1: WEB sivujen suunnittelu

HELSINGIN YLIOPISTO TIEDEKASVATUS. helsinki.fi/tiedekasvatus v 1.2

TDD Käytännössä Todellinen työkalu vai lehmipoikien laukkaa? Harri Kulmala Solita Oy

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.

Yhteensopiva ja stabiili. Käsitteellistää suunnittelun. Parempi kuin koskaan aiemmin. Yksityiskohtien tarkka kuvaus. Saumaton kommunikaatio

13/20: Kierrätys kannattaa koodaamisessakin

Tutkimusdatan hallinnan kansalliset välineet IDA, Etsin, AVAA. Stina Westman, ATT-hanke, CSC

Sisällys Clerica Web-sovellusten käytön aloittaminen 2

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2016

Omia appeja AppInventorilla. Jenna Tuominen Resurssikeskus Linkki, LumA, HY

Transkriptio:

Testausautomaation mahdollisuudet käyttöliittymän testauksessa Anssi Pekkarinen 5.11.2015

Agenda Kustannustehokkaan testausautomaation tekemiseen vaikuttavat tekijät Käyttöliittymätestauksen haasteet Uudet mahdollisuudet & innovaatiot Testability attribute Testausautomaation tekeminen: sivumallit Aktiivinen testien ylläpito Lomaketestausautomaatio Visuaalinen layout-checkkaus automaatioraportti Kevyempi mallipohjainen testaus Loppukäyttäjän kokemuksen ja suorituskyvyn seuranta

Kustannustehokas testausautomaatio 1. Testien kehityskustannukset Henkilöresurssi on suurin kustannuserä -> Siirretään työtä työkalun tekemäksi Työkalu ( avoin lähdekoodi, kaupallinen(lisenssi hinta)) -> Paras vaihtoehto on työkalu, joka huomioi asiakkaan testauksen kokonaistarpeet sekä täyttää vaatimukset hinta-laatu suhteeltaan ja käyttää tehokkaita ratkaisuja 2. Testien ylläpito Henkilöresurssi on suurin kustannuserä -> Tarvitaan menetelmiä muutosten visualisointiin ja virheen korjaukseen Huonosti tehty testiskripti nostaa kustannuksia -> Testaustyökalun pitää tukea ylläpidettävää testiskriptien rakennetta 3. Testaustyökalun monikäyttöisyys Samalla työkalulla voidaan ratkoa useampia testauksen haasteita ( toiminnallisuustestaus, suorituskykytestaus, visuaalinen testaus, tuotannon monitorointi, muistivuotojen testaus) -> Nämä yhdestä työkalupakista Testiskriptien uudelleenkäytettävyys -> Toiminnallisen testauksen testejä voidaan hyödyntää muissa testauksen osa-alueissa

Kehitysvaihe Ylläpidettävien testien tekeminen -> Testeissä tyypillisiä ongelmia: synkkaus, web-elementin tunnistus ja verifiointi Web-elementtien tunnistus -> Iso osa ajasta hukataan tähän vaiheeseen. Huono testattavuus tekee tästä haasteellista Regressiotestien tekeminen on hidasta -> Liian paljon aikaa käytetään testien tekemiseen vs. kehityskustannukset Nauhoita ja toista -testit eivät toimi -> Huono ylläpidettävyys ja huono testien rakenne. Testit ovat usein rikki Testejä ei tehdä käyttöliittymän aikaisessa kehitysvaiheessa -> Muutoksia tapahtuu usein ja ihminen ei pysy perässä testien tekemisessä Ylläpitovaihe Käyttöliittymätestauksen haasteet: kehitys & ylläpitovaihe Lineaarisesti tehdyt testit tuottavat päänsärkyä -> Monistettu testikoodi tekee testeistä haavoittuvaisia Testien ylläpito vie paljon aikaa ja rahaa ja testit ovat usein rikki -> Virheiden etsiminen, ymmärtäminen usein haasteellista virheraporteista

Käyttöliittymätestauksen haasteet: testattavuus Sovelluksen testattavuus Testattavuus tärkeä tekijä tehtäessä kustannustehokasta testausautomaatiota, jotta pystytään verifioimaan, liikuttamaan ja painelemaan nappeja testattavasta sovelluksesta Testattavuuteen voi vaikuttaa jo kehitysvaiheessa tekemällä käyttöliittymäelementeistä: hallittavia, tarkasteltavia, eristettäviä, ymmärrettäviä -> Tarkoittaa käytännössä, että työkalu osaa esim. painaa haluttua Tallenna -nappia Esimerkki 6kk projektista ( huono testattavuus vs. hyvä testattavuus ) vaikutus työmäärään: Sovellus 1: Huono testattavuus Testausautomaation tekeminen: 1.5 kk ja testien ylläpito: 0.75 kk Yhteensä työmäärä 2.25 kk Sovellus 1: Hyvä testattavuus Kehityksen panostus testattavuuden parantamiseen: 0.2 kk Testausautomaation tekeminen: 0.8 kk ja testien ylläpito: 0.2 kk Yhteensä työmäärä 1.2 kk

Uudet mahdollisuudet & innovaatiot Myös testaustyökalut tarvitsevat uusia ideoita & innovaatiota

Testability attribute Testattavuuden parantamisen keinoja web- sovelluskehityksessä: Lisätään web-elementille attribuutti id, joka yksilöi elementin. Sitä on helppo kutsua tai viitata testiskriptissä Lisätään web elementille testability attribute esim. data-name, joka yksilöi elementin Jokaisella ohjelmointikielellä (Java, Ruby tai framework (Vaadin)) on oma tyylinsä testattavuudesta Esimerkkejä: Web elementti ilman testattavuutta: ELEM_WITHOUT_TESTABILITY = (By.XPATH, u'//body/div[1]/div[1]/table[1]/tbody[1]/tr[3]/td[2]/div[1]') Web elementti id attribuutin kanssa: ELEM_WITH_ID = (By.ID, u homepagebutton') Web elementti testability attribuutin data-name kanssa: ELEM_WITH_TESTABILITY = (By.CSS_SELECTOR, u div[data-name= homepagebutton"]')

Testausautomaation tekeminen: sivumallit 1. Työkalu luo tarvittavat sivumallit ja dynaamiset kohteet -> Ylläpito tapahtuu sivumallien avulla. Näkymät päivittyvät koneen avulla ( Koneen silmä on tarkempi kuin ihmisen ) 2. Suunnittele uudelleenkäytettäviä menetelmiä sivumallikirjastoon (Funktiokirjasto) Sivumallikerros -> Ylläpidon kannalta tärkein kerros, sivu ja elementti. Muutoksissa muutos vain yhteen paikkaan -ajatusmalli. Työkalu auttaa päivitystilanteissa korvaamaan vanhat menetelmät uusilla. 3. Suunnittele ja toteuta testejä sivumallikirjaston avulla Testikerros -> Ylläpidon tavoite on, että tähän kerroksen ei tarvitse koskea, vaan muutokset tapahtuu sivumallikerroksella. Päivitetään testiskriptiä vain silloin, kun testispeksit muuttuvat.

Aktiivinen testien ylläpito auttaa havainnoimaan muutoksia ja visualisoi muutokset käyttöliittymässä Sivumallien avulla mahdollistetaan nettisivujen muutosten havaitsemisen automaattisesti. Havaitut muutokset (uudet tai puuttuvat elementit, rikki olevat metodit) esitetään kuvien avulla raportissa. Sivumallirakenne pakottaa tekemään testit ylläpidettävään muotoon -> Page object pattern/page model -ajatus Työkalu tarjoaa korjaustoimintoa testien korjaukseen (päivitys vanhasta uuteen elementeissä) Aktiivinen testien ylläpito

Lomaketestausautomaatio Luodaan uusia innovaatioita täyttää ja luoda testiskriptit web-lomakkeiden ja input-kenttien täyttämiseen Lomaketestausautomaatio perinteisellä tavalla Haetaan syöttökentille elementtien tunnisteet eli locaattorit ja tehdään testidata Käyttäjä kirjoittaa testiskriptin jokaiselle syöttökentälle Paljon manuaalista työtä, jotta lomakkeen täyttö saadaan testiskriptin muotoon Lomaketestausautomaatio sivumallien avulla Työkalu mallentaa lomakkeen elementit, kerää käyttäjän syöttämän testidatan web-sivulta sekä tekee testiskriptin lomakkeen täyttämiseen Työkalu tekee suurimman osan työstä Lomake testausautomaatio voi nopeuttaa 15-20x testiskriptin tekemisessä Mitä enemmän käyttöliittymässä input kenttiä niin sitä enemmän tätä voidaan hyödyntää Tulevaisuudessa: Verify lomaketestausautomaatio

Visuaalinen layout-chekkaus automaatioraportti Tietokone koostaa testauslayout-raportin ajamalla olemassa olevia testiskriptejä ja keräämällä kuvia eri selaimilla ja näyttöresoluutioilla Raportti antaa mahdollisuuden verrata sivujen layout-näkymien käyttäytymistä eri selaimilla ja eri resoluutioilla Raportti antaa kuvaa sivujen responsiivisuudesta, toimivuudesta ja ulkonäöstä koostamalla testiraportin kuvavertauksineen. Ihminen tekee testiraportin perusteella päätöksiä -> ei kone.

Mallipohjainen testaus sivumallien avulla luo uusia mahdollisuuksia testata sovelluksen toimintaa Mallipohjainen testaus Sen avulla voidaan kasvattaa entistä helpommin testauskattavuutta ja laajentaa testausautomaatiota uusille alueille Mallipohjainen Offline testaus: Työkalu generoi malligraafin tilasiirtymistä testiskripteja läpikäymällä mallin eri testauspolut Mallipohjainen Online testaus: Työkalua voidaan käyttää online-pohjaisesti, jolloin se arpoo ajonaikaisesti ja satunnaisesti painotusten mukaan testattavaa testauspolkua. Onlinepohjaisessa käytössä ei ole testikeissejä, vaan mallin siirtymiä linkitetään vaatimuksiin. Tällä tävalla voidaan lisätä testauksen satunnaisuutta: enemmän satunnaisskenaarioita sekä erilaisia loppukäyttäjän skenaarioita.

Loppukäyttäjän kokemuksen ja suorituskyvyn seuranta Yhdistää mittauspisteet trendikuvaajaksi, jota voidaan käyttää loppukäyttäjän kokemuksen ja suorituskyvyn mittaukseen ja arviointiin Antaa todellista kuvaa millaiseksi loppukäyttäjä kokee sivujen latausajan sekä kertoo tärkeää tietoa palvelun saatavuudesta Seurataan kolmea muuttujaa: web-palvelu toimii halutulla tavalla, sivujen latausaika resurssien latausaikoja Testit ajetaan selaimessa joka mahdollistaa monitoroinnin loppukäyttäjän näkökulmasta Verkon latenssi Latausaika: Sivun latausaika kun se vastaanotetaan palvelimelta Kokonaisaika: Koko tapahtuma navigoinnista sivun lataukseen Resurssien yhteenlaskettu latausaika: n resursseja ladataan Yksittäisten resurssien latausaika: img, script, xmlhttprequest,... Hälytykset

Ja seuraavaksi demo... www.q-factory.fi anssi.pekkarinen@q-factory.fi Copyright 2015, Q-Factory, QAutomate

Kiitos! www.q-factory.fi anssi.pekkarinen@q-factory.fi Copyright 2015, Q-Factory, QAutomate