5. Bugiraportoinnista

Koko: px
Aloita esitys sivulta:

Download "5. Bugiraportoinnista"

Transkriptio

1 5. Bugiraportoinnista Bugiraportointi on käytännössä tärkein kommunikaation muoto testaajien ja kehittäjien välillä. Vaikka tavoitteet ovat yleensä selkeitä, ei toimivaa raportointia ole kuitenkaan helppo toteuttaa. Monesti on jälleen kysymys asenteista. Mika Katara: Ohjelmistojen testaus, Mukailtu lähteestä Cem Kaner, Bug Advocacy, Quality Week Massamarkkinoille suunnattujen ohjelmistojen tapauksessa suurin osa käyttäjien löytämistä virheistä on itse asiassa jo löydetty varsinaisessa testauksessa miksi niitä ei ole korjattu? Bugiraportti on väline, jolla testaajan on tarkoitus saada organisaatio vakuuttuneeksi siitä, että löytyneen bugin korjaamiseen kannattaa käyttää aikaa ja rahaa Mika Katara: Ohjelmistojen testaus,

2 Jos testauksen tarkoitus on löytää virheitä, silloin bugiraportit ovat testaajan ensisijainen tuotos Ne ovat tuloksia, jotka testauksesta näkyvät ulkopuolelle ja joiden perusteella testaajat muistetaan Paras testaaja ei ole se, joka löytää eniten virheitä, vaan se, joka saa eniten virheitä korjatuksi Koska aikaa ei ikinä ole tarpeeksi, testaajan täytyy myydä bugi kehittäjälle, jotta tämä käyttäisi aikaansa sen korjaamiseen Myyminen perustuu kahteen tavoitteeseen Kehittäjä täytyy saada haluamaan korjata bugi Kehittäjän vastalauseet ja selitykset, miksi bugia ei tarvitse korjata, täytyy pystyä kumoamaan Mika Katara: Ohjelmistojen testaus, Mitkä seikat saavat kehittäjän haluamaan korjata bugin? Se näyttää tosi pahalta Se näyttää mielenkiintoiselta ongelmalta Se vaikuttaa moniin ihmisiin Sen toistaminen on triviaalia Se saattaa meidät noloon tilanteeseen, tai vastaava bugi on saattanut kilpailijan noloon tilanteeseen Johto haluaa, että bugi korjataan Ohjelmoija haluaa tehdä testaajalle palveluksen yms. henkilökohtaiset syyt Vetoaminen ammattitaitoon tms. Mika Katara: Ohjelmistojen testaus,

3 Mikä saa kehittäjän vastustelemaan bugin korjaamista? Kehittäjä ei saa bugia toistettua Bugin toistaminen vaatii erikoista temppuilua Toistaminen ei ole mahdollista näillä tiedoilla ja lisätietojen kaivaminen vaatii paljon työtä Kehittäjä ei ymmärrä bugiraporttia Epärealistinen bugi Korjaaminen vaatii paljon työtä Korjaaminen on riskialtista Ei nähtävissä olevaa vaikutusta käyttäjille Ei tärkeä; kukaan ei välitä, jos tämä ei toimi Mika Katara: Ohjelmistojen testaus, Kyseessä ei ole bugi vaan ominaisuus Johto ei välitä tämän kaltaisista bugeista Kehittäjä ei pidä testaajasta tai ei luota häneen tms. henkilökohtaiset syyt Mika Katara: Ohjelmistojen testaus,

4 Kuinka motivoida bugin korjaamiseen? Kun testaaja huomaa häiriön, on kyseessä oire, itse virhe on vielä paljastamatta Ehkäpä tämä häiriö ei ole paras mahdollinen esimerkki ko. virheen aiheuttamista häiriöistä Siksi täytyy tehdä lisää töitä ennen bugiraportin kirjoittamista sen osoittamiseksi, että virhe on vakavampi ja yleisempi kuin mitä ensisilmäyksellä näyttää Mika Katara: Ohjelmistojen testaus, Vakavuuden selvittäminen Kun testaaja on löytänyt häiriön, on ohjelmisto saatu haavoittuvaan tilaan Jatkamalla testausta tässä tilassa, voidaan selvittää vian todellinen vakavuus vaihtelemalla kontrollia (ensin A, sitten B tai toisin päin) vaihtelemalla optioiden ja asetusten arvoja vaihtelemalla ohjelmisto- ja laitteistokonfiguraatiota Mika Katara: Ohjelmistojen testaus,

5 Onko kyseessä uusi vai vanha bugi? Jos kyseessä on vanha bugi, sen korjaamiseen ei olla motivoituneita, ellei se ole aiheuttanut valituksia asiakkailta Uusiin bugeihin suhtaudutaan vakavammin Jos kyseessä on vanha bugi, voi yrittää löytää uusia tapoja, joilla häiriö esiintyy ohjelmiston uudessa versiossa kyse on tällöin uudesta ongelmasta Em. kohdat korostuvat erityisesti ohjelmiston ylläpitovaiheessa, kun uuden version tarkoituksena on vain korjata kriittisimpiä virheitä Jos bugitietokantaa siivotaan aika ajoin, voi tärkeää tietoa kadota Mika Katara: Ohjelmistojen testaus, Yleisyyden selvittäminen Etsi riippuvuuksia konfiguraatioista jos häiriötä ei saada toistetuksi kehittäjän ympäristössä, on motivointi bugin korjaamiseksi hankalaa bugiraportin täytyy kertoa ne ympäristöt, joissa häiriö ilmenee Yritä yleistää ääritapaukset raja-arvoanalyysi auttaa häiriön etsimisessä Negatiivinen testaus, raja-rovot, virheelliset syötteet Kun bugi on löytynyt, ei tarvitse enää tyytyä raja-arvoihin Mika Katara: Ohjelmistojen testaus,

6 Testaajan pitäisi raportoida myös sellaiset bugit, joita ei saa toistetuksi Jos raportti on riittävän tarkka, ohjelmoija voi sen perusteella selvittää virheen olinpaikan Kun huomaat, että et saa bugia toistetuksi, kirjoita ylös heti kaikki mitä siitä muistat jos olet epävarma siitä mitä teit, sano se bugiraportissa Kannattaa kirjata myös se, mitä teit ennen kuin huomasit häiriön Tarkasta bugitietokannasta, löytyisikö sieltä jotain vastaavaa Yritä muuttaa ohjelman ajoitusta hitaammaksi ja nopeammaksi Juttele ohjelmoijan kanssa ja/tai lue koodia Bugi, jota ei saada toistetuksi on testaajan virhe, kannattaa yrittää ottaa opikseen Mika Katara: Ohjelmistojen testaus, Hyvän bugiraportin resepti Selkeä, kuvaava otsikko auttaa löytämään raportin bugikannasta Selosta kuinka häiriön saa toistettua, sisällytä kaikki askeleet Kuvaile, mitkä askeleet ovat ja mitkä eivät ole tärkeitä bugin kannalta, ja miten tulokset vaihtelivat eri testiajoissa Analysoi ongelmaa ja kerro, miten se voidaan toistaa pienimmällä määrällä askelia Raportin pitää olla helposti ymmärrettävä Sävyn pitää olla neutraali Vain yksi bugi per raportti Jos toistamiseen tarvitaan tiedosto, liitä se raporttiin tai kerro mistä se löytyy Mika Katara: Ohjelmistojen testaus,

7 Bugiraporttipohja Ongelman kuvaus yhdellä rivillä bugiraportin tärkein kenttä johto lukee tämän kun haluaa tietää mitkä bugit ovat vielä korjaamatta Raportin yksilöivä numero Kuka raportoi Raportin luontipäivä Ohjelman tai komponentin nimi Julkistuksen ja version numero Testikonfiguraatio(t) Mika Katara: Ohjelmistojen testaus, Raportin tyyppi ohjelmointivirhe, suunnitteluvirhe, dokumentoinnin vastaamattomuus, ehdotus, kysymys Voiko toistaa kyllä, ei, joskus, en tiedä: jos testaaja väittää, että bugi voidaan toistaa ja ohjelmoija on toista mieltä, testaaja joutuu toistamaan bugin ohjelmoijan silmien edessä Vakavuus Prioriteetti ohjelmoija/projektipäällikkö täyttää Vaikutus asiakkaisiin esim. tekninen tuki täyttää Mika Katara: Ohjelmistojen testaus,

8 Avainsanat Ongelman kuvaus ja toistaminen askel askeleelta Suositeltu korjaus Kuka selvittää projektipäällikkö täyttää Status testaaja täyttää: avoin, suljettu, roskis Päätös projektipäällikkö omistaa tämän kentän odottaa, korjattu, ei voida toistaa, lykätty korjausta, toimii kuten suunniteltu, tarvitaan lisää tietoa, duplikaatti, vedetty pois tms. Mika Katara: Ohjelmistojen testaus, Päätöstä vastaavan buildin versionumero Päätöksen tekijä ohjelmoija, projektipäällikkö, error manager, testaaja Päätöksen testaaja jos testaaja löytää bugin, hän myös testaa korjauksen Bugiraportin versiohistoria Vapaamuotoiset kommentit muista neutraali sävy Mika Katara: Ohjelmistojen testaus,

9 6. Ohjelmistojen mittaaminen Ohjelmistoprojekteissa mikään ei ole pysyvää paitsi muutos. Mittausten avulla voidaan tehdä sivistyneitä arvauksia projektin nykytilasta sekä siitä, mitä pitäisi muuttaa ja mihin suuntaan. Toisaalta tuotemetriikat voivat auttaa kohdistamaan testausta virheherkimpiin osiin. Mika Katara: Ohjelmistojen testaus, Metriikat Pääasiallinen lähde [Haikala&Märijärvi 06] Mitä halutaan mitata, minkälaista tietoa kaivataan? Tarvitaanko tuotemetriikoita, projektimetriikoita, vai molempia? Vai halutaanko mitata jotain muuta? Mitä enemmän sen parempi? Joitain suureita ei voida mitata tarkasti, kuten jäljellä olevien bugien määrää, mutta arvioita voidaan antaa Jos jäljellä olevien bugien määrä voitaisiin laskea, ne olisi luultavasti helppo myös poistaa Toiset arviot ovat parempia kuin toiset Mika Katara: Ohjelmistojen testaus,

10 Mittauksessa törmätään yleensä asenneongelmiin Ohjelmistoprojekteissa on aina vaarana, että mittaaminen kohdistuu suoraan henkilöön ja tämän suoritukseen Mittaustulosten hyödyntämistapa pitäisi tehdä kaikille selväksi Mittaamista on perinteisesti hyödynnetty testauksessa varsin laajasti Testikattavuus Testien kohdistaminen virheherkimpiin osiin ohjelmisto Koodi, joka on monimutkaista on yleensä myös virheherkkää Mika Katara: Ohjelmistojen testaus, Aloita yksinkertaisilla mittareilla Aloita testauksen mittaaminen yksinkertaisilla metriikoilla, jotka vaikuttavat luotettavilta, ja kokoa ne mittarijoukoksi Jos on esimerkiksi mahdollista mitata vaatimusten kattavuutta, se voi olla hyvä alkupiste Kokoelma toisiaan täydentäviä vaatimuksiin ja spesifikaatioihin sekä kooditason kattavuuteen pohjautuvia mittareita voi olla hyödyllinen Sen sijaan, että tuijotettaisiin pieniin muutoksiin mitatuissa arvoissa, kiinnostavampia ovat suuret muutokset ja trendit (tulemmeko paremmiksi vai huonommiksi) Hopealuotia ei ole mittauksessakaan Muuta mittarijoukkoa pienin askelin, yritä pysyä perillä muutosten vaikutuksista Mika Katara: Ohjelmistojen testaus,

11 Metriikat vs. Riskit Onko mittarijoukolla ja tuotteen tai projektin riskeillä jokin yhteys? Testaa mittarijoukkoa keksimällä skenaarioita, joissa jokin tärkeä riski realisoituu tuotteessa tai projektissa nähdäksesi havaitsevatko mittarit sen selvästi Jos ei, voisiko mittarijoukkoa parantaa huomaamaan tällaisia ongelmia? Älä luota mittareihin, jotka ovat olleet usein väärässä: mitä onnistuneiden ja epäonnistuneiden testien suhde oikeastaan kertoo? Voisiko tätä tietoa täydentää esimerkiksi jollakin vaatimuksiin/spesifikaatioihin/koodikattavuuteen liittyvällä metriikalla? Mika Katara: Ohjelmistojen testaus, Mittaamisen huolellinen suunnittelu Isoissa projekteissa/organisaatioissa tarvitaan usein mittaussuunnitelmaa: miksi mitaan mitä mitataan ketkä osallistuvat mittaamiseen mitä osia järjestelmästä mitataan koska mitataan kuinka tiedot kerätään ja analysoidaan Mika Katara: Ohjelmistojen testaus,

12 Vaatimuksia mittareille Mittaamisen tulosten merkitys liiketoiminnalle Peruste mittaamiselle Yhteinen käsitys siitä, miksi tietoa kerätään ja miten sitä voidaan hyödyntää ja tullaan hyödyntämään Käyttöönoton helppous Tarvitaanko käyttöönottoprojekti Ymmärrettävyys Syyt muuttuville arvoille Selektiivisyys Tulokset kohdennettavissa mittauksen kohteeseen Jos mittarin arvo muuttuu, tiedetään mikä muuttuu mittauksen kohteessa Mika Katara: Ohjelmistojen testaus, Objektiivisuus Tulokset eivät riipu mittaajasta tai mittaustilanteesta Luotettavuus Tarkkuus, toistettavuus, mittaria ei käytetä vahingossa väärin Taloudellisuus Mittauksen kustannukset suhteessa saavutetuun hyötyyn Uudelleenkäytettävyys Mika Katara: Ohjelmistojen testaus,

13 S-käyrä Esimerkki järjestelmätestauksen virhekäyrästä [Haikala&Märijärvi 06]: Siirrytään hyväksymistestaukseen kun virhekäyrä tasaantuu Tasaantumisen saavuttamiseen tarvittavia resursseja on valitettavasti vaikea arvioida etukäteen Mika Katara: Ohjelmistojen testaus, testatut vaatimukset Olisiko näistä metriikoista edistymisen seurantaan? Ajetut testit, arvio Läpäistyt testit, arvio Ajetut, toteutunut Läpäistyt, toteutunut aika Mika Katara: Ohjelmistojen testaus,

14 Ei-toiminnallinen ja negatiivinen testaus Kuinka mitata ei-toiminnallista testausta? Entä kuinka mitata negatiivista testausta? Niin kauan kuin voidaan puhua testitapauksista, ei mittaamisen pitäisi olla erilaista Valitettavasti on kuitenkin erittäin helppo unohtaa eitoiminnallinen ja negatiivinen testaus, jos keskitytään puhtaasti toiminnallisuuden testaukseen Joitakin testaustyyppejä on hankala mitata testitapausten avulla Käytettävyys, suorituskyky, turvallisuus Mika Katara: Ohjelmistojen testaus, Suorat ja johdetut mittarit Perusmittarit: suoritetut testit, löytyneet virheet, kattavuus suhteessa vaatimuksiin/spesifikaatioihin, koodikattavuus, koko, mutkikkuus, käytetty työmäärä, jne. Johdetut mittarit: virhetiheys, onnistuneiden ja epäonnistuneiden virhekorjausten suhde, löydettyjen virheiden määrän suhde niiden virheiden määrään, jotka olisi voitu löytää, jne. Prosessi-sidonnaiset mittarit: testien suoritusnopeus, automatisointiaste, virheiden elinaika päivissä, testaukseen suunnitteluun kulunut työmäärä, laatuvelka ketterässä projektissa, jne. Yleisesti ottaen ongelma ei ole mittareiden keksiminen, koska niitä on jo tarpeeksi; ongelma on valita sopivat mittarit Mika Katara: Ohjelmistojen testaus,

15 Goal-Question-Metric-menetelmä (Basili) 1. Develop a set of corporate, division and project business goals and associated measurement goals for productivity and quality 2. Generate questions that define those goals as completely as possible in a quantifiable way 3. Specify the measures needed to be collected to answer those questions and track process and product conformance to the goals 4. Develop mechanisms for data collection 5. Collect, validate and analyze the data in real time to provide feedback to projects for corrective action 6. Analyze the data in a postmortem fashion to assess conformance to the goals and to make recommendations for future improvements Source: Basili, Victor R., Using Measurement to Build Core Competencies in Software, Seminar sponsored by Data and Analysis Center for Software, 2005 Mika Katara: Ohjelmistojen testaus, Sitä saa mitä mittaa! Kuinka mittareita huijataan? Johto saa sitä mitä mittaa 100% koodikattavuuden saavuttaa helpommin kun jättää testien tulokset huomioimatta Automatisoinnin astetta voi kasvattaa hankkiutumalla eroon manuaalisesta testauksesta Tehokkaaksi testaajaksi pääsee kunhan käy muuttamassa itse lähdekoodia ja löytämällä itse tekemänsä virheet seuraavana päivänä Jos mittareihin on yhdistetty palkitsemista, kiusaus niiden huijaamiseen voi nousta ongelmaksi Mika Katara: Ohjelmistojen testaus,

16 Esimerkkejä mittareista Kuva: Timo Malm, VTT. Data origin: Capers Jones. Software quality in 2008: A survey of the state of the art. Mika Katara: Ohjelmistojen testaus, Järjestelmätason kattavuusmitat Perinteiset mittarit: Vaatimusten kattaminen kuinka hyvin eri vaatimukset on saatu katettua Kattavuus suhteessa vaatimusten tärkeyteen Toiminnallinen kattavuus Liitetään testit ohjelman toimintoihin, jopa käyttöliittymän toimintoihin Kattavuus eri yksiköiden suhteen Komponentit, moduulit, yms. Mika Katara: Ohjelmistojen testaus,

17 Muita vaihtoehtoja Riskikattavuus Kuinka tuotteen riskit on testauksessa otettu huomioon, erityisesti isojen riskien osalta Riskikattavuus suhteessa vaatimuksiin/toimintoihin Kattavuus sen suhteen mikä on tärkeää eri käyttäjäryhmille 70 % yrityskäyttäjille tärkeistä vaatimuksista on katettu, 83 % kotikäyttäjille tärkeistä Käyttöskenaario- / käyttötapaus- / tarinakattavuus Tällä tasolla käytettävät kattavuusmittarit riippuvat käytettävästä prosessista V-malli vai ketterä prosessi Mika Katara: Ohjelmistojen testaus, Koodin kattavuusmitat Koodikattavuuden avulla voidaan päätellä, että vielä ei olla testattu riittävästi Sen päätteleminen, että on testattu tarpeeksi, on sitten toinen asia On hyvä muistaa, että puuttuvaa koodia ei pystytä testaamaan Vaikka järjestelmätason testaajien ei tarvitse huolehtia kooditason kattavuudesta, on hyvä tietää mitä hyviä ja huonoja puolia kehittäjien käyttämissä mittareissa on Mika Katara: Ohjelmistojen testaus,

18 Hyvää yksikkötestausta täytyy vaatia ohjelmointitiimeiltä ja alihankkijoilta Testien laatuun panostaminen on parempi strategia kuin vain mittareiden tuijottaminen Lisäksi testit on vain yksi laadunvarmistuksen keino: koodikatselmoinnit, staattinen analyysi, jne. ovat myös tärkeitä Yksikkötason metriikat saadaan automaattisesti työkaluilta, jotka on integroitu yksikkötestaukseen ja/tai matalan tason integrointitestaukseen Näitä on helppo käyttää vaatimuksina seuraavaan vaiheeseen siirtymiselle (laatuportit) Mika Katara: Ohjelmistojen testaus, laske tulokset alustukset Havainnollistetaan erilaisia kattavuusmittoja esittämällä testattava ohjelma oheisen kulkukaavion mukaisella notaatiolla Testauksessa ollaan kiinnostuneita ohjelman käyttäytymisistä, joita vastaavat eri suorituspolut Suorituspolku kuvaa ohjelman kontrollin kulkua testikohteen alusta sen loppuun ohjelmaa suoritettaessa ei opiskelijoita jäljellä kyllä hae seuraavan opiskelijan tiedot mukana tentissä kyllä määrää arvosana ei laske arvosanajakauma loppu päivitä opiskelijan tiedot Esimerkki lähteestä [Haikala&Märijärvi 06] Mika Katara: Ohjelmistojen testaus,

19 Polkukattavuus Path coverage Koska tavoitteena pitäisi olla mahdollisimman kattava testaus, olisi luonnollista vaatia, että kaikki mahdolliset suorituspolut tulee käytyä läpi Ongelma I: silmukat tekevät polkujen määrän liian suureksi monet ohjelmat on tarkoitettu pyörimään ikuisessa silmukassa valmiina vastaanottamaan ulkopuolisia ärsykkeitä => ääretön määrä suorituspolkuja voidaan saavuttaa vain esim. yhden funktion sisällä Ongelma II: kaikki ohjelmakoodia tutkimalla löydetyt polut eivät ole välttämättä suorituksessa mahdollisia esim. jonkin polun suorittaminen funktion läpi edellyttää tiettyä parametrin arvoa, jolla ko. funktiota ei ikinä kutsuta Mika Katara: Ohjelmistojen testaus, laske tulokset Kuinka monta eri suorituspolkua oheisella ohjelmalla on? Toisin sanoen, kuinka monta erilaista tapaa on päästä alkusolmusta loppusolmuun? Jos opiskelijoita on n kappaletta, ja jokaisen kohdalla on kaksi mahdollisuutta sen mukaan onko osallistunut tenttiin vai ei: 2 n Jos kyseessä olisi 100:n opiskelijan kurssi (OHJ-3060), olisi suorituspolkuja Jos silmukasta voisi hypätä pois kesken kaiken, olisi polkuja vielä paljon enemmän: 2 n +2 n-1 +2 n ei alustukset opiskelijoita jäljellä kyllä hae seuraavan opiskelijan tiedot mukana tentissä kyllä määrää arvosana päivitä opiskelijan tiedot ei laske arvosanajakauma loppu Mika Katara: Ohjelmistojen testaus,

20 Polkukattava testaus on siis käytännössä saavuttamaton tavoite Vaikka se saavutettaisiinkin, ei se takaisi kuitenkaan virheettömyyttä: Ehkä on toteutettu jotain muuta kuin mitä asiakas haluaa Ehkä on jätetty toteuttamatta joitakin haluttuja polkuja Vaikka kaikki mahdolliset polut käytäisiinkin läpi, voidaan funktion parametrien arvot valita huonosti siten, etteivät virheet paljastu esim. if(5/x + 5 < 10) polkukattavuuteen riittää, että testataan arvoilla 0<x 1 ja x>1, mutta arvolla x=0 ei välttämättä testata eikä virhettä huomata Mika Katara: Ohjelmistojen testaus, Lausekattavuus Mikäli jokaista ohjelman lausetta kohden löytyy joukosta suorituspolkuja (eli joukosta testitapauksia) vähintään yksi polku, joka suorittaa ko. lauseen sanotaan joukon testaavan ohjelman lausekattavasti Toisin sanoen, joukko testitapauksia suorittaa jokaisen lauseen ainakin kerran ei laske tulokset alustukset opiskelijoita jäljellä kyllä hae seuraavan opiskelijan tiedot mukana tentissä kyllä ei laske arvosanajakauma loppu määrää arvosana päivitä opiskelijan tiedot Mika Katara: Ohjelmistojen testaus,

21 Mikäli ohjelmassa on 100 lausetta, joista testitapaukset suorittavat 63, sanotaan lausekattavuuden olevan 63 % 100 % polkukattavuudesta seuraisi luonnollisesti 100 % lausekattavuus Mika Katara: Ohjelmistojen testaus, Päätöskattavuus Branch/decision coverage Kuten jo edellä huomattiin, kontrollin haarautumiskohdat ovat avainasemassa testikattavuutta määriteltäessä Päätöskattavuus vaatii, että jokainen päätös saa testattaessa molemmat arvonsa Päätöskattavuus tarkoittaa, että kulkukaaviossa jokainen kaari täytyy käydä läpi a==0 && b>0 kyllä ei Mika Katara: Ohjelmistojen testaus,

22 Päätöskattavuus on vahvempi vaatimus kuin lausekattavuus: if(a==0 && b>0) { a++; } Lausekattavaan testaukseen riittää nyt yksi testitapaus esim. (a=0, b=1), mutta päätöskattavuuteen tarvitaan vähintään kaksi esim. (a=0, b=1) ja (a=1, b=1) foo alustukset a==0 && b>0 kyllä a++ loppu ei Mika Katara: Ohjelmistojen testaus, Mikäli testitapausten ajon seurauksena esim. 100:sta mahdollisesta päätöksestä on tehty 54, sanotaan testien päätöskattavuuden olevan 54 % 100 % päätöskattavuudesta seuraa 100 % lausekattavuus tietyin oletuksin: Koodissa on vähintään yksi päätös Suoritus alkaa aina koodin alusta (ei goto-käskyjä tms.) Lisäksi poikkeusten laukeaminen saattaa aiheuttaa sen, että vaikka kaikki päätökset saataisiinkin katettu, ei kaikkia lauseita saada katettua Mika Katara: Ohjelmistojen testaus,

23 Ehtokattavuus Condition coverage Edellä saavutettiin päätöskattavuus kahdella testitapauksella, joiden avulla päätös sai molemmat mahdolliset arvonsa Päätös kuitenkin koostui kahdesta totuusarvoisesta ehdosta (a==0) ja (b>0), joista toinen sai esimerkissä vain toisen arvonsa Totuusarvoiset ehdot eroavat päätöksistä siinä, että ne eivät sisällä loogisia operaattoreita kuten AND tai OR Ehtokattavuus: jokainen ehto evaluoituu todeksi ja epätodeksi Huom! Ehtokattavuudesta ei välttämättä seuraa päätöskattavuutta: esimerkin tilanteessa testitapaukset (a=0, b=0) ja (a=1, b=1) tyydyttävät ehtokattavuuden, mutta eivät päätöskattavuutta Mikäli vaaditaan sekä päätös- että ehtokattavuus vastaavaa mittaria kutsutaan päätös/ehtokattavuudeksi Mika Katara: Ohjelmistojen testaus, Moniehtokattavuus Multiple condition coverage Moniehtokattavuus vaatii, että päätöksen kaikkien ehtojen molempien arvojen kaikki mahdolliset kombinaatiot tulee käytyä läpi Mikäli päätös koostuu n:stä ehdosta, tarvitaan korkeintaan 2 n kpl testitapauksia, jotta moniehtokattavuus saavutettaisiin ko. päätöksen osalta Edellisessä esimerkissä moniehtokattavuus saadaan tyydytettyä esim. testitapauksilla (a=0, b=0), (a=1, b=0), (a=0, b=1) ja (a=1, b=1) Mika Katara: Ohjelmistojen testaus,

24 100 % moniehtokattavuudesta seuraa 100 % päätöskattavuus 100 % ehtokattavuus 100 % päätös/ehtokattavuus Mikäli päätös muodostuu toisensa poissulkevista ehdoista esim. (a<0 a>4), silloin kombinaatio, jossa molemmat ehdot täyttyvät, ei luonnollisestikaan ole mahdollinen Siksi määritelmämme pitäytyy mahdollisissa kombinaatioissa Huom! Monissa ohjelmointikielisissä käytössä oleva oikosulkuevaluointi vähentää myös mahdollisten kombinaatioiden määrää Mika Katara: Ohjelmistojen testaus, Moniehtokattavuuden voi määritellä sitenkin, että yhden päätöksen kaikkien ehtojen kombinaatioiden sijasta pitääkin kattaa kaikkien ohjelman/funktion ehtojen kaikki kombinaatiot Näin päästään vieläkin kattavampaan testaukseen Testikattavuustyökaluista esim. CTC++ pitäytyy aluksi esitetyssä määritelmässä Mika Katara: Ohjelmistojen testaus,

25 6.2 Mutkikkuusmitat Complexity measure Idea: kohdistetaan testausta monimutkaisimpiin osiin koodia Käyttökelpoinen lähinnä yksikkötestauksessa Mitataan yksikön mutkikkuutta ja testataan sitä tarpeen mukaan enemmän tai vähemmän Perustuu yleensä koodin rakenteen staattiseen analysointiin Mika Katara: Ohjelmistojen testaus, LOC Lines of Code Käytetään yleisesti mittaamaan paitsi koodin pituutta myös esim. ohjelmoijien tuottavuutta (LOC/henkilötyökuukausi) Voisiko koodirivien määrää käyttää mutkikkuuden mittana? Mitä pidempi funktio, sen mutkikkaampi? Oletetaan, että LOC on hyvä monimutkaisuuden mittari Otetaan kielellä X toteutettu ohjelma P, jonka pituus on 1000 LOC Portataan ohjelma kielelle Y Mika Katara: Ohjelmistojen testaus,

26 Uuden toteutuksen pituus on 500 LOC Vähenikö ohjelman monimutkaisuus puoleen vai onko kieli Y vain ilmaisuvoimaisempi kuin X? Johtopäätös I: LOC on varmastikin hyvä koodin pituuden mittari, mutta huono mutkikkuusmittari (ainakin yksinään) Johtopäätös II: hyvä mutkikkuusmittari ei ole herkkä käytettävälle ohjelmointikielelle Edellä olisi tietysti voitu laskea mittarin arvolle skaalausvakio siirryttäessä kielestä toiseen Mika Katara: Ohjelmistojen testaus, Halsteadin mittarit 1970-luvun puolen välin tienoilla Maurice Halstead esitteli Software Science -teorian (Elements of Software Science, New York, Elsevier North-Holland, 1977) ja siitä johdetun joukon mittareita Ohjelman määritellään olevan kokoelma merkkejä (token), jotka jaetaan operaattoreihin ja operandeihin Operaattoreita ovat mm. varatut sanat, matemaattiset operaattorit jne. Perusmittarit ovat: u 1 = uniikkien operaattorien lukumäärä u 2 = uniikkien operandien lukumäärä N 1 = operaattorien kokonaismäärä N 2 = operandien kokonaismäärä Mika Katara: Ohjelmistojen testaus,

27 Esim. C++-kielen lause a == b koostuu yhdestä operaattorista (==) ja kahdesta operandista (a ja b) Perusmittareiden avulla voidaan määritellä monimutkaisempia mittareita Ohjelman P Pituus (length) on N = N 1 + N 2 Sanasto (vocabulary) on u = u 1 + u 2 Volyymi (volume) on V = N x log 2 u Mika Katara: Ohjelmistojen testaus, Taso (program level) on L = V* / V, missä V* on pienimmän mahdollisen toteutuksen volyymi Tason käänteisluku on vaikeus (difficulty) D = 1 / L Tekemiseen (ymmärtämiseen) tarvittavan ponnistuksen arvio on E = (u 1 x N 2 x N x log 2 u) / (2 x u 2 ) Tekemiseen tarvittava aika T = E / 18 sekuntia Mika Katara: Ohjelmistojen testaus,

28 Joissain tutkimuksissa on löydetty yhteys N:n arvon ja moduulin sisältämien virheiden määrän väliltä Software Science teoria on kuitenkin toistuvasti kyseenalaistettu Mittareiden määritelmissä on myös mittausteoreettisia ongelmia Toisaalta esim. SEI:n ylläpidettävyysindeksin laskennassa tarvitaan Halsteadin volyymin V arvoa Mika Katara: Ohjelmistojen testaus, McCaben syklomaattinen numero Perustuu lähteeseen Thomas J. McCabe, A Complexity Measure, IEEE Transactions on Software Engineering, SE- 2(4), Dec Graafiteoreettinen pohja ohjelmien monimutkaisuuden ja testaustarpeen arvioinnille Syklomaattinen numero v(g) graafille G, jossa n solmua, e kaarta ja p kytkettyä komponenttia on v(g) = e n + p Vahvasti kytketyssä graafissa G (eli jokaisesta solmusta pääsee jotain polkua pitkin jokaiseen solmuun), syklomaattinen numero vastaa lineaarisesti riippumattomien piirien maksimimäärää Piiri on polku, jonka alkusolmu on sama kuin loppusolmu Mika Katara: Ohjelmistojen testaus,

29 McCabe soveltaa tätä tietoa seuraavasti Esitetään ohjelman rakenne suunnattuna kontrolligraafina, jossa on yksikäsitteiset alku- ja loppusolmut Solmut vastaavat peräkkäisiä ohjelman lauseita ja kaaret kontrollin kulkua Oletetaan, että alkusolmusta on olemassa polku kaikkiin solmuihin kaikista solmuista on olemassa polku loppusolmuun Mika Katara: Ohjelmistojen testaus, Jos kuvitellaan ylimääräinen kaari loppusolmusta alkusolmuun, kontrolligraafi on vahvasti kytketty: 9 1 a b 4 c 7 d 10 e 6 8 f Mika Katara: Ohjelmistojen testaus,

30 Yleensä tutkitaan yhtä funktiota kerrallaan, joten p=1 Toisaalta, ylimääräinen kaari loppusolmusta voidaan unohtaa, jos se otetaan vakiona laskuissa huomioon Piirien sijaan voidaan nyt puhua poluista alkusolmusta loppusolmuun, joten kaava pelkistyy muotoon v(g) = e - n + 2 Jos kaikki päätökset ovat binäärisiä, eli jokaisesta solmusta lähtee korkeintaan kaksi kaarta, yksinkertaistuu kaava (todistus sivuutetaan) entisestään muotoon v(g) = h + 1, jossa h on päätösten lukumäärä Mika Katara: Ohjelmistojen testaus, Tässä oletetaan, että AND:llä kytketyt ehdot erotetaan omiksi päätöksikseen esim. IF c1 AND c2 THEN IF c1 THEN IF c2 THEN Mikäli päätökset eivät ole binäärisiä, kuten CASE-lauseen tapauksessa, voidaan tilannetta simuloida käyttämällä useampaa IF-lausetta Mika Katara: Ohjelmistojen testaus,

31 v(g):n ominaisuuksia v(g) 1 G:ssä on vain yksi polku jos ja vain jos v(g) = 1 v(g) on lineaarisesti riippumattomien G:n polkujen maksimimäärä eli peruspolkujen lukumäärä Peräkkäisten lauseiden lisäämisellä ei ole vaikutusta v(g):hen Uuden haarauman lisääminen kasvattaa v(g):tä yhdellä v(g) riippuu vain G:n päätösten rakenteesta ja lukumäärästä Tutkimuksissa on löydetty korrelaatio virheiden määrän ja v(g):n arvon väliltä Mika Katara: Ohjelmistojen testaus, Suositus on, että jokaisen funktion v(g) 10 Tätä mutkikkaammat funktio ovat luultavasti vaikeita ylläpitää ja testata Tarvittaessa funktio pitäisi hajottaa kahteen tai useampaan yksinkertaisempaan funktioon McCaben mukaan funktio pitäisi testata ainakin sellaisilla testitapauksille, jotka kattavat peruspolut Peruspolkujen joukko ei tosin ole yksikäsitteinen Näiden peruspolkujen määrä on helppo laskea (v(g)), mutta niiden keksiminen ei ole yksinkertaista ainakaan ilman työkaluja Mika Katara: Ohjelmistojen testaus,

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

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

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

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori TIE-21204 Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2 Antti Jääskeläinen Matti Vuori Työn yleiset järjestelyt 14.9.2015 2 Valmistautuminen Ilmoittaudu kurssille Lue harjoitustyön nettisivut

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

Ohjelmistotuotanto, s

Ohjelmistotuotanto, s Rakenteellinen testaus (white box) Ohjelmistotuotanto Testaus Rakenteellinen testaus perustuu ohjelman rakenteen hyväksikäyttöön - tieto ja kontrollivuoesityksiin tietovuo (data flow) - tiedon kulku kontrollivuo

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

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

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

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

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

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

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

TIE Ohjelmistojen testaus 2016 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori TIE-21201 Ohjelmistojen testaus 2016 Harjoitustyö Vaiheet 1 ja 2 Antti Jääskeläinen Matti Vuori Työn yleiset järjestelyt 20.9.2016 2 Valmistautuminen Ilmoittaudu kurssille Lue harjoitustyön nettisivut

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

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

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

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

Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu. LiKe Liiketoiminnan kehityksen tukiprojekti Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu TESTIRAPORTTI LiKe Liiketoiminnan kehityksen tukiprojekti Versio: 1.1 Tila: hyväksytty Päivämäärä: 13.2.2001 Tekijä:

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

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

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä www.niksula.cs.hut.fi/~jjkankaa// Testauksen loppuraportti v. 1.0 Päivitetty 23.4.2001 klo 19:05 Mikko Viljainen 2 (14) Dokumentin versiohistoria Versio Päivämäärä Tekijä / muutoksen tekijä Selite 1.0

Lisätiedot

Projektisuunnitelma Viulu

Projektisuunnitelma Viulu Projektisuunnitelma Viulu Kuusela Johannes Sjöblom Teemu Suominen Osma Ohjelmistotuotantoprojekti Helsinki 23.9.2004 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Versiohistoria Päivämäärä Versio

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

Ohjelmistotuotanto, s2001 2/27/2003

Ohjelmistotuotanto, s2001 2/27/2003 2. Rakenteellinen testaus (white-box) Ohjelmistotuotanto Ohjelmistojen testaus 2 Rakenteellinen testaus perustuu ohjelman rakenteen hyväksikäyttöön tieto- ja kontrollivuoesityksiin tietovuo (data flow)

Lisätiedot

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

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002 JReleaser Yksikkötestaus ja JUnit Mikko Mäkelä 6.11.2002 Sisältö Johdanto yksikkötestaukseen JUnit yleisesti JUnit Framework API (TestCase, TestSuite) Testien suorittaminen eri työkaluilla Teknisiä käytäntöjä

Lisätiedot

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016 CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016 VIIME KERRALLA MENETELMIÄ Musta laatikko Valkea laatikko Harmaa laatikko Regressio Automaatio Rasitus (kuormitus)

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

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

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

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

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

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1 12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu

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

Algoritmit 1. Luento 9 Ti Timo Männikkö

Algoritmit 1. Luento 9 Ti Timo Männikkö Algoritmit 1 Luento 9 Ti 7.2.2017 Timo Männikkö Luento 9 Graafit ja verkot Kaaritaulukko, bittimatriisi, pituusmatriisi Verkon lyhimmät polut Floydin menetelmä Lähtevien ja tulevien kaarien listat Forward

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

Ohjelmistotuotteen hallinnasta

Ohjelmistotuotteen hallinnasta Ohjelmistotuotteen hallinnasta Luennon tavoitteista Luennon sisällöstä Motivointia Lähteinä: Haikala ja Märijärvi, Ohjelmistotuotanto Royce, Software Project Management, A Unified Framework 1 Tavoitteista

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

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen 23 April 2018 1 Tavoitteet Yleiskuva seuraavista aiheista Testauksen organisointi Testaussuunnittelma Testauksen kustannukset Testausstrategia

Lisätiedot

Tutkittua tietoa. Tutkittua tietoa 1

Tutkittua tietoa. Tutkittua tietoa 1 Tutkittua tietoa T. Dybå, T. Dingsøyr: Empirical Studies of Agile Software Development : A Systematic Review. Information and Software Technology 50, 2008, 833-859. J.E. Hannay, T. Dybå, E. Arisholm, D.I.K.

Lisätiedot

Esitelmän kulku: 1. Pikaperehdytys koneoppimiseen. 2. Koneoppiminen ohjelmistotestauksessa. 3. Demonstraatio. 9/6/2017 Knowit

Esitelmän kulku: 1. Pikaperehdytys koneoppimiseen. 2. Koneoppiminen ohjelmistotestauksessa. 3. Demonstraatio. 9/6/2017 Knowit 1 Esitelmän kulku: 1. Pikaperehdytys koneoppimiseen. 2. Koneoppiminen ohjelmistotestauksessa. 3. Demonstraatio. 2 Knowit luo digitaalisia mahdollisuuksia hyödyntämällä: 1. Teknologista osaamista (Solutions)

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

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Esimerkkejä polynomisista ja ei-polynomisista ongelmista Esimerkkejä polynomisista ja ei-polynomisista ongelmista Ennen yleisempiä teoriatarkasteluja katsotaan joitain tyypillisiä esimerkkejä ongelmista ja niiden vaativuudesta kaikki nämä ongelmat ratkeavia

Lisätiedot

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2015

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2015 CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET Jussi Kasurinen (etu.suku@lut.fi) Kevät 2015 KERTAUS EDELLISESTÄ CT60A4150 Ohjelmistotestauksen perusteet ERILAISIA MITTAREITA (ISO/IEC 29119) Eli: Toistettava,

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

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

Yksikkötestaus. Kattava testaus. Moduulitestaus. Ohjelman testaus. yksikkotestaus/ Seija Lahtinen Yksikkötestaus Kattava testaus Moduulitestaus Ohjelman testaus 1 Kattava testaus Testauksen perimmäinen tarkoitus on LÖYTÄÄ VIRHEITÄ Testaus pitäisi olla täydellinen: - Jokainen pyydetty arvo pitäisi testata

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

Good Minton QA Raportti Iteraatio 1 Sulkapalloliiton Kilpailujärjestelmä

Good Minton QA Raportti Iteraatio 1 Sulkapalloliiton Kilpailujärjestelmä Good Minton QA Raportti Iteraatio 1 Sulkapalloliiton Kilpailujärjestelmä Versiohistoria: Versio: Pvm: Laatijat: Muutokset: 0.1 2006 12 09 Jani Eränen Alustava DOKUMENTIN TILA: Alustava Valmis Tarkastettu

Lisätiedot

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1 12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu

Lisätiedot

Kuopio Testausraportti Asiakkaat-osakokonaisuus

Kuopio Testausraportti Asiakkaat-osakokonaisuus Kuopio Testausraportti Asiakkaat-osakokonaisuus Kuopio, testausraportti, 25.3.2002 Versiohistoria: Versio Pvm Laatija Muutokset 0.1 11.2.2002 Matti Peltomäki Ensimmäinen versio 0.9 11.2.2002 Matti Peltomäki

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

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

Testaussuunnitelma. Pizzeria - Pitseria HAAGA-HELIA ammattikorkeakoulu Tietojenkäsittelyn koulutusohjelma. WebPizza Testaussuunnitelma Pizzeria - Pitseria HAAGA-HELIA ammattikorkeakoulu Tietojenkäsittelyn koulutusohjelma Versio 1.0 Ehdotus Laatija Raine Kauppinen VERSIOHISTORIA Versionotyyppi Versio- Päiväys Tekijä

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

ELM GROUP 04. Teemu Laakso Henrik Talarmo ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................

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

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

Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms.

Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms. Kokeellinen algoritmiikka (3 ov) syventäviä opintoja edeltävät opinnot: ainakin Tietorakenteet hyödyllisiä opintoja: ASA, Algoritmiohjelmointi suoritus harjoitustyöllä (ei tenttiä) Kirjallisuutta: Johnson,

Lisätiedot

Ohjelmiston testaus ja laatu. Testaustasot

Ohjelmiston testaus ja laatu. Testaustasot Ohjelmiston testaus ja laatu Testaustasot Testauksen vaihejako Tarpeet / sopimus Järjestelmätestaus Hyväksymiskoe Määrittely testauksen suunnittelu ja tulosten verifiointi Arkkitehtuurisuunnittelu Moduulisuunnittelu

Lisätiedot

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD)

TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) TT00AA12-2016 - Ohjelmoinnin jatko (TT10S1ECD) Ohjelmointikäytännöt 21/3/11 Mikko Vuorinen Metropolia Ammattikorkeakoulu 1 Sisältö 1) Mitä on hyvä koodi? 2) Ohjelmointikäytäntöjen merkitys? 3) Koodin asettelu

Lisätiedot

Tilastollinen testaus. Vilkkumaa / Kuusinen 1

Tilastollinen testaus. Vilkkumaa / Kuusinen 1 Tilastollinen testaus Vilkkumaa / Kuusinen 1 Motivointi Viime luennolla: havainnot generoineen jakauman muoto on usein tunnettu, mutta parametrit tulee estimoida Joskus parametreista on perusteltua esittää

Lisätiedot

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

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori Testauksen tuki nopealle tuotekehitykselle Antti Jääskeläinen Matti Vuori Mitä on nopeus? 11.11.2014 2 Jatkuva nopeus Läpäisyaste, throughput Saadaan valmiiksi tasaiseen, nopeaan tahtiin uusia tuotteita

Lisätiedot

Ohjelmistotestaus -09

Ohjelmistotestaus -09 Ohjelmistotestaus Testaustyökalut- ja automaatio Testaustyökalut ja -automaatio Testaustyökaluilla tuetaan testaustyötä sen eri vaiheissa Oikea työkalu oikeaan tarkoitukseen Testausautomaatio perustuu

Lisätiedot

10. Painotetut graafit

10. Painotetut graafit 10. Painotetut graafit Esiintyy monesti sovelluksia, joita on kätevä esittää graafeina. Tällaisia ovat esim. tietoverkko tai maantieverkko. Näihin liittyy erinäisiä tekijöitä. Tietoverkkoja käytettäessä

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

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

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1 T-76.115 Tietojenkäsittelyopin ohjelmatyö Sisältö Tästä dokumentista ilmenee T1-vaiheessa suoritettu testaus, sen tulokset ja poikkeamat testisuunnitelmasta. Päivämäärä 1.12.2002 Projektiryhmä Keimo keimo-dev@list.hut.fi

Lisätiedot

Ohjelmoinnin perusteet, syksy 2006

Ohjelmoinnin perusteet, syksy 2006 Ohjelmoinnin perusteet, syksy 2006 Esimerkkivastaukset 1. harjoituksiin. Alkuperäiset esimerkkivastaukset laati Jari Suominen. Vastauksia muokkasi Jukka Stenlund. 1. Esitä seuraavan algoritmin tila jokaisen

Lisätiedot

Työkalujen merkitys mittaamisessa

Työkalujen merkitys mittaamisessa Työkalujen merkitys mittaamisessa Mittaaminen ja Ohjelmistotuotanto -seminaari Toni Sandelin 18.4.2001, VTT Elektroniikka, Oulu 1 Sisältö Mihin työkalutukea tarvitaan? Työkalut & metriikat: luokitus Mittausohjelmien

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

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

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

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

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

Luokkatestauksen piirteitä: metodit. 4. Luokkatestaus (B, 10) Luokkatestauksen piirteitä: yliluokat. Luokan valmistelu. Alfa-Omega syklin vaiheet

Luokkatestauksen piirteitä: metodit. 4. Luokkatestaus (B, 10) Luokkatestauksen piirteitä: yliluokat. Luokan valmistelu. Alfa-Omega syklin vaiheet 4. Luokkatestaus (B, 10) Luokkatestaus on matalimman tason testausta. Siinä testataan yksittäisiä luokkia tai ryppäitä (clusters). Ryväs on joukko vahvasti toisiinsa sitoutuneita luokkia. Pieniä ryppäitä

Lisätiedot

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

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe LU. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T3 T-76.115 Tietojenkäsittelyopin ohjelmatyö Testiraportti, vaihe LU Sisältö Tästä dokumentista ilmenee LU-vaiheessa suoritettu testaus, sen tulokset ja poikkeamat testisuunnitelmasta. Päivämäärä 14.4.2003

Lisätiedot

Testitapausten suunnittelu

Testitapausten suunnittelu Testitapausten suunnittelu Sytyke-risteily 3.9.2002 Anna-Liisa Sihvonen Ohjelmistotestauksen kaksi perusongelmaa Testipaketin luominen olemassaolevan kuvauksen perusteella Erillisten testitapausten määrä

Lisätiedot

Harjoitus 7: NCSS - Tilastollinen analyysi

Harjoitus 7: NCSS - Tilastollinen analyysi Harjoitus 7: NCSS - Tilastollinen analyysi Mat-2.2107 Sovelletun matematiikan tietokonetyöt Syksy 2006 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1 Harjoituksen aiheita Tilastollinen testaus Testaukseen

Lisätiedot

11. Javan toistorakenteet 11.1

11. Javan toistorakenteet 11.1 11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin

Lisätiedot

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Graafit ja verkot Suuntamaton graafi: eli haaroja Joukko solmuja ja joukko järjestämättömiä solmupareja Suunnattu graafi: Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria Haaran päätesolmut:

Lisätiedot

Testaustyökalut Sini Mäkelä

Testaustyökalut Sini Mäkelä Testaustyökalut Sini Mäkelä Helsinki 26.11.2000 Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisällys 1 Johdanto...1 2 Testausprosessi...1 2.1 Testauksen tasot...1

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 Luonnollisen kielen tilastollinen käsittely Vastaukset 3, ti , 8:30-10:00 Kollokaatiot, Versio 1.1

T Luonnollisen kielen tilastollinen käsittely Vastaukset 3, ti , 8:30-10:00 Kollokaatiot, Versio 1.1 T-61.281 Luonnollisen kielen tilastollinen käsittely Vastaukset 3, ti 10.2.2004, 8:30-10:00 Kollokaatiot, Versio 1.1 1. Lasketaan ensin tulokset sanaparille valkoinen, talo käsin: Frekvenssimenetelmä:

Lisätiedot

Muistutus aikatauluista

Muistutus aikatauluista Muistutus aikatauluista (Nämä eivät välttämättä koske avoimen yo:n opiskelijoita Erkki Kailan rinnakkaisella kurssilla) Luento 1: kotitehtävät sulkeutuvat 20.9 12:00, ennen tutoriaalia Tutoriaali 1 sulkeutuu

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

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

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science Testaustyökalut Luento 11 Antti-Pekka Tuovinen 25 April 2013 1 Tavoitteet Työkalutyyppejä Testauksen hallinta Testien määrittely Staattinen analyysi Dynaaminen testaus 25 April 2013 2 1 Työkalut ja testaus

Lisätiedot

isomeerejä yhteensä yhdeksän kappaletta.

isomeerejä yhteensä yhdeksän kappaletta. Tehtävä 2 : 1 Esitetään aluksi eräitä havaintoja. Jokaisella n Z + symbolilla H (n) merkitään kaikkien niiden verkkojen joukkoa, jotka vastaavat jotakin tehtävänannon ehtojen mukaista alkaanin hiiliketjua

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

58131 Tietorakenteet (kevät 2009) Harjoitus 11, ratkaisuja (Topi Musto)

58131 Tietorakenteet (kevät 2009) Harjoitus 11, ratkaisuja (Topi Musto) 811 Tietorakenteet (kevät 9) Harjoitus 11, ratkaisuja (Topi Musto) 1. Bellmanin-Fordin algoritmin alustusvaiheen jälkeen aloitussolmussa on arvo ja muissa solmuissa on arvo ääretön. Kunkin solmun arvo

Lisätiedot

Menetelmäraportti Ohjelmakoodin tarkastaminen

Menetelmäraportti Ohjelmakoodin tarkastaminen Menetelmäraportti Ohjelmakoodin tarkastaminen Sisällysluettelo 1. Johdanto...3 2. Menetelmän kuvaus...4 2.1. Tarkastusprosessi...4 2.1.1. Suunnittelu...4 2.1.2. Esittely...5 2.1.3. Valmistautuminen...5

Lisätiedot

Sisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat

Sisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat Sisällys 12. Javan toistorakenteet Ylstä toistorakentsta. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirhtä. Silmukan rajat asetettu kierroksen

Lisätiedot

T SEPA - STAATTISET MENETELMÄT Tuomas Tolvanen, 55382U Timo Töyry, 58578B

T SEPA - STAATTISET MENETELMÄT Tuomas Tolvanen, 55382U Timo Töyry, 58578B T-76.5158 SEPA - STAATTISET MENETELMÄT Tuomas Tolvanen, 55382U Timo Töyry, 58578B T-76.5158 SEPA - Pariohjelmointi 2 (7) VERSION HALLINTA Versio Päivä Tekijä Kuvaus 0.1 5.12.2006 Tuomas Tolvanen Ensimmäinen

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

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

Project-TOP QUALITY GATE

Project-TOP QUALITY GATE Project-TOP QUALITY GATE FOR SUCCESSFUL COMPANIES TYÖKALU ERP- JÄRJESTELMIEN TESTAUKSEEN PROJECT-TOP QUALITY GATE Quality Gate on työkalu ERP-järjestelmien testaukseen Huonosti testattu ERP- järjestelmä

Lisätiedot

Johdatus graafiteoriaan

Johdatus graafiteoriaan Johdatus graafiteoriaan Syksy 2017 Lauri Hella Tampereen yliopisto Luonnontieteiden tiedekunta 166 Luku 4 Erilaisia graafeja 4.1 Eulerin graafi 4.2 Hamiltonin graafi 4.3 Tasograafi 4.4 Graafin värittäminen

Lisätiedot

58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 2, , vastauksia

58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 2, , vastauksia 58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 2, 652013, vastauksia 1 [6 pistettä] Vastaa jokaisesta alla olevasta väittämästä onko se tosi vai epätosi ja anna lyhyt perustelu Jokaisesta kohdasta

Lisätiedot

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet ) T-79144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet 11-22) 26 29102004 1 Ilmaise seuraavat lauseet predikaattilogiikalla: a) Jokin porteista on viallinen

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

Ohjelmointi 1 / syksy /20: IDE

Ohjelmointi 1 / syksy /20: IDE Ohjelmointi 1 / syksy 2007 10/20: IDE Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/8 Tämän luennon rakenne

Lisätiedot

f(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n))

f(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n)) Määritelmä: on O(g(n)), jos on olemassa vakioarvot n 0 > 0 ja c > 0 siten, että c g(n) kun n > n 0 O eli iso-o tai ordo ilmaisee asymptoottisen ylärajan resurssivaatimusten kasvun suuruusluokalle Samankaltaisia

Lisätiedot

b) Määritä myös seuraavat joukot ja anna kussakin tapauksessa lyhyt sanallinen perustelu.

b) Määritä myös seuraavat joukot ja anna kussakin tapauksessa lyhyt sanallinen perustelu. Johdatus yliopistomatematiikkaan Helsingin yliopisto, matematiikan ja tilastotieteen laitos Kurssikoe 23.10.2017 Ohjeita: Vastaa kaikkiin tehtäviin. Ratkaisut voi kirjoittaa samalle konseptiarkille, jos

Lisätiedot

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja 581336 Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja 1. S! axc X! axc X! by c Y! by c Y! " 2. (a) Tehtävänä on konstruoida rajoittamaton kielioppi, joka tuottaa kielen f0 n 1 n jn 1g. Vaihe1: alkutilanteen

Lisätiedot

Algoritmit 1. Luento 3 Ti Timo Männikkö

Algoritmit 1. Luento 3 Ti Timo Männikkö Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien

Lisätiedot