Dynaaminen analyysi IV

Samankaltaiset tiedostot
Dynaaminen analyysi IV Luento 6 Antti-Pekka Tuovinen

Dynaaminen analyysi III Luento 5 Antti-Pekka Tuovinen

Dynaaminen analyysi III

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

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

Ohjelmistotuotantoprojekti

Convergence of messaging

Harjoitustyön testaus. Juha Taina

Ohjelmistotestaus -09

Tutkittua tietoa. Tutkittua tietoa 1

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

Testaussuunnitelma Labra

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

Lohtu-projekti. Testaussuunnitelma

Testataanko huomenna?

Tapahtuipa Testaajalle...

Ohjelmiston testaus ja laatu. Testaustasot

Hyväksymistestauksen tarkistuslista järjestelmän hankkijalle

Ohjelmistojen testaus

Staattinen testaus Dynaaminen testaus I Luento 3 Antti-Pekka Tuovinen

Testauksen suunnittelu. Faculty of Science 30 April

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

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

Ohjelmiston toteutussuunnitelma

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

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

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

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

Kuopio Testausraportti Asiakkaat-osakokonaisuus

T Testiraportti - järjestelmätestaus

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

Testauksen hallintaa teekkareille (ja muille kiinnostuneille) Arto Stenberg

Laadunvarmistuksen suunnitelma. Ryhmä ExtraTerrestriaLs Aureolis Oy

Ohjelmistotuotanto s

Laadunvarmistustekniikat

@Tampereen Testauspäivät ( )

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

Harjoitus 7: NCSS - Tilastollinen analyysi

UCOT-Sovellusprojekti. Testausraportti

Ohjelmistotestauksen perusteita I Luento 1 Antti-Pekka Tuovinen

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

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

Hirviö Laadunvarmistussuunnitelma

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

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

Automaattinen yksikkötestaus

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

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

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

Hirviö Vertaistestausraportti

LAATURAPORTTI Iteraatio 1

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

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

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

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

Perustaso HARJOITUSKOE Sertifikaattisisältö versio 2010 Harjoituskoe versio 2011

Sopisiko testiautomaatio yritykseesi juuri nyt? Testiautomaation soveltuvuuden arviointiopas

Kahdenlaista testauksen tehokkuutta

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

Standardit tietoturvan arviointimenetelmät

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

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

Siimasta toteutettu keinolihas

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2016

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

Standardi IEC Ohjelmisto

L models. Testisuunnitelma. Ryhmä Rajoitteiset

Transkriptio:

Dynaaminen analyysi IV Luento 9 Antti-Pekka Tuovinen 16 April 2013 1 Tavoitteet Kokemusperäinen testitapausten suunnittelu Yhteenvetoa suunnittelutekniikoista 16 April 2013 2 1

Testitapausten kokemusperäinen suunnittelu 16 April 2013 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 16 April 2013 4 2

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 16 April 2013 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 16 April 2013 6 3

Systemaattisuutta tarvitaan, mutta Ennakkoon laadituilla testitapauksilla ja niistä koostetuilla testiajoilla ja testiskenaarioilla suoritusohjeineen (scripted testing) on siis omat rajoitteensa ja puutteensa ( Scripted testing: http://en.wikipedia.org/wiki/test_script ) 16 April 2013 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 16 April 2013 8 4

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ä 16 April 2013 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 16 April 2013 10 5

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ä 16 April 2013 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 16 April 2013 12 6

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 16 April 2013 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 16 April 2013 14 7

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) 16 April 2013 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 16 April 2013 16 8

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ä 16 April 2013 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 16 April 2013 18 9

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 16 April 2013 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 16 April 2013 20 10

Tekniikan arviointia Lisää tietoa tutkivasta testauksesta: http://www.testingeducation.org/bbst/explorato ry/ Kannattaa katsoa video (kesto16 min.) 16 April 2013 21 Yhteenveto testien suunnittelutekniikoista 16 April 2013 22 11

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ä. 16 April 2013 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 16 April 2013 24 12

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öä 16 April 2013 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 16 April 2013 26 13

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 16 April 2013 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 16 April 2013 28 14

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 16 April 2013 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% lausekattavuus on vähimmäistavoite Silmukat pitäisi suorittaa useampaan kertaan 16 April 2013 30 15

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ä 16 April 2013 31 White box subsumption (sisältyvyys) -suhteet Korkea luottamustaso moniehtokattavuus polkukattavuus haarautumakattavuus moniehtotuloskattavuus ehtokattavuus lausekattavuus Matala luottamustaso Lähde: G. Bath, J. McKay: The Software Test Engineer's Handbook. Rocky Nook, 2008. 16 April 2013 32 16