Funktionaalisen aliohjelman mustalaatikkotestaus (1/12)

Slides:



Advertisements
Samankaltaiset esitykset
makramee-tekniikalla
Advertisements

Hyvässä seurassa on ilo liikkua! ® TUOMARIPALAVERI ”SÄÄNTÖPRIIFFI”
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Testaus ja testausympäristöt
@ Leena Lahtinen Helia Ohjelman perusrakenteet 1. PERÄKKÄISRAKENNE 2. VALINTARAKENNE 3. TOISTORAKENNE.
Ohjelmiston tekninen suunnittelu
Testaus ja testausympäristöt
Tiedonhaku Internetistä PODCASTING Katarina Andersson TU08se
JavaScript (c) Irja & Reino Aarinen, 2007
Osaamisen ja sivistyksen parhaaksi Oppijan verkkopalveluiden hyväksymistestauksen raportointiohje Testitapauksen raportointi Havainnon raportointi.
Suunnitelma ohjelmiston testaukseen
Ohjelman perusrakenteet
Tärkeämpää kuin arvaatkaan
Osaamisen ja sivistyksen parhaaksi Oppijan verkkopalveluiden hyväksymistestauksen testausohjeet Yleisohjeet testaukseen Havaintoraportin täyttäminen.
Kysymykset eivät ole kovin vaikeita, joten älä huijaa!.
Hypoteesin testeistä Testin valinta perustuu aina tutkimusongelmaan ja kuvailuun (joka perustuu mitta-asteikoihin) Testaus ei koskaan ole itsenäinen, vaan.
Yhdistetty M-ary ASK ja M-ary PSK Timo Mynttinen1 Yhdistetty M-ary ASK ja M-ary PSK Tähän asti on kerrallaan käytetty yksinomaan joko amplitudia, taajuutta.
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Testaus Tiptopissa draft Mats Lindstedt, Mika Rintala.
Poikkeuskäsittely- lohkot tMyn1 Poikkeuskäsittelylohkot try-catch Poikkeustilanteiden käsittelymekanismi toteutetaan varatuilla sanoilla try, throw ja.
Fi.opasnet.org fi.opasnet.org/fi/Ydinvoima Haluamme tietää Sinun mielipiteesi. Äänestikö kansanedustajasi oikein ydinvoimasta? Kansalaisparlamentti ydinvoimasta.
Lapin sairaanhoitopiiri Tietohallintastrategia 2007–2011.
(Joskus puhutaan myös komponenttitestauksesta.) Pienin kokonaisuus, joka on järkevä testata erikseen. ● Perinteisesti yksittäinen aliohjelma. ● Olio-ohjelmien.
RSA – Julkisen avaimen salakirjoitusmenetelmä Perusteet, algoritmit, hyökkäykset Matti K. Sinisalo, FL.
Poikkeustenkäsittely  Mitä poikkeustenkäsittely tarkoittaa?  Poikkeuksen käsitteleminen  Poikkeusluokkien hierarkia  Poikkeuksen heittäminen 1.
KULMAN PUOLITTAJA Kulman puolittaja on kulmaan kärjestä alkava puolisuora, joka jakaa kulman kahdeksi yhtä suureksi kulmaksi. k a/2 k Uraehto: Kulman puolittaja.
Mittaustekniikka (3 op)
T Personal SE assignment Project progress tracking and control.
Todennäköisyyslaskennan alkeet ennen esikoulua
Ohjelman perusrakenteet
 Tärkeämpää kuin arvaatkaan 1. Et ole ehkä koskaan tarvinnut varmistuksia, mutta… …ennemmin tai myöhemmin se tapahtuu sinullekin. 2PowerPoint harjoitus.
Näyttely ja Kansio Pirjo Moilanen.
Matematiikan yo-ohjeita Yleisohjeita  Laskimet ja taulukot tuotava tarkastettaviksi vähintään vuorokautta ennen kirjoituspäivää kansliaan.  Laskimien.
13. Hyvä ohjelmointitapa (osa 1)
Osaamisen ja sivistyksen parhaaksi Oppijan verkkopalveluiden hyväksymistestitapausten kuvausohje.
Ruokatavat Ruokatavat ovat todella tärkeitä järjestyksen ja puhtauden ylläpitämiseksi .
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
C 1. Testaus on ”sarja toimintoja” Itse asiassa, testaus on vuorovaikutusta, jota rytmittää ohjelmiston arviointi. Vaikka on hyödyllistä tunnistaa sarja.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Hyvä ohjelmointitapa (osa 2) Yleistä Lisää hyviä ohjelmointikäytäntöjä: − Jaa pitkä koodi osiin. − Käytä attribuutteja säästeliäästi.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
6. Relaatioalgebra ja relaatiokalkyyli
@ Leena Lahtinen Toistorakenne Ohjelmassa toistetaan tiettyjä toimenpiteitä monta kertaa peräkkäin Toisto noudattaa sille kuuluvia tarkkoja standardoituja.
5. Lineaarinen optimointi
Testaus Testaus Testauksella pyritään löytämään virheitä, jotka sitten korjataan. Yksittäinen testi on yleensä ohjelman suoritus (tietyillä.
”Pieni haaste” (Myers 1979, mukailtu) Olkoon testattavana aliohjelma (tai metodi), joka on määritelty seuraavasti: ● Parametreinä annetaan kolme kokonaislukua,
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
Lasilaatikkotestauksen toinen lähestymistapa. ● Siinäkin käytetään vuoverkkoa. ● Tarkastelun kohteena ovat moduulin muuttujat (myös sen käyttämät globaalit.
© Conformiq Software Ltd. | The Future of Software Testing Virheenarvaus.
Kontrollirakenteet laajemmin
Testaus. Yleistä Testaus on suunnitelmallista virheiden etsimistä Tuotantoprosessissa ohjelmaan jää aina virheitä, käytettävistä menetelmistä huolimatta.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
Pedagogisen toimikunnan 11. kokouksen muistio
Robustius Yleinen idea: jokin pysyy muuttumattomana vaikka jotakin muutetaan.
Valintarakenne valintarakenne alkaa aina kysymyksellä eli ehdolla ehto tarkoittaa, että muuttujan sisältöä verrataan toisen muuttujan sisältöön tai vakioon.
S ysteemianalyysin Laboratorio Teknillinen korkeakoulu Pekka Mild Optimointiopin seminaari - Syksy 2005 / 1 Monitavoitteiset vaikutuskaaviot; Ratkaisu.
Kuplalajittelu (bubble sort)
Porin Yksikkö / Elektroniikka Tanja Jokinen 1ELEP-1210 Elektroniikan peruskurssi ELEP-1210 ELEKTRONIIKAN PERUSKURSSI 5 op Kevät 2007 www-sivut:
Porin Yksikkö / Elektroniikka Tanja Jokinen 1ELEP-1210 Elektroniikan peruskurssi ELEP-1210 ELEKTRONIIKAN PERUSKURSSI 5 op Kevät 2009 www-sivut:
Usein aliohjelman kutsun tulos ei riipu pelkästään eksplisiittisistä syötteistä vaan myös moduulin tai olion tilasta (state). ● Tila määräytyy yleensä.
Kesätyöntekijöiden kommentteja Opasnetistä ja ydinvoimatyöstä: ”Kun tulin kesätöihin minulla oli vain jokin suuntaa antava aavistus siitä mitä meinattiin.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
18. Testaus.
7. Hyvä ohjelmointitapa..
Rajapintaluokat Rajapintaluokka luettelee metodit, joille tulee löytyä toteutus asianomaisen rajapinnan toteuttavista luokista. Rajapintaluokka on siis.
Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö
14. Hyvä ohjelmointitapa.
Ohjelman perusrakenteet
Vinkkejä juridiikan opiskeluun
Esityksen transkriptio:

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ä.

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.

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.

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.

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.

Funktionaalisen aliohjelman mustalaatikkotestaus (6/12) 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 (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.

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

Funktionaalisen aliohjelman mustalaatikkotestaus (9/12) 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 (10/12) 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 (11/12) 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. Y 4 3 X 4 6

Funktionaalisen aliohjelman mustalaatikkotestaus (12/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ä. 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ä.