Ohjelmiston testaus ja laatu. Testaustasot



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

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

Kontrollipolkujen määrä

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

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

Convergence of messaging

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

Ohjelmistotuotanto s

Laadunvarmistustekniikat

Testaussuunnitelma Labra

Ohjelmiston testaus ja laatu. Testausmenetelmiä

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

Ohjelmistojen testaus ja virheenjäljitys

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmistotestaus -09

Testaussuunnitelma. PUSU-ryhmä. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

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

Ohjelmistotuotantoprojekti

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

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

Testausraportti. Orava. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaaminen ohjelmiston kehitysprosessin aikana

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

Testaus elinkaaressa. Testaustasot ja vaiheet

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

58160 Ohjelmoinnin harjoitustyö

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

Lohtu-projekti. Testaussuunnitelma

Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II

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

T Testiraportti - järjestelmätestaus

Testaussuunnitelma. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie

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

Ohjelmiston toteutussuunnitelma

Ohjelmistojen mallintaminen. Luento 11, 7.12.

UCOT-Sovellusprojekti. Testausraportti

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

Turvakriittisen projektin menetelmät ja työkalut

T Testiraportti - integraatiotestaus

Ohjelmiston testaussuunnitelma

Testaus osana ohjelmistojen elinkaarta I

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

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

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

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

Dynaaminen analyysi I

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

Testaustyökalut Sini Mäkelä

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

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

Testaus elinkaaressa

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2016

2. Ohjelmistotuotantoprosessi

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

7. Verifiointi ja validointi

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen

10. Tarkastukset. Tarkastusten rakenne

Tarkastusten rakenne. 10. Tarkastukset. Tuotoksen tekijän rooli. Tarkastustiimi. Tarkastusprosessin vaiheet. Tarkastusprosessi

Hirviö Laadunvarmistussuunnitelma

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

Esityksen sisältö Määrittelyjen mukaisuudesta varmistuminen - PlugIT-leima

Testaussuunnitelma. Oppimistavoitteiden hallintajärjestelmä harri

TOIMINNALLINEN MÄÄRITTELY MS

Testauksen hallintaa teekkareille (ja muille kiinnostuneille) Arto Stenberg

Prosessimalli. 2. Ohjelmistotuotantoprosessi. Prosessimallin vaihejako. Prosessimallien perustehtävät. Ohjelmiston suunnittelu. Vaatimusmäärittely

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

Projektin suunnittelu

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

Rinnakkaisten ohjelmien testaus Keskeisiä periaatteita ja strategioita

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

Laadunvarmistustekniikoita. Ohjelmistotuotanto. Testaus termejä. Testaus periaatteita. Testaus havaintoja. Testaus havaintoja

Uudelleenkäytön jako kahteen

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

Suunnitteluvaihe prosessissa

Tietojärjestelmän osat

Ohjelmistotestauksen perusteet. versio 1.0

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

3. Testaus osana ohjelmistoprosessia

Sähköinen äänestämisen testaus

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaihe 3. Antti Jääskeläinen Matti Vuori

TESTAUSMENETELMIEN KÄYTTÖ SOVELLUKSEN SYSTEEMITESTAUSVAIHEESSA

Ohjelmistojen suunnittelu

Hirviö Laadunvarmistussuunnitelma

Good Minton QA Raportti Iteraatio 1 Sulkapalloliiton Kilpailujärjestelmä

ONKI-projekti JUHTA KANSALLISKIRJASTO - Kirjastoverkkopalvelut

Ohjelmien testaustyökalut

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

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

Testaussuunnitelma. Ohjelmistotuotantoprojekti XPerf. Helsingin yliopisto. Tietojenkäsittelytieteen laitos

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Dynamo-Sovellusprojekti. Testausraportti. Tero Hätinen Joni Purojärvi Antti Pyykkönen

Työkalut ohjelmistokehityksen tukena

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

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

Ylläpitodokumentti Mooan

COTOOL dokumentaatio Testausdokumentit

Ohjelmistotekniikka - Luento 2

Transkriptio:

Ohjelmiston testaus ja laatu Testaustasot

Testauksen vaihejako Tarpeet / sopimus Järjestelmätestaus Hyväksymiskoe Määrittely testauksen suunnittelu ja tulosten verifiointi Arkkitehtuurisuunnittelu Moduulisuunnittelu Moduulitestaus Integrointitestaus Ohjelmointi -Moduulitestauksen paljastamat virheet ovat ohjelmointivirheitä -Integrointitestauksessa esiin tulevat virheet johtuvat suunnitteluvirheistä -Järjestelmätestaus vaiheessa paljastuvat virheet, voivat pahimmassa tapauksessa johtaa koko prosessin alkuun eli virheellisesti suoritettuun määrittelyvaiheeseen

Moduulitestaus moduulitestaus = komponentti testaus = yksikkötesti Ohjelmistokomponentti on 100-1000 koodirivistä koostuva ohjelman erillinen osa, esim. matemaattinen funktio. Testaajalla on oltava käytössään ohjelman lähdekoodi ja kyseisen komponentin määrittelyt Testauksen tarkoitus on verrata komponentin toimintaa komponentin toiminnallisiin määrittelyihin ja komponentin rajapintojen spesifikaatioihin Ohjelmakoodin läpikäynti ja testaus tapahtuu pääsääntöisesti white box menetelmällä (white-box ei ole muissa tasoissa järkevä ) Useimmissa tapauksissa testattavan yksikön oikea ympäristö ohjelmistossa ei vielä ole valmis. Komponenttiin liittyvät muut komponentit eivät vielä ole valmiita liitettäväksi testattavaan komponenttiin tai niiden toiminta on vielä testaamatta. Tällöin joudutaan luomaan komponenttitestausta varten komponentille sen varsinaista ympäristöä simuloiva testiympäristö eli testipeti Testiympäristö koostuu ohjelmakomponentin ympäristöä jäljittelevistä testiajureista, jotka kutsuvat komponentin funktioita tai metodeja ja mahdollistavat saatavien tulosteiden tarkastelun. Testipetiin on usein lisättävä myös tarvittavat testityngät, jotka korvaavat testauksen aikana komponenttiin liitettävät muut komponentit, syöttölaitteet ja testattavan komponentin kanssa yhdessä toimivat komponentit.

Integraatiotestaus - 1 Integrointitestaus on harvoin helposti erotettavissa komponenttitestauksesta black-box orientoitunut testi Pääpainopisteenä integrointitestausvaiheessa on yksittäisen komponentin ja siihen liittyvien komponenttien väliset rajapinnat. Komponentin sisäinen toiminta tulisi varmentaa jo yksikkötestausvaiheessa Testiajurit korvaavat komponenttihierarkiassa komponenttien yläpuolelle sijoittuvat eli komponenttia kutsuvat tai käyttävät ohjelmistokomponentit. Testityngät ovat komponentteja, jotka korvaavat testattavien komponenttien kutsumia komponentteja. Ohjelmistokomponenttien integrointi voidaan toteuttaa kokoavalla- (bottom up), jäsentävällä- (top down), big bang lähestymistavalla, horisontaalisella integroinnilla, sandwich integroinnilla tai toimialakomponenttien integroinnilla.

Integraatiotestaus - 2 Kokoava lähestymistapa komponentteja A, B, C, D, E, F 1. komponentit, jotka eivät ole riippuvaisia muista eli E, C ja F. Testaus tarvitsee testiajureita testiajuri-b, testiajuri-a ja testiajuri-d 2. komponentit, jotka käyttävät edellä testattuja eli B ja D. A:ta ei voi testata, sillä ensin tulee testata B ja D. Testiajureina testiajuri-a 3. komponentti A tarvittiin testiajureita 5 kpl A B C D E F

Integraatiotestaus - 3 Jäsentävä lähestymistapa 1. testataan ylin tai toiminnoltaan keskeisin eli A. Tarvitaan testityngät B, C ja D 2. testataan jokin tilanteesta riippuen B, C tai D. Esimerkissä testataan D eli silloin luodaan testitynkä F 3. testataan B ja luodaan testitynkä E 4. testataan E ja F eli korvataan testityngät aidoilla komponenteilla 5. testataan C (muutetaan testitynkä aidoksi) mahdollistaa projektin etenemisen mukaisen testaamisen ilman että kaikki komponentit ovat vielä valmiita A B C D E F

Integraatiotestaus - 4 Big-bang kaikki komponentit ja osajärjestelmät kasataan yhteen kerralla menetelmä on harvoin käyttökelpoinen vaatii huomattavasti enemmän töitä yksikkötestaus vaiheessa Kaikille komponenteille, joita pidetään eristyksissä ennen niiden integrointia, täytyy toteuttaa oma testausympäristö (luodaan tarvittavat testityngät ja testiajurit, varmistamaan kunkin komponentin täydellinen toimivuus erillään osajärjestelmästä) Esimerkeissä kaikille komponenteille omat testiympäristöt, yhteensä viisi testiajuria ja viisi testitynkää, ennen kuin ohjelman osien integrointi voidaan suorittaa. A B C D E F

Integraatiotestaus - 5 sandwich-integrointi kokoavan ja jäsentävän tavan yhdistelmä lähdetään integroimaan yhtä aikaa molemmista päistä horisontaalinen integrointi käytetään, kun liitetään kokonaisia ohjelmia yhteen tai ohjelmat liittyvät toisiinsa tietokannan avulla (liitetään jokainen sovellus toimimaan kannan kanssa sitä mukaa kuin ne ovat testattavissa, lopussa kaikki sovellukset käyttävät kantaa sille ominaisella tavalla)

Integraatiotestaus - 6 Toimialakohtainen integrointi olio-ohjelmoinnissa suositellaan kokoavaa lähestymistapaa toimialakohtainen periaatteeltaan sama kuin kokoava integrointijärjestystä määriteltäessä kiinnitetään huomiota komponenttien väliseen liikenteeseen, niiden toisilleen välittämien kutsujen määrään. menetelmällä pyritään löytämään virhetilanteet ja ristiriitaisuudet komponenttien rajapinnoissa mahdollisimman aikaisessa vaiheessa, kompleksisuus mahdollisimman pieni 1. valitaan joukko komponentteja, joilla on suurin määrä kutsuja keskenään eli komponenteista muodostuvan alijoukon sisällä, mutta pienin määrä kutsuja ulos omasta alijoukostaan. 2. jäljelle jäävistä eli keskenään integroitujen komponenttien muodostaman alijoukon ulkopuolelle jäävistä komponenteista valitaan seuraavaksi aiemmin integroidun alijoukon kanssa integroitavaksi komponentti tai joukko komponentteja. valintaperusteena seuraavaksi integroitavalla komponentilla on, että sillä tulee olla kaikkein suurin määrä kutsuja jo aiemmin integroidun joukon kanssa. Vaihetta 2 toistetaan niin kauan kuin kaikki järjestelmään kuuluvat komponentit ovat tulleet integroiduiksi ja toiminta testatuksi A B C D E F

Järjestelmätestaus - 1 Järjestelmätestauksessa (systeemitestaus) altistetaan valmistunut järjestelmä testattavaksi kokonaisuudessaan ennen kuin se toimitetaan asiakkaalle. Järjestelmätestauksen päätavoite on tutkia täyttääkö valmis systeemi sille määrittelyssä asetetut vaatimukset. Toisena tavoitteena voidaan taas pitää, että kyetään löytämään ja korjaamaan mahdollisimman paljon ristiriitoja valmistuneen systeemin ja sen määrittelyn väliltä. Systeemitestauksessa testataan koko ohjelmaa ja sen koko ympäristöä systeemitestaus toteutetaan täsmälleen samankaltaisessa tai samassa ympäristössä, jossa valmista ohjelmaa tullaan todellisuudessa käyttämään.

Järjestelmätestaus - 2 Järjestelmätestauksen kysymyksiä Tekeekö ohjelmisto sen mitä sen pitää tehdä? (ohjelman toiminnallisuus) Onko ohjelma helppokäyttöinen ja vikasietoinen? (käyttöliittymä) Vastaavatko opasteet ja Help -tiedostot ohjelmaa? (opasteet) Vastaavatko laaditut manuaalit ohjelmaa? (dokumentaatio) Toimiiko järjestelmä kuormitettuna? (kuormitus) Täyttääkö ohjelmiston toiminta sille asetetut suorituskyky-vaatimukset? (suorituskyky) Onnistuuko lopettaminen virhetilanteissa? (lopetus virhetilanteissa) Toimiiko järjestelmä suurilla syötteillä, jne? (suuret määrät dataa) Toimiiko käyttäjän tunnistus ja tietoturvallisuus? (turvallisuus) Toimiiko ohjelmisto oikeassa ympäristössään? (liitettävyys) Pysyykö ohjelma pystyssä vaadittuja aikoja? (luotettavuus) Sietääkö ohjelma virhetilanteita eli varmistustoimintojen toimivuus? (toipumiskyky) Onnistuuko asennus asennusohjeiden mukaan? (asennettavuus)

Hyväksymiskoe kyseessä ei ole testi virheitä ei saisi olla enää tässä vaiheessa hyväksymiskokeen tekee asiakas hyväksymiskokeen jälkeen asiakas saa sovelluksen käyttöönsä ja toimittajalle jää takuuajan mukainen korjausvelvoite

Testaustyökaluja käsitestaus (vähän) automatisoitu testaus (mahd. paljon) staattinen virheenjäljitys ilman ohjelman ajoa kääntäjä (varoitukset, virheet) dynaaminen virheenjäljitys ohjelman ajon avulla debuggeri, keskeytyskohdat, muuttujien seurannat, koodissa eteneminen automatisoitu testaus testauksen suoritus- ja vertailutyökalut periaatteeltaan testityökalut ovat yksinkertaisesti ohjelmia, jotka suorittavat testin käyttämällä testattavaa sovellusta - simuloivat tavallista testaajaa ja testaajan testattavalle sovellukselle manuaalisesti suorittamia toimintoja työkaluna esim. WinRunner (http://www.mercury.com/) käyttöohjeita mm. osoitteesta http://www.cs.uku.fi/research/teho/graduvirkanen.pdf sivut 52-76