Ohjelmiston testaus ja laatu Testausmenetelmiä
Testausmenetelmiä - 1 Testauksen menetelmien päälähestymistapoina ovat black-box testi testaaja ei voi tutkia lähdekoodia testaus perustuu sovellukselle suunnitteluvaiheessa tehtyihin määrityksiin ja laadittuihin ohjeisiin Menetelmän käyttö edellyttää ohjelman suunnittelussa tehdyiltä määrittelyiltä täsmällisyyttä ja oikeaa toteutusta. testattavalle sovellukselle annetaan haluttu syöte, jonka jälkeen sovelluksen toimintaa tutkitaan sen tuottaman tulosteen perusteella. testaus käyttöliittymän kautta testaajana ei mielellään tekijä tai sovelluksen tuntija, vaan täysin ulkopuolinen henkilö testitapaukset todennäköisesti paljastavampia Toimintopolut, kaikkien toimintopolkujen täydellinen läpikäynti
Testausmenetelmiä - 2 Syötteet - muuttujat numeeriselle muuttajalle sijoitettavat arvot (jos lukualueen ylittävät tai alittavat arvot mahdollisia): liian pieni arvo minimi arvo 1 minimi arvo minimi arvo + 1 jokin arvo väliltä minimi maksimi maksimi 1 maksimi maksimi +1 liian suuri arvo bittikombinaatio: kaikkia bitit nollia jokainen bitti vuorollaan yksi jokainen bitti vuorollaan nolla kaikki bitit ykkösiä merkkijono: merkkijonon pituus: nolla (tyhjä merkkijono) merkkijonon pituus: yksi merkkijono pituus: maksimi merkkijonon pituus: ylittää maksimin normaalimittainen merkkijono numeroiden, kirjaimien ja erikoismerkkien yhdistelmät merkkijonossa
Testausmenetelmiä - 3 Päivitys - tiedostot tyhjän tiedoston päivitys tietokannat tietueen lisäys (alkuun, loppuun, keskelle) tietueen poisto (alkuun, loppuun, keskelle) duplikaatit olemattoman tietueen poisto eri tapahtumat tietueelle ja niiden yhdistelmät (lisäys, muutos, poisto, palautus) Käsittely laskentatarkkuus erikoistilanteet (vuoden vaihde, vuosituhannen vaihde, lukujen etumerkin muuttuminen) Tulostus eri tulostusmuodot otsikointi, tunnisteet, sivunumerot erikoistilanteet (vuoden vaihde, vuosituhannen vaihde, lukujen etumerkin muuttuminen)
Testausmenetelmiä - 4 Black-box testitapausten luonnissa eri menetelmiä aluetestaus = testaus kaikilla syöteavaruuden alueen arvoilla ekvivalenttiositus = syöte tai tulostearvoille jaetaan eri alueita. Alueilla tulisi tulla sama vastaus. Testaus jokaisen alueen esimerkillä raja-arvoanalyysi = testitapaukset ekvivalenttiosituksen luokkien rajoista tai syötteen luonteen mukaisista rajatapauksista, esim. positiivinen kokonaisluku mille arvoalueelle nolla kuuluu virheen arvaus = testitapaukset laaditaan niistä tapauksista, joissa epäillään syntyvän virheitä
Testausmenetelmiä - 5 ekvivalenttiositus 1. jaetaan luokkiin (kelvollisia ja epäkelvollisia arvoja) 2. valitaan luokan sisältä mikä tahansa arvo huomioi testitapauksissa ja testauksessa, että useita asioita sisältävän testitapauksen jokainen kohta tulee testattu ja todettua, esim. tyttö 9 vuotta (sukupuoli ja ikä testipareina) alle alarajan alaikäinen täysi-ikäinen eläkeläinen yli ylärajan 0 18 64 150 ikä -5 9 41 75 195 t e s t i t a p a u k s e t
Testausmenetelmiä - 6 raja-arvoanalyysi 1. tehdään luokat 2. valitaan testitapaukset luokkien reunalta = raja-alueelta huomioi tässäkin menetelmässä testitapausten kombinaatioiden vaikutus alle alarajan alaikäinen täysi-ikäinen eläkeläinen yli ylärajan 0 18 64 150 ikä -1 0 1 16 17 18 63 64 65 149 150 151 t e s t i t a p a u k s e t
Testausmenetelmiä - 7 virheenarvaus testitapauksina mahdolliset virheet tai virheherkät tilanteet esimerkkejä tyhjät merkkijonot, väärät merkit (desimaalipilkku onkin piste), kenttien tiedot samoja / eri arvoja, tietoa liian vähän / paljon, syötteiden puuttuminen, rajoitinvirheet (esim. kenttärajoittimet), syntaksivirheet syötteessä/tulosteessa, kentän arvon riippuvuus jostain toisesta kentästä, sovelluksen tilariippuvuudet, JNE.
Testausmenetelmiä - 8 white-box (l. glass-box l clear box l. structural) testi testi perustuu lähdekoodin ja toiminnallisen määrittelyn olemassaoloon testitapaukset suunnitellaan lähdekoodin toiminnallisuuden perusteella testaajalla tietoa järjestelmän sisäisestä rakenteesta pyrkimys mahdollisimman kattaviin testituloksiin mahdollisimman täydelliseen lausekattavuuteen = testitapauksien tulisi käydä jokainen järjestelmän sisäisen rakenteen haara läpi Cs = Se / St * 100% missä Cs on lausekattavuus prosentteina, Se on suorittujen lauseiden määrä testitapauksessa, St on suoritettavien lauseiden kokonaismäärä testauskohteita ovat ohjelman ohjausrakenteet ja niiden kombinaatiot Lauseet, lausekattavuus: kaikki lauseet suoritettava vähintään kerran Silmukat, jokaiselle silmukalle suoritetaan testi, jossa toisto suoritetaan: nolla kertaa yhden kerran maksimiarvo kertaa jokin arvo väliltä 0 maksimi kertaa Suorituspolut, kaikki suorituspolut tulee suorittaa kerran
Testausmenetelmiä - 9 Muuttujat, numeeriselle muuttajalle sijoitettavat arvot (jos lukualueen ylittävät tai alittavat arvot mahdollisia): liian pieni arvo minimi arvo 1 minimi arvo minimi arvo + 1 jokin arvo väliltä minimi maksimi maksimi 1 maksimi maksimi +1 liian suuri arvo Bittikombinaatio kaikkia bitit nollia jokainen bitti vuorollaan yksi jokainen bitti vuorollaan nolla kaikki bitit ykkösiä Merkkijono merkkijonon pituus: nolla (tyhjä merkkijono) merkkijonon pituus: yksi merkkijono pituus: maksimi merkkijonon pituus: ylittää maksimin normaalimittainen merkkijono numeroiden, kirjaimien ja erikoismerkkien yhdistelmät merkkijonossa Parametrit, suoritetaan samat testit kuin muuttujille Taulukot, ylivuototilanteet esiintyvät vähintään kerran
Testausmenetelmiä - 10 if ( (A>B) and (X=1) ) then.. white box ja testauksen kattavuuskriteerit lausekattavuus testitapaus siten, että lauseen päätös on joko true tai false päätöskattavuus testitapaus siten, että päätös saa molemmat arvot true ja false ehtokattavuus testitapaukset siten, että kaikki ehdot saavat molemmat arvot päätös-ehtokattavuus testitapaukset siten, että sekä päätös että kaikki ehdot saavat molemmat arvot monikattavuus testitapaukset siten, että käydään kaikki ehtojen kombinaatiot testaamassa
Testausmenetelmiä - 11 grey-box testi (gray-box am.) yhdistelmä white box ja black box testeistä testitapaukset luodaan ohjelmakoodi ja toiminnallisuus tuntien toiminnallisesti orientoitunut, hyödyntää koodia ja toteutusratkaisujen tuntemusta varmentaa, paikkaa, täydentää edellisiä testejä hyviä testitapauksia ovat esim: rakenteelliset raja-arvot alivuoto ylivuoto nollalla jaot pyöristykset alku, loppu (esim. kuukausi) jne
Testausmenetelmiä - 12 testitapausten suunnittelustrategia 1. aloita raja-arvoanalyysillä (syötteet ja tulosteet) 2. jatka tarvittaessa ekvivalenssiosituksella 3. jatka tarvittaessa virheenarvauksella 4. täydennä tarvittaessa white-boxilla 5. täydennä tarvittaessa grey-boxilla 6. hyödynnä testitapauksissa omaa järkeä