1 / 12

Funktionaalisen aliohjelman mustalaatikkotestaus (1/12)

Funktionaalisen aliohjelman mustalaatikkotestaus (1/12). Testaukseen tarvitaan tietysti aina oraakkeli (käsitellään erikseen). Yksittäinen testitapaus: syöte (parametri tai parametrilista).

kiefer
Download Presentation

Funktionaalisen aliohjelman mustalaatikkotestaus (1/12)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Funktionaalisen aliohjelman mustalaatikkotestaus (1/12) Testaukseen tarvitaan tietysti aina oraakkeli (käsitellään erikseen). Yksittäinen testitapaus: syöte (parametri tai parametrilista). Jos parametrin arvoalue on diskreetti ja hyvin pieni, jokaisella arvolla voidaan testata (täysin kattava testaus). • Esim. luettelotyyppi Sukupuoli = (mies, nainen) Yleensä arvoja on liikaa, jotta ne kaikki voitaisiin käydä läpi. Testitapausten valinta perustuu virhehypoteesiin (tietoiseen tai tiedostamattomaan). Yksinkertaisimmat mahdollisuudet testitapausten valintaan: • Mielivaltainen (ad lib) – ei mitään ennakkokäsitystä siitä, mitkä syötearvot voisivat olla virheherkkiä.

  2. Funktionaalisen aliohjelman mustalaatikkotestaus (2/12) • Satunnainen (random) – samoin, mutta syötteet valitaan satunnaisotannalla. • Järkevä silloin, jos tarkemmalle virhehypoteesille ei todellakaan ole perusteita. • Virheenarvaus (error guessing) – virhehypoteesi on vain testaajan päässä, perustuu yleensä kokemukseen. • Voi olla hyvä systemaattisempien menetelmien täydentäjä! Ekvivalenssiositus (Beizer: partition testing) • Virhehypoteesi: syötteiden arvoalue voidaan jakaa sellaisiin osiin (ekvivalenssiluokkiin), että aliohjelma toimii kaikilla saman luokan syötteillä samalla tavoin (oikein tai virheellisesti). • Myös tulosten arvoalue voidaan jakaa samalla tavoin. • Heikompi virhehypoteesi: aliohjelma toimii kaikilla saman luokan syötteillä todennäköisesti samalla tavoin. • Satunnaistestaus luokan sisällä voi kannattaa. • Lisäksi häiriöiden syynä voivat olla eri ekvivalenssiluokissa eri virheet.

  3. Funktionaalisen aliohjelman mustalaatikkotestaus (3/12) Usein tiedetään tai on hyviä syitä olettaa, että syötearvojen eri osa-alueita käsitellään tai pitäisi käsitellä eri tavalla. • Ainakin virheelliset / kelvolliset syötteet. Jos parametri on kokonaisluku- tai reaalilukutyyppinen, ekvivalenssiluokiksi valitaan yleensä (yhtenäisiä) välejä. • Mielekästä, jos parametri esittää jotain vähintään järjestysasteikolla mitattavaa suuretta (myös luettelotyyppinä). • Ei yhtä mielekästä, jos parametrin arvot ovat vain nominaaliasteikolla (vaikka esitettäisiin kokonaislukuina). Rakenteinen parametrityyppi? • Tavallisen taulukon tai tietueen voidaan katsoa vastaavan useita yksinkertaisia parametrejä. • Esim. merkkijonojen jako voi perustua tilanteen mukaan eri seikkoihin (pituus, sanakirjajärjestys, ...). • Luokan olioiden jako voi perustua niiden abstraktiin tilaan.

  4. Funktionaalisen aliohjelman mustalaatikkotestaus (4/12) Raja-arvoanalyysi • Liittyy yleensä ekvivalenssiositukseen (jossa luokat ovat välejä). • Virhehypoteesi: vaikka aliohjelma toimisi muuten oikein eri ekvivalenssiluokissa, se voi luokitella lähellä luokkien rajoja olevat arvot väärin. • Kokonaislukujen tapauksessa otetaan testitapauksiksi kunkin luokan pienin ja suurin arvo. • Reaalilukujen osituksessa raja-arvo kuuluu aina vierekkäisistä luokista vain toiseen. • Suljettu alue – avoin alue. • Tietokone-esityksessä avoimellakin alueella on itse asiassa oma raja-arvonsa (maksimi tai minimi). • Kultakin rajalta valitaan testitapauksiksi suljetulta alueelta itse raja-arvo, avoimelta alueelta hyvin lähellä rajaa oleva arvo. • Raja-arvo voidaan joskus katsoa myös omaksi ekvivalenssi-luokakseen. • Silloin tarvitaan kolme testitapausta.

  5. Funktionaalisen aliohjelman mustalaatikkotestaus (5/12) • Ellei uskota virheiden liittyvän pelkästään rajoihin, on syytä valita kustakin ekvivalenssiluokasta myös testitapaus (ainakin yksi), joka ei ole lähellä rajoja. Esimerkki Parametrinä on reaalilukuna esitetty kulma, yksikkönä aste. • Vaaditaan, että -360 kulma  360. • Virhehypoteesi: on hyvin mahdollista, että aliohjelma käyttäytyy eri tavalla eri kvadranteissa ja myös silloin, kun parametrin arvo on tasan 90:n monikerta. • Kelvolliset ekvivalenssiluokat: n*90 <kulma <(n+1)*90, n = -4, -3, ..., 3; kulma =n*90, n = -4, -3, ..., 4. • Kielletyt ekvivalenssiluokat: kulma <-360, kulma > 360. • Valitsisin avoimista kelvollisista luokista 3 arvoa kustakin (yhden satunnaistetusti kaukaa rajoista). • Kummastakin kielletystä luokasta riittää vastaavasti kaksi arvoa. • Yhteensä siis 37 testitapausta.

  6. Useampi kuin yksi parametri (syöte) Yksinkertaisimmassa tapauksessa parametrit ovat toisistaan riippumattomia. Minimaalinen lähestymistapa: • Jokaiselle parametrille erikseen tarkasteltuna tulee käydyksi kaikki tarpeelliset testitapaukset (ekvivalenssiluokat, raja-arvot). • Kelvollisia testitapauksia tarvitaan vain yhtä monta kuin vaativimmalle parametrille yksinään. • Lisäksi tapaukset, joissa yhdellä parametrillä on kielletty arvo. • Virhehypoteesi: • Eri parametreistä aiheutuvat virheetkin ovat todella toisistaan riippumattomia. • Johonkin parametrin liittyvän virheen ilmeneminen häiriönä ei riipu muiden parametrien arvoista. • Oletukset vaikuttavat kovin optimistisilta. Funktionaalisen aliohjelman mustalaatikkotestaus (6/12)

  7. Funktionaalisen aliohjelman mustalaatikkotestaus (7/12) Maksimaalinen lähestymistapa: • Koko syötteen ekvivalenssiluokkien (tai yleensä tapausten) määrä on parametrien luokka- tai tapausmäärien tulo. • Koko syötteen testitapausten joukko on parametrien tapausjoukkojen karteesinen tulo. • Virhehypoteesi: eri parametreistä aiheutuvien virheiden ja niiden ilmenemisen välillä voi olla mielivaltaisia vuorovaikutuksia. • Eksponentiaalinen räjähdys, jos parametrejä on paljon. Kompromissi: • Valitaan tapaukset niin, että jokaiselle N parametrin joukolle käydään läpi kaikki mahdolliset arvokombinaatiot. • Virhehypoteesi: parametrien väliset vuorovaikutukset (ainakin merkittävät) ovat enintään N:nvälisiä. • Yleensä pidetään jo N = 2 riittävänä. • Testitapausten määrä pysyy kohtuullisena. • Menetelmistä (ainakin OATS, Orthogonal Array Testing System) puhutaan myöhemmin.

  8. Funktionaalisen aliohjelman mustalaatikkotestaus (8/12) Yleisempi tapaus: parametrit (tai niiden haluttu vaikutus) eivät ole toisistaan riippumattomia. Hyvin yksinkertainen esimerkki: • Parametrit X ja Y (reaalilukuja). • Tuloksena pitää palauttaa 0, jos X < 4 ja Y  4 tai X  6 ja Y < 3, muuten 1. • Syötteen ekvivalenssiluokkia on kaksi: harmaa alue ja vinoviivoitettu alue. • Puhtaassa ekvivalenssiluokkatestauksessa riittää kaksi tapausta. Y 4 3 4 6 X

  9. Jos parametrejä käsiteltäisiin toisistaan riippumattomina, tarvittaisiin minimaalisessa lähestymistavassa 3, maksimaalisessa 9 testitapausta. Osa-alueet voidaan esittää (päätöstaulussa) neljänä varianttina, joista kukin sisältää vain yksinkertaisen ehdon X:lle ja Y:lle: 1: X < 6 ja Y < 4 (harmaa) 2: X  4 ja Y  3 (harmaa) 3: X < 4 ja Y  4 (viivoitettu) 4: X  6 ja Y < 3 (viivoitettu Ei ole normalisoitu muoto: Variantit 1 ja 2 menevät osittain päällekkäin. Kattaa kuitenkin kaikki mahdollisuudet. Funktionaalisen aliohjelman mustalaatikkotestaus (9/12)

  10. Muita vaihtoehtoja testitapausten valintaan: Varianttikattavuus: pisteet 1, 5 ja 3 riittävät. Kaikki yhdistelmät, joissa vain yksi ehto on tosi: 1, 5, 2 ja 4. Kaikki yksittäisten ehtojen arvojen yhdistelmät: 1, 5, 2, 3 ja 4. Funktionaalisen aliohjelman mustalaatikkotestaus (10/12)

  11. Raja-arvotestaus ''Yksi kerrallaan'' (1×1) -strategia (Binder): Alueiden (ekvivalenssiluokkien) välisen rajan jokaiselta sivulta yksi rajapiste ja yksi rajan läheltä. Esimerkissä tarvitaan 8 testitapausta. Mustat ympyrät rajalla, valkoiset rajan lähellä. Tämä ei ota huomioon rajojen kärkipisteitä (kulmia). Niiden kohdalla voidaan epäillä omia luokitteluvirheitään. Funktionaalisen aliohjelman mustalaatikkotestaus (11/12) Y 4 3 X 4 6

  12. Beizerin suositus: Rajan jokaiselta sivulta kaksi rajapistettä, läheltä kärkiä. Avoimelta osa-alueelta piste läheltä kunkin sivun keskikohtaa. Itse kärkipisteetkin ovat hyödyllinen lisä. Funktionaalisen aliohjelman mustalaatikkotestaus (12/12) Kolme parametriä, joiden välillä on riippuvuuksia? • Osa-alueet ovat kappaleita (3D), rajat pintoja (2D). • Lisäksi otettava edelleen huomioon särmät (1D) ja kärjet (0D). Tilanne tulee vielä monimutkaisemmaksi, jos parametrejä on enemmän. • Yleensä ei käsitellä useampia kuin kahta parametriä yhdessä.

More Related