CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2015



Samankaltaiset tiedostot
Ohjelmiston testaus ja laatu. Testaustasot

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

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

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

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

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

Convergence of messaging

Testaus elinkaaressa. Testaustasot ja vaiheet

Testaaminen ohjelmiston kehitysprosessin aikana

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

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

T Testiraportti - järjestelmätestaus

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2016

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmistotuotantoprojekti

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Testaussuunnitelma Labra

T Testiraportti - integraatiotestaus

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

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

Hirviö Laadunvarmistussuunnitelma

Kontrollipolkujen määrä

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

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

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

Ohjelmistotuotanto s

Laadunvarmistustekniikat

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

Ohjelmiston testaussuunnitelma

UCOT-Sovellusprojekti. Testausraportti

Hirviö Laadunvarmistussuunnitelma

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

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

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

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

58160 Ohjelmoinnin harjoitustyö

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

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

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

Automaattinen yksikkötestaus

Testaus elinkaaressa

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

T Testiraportti - integraatiotestaus

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

Harjoitustyön testaus. Juha Taina

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

Testaus osana ohjelmistojen elinkaarta I

KEYAQUA-VERKKOTIETOJÄRJESTELMÄN TESTAUS

7. Verifiointi ja validointi

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

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

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

Ohjelmistotestauksen perusteet. versio 1.0

PETTERI PALOMÄKI TESTAUS OHJELMISTOTUOTANNON OSANA Diplomityö

3. Testaus osana ohjelmistoprosessia

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

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

Ohjelmistojen virheistä

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

Versio Päiväys Tekijä Kuvaus Tikkanen varsinainen versio

Testaussuunnitelma. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie

Liite 1: ServiceMix skenaariot ja PoC tulokset 1. Palvelun kehittäjän näkökulma

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

Testaussuunnitelma. Oppimistavoitteiden hallintajärjestelmä harri

10. Tarkastukset. Tarkastusten rakenne

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

Sisältö. Integrointitestaus. Yleinen teoreettinen pohja. Integrointitestaus prosessina. Skooppi, focus ja locus

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

L models. Testisuunnitelma. Ryhmä Rajoitteiset

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

Laadunvarmistusdokumentti

Dynaaminen analyysi I

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

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta

HYVÄKSYMISTESTAUS- RAPORTTI - HAKEUTUJAN PALVELUT JA TODENNETUN OSAAMISEN REKISTERI

Ohjelmiston testaus ja laatu. Testausmenetelmiä

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

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

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

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

TESTIRAPORTTI - XMLREADER LUOKKA Virtuaaliyhteisöjen muodostaminen Versio 1.0

Hyväksymistestauksen tarkistuslista järjestelmän hankkijalle

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

Ohjelmistojen testaus

3.5 Hyväksymistestaus

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

Testataanko huomenna?

@Tampereen Testauspäivät ( )

Ajatuksia ketterästä ohjelmistokehityksestä ja laadusta

2. Ohjelmistotuotantoprosessi

TESTIRAPORTTI - XMLREADER-LUOKKA Virtuaaliyhteisöjen muodostaminen Versio 1.0 (luonnos 2)

COTOOL dokumentaatio Testausdokumentit

Dynaaminen analyysi IV

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

Dynaaminen analyysi IV Luento 6 Antti-Pekka Tuovinen

Test-Driven Development

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

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Transkriptio:

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ä testauksessa on aina kolme tahoa: Testauksesta vastaava esimies (projektipäällikkö, testipäällikkö tjs.) Testaaja Kehittäjät Lisäksi testauksessa on aina kolme asiakokonaisuutta: Testaussuunnitelma (miten testataan) Testitapaukset (asiat joita pitää kokeilla) Testiraportti (yhteenveto siitä miten asiat sujui sekä siitä mitä tehtiin.)

TESTAUS HYVIN LYHYESTI 1. Testipäällikkö, kehittäjät ja testaajat luovat testaussuunnitelman ja ensimmäiset testitapaukset teknisten suunnitelmien pohjalta jotta työt päästään aloittamaan. 2. Kehittäjät toteuttavat järjestelmään komponentteja, sekä tekevät niiden yksikkötestauksen. 3. Testaajat ja kehittäjät suunnittelevat järjestelmään täydentäviä testitapauksia sen pohjalta miten tuote lähtee toteutumaan. 4. Testaajat kokeilevat komponentteja tehdyillä testitapauksilla, ja jos jokin ei toimi, kirjoittavat niistä ilmoituksen kehittäjille. 5. Kehittäjät ottavat saadut ilmoitukset työn alle ja korjaavat viat kriittisimmistä ja riskialttiimmista aloittaen. 6. Kehittäjät tuottavat samaan aikaan lisää uusia komponentteja. 7. Sitä mukaa kun komponentteja valmistuu, niitä liitetään projektiin samalla integrointitestausta tehden. Jos jokin ei toimi, siitä tehdään uusi testitapaus.

TESTAUS HYVIN LYHYESTI 8. Kun kaikki komponentit on tehty ja integroitu, siirrytään testaamaan järjestelmää kokonaisuutena. Jos vikoja löytyy, siitä tehdään testitapauksia jatkoa varten. 9. Kun kaikki merkittävät viat on korjattu, siirrytään hyväksymistestaukseen. 10. Jos hyväksymistestauksessa löytyy ongelmia, niistä tehdään testitapaukset ja ne korjataan. 11. Kun asiakas, hyväksyjä tai vastaanottaja on tyytyväinen järjestelmään, se on valmistunut. 12. Laaditaan loppuraportti; dokumentit, lähdekoodi ja muut osat talletetaan ylläpitoa, korjauksia sekä jatkoprojekteja varten. 13. Jos tuotteeseen tehdään päivityksiä, lisäyksiä tai korjauksia, tapahtuu samat asiat mutta pienemmässä mittakaavassa; alkuperäiset testitapaukset säilytetään osana regressiotestejä.

TESTAUKSEN V-MALLI

TESTAUSTASOT CT60A4150 Ohjelmistotestauksen perusteet

TESTAUKSEN TASOT Testauksen tasoiksi sanotaan normaalisti V- mallin mukaisia eri kokoluokan testausvaiheita. Yksikkötestaus(, Moduulitestaus, Komponenttitestaus ) Integrointitestaus Järjestelmätestaus Hyväksymistestaus Eri tasoilla testataan erilaisia asioita: perusrakenteita, yhdenmukaisuutta, osien yhdessä toimimista, järjestelmän toimintaa testialustalla, toimintaa oikeassa käyttöympäristössä.

MODUULITESTAUS moduulitestaus = komponenttitestaus = yksikkötestaus 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. Useimmissa tapauksissa testattavan yksikön oikea ympäristö ohjelmistossa ei vielä ole valmis. Myöskään komponenttiin liittyvät muut komponentit eivät välttämättä ole valmiita liitettäväksi testattavaan komponenttiin, tai niiden toiminta on vielä testaamatta. Testiympäristö (myös nimellä testipeti) koostuu ohjelmakomponentin ympäristöä jäljittelevistä testiajureista ja testityngistä, jotka kutsuvat komponentin funktioita, palauttavat komponentille arvoja ja mahdollistavat saatavien tulosteiden tarkastelun.

YKSIKKÖTESTAUS

YKSIKKÖTESTAUS, MODUULITESTAUS Yksikkötestaus on maailman tavallisin testauksen muoto. Käytännössä kaikki ohjelmisto testataan jossain vaiheessa yksikkötasolla kaikki organisaatiot tekevät yksikkötestausta. Yksikkötestauksessa keskitytään yhden moduulin tai komponentin tarkastamiseen ja kokeilemiseen. Monesti yksikkötestauksen tekee itse ohjelmoija, kehitys/muutostyön yhteydessä tai vähintäänkin heti työn valmistumisen jälkeen. Viimeistään silloin, kun uusi moduulin versio lisätään projektin kehitysversioon, tehdään yksikkötestaus.

YKSIKKÖTESTAUS (UNIT TESTING) Tavallisesti Musta Laatikko- tai Lasilaatikko-testausta johtuen siitä, että tällä tasolla yksityiskohtien määrä on vielä jollain tapaa rajallinen virheet havaittavissa yksityiskohdista. Testiajurit, -tyngät, mockupit (Mock objects, studs) korvaamassa oikeita komponentteja ja lähettelemässä sekä vastaanottamassa syötteitä.

YKSIKKÖTESTAAJAN MUISTILISTA Mitkä asiat pitäisi uudesta moduulista tarkastaa? Syötteiden tyypit, raja-arvot Erilaiset käyttäjän antamat syötteet Toiston ohjaus (off-by-one-virheet) Muistivuodot (kasvaako rakenteiden koot oikein toimenpiteiden myötä?) Valintarakenteiden testauksen koodikattavuus/haarakattavuus/päätöskattavuus sekä parametrilogiikka Vääränmuotoiset, väärässä järjestyksessä tulevat, välistä puuttuvat viestit (protokollassa) Muuttujien ja sisäisten metodien näkyvyys Koodin luettavuus, kommentit, ohjelmointikäytännöt (coding conventions) Erikoismerkkien käsittely, muut erikoistapaukset (mikäli aiheellista)

YKSIKKÖTESTAUS VS. AD-HOC-TESTAUS Ad-hoc-testaus, ad-hoc-testailu, tarkoittaa sitä, että vähän kokeiltiin, kyllä sitä jossain vaiheessa testattiin jne. Organisoimatonta toimintaa ja vähän kokeilemista kaikilla testauksen tasoilla. Ei siis mitään tekemistä varsinaisesti yksikkötestauksen kanssa.

INTEGROINTITESTAUS

INTEGROINTITESTAUS Yksikkötestauksen jälkeen, ja yleisesti ohjelmaa rakentaessa, yksiköt integroidaan isommiksi kokonaisuuksiksi. Integrointitestauksessa testataan yksiköiden rajapintoja ja niiden yhteistoimintaa. Kannattaa hyödyntää mahdollisuuksien mukaan testiautomaatiota kuten automatisoituja savutestejä.

INTEGROINTITESTAUS Integrointitestaus voidaan ajatellaan implisiittiseksi osaksi yksikkötestausta, varsinkin, jos ohjelmisto on kooltaan pienehkö, ja yksiköt integroidaan inkrementaalisesti. Lisätään yksi yksikkö kerrallaan testattavaan kokonaisuuteen Yleensä kehittäjät vastaavat tällöin yksikkötestauksen lisäksi suurelta osin myös integrointitestauksesta Integrointitestit suoritetaan yksikkötestien tapaan yleensä kehitysympäristössä Hyvässä ohjelmistoarkkitehtuurissa jokainen yksikkö hoitaa oman rajatun tehtävänsä mahdollisimman itsenäisesti Ylimääräiset riippuvuudet yksiköiden välillä hankaloittavat ylläpitoa, muutostöitä, optimointia ja muuta vastaavaa. Mahdollisia epäsuoria riippuvuuksia yksiköiden välillä: Yksikkö välittää dataa toiselle, joka paketoi datan kolmannelle. Yksiköt eivät tiedä toisistaan, mutta kolmas yksikkö käyttää niitä molempia. Koheesio (cohesion), liittymät (coupling), kapselointi (encapsulation) Olio-ohjelmoinnin perusajatukset!

INTEGROINTITESTAUS Kolme tapaa integroida: Kertarysäys, aka. Big Bang-integrointi Virrat päälle-savutesti Inkrementaaliset menetelmät Ylhäältä alaspäin (Top-down) Alhaalta ylöspäin (Bottom-up)

BIG BANG, KERTARYSÄYS-INTEGROINTI Ajatuksena yksikkötestata jokainen komponentti erikseen, ja laittaa kaikki kerralla kiinni toisiinsa. Voi toimia pienissä ohjelmissa, mutta Rajapinnat pitäisi testata yksikkövaiheessa, paljon työtä ja ylimääräisiä tynkiä. Vian oikea syy voi olla vaikea löytää koska ei tiedetä yksittäisten moduulien välisistä ongelmista tai toimivuudesta. Kun yksi asia korjataan, kaikki pitää testata uusiksi koska ei voida tietää mitä muuta voi olla korjauksen takia vialla.

BIG BANG, KERTARYSÄYS-INTEGROINTI Yksikkötestattu komponentti Testattava osa ohjelmasta

INKREMENTAALISET MALLIT Inkrementaaliset, eli lisäävät, mallit perustuvat ajatukseen jossa moduuleja lisätään yksi kerrallaan. Yksi kerrallaan lisätään osia tai palveluja, kunnes koko järjestelmä koottu. Ajatuksena se, että kun vikoja löytyy, on vian aiheuttajasta ja paikasta hyvä varmuus. Kokonaisuutta ajatellen kaikkea ei tarvitse aina testata kokonaan uudelleen.

YLHÄÄLTÄ ALAS, TOP-DOWN Ylhäältä alas-mallissa ajatus on että ensin testataan kontrolliyksikkö (käyttöliittymä, keskusmooduli jne.) joka ohjaa kaikkea muuta. Tuodaan taso tasolta lisää osia sen mukana, mitä osia testattava komponentti kutsuu. Aloittamalla keskusyksiköstä kokoajan toimiva ohjelma, josta vain puuttuu toiminnallisuuksia joita ei vielä ole saatu lisättyä mukaan. Käytännössä kuitenkin tynkien tekeminen voi olla kallista tai työlästä.

YLHÄÄLTÄ ALAS, TOP-DOWN Yksikkötestattu komponentti Testattava osa ohjelmasta Integroitava komponentti Tynkä, ajuri, simuloiva osa

ALHAALTA YLÖS, BOTTOM-UP Periaatteessa edellisen mallin vastakohta. Aloitetaan yksikkötestaus alimman tason moduuleista. Eli niistä jotka ovat lähimpänä rautaa tai jotka suorittavat toimintoja. Laskukirjastot, tietokantayhteydet, tietoverkkoyhteys, antureiden lukeminen jne Osia lisätään aina edellisen setin päälle, muodostaen osakokonaisuuksia jotka myöhemmin liitetään yhteen. Tarvitsee ajureita, eli ohjelmia, jotka simuloivat ylempien komponenttien toimintaa. Toimiva ohjelma vasta lopussa, mutta ei tarvetta erillisille tyngille. Toisaalta eri klusterit on helppo jakaa tiimien kesken testattavaksi

ALHAALTA YLÖS, BOTTOM-UP Yksikkötestattu komponentti Testattava osa ohjelmasta Integroitava komponentti Tynkä, ajuri, simuloiva osa

INTEGROINTITESTAUKSESTA Tietysti nämä ovat vain yleisiä malleja, esimerkiksi sandwich -malli joka alkaa molemmista päistä rikkoo esitettyä mallia. Samoin ylhäältä-alas-malli jossa asiat tehdään osakokonaisuus kerrallaan eikä tasoissa. Aina ei päästä vaikuttamaan siihen missä järjestyksessä osia valmistuu. Pessimisti: Integroidaan mitä voidaan-malli. Optimisti: Aloitetaan riskialttiimmasta osasta -malli Yksikkötestaukseen tarvitaan joka tapauksessa tynkiä ja ajureita ei välttämättä niin iso menoerä. Ylimääräisen työmäärän minimointi kuitenkin hyvä idea.

JÄRJESTELMÄTESTAUS

JÄRJESTELMÄTESTAUS Järjestelmätestaus on vaihe, joka alkaa kun kaikki osat on toteutettu, yksikkötestattu ja integroitu. Järjestelmätestauksessa tavoitteena on todentaa järjestelmän teoreettinen toimintavalmius. Kaikki toiminnot oikeasti olemassa, ei kuitenkaan välttämättä lopullisessa olomuodossaan. Alpha/Betatestaus-analogia peleistä; tämä on alphatestaus. Testaus tehdään testiympäristössä, oikeaa ympäristöä (kohtuullisella tarkkuudella) simuloiden. Oikeat sensorit, oikea palvelin, oikeasti tapahtuvat toiminnot Voi kuitenkin olla mm. generoitua dataa, simuloituja käyttäjiä Sisäinen hyväksymistestaus Lisäksi työvaihe, jossa tehdään mm. käytettävyystestausta, kuormitustestausta, hyökkäystestausta jne. Yhteensopivuus muiden järjestelmien ja osajärjestelmien kanssa.

HYVÄKSYMISTESTAUS Hyväksymistestaus

HYVÄKSYMISTESTAUS Testaus, tai oikeammin tarkastus, oikeassa käyttöympäristössä. Mielellään myös oikeilla käyttäjillä. Ja oikealla datalla. Ei enää oleteta merkittäviä muutoksia, tarkastetaan että kaikki toimii kuten oli tarkoitus ja osoitetaan että tuote on valmis. Tietysti löytyvät viat korjataan. Jatkokehitystarpeet omaksi uudeksi projektiksi, koska tässä vaiheessa muutokset on sietämättömän kalliita. Sisältää myös ei-teknisten osien tarkastukset: ohjekirjat, dokumentaatiot, koulutusmateriaalit, tukitoiminnot jne. Periaateessa viimeinen tarkastus sille, onko tuote valmis käyttöönotettavaksi (tai myyntiin laitettavaksi). Vrt. Beta-vaihe peleissä

TESTAUKSEN ERILAISIA OSA-ALUEITA Edellisissä kalvoissa mainittiin erilaisia testausmenetelmiä. Erilaisilla menetelmillä testataan järjestelmää erilaisten vikojen havaitsemista, tunnistamista ja poistamista varten. Testausmenetelmät ovat erilaisia tapoja testata asioita, kun tasot taas tarkoittavat testauksen kokoluokkaa. Samaa menetelmää voi käyttää eri tasoilla: esimerkiksi rasitustestin voi tehdä yhdelle moduulille, yhdelle osalle tai koko järjestelmälle. Näistä puhutaan ensi kerralla.

TESTAUKSEN PERIAATTEITA ISTQ-B:N MUKAAN Ja sitten lopuksi vielä jotain ihan muuta:

PERIAATE 1: TESTAUS OSOITTAA VIKOJEN OLEMASSAOLON Testauksen tehtävänä on näyttää että testatussa ohjelmistossa on vikoja, sekä pienentää todennäköisyyttä sille, että ohjelmasta löytyy edelleen vikoja. Se, että testaus ei löydä yhtäkään vikaa ei kuitenkaan takaa, että tuotteessa ei ole vikoja.

PERIAATE 2: TÄYDELLINEN TESTAUS ON MAHDOTONTA Kuten aiempi esimerkki osoitti, ei täydellinen testaus ole mahdollista kuin triviaaleissa tapauksissa. Kaikkialla muualla testauksen pitäisi perustua riskien kartoittamiseen sekä tehtävän testaustyön priorisointiin.

PERIAATE 3: AIKAINEN TESTAUS Testaus pitää aloittaa mahdollisimman aikaisin, jo esituotantovaiheessa. Testauksen tulee kattaa myös vaatimusmäärittelyt ja projektia varten tehdyt suunnitelmat.

PERIAATE 4: VIKOJEN KASAANTUMINEN Testauksen painopisteet tulisi sijoittaa niihin moduuleihin ja osiin, joissa tiedetään tai odotetaan olevan eniten vikoja. Tavallisesti viat kertyvät suhteutetusti pieneen osaan komponentteja, joten ne tulee tunnistaa ja niihin tulee keskittyä. 20% osista sisältää 80% vioista.

PERIAATE 5: HYÖNTEISMYRKKYPARADOKSI Jos testitapauksia ei missään vaiheessa uusita tai tarkasteta, päädytään tilanteeseen jossa ainoastaan kyseisten testien huomioimat virheet on poistettu järjestelmästä. Tämän vuoksi testitapauksia tulee päivittää, lisätä ja kehittää projektin edetessä.

PERIAATE 6: TESTAUS ON TILANNERIIPPUVAISTA Testausta tehdään eri tavoilla erilaisissa tilanteissa tai eri projekteissa. Tämän vuoksi testauksen hallinnointimallien tai prosessien pitää mahdollistaa riittävästi liikkumavaraa, jotta erilaiset tilanteet saadaan selvitettyä ilman että mallia joudutaan muuttamaan.

PERIAATE 7: VIRHEETTÖMYYDEN HARHALUULO Vikojen löytäminen ja korjaaminen ei auta, jos rakennettu järjestelmä on käyttökelvoton. Käytännössä tämä tarkoittaa sitä, että mikään testaaminen, laadunvalvontatyö tai virheiden korjaaminen ei auta jos tuote on suunniteltu väärin tai ei toteuta kaikkia niitä odotuksia, jotka tuotteelle on asetettu. You can t polish a turd.

MITÄ TÄSTÄ LUENNOSTA PITÄÄ MUISTAA? Testaustasot Yksikkötestaus Integrointitestaus Järjestelmätestaus Hyväksymistestaus Testauksen periaatteet