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

Koko: px
Aloita esitys sivulta:

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

Transkriptio

1 2. Äärelliset mallit (P&Y: 5) Malli (model) on kuvaus, joka on kuvattavaa kohdetta yksinkertaisempi, mutta joka säilyttää (mahdollisimman hyvin) mallinnettavan kohteen tarkasteltavat ominaisuudet. Hyvä malli on kompakti: mallin täytyy olla hallittavan kokoinen, ennustava: mallin avulla on voitava ennustaa mallinnetun kohteen käytöstä, semanttisesti mielekäs: mallin ennusteesta on voitava tehdä mallinnettavaa kohdetta kuvaavia syy-seuraussuhteita ja riittävän yleinen: mallin täytyy olla sellaisella tasolla, että siitä johdetut tulokset ovat yleistettävissä käytännön sovelluksiin. Ohjelmistojen testaus / Taina 25 Lähdekoodin suorituksen malli Ohjelman lähdekoodista on mahdollista tehdä malli, joka kuvaa ohjelman lauseiden suhdetta toisiinsa. Yleensä malli kuvataan suunnattuna verkkona, jossa jokainen lause on solmu ja jokainen siirtymä lauseesta toiseen on särmä. Tällainen malli on ennustava: seuraamalla reittejä solmujen välillä on mahdollista ennustaa mallinnetun ohjelman toimintaa, semanttisesti mielekäs: ennusteesta on mahdollista päätellä, onko toiminta ollut oikein (esimerkiksi tarkastelemalla, mitä reittiä ohjelma päätyi lopputulokseen) ja riittävän yleinen: mallia voidaan käyttää minkä tahansa lähdekoodin kuvaukseen. Malli ei ole normaalien ohjelmien kohdalla kompakti, minkä johdosta sillä yleensä mallinnetaan pientä osajoukkoa ohjelmasta esimerkiksi yhtä metodia. Ohjelmistojen testaus / Taina 26 Ohjausvuokaaviot Ohjausvuokaavio, OVK (control flow graph) on metodista tehty suunnattuna verkkona kuvattu malli, jonka solmut ovat ohjelmakoodin osia ja särmät ovat mahdollisia siirtymiä koodin osien välillä. Solmujen koko voi olla periaatteessa lauseita tai jopa konekielikäskyjä, mutta yleensä samaan solmuun laitetaan kaikki lauseet, jotka on pakko suorittaa peräkkäin. Tällaisia lausejoukkoja kutsutaan lauseiden peruslohkoiksi (basic block). Peruslohkojen avulla OVK:ssa on mahdollisimman vähän solmuja: vähintään joka toisesta solmusta lähtee ainakin kaksi särmää. Ohjelmistojen testaus / Taina 27 Haarautumien kuvaaminen ohjausvuokaavioissa Kun OVK:ssa on haarauma, se tarkoittaa, että vastaavassa kohdassa ohjelmakoodia on ehto. Ehto voi olla totuusarvoinen (if-lause, while-lause, do-while lause, for-lause), jolloin solmusta lähtee kaksi särmää. Ehto voi olla moniarvoinen (switch-lause), jolloin solmusta lähtee n tai n+1 särmää, missä n on case-vaihtoehtojen lukumäärä. Tapaus +1 tulee mahdollisesta default-haarasta. Myös poikkeuskäsittelyssä voi olla monta haaraa, mutta näitä on vaikea mallintaa OVK:lla. Ohjelmistojen testaus / Taina 28 Atomiset ehdot Jos OVK:sta halutaan mahdollisimman täydellinen, ehdot pitää rikkoa atomisiksi ehdoiksi (basic condition (kirjan termi) tai atomic expression). Atominen ehto on ehto, joka ei sisällä operaattoreita AND, OR, XOR, NOT, jne. Esimerkiksi Java-ehdossa (((a < 0 a > 100) && b!= 0) c == 0) &&!e) on viisi atomista ehtoa: a<0, a>100, b!=0, c==0, e Ohjelmistojen testaus / Taina 29 Atomiset ehdot OVK:ssa OVK:ssa atomiset ehdot esitetään solmuina, joiden välillä on särmät kuvaamassa evaluoinnin etenemistä atomisesta ehdosta toiseen. Jos kielessä lasketaan atomisia ehtoja vain niin pitkälle, kunnes lopullinen tulos tiedetään, vain sellaiset särmät otetaan mukaan, jotka kuvaavat todellista laskentaa. Näin tehdään esim. Javassa. Jos kielessä lasketaan kaikkien atomisten ehtojen arvo ennen lausekkeen arvon laskemista, jokaisesta atomisesta ehdosta lähtee kaksi särmää. Näin tehdään esim. Pascalissa. Ohjelmistojen testaus / Taina 30 (c) Juha Taina,

2 Muutama OVK:n ohjausrakenne OVK-esimerkki Seuraavassa ovat oppikirjan versiot iflauseesta, while-lauseesta ja switchlauseesta: Ohjelmistojen testaus / Taina 31 (Vastaava Java-metodi on oppikirjan sivulla 61) Ohjelmistojen testaus / Taina 32 Kutsuverkot Edelliset ohjausvuokaaviot kuvasivat metodien sisäisiä suorituspolkuja. Vastaavalla tavalla voidaan kuvata metodien välisiä suorituspolkuja. Yksinkertaisin metodien välisten suorituspolkujen malli on kutsuverkko (call graph). Siinä solmut ovat metodeja ja särmät metodien kutsuja. Kutsuverkot ovat usein liiankin kompakteja. Ne jättävät niin paljon tietoja pois, että yleensä niiden ennustavuus ja semanttinen mielekkyys kärsivät. Kutsuverkot ovat parhaimmillaan hahmotettaessa laajan ohjelmiston kutsusuhteita. Sen sijaan ne eivät sovi kovin tarkkaan analyysiin. Äärelliset automaatit Edelliset mallit voidaan generoida suoraan lähdekoodista. Ne kuvaavat ohjelman rakennetta enemmän kuin toiminnan logiikkaa. Äärelliset automaatit (finite state machines) ovat lähdekoodista riippumattomia. Ne kuvaavat tiloja (states) ja siirtymiä (transitions) tilojen välillä. Äärellinen automaatti on aina jossakin tilassa. Kun automaatti saa herätteen, se siirtyy tilasta siirtymän kautta toiseen tilaan. Äärelliset automaatit kuvataan suunnattuina verkkoina, joissa jokainen solmu on tila ja jokainen nimetty särmä siirtymä tilasta toiseen. Särmän nimi kertoo samalla, millä herätteellä siirtymä toteutuu. Ohjelmistojen testaus / Taina 33 Ohjelmistojen testaus / Taina 34 Äärellisen automaatin ominaisuudet Äärellinen automaatti on mallina ennustava: mallin avulla voidaan ennustaa koko mallinnettavan kohteen elinkaari, semanttisesti mielekäs: mallilla voidaan tehdä ennusteita mallinnettavan kohteen toiminnasta ja riittävän yleinen: mallista saatavat tulokset ovat helposti yleistettävissä käytännön sovelluksiin, kunhan mallinnetun kohteen tilakäytös vastaa mallia. Äärellinen automaatti ei yleensä ole kompakti. Vähänkään monimutkaisempaa järjestelmää mallinnettaessa tapahtuu tilaräjähdys (state explosion). Tilojen ja varsinkin siirtymien määrä kasvaa hallitsemattoman suureksi. Äärellisten automaattien esimerkki Ohjelmistojen testaus / Taina 35 Ohjelmistojen testaus / Taina 36 (c) Juha Taina,

3 3. Testitapausten valinta ja sopivuus (P&Y:9) Nyt jätämme toistaiseksi analyysin ja keskitymme puhtaasti testaukseen. Ohjelmisto, jolle on tehty systemaattinen testaus, on luultavasti luotettavampi kuin ohjelmisto, joka on testattu satunnaisesti. Jokainen ohjelmiston osa pienimmästä suurimpaan pitää testata perusteellisesti ja systemaattisesti ennen sen liittämistä valmiiseen tuotteeseen. Mutta mitä perusteellinen ja systemaattinen testaus tarkoittaa? Ohjelmistojen testaus / Taina 37 Systemaattisuus ja perusteellisuus Systemaattisuus on helppo määritellä. Systemaattinen testaus tarkoittaa, että testaukselle on määritelty prosessi tai prosesseja, joita noudatetaan kaikessa testauksessa. Perusteellisuus on vaikeampi termi. Se pitäisi määritellä tarkoittamaan testausta, joka varmistaa, että ohjelmisto on oikeellinen. Valitettavasti näin sitä ei voida määritellä, sillä ohjelmiston oikeellisuutta ei voida verifioida. Ohjelmistojen testaus / Taina 38 Riittävyys Perusteellisuuden sijaan puhutaan riittävyydestä (adequacy). Testaus on riittävää, kun se täyttää sille asetetut ehdot. Riittävyys on mukava termi, sillä sen määritelmä riippuu testattavan ohjelmiston lisäksi testaavasta organisaatiosta: testaus on riittävää, kun sitä on tehty yrityksen strategian kannalta tarpeeksi. Toki yleensä kunkin yrityksen määrittelemä testauksen riittävyys riippuu testausteoriasta, mutta riittävyyden määritelmä ei vaadi sitä. Ohjelmistojen testaus / Taina 39 Testauksen terminologiaa Ohjelma (program): testattava suorituskelpoinen osa. Ohjelman koko voi vaihdella sovelluksesta metodiin. Testitapaus (test case): Joukko syötteitä, suoritusehtoja ja hyväksymisehto. Testitapausmäärittely (test case specification): Jokin vaatimus (requirement), jonka yksi tai usea testitapaus täyttää. Testipaketti (test suite): Testitapausten tai testipakettien joukko, joilla on yhteinen tavoite. Testi tai testin suoritus (test or test execution): Ohjelman suorittaminen testitapauksen syötteillä ja tuloksen arviointi testitapauksen hyväksymisehdolla. Riittävyysehto (adequacy criterion): totuusarvo tosi/epätosi parille <ohjelma,testipaketti>. Riittävyysehto määrittelee, onko ohjelmalle tehty testipaketti testannut ohjelmaa riittävästi. Ohjelmistojen testaus / Taina 40 Testitapaus Testitapaus sisältää kaiken sen informaation, joka tarvitaan sitä vastaavan testin suoritukseen ja tulosten analysointiin. Testitapauksen syöte voi olla mikä tahansa ohjelman tapahtuma, esimerkiksi keskeytys. Testitapauksen suoritusehto on ehto, jonka on oltava voimassa testauksessa, esimerkiksi muuttujien alustus. Testitapauksen hyväksymisehto on ehto, jonka on oltava voimassa testin suorituksen jälkeen. Hyväksymisehto kertoo, menikö testi läpi. Testitapausmäärittely Jos testitapauksen analogia ohjelmistotuotannossa on valmis ohjelmisto, niin testitapausmäärittelyn analogia on ohjelmiston määrittelydokumentti. Testitapausmäärittely listaa ne vaatimukset, jotka sen mukaisten testitapausten tulee täyttää. Yhden testitapausmäärittelyn voi täyttää usea testitapaus ja testitapaus voi täyttää usean testitapausmäärittelyn. Ohjelmistojen testaus / Taina 41 Ohjelmistojen testaus / Taina 42 (c) Juha Taina,

4 Lisää testitapausmäärittelyistä Testitapausmäärittelyt johdetaan järjestelmän, ohjelmiston, moduulin tai luokan spekseistä (eli määrittelystä). Testitapausmäärittely voi syötemäärittelyjen lisäksi käyttää hyväksi mitä tahansa spekseissä kuvattua havaittavaa toimintaa. Esimerkiksi laitteiston hajoamisesta seuraavat poikkeustilanteet ovat hyviä testitapausmäärittelyiden lähtökohtia. Mitä formaalimpi on speksi, sitä täsmällisemmät ovat testitapausmäärittelyt. Ohjelmistojen testaus / Taina 43 Riittävyysehto Testipaketti täyttää riittävyysehdon, jos sen jokainen suoritettu testi täytti hyväksymisehdon ja kaikki testipaketille asetetut vaatimukset täyttyivät testeillä. Oppikirja puhuu testien sitoutumisesta (test oblication): testin sitoutuma on jokin täsmällinen ehto, jonka testitapauksen tulee täyttää. Esimerkiksi jos testipaketin riittävyysehto on, että jokainen metodin lause suoritetaan ainakin kerran, niin tietyn testin sitoutuma voi määritellä, minkä osan metodin lauseista kyseisen testin tulee ainakin suorittaa. Ohjelmistojen testaus / Taina 44 Riittävyysehdon valinta Riittävyysehdon valinnassa on oltava tarkkana. Liian tiukka riittävyysehto tarkoittaa, että yksikään testipaketti ei voi täyttää ehtoa. Liian löysä riittävyysehto voi tarkoittaa, että tuotteen laatu kärsii kohtuuttomasti. Riittävyysehdon valinta on strategiakysymys: kuinka paljon olemme valmiit ottamaan riskiä. Kevyellä riittävyysehdolla säästetään testauksen resursseissa, mutta samalla kasvatetaan riskiä, että tuote ei ole hyödyllinen. Ohjelmistojen testaus / Taina 45 Riittävyysehtojen vertailu Riittävyysehdot voidaan laittaa osittaisjärjestykseen sen mukaan, miten hyvin niillä löydetään virheitä. Osittaisjärjestys voidaan tehdä empiirisesti keräämällä tietoa löydetyistä virheistä. Tällöin tuloksissa on paljon epävarmuutta, sillä testauksen onnistuminen riippuu lukemattomista tekijöistä. Speksien taso, testattava yksikkö, testaajat, testausajankohta, ym. vaikuttavat tulokseen. Ohjelmistojen testaus / Taina 46 Riittävyysehtojen sisältyvyys Riittävyysehtoja voidaan verrata analyyttisesti sisältää-relaation (subsumes) avulla. Jos jokainen testipaketti, joka täyttää riittävyysehdon A, täyttää myös riittävyysehdon B, niin A sisältää B:n: Testikattavuuskriteeri (riittävyysehto) A sisältää testikattavuuskriteerin B, jos ja vain jos kaikille ohjelmille P pätee: jokainen A:n täyttävä testijoukko P:ssa täyttää myös B:n. Eli jos ehto A:n täyttämillä testeillä saadaan myös B:n täyttämät testit, niin A sisältää B:n. Ohjelmistojen testaus / Taina 47 Riittävyysehtojen sisältyvyyden merkitys Valitettavasti riittävyysehtojen sisältyvyys ei ole niin vahva tulos kuin miltä se kuulostaa. Voi olla, että A:n täyttämällä testipaketilla ei löydetä lainkaan B:n testipaketista poikkeavia virheitä tai A:n täyttämiseen vaaditaan paljon enemmän testejä kuin B:n täyttämiseen. Sisältyvyyttä mielenkiintoisempi mittari olisi testipaketin koko. Jos riittävyysehdolla A tietyn virheen löytämiseen tarvitaan vähemmän testejä kuin riittävyysehdolla B, niin silloin A paremmalta ehdolta tämän virheen etsinnässä kuin B. Valitettavasti tällaista relaatiota ei voida yleisessä tapauksessa käsitellä analyyttisesti, koska emme yleensä tiedä etukäteen, mitä testejä virheen löytymiseen vaaditaan. Ohjelmistojen testaus / Taina 48 (c) Juha Taina,

5 4. Toiminnallinen testaus (P&Y: 10) Ohjelman toiminnallinen määrittely (functional specification) on tärkein testitapausmäärittelyjen syöte. Toiminnallisesta määrittelystä johdettujen testien suoritusta sanotaan toiminnalliseksi testaukseksi (functional testing) tai mustalaatikkotestaukseksi (black-box testing). Toiminnallisessa testauksessa vain ohjelmaa kuvaavat määrittelyt vaikuttavat testaukseen. Ohjelman rakenteella ei ole merkitystä. Ohjelmistojen testaus / Taina 49 Miksi toiminnallista testausta? Toiminnallinen testaus (tt) on perustestausta: Tt aloitetaan heti vaatimusmäärittelyssä suunnittelemalla testitapausmäärittelyjä. Tt:lla löydetään sellaisia virheitä, joita on vaikea tai mahdoton löytää muilla keinoilla. Tt:n tekniikoita voidaan soveltaa riippumatta siitä, millä tasolla ohjelman toiminnallinen määrittely on annettu. Tt:n tekniikat sopivat kaikenkokoisten ohjelmien testaamiseen metodeista ohjelmistoihin. Tt on yleensä halvin ja helpoin suunniteltava. Ohjelmistojen testaus / Taina 50 Ositus Toiminnallinen testaus perustuu ositukseen (partitioning). Testattavan ohjelman mahdolliset toimintatavat ositetaan homogeenisiksi luokiksi, joista jokainen kuvaa yhtenevän tavan käyttää ohjelmaa. Jokaista luokkaa kohti suunnitellaan sopivat testitapausmäärittelyt ja kirjoitetaan niihin sopivat testitapaukset. Jos ositus on tehty hyvin, luokat ovat ulkoisesti erillisiä ja sisäisesti yhteneviä: Ulkoisesti erillisiä = luokkien leikkaukset ovat tyhjiä. Sisäisesti yhteneviä = luokan sisällä kaikki ohjelman toimintatavat käyttävät ohjelmaa samalla tavalla. Ositus 2 Koska ohjelman toiminta riippuu vain syötteistä, ositus tehdään syötteille. Esimerkiksi palvelupyyntö, skedulointi ja keskeytys ovat syötteitä. Onnistuneessa osituksessa osajoukon toiminta millä tahansa osajoukon syötteellä on yhtenevää. Esimerkiksi ohjelmalla, joka palauttaa syötteenä saamansa luvun x käänteisluvun, ositus voi olla luvut x!= 0 ja x=0. Ehdolla x!= 0 ei ole väliä, mikä luku valitaan testitapaukseksi. Ohjelman pitäisi käyttäytyä kaikilla luvuilla x!= 0 samalla tavalla. Jos ohjelma ei käyttäydy arvoilla x!= 0 samalla tavalla, ositus (tai ohjelma) on pielessä. Ohjelmistojen testaus / Taina 51 Ohjelmistojen testaus / Taina 52 Testitapausten johtamisen haasteet Testitapausten johtaminen määrittelystä vaatii lukemattomien muuttujien huomiointia. Syötteet ja tulosteet on tunnistettava. Syötteiden ja tulosteiden arvoalueet on tunnistettava. Ohjelmaan kohdistuvat tapahtumat on tunnistettava. Poikkeustilanteet on tunnistettava jne. Kun vielä määrittely voi olla vajaa, niin testitapausten johtaminen on virhealtista työtä. Satunnaistestaus Testitapausten suunnittelu ja kirjoittaminen on sekä hidasta että virhealtista. Ei siis ihme, että prosessia haluttaisiin yksinkertaistaa. Eräs tapa korvata suunnitteluprosessia olisi testata raa alla voimalla kaikki mahdollinen. Valitettavasti resurssit eivät riitä tähän. Koska kaikkea ei voida testata, niin ehkä voisimme testata satunnaisesti joillain arvoilla? Tätä kutsutaan satunnaistestaukseksi (random testing). Ohjelmistojen testaus / Taina 53 Ohjelmistojen testaus / Taina 54 (c) Juha Taina,

6 Satunnaistestauksen edut ja haitat Satunnaistestauksella voidaan suorittaa monta kertaluokkaa enemmän testitapauksia kuin toiminnallisella testauksella. Suurin osa testaukseen menevästä ajasta menee testitapausmäärittelyihin ja niistä johdettuihin testitapauksiin. Esimerkiksi miljoonan satunnaisen testin suorittaminen on mahdollisuuksien rajoissa, mutta kukaan ei suunnittele miljoonaa testitapausmäärittelyä. Valitettavasti satunnaistestauksen tarkkuus on niin huono, että käytännössä aina toiminnallinen testaus on satunnaistestausta järkevämpi vaihtoehto. Satunnaistestausta voidaan toki käyttää täydentämään muita testausmenetelmiä, mutta se ei käy ainoaksi menetelmäksi. Testitapaukset ja toiminnallinen määrittely Testitapausten johtaminen toiminnallisesta määrittelystä on monivaiheinen prosessi. Periaatteessa testitapaukset voitaisiin johtaa suoraan toiminnallisesta määrittelystä, mutta tällöin testitapauksia tulee hyvin paljon, suuri osa testitapauksista on päällekkäisiä, riittävyysehtoja on vaikea arvioida ja tuloksena ei ole (helposti) toistettava prosessi. Ohjelmistojen testaus / Taina 55 Ohjelmistojen testaus / Taina 56 Systemaattinen toiminnallinen testaus Toiminnallisen testauksen prosessi on systemaattinen ja toistettava. Se sisältää seuraavat työvaiheet: 1. Riippumattomien testattavien ominaisuuksien tunnistus. Ositetaan ohjelman toiminnallisuus sellaisiksi osajoukoiksi, jotka ovat mahdollisimman itsenäisiä. 2. Testattavan ominaisuuden testiarvojen valinta tai testattavan mallin generointi. Toiminnallisuusosajoukkoa edustavien syötteiden arvot luetteloidaan. Yleensä arvoja on paljon (jopa ääretön määrä), joten pääosin arvot kuvataan joukko-opin keinoin. Jos toiminnallisuusosajoukosta on olemassa käyttökelpoinen toiminnallisuutta kuvaava malli tai malli on generoitavissa helposti, käytetään mallia. Mallin parametrien arvojoukot vastaavat syötearvojoukkoja. Ohjelmistojen testaus / Taina 57 Systemaattinen toiminnallinen testaus 2 3. Testitapausmäärittelyjen generointi. Kaikki testitapausmäärittelyt ovat edellisen kohdan syötearvojoukkojen tai mallin parametrien arvojoukkojen karteesinen tulo. Koska karteesisen tulon koko kasvaa syötearvojoukkojen määrän suhteen eksponentiaalisesti, kaikkien testitapausmäärittelyjen joukko kasvaa nopeasti hallitsemattoman suureksi. Edellisen kohdan johdosta testitapausmäärittelyiden joukkoa pitää karsia (prune). Karsinnassa testitapausmäärittelyistä valitaan sopivalla heuristiikalla osajoukko, jonka mukaiset testitapaukset testaavat toiminnallisuusosajoukkoa riittävän hyvin. Ohjelmistojen testaus / Taina 58 Systemaattinen toiminnallinen testaus 3 4. Testitapausten generointi. Jokaista valittua testitapausmäärittelyä kohti generoidaan yksi tai useampi testitapaus. 5. Testien suoritus. Generoidaan/toteutetaan tarvittava ohjelman toimintaympäristö. Tämä on tarpeen, jos testattava ohjelma ei pysty toimimaan yksin. Suoritetaan testit ja analysoidaan tulokset. Tärkein työ on testitapausmäärittelyiden karsinta. Ilman sitä testaus on käytännössä mahdotonta, koska testejä tulee liikaa. Systemaattisen toiminnallisen testauksen prosessi Ohjelmistojen testaus / Taina 59 Ohjelmistojen testaus / Taina 60 (c) Juha Taina,

2. Äärelliset mallit (P&Y: 5)

2. Äärelliset mallit (P&Y: 5) 2. Äärelliset mallit (P&Y: 5) Malli (model) on kuvaus, joka on kuvattavaa kohdetta yksinkertaisempi, mutta joka säilyttää (mahdollisimman hyvin) mallinnettavan kohteen tarkasteltavat ominaisuudet. Hyvä

Lisätiedot

Harjoitustyön testaus. Juha Taina

Harjoitustyön testaus. Juha Taina Harjoitustyön testaus Juha Taina 1. Johdanto Ohjelman teko on muutakin kuin koodausta. Oleellinen osa on selvittää, että ohjelma toimii oikein. Tätä sanotaan ohjelman validoinniksi. Eräs keino validoida

Lisätiedot

Ohjelmistojen testaus

Ohjelmistojen testaus Ohjelmistojen testaus Juha Taina 1. Johdanto (P&Y:1-4) Kurinalainen insinöörityö sisältää suunnittelun ja rakentamisen lisäksi välttämättä tehtäviä, joiden tarkoitus on tunnistaa ja poistaa keskeneräisestä

Lisätiedot

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

Kombinaatiotestauksen tekniikat. 5. Kombinaatiotestaus (P&Y: 11) Luokittelutestauksen algoritmi. Luokittelutestaus. Pankkiautomaattiin kirjautuminen Ohjelmistojen testaus luentokalvot 5. Kombinaatiotestaus (P&Y: 11) Toiminnallinen määrittely palvelee hyvin erilaisia sidosryhmiä, joista testaajat ovat vain yksi. Näin määrittely ei yleensä ole sellaisessa

Lisätiedot

1. Johdanto (P&Y:1-4) Ohjelmistojen testaus. Verifiointi ja validointi. Verifiointi ja validointi 2. Ohjelmistojen testaus - luentokalvot

1. Johdanto (P&Y:1-4) Ohjelmistojen testaus. Verifiointi ja validointi. Verifiointi ja validointi 2. Ohjelmistojen testaus - luentokalvot Ohjelmistojen testaus luentokalvot 1. Johdanto (P&Y:14) Ohjelmistojen testaus Juha aina Kurinalainen insinöörityö sisältää suunnittelun ja rakentamisen lisäksi välttämättä tehtäviä, joiden tarkoitus on

Lisätiedot

Ohjelmiston testaus ja laatu. Testausmenetelmiä

Ohjelmiston testaus ja laatu. Testausmenetelmiä Ohjelmiston testaus ja laatu Testausmenetelmiä Testausmenetelmiä - 1 Testauksen menetelmien päälähestymistapoina ovat black-box testi testaaja ei voi tutkia lähdekoodia testaus perustuu sovellukselle suunnitteluvaiheessa

Lisätiedot

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

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testausdokumentti Kivireki Helsinki 17.12.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Anu Kontio Ilmari

Lisätiedot

58160 Ohjelmoinnin harjoitustyö

58160 Ohjelmoinnin harjoitustyö 58160 Ohjelmoinnin harjoitustyö Testaus 30.3.2009 Tuntiop. Sami Nikander sami.nikander@helsinki.fi 58160 Ohjelmoinnin harjoitustyö, Sami Nikander 30.3.2009 1 Testaus Ohjelman systemaattista tutkimista

Lisätiedot

Dynaaminen analyysi III

Dynaaminen analyysi III Dynaaminen analyysi III Luento 8 Antti-Pekka Tuovinen 16 April 2013 1 Tavoitteet White box testitapausten suunnittelutekniikat Lausekattavuus Haarautumakattavuus Ehto- ja polkukattavuus Huomioita white

Lisätiedot

Dynaaminen analyysi III Luento 5 Antti-Pekka Tuovinen

Dynaaminen analyysi III Luento 5 Antti-Pekka Tuovinen Dynaaminen analyysi III Luento 5 Antti-Pekka Tuovinen www.cs.helsinki.fi 16 April 2018 1 Tavoitteet White box testitapausten suunnittelutekniikat Lausekattavuus Haarautumakattavuus Ehto- ja polkukattavuus

Lisätiedot

5. Kombinaatiotestaus (P&Y: 11)

5. Kombinaatiotestaus (P&Y: 11) 5. Kombinaatiotestaus (P&Y: 11) Toiminnallinen määrittely palvelee hyvin erilaisia sidosryhmiä, joista testaajat ovat vain yksi. Näin määrittely ei yleensä ole sellaisessa muodossa, että siitä voidaan

Lisätiedot

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistojen mallintaminen. Luento 11, 7.12. Ohjelmistojen mallintaminen Luento 11, 7.12. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,

Lisätiedot

Dynaaminen analyysi I

Dynaaminen analyysi I 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)

Lisätiedot

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

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa: Testaus käsite Sekalaista asiaa Sami Kollanus 15.11.2006 Jos ajatellaan, että = V&V, voidaan erottaa: Staattinen Dynaaminen Toisaalta voidaan määritellä Myersin (1979) mukaan: Testaus on ohjelman suoritusta,

Lisätiedot

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen www.cs.helsinki.fi 9 April 2018 1 Tavoitteet Black-box testitapausten suunnittelutekniikat II Tilamallien käyttö Syy-seurausverkot ja päätöstaulut Kombinaatioiden

Lisätiedot

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

Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II 7. Verifiointi ja validointi Verifiointi ja validointi (V&V) on ohjelmistotuotannon työvaihe, missä varmistetaan, että ohjelmisto täyttää sille asetetut implisiittiset ja eksplisiittiset vaatimukset ja

Lisätiedot

Ohjelmistojen testaus

Ohjelmistojen testaus Ohjelmistojen testaus Juha Taina 1. Perusteet (P&Y:1-4) Kurinalainen insinöörityö sisältää suunnittelun ja rakentamisen lisäksi välttämättä tehtäviä, joiden tarkoitus on tunnistaa ja poistaa keskeneräisestä

Lisätiedot

Convergence of messaging

Convergence of messaging Convergence of messaging Testaussuunnitelma The Converge Group: Mikko Hiipakka Anssi Johansson Joni Karppinen Olli Pettay Timo Ranta-Ojala Tea Silander Helsinki 20. joulukuuta 2002 HELSINGIN YLIOPISTO

Lisätiedot

Dynaaminen analyysi IV

Dynaaminen analyysi IV 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

Lisätiedot

Dynaaminen analyysi II

Dynaaminen analyysi II Dynaaminen analyysi II Luento 7 Antti-Pekka Tuovinen 9 April 2013 1 Tavoitteet Black-box testitapausten suunnittelutekniikat II Tilamallien käyttö Syys-seurausverkot ja päätöstaulut Käyttötapaukset Yhteenveto

Lisätiedot

Dynaaminen analyysi IV Luento 6 Antti-Pekka Tuovinen

Dynaaminen analyysi IV Luento 6 Antti-Pekka Tuovinen 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

Lisätiedot

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

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma PULSU Syksy 2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (9 op) Projektiryhmä Heikki Manninen Noora Joensuu

Lisätiedot

Eloisuusanalyysi. TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2009 TIETOTEKNIIKAN LAITOS. Eloisuusanalyysi.

Eloisuusanalyysi. TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2009 TIETOTEKNIIKAN LAITOS. Eloisuusanalyysi. TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 16. marraskuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe E tiistai 1.12. klo 10 koodigenerointi (ilman rekisteriallokaatiota)

Lisätiedot

Kontrollipolkujen määrä

Kontrollipolkujen määrä Testaus Yleistä Testaus on suunnitelmallista virheiden etsimistä Tuotantoprosessissa ohjelmaan jää aina virheitä, käytettävistä menetelmistä huolimatta Hyvät menetelmät, kuten katselmoinnit pienentävät

Lisätiedot

T Testiraportti - järjestelmätestaus

T Testiraportti - järjestelmätestaus T-76.115 Testiraportti - järjestelmätestaus 18. huhtikuuta 2002 Confuse 1 Tila Versio: 1.0 Tila: Päivitetty Jakelu: Julkinen Luotu: 18.04.2002 Jani Myyry Muutettu viimeksi: 18.04.2002 Jani Myyry Versiohistoria

Lisätiedot

Ehto- ja toistolauseet

Ehto- ja toistolauseet Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden

Lisätiedot

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

Testausprosessin vaatimukset. 2. Testausprosessi (Artikkelit) Vesiputousmallin ongelmia. V-mallin neljä osavaihetta. Testausprosessimalli V-malli 2. ausprosessi (Artikkelit) Nykyisin useimpien prosessimallien lähtökohta on, että testaus on oleellinen osa ohjelmistotuotantoprosessia. Itse asiassa huolellinen testaus vie helposti 50% tai enemmän käytettävistä

Lisätiedot

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

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure Automaattinen regressiotestaus ilman testitapauksia Pekka Aho, VTT Matias Suarez, F-Secure 2 Mitä on regressiotestaus ja miksi sitä tehdään? Kun ohjelmistoon tehdään muutoksia kehityksen tai ylläpidon

Lisätiedot

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri Testausraportti Oppimistavoitteiden hallintajärjestelmä harri Helsinki 13.12.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO

TAMPEREEN TEKNILLINEN YLIOPISTO TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 11.08.2010 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO

TAMPEREEN TEKNILLINEN YLIOPISTO TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 06.09.2005 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ

Lisätiedot

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää

Lisätiedot

Systemaattinen apina ja miten se tehdään fmbt:llä

Systemaattinen apina ja miten se tehdään fmbt:llä ja miten se tehdään fmbt:llä Antti Kervinen Intel antti.kervinen@intel.com Testauspäivä, Tampere 6. kesäkuuta 2012 Antti Kervinen (Intel) Systemaattinen apina 1 / 14 Jos apina painelee satunnaisesti kirjoistuskoneen

Lisätiedot

TIE-21200 Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori

TIE-21200 Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori TIE-21200 Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4 Antti Jääskeläinen Matti Vuori Vaiheet 3 & 4: Järjestelmätestaus 28.10.2013 2 Päämäärä jedit-ohjelmointieditorin järjestelmätestaus

Lisätiedot

Automaattinen yksikkötestaus

Automaattinen yksikkötestaus Teknillinen Korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Automaattinen yksikkötestaus Ryhmä Rajoitteiset Versio Päivämäärä Tekijä

Lisätiedot

UML -mallinnus TILAKAAVIO

UML -mallinnus TILAKAAVIO UML -mallinnus TILAKAAVIO SISÄLLYS 3. Tilakaavio 3.1 Tilakaavion alku- ja lopputilat 3.2 Tilan nimi, muuttujat ja toiminnot 3.3 Tilasiirtymä 3.4 Tilasiirtymän vai tilan toiminnot 3.5 Tilasiirtymän tapahtumat

Lisätiedot

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

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaihe 3. Antti Jääskeläinen Matti Vuori TIE-21204 Ohjelmistojen testaus 2015 Harjoitustyö Vaihe 3 Antti Jääskeläinen Matti Vuori Rakenne ja aikataulu Kolme vaihetta: 1. Tutkivan järjestelmätestauksen suunnittelu 2. Tutkivan järjestelmätestauksen

Lisätiedot

Ohjelmistotuotantoprojekti

Ohjelmistotuotantoprojekti Ohjelmistotuotantoprojekti Ryhmä Muppett TESTAUSDOKUMENTTI Helsinki 5.8.2008 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Ohjelmistotuotantoprojekti, kesä 2008 Projekti: Muutos- ja korjauspyyntöjen

Lisätiedot

Ohjelmistotuotanto, verifiointi ja validointi Syksy Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi

Ohjelmistotuotanto, verifiointi ja validointi Syksy Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi 7. Verifiointi ja validointi Verifiointi ja validointi (V&V) on ohjelmistotuotannon työvaihe, missä varmistetaan, että ohjelmisto täyttää sille asetetut implisiittiset ja eksplisiittiset vaatimukset ja

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita valintalauseet 1 Johdantoa kontrollirakenteisiin Tähän saakka ohjelmissa on ollut vain peräkkäisyyttä eli lauseet on suoritettu peräkkäin yksi kerrallaan Tarvitsemme myös valintaa

Lisätiedot

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A. Tehtävä. Tämä tehtävä on aineistotehtävä, jossa esitetään ensin tehtävän teoria. Sen jälkeen esitetään neljä kysymystä, joissa tätä teoriaa pitää soveltaa. Mitään aikaisempaa tehtävän aihepiirin tuntemusta

Lisätiedot

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5) Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,

Lisätiedot

7. Verifiointi ja validointi

7. Verifiointi ja validointi 7. Verifiointi ja validointi Verifiointi ja validointi (V&V) on ohjelmistotuotannon työvaihe, missä varmistetaan, että ohjelmisto täyttää sille asetetut implisiittiset ja eksplisiittiset vaatimukset ja

Lisätiedot

Tapahtuipa Testaajalle...

Tapahtuipa Testaajalle... Tapahtuipa Testaajalle... - eli testaus tosielämässä 09.10.2007 Juhani Snellman Qentinel Oy 2007 Agenda Minä ja mistä tulen Testauksen konteksti Tapauksia tosielämästä ja työkaluja 2 Minä Juhani Snellman

Lisätiedot

TIE-21200 Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori

TIE-21200 Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori TIE-21200 Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4 Antti Jääskeläinen Matti Vuori Vaiheet 3 & 4: Järjestelmätestaus 27.10.2014 2 Päämäärä jedit-ohjelmointieditorin järjestelmätestaus

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015 ja ja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho NFA:ksi TIETOTEKNIIKAN LAITOS 16. marraskuuta 2015 Sisällys ja NFA:ksi NFA:ksi Kohti säännöllisiä lausekkeita ja Nämä tiedetään:

Lisätiedot

T Testiraportti - integraatiotestaus

T Testiraportti - integraatiotestaus T-76.115 Testiraportti - integraatiotestaus 16. huhtikuuta 2002 Confuse 1 Tila Versio: 1.1 Tila: Päivitetty Jakelu: Julkinen Luotu: 19.03.2002 Jani Myyry Muutettu viimeksi: 16.04.2002 Jani Myyry Versiohistoria

Lisätiedot

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin. 2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet

Lisätiedot

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I MS-A040 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I G. Gripenberg Aalto-yliopisto. maaliskuuta 05 G. Gripenberg (Aalto-yliopisto) MS-A040 Diskreetin matematiikan perusteet Esimerkkejä. ym.,

Lisätiedot

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. tammikuuta 2012 Sisällys Sisällys Muistathan A B -konstruktion 0 k 1 i 2 s 3 s 4 a 5 0 k 1 o 2 i 3 r 4

Lisätiedot

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I MS-A040 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I G. Gripenberg Aalto-yliopisto. maaliskuuta 05 G. Gripenberg (Aalto-yliopisto) MS-A040 Diskreetin matematiikan perusteet Esimerkkejä. ym.,

Lisätiedot

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Pysähtymisongelman ratkeavuus [Sipser luku 4.2] Pysähtymisongelman ratkeavuus [Sipser luku 4.2] Osoitamme nyt vihdoin, että jotkin Turing-tunnistettavat kielet ovat ratkeamattomia ja jotkin kielet eivät ole edes Turing-tunnistettavia. Lisäksi toteamme,

Lisätiedot

Tietotekniikan valintakoe

Tietotekniikan valintakoe Jyväskylän yliopisto Tietotekniikan laitos Tietotekniikan valintakoe 2..22 Vastaa kahteen seuraavista kolmesta tehtävästä. Kukin tehtävä arvostellaan kokonaislukuasteikolla - 25. Jos vastaat useampaan

Lisätiedot

TOIMINNALLINEN MÄÄRITTELY MS

TOIMINNALLINEN MÄÄRITTELY MS TOIMINNALLINEN MÄÄRITTELY 11.11.2015 MS YLEISTÄ 1/2 jäsennelty etenee yleiskuvauksesta yksityiskohtiin kieliasultaan selkeä kuvaa myös tulevan järjestelmän ympäristöä tarpeellisella tarkkuudella kuvaa

Lisätiedot

Testaaminen ohjelmiston kehitysprosessin aikana

Testaaminen ohjelmiston kehitysprosessin aikana Testaaminen ohjelmiston kehitysprosessin aikana 04.02.2004 http://cs.joensuu.fi/tsoft/ Sisällys 1. Johdanto 2. Yksikkö- ja integrointitestaus 3. Järjestelmätestaus 4. Hyväksymistestaus http://cs.joensuu.fi/tsoft/

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 6 Sarjojen suppeneminen Kiinnostuksen kohteena on edelleen sarja a k = a + a 2 + a 3 + a 4 +... k= Tämä summa on mahdollisesti äärellisenä olemassa, jolloin sanotaan

Lisätiedot

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

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma Koskelo Helsinki 16.12.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Tom Bertell Johan

Lisätiedot

Testaussuunnitelma Labra

Testaussuunnitelma Labra Testaussuunnitelma Labra Helsinki 25.8.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 1 Kurssi 581260 Ohjelmistotuotantoprojekti (9+1op) Projektiryhmä Anssi Kapanen,

Lisätiedot

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto

811312A Tietorakenteet ja algoritmit 2015-2016. I Johdanto 811312A Tietorakenteet ja algoritmit 2015-2016 I Johdanto Sisältö 1. Algoritmeista ja tietorakenteista 2. Algoritmien analyysistä 811312A TRA, Johdanto 2 I.1. Algoritmeista ja tietorakenteista I.1.1. Algoritmien

Lisätiedot

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

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3 AgilElephant SEPA Diary Petri Kalsi 55347A Heikki Salminen 51137K Tekijä: Petri Kalsi Omistaja: ElectricSeven Aihe: PK&HS Sivu 1 / 7 Dokumenttihistoria Revisiohistoria Revision päiväys: 29.11.2004 Seuraavan

Lisätiedot

(0 1) 010(0 1) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen q 0 q 1 q 2 q3

(0 1) 010(0 1) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen q 0 q 1 q 2 q3 T-79.48 Tietojenkäsittelyteorian perusteet Tentti 25..23 mallivastaukset. Tehtävä: Kuvaa seuraavat kielet sekä säännölisten lausekkeiden että determinististen äärellisten automaattien avulla: (a) L = {w

Lisätiedot

Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I.

Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I. Vaihto-ominaisuudella on seuraava intuition kannalta keskeinen seuraus: Olkoot A I ja B I samankokoisia riippumattomia joukkoja: A = B = m jollain m > 0. Olkoon vielä n = m A B, jolloin A B = B A = n.

Lisätiedot

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

Mihin kaikkeen voit törmätä testauspäällikön saappaissa? Mihin kaikkeen voit törmätä testauspäällikön saappaissa? Arto Stenberg Copyright Kuntien Tiera Oy Kuntien Tiera Copyright Kuntien Tiera Oy Tiera on vuonna 2010 perustettu yli 200:n kuntatoimijan omistama

Lisätiedot

5.3 Ratkeavia ongelmia

5.3 Ratkeavia ongelmia 153 5.3 Ratkeavia ongelmia Deterministisen äärellisten automaattien (DFA) hyväksymisongelma: hyväksyykö annettu automaatti B merkkijonon w? Ongelmaa vastaava formaali kieli on A DFA = { B, w B on DFA,

Lisätiedot

Käyttötapausanalyysi ja testaus tsoft

Käyttötapausanalyysi ja testaus tsoft Käyttötapausanalyysi ja testaus tsoft 15.09.2004 http://cs.joensuu.fi/tsoft/ Johdanto Use Case analyysi (käyttötapausanalyysi) on yleisesti käytetty järjestelmälle asetettujen toiminnallisten vaatimusten

Lisätiedot

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I G. Gripenberg Aalto-yliopisto 3. huhtikuuta 2014 G. Gripenberg (Aalto-yliopisto) MS-A0402 Diskreetin matematiikan perusteetesimerkkejä,

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

13. Loogiset operaatiot 13.1

13. Loogiset operaatiot 13.1 13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.

Lisätiedot

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I MS-A040 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I G. Gripenberg Aalto-yliopisto 3. huhtikuuta 014 G. Gripenberg (Aalto-yliopisto) MS-A040 Diskreetin matematiikan perusteetesimerkkejä,

Lisätiedot

UCOT-Sovellusprojekti. Testausraportti

UCOT-Sovellusprojekti. Testausraportti UCOT-Sovellusprojekti Testausraportti Ilari Liukko Tuomo Pieniluoma Vesa Pikki Panu Suominen Versio: 0.02 Julkinen 11. lokakuuta 2006 Jyväskylän yliopisto Tietotekniikan laitos Jyväskylä Hyväksyjä Päivämäärä

Lisätiedot

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari Konsensusongelma hajautetuissa järjestelmissä Niko Välimäki 30.11.2007 Hajautetut algoritmit -seminaari Konsensusongelma Päätöksen muodostaminen hajautetussa järjestelmässä Prosessien välinen viestintä

Lisätiedot

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Satunnaisalgoritmit Topi Paavilainen Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Helsinki, 23. helmikuuta 2014 1 Johdanto Satunnaisalgoritmit ovat algoritmeja, joiden

Lisätiedot

Test-Driven Development

Test-Driven Development Test-Driven Development Ohjelmistotuotanto syksy 2006 Jyväskylän yliopisto Test-Driven Development Testilähtöinen ohjelmistojen kehitystapa. Tehdään ensin testi, sitten vasta koodi. Tarkoituksena ei ole

Lisätiedot

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu 811312A Tietorakenteet ja algoritmit 2017-2018, Harjoitus 2 ratkaisu Harjoituksen aiheena on algoritmien oikeellisuus. Tehtävä 2.1 Kahvipurkkiongelma. Kahvipurkissa P on valkoisia ja mustia kahvipapuja,

Lisätiedot

T kevät 2007 Laskennallisen logiikan jatkokurssi Laskuharjoitus 1 Ratkaisut

T kevät 2007 Laskennallisen logiikan jatkokurssi Laskuharjoitus 1 Ratkaisut T-79.5101 kevät 2007 Laskennallisen logiikan jatkokurssi Laskuharjoitus 1 Ratkaisut 1. Jokaiselle toteutuvalle lauselogiikan lauseelle voidaan etsiä malli taulumenetelmällä merkitsemällä lause taulun juureen

Lisätiedot

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

Testaussuunnitelma. Asdf. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma Asdf Helsinki 22.2.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Kuisma Sami Louhio

Lisätiedot

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen.

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Sisällys 3. Pseudokoodi Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Ohjausrakenteet: Valinta if- ja if--rakenteilla. oisto while-, do-while- ja for-rakenteilla. 3.1 3.2 Johdanto

Lisätiedot

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013 TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 29. toukokuuta 2013 Sisällys Chomskyn hierarkia (ja muutakin) kieli LL(k) LR(1) kontekstiton kontekstinen rekursiivisesti

Lisätiedot

Ylläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ylläpitodokumentti. Boa Open Access. Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Ylläpitodokumentti Boa Open Access Helsinki 2.5.2006 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Ilmari

Lisätiedot

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Tuntitehtävät 9-10 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 13-14 loppuviikon harjoituksissa. Kotitehtävät 11-12 tarkastetaan loppuviikon

Lisätiedot

KÄYTETTÄVYYSTESTAUS OSANA KETTERÄÄ KEHITYSTÄ

KÄYTETTÄVYYSTESTAUS OSANA KETTERÄÄ KEHITYSTÄ KÄYTETTÄVYYSTESTAUS OSANA KETTERÄÄ KEHITYSTÄ Eeva Kangas 05.11.2015 @FixUi Oy 2013 2015 FIXUI "Autamme yrityksiä suunnittelemaan sellaisia tuotteita, joita ihmiset osaavat ja haluavat käyttää" Käyttäjätutkimukset

Lisätiedot

Ohjelmistojen suunnittelu

Ohjelmistojen suunnittelu Ohjelmistojen suunnittelu 581259 Ohjelmistotuotanto 154 Ohjelmistojen suunnittelu Software design is a creative activity in which you identify software components and their relationships, based on a customer

Lisätiedot

Onnistunut Vaatimuspohjainen Testaus

Onnistunut Vaatimuspohjainen Testaus Onnistunut Vaatimuspohjainen Testaus Kari Alho Solution Architect Nohau Solutions, Finland Sisältö Mitä on vaatimuspohjainen testaus? Vaatimusten ymmärtämisen haasteet Testitapausten generointi Työkalujen

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015 TIEA24 Automaatit ja kieliopit, syksy 205 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 5. marraskuuta 205 Sisällys Käsiteanalyysiä Tarkastellaan koodilukkoa äärellisenä automaattina. Deterministinen äärellinen

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma TKK/DISKO/Tik-76.115 WCLIQUE Projektiryhmä Clique http://www.hut.fi/jekahkon/wclique/testplan.html WCLIQUE Ohjelmistoprojekti Projektiryhmä Clique: Janne Dufva, 75008T, email: janne.dufva@nokia.com, 75014C,

Lisätiedot

Onnistunut SAP-projekti laadunvarmistuksen keinoin

Onnistunut SAP-projekti laadunvarmistuksen keinoin Onnistunut SAP-projekti laadunvarmistuksen keinoin 07.10.2010 Patrick Qvick Sisällys 1. Qentinel 2. Laadukas ohjelmisto täyttää sille asetetut tarpeet 3. SAP -projektin kriittisiä menestystekijöitä 4.

Lisätiedot

Testausoppeja toimialavaihdoksesta

Testausoppeja toimialavaihdoksesta Testausoppeja toimialavaihdoksesta Maaret Pyhäjärvi Email: Gsm: 040-8233777 Erkki Pöyhönen & Maaret Pyhäjärvi Nimeä Attribution (Finland) http://creativecommons.org/licenses/by/1.0/fi/

Lisätiedot

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011 TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 31. maaliskuuta 2011 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti

Lisätiedot

Lohtu-projekti. Testaussuunnitelma

Lohtu-projekti. Testaussuunnitelma Lohtu-projekti Testaussuunnitelma Versiohistoria: 1.0 19.2.2003 1. versio Mari 1.1 20.2.2003 Muutoksia Mari 1.2 25.2.2003 Katselmoinnissa esiin tulleet Mari muutokset 1.3 17.3.2003 2. syklissä tehtävät

Lisätiedot

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } } Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.

Lisätiedot

M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e)

M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e) Tik-79.148 Kevät 2001 Tietojenkäsittelyteorian perusteet Laskuharjoitus 7 Demonstraatiotehtävien ratkaisut 1. Pinoautomaatti M = K Σ Γ s F missä K Σ s ja F on määritelty samalla tavalla kuin tilakoneellekin.

Lisätiedot

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0 TESTIRAPORTTI - VYM JA KANTA Versio 1.0 i Sisällysluettelo 1. YLEISTÄ 2 1.1. Dokumentin tarkoitus ja yleisiä toimintaohjeita 2 1.2. Viittaukset muihin dokumentteihin 2 2. SUORITETTAVA TESTI 3 2.1. Testauksen

Lisätiedot

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017

Lisätiedot

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012 TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. tammikuuta 2012 Sisällys Sisällys Äärellisiä automaatteja PUSH ON PUSH OFF Q T Q J C C H S C,Q C,Q 0 50s 1e

Lisätiedot

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja 582206 Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja 1. Esitä tilakaaviona NFA N = (Q, Σ, δ, q 0, F ), missä Q = { q 0, q 1, q 2, q 3, q 4, q 5, q 6, q 7 }, Σ = { a, b, c }, F = { q 4 } ja δ on

Lisätiedot

dokumentin aihe Dokumentti: Testausraportti_I1.doc Päiväys: Projekti : AgileElephant

dokumentin aihe Dokumentti: Testausraportti_I1.doc Päiväys: Projekti : AgileElephant AgilElephant Testausraportti I1 Tekijä: Petri Kalsi Omistaja: ElectricSeven Aihe: Testausraportti Sivu 1 / 5 Dokumentti Historia Muutoshistoria Revision Numero Revision Päiväys Yhteenveto muutoksista Revision

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 26.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 26.1.2009 1 / 33 Valintakäsky if syote = raw_input("kerro tenttipisteesi.\n") pisteet = int(syote) if pisteet >=

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 24.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 24.1.2011 1 / 36 Luentopalaute kännykällä alkaa tänään! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast

Lisätiedot

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

Testaussuunnitelma. PUSU-ryhmä. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma PUSU-ryhmä Helsinki 13.12.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (9 op) Projektiryhmä Jussi Hynninen

Lisätiedot