Dynaaminen analyysi III
|
|
- Miina Haapasalo
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 Dynaaminen analyysi III Luento 8 Antti-Pekka Tuovinen 16 April Tavoitteet White box testitapausten suunnittelutekniikat Lausekattavuus Haarautumakattavuus Ehto- ja polkukattavuus Huomioita white box -tekniikoista 16 April
2 White box -tekniikat Lause- ja haarautumakattavuus Ehtokattavuus Polkukattavuus 16 April Black box vs. White box Kurssikirjan kuva 5-2 s April
3 White box A.k.a koodiin perustuva testaus (code based testing), rakenteellinen testaus (structural testing) Yleisenä tavoitteena testin kohteen implementaation kattava testaus Jokainen kohta koodista suoritetaan ainakin kerran Testioraakkelina ei ole kuitenkaan koodi vaan vaatimukset 16 April White box tekniikoita testitapausten määrittelyyn Perustekniikat (ISTQB Foundation -taso) Lausekattavuus Valintakattavuus Edistyneemmät (ei käydä yksityiskohtaisesti läpi kurssilla) Ehtokattavuus Polkukattavuus 16 April
4 Lausekattavuus Tavoitteena on suorittaa tietty vähimmäismäärä (tai kaikki) testikohteen sisältämistä ohjelmointikielen lauseista Sijoituslause, valintalause (if, case), toisto (for, while), funktio-/metodikutsu (f( )), koottu lause ({...; ; ; }) Testin suunnittelua varten testikohde (ohjelmakoodi) muutetaan kontrollivuoverkoksi (control flow graph) Tarkoituksena on erityisesti tunnistaa kontrollin haarautumakohdat, jotka johtavat eri lauseryhmien suorittamiseen ajon aikana 16 April Kontrollivuoesimerkki Kurssikirja kuva 5-9, s. 144 Peräkkäin suoritettavat lauseet kootaan samaan solmuun Lausekattavuus saavutetaan, kun kaikissa verkon solmuissa on käyty Suorituksen kulkua haaroittavasta lauseesta tulee oma solmunsa, samoin kuin kohdista, joissa haarautuneet suorituspolut yhtyvät 16 April
5 Testitapaukset Testitapausten syötteet ja olosuhteet määritellään siten, että tapausten suorituksen aikana käydään läpi vähintään tavoiteltu määrä lauseita eli verkon solmuja Kuinka monta testitapausta tarvitaan tarvitaan, että saavutetaan 100% lausekattavuus esimerkin verkossa? 16 April Testitapaukset Esimerkkiverkolla saavutetaan täysi lausekattavuus yhdellä testitapauksella, joka käy läpi verkon kaaret järjestyksessä: a, b, f, g, h, d, e Muillakin suorituspoluilla ja/tai niiden yhdistelmillä saavutetaan lausekattavuus Pyritään kuitenkin minimoimaan testitapausten määrä Voi olla, että jo black box testitapauksilla saavutetaan lausekattavuus, mutta asia on varmistettava 16 April
6 Testitapaukset Yleisesti ottaen kaikkien testitapausten suorituksen pitäisi johtaa kaikkien lauseiden suoritukseen vähintään kerran Vain suoritetuista lauseista voidaan löytää vikoja! Kaikkea koodia (esimerkiksi harvinaisten poikkeusten käsittely) ei välttämättä saada testattua ilman erityistyökaluja Ei-kriittistä koodia ei välttämättä tarvitse testata lausekattavasti 16 April Testitapaukset Testitapauksiin määritellään normaaliin tapaan syötteet, odotettu tulos ja mahdolliset esi- ja jälkiehdot Odotettu tulos määritetään vaatimusten/spesifikaation perusteella Testitapausten onnistunut suoritus (pass) on tärkeää - virheiden takia jotkin lauseet voivat jäädä suorittamatta Testitapausten suorituksesta on silti saatava tieto siitä, mitkä lauseet todella suoritettiin 16 April
7 Testauksen lopetusehto Lausekattavuus = (suoritettujen lauseiden määrä / kaikkien lauseiden määrä) * 100% Lausekattavuus tunnetaan C0 -kattavuutena (C0-coverage) Suhteellisen heikko ehto 100% kattavuuden saavuttaminen voi silti olla vaikeaa, esimerkiksi poikkeustilanteiden aiheuttaminen voi vaatia erikoistyökaluja 16 April Tekniikan arviointia Voi auttaa löytämään testikohteesta kuollutta koodia Tavoiteltua suurempi osuus koodista jää suorittamatta testissä Tyhjät kontrollivuoverkon haarat jäävät suorittamatta (ei testitapauksia niille) Esim If lauseen else haara on tyhjä ei ole tarpeen muodostaa testitapausta, joka käy tämän haaran läpi Mutta pitäisikö else haarassakin olla jotain koodia? Onko tässä vika? 16 April
8 Haarautumakattavuus Valinta- eli haarautumakattavuus (decision / branch coverage) on lausekattavuutta vahvempi tekniikka, joka takaa kaikkien kontrollivuoverkon kaarien läpikäynnin Lauseiden sijasta keskitytäänkin haarautumasolmujen valintaehtojen kaikkien mahdollisten lopputulosten evaluointiin 16 April Haarautumakattavuus Tavoitteena on määritellä testitapauksia, jotka johtavat jokaisen valintaehdon kaikkien vaihtoehtojen toteutumiseen vähintään kerran Esimerkiksi Jokaisen If valintalauseen sekä then että else -haara tulee valituksi vähintään kerran testitapausten suorituksen aikana while -toistolauseen rungon ohitus suorittamatta sitä kertaakaan ja toisaalta rungon suoritus vähintään kerran 16 April
9 Esimerkki Aiemmin esitetyssä kontrollivuoverkossa 100%:n lausekattavuuteen riitti kaarien (a, b, f, g, h, d, e) muodostaman suorituspolun läpikäynti Kaaret c, i ja k jäävät käymättä läpi Kuinka monta testitapausta tarvitaan täyden haarautumakattavuuden saavuttamiseksi? 16 April Esimerkki Testitapauksia tarvitaan kolme 1. a, b, c, d,e 2. a, b, f, g, i, g, h, d, e 3. a, k, e Näitä suorituspolkuja vastaavat testitapaukset tuottavat 100% haarautumakattavuuden (ja myös lausekattavuuden) Jotkin kaaret tulevat käydyksi läpi useampaan kertaan, mitä ei kuitenkaan voida välttää 16 April
10 Testitapaukset Määritellään kuten tavallisesti Testioraakkelina edelleenkin vaatimukset, ei implentaatio Testitapauksiin on kuitenkin hyvä kirjata ylös, mitkä haarat tulevat suoritetuiksi Helpottaa vikojen löytämistä joissain tapauksissa esim. puuttuva koodi jostain (tyhjästä) haarasta 16 April Testauksen lopetusehto Haarautumakattavuus = (suoritettujen kaarien määrä / kaikkien kaarien määrä) * 100% Haarautumakattavuus tunnetaan C1 - kattavuutena (C1-coverage) Sisältää C0 kattavuuden, eli on sitä vahvempi ehto 16 April
11 Testauksen lopetusehto Esimerkkimme tapauksessa kolmannen lisätestitapauksen suorittamatta jättäminen tuottaa vain 90% haarautumakattavuuden, vaikka 100% lausekattavuus saavutettiin jo yhdellä testitapauksella Kattavuustavoite voidaan perustaa arvioituun riskiin ja testikohteen kriittisyyteen Miten prosenttiluvut sitten valitaan, onkin Advanced tason asiaa 16 April Tekniikan arviointia Vaatii yleensä enemmän testitapauksia kuin lausekattavuus 100% haarautumakattavuus 100% lausekattavuus Mutta ei päinvastoin! Puuttuvan implementaation havaitseminen tyhjistä haaroista on mahdollista Hyöty voi olla rajallinen olio-ohjelmissa, jossa metodit ovat yleensä lyhyitä ja kompleksisuus piilee olioiden vuorovaikutuksessa 16 April
12 Ehtokattavuus Haarautumakattavuus ei ota lainkaan huomioon valintaehtojen evaluoinnin monimutkaisuutta Ollaan kiinnostuneita vain koko ehdon evaluoinnin tuloksesta (true tai false) Valintaehdot ovat kuitenkin välillä mutkikkaita loogisia lausekkeita, joiden evaluoinnin tulos riippuu monen eri muuttujan tai parametrin arvosta 16 April Ehtokattavuus Perusideana on jakaa ehtolauseke atomisiin osiinsa Lausekkeen atominen osa ei sisällä loogisia operaattoreita AND, OR tai NOT, mutta se voi sisältää vertailuoperaattoreita ( >, == ) x > 3 AND x <= April
13 Ehtokattavuus Ehtokattavuustestauksesta on useita variaatiota riippuen siitä, minkälaisia atomisten ehtojen totuusarvojen kombinaatioita testataan Yksinkertainen ehtokattavuus Moniehtokattavuus Moniehtotuloskattavuus 16 April Yksinkertainen ehtokattavuus (condition testing and coverage) Määritelmä Ehtolausekkeiden jokaisen atomisen osan pitää saada (vähintään) kerran arvo TRUE ja arvo FALSE testien aikana Ei vaadi, että koko ehto evaluoituu sekä TRUE että FALSE arvoihin On siis teoriassa heikompi kattavuudeltaan kuin lause- tai haarautumakattavuus 16 April
14 Moniehtokattavuus (multiple condition coverage) Määritelmä Ehtolausekkeiden atomisten osien kaikki TRUE - FALSE kombinaatiot pitää testata Takaa, että koko ehto evaluoituu sekä TRUE että FALSE arvoihin On siis teholtaan lause- ja haarautumakattavuuteen vertautuva Voi olla kuitenkin hyvin työlästä (jopa mahdotonta) saada kaikki kombinaatiot aikaiseksi testin syötteillä 16 April Moniehtotuloskattavuus (condition determination testing) Lievempi ehto atomisten ehtojen kombinaatioille ainoastaan sellaiset kombinaatiot on testattava, jotka vaikuttavat koko ehtolauseen evaluoinnin tulokseen 16 April
15 Tekniikoiden arviointia Monimutkaiset ehdot, jotka ovat loogisten lausekkeiden yhdistelmiä, ovat erityisen alttiita vioille Monimutkaiset ehdot ovat vaikeita ymmärtää ja vaikeita koodata oikein Erityisesti raja-arvojen käsittelyssä tulee helposti tehdyksi virheitä 16 April Tekniikoiden arviointia Niiden testaukseen kannattaa siis panostaa, mutta moniehtokattavuudet voivat osoittautua hyvin kalliiksi menetelmiksi (työmäärältään) Ehtoja voi yrittää yksinkertaistaa ja hajoittaa valintalauseet osiin ja turvautua haarautumakattavuuteen Ehtojen testauksen sijaan ne voi katselmoida 16 April
16 Polkukattavuus Kaikki eri polut testattavan koodin läpi on suoritettava Jos polulla on silmukka, erilaisia (eri mittaisia ja eri haaroja/kaaria) sisältäviä polkuja voi olla rajattomasti Kuten ensimmäisellä luennolla nähtiin (Luento 1, s ), silmukan toistokertojen ollessa rajoitettu, kombinatorinen räjähdys voi tehdä kattavan testauksen mahdottomaksi 16 April Polkukattavuus Toisin kuin haarautumakattavuus, polkukattavuus ottaa huomioon kontrollivuoverkon haarojen keskinäisen suoritusjärjestyksen Testitapauksilla on siis suuremmat mahdollisuudet löytää vikoja, joitten esiintyminen riippuu testattavan koodin eri osien välisistä riippuvuuksista ja silmukoiden toistojen määristä Polkukattavuuden testitapausten määrittely (tai sen yrittäminen) voi paljastaa vikoja valinta- ja toistolauseiden ehdoista 16 April
17 Huomioita white box -tekniikoista Testattavan koodin kompleksisuus vaikuttaa testitekniikoiden ja intensiteetin valintaan Riittääkö lausekattavuus vai onko syytä käyttää myös haarautuma- tai polkukattavuutta? Soveltuvat parhaiten yksikkötestaukseen, miksei myös integrointitestaukseen kriittisten komponenttien osata Integrointitestauksessa voidaan vaatia tiettyä kattavuutta yksittäisten luokkien tai komponenttien osalta 16 April Työkalut Kattavuustestien käyttö vaatii työkalutukea testien suorituksen aikana Testin suorituksen jälkeen on aina todettava, mitkä lauseet ja valintaehdot ovat todella tulleet testissä suoritetuksi Testitapausten syötteet on toki suunniteltu tietyn kattavuuden saavuttamiseksi, mutta testin suunnittelijahan on voinut erehtyä Testattava koodi on yleensä instrumentoitava laskureilla, jotka pitävät kirjaa koodifragmenttien suorituksesta 16 April
18 Työkalut Työkalut laskevat automaattisesti kattavuudet pienentäen inhimillisten virheiden riskiä ja vähentäen manuaalisen työn määrää 16 April Tavoitteet White box testitapausten suunnittelutekniikat Lausekattavuus Haarautumakattavuus Ehto- ja polkukattavuus Huomioita white box -tekniikoista 16 April
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
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,
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
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
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
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
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)
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
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
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)
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
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
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
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
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
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,
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
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
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
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
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
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ä
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
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
Ohjelmistotuotantoprojekti
Ohjelmistotuotantoprojekti Ryhmä Muppett TESTAUSDOKUMENTTI Helsinki 5.8.2008 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Ohjelmistotuotantoprojekti, kesä 2008 Projekti: Muutos- ja korjauspyyntöjen
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.
Sisällys. 16. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. Aritmetiikkaa toisin merkiten
Sisällys 16. Ohjelmoinnin tekniikkaa Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. For-lause lyhemmin. If-else-lause vaihtoehtoisesti
16. Ohjelmoinnin tekniikkaa 16.1
16. Ohjelmoinnin tekniikkaa 16.1 Sisällys Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. For-lause lyhemmin. If-else-lause vaihtoehtoisesti
Tutoriaaliläsnäoloista
Tutoriaaliläsnäoloista Tutoriaaliläsnäolokierroksella voi nyt täyttää anomuksen läsnäolon merkitsemisestä Esim. tagi ei toiminut, korvavaltimon leikkaus, yms. Hyväksyn näitä omaa harkintaa käyttäen Tarkoitus
16. Ohjelmoinnin tekniikkaa 16.1
16. Ohjelmoinnin tekniikkaa 16.1 Sisällys For-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. If-else-lause vaihtoehtoisesti
ITKP102 Ohjelmointi 1 (6 op)
ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat
Sisällys. 17. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. for-lause lyhemmin
Sisällys 17. Ohjelmoinnin tekniikkaa for-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. if-else-lause vaihtoehtoisesti
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
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
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
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.
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
Luento 5. Timo Savola. 28. huhtikuuta 2006
UNIX-käyttöjärjestelmä Luento 5 Timo Savola 28. huhtikuuta 2006 Osa I Shell-ohjelmointi Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke
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
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
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
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
Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri
Testausraportti Oppimistavoitteiden hallintajärjestelmä harri Helsinki 13.12.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti
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
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
Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä
Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.
Lähdekoodin suorituksen malli. 2. Äärelliset mallit (P&Y: 5) Ohjausvuokaaviot. Atomiset ehdot OVK:ssa. Atomiset ehdot
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ä
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,
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ä
Ohjelmistotestauksen perusteita Luento 1 Antti-Pekka Tuovinen
Ohjelmistotestauksen perusteita Luento 1 Antti-Pekka Tuovinen 12 March 2018 1 Luennon oppimistavoitteet Mitä ohjelmistojen testaaminen on? Mikä on testauksen suhde ohjelmiston laatuun? Mitä tarkoittavat
Ohjelmistotestauksen perusteita II
Ohjelmistotestauksen perusteita II Luento 2 Antti-Pekka Tuovinen 14 March 2013 1 Luennon oppimistavoitteet Testausprosessin perustoiminnot Testauksen psykologiaa Testauksen seitsemän periaatetta 14 March
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
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
5/20: Algoritmirakenteita III
Ohjelmointi 1 / syksy 2007 5/20: Algoritmirakenteita III Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/17 Tämän
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
Racket ohjelmointia osa 2. Tiina Partanen Lielahden koulu 2014
Racket ohjelmointia osa 2 Tiina Partanen Lielahden koulu 2014 Sisältö 1) Funktiot ja muuttujat (kertaus) 2) Animaatiot & pelit (big-bang) 3) Vertailuoperaattorit sekä boolean arvot 4) Tietorakenteet (struct)
Palautetta viime luennosta
Palautetta viime luennosta Kuka saa ja kenen täytyy suorittaa 5op kokonaisuus? Sivuaineopiskelijat suorittavat jos heidän sivuainekokonaisuuteen on merkitty niin Kokonaisuuksia on useita eri tiedekunnittain,
Ohjelmointiharjoituksia Arduino-ympäristössä
Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet
815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 4 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten lauseisiin, lausekkeisiin ja aliohjelmiin liittyvät kysymykset. Tehtävä 1. Mitä
5. Bugiraportoinnista
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
Staattinen testaus Dynaaminen testaus I Luento 3 Antti-Pekka Tuovinen
Staattinen testaus Dynaaminen testaus I Luento 3 Antti-Pekka Tuovinen 25 March 2018 1 Oppimistavoitteet Staattinen testaus Katselmoinnit Ohjelmakoodin ja spesifikaatioiden staattinen analyysi Dynaaminen
Java-kielen perusteita
Java-kielen perusteita Toistorakenne (while, do-while, for) 1 While- lause while-lauseen rakenne on seuraava: while (ehtolauseke) lause Kun ehtolausekkeen arvo on totta, lause suoritetaan. Lause suoritetaan
Ohjelmistotuotanto s
Laadunvarmistustekniikoita Ohjelmistotuotanto 1 testaus (testing) ohjelman suorittamista tarkoituksena löytää virheitä tarkastukset (inspections, reviews) asiantuntijoiden suorittamia dokumentin (voi olla
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman
Imperatiivisen ohjelmoinnin peruskäsitteet. Meidän käyttämän pseudokielen lauseiden syntaksi
Imperatiivisen ohjelmoinnin peruskäsitteet muuttuja muuttujissa oleva data voi olla yksinkertaista eli primitiivistä (esim. luvut ja merkit) tai rakenteista jolloin puhutaan tietorakenteista. puhuttaessa
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/
Tietotyypit ja operaattorit
Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto
Python-ohjelmointi Harjoitus 2
Python-ohjelmointi Harjoitus 2 TAVOITTEET Kerrataan tulostuskomento ja lukumuotoisen muuttujan muuttaminen merkkijonoksi. Opitaan jakojäännös eli modulus, vertailuoperaattorit, ehtorakenne jos, input-komento
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
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
Ohjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 21.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2015 1 / 25 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:
Tietorakenteet, laskuharjoitus 10, ratkaisuja 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: SamaLuku(T ) 2 for i = 1 to T.length 1 3 if T [i] == T [i + 1] 4 return True 5 return
2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti.
Tietorakenteet, laskuharjoitus 11, ratkaisuja 1. Leveyssuuntaisen läpikäynnin voi toteuttaa rekursiivisesti käsittelemällä jokaisella rekursiivisella kutsulla kaikki tietyllä tasolla olevat solmut. Rekursiivinen
T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 12 (opetusmoniste, kappaleet )
T-79.144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 12 (opetusmoniste, kappaleet 9.1 9.5) 30.11. 3.12.2004 1. Osoita lauselogiikan avulla oheisten ehtolausekkeiden ekvivalenssi. (a)!(a
Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004
Vertailulauseet Ehtolausekkeet Ehdot, valintalausekkeet Boolean-algebra == yhtäsuuruus!= erisuuruus < pienempi suurempi >= suurempi tai yhtäsuuri Esimerkkejä: int i=7; int j=10;
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,
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 21.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 21.1.2009 1 / 32 Tyypeistä Monissa muissa ohjelmointikielissä (esim. Java ja C) muuttujat on määriteltävä ennen
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,
Laadunvarmistustekniikat
Laadunvarmistustekniikat Ohjelmistojen laadunvarmistustekniikoita: testaus (testing) ohjelman suorittamista tarkoituksena löytää virheitä tarkastukset (inspections, reviews) asiantuntijoiden suorittamia
Ohjelmistotestauksen perusteita I Luento 1 Antti-Pekka Tuovinen
Ohjelmistotestauksen perusteita I Luento 1 Antti-Pekka Tuovinen 12 March 2013 1 Luennon oppimistavoitteet Mitä ohjelmistojen testaaminen on? Mitä tarkoittavat virhetoiminto, vika ja erehdys? Mikä on testauksen
Algoritmit 2. Luento 8 To Timo Männikkö
Algoritmit 2 Luento 8 To 4.4.2019 Timo Männikkö Luento 8 Algoritmien analysointi Algoritmien suunnittelu Rekursio Osittaminen Rekursioyhtälöt Rekursioyhtälön ratkaiseminen Master-lause Algoritmit 2 Kevät
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
Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti
C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) Toistaiseksi helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Vaikeaa eroavuudet Pythonin ja C:n
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
Ohjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.2.2009 1 / 43 Funktiot Tähän asti esitetyt ohjelmat ovat oleet hyvin lyhyitä. Todellisessa elämässä tarvitaan kuitenkin
Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista
Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti
C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) (Erittäin) helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Ei selvää että main funktion pitikin
1. Omat operaatiot 1.1
1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne
Hohde Consulting 2004
Luento 5: XQuery AS-0.110 XML-kuvauskielten perusteet Janne Kalliola XQuery XQuery uudet funktiot sekvenssit muuttujat Iterointi järjestys suodatus järjestäminen Ehtorakenteet Muita toimintoja www.hohde.com
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
58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia
58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, 10..2014, vastauksia 1. [9 pistettä] (a) Todistetaan 2n 2 + n + 5 = O(n 2 ): Kun n 1 on 2n 2 + n + 5 2n 2 + n 2 +5n 2 = 8n 2. Eli
Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)
VISUAL BASIC OHJEITA Kutsuttava ohjelma alkaa kometoparilla Sub... End Sub Sub ohjelmanimi()...koodia... End Sub Muuttujat Muuttujan esittely Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency,
11/20: Konepelti auki
Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon
Testaussuunnitelma Labra
Testaussuunnitelma Labra Helsinki 25.8.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 1 Kurssi 581260 Ohjelmistotuotantoprojekti (9+1op) Projektiryhmä Anssi Kapanen,
Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen
Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen ohjelmointiin Jukka Talvitie Valvoja: Professori Jorma Jormakka Paikka: TietoEnator oyj Ongelma Ideologia Lifebelt
Testauksen suunnittelu. Faculty of Science 30 April
Testauksen suunnittelu www.cs.helsinki.fi 30 April 2018 21 Testauksen suunnittelu Testaus on (usein tärkein tai jopa ainoa) osa laadunvarmistusta (quality assurance) Testauksella saadaan analyyttistä,
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
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