Dynaaminen analyysi I

Samankaltaiset tiedostot
Staattinen testaus Dynaaminen testaus I Luento 3 Antti-Pekka Tuovinen

Dynaaminen analyysi II

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen

Harjoitustyön testaus. Juha Taina

Dynaaminen analyysi IV

Dynaaminen analyysi IV Luento 6 Antti-Pekka Tuovinen

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

Ohjelmiston testaus ja laatu. Testausmenetelmiä

Dynaaminen analyysi III Luento 5 Antti-Pekka Tuovinen

Dynaaminen analyysi III

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

Kontrollipolkujen määrä

Ohjelmistotestauksen perusteita II

58160 Ohjelmoinnin harjoitustyö

Onnistunut Vaatimuspohjainen Testaus

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

Testaaminen ohjelmiston kehitysprosessin aikana

Algoritmit 1. Luento 3 Ti Timo Männikkö

Ohjelmiston testaus ja laatu. Testaustasot

Käyttötapausanalyysi ja testaus tsoft

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

Laadunvarmistustekniikat

Harjoitus 7: NCSS - Tilastollinen analyysi

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

Lohtu-projekti. Testaussuunnitelma

Ohjelmiston toteutussuunnitelma

Convergence of messaging

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

Tapahtuipa Testaajalle...

Testausraportti. Orava. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma Labra

Ohjelmistotuotanto s

Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen

Ohjelmoinnin perusteet Y Python

Hirviö Järjestelmätestauksen testitapaukset ja suoritusloki I1

ABHELSINKI UNIVERSITY OF TECHNOLOGY

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

T Testiraportti - järjestelmätestaus

Sovellettu todennäköisyyslaskenta B

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

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Testiautomaatio tietovarastossa. Automaattisen regressiotestauksen periaate ja hyödyt

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2016

Algoritmit 1. Luento 1 Ti Timo Männikkö

Kuopio Testausraportti Asiakkaat-osakokonaisuus

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Uudelleenkäytön jako kahteen

TAMPEREEN TEKNILLINEN YLIOPISTO

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

Tilastollinen testaus. Vilkkumaa / Kuusinen 1

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

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

Yksikkötestaus. Kattava testaus. Moduulitestaus. Ohjelman testaus. yksikkotestaus/ Seija Lahtinen

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

1 Määrittelyjä ja aputuloksia

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

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

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

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

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

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä

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

Testitapausten suunnittelu

811120P Diskreetit rakenteet

L models. Testisuunnitelma. Ryhmä Rajoitteiset

Ohjelmistotuotantoprojekti

MS-C2103 Koesuunnittelu ja tilastolliset mallit (5 op)

Good Minton QA Raportti Iteraatio 1 Sulkapalloliiton Kilpailujärjestelmä

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

Järjestelmätestauksen vaatimukset. 6. Järjestelmätestaus (B, 14) Järjestelmätestauksen korkean tason testausstrategia

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

Testauksen suunnittelu. Faculty of Science 30 April

T Testiraportti - integraatiotestaus

Suunnitteluvaihe prosessissa

Tietorakenteet ja algoritmit

Väliestimointi (jatkoa) Heliövaara 1

811120P Diskreetit rakenteet

Kuopio Testausraportti Kalenterimoduulin integraatio

MS-C2103 Koesuunnittelu ja tilastolliset mallit (5 op)

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

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

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA)

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

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

Ohjelmistotestauksen perusteita Luento 1 Antti-Pekka Tuovinen

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

Ohjelmistojen testaus

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

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

T Testitapaukset TC-1

Testaus osana ohjelmistojen elinkaarta II

Good Minton Sulkapalloliiton Kilpailujärjestelmä SEPA: Heuristinen arviointi

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

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

UCOT-Sovellusprojekti. Testausraportti

Transkriptio:

Dynaaminen analyysi I Luento 6 Antti-Pekka Tuovinen 4 April 2013 1 Tavoitteet Testitapausten suunnittelun ja suorituksen perusteet Black-Box testitapausten suunnittelu Ekvivalenssiluokat Raja-arvo (reuna-arvo) analyysi 4 April 2013 2 1

(Dynaaminen) testaaminen Ohjelman tai ohjelman osan (test object) suorittamista Tunnetuissa olosuhteissa Tietyillä syötteillä Todeten, vastaako saatu tulos odotettua tulosta 4 April 2013 3 Kokonaisen ohjelman testaus Järjestelmä- ja hyväksyntätestauksessa testin kohteena on toimiva ( testausta vaille valmis ) ohjelma Testin suoritus tapahtuu ohjelman käyttöliittymän tai järjestelmärajapinnan kautta Kaikki testien suoritukseen tarvittava toiminnallisuus on jo implementoitu ohjelmaan Yleensä tarvitaan kontrolloitu suoritusympäristö ja erikseen tuotettu testidata 4 April 2013 4 2

Ohjelman osittainen testaus Yksikkö- ja integrointitestauksessa testin kohteena on ohjelman osittainen toteutus Ei yleensä sellaisenaan suoritettava Testipeti tai kehys (testbed) simuloi testattavan komponentin tai alijärjestelmän suoritusympäristöä siten, että haluttujen testitapausten suorittaminen on mahdollista 4 April 2013 5 Testipeti Kurssikirja kuva 5-1 Test bed, s. 105 4 April 2013 6 3

Testien suunnittelu Tuloksellinen ohjelman tai sen osan testaus vaatii järjestelmällistä ja vaiheittaista työtapaa Kiinnitä testin tavoitteet ja reunaehdot Määrittele yksittäiset testitapaukset Päätä, miten testi suoritetaan Muodollisuuden ja dokumentaation määrä riippuu mm. sovellusalueesta, prosessikäytännöistä, aikarajoitteista jne. 4 April 2013 7 Testin tavoitteet ja reunaehdot Mitä pitää testata ja miten? Testausstrategia Vaatimusten täyttymisen osoittaminen Esiehdot ja olosuhteet Esim. testidatan saatavuus Jäljitettävyys Mitä vaatimuksia testit koskevat? 4 April 2013 8 4

Testitapausten määrittely Syötteiden (test input) määrittely Esi- ja jälkiehdot ennen ja jälkeen testitapauksen suorituksen Odotetun tuloksen/käyttäytymisen määrääminen 4 April 2013 9 Testien suoritus Testitapaukset kootaan testiajoihin ja skenaarioihin, jotka ryhmitellään esimerkiksi testin aiheen tai testin tavoitteiden mukaan Prioriteetit, riippuvuudet, regressiotestitapaukset Testaajien allokointi ja testien aikataulutus Testiajojen ja skenaarioiden suorituksen automatisointi ( skriptaus ) 4 April 2013 10 5

Testitapausten suunnittelutekniikat Suunnittelutekniikat jaetaan kahteen peruskategoriaan Black box eli musta laatikko -tekniikat White box eli lasilaatikko -tekniikat 4 April 2013 11 Black box Testitapausten suunnittelu perustuu testin kohteen spesifikaatioon Toiminnot, käyttäytyminen Testin kohteen rakennetta ja implementaatiota ei oteta huomioon Testin kohteesta nähdään vain sen ulkoinen käyttäytyminen ja sen tuottamat tulokset annetuilla syötteillä, ei sen sisäistä tilaa (Point of Observation) Kohteen käyttäytymistä voidaan kontrolloida vain syötteillä (Point of Control) 4 April 2013 12 6

White box Testin kohteen sisäisen toteutuksen huomioon ottava tekniikka Kontrolli- ja datavuot Kohteen sisäistä tilaa havainnoidaan ja sitä voidaan manipuloida testin suorituksen aikana Tavoitteena testin kohteen rakenteen kattava testaus 4 April 2013 13 Black box vs. White box Kurssikirjan kuva 5-2 s. 109 Black box -tekniikat sopivat kaikkien testaustasojen testien suunnitteluun White box -tekniikat sopivat paremmin komponentti- ja integraatiotestien suunnitteluun 4 April 2013 14 7

Black box -tekniikat Ekvivalenssiluokat Raja-arvo analyysi 4 April 2013 15 Ekvivalenssiluokkiin jaon lähtökohdat Testin suunnittelun perusteena on testin kohteen toiminnallinen määrittely Syötteet, tulosteet, ulkoisesti havaittava käyttäytyminen Kurssin alussa nähtiin, että pienenkin funktion täydellinen testaaminen sen kaikilla mahdollisilla syötteillä on mahdotonta Testien suunnittelijan on valittava järkevä joukko syötteitä testitapauksiinsa Määrä ja (oletettu) kyky löytää vikoja 4 April 2013 16 8

Ekvivalenssiluokkiin jaon perusidea Jokaisen syötteenä olevan erillisen parametrin tai syöte-elementin koko arvoalue jaetaan ekvivalenssiluokkiin Jaon perusteena on oletus, että testin kohde käsittelee kaikki samaan ekvivalenssiluokkaan kuuluvat arvot samalla tavoin - esimerkiksi Tuottaa tulosarvon käyttäen samaa laskentakaavaa Antaa virheilmoituksen väärästä syötteestä 4 April 2013 17 Ekvivalenssiluokkiin jaon perusidea Testattaviksi syötearvoiksi riittää siis valita vain yksi edustaja kustakin ekvivalenssiluokasta Testin suorittaminen jollain toisella saman ekvivalenssiluokan arvolla ei aiheuta oleellisesti erilaista testikohteen reaktiota tai käyttäytymistä Myös epävalidit eliväärät syötteet täytyy jakaa ekvivalenssiluokkiin! 4 April 2013 18 9

Ekvivalenssiluokkiin jako Esimerkki kurssikirja, s. 110-111 4 April 2013 19 Ekvivalenssiluokkien määrittely 1. Vaihe syötteiden ekvivalenssiluokiin jako Määritetään jokaisen syöte-elementin (parametrin, syötekentän) mahdollisten arvojen alue (input domain) Arvoalue jaetaan alustavasti kahteen ekvivalenssiluokkaan Oikeat syötteet, jotka testin kohde käsittelee spesifikaationsa mukaan Väärät syötteet 4 April 2013 20 10

Ekvivalenssiluokkien määrittely 2. Vaihe ekvivalenssiluokkien tarkentaminen Tutkitaan testin kohteen spesifikaatiota tarkemmin, ja jokaista eri tavalla käsiteltävää syötearvojoukkoa kohden määritellään uusi ekvivalenssiluokka Kun jako ei enää tarkennu, valitaan kustakin ekvivalenssiluokasta yksi arvo luokan edustajaksi eli testitapauksissa käytettäväksi konkreettiseksi syötearvoksi myös luokan raja-arvot on syytä testata! Testitapausten laatu eli kyky löytää virheitä riippuu siitä, miten hyvin eri ekvivalenssiluokat on tunnistettu ja miten luokkien edustajat on valittu 4 April 2013 21 Ekvivalenssiluokkien määrittely Esimerkki kurssikirjasta s. 112-113 4 April 2013 22 11

Joukkojen ja diskreettien arvoalueiden ekvivalenssiluokat Ekvivalenssiluokat primitiivisille tietotyypeille löytyvät yleensä melko helposti (esim. luvuille) Syötteenä voi olla myös rakenteisia olioita ja dataa tai joukkojen alkioita Ekvivalenssiluokat pitää tällöin määritellä tapauskohtaisesti järkevällä tavalla Syöteolioiden niitten ominaisuuksien (property, attribute) perusteella, jotka vaikuttavat olion käsittelyyn testin kohteessa Esim. matkustajatyypin vaikutus matkan hinnan laskentaan 4 April 2013 23 Testitapausten määrittely Testin kohteella on yleensä useita syötteitä (parametreja), joista jokaisella on vähintään kaksi ekvivalenssiluokkaa (validit ja väärät syötteet) ja jokaisella luokalla yksi tai useampi edustaja Konkreettisissa testitapauksissa jokaiselle eri syöteparametrille pitää antaa jokin arvo Täytyy siis valita, mitkä erillisten syötteiden ekvivalenssiluokkien edustajat yhdistetään testitapausten syötteiksi 4 April 2013 24 12

Syötekombinaatioiden valinnan perussäännöt Kaikki valideja syötteitä edustavien ekvivalenssiluokkien edustajien kombinaatiot on testattava Positiiviset eli validit testitapaukset 4 April 2013 25 Syötekombinaatioiden valinnan perussäännöt Jokainen ei-validi eli vääriä syötteitä edustava ekvivalenssiluokka on myös testattava, mutta niiden edustajia ei saa yhdistää toisten ei-validien luokkien edustajien kanssa Valitaan siis jokin positiivinen testitapaus, johon vaihdetaan täsmälleen yksi väärä syöte, jolloin saadaan negatiivinen eli ei-validi testitapaus Jos vääriä syötteitä on useita, voi olla vaikea todentaa, minkä syötteen käsittely aiheuttaa havaitun virheilmoituksen tai poikkeuksen Jokin poikkeuskäsittely voi myös jäädä testaamatta! 4 April 2013 26 13

Kombinaatioiden määrän hallinta Jos syöteparametreja on useita ja valideja ekvivalenssiluokkia on monta, kombinaatioiden määrä kasvaa nopeasti Määrää voidaan rajoittaa seuraavilla heuristiikoilla Järjestetään ja priorisoidaan kombinaatiot k.o. tapausten oletetun esiintymistiheyden mukaan (tyypilliset tapaukset testataan) Suositaan ekvivalenssiluokkien raja-arvoja sisältäviä kombinaatioita Tarkastellaan parametreja pareittain ja valitaan niiden ekvivalenssiluokkien edustajien kaikki pariyhdistelmät sisältävät kombinaatiot Jokaisen ekvivalenssiluokan jokainen edustaja on vähintään yhdessä testitapauksessa mukana 4 April 2013 27 Testauksen lopetusehto Ekvivalenssiluokkien avulla voidaan määritellä testauksen lopetusehto EL-kattavuus = (testattujen EL:ien lukumäärä / EL:ien kokonaismäärä) * 100 % 4 April 2013 28 14

Ekvivalenssitekniikan arviointia Ekvivalenssiluokkien määrittely on kriittinen tekijä testitapausten tehon kannalta Puutteellinen analyysi voi jättää luokkia löytymättä Johtaa vaatimuksissa esiintyvien ehtojen ja rajoitusten kattavaan testaukseen Minimoi turhia testitapauksia (kustakin ekvivalenssiluokasta poimitaan vain muutama edustaja) Voidaan soveltaa kaikilla testaustasoilla Ei ota huomioon riippuvuuksia ja vuorovaikutuksia eri syöteparametrien välillä 4 April 2013 29 Raja-arvo analyysi Ekvivalenssiluokkia täydentävä tekniikka Lähtökohtana havainnot, joiden mukaan vikoja esiintyy usein ekvivalenssiluokkien rajoilta peräisin olevilla syötearvoilla Rajoja ei ole ehkä määritelty selvästi Ohjelmoija on ymmärtänyt väärin, missä luokkien rajat kulkevat Loogisten lausekkeiden koodausvirheet Ei voida käyttää parametreille, joiden e-luokilla ei ole reuna-alkioita (joukot) 4 April 2013 30 15

Raja-arvo analyysi Jos e-luokalla on tunnistettava raja (reuna-alkio), testataan 1) Raja-arvolla 2) Raja-arvoa lähimpänä olevalla samaan e-luokkaan kuuluvalla arvolla 3) Raja-arvoa lähimpänä olevalla e-luokan ulkopuolisella arvolla Jos varsinaista raja-arvoa ei ole olemassa, testataan 2) ja 3) Liukulukuarvoille täytyy määritellä tarkkuus (pienin arvon muutos), jolla raja-arvotestaus tehdään 4 April 2013 31 Raja-arvo analyysi Esimerkki kurssikirja s. 122 4 April 2013 32 16

Vinkkejä raja-arvo analyysiin Syötteen pituus on rajoitettu 1 ja 100 alkion välille; testataan 1, 100, 0 ja 101 alkion mittaisilla syötteillä Jos testin kohteen tuottamalla tuloksella (output) on tietty arvoalue rajoineen, kannattaa yrittää löytää syötteet, jotka tuottavat raja-arvot sekä niiden lähimmät arvot Järjestettyjen kokoelmien ensimmäiset ja viimeiset alkiot ovat kiinnostavia Tyhjät kokoelmat ja taulukot ovat hyviä syötteitä Samoin täydet kokoelmat ja taulukot 4 April 2013 33 Vinkkejä raja-arvo analyysiin Hyvin suuret syötteenä annettavat tietorakenteet ja datamäärät testaavat kohteen käsittelykapasiteetin rajoja Hyvin lähellä toisiaan olevat arvot sekä toisistaan hyvin kaukana olevat arvot testaavat numeeristen funktioiden erottelukykyä 4 April 2013 34 17

Testauksen lopetusehto RA-kattavuus = (testattujen RA:jen lukumäärä / RA:jen kokonaismäärä) * 100 % 4 April 2013 35 Raja-arvo analyysin arviointia Hyvin tehokas menetelmä yhdessä ekvivalenssiluokkien kanssa käytettynä Vikojen löytymisen todennäköisyys on suurin rajatapausten käsittelyssä Raja-arvot ja niiden lähimmät arvot riittävät teoriassa e-luokkien edustajiksi Tekniikka vaikuttaa yksinkertaiselta, mutta syötearvojen määrittely ei ole aina helppoa rajatapausten käsittelyn liipaisemiseksi testikohteessa 4 April 2013 36 18

Tavoitteet Testien suunnittelun ja suorituksen perusteet Black-Box testitapausten suunnittelu Ekvivalenssiluokat Raja-arvo (reuna-arvo) analyysi 4 April 2013 37 19