6.3 Virheiden kylväminen

Koko: px
Aloita esitys sivulta:

Download "6.3 Virheiden kylväminen"

Transkriptio

1 6.3 Virheiden kylväminen Error seeding Lisätään tietoisesti virheitä ohjelmakoodiin, jotta Voidaan yrittää arvioida jäljellä olevien oikeiden virheiden määrää testauksen avulla löytyneiden kylvettyjen virheiden määrästä Arvioida testauksen tehokkuutta Merkitään V o :lla oikeiden ja V k :lla kylvettyjen virheiden kokonaismäärää sekä V ol :lla ja V kl :lla löydettyjen oikeiden ja kylvettyjen virheiden määrää Oletetaan lisäksi, että V o /V ol = V k /V kl Jäljellä olevien virheiden määrän arvioksi saadaan (V ol x (V k /V kl )) - V ol Mika Katara: Ohjelmistojen testaus, Kylvämisen ongelmia: Minkälaisia virheitä pitäisi kylvää? Onko kaikki kylvetyt virheet muistettu poistaa? Paljonko menetelmästä aiheutuu ylimääräistä työtä? Tekniikkaa voi harrastaa dokumenttien tarkastusmenettelyssä Voidaan mitata sitä, kuinka hyvin tarkastajat ovat perehtyneet dokumenttiin Vaatii paljon organisaatiolta Mika Katara: Ohjelmistojen testaus,

2 Mutaatiotestaus Virheiden kylvämistekniikan erikoistapaus Tuotetaan ohjelmasta versioita, joissa kaikissa on kylvettynä eri virhe Voidaan käyttää Testauksen tehokkuuden arviointiin (kuinka monta mutanttia löydettiin) Sen testaukseen, kuinka hyvin ohjelma kykenee toipumaan virheistä Aikaisemmin mutaatioiden tuottamista on käytetty myös testauskurssin harjoitustöiden generointiin! Mika Katara: Ohjelmistojen testaus, Pablon virheidenkylvökone C++-ohjelma, joka saa syötteenään toisen C++-ohjelman ja generoi siitä mutantin Mutanttiin kylvetyt virheet saa selville vertaamalla sitä alkuperäiseen ohjelmaan (Unix-ympäristössä esim. diff) Määrittelee mm. operaattoreiden ja tyyppien joukkoja, joiden alkioita voidaan vaihtaa keskenään Esim. {+,*,/}: jos ohjelmassa esiintyy jokin joukon alkio, vaihdetaan se joksikin muuksi alkioksi Esim. {short, int, long}: vaihdetaan tyyppiä Mika Katara: Ohjelmistojen testaus,

3 Osaa myös lisätä ja poistaa continue- ja break-lauseita silmukan sisältä Ongelma: kaikki tuotetut mutantit eivät ole laillisia C++ohjelmia Ratkaisu: kutsutaan gcc:tä ja kelpuutetaan vain sellaiset mutantit, jotka menevät kääntäjästä läpi Hajautettu kylvökone onnistui tuottamaan lyhyessä ajassa noin mutanttia, joista riitti jokaiselle harjoitustyöryhmälle omansa Mika Katara: Ohjelmistojen testaus, Ekskursio: miten voi päästä virheen jäljille Mukailtu lähteestä [Kaner et al. 02] Uudet asiat: uusimmat ominaisuudet voivat toimia väärin Uudet tekniikat: uudet käsitteet johtavat uusiin virheisiin Uudet markkinat: erilaiset käyttäjät käyttävät ohjelmaa eri tavalla Muutos: muutokset saattavat rikkoa aiemmin toimineen koodin Myöhäinen muutos: kiireiset päätökset ja kiireiset ihmiset johtavat virheisiin Kiireinen työ: kun projektille ei ole budjetoitu tarpeeksi aikaa, työn laatu kärsii Mika Katara: Ohjelmistojen testaus,

4 Oppimiskäyrä: huolimattomuusvirheitä Huono suunnittelu tai vaikeasti ylläpidettävä järjestelmä: joidenkin suunnittelupäätösten takia järjestelmä on niin huonosti ylläpidettävä, että vikojen korjaukset johtavat säännönmukaisesti uusiin vikoihin Väsyneet ohjelmoijat: usean viikon kestävät ylityöjaksot johtavat tehottomuuteen ja virheisiin Muut henkilöstöasiat: henkilökohtaiset ongelmat, perheongelmat, ongelmat työyhteisössä (jos kaksi ohjelmoijaa eivät puhu keskenään, tuskin puhuvat heidän koodinsakaan) Mika Katara: Ohjelmistojen testaus, Just slipping it in: projektijohdon tietämättä lisätty ohjelmoijan lempiominaisuus ei välttämättä toimi muun koodin kanssa Ei keksitty täällä: ulkoiset komponentit voivat aiheuttaa ongelmia Ei budjetoitu: budjetin ulkopuoliset työt tehdään usein puolivillaisesti Moniselitteisyys: moniselitteiset spesifikaatiot voivat johtaa virheellisiin tai ristiriitaisiin toteutuksiin Ristiriitaiset vaatimukset: moniselitteisyys peittää usein ristiriidan Liikkuva maali: asiakas keksii mitä haluaa vasta kun tuotetta jo kehitetään Mika Katara: Ohjelmistojen testaus,

5 Bugisuus: ominaisuudet, joissa on paljon tunnettuja bugeja voivat sisältää paljon myös tuntemattomia bugeja Riippuvuudet: häiriöt voivat aiheuttaa muita häiriöitä Untestability: järjestelmää on vaikea (ellei mahdoton) testata Vähäinen yksikkötestaus: ohjelmoijien tulisi löytää ja korjata suurin osa omista virheistään Aikaisempi keskittyminen kapeisiin testausstrategioihin: regressio- ja funktiotestauksen jäljiltä voi ohjelmistoon jäädä suuri määrä virheitä, jotka pysyvät versiosta toiseen Heikot testaustyökalut: mikäli ei käytetä työkaluja esim. karanneiden osoittimien paikallistamiseen, näillä virheillä on hyvät mahdollisuudet jäädä huomaamatta Mika Katara: Ohjelmistojen testaus, Ohjelmointikielille tyypillisiä virheitä: C-kielen esimerkkejä Kommentin loppumerkki unohtunut: a=b; /* kommentti alkaa c=d; /* toinen kommentti */ Sijoitus vs. yhtäsuuruusvertailu: if(a=b) ++c; Paikalliset muuttujat pitää muistaa alustaa: void foo(a) { int b; if (b) {} } Mikä on lauseen i = i++ semantiikka? Onneksi C-kielen heikot kohdat on jo hyvin dokumentoitu ja fiksut kääntäjät osaavat varoittaa epäilyttävistä kohdista Mika Katara: Ohjelmistojen testaus,

6 Ohjelmointikielille tyypillisiä virheitä: C++ esimerkkejä Vaikka kielessä on bool-tyyppi, on implisiittinen konversio bool->int silti sallittu: if (-0.5 <= x <= 0.5) return 0; Oletusrakentajan kutsu ja funktion esittely menevät helposti sekaisin: int main() { string a("hello"); string b(); // funktion esittely string c = string("world"); //... return 0; } Mika Katara: Ohjelmistojen testaus, Ohjelmointikielille tyypillisiä virheitä: Java esimerkkejä Vanhemmassa koodissa luettelotyypin (enum) puuttuminen on johtanut puolivillaisiin kiertoteihin Epätietoisuus siitä, mitä class-tiedostoja ladataan (jar, CLASSPATH, piste CLASSPATH:ssa) Kaikki olioihin viittaavat muuttujat ovat oikeastaan implisiittisiä osoittimia: munolio a, b; // muuttujat alustetaan arvoon null a = b; // osoittimien kopiointi a = new munolio(b); // uuden olion luonti Mika Katara: Ohjelmistojen testaus,

7 7. Ketterä testaus Elämää on V-mallin ulkopuolella eräs selvimpiä trendejä testauksessa on siirtyminen ketterämpiin ja vähemmän suunnitelmaohjattuihin prosesseihin. Mika Katara: Ohjelmistojen testaus, Perinteiseen, vesiputousmallia noudattavaan ohjelmistoprosessiin testaus liitetään V-mallin mukaisesti V-mallin vasen sivu kuvaa vesiputousmallia, jossa edetään ylhäältä alas ensin vaatimusmäärittelystä toiminnalliseen määrittelyyn ja siitä arkkitehtuurisuunnitteluun ja lopulta moduulisuunnitteluun ja toteutukseen Jokaisessa vaiheessa laaditaan testaussuunnitelmat vastaaville testausvaiheille (oikea sivu) Kun testattavissa olevaa toteutusta alkaa olla olemassa, aletaan sitä testata Edetään V-mallin oikeaa sivua alhaalta ylös toimien em. testaussuunnitelmien mukaan Mika Katara: Ohjelmistojen testaus,

8 Testataan kullakin tasolla sitä, vastaako toteutus määrittelyä/suunnittelua Käytettävät tekniikat vaihtelevat riippuen siitä, missä vaiheessa ollaan menossa Esim. testaus on alemmilla tasoilla yleensä enemmän lasi- kuin mustalaatikkotyyppistä ja ylemmillä tasoilla taas toisin päin Jäljitettävyys eri vaiheiden välillä helpottaa virheiden alkuperän selvittämistä Kun virhe on paikallistettu, voidaan testausprosessia yrittää parantaa siten, että ko. tyypin virheet havaitaan aikaisemmin Mika Katara: Ohjelmistojen testaus, Monesti vaatimukset selviävät vasta matkan varrella Kaikkea ei voi tietää projektin aluksi ja muutoksiin on pakko varautua Perinteinen tulkinta V-mallista ei kuitenkaan tue iteratiivista kehitystä, jossa ohjelmasta tuotetaan väliversioita Järjestelmä pyritään tekemään kerralla valmiiksi asti Mallin vaiheet käydään uudestaan läpi vasta sitten kun tehdään järjestelmän seuraavaa versiota Malli myös tekee oletuksia siitä, mitä dokumentoidaan, mistä dokumenteista tuotetaan eri tasojen testitapauksia ja missä vaiheessa tuotetut testit ajetaan Mika Katara: Ohjelmistojen testaus,

9 Yksikkötestausta ketterästi: Test-Driven Development Tapa ajatella, suunnitella, kommunikoida ja kirjoittaa koodia Tavoite: yksinkertainen, selkeä ja toimintavarma ohjelmisto Taustalla extreme Programming -ideat Sivuvaikutuksena syntyy kattava kokoelma automatisoituja yksikkö/integrointitason testejä Ei näin: stressiä -> testataan vähemmän -> enemmän virheitä -> lisää stressiä Vaan näin: stressiä -> testataan -> vähemmän virheitä -> vähemmän stressiä Mika Katara: Ohjelmistojen testaus, Menetelmä lyhyesti: kirjoita testi koodaa toteutus siisti toteutus (refaktorointi) Entä muut mallinnus-, suunnittelu-, dokumentointi-, toteutusja testausmenetelmät? niitä käytetään tarpeen mukaan, jos ne auttavat toimivan ohjelmiston saavuttamisessa Mika Katara: Ohjelmistojen testaus,

10 Periaatteet: Muutosvalmius Asiakkaan läsnäolo Metaforat: projektin yhteinen käsitteistö Suunnittelupeli käyttäjien tarinat (user stories) vaatimukset, käyttötapaukset Pystypalaverit päivittäinen palaveri kestää korkeintaan niin kauan kuin ihmiset jaksavat seistä Mika Katara: Ohjelmistojen testaus, Pyritään valitsemaan yksinkertaisin toimiva ratkaisu Pariohjelmointi parien kierrätys Koodausstandardit tyylioppaat yms. koodista ei pitäisi pystyä sanomaan kuka sen on kirjoittanut Yhteisomistus kaikki ovat vastuussa kaikesta koodista Mika Katara: Ohjelmistojen testaus,

11 Jatkuva integrointi toimimattomuus huomataan heti eikä viikon päästä Koodin siistiminen myös testikoodia pitää siistiä Vähittäistoimitus pienet inkrementit Jaksamisen rajoissa 40 tunnin työviikot Mika Katara: Ohjelmistojen testaus, Testit Tavoitteet: luottamuksen saavuttaminen toimivuuteen, toiminnan dokumentointi, suunnittelu Sykli: kirjoita testi, käännä, aja testit kirjoita koodi, käännä, aja testit Testauksen liikennevalot: testit punaisella testit vihreällä siisti toteutus, käännä, aja testit, integroi, käännä, aja testit, tsekkaa sisään versionhallintaan, kirjoita testi,... Mika Katara: Ohjelmistojen testaus,

12 Myös testikoodia pitää siistiä aika ajoin Tavoitteena suurin piirtein yhtä paljon testikoodia kuin testattavaa koodia jos testikoodia on vähemmän: jotain jää luultavasti testaamatta jos testikoodia on enemmän: testikoodissa luultavasti redundanssia (testien ajamiseen voi kulua liikaa aikaa) Mika Katara: Ohjelmistojen testaus, Kysymyksiä Kuinka isoja askelten pitää olla? Mitä ei tarvitse testata? Mistä tietää, ovatko testit hyviä? Kuinka paljon testejä pitää olla? Milloin testi pitäisi poistaa? Miten ohjelmointikieli ja -ympäristö vaikuttavat? Voiko isoja järjestelmiä tehdä testausohjatusti? Miten TDD otetaan käyttöön kesken projektin? Sulautettujen järjestelmien testaus? Mika Katara: Ohjelmistojen testaus,

13 TDD kokonaisuutena TDD jakaa ongelman pienempiin osiin ja koko ryhmän vastuulle Saavatko sukkela suunnittelu, jatkuva integrointi ja koodin siistiminen koodaamisen ja testaamisen tuntumaan tasaisesti etenevältä luovalta työltä? Pienin askelin etenevässä työssä virheen löytäminen on helpompaa erillinen siistimisvaihe antaa mahdollisuuden keskittyä yhteen asiaan kerrallaan Itsekuria pitää olla: testit pitää kirjoittaa ensin sen sijaan, että tyytyisi vain kokeilemaan toimivuutta Ei sovi kaikkiin projekteihin Saattaa vaikuttaa negatiivisesti ohjelmiston arkkitehtuuriin Mika Katara: Ohjelmistojen testaus, Jatkuva integrointi käytännössä Perustuu artikkeliin Martin Fowler & Matthew Foemmel: Continuous Integration, Jatkuvan integroinnin vaatimukset: Versionhallinnan oltava kunnossa, lähdekoodi yhdessä paikassa, josta sen voi kuka tahansa hakea tarvittaessa Buildin tekeminen automatisoitava niin, että kuka tahansa voi sen tehdä yhdellä komennolla Automatisoidut testitapaukset voidaan samoin ajaa buildille yhdellä komennolla Onnistuneen lopputuloksen voi kuka tahansa hakea käyttöönsä Mika Katara: Ohjelmistojen testaus,

14 Mitä hyötyä jatkuvasta integroinnista on? Oletetaan, että kaksi kehittäjää tekee kumpikin omaa komponenttiansa, joiden olisi tarkoitus toimia toistensa kanssa yhteen Kumpikin testaa oman koodinsa, eikä löydä siitä virheitä Kun komponentit integroidaan, huomataan, etteivät ne toimi yhteen kuten pitäisi Mikäli käytössä on perinteinen prosessi, voi virheen löytäminen olla todella hankalaa, jos koodi on kirjoitettu jo viikkoja aikaisemmin Jatkuvassa integroinnissa virhe on luultavasti tehty samana työpäivänä, tai edellisenä, jolloin sen löytäminen on paljon helpompaa, koska uutta koodia on vähän ja kehittäjä muistaa vielä mitä on tehnyt Mika Katara: Ohjelmistojen testaus, Kuinka usein pitäisi sitten integroida? Automaation ansiosta niin usein kuin halutaan, vähintään kerran päivässä Entä mikä on onnistunut buildi? Buildaus onnistui, jos seuraavat kohdat läpäistään ilman virheilmoituksia tai automaation säätöä: Kaikki viimeisimmät tiedostot saadaan versionhallinnasta ulos Kaikki tiedostot kääntyvät alusta alkaen mikäli kääntäminen kestää kauan, voidaan kääntää vain muutokset, tällöin täydellinen kääntäminen tehdään harvemmin Mika Katara: Ohjelmistojen testaus,

15 Objektitiedostot linkitetään onnistuneesti ajettavaan muotoon esim. Javan class-tiedostot jar-tiedostoiksi Ohjelmisto käynnistetään ja savutestit saadaan suoritettua onnistuneesti Perusedellytyksenä on toimiva konfiguraation- ja versionhallinta Kenen tahansa on voitava kytkeä puhdas kone verkkoon ja yhdellä komennolla saada ladattua kooditiedostot, joilla buildaaminen voidaan tehdä Versionhallintaan pitää laittaa myös muut kuin vain käännöksessä tarvittavat tiedostot, esim. konfiguraatiotiedostot ja skriptit Mika Katara: Ohjelmistojen testaus, Master build Tiimin yhteinen buildi Tehdään keskitetysti palvelimella Järjestelmä tarkkailee versionhallintaa ja huomatessaan uuden koodiversion alkaa buildaamaan Testien jälkeen järjestelmä lähettää meiliä tuloksista niille kehittäjille, joiden uutta koodia buildissa oli kehittäjien oletetaan olevan valmiudessa korjaamaan koodiaan, kunnes ovat saaneet ilmoituksen onnistuneesta buildista Järjestelmä kirjoittaa lokin buildin vaiheista, lokeja voi tarkkailla www-sivun välityksellä, joka kertoo projektin etenemisestä Tämän jälkeen järjestelmä palaa tarkkailemaan versionhallintaa ja odottamaan uutta buildattavaa koodia Mika Katara: Ohjelmistojen testaus,

16 Ennen tehtävän aloittamista kehittäjät hakevat tuoreimmat tiedostot versionhallinnasta Uuden koodin voi integroida paikallisesti kun joko koko tehtävä tai osa siitä on tehty, kunhan vain yksikkötestit on saatu ajettua onnistuneesti Integroinnin aluksi otetaan jälleen versionhallinnasta uusimmat versiot muista tiedostoista Kun paikallinen buildi on tehty ja savutestit ajettu onnistuneesti, kehittäjä laittaa koodinsa versionhallintaan ja jää odottamaan master buildia Kun master build on tehty onnistuneesti, voi siirtyä seuraavaan tehtävään Mika Katara: Ohjelmistojen testaus, Ketterä hyväksyntätestaus: ATDD TDD:ssä matalan tason testit ajavat koodausta eteenpäin ATDD:ssä korkean tason testit ajavat koko prosessia eteenpäin Kuinka Definition of done määritellään asiakkaan tai käyttäjän näkökulmasta? ATDD perustuu siihen, että määritellään suoritettavia korkean tason testejä ennen kuin toteutusta on edes aloitettu Ideaalitapauksessa testit tekee asiakas tai loppukäyttäjä Kun testi läpäistään, on vastaava vaatimus Done ATDD-työkalut tarjoavat helpon tavan määritellä testejä muodossa, jota asiakas ja loppukäyttäjäkin ymmärtävät Department of Software Systems Mika Katara: Ohjelmistojen testaus,

17 ATDD-prosessi (iteratiivinen) muokattu, alkuperäinen Niklas Collin, Kilosoft Customer/ end-user Specify Requirements Project Manager Chief engineer Test automation engineer Implements Derived to Executable tests (backlog) Department of Software Systems Mika Katara: Ohjelmistojen testaus, Edut Vähemmän monikäsitteisyyksiä vaatimuksissa, koska asiakas tai loppukäyttäjä on hyväksynyt testit Kun testi menee läpi, voidaan siirtyä toteuttamaan seuraavaa vaatimusta Testit määrittelevät projektin laajuuden: jos läpäisemättömiä testejä ei ole, ei ole mitään mitä implementoida (kuten asiakas tai loppukäyttäjä on asian hyväksynyt) Etenemisen läpinäkyvyys johdolle ja asiakkaalle Kannattaa kuitenkin muistaa, että ATDD-työkalut eivät välttämättä tue kaikki sovelluskohteita ja kaikki asiakkaan eivät ole valmiit toimimaan näin! Department of Software Systems Mika Katara: Ohjelmistojen testaus,

18 Manuaalista testaus ketterästi Tutkiva (exploratory) testaus Testaajien ammattitaito ja kokemus pääosissa Testaajat oppivat koko ajan uutta testikohteesta, sen riskeistä, tavoista miten se on toiminut väärin edellisissä testeissä jne. Uusia testitapauksia luodaan ja käytetään jatkuvasti ei välttämättä dokumentoida Uudet testitapaukset ovat vanhoja parempia, koska ne perustuvat uuteen tietoon järjestelmästä Päinvastoin kuin kokeilutestauksessa (ad hoc), testaajilla on selkeät tavoitteet ja keskitytään usein johonkin tiettyyn osaalueeseen Mika Katara: Ohjelmistojen testaus, Tutkivaa testausta voidaan valmistellaan esim. tilauksien (charter) avulla tilaus sisältää tiedon siitä mitä testataan, miksi, miten, minkä tyyppisiä ongelmia etsitään ja lisäksi tietoa riskeistä, suosituksia työkaluiksi jne. Normaalin testaussession kesto noin kaksi tuntia Pääasiallisena tuloksena bugiraportit, mutta myös muuta dokumentaatiota, muistiinpanoja jne. tarpeen mukaan Session jälkeen raportointi sovitulla tavalla Mika Katara: Ohjelmistojen testaus,

19 Ongelmia Kuinka Tiedetään mitä testejä tehtiin? Toistaa ne? Varmistaa tilivelvollisuus? Kouluttaa uusia tutkivia testaajia? Yhdistää tutkiva testaus muun tyyliseen testaukseen? Saada tarkkaa, luotettavaa ja tasapuolista tietoa lähestymistavasta? Allokoida työ tiimin sisällä niin, ettei tehdä turhaan samaa työtä? Mika Katara: Ohjelmistojen testaus, Tutkivan testauksen tyylilajit Freestyle Sessiopohjainen Turisti Sissi Käyttöskenaarioihin / käyttötapauksiin / käyttäjien tarinoihin perustuva Mika Katara: Ohjelmistojen testaus,

20 Muutamia esimerkkejä ketterän testauksen työkaluista TDD Agile acceptance testing Tutkiva testaus Järjestelmätestaus FIT, FitNesse Robot Framework toimistotyökalut Integrointitestaus Yksikkötestaus Jatkuvan integroinnin työkalut xunit ( + erilaisista pienistä apuohjelmista on usein hyötyä kaikilla testauksen tasoilla Mika Katara: Ohjelmistojen testaus, Automaatio ja työkalut Tässä kohdassa tutustutaan testiautomaatioon sekä testaamista helpottaviin työkaluihin. Työkalujen suuren määrän vuoksi tarkoituksena on antaa lähinnä yleiskuva, jonka avulla voi sitten helposti hankkia lisätietoja. Yksi työkalu sopii yhteen hommaan ja toinen toiseen. Mika Katara: Ohjelmistojen testaus,

21 Alkupään kalvot perustuvat Mika Maunumaan kokoamaan materiaaliin Eri näkökulmat Ohjelmistosuunnittelu kuvaa, miten asiat ovat Testaus kysyy ovatko asiat oikeasti niin Testaus on perinteisesti ollut käsityötä Testausautomaation kultainen lupaus on poistaa käsityö ja ratkaista testausongelmat Kun ohjelma testaa ohjelmaa, säästetään aikaa ja rahaa Ohjelma jaksaa testata virheettömästi, nopeammin ja pidempään Kaikkea ei voida testata käsin stressi- ja suorituskykytestaus jne. Mika Katara: Ohjelmistojen testaus, Testiautomaatio kokonaisuutena Testiautomaatio on manuaalisen testauksen täydentäjä, ei sen korvaaja Testit on suunniteltava etukäteen Automatisoidaan vain parhaat testit Käsityön rooli muuttuu, mutta ei poistu Ohjelmisto, jonka tarkoitus on ajaa toista ohjelmaa Molemmat ovat syntyneet (osittain) samoista vaatimuksista Näkökulmassa ja tavoitteissa on suuri ero Testaus ja testien automatisointi vaativat erilaisia taitoja Testiautomaatio ei ole testauksen hopealuoti Mika Katara: Ohjelmistojen testaus,

22 Testiautomaation lupauksia Regressiotestaus helpottuu, enemmän testejä useammin Voidaan suorittaa manuaaliselle testaukselle mahdottomia testejä Esim. verkkosovellusten kuormitustestaus Testauksessa tehdyt virheet vähenevät, kone on ihmistä tarkempi Toisaalta myös uudenlaiset virheet tulevat mahdollisiksi Resurssien tehokkaampi käyttö Testien eheys ja toistettavuus Testit voidaan suorittaa eri laite- tai ohjelmistoalustoilla Testien uudelleenkäyttö testikohteen pysyessä samana Luottamus toimivuuteen kasvaa, markkinoille pääsy nopeutuu Mika Katara: Ohjelmistojen testaus, Testiautomaation yleiset ongelmat Epärealistiset odotukset Työkalut ratkaisevat kaikki pulmat Huonot testaustavat Automating chaos just gives faster chaos Odotetaan automaation löytävän paljon uusia virheitä Virheellinen turvallisuuden tunne Koska automaatio ei löytänyt virheitä, niitä ei olekaan Automatisoitujen testien ylläpito Tekniset ongelmat Buginen testaussofta, yhteensopivuus Organisaation ongelmat Johdon tuen puute, organisaation kulttuuri, koulutus Mika Katara: Ohjelmistojen testaus,

23 Automaation rajoitukset (1/2) Ei poista manuaalisen testauksen tarvetta Kaikkea ei kannata automatisoida harvoin ajettavat testit testattava ohjelmisto on liikkuva maali testin tulokset on helposti ihmisen tulkittavissa, mutta erittäin vaikea koneelle (esim. äänen tai kuvan laatu) fyysistä toimintaa vaativat testit Kaikkea ei tarvitse automatisoida vain parhaat ja usein toistuvat testit Testikohteen testattavuus nousee tärkeään asemaan, sen puute voi johtaa automatisoinnin epäonnistumiseen Mika Katara: Ohjelmistojen testaus, Automaation rajoitukset (2/2) Manuaaliset testit löytävät enemmän virheitä Virhe löytyy yleensä ensin manuaalisella testillä, joka sitten automatisoidaan regressiotestausta varten James Bach raportoi kokemuksistaan Borlandilla: automaatio löysi vain alle 20 % kaikista projektin aikana löydetyistä virheistä vaikka automaatioon oli satsattu jo useita vuosia (James Bach, Test Automation Snake Oil, 1999) Uudet ominaisuudet pitävät sisällään enemmän virheitä kuin vanhat Manuaalinen testaaja voi nopeasti löytää paljon virheitä samalla kun automaatiota vasta laajennetaan uusille alueille Mika Katara: Ohjelmistojen testaus,

24 Testausautomaatio saattaa rajoittaa ohjelmistokehitystä Testit ovat herkkiä vähäisillekin muutoksille ohjelmistossa automaattisen testin alustus on raskaampi operaatio kuin manuaalisen testin ylläpito vaatii työtä Työkaluilla ei ole mielikuvitusta Työkalut tekevät vain sen, mitä niiltä on pyydetty ihminen voi varioida testin suoritusta ja toimia älykkäänä tarkkailijana Automaatio ei lisää tehokkuutta Ajon hinta ja ajoaika vs. suunnittelun ja ylläpidon hinta Mika Katara: Ohjelmistojen testaus, Automaation toimialueet Perinteisesti API- ja protokollapohjaisissa järjestelmissä Tavoitteet yksikäsitteisiä Rajapinta on usein selkeä ohjelmointirajapinta GUI-testaus lisääntynyt graafisten käyttöliittymien yleistyessä Uusia haasteita tiedon syöttö vasteen tulkinta vasteen kaivaminen ohjelman syövereistä Mika Katara: Ohjelmistojen testaus,

25 Käyttöliittymän läpi testattaessa tulee eteen kysymys siitä, mistä vertailuissa tarvittava data saadaan Pahimmassa tapauksessa täytyy vertailla kuvaruudulta kaapattuja bittikarttoja yhden pikselin värin muuttuminen voi saada aikaa väärän hälytyksen testiajossa jos automaatio ei toivu virheistä, voi seurauksena voi olla paljon hukattua aikaa Tekstintunnistus (Optical Character Recognition, OCR) voi auttaa tekstikenttien vertailussa tekniikka on kuitenkin hidas ja virhealtis Parhaassa tapauksessa käytetään suoraan käyttöliittymäkirjaston resursseja ikkuna tuntee sen sisällä olevat tekstikentät, joiden arvot saadaan suoraan merkkijonoina yleensä Windows-maailman GUI-työkalut perustuvat tähän Mika Katara: Ohjelmistojen testaus, Testiautomaatio erilaista ohjelmistosuunnittelua Testausautomaation toteutus on ohjelmistonkehitysprojekti; skriptit vaativat Ohjelmointi- ja suunnittelutaitoja Testaustaitoja Dokumentointitaitoja Ylläpitotaitoja Kuka testaa testiohjelmiston? Mika Katara: Ohjelmistojen testaus,

26 Automatisointiprojekti Aloitetaan yleensä suurin lupauksin Työkalu ratkaisee testauksen ongelmat Automatisoidut testit ovat halpoja Kun käyttöliittymän läpi testaava automaatio vilistää ruudulla, tulee helposti euforinen olo siitä, että tuotteen laatu paranee silmissä jos ei ymmärrä mitä todellisuudessa tapahtuu Kaatuu monesti illuusion särkymiseen Huonojen käytäntöjen automatisointi ei parantanut tilannetta automatisoitiin vääriä, huonoja tai virheellisiä testejä Valittiin väärä tai epäyhteensopiva (ja kallis) työkalu Ylläpitoon ei oltu varauduttu skriptien muuttaminen työlästä testien riippuvuutta ohjelmistoversiosta ei huomioitu Mika Katara: Ohjelmistojen testaus, Automatisoidaan kaikki testit yms. epärealistiset tavoitteet Automatisoijat ovat usein kalliimpia kuin manuaaliset testaajat, samalla rahalla olisi saavutettu paljon aikaan manuaalisessa testauksessa Automaatio ei toivu virheistä Kannattaa aloittaa kevyesti Kannattaa kokeilla useampia eri työkaluja Pilottiprojekti Aloitetaan esim. savutestien automatisoinnista Otetaan selvää, onko joku muu projekti/organisaatio käyttänyt vastaavaa välinettä vastaavassa projektissa Testausstrategia ja ihmisten sitoutuminen kuntoon automaatio ei vähennä testauksen suunnittelun tarvetta Mika Katara: Ohjelmistojen testaus,

27 Kuinka työkalun voi valita? Päämäärät Hankintasuunnitelma Ensimmäiset kokeilut Haastattelut useita vaihtoehtoja vertailu yksi vaihtoehto Vaihtoehtojen karsiminen Hankinta ja kokeilu Kokeiluprojekti Käyttöönotto Automatisoinnin kehittäminen Kuvan lähde: Jussi Niutanen. Symbian-sovellusten testauksen automatisointityökalut. Diplomityö, TTY, Sähkötekniikan osasto, Mika Katara: Ohjelmistojen testaus, Testiautomaatio prosessin eri vaiheissa Yksikkötestaus: Kehittäjien pitäisi huolehtia yksikkötestauksesta Kehittäjät eivät ole useinkaan kiinnostuneita testaamaan omaa koodiaan manuaalisesti manuaalinen testaaminen voidaan kokea tylsäksi tavaksi hukata paljon aikaa Tarvitaan apuvälineitä, jotka automatisoivat yksikkötestauksen mahdollisimman pitkälle mieluiten näiden apuvälineiden tulisi integroitua saumattomasti kehittäjien käyttämiin kehitysvälineisiin editorit, kääntäjät, IDE:t (Integrated Development Environment) Mika Katara: Ohjelmistojen testaus,

28 Useita kaupallisia ja ilmaisia työkaluja on saatavilla Yksi esimerkki ovat xunit-kehykset Niiden taka-ajatuksena on sälyttää kehittäjien harteille niin testien suunnittelu ja koodaaminen kuin ajaminen ja tulosten analysointikin Automaattiset regressiotestit saadaan kaupan päälle Mika Katara: Ohjelmistojen testaus, Integrointitestaus: Joitakin yksikkötestaustyökaluja voidaan hyödyntää myös integrointitestauksessa Ajurien ja/tai tynkien automaattinen generointi Ennen varsinaista integrointitestiä kannattaa testattavalle kokonaisuudelle tehdä savutesti, jolla selvitetään onko se kelvollinen etenemään integrointitestaukseen vrt. preintegraatio tämän savutestin automatisoinnilla voidaan säästää paljon turhaa työtä integrointitestauksessa Mika Katara: Ohjelmistojen testaus,

29 Automaation sukupolvet Erityisesti käyttöliittymän kautta testaavasta automaatiosta voidaan havaita eri sukupolvia Helppokäyttöisyys, ylläpidettävyys ja kyky löytää virheitä kehittyvät Seuraavassa testiautomaatio jaetaan viiteen sukupolveen Nauhoita ja toista Komentojonot Dataohjattu Avain- ja toimisanat (keywords, action words) Mallipohjainen Mika Katara: Ohjelmistojen testaus, (Järjestelmätestaustason) automaation lyhyt historia Structured Test Scripts Data-Driven Scripts Keywords, Action words Capture Replay, Spaghetti Scripts Ks. esim. Software Test Automation: Effective use of test execution tools By Mark Fewster and Dorothy Graham, Addison Wesley, Mika Katara: Ohjelmistojen testaus,

30 ja tulevaisuus? Model-based testing Automated test execution Manual testing Mika Katara: Ohjelmistojen testaus,

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

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

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

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

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

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

Test-Driven Development

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

Lisätiedot

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

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

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 JATKUU VIIME KERRASTA OHJELMISTOTUOTANTO JA OHJELMISTOTESTAUS Ohjelmistotuotannon prosessi Suunnittelu Määrittely Toteutus

Lisätiedot

Lakki. Lisää ot sik k o osoit t am alla. Nöyrästi vain lakki kourassa... Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi 2010

Lakki. Lisää ot sik k o osoit t am alla. Nöyrästi vain lakki kourassa... Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi 2010 Lakki Nöyrästi vain lakki kourassa... Jussi Vänskä Espotel Oy vierailuluentosarja OTM kurssi 2010 2.luento: ohjelmistokehityksen päivärutiinit Lisää ot sik k o osoit t am alla Siitä vain reunasta Miten

Lisätiedot

Test-Driven Development

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

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

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

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

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

Lisätiedot

Työkalut ohjelmistokehityksen tukena

Työkalut ohjelmistokehityksen tukena 1 Työkalut ohjelmistokehityksen tukena Johdanto 2 Työkaluja eli ohjelmistotyötä tukevia ohjelmistoja käytetään ohjelmistoalan yrityksissä nykypäivänä paljon. Työkalut auttavat ohjelmistoalan ihmisiä suunnittelemaan

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

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

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

Lisätiedot

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

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

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 Tieran toiminta perustuu osaamisverkoston rakentamiseen, mikä

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

Testaus-tietoisku: Tärkeimpiä asioita testauksesta projektityökurssilaisille

Testaus-tietoisku: Tärkeimpiä asioita testauksesta projektityökurssilaisille 1(23) Testaus-tietoisku: Tärkeimpiä asioita testauksesta projektityökurssilaisille Matti Vuori, Tampereen teknillinen yliopisto 30.10.2012 Sisällysluettelo 1/2 Esityksen tarkoitus 4 Laatu on tärkeää, ei

Lisätiedot

Testiautomaatio tietovarastossa. Automaattisen regressiotestauksen periaate ja hyödyt

Testiautomaatio tietovarastossa. Automaattisen regressiotestauksen periaate ja hyödyt Testiautomaatio tietovarastossa Automaattisen regressiotestauksen periaate ja hyödyt Sisältö 2 Testaus kiinteänä osana DW-toteutusta Regressiotestauksen merkitys Robot Framework Automatisoitu DW:n regressiotestaus:

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

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Copyright by Haikala. Ohjelmistotuotannon osa-alueet Copyright by Haikala Ohjelmistotuotannon osa-alueet Ohjelmiston elinkaari 1. Esitutkimus, tarvekartoitus, kokonaissuunnittelu, järjestelmäsuunnittelu (feasibility study, requirement study, preliminary

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

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

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

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

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

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

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

Lisätiedot

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

TDD Käytännössä Todellinen työkalu vai lehmipoikien laukkaa? Harri Kulmala Solita Oy

TDD Käytännössä Todellinen työkalu vai lehmipoikien laukkaa? Harri Kulmala Solita Oy www.solita.fi solita@solita.fi TDD Käytännössä Todellinen työkalu vai lehmipoikien laukkaa? Harri Kulmala Solita Oy 1 TDD Käytännössä Test Driven Development yleisesti Lupaukset Esimerkki Projektin ja

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

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta 582101 - Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta 1 Toteutuksesta ja testauksesta Suunnitteluprosessista Tarkan tason luokkasuunnittelu Siirtyminen UML-kaavioista Java-toteutukseen

Lisätiedot

Testilähtöinen ohjelmistokehitys. Testilähtöinen ohjelmistokehitys. TDD Testilähtöinen ohjelmistokehitys. Testi! Testi

Testilähtöinen ohjelmistokehitys. Testilähtöinen ohjelmistokehitys. TDD Testilähtöinen ohjelmistokehitys. Testi! Testi Testilähtöinen ohjelmistokehitys Kevät 2008 Jonne Itkonen Jyväskylän yliopisto Testilähtöinen ohjelmistokehitys Test-Driven Development, TDD Tehdään ensin testi, sitten vasta koodi. TDD Testilähtöinen

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

4. Luokan testaus ja käyttö olion kautta 4.1

4. Luokan testaus ja käyttö olion kautta 4.1 4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään

Lisätiedot

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

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

Lisätiedot

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

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

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

Testauksen hallintaa teekkareille (ja muille kiinnostuneille) Arto Stenberg

Testauksen hallintaa teekkareille (ja muille kiinnostuneille) Arto Stenberg Testauksen hallintaa teekkareille (ja muille kiinnostuneille) Arto Stenberg Symbio lyhyesti Innovatiivinen tuotekehitys- ja testauskumppani Juuret Suomessa, perustettu 1997 Laadukkaat ohjelmistotoimitukset

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

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

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI Vesa Tenhunen Tarkastusmenettelyt Keino etsiä puutteita ohjelmakoodeista, dokumenteista ym. ohjelmistoprosessissa syntyvästä materiaalista Voidaan käyttää kaikissa

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

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä Pekka Ryhänen & Erkki Pesonen 2002 BlueJ:n käyttö Nämä ohjeet on tarkoitettu tkt-laitoksen mikroluokan koneilla tapahtuvaa käyttöä varten. Samat asiat pätevät myös muissa luokissa ja kotikäytössä, joskin

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

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö Matopeli C#:lla Aram Abdulla Hassan Ammattiopisto Tavastia Opinnäytetyö Syksy 2014 1 Sisällysluettelo 1. Johdanto... 3 2. Projektin aihe: Matopeli C#:lla... 3 3. Projektissa käytetyt menetelmät ja työkalut

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 ohjelmistoprojekti

Onnistunut ohjelmistoprojekti Onnistunut ohjelmistoprojekti ICT-ajankohtaisseminaari 15.4.2009 Hermanni Hyytiälä Reaktor Innovations Oy Agenda Yritysesittely Keinoja onnistuneeseen ohjelmistoprojektiin Ihmiset Menetelmät Käytännöt

Lisätiedot

Ohjelmien testaustyökalut

Ohjelmien testaustyökalut Ohjelmien testaustyökalut Antti Hämäläinen Helsinki 13.11.2000 Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Ohjelmien testaustyökalut Antti Hämäläinen Ohjelmistotuotantovälineet

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

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

Uudelleenkäytön jako kahteen

Uudelleenkäytön jako kahteen Uudelleenkäyttö Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim. windows-käyttöliittymä) On arvioitu, että 60-80% ohjelmistosta

Lisätiedot

Simulaattoriavusteinen ohjelmistotestaus työkoneympäristössä. Simo Tauriainen

Simulaattoriavusteinen ohjelmistotestaus työkoneympäristössä. Simo Tauriainen Simulaattoriavusteinen ohjelmistotestaus työkoneympäristössä Simo Tauriainen www.ponsse.com 25.8.2011 Ponsse-konserni Ponsse Oyj on tavaralajimenetelmän metsäkoneiden myyntiin, tuotantoon, huoltoon ja

Lisätiedot

Testataanko huomenna?

Testataanko huomenna? Testataanko huomenna? Qentinel Group 2014 Esko Hannula 03.06.2014 Ohjelmistokriisistä testauskriisiin 1985: Ohjelmistot ovat huonolaatuisia ja aina myöhässä Jonkun pitäisi testata, ehkäpä noiden huonoimpien

Lisätiedot

Ohjelmistojen suunnittelu

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

Lisätiedot

Onnistunut ohjelmistoprojekti

Onnistunut ohjelmistoprojekti Onnistunut ohjelmistoprojekti 2.12.2008 Hermanni Hyytiälä Reaktor Innovations Oy Agenda Yritysesittely Keinoja onnistuneeseen ohjelmistoprojektiin Ihmiset Menetelmät Käytännöt ja työkalut Tulevaisuuden

Lisätiedot

Testaus ja säästöt: Ajatuksia testauksen selviämisestä lama-aikana

Testaus ja säästöt: Ajatuksia testauksen selviämisestä lama-aikana Testaus ja säästöt: Ajatuksia testauksen selviämisestä lama-aikana Muutamia ajatuksia siitä, miten testaus pärjää lama-ajan säästötalkoissa. Laman patologioita ja mahdollisuuksia. Säästämisen strategioita.

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

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 NOPEA KERTAUS TESTAUS HYVIN LYHYESTI Miten normaali testaajan arki ohjelmistoprojektissa sitten rullaa? Käytännössä

Lisätiedot

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta 582101 - Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta 1 Toteutuksesta ja testauksesta Suunnitteluprosessista Tarkan tason luokkasuunnittelu Siirtyminen UML-kaavioista Java-toteutukseen

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

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

Ohjelmiston testaussuunnitelma

Ohjelmiston testaussuunnitelma Ohjelmiston testaussuunnitelma Ryhmän nimi: Tekijä: Toimeksiantaja: Toimeksiantajan edustaja: Muutospäivämäärä: Versio: Katselmoitu (pvm.): 1 1 Johdanto Tämä lukaa antaa yleiskuvan koko testausdokumentista.

Lisätiedot

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

Testaussuunnitelma. Opeapuri. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma Opeapuri Helsinki 2.4.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Krister Eklund

Lisätiedot

Tarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen

Tarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen Tarjolla tänää: Ohjelmiston toteutuksesta JOT2007 CRC-kortit Testilähtöinen kehittäminen Uudelleenrakentaminen Voisiko ohjelmointi olla sittenkin suunnittelua? Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit

Lisätiedot

Advanced Test Automation for Complex Software-Intensive Systems

Advanced Test Automation for Complex Software-Intensive Systems Advanced Test Automation for Complex Software-Intensive Systems Aiheena monimutkaisten ohjelmistovaltaisten järjestelmien testauksen automatisointi Mistä on kyse? ITEA2-puiteohjelman projekti: 2011-2014

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

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien

Lisätiedot

Luku 8 Rakennusvaihe. Detailed Design. Programming. Moduulisuunnittelu. Ohjelmointi

Luku 8 Rakennusvaihe. Detailed Design. Programming. Moduulisuunnittelu. Ohjelmointi Luku 8 Rakennusvaihe Moduulisuunnittelu Detailed Design Programming Ohjelmointi Teknisen Complete suunnittelun Technical viimeistely Design Suunnittelukatselmuksen Design Perform suorittaminen Review Yhteisen

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

KONEAUTOMAATION LAATU JA TURVALLISUUS. 4.6.2015 Marko Varpunen

KONEAUTOMAATION LAATU JA TURVALLISUUS. 4.6.2015 Marko Varpunen KONEAUTOMAATION LAATU JA TURVALLISUUS 4.6.2015 Marko Varpunen TLJ ja automaatio Rautatie, metro, teollisuus-laitokset, kaivoskoneet, vesi, n. 90 henkeä Mikkeli Turvallisuusjohtaminen konsultointi riskienarviointi

Lisätiedot

statbeatmobile PROJECT REVIEW iteration 1

statbeatmobile PROJECT REVIEW iteration 1 statbeatmobile PROJECT REVIEW iteration 1 agenda Projekti Status Käytännöt Tulokset Katsaus eteenpäin PROJEKTI / mikä on statbeat? Sosiaalinen joukkueurheilupalvelu Keskustelu, fanit, kavereiden joukkueet,

Lisätiedot

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

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

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Liite 1: skenaariot ja PoC tulokset 1. Palvelun kehittäjän näkökulma Tilanne Vaatimus Ongelma jos vaatimus ei toteudu Palvelun uusi versio on Palveluiden kehittäminen voitava asentaa tuotantoon vaikeutuu

Lisätiedot

Testausautomaation mahdollisuudet käyttöliittymän testauksessa. Anssi Pekkarinen 5.11.2015

Testausautomaation mahdollisuudet käyttöliittymän testauksessa. Anssi Pekkarinen 5.11.2015 Testausautomaation mahdollisuudet käyttöliittymän testauksessa Anssi Pekkarinen 5.11.2015 Agenda Kustannustehokkaan testausautomaation tekemiseen vaikuttavat tekijät Käyttöliittymätestauksen haasteet Uudet

Lisätiedot

Menetelmäraportti - Konfiguraationhallinta

Menetelmäraportti - Konfiguraationhallinta Menetelmäraportti - Konfiguraationhallinta Päiväys Tekijä 22.03.02 Ville Vaittinen Sisällysluettelo 1. Johdanto... 3 1.1 Tärkeimmät lyhenteet... 3 2. Konfiguraationhallinnan tärkeimmät välineet... 4 2.1

Lisätiedot

1 Tehtävän kuvaus ja analysointi

1 Tehtävän kuvaus ja analysointi Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.

Lisätiedot

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

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

Lisätiedot

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4 Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.

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

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:

Lisätiedot

Ohjelmistotekniikka - Luento 2

Ohjelmistotekniikka - Luento 2 Ohjelmistotekniikka - Luento 2 Luku 2: Prosessimallit - miten spiraalimalliin päädyttiin - spiraalimallista (R)UP malliin - oman ammattitaidon kehittäminen; PSP ja TSP mallit 1 Luento 2: Prosessimallit

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

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

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

Testaussuunnitelma. Ohjelmistotuotantoprojekti Nero. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma Ohjelmistotuotantoprojekti Nero Helsinki 5.11.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti ( ov) Projektiryhmä

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

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

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

Sopisiko testiautomaatio yritykseesi juuri nyt? Testiautomaation soveltuvuuden arviointiopas

Sopisiko testiautomaatio yritykseesi juuri nyt? Testiautomaation soveltuvuuden arviointiopas Sopisiko testiautomaatio yritykseesi juuri nyt? Testiautomaation soveltuvuuden arviointiopas www.valagroup.fi TESTITAUTOMAATIO SINUN YRITYKSEESI? Testauksen automatisointi ei sovellu kaikkiin tilanteisiin;

Lisätiedot

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti5004000 - Kandidaatintyö ja seminaari Alkuraportti Avoimen lähdekoodin käyttö WWW-sovelluspalvelujen toteutuksessa Lappeenranta, 4.6.2007,

Lisätiedot

Turvakriittisen projektin menetelmät ja työkalut

Turvakriittisen projektin menetelmät ja työkalut Turvakriittisen projektin menetelmät ja työkalut 1. Vaatimushallinta Vaatimushallintaan kohdistuu turvaluokitelluissa projekteissa paljon odotuksia. Etenkin jäljitettävyys vaatimuksiin, testaukseen ja

Lisätiedot

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.

Lisätiedot