Testaus osana ohjelmistojen elinkaarta II



Samankaltaiset tiedostot
Testaus osana ohjelmistojen elinkaarta Luento 2 Antti-Pekka Tuovinen

ITK130 Ohjelmistojen luonne

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Ohjelmistotestauksen perusteita II

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Dynaaminen analyysi II

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Testaaminen ohjelmiston kehitysprosessin aikana

Dynaaminen analyysi I

Onnistunut Vaatimuspohjainen Testaus

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

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

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

Kuopio Testausraportti Asiakkaat-osakokonaisuus

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen

Dynaaminen analyysi IV

Convergence of messaging

Harjoitustyön testaus. Juha Taina

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

Järjestelmätestauksen vaatimukset. 6. Järjestelmätestaus (B, 14) Järjestelmätestauksen korkean tason testausstrategia

Dynaaminen analyysi IV Luento 6 Antti-Pekka Tuovinen

Testauksen hallintaa teekkareille (ja muille kiinnostuneille) Arto Stenberg

Sytyke ry:n laivaseminaari Software Technology Transfer Pekka Forselius

Testaussuunnitelma Labra

Laadunvarmistustekniikat

Ohjelmistotekniikka - Luento 2

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

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

Ohjelmiston testaus ja laatu. Testausmenetelmiä

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

Ohjelmistotuotantoprojekti

T Testiraportti - integraatiotestaus

Ohjelmiston toteutussuunnitelma

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Määrittelydokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testataanko huomenna?

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

TOIMINNALLINEN MÄÄRITTELY MS

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

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

Ohjelmiston testaus ja laatu. Testaustasot

Ohjelmistotestauksen perusteita I Luento 1 Antti-Pekka Tuovinen

Kontrollipolkujen määrä

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

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

Hyväksymistestauksen tarkistuslista järjestelmän hankkijalle

Ohjelmistojen testaus

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

Ohjelmistotuotanto s

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

UCOT-Sovellusprojekti. Testausraportti

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

Testiautomaatio tietovarastossa. Automaattisen regressiotestauksen periaate ja hyödyt

T Testiraportti - järjestelmätestaus

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

Hirviö Laadunvarmistussuunnitelma

Ohjelmistojen suunnittelu

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

Yhteistoimintakaavio (Esimerkki)

Onnistunut SAP-projekti laadunvarmistuksen keinoin

Testaus osana ohjelmistojen elinkaarta I

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

Ylläpito. Ylläpidon lajeja

Testausoppeja toimialavaihdoksesta

Ylläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

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

Ohjelmiston testaussuunnitelma

Good Minton QA Raportti Iteraatio 1 Sulkapalloliiton Kilpailujärjestelmä

TESTIRAPORTTI - JÄRJESTELMÄ, ADMIN Virtuaaliyhteisöjen muodostaminen Versio 1.0

Johdantoluento. Ohjelmien ylläpito

Enterprise SOA. Nyt. Systeemi-integraattorin näkökulma

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2016

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

Ohjelmistotestaus -09

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

Käyttötapausanalyysi ja testaus tsoft

ADE Oy Hämeen valtatie TURKU. Tuotekonfigurointi. ADE Oy Ly Tunnus:

Testaus elinkaaressa

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Ohjelmistotuotteen hallinnasta

Turvakriittisen projektin menetelmät ja työkalut

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

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

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Testausraportti v1.0. HOHTO - Henkilöstön osaamisen hallinnan työkalu

Arkkitehtuurien tutkimus Outi Räihä. OHJ-3200 Ohjelmistoarkkitehtuurit. Darwin-projekti. Johdanto

DOORS 7.1 Test Tracking Toolkit

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

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

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Tapahtuipa Testaajalle...

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

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

Transkriptio:

Testaus osana ohjelmistojen elinkaarta II Luento 4 Antti-Pekka Tuovinen www.cs.helsinki.fi 21 March 2013 1 Oppimistavoitteet Ohjelmistoversioiden testaus Testityyppejä www.cs.helsinki.fi 21 March 2013 2 1

Ohjelmistoversioiden testaus www.cs.helsinki.fi 21 March 2013 3 Ohjelmistojen kehitys ei pysähdy V-mallin ja testaustasojen esittely keskittyi uuden ohjelmiston kehittämisessä tehtävään testaukseen Ohjelmiston elinaika kuitenkin vasta alkaa ensimmäisestä julkaistusta versiosta Vikoja korjataan Asiakas haluaa muutoksia Toimintaympäristö muuttuu Tehdään uusia (räätälöityjä) versioita uusille asiakkaille Julkaistaan uusia versioita tuotesuunnitelman mukaisesti www.cs.helsinki.fi 21 March 2013 4 2

Ohjelmistoversioihin liittyvä testaus Tarkastellaan asiaa kolmesta näkökulmasta Ylläpito Ohjelmiston tuoteversioiden kehitys Inkrementaalinen ohjelmistokehitys www.cs.helsinki.fi 21 March 2013 5 Ohjelmistojen ylläpito Ohjelmistoon ei käytön aikana tule vikoja fyysisen kulumisen tai rasituksen takia Kaikki viat ovat kehitysaikaisten erehdysten syytä Ohjelmistojen ylläpito (maintenance) on siis erilaista kuin esimerkiksi kiinteistöjen tai tuotantolaitteiden ylläpito www.cs.helsinki.fi 21 March 2013 6 3

Tyypillisiä ylläpitotoimiin johtavia tilanteita Ohjelmistosta löytyy vikoja käytössä Ohjelmistoa ajetaan olosuhteissa, joihin ei ole osattu varautua Asiakkaalla on muutostoiveita Harvoin esiintyvien erikoistilanteiden vaatimat toiminnot ovat jääneet toteuttamatta Järjestelmässä ilmenee epävakautta satunnaisesti tai pitkien käyttöaikojen jälkeen www.cs.helsinki.fi 21 March 2013 7 Ohjelmistojen ylläpito Ohjelmistojen ylläpitoa on kahta perustyyppiä Korjaavassa ylläpidossa (corrective maintenance) poistetaan virheitä Muokkaavassa ylläpidossa (adaptive maintenance) ohjelmistoa muokataan muuttuneisiin olosuhteisiin Ohjelmistoon tehdään muutoksia, jotka kootaan päivityspakettiin tai kokonaiseen uuteen ohjelmistoversioon ja toimitetaan asiakkaalle www.cs.helsinki.fi 21 March 2013 8 4

Ylläpitopäivitysten testaus Tehdyt muutokset on luonnollisesti testattava ennen päivityksen julkaisua Testausstrategia on suoraviivainen Muutetut ohjelman osat testataan (uudelleen), tarvittaessa uusilla testitapauksilla Muulle ohjelmistolle tehdään regressiotestaus (kts. kalvo 32 ) www.cs.helsinki.fi 21 March 2013 9 Päivitysjulkaisut Pika- tai hätäpäivitys (emergency / hot fix) Tehdään vain välttämättomimmät testit nopean julkaisun mahdollistamiseksi Kattavammat testit julkaisun jälkeen Suunnitellut korjauspäivitykset (update) Julkaistaan yleensä säänöllisin väliajoin Uusi toiminallisuus on testattu normaalisti ja muu ohjelmisto on regressiotestattu www.cs.helsinki.fi 21 March 2013 10 5

Ohjelmistojen ylläpitoon liittyvä testaus Muita testausta vaativia muutoksia Ohjelmiston migraatio alustalta toiselle Ohjelmiston poisto käytöstä www.cs.helsinki.fi 21 March 2013 11 Ohjelmistojen tuoteversioiden testaus Korjaavan ylläpidon ohella ohjelmistoihin tehdään etukäteen suunniteltuja muutoksia ja laajennuksia pidemmällä tähtäimellä Proaktiivisuus vs. reaktiivisuus Ohjelmistolla on tuotesuunnitelma (product roadmap), johon sisältyy useita julkaisuja Uusia piirteitä Tuen uusille alustoille www.cs.helsinki.fi 21 March 2013 12 6

Ohjelmistojen tuoteversioiden testaus Käytännössä uuden julkaisun kehittäminen käynnistää uuden kehitysprojektin Kehitys on syklistä ja iteratiivista Uusien versioiden julkaisut kannattaa synkronoida ylläpitoon liittyvien korjauspäivitysten julkaisutahtiin Esim. tuotepäivitys 12kk välein ja korjauspäivitys 6kk julkaisusta www.cs.helsinki.fi 21 March 2013 13 Ohjelmistojen tuoteversioiden testaus Uudet ohjelmistoversiot pitäisi testata kaikki testaustasot läpikäyden, kuten ensimmäinenkin versio Muutetut ja lisätyt osat testataan Uudet osat vaativat uudet testitapaukset, mahdollisesti myös muutetut osat Muulle ohjelmistolle tehdään regressiotestaus www.cs.helsinki.fi 21 March 2013 14 7

Inkrementaalinen ohjelmistokehitys Inkrementaalisen kehityksen idea on tuottaa ohjelmisto sarjana pienempiä kehitysaskeleita sen sijaan, että ohjelmisto rakennetaan kerralla valmiiksi Jokainen kehitysaskel eli inkrementti lisää uutta toiminnallisuutta järjestelmään kasvattaen ohjelmistoa siivu siivulta Ohjelmistolla on varhaisesta vaiheesta lähtien jonkinlainen perusrunko tai luuranko (skeleton), johon inkrementtien tuotokset integroidaan www.cs.helsinki.fi 21 March 2013 15 Inkrementaalinen ohjelmistokehitys by Man vyi wikimedia.org www.cs.helsinki.fi 21 March 2013 16 8

Inkrementaalinen ohjelmistokehitys Inkrementaalinen kehitysprosessi tekee mahdolliseksi asiakkaan osallistumisen jo varhaisessa vaiheessa toimintojen testaukseen Hyväksyntätestausta ja käytettävyystestausta voidaan tehdä koko kehitysprojektin ajan www.cs.helsinki.fi 21 March 2013 17 Inkrementaalinen ohjelmistokehitys Muukin testaus on mukautettava jatkuvaan muutokseen Jatkuva integrointitestaus (frequent integration, continuous integration) Jatkuva regressiotestaus Testitapausten uudelleenkäytettävyys inkrementtien välillä www.cs.helsinki.fi 21 March 2013 18 9

Inkrementtien testaus 1. julkaisu 2. julkaisu 3. julkaisu www.cs.helsinki.fi 21 March 2013 19 Testityyppejä www.cs.helsinki.fi 21 March 2013 20 10

Testityyppejä On olemassa perustestityyppejä, joita voidaan käyttää useilla eri testaustasoilla Ohjelmiston testattava ominaisuus on testityypin määrittävä tekijä ei kehitysprojektin vaihe www.cs.helsinki.fi 21 March 2013 21 Toiminnallinen testaus (functional testing) Toiminnallinen testaus verifioi ohjelmiston tuottamat tulokset ja käyttäytymisen ohjelmiston syötteillä (input-output behavior) Ohjelmistoa tarkastellaan mustana laatikkona (black box) eli tarkastellaan vain sen ulkoisesti havaittavaa käyttäytymistä, ei sen sisäistä tilaa Testien lähtökohtana ovat ohjelmiston toiminnalliset vaatimukset, jotka määritelevät mitä ohjelmisto tekee Tämä testaustyyppi sopii parhaiten järjestelmäja hyväksyntätestaukseen www.cs.helsinki.fi 21 March 2013 22 11

Kirjattuihin vaatimuksiin perustuva t:nen testaus Jos toimintoja koskevat vaatimukset on kirjattu ylös, testitapaukset suunnitellaan niiden perusteella Jokaista vaatimusta kohden tehdään vähintään yksi testitapaus Usein vaatimukseen sisältyy (eksplisiittisesti tai implisiittisesti) useita mahdollisia tapoja tehdä vaadittu asia (ja poikkeustilanteita), joten testitapauksia tarvitaan yleensä useita www.cs.helsinki.fi 21 March 2013 23 Kirjattuihin vaatimuksiin perustuva t:nen testaus Toiminnallisista vaatimuksista johdetaan usein käyttötapauksia (use case), jotka toimivat käyttöliittymä- ja myös ohjelmistosuunnittelun lähtökohtina Käyttötapaus kuvaa täydellisen vuorovaikutusjakson (skenaarion) ohjelmiston ja ulkoisen aktorin välillä siten, että jokin aktorin tavoite (syy ohjelmiston käytölle) tulee täytetyksi skenaarion aikana Käyttötapaukset ovat hyvä pohja testitapausten suunnittelulle www.cs.helsinki.fi 21 March 2013 24 12

Liiketoimintaprosesseihin perustuva t:nen testaus Yksittäisiä käyttötapauksia laajempia kuvauksia ovat liiketoimintaprosessien (business process) ja -tapahtumien kuvaukset Liiketoimintatapahtuma kokoaa yhteen useita käyttötapauksia loogiseksi toimintojen ketjuksi, joka täyttää jonkin asiakkaan liiketoiminnan tavoitteen Tapahtuman testaus vaatii oman testiskenaarionsa www.cs.helsinki.fi 21 March 2013 25 Liiketoimintaprosesseihin perustuva t:nen testaus Esim auton myynti liiketoimintatapahtuma koostuu käyttötapauksista 1. autotarjonnan selaus, 2. auton ja lisävarusteiden valinta, 3. [ rahoitustarjouksen pyyntö ], 4. [ vakuutustarjouksen pyyntö ], 5. hankintasopimuksen teko ja tallennus 6. auton ja lisävarusteiden tilauksen toimitus maahantuojalle www.cs.helsinki.fi 21 March 2013 26 13

Ei-toiminnallisten (non-functional) ominaisuuksien testaus Ei-toiminnallisilla ominaisuuksilla tarkoitetaan järjestelmän toimintaa tai sitä kokonaisuutena määrittäviä laatupiirteitä Miten hyvin järjestelmä tekee sen minkä se tekee ISO 9126 laatustandardin ei-toiminnalliset piirteet Reliability, Usability, Efficiency Laatupiirteet Maintainability ja Portability liittyvät lähinnä ohjelmiston rakenteeseen Näilläkin on epäsuorasti vaikutusta asiakkaan tyytyväisyyteen! www.cs.helsinki.fi 21 March 2013 27 Konkreettisia testauskohteita Käytös kuormituksen (load test) alla Suorituskyky tärkeissä käyttötapauksissa ja kuorman alla Suurten datamäärien käsittely (volume test) Ylikuormitustilanteet (stress test) Turvauhkien käsittely ja torjunta (security) Vakaus ja luotettavuus jatkuvassa käytössä (stability) Käytös virhetilanteissa (robustness) Yhteensopivuus, datamuunnokset (compatibility) Eri laitteisto- ja ohjelmistokonfiguraatiot Käytettävyys Dokumentointi Ylläpidettävyys www.cs.helsinki.fi 21 March 2013 28 14

Ei-toiminnallisen testauksen haasteita Ei-toiminnalliset vaatimukset ovat usein niin epämääräisesti muotoiltu, että konkreettisia testitapauksia ei voi määritellä Ohjelmiston pitää olla helppokäyttöinen Järjestelmän pitää olla nopea Myös ei-toiminnallisten vaatimusten pitää olla ilmaistu testattavassa muodossa! www.cs.helsinki.fi 21 March 2013 29 Ei-toiminnalliset testitapaukset?? Valitaan toiminnallisista testeistä skenaario, joka edustaa poikkileikkausta koko järjestelmän toiminnasta (esim. käyttöliittymästä tietokantapalvelimeen asti) Testattavan ei-toiminnallisen ominaisuuden tulee olla havainnoitavissa ja mitattavissa skenaarion suorituksen aikana Jos mittauksen tulos on sallituissa rajoissa tavoitearvoon verrattuna, testin tulos on pass ja muuten fail www.cs.helsinki.fi 21 March 2013 30 15

Ohjelmiston rakenteen testaus Testitapausten suunnittelussa käytetään hyväksi tietoa ohjelmiston arkkitehtuurista ja sisäisistä tiloista (esim. mallien avulla) Tarkoitus on suunnitella ja ajaa riittävästi testitapauksia kaikkien rakenteiden testaamiseksi www.cs.helsinki.fi 21 March 2013 31 Ohjelmiston muutosten testaus ja regressiotestaus Uudelleentestaus (retesting) muutosten jälkeen Toistetaan aikaisemmat testit sen osoittamiseksi, että korjatut viat ovat todella hävinneet Regressiotestaus muutosten jälkeen Tarkoituksena on osoittaa, että muutokset eivät ole aiheuttaneet uusia vikoja (tai vanhojen vikojen uusiutumista) ohjelmistoon www.cs.helsinki.fi 21 March 2013 32 16

Ohjelmiston muutosten testaus ja regressiotestaus Regressiotestaukseen valitut testitapaukset suoritetaan toistuvasti, joten ne on dokumentoitava hyvin Testit kannattaa mahdollisuuksien mukaan automatisoida www.cs.helsinki.fi 21 March 2013 33 Regressiotestauksen laajuus Tärkeää on päättää regressiotestauksen laajuus Suoritetaan uudestaan kaikki testit, jotka löysivät jonkin nyt korjatuista vioista Testataan kokonaan uudelleen kaikki ne ohjelman osta joita on nyt muutettu Testataan kaikki vastikään integroidut ohjelmiston osat Testataan uudelleen koko ohjelmisto www.cs.helsinki.fi 21 March 2013 34 17

Regressiotestauksen laajuus Ohjelmistomuutoksilla voi olla arvaamattomia sivuvaikutuksia myös niissä ohjelman osissa, joihin ei ole koskettu Osien välillä voi olla suuri määrä suoria ja epäsuoria riippuvuuksia niitä on helppo saada aikaan mutta työlästä poistaa Syynä usein huonosti suunniteltu tai muuten sopimaton arkkitehtuuri ja piittaamattomuus riippuvuuksia koskevista säännöistä Periaatteessa vain koko ohjelmiston täydellinen uudelleentestaus on riittävän laaja regression havaitsemiseen www.cs.helsinki.fi 21 March 2013 35 Regressiotestauksen laajuus Käytännössä koko ohjelmiston uudelleentestaus on kuitenkin liian kallista ja hidasta On siis valittava huomattavasti suppeampi joukko testitapauksia, joitten suoritus tuottaa riittävän varmuuden regression poissaolosta On yritettävä päätellä, mihin ohjelmiston osiin sivuvaikutuksia voisi tulla On muutenkin pyrittävä rajoittamaan ajettavien testitapausten määrä minimiin www.cs.helsinki.fi 21 March 2013 36 18

Regressiotestauksen laajuus Regressiotestitapausten valintakriteereitä Vain testisuunnitelman korkeimman prioriteetin testit ajetaan Toiminnallisten testien tietyt variantit voidaan jättää pois Rajoitetaan testaus vain tiettyihin tuotekonfiguraatioihin (vain yksi kieliversio ja yksi käyttöjärjestelmä) Testataan vain tietyt alijärjestelmät tai vain tietyt testitasot www.cs.helsinki.fi 21 March 2013 37 Oppimistavoitteet Ohjelmistoversioiden testaus Testityyppejä www.cs.helsinki.fi 21 March 2013 38 19