Dynaaminen analyysi IV Luento 6 Antti-Pekka Tuovinen

Samankaltaiset tiedostot
Dynaaminen analyysi IV

Dynaaminen analyysi III Luento 5 Antti-Pekka Tuovinen

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

Dynaaminen analyysi III

Dynaaminen analyysi I

Dynaaminen analyysi II

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa:

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen

Testaaminen ohjelmiston kehitysprosessin aikana

Ohjelmiston testaus ja laatu. Testausmenetelmiä

Ohjelmistotestauksen perusteita II

58160 Ohjelmoinnin harjoitustyö

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Kontrollipolkujen määrä

Onnistunut Vaatimuspohjainen Testaus

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

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

Convergence of messaging

Ohjelmistotuotantoprojekti

Harjoitustyön testaus. Juha Taina

Ohjelmistotestaus -09

Ohjelmiston toteutussuunnitelma

Lohtu-projekti. Testaussuunnitelma

Tutkittua tietoa. Tutkittua tietoa 1

Ohjelmiston testaus ja laatu. Testaustasot

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

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

Testaussuunnitelma Labra

T Testiraportti - järjestelmätestaus

Testataanko huomenna?

Tapahtuipa Testaajalle...

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori

Hyväksymistestauksen tarkistuslista järjestelmän hankkijalle

Testauksen suunnittelu. Faculty of Science 30 April

Ohjelmistojen testaus

Staattinen testaus Dynaaminen testaus I Luento 3 Antti-Pekka Tuovinen

Testaus-tietoisku: Tärkeimpiä asioita testauksesta projektityökurssilaisille

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

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

Kuopio Testausraportti Asiakkaat-osakokonaisuus

Mihin kaikkeen voit törmätä testauspäällikön saappaissa?

Kombinaatiotestauksen tekniikat. 5. Kombinaatiotestaus (P&Y: 11) Luokittelutestauksen algoritmi. Luokittelutestaus. Pankkiautomaattiin kirjautuminen

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

Ohjelmistotestauksen perusteita Luento 1 Antti-Pekka Tuovinen

Testaussuunnitelma. Pizzeria - Pitseria HAAGA-HELIA ammattikorkeakoulu Tietojenkäsittelyn koulutusohjelma. WebPizza

UCOT-Sovellusprojekti. Testausraportti

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

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

Testauksen hallintaa teekkareille (ja muille kiinnostuneille) Arto Stenberg

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

Laadunvarmistuksen suunnitelma. Ryhmä ExtraTerrestriaLs Aureolis Oy

@Tampereen Testauspäivät ( )

Ohjelmistotuotanto s

Laadunvarmistustekniikat

Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II

Harjoitus 7: NCSS - Tilastollinen analyysi

Ohjelmistotestauksen perusteita I Luento 1 Antti-Pekka Tuovinen

Hirviö Vertaistestausraportti

Hirviö Laadunvarmistussuunnitelma

TESTIRAPORTTI - JÄRJESTELMÄ, ADMIN Virtuaaliyhteisöjen muodostaminen Versio 1.0

Automaattinen yksikkötestaus

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

TIE Ohjelmistojen testaus 2016 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori

Mihin kaikkeen voit törmätä testauspäällikön saappaissa?

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

Harjoituskoe Vastaukset. ISTQB Ketterä testaaja 2015 Perustason sertifikaattisisällön laajennus

Standardi IEC Ohjelmisto

Testausprosessin vaatimukset. 2. Testausprosessi (Artikkelit) Vesiputousmallin ongelmia. V-mallin neljä osavaihetta. Testausprosessimalli V-malli

LAATURAPORTTI Iteraatio 1

Staattinen testaus. Luento 5 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

Testausoppeja toimialavaihdoksesta

Testaussuunnitelma. PUSU-ryhmä. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

Project-TOP QUALITY GATE

1 Määrittelyjä ja aputuloksia

Testaussuunnitelma. Asdf. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Laadunvarmistuksen suunnitelma. Ryhmä ExtraTerrestriaLs Aureolis Oy

Onnistunut SAP-projekti laadunvarmistuksen keinoin

TESTIRAPORTTI - XMLREADER LUOKKA Virtuaaliyhteisöjen muodostaminen Versio 1.0

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Lähdekoodin suorituksen malli. 2. Äärelliset mallit (P&Y: 5) Ohjausvuokaaviot. Atomiset ehdot OVK:ssa. Atomiset ehdot

Tik Projektiryhmä: TeamAhma. Projektin HAYABUSA opponointi. Opponointisuunnitelma

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

Testaus osana ohjelmistojen elinkaarta I

Testaus osana ohjelmistojen elinkaarta Luento 2 Antti-Pekka Tuovinen

tsoft Tarkastusmenettelyt ja katselmukset Johdanto Vesa Tenhunen

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta

Sopisiko testiautomaatio yritykseesi juuri nyt? Testiautomaation soveltuvuuden arviointiopas

Kahdenlaista testauksen tehokkuutta

TESTIRAPORTTI - XMLREADER-LUOKKA Virtuaaliyhteisöjen muodostaminen Versio 1.0 (luonnos 2)

Perustaso HARJOITUSKOE Sertifikaattisisältö versio 2010 Harjoituskoe versio 2011

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Tietojärjestelmän osat

Standardit tietoturvan arviointimenetelmät

SEPA-päiväkirja: Käytettävyystestaus & Heuristinen testaus

Siimasta toteutettu keinolihas

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Transkriptio:

Dynaaminen analyysi IV Luento 6 Antti-Pekka Tuovinen 23 April 2018 1

Tavoitteet Kokemusperäinen testitapausten suunnittelu Yhteenvetoa suunnittelutekniikoista 23 April 2018 2

Testitapausten kokemusperäinen suunnittelu 23 April 2018 3

Systemaattisuutta tarvitaan, mutta Kurssilla käsitellyillä testitapausten suunnittelutekniikoilla pyritään systemaattiseen ja tietyllä tavalla mekaaniseen prosessiin Ennakkosuunnittelu, toistettavuus, testien uudelleenkäytettävyys Testien suunnittelun ja suorituksen erottaminen toisistaan (alihankinta, ulkoistus) Automatisointi 23 April 2018 4

Systemaattisuutta tarvitaan, mutta Testitapausten laatu eli kyky paljastaa vikoja testattavasta ohjelmasta riippuu monesta seikasta Vaatimusten ja spesifikaatioiden tarkkuudesta Testien suunnittelijoiden kyvyistä ja kokemuksesta Käytetyistä työkaluista Virheitä voi tapahtua 23 April 2018 5

Systemaattisuutta tarvitaan, mutta Spesifikaatioihin perustuvilla testeillä on vaikea löytää vaatimusmäärittelyn puutteisiin liittyviä vikoja Mitä ei ole vaadittu, sitä ei myöskään testata Myös testausprosessin ja testitapausten hallinnan ongelmat heikentävät testauksen tehoa Testitapaukset eivät pysy ajan tasalla 23 April 2018 6

Systemaattisuutta tarvitaan, mutta Ennakkoon laadituilla testitapauksilla ja niistä koostetuilla testiajoilla ja testiskenaarioilla yksityiskohtaisine suoritusohjeineen (scripted testing) on siis omat rajoitteensa ja puutteensa ( Scripted testing: http://en.wikipedia.org/wiki/test_script ) 23 April 2018 7

Intuitio ja kokemus apuun Kokeneilla kehittäjillä ja testaajilla on kyky arvata, minkälaisia vikoja testattavassa ohjelmassa voisi olla (error guessing) He tuntevat ongelma-alueen ja ovat testanneet samanlaisia ohjelmia aikaisemminkin Heillä on hiljaista (mahdollisesti myös dokumentoitua) tietoa tyypillisistä vioista ja niiden aiheuttamista oireista He tuntevat toteutusteknologiat ja organisaation He keksivät uusia tapoja rikkoa ohjelman 23 April 2018 8

Intuitio ja kokemus apuun Intuitiivinen testaus täydentää systemaattisin menetelmin kehitettyjä testitapauksia ja on hyvin suositeltavaa Intuitiota itse asiassa käytetään paljon testitapausten suunnittelussa Tutkiva testaus (exploratory testing) on tunnettu ja nykyään suosittu intuitiivisen testauksen menetelmä 23 April 2018 9

Tutkiva testaus Kokemusperäinen testausmenetelmä, joka sopii käytettäväksi myös silloin, kun ohjelman dokumentaatio puutteellista tai sitä ei ole Tai kun aikaa on vain vähän käytettävissä Testaustaso: järjestelmä- ja hyväksyntätestaus 23 April 2018 10

Tutkiva testaus Ideana on suunnitella ja suorittaa testit sitä mukaa, kun testaaja tutustuu testattavaan ohjelmaan Ei erillisiä testauksen suunnittelu- ja suoritusvaiheita Testaaja tutkii (explore) ohjelman toimintaa ja käyttöä ja päättää, minkälaisia testejä hän tekee tutkimuksen edetessä 23 April 2018 11

Tutkiva testaus Testaaja ei siis mekaanisesti käy läpi ennalta annettua testitapausten joukkoa (scripted testing), vaan käyttää intuitiotaan ja kokemustaan hyväksi Ei rajoita testaajan oman mielikuvituksen käyttöä ja oivalluksia 23 April 2018 12

Tutkivan testauksen kulku Testaaja tutustuu aluksi yleisesti testin kohteeseen Hän päättää sitten, mihin tiettyihin toimintoihin keskittyy Testaaja tekee muutamia alustavia testejä suunnitellen testitapaukset lennosta Hän analysoi tulokset ja havaintonsa, ja yrittää tunnistaa erityistä huomiota vaativia piirteitä ohjelman toiminnasta Testaaja päättää sitten, mitä hän seuraavaksi testaa Jne 23 April 2018 13

Tutkivan testauksen kulku Näin testaaja rakentaa pala palalta käsitystään ohjelman toiminnasta ja käytöstä ja mahdollisista laatuongelmista Testaajan havaintoja voidaan käyttää hyväksi myös muihin tekniikoihin perustuvien testien suunnittelussa (ja tekniikoiden valinnassa), jos niitten suorittamiseen on aikaa Esimerkki: Spotify-sovelluksen offline-tilan tutkivaa testausta: https://www.youtube.com/watch?v=o0mxe8on kh4 23 April 2018 14

Testi-istunnot Tutkiva testaus kannattaa yleensä kohdistaa vain tiettyihin ohjelmaan osiin tai toimintoihin (käyttäjän tehtävät, task) Testattava toiminnot tarkennetaan testausta varten konkreettisiin tavoitteisiin tai aiheisiin (goal, charter) Yhden aiheen testaukseen saisi kulua korkeintaan pari tuntia Kutakin aihetta kohden pidetään oma testiistuntonsa (test session) 23 April 2018 15

Testi-istunnot Testi-istuntoa ohjaavat seuraavat kysymykset Miksi? Mikä on istunnon tavoite? Mikä on testin kohde? Miten? Mitä testaustekniikkaa pitäisi käyttää? Minkälaisia ongelmia pitäisi löytää? Testi-istunnon aikana on luonnollisesti pidettävä kirjaa löydetyistä mahdollisista vioista ja niiden havaitsemiseen johtaneista testitapauksista Istunnon jälkeen löydökset käydään läpi ja laaditaan vikaraportit 23 April 2018 16

Tutkivan testauksen pääideat Yhden testitapauksen suorituksen tulokset vaikuttavat seuraavien testitapausten valintaan Testaaja muodostaa ohjelmasta itselleen testin aikana sisäisen ( mentaalisen ) mallin, joka kertoo miten ohjelma toimii ja miten sen tulisi käyttäytyä Testaaja suorittaa testejä Täydentääkseen muodostamaansa mallia Löytääkseen ohjelmasta mallista poikkeavia piirteitä ja käyttäytymistä 23 April 2018 17

Testitapausten määrittely Testaajat käyttävät kaikkea tietoaan ja kokemustaan testitapausten määrittelyyn testi-istuntojen aikana Testitapauksilla on luonnollisesti esi- ja jälkiehdot, tietyt syötteet ja odotettu tulos, kuten etukäteen suunnitelluilla testeilläkin Erilaiset vihje- ja tarkistuslistat usein esiintyvistä virheistä ja vioista ja epäilyttävistä tilanteista auttavat testaajaa testi-istunnon aikana Listoista on hyötyä myös ohjelmistokehittäjille 23 April 2018 18

Testin lopetusehto Testauksen päättämiselle on vaikea suoraan määritellä lopetusehtoa Ei etukäteen määrättyjä testitapauksia, joiden suoritustilannetta seurataan Ei kattavuusmittareita Session-based testing pyrkii tuomaan tutkivaan testaukseen keinoja arvioida ja ohjata testauksen edistymistä: http://en.wikipedia.org/wiki/sessionbased_testing 23 April 2018 19

Tekniikan arviointia Kokemusperäinen ja intuitiivinen testaus auttaa löytämään ohjelmasta virheitä, jotka systemaattisilla menetelmillä voivat jäädä huomaamatta Tekniikan tuloksellisuus ja tehokkuus riippuvat paljon testaajien taidosta, kokemuksesta ja intuitiivisesta kyvystä Taito asettua käyttäjän asemaan Täydentää hyvin muita menetelmiä, mutta ei yksinään riitä ainoaksi testausmenetelmäksi 23 April 2018 20

Tekniikan arviointia Lisää tietoa tutkivasta testauksesta: http://www.testingeducation.org/bbst/explorato ry/ Kannattaa katsoa video (kesto16 min.) 23 April 2018 21

Yhteenveto testien suunnittelutekniikoista 23 April 2018 22

Tekniikoiden valinnasta Yleinen tavoite Määritellään riittävän (toisiinsa verrattuna) erilaisia testitapauksia käyttäen sovellettavissa olevia menetelmiä vikojen löytämiseksi testin kohteesta halutulla todennäköisyydellä ja mahdollisimman vähällä työllä. 23 April 2018 23

Valintaan vaikuttavia tekijöitä Valinnassa on otettava huomioon monia erilaisia seikkoja ja rajoitteita Testikohteen luonne Ohjelmien kompleksisuus vaihtelee suuresti jopa ohjelman sisällä Jotkin kriittiset moduulit, joissa esiintyvillä vioilla on suuri vaikutus ohjelman laatuun, vaativat perusteellisempaa white box -testausta kuin vähemmän kriittiset osat 23 April 2018 24

Vaikuttavia tekijöitä Formaalin dokumentaation ja työkalujen saatavuus Formaalit spesifikaatiot tai mallit voivat toimia syötteenä työkaluille, jotka osaavat generoida testitapauksia automaattisesti (model-driven testing) Standardien noudattaminen Viranomaiset ja tietyt teollisuudenalat saattavat vaatia tiettyjen testausmenetelmien ja testikattavuuksien käyttöä 23 April 2018 25

Vaikuttavia tekijöitä Testaajien kokemus Testaajien aiemmat myönteiset kokemukset voivat johtaa tiettyjen tekniikoiden valintaan Asiakkaan toiveet Asiakas saattaa vaatia tiettyjen testausmenetelmien ja testikattavuuksien käyttöä, mikä asettaa tietyn vähimmäistason toimittajan tekemälle testaukselle Riskianalyysin tulokset Suuri riski oikeuttaa ja vaatii suuren panostuksen testaukseen 23 April 2018 26

Vaikuttavia tekijöitä Muut tekijät Spesifikaatioiden ja muun dokumentaation saatavuus ja laatu Testaajien osaaminen Aika- ja budjettirajoitteet Tarvittavat testaustasot ja kokemukset siitä, millaisia vikoja niillä yleensä esiintyy ja millaisilla tekniikoilla niitä on aikaisemmin löydetty 23 April 2018 27

Neuvoja valintaan Testaustekniikoiden valinnan pitäisi aina perustua huolelliseen tapauskohtaiseen harkintaan, ei oletusratkaisuihin One size does not fit all Toiminnallisuuden riittävä verifiointi on aina taattava Testitapausten suunnitteluun (menetelmästä riippumatta) kuuluu testin kohteen tuottaman odotetun tuloksen tai käyttäytymisen määrittely 23 April 2018 28

Neuvoja valintaan Syötteiden jakoa ekvivalenssiluokkiin ja raja-arvoanalyysiä on aina syytä käyttää Testitapausten suoritukseen on hyvä yhdistää kattavuusmittareiden käyttö Tilamallitekniikkaa on käytettävä, jos testikohteella on sen käyttäytymiseen vaikuttavia selvästi erillisiä tiloja Jos syötteille on määritelty keskinäisiä riippuvuuksia, ne voidaan mallintaa syyseurausverkoilla tai päätöstauluilla 23 April 2018 29

Neuvoja valintaan Koko ohjelmiston käyttötapauksia voi käyttää testitapausten suunnittelun pohjana Yksikkö- ja integrointitestauksesta pitäisi kerätä koodikattavuustietoa Suorittamatta jäänyt koodi on kandidaatti white box testaukselle (erikoistapauksia, poikkeustilanteita, virheellisesti koodattuja ehtoja jne) 100% haarautumakattavuus on vähimmäistavoite Silmukat pitäisi suorittaa useampaan kertaan 23 April 2018 30

Neuvoja valintaan Polkukattavuus on lähinnä teoreettinen mittari testauksen intensiteetille Ei voida käytännössä yleensä saavuttaa White box tekniikat sopivat alemmille testaustasoille, kun taas black box tekniikat sopivat kaikille tasoille Testaajien intuitioon ja kokemukseen perustuvia menetelmiä ei pidä väheksyä 23 April 2018 31

White box subsumption (sisältyvyys) -suhteet Korkea luottamustaso polkukattavuus moniehtokattavuus haarautumakattavuus moniehtotuloskattavuus Matala luottamustaso ehtokattavuus lausekattavuus Lähde: G. Bath, J. McKay: The Software Test Engineer's Handbook. Rocky Nook, 2008. 23 April 2018 32