6.3 Virheiden kylväminen
|
|
- Elsa Ahonen
- 7 vuotta sitten
- Katselukertoja:
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. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,
LisätiedotOhjelmistotestaus -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ätiedotOhjelmiston 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ätiedotAutomaattinen 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ätiedotTestausdokumentti. 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ätiedotTestauksen 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ätiedotTest-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ätiedotTestaussuunnitelma 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ätiedotTIE-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ätiedotTIE-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ätiedotCT60A4150 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ätiedotLakki. 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ätiedotTest-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ätiedotCT60A4150 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ätiedotTestaussuunnitelma. 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ätiedotYksikkö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ätiedotTyö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ätiedotTapahtuipa 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ätiedotAutomaattinen 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ätiedotTIE 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ätiedotHarjoitustyö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ätiedotMihin 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ätiedotUCOT-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ätiedotTestaus-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ätiedotTestiautomaatio 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ätiedotELM 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ätiedotCopyright 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ätiedotOhjelmointi 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ätiedotOhjelmiston 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ätiedotTestausraportti. Oppimistavoitteiden hallintajärjestelmä harri
Testausraportti Oppimistavoitteiden hallintajärjestelmä harri Helsinki 13.12.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti
Lisätiedotdokumentin 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ätiedotTestaussuunnitelma. 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ätiedotTestaussuunnitelma. 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ätiedotSEPA 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ätiedotTDD 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ätiedotKontrollipolkujen 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ätiedotOhjelmistotekniikan 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ätiedotTestilä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ätiedotDynaaminen 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ätiedot4. 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ätiedotTestaus 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ätiedotDynaaminen 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ätiedotTIE 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ätiedotTestaustyö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ätiedotTestauksen 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ätiedotT 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ätiedotTestaaminen 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ätiedotTARKASTUSMENETTELYT 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ätiedot58160 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ätiedotBlueJ 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ätiedotOnnistunut 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ätiedotMatopeli 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ätiedotOhjelmistotuotantoprojekti
Ohjelmistotuotantoprojekti Ryhmä Muppett TESTAUSDOKUMENTTI Helsinki 5.8.2008 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Ohjelmistotuotantoprojekti, kesä 2008 Projekti: Muutos- ja korjauspyyntöjen
LisätiedotOnnistunut 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ätiedotOhjelmien 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ätiedotTutkittua 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ätiedotTestauksen 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ätiedotUudelleenkä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ätiedotSimulaattoriavusteinen 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ätiedotTestataanko 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ätiedotOhjelmistojen 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ätiedotOnnistunut 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ätiedotTestaus 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ätiedotTestaussuunnitelma Labra
Testaussuunnitelma Labra Helsinki 25.8.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 1 Kurssi 581260 Ohjelmistotuotantoprojekti (9+1op) Projektiryhmä Anssi Kapanen,
LisätiedotCT60A4150 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ätiedotOhjelmistotekniikan 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ätiedotT 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ätiedotMihin 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ätiedotOhjelmiston 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ätiedotTestaussuunnitelma. 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ätiedotTarjolla 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ätiedotAdvanced 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ätiedotConvergence 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ätiedot15. 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ätiedotLuku 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ätiedotTik-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ätiedotKONEAUTOMAATION 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ätiedotstatbeatmobile 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ätiedot5. 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ätiedot815338A 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ätiedotProject-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ätiedotLiite 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ätiedotTestausautomaation 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ätiedotMenetelmä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ätiedot1 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ätiedotTESTIRAPORTTI - 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ätiedotSisä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ätiedotYksikkö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ätiedot15. 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ätiedotOhjelmistotekniikka - 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ätiedotOhjelmistotuotteen 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ätiedotTIE 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ätiedotTestaussuunnitelma. 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ätiedotITKP102 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ätiedotJReleaser 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ätiedotSopisiko 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ätiedotAlkuraportti. 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ätiedotTurvakriittisen 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ätiedot815338A 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