Upload
beau
View
47
Download
5
Embed Size (px)
DESCRIPTION
TESTAUS. ”Paras mahdollinen työ.” ”Kaikista hankalin tapa kuluttaa työpäivääsi.” Ed Kit, Software Testing in the Real World Tavoitteena löytää mahdollisimman paljon virheitä Myers: Testaus on prosessi, jossa ohjelmaa suoritetaan ja yritetään löytää siitä virheitä - PowerPoint PPT Presentation
Citation preview
15. Testaus
TESTAUS
”Paras mahdollinen työ.” ”Kaikista hankalin tapa kuluttaa työpäivääsi.”
Ed Kit, Software Testing in the Real World Tavoitteena löytää mahdollisimman paljon virheitä Myers:
Testaus on prosessi, jossa ohjelmaa suoritetaan ja yritetään löytää siitä virheitä
Hyvä testausmenetelmä on sellainen, joka suurella todennäköisyydellä paljastaa ohjelmasta uuden virheen
Onnistunut testi on sellainen, joka paljastaa uuden virheen.
15. Testaus
Miksi? Miksi ei?
tiukka ohjelmistotuotannon aikataulu kiritään testauksen kustannuksella
tuotteen menestymismahdollisuudet aikainen aloittaminen
monimutkaistuu koko ajan korjausten aiheuttamat muutokset kasvaa työllistävyys testien uusiminen projektiryhmä koolla
15. Testaus
Virheiden eliminointi
suunnitelmallinen virheiden etsiminen testauksen määrä testauksen tehokkuus testin onnistuminen
saatu tulos on oikein (= oletettu tulos) ”sisäinen tila” , muuttujien, rekisterien yms. arvot ovat muuttuneet
oikein testauksen avulla voidaan osoittaa ohjelman virheet, mutta ei
virheettömyyttä
15. Testaus
Virheet, viat, häiriöt
testauksen yhteydessä virhe (error, bug) poikkeama spesifikaatiosta (toiminnallinen määrittely, tekninen
määrittely) virhe ohjelmassa voi aiheuttaa vian (fault)
voi korjautua itsestään jonkin toisen toiminnon seurauksena tai vika voi kumoutua
pahimmassa tapauksessa vika voi aiheuttaa häiriön (failure) näkyy ulkoisessa toiminnassa
15. Testaus
Testauksen periaatteita
testit tulisi johtaa asiakaan vaatimuksista testaus pitää suunnitella ennen aloittamista 80% virheistä löytyy 20%:sta komponenteista aloitetaan osista ja jatketaan kokonaisuuksiin täysin kattavaa testausta ei voi toteuttaa ulkopuolinen löytää parhaiten virheet
15. Testaus
Testattavuus Suoritettavuus (operability)
pystytään suorittamaan Havainnoitavuus (observability)
testauksen tulokset ovat havainnoitavissa Osittaminen (decomposability)
testaus voidaan kohdentaa johonkin komponettiin Yksinkertaisuus (simplicity)
toiminnot, rakenne ja koodi yksinkertaista Vakaus (stability)
testaus ei vaadi muutoksia Ymmärrettävyys (understandability)
selkeä ja dokumentoitu suunnittelu
15. Testaus
Testausprosessi
suunnitellaan testiaineisto suoritetaan testi verrataan tuloksia odotettuihin tuloksiin jos saatiin virheellisiä tuloksia, niin
jäljitetään virhe ohjelmistosta korjataan virhe toistetaan testi samalla aineistolla
15. Testaus
Testauksen lähestymistavat
Sisäinen testaus, lasilaatikkotestaus (White Box Testing, Class Box Testing) testataan ohjelmamoduulien sisäinen toiminta tämä testaus liittyy vahvasti toteutusvaiheeseen sisäinen testaus suunnitellaan suunnitteluvaiheessa
Ulkoinen testaus, toimintatestaus (Black Box Testing) testataan ohjelman toiminta suhteessa määrityksiin ulkoinen testaus suunnitellaan määrittely (analyysi)
vaiheessa
15. Testaus
Testausstrategiat yhdistää erilaiset testaustekniikat hyvin suunnitelluiksi vaiheiksi testaus on joukko toimintoja, jotka voidaan suunnitella etukäteen ja
suorittaa systemaattisesti yleistä testausstrategiasta:
Testaus alkaa yksikkötasolla, ja laajenee sen kautta koko systeemin integrointiin.
Erilaiset testaustekniikat ovat sopivia eri aikoina. Testauksen suorittaa järjestelmän kehittäjä, suuremmissa ohjelmistoissa
erillinen testiryhmä. Testaus ja virheenjäljitys ovat eri toimintoja, mutta virheenjäljitys täytyy
mukauttaa jokaiseen testausstrategiaan. tarvittavan testauksen määrää vaikea arvioida tuotekehitystyössä testauksen lopettaminen:
kompromissi tuotteessa olevien vikojen aiheuttamien kustannusten ja markkinoilta myöhästymisen aiheuttaman tuoton menetyksen välillä
lopettamiselle hyväksymiskriteerit, jotka määritellään testaussuunnitelmassa
15. Testaus
validointi-testaus
Testaustasot
ohjelmointi
järjestelmä-testaus
+
integrointi-testaus
yksikkö-testaus
vaatimus-määrittely ja määrittely
arkkitehtuuri-suunnittelu
moduuli-suunnittelu
testauksen suunnittelu
ja tulosten verifiointi
15. Testaus
Yksikkötestaus liitetään yleensä koodausvaiheeseen
lähdekoodi on kirjoitettu ja käännetty, yksikkötestaus voi alkaa jokainen yksittäinen moduuli käydään läpi vähintään kerran
pitää olla tiedossa odotetut tulokset, eli tieto siitä miten ohjelman pitäisi toimia.
jos moduulit (funktiot, aliohjelmat, oliot) eivät ole itsenäisesti toimia ohjelmia, täytyy yksikkötestaukseen kehittää ohjausohjelmia ja/tai aliohjelmien runkoja (tynkäohjelmia, stubeja) ohjausohjelma ns. pääohjelma, joka antaa testattavalle moduulille
kutsun ja syöttöarvot, sekä myös usein tulostaa lopputuloksia ja moduulin palautusarvoja
kattavuusperiaatteita yms. osoitteesta: http://cs.joensuu.fi/pages/saja/tSoft/testaus.htm
Yksikkötesti tehdään yleensä lasilaatikkoperiaatteella, jolloin testaaja voi myös tarkastaa ohjelmakoodin.
15. Testaus
MUISTA! Virheiden arvaaminen: oman kokemuksen perusteella testaaja
voi arvata, mitkä seikat ovat vaikeita ja joissa siten arvattavasti esiintyy virheitä.
Testatessasi muista: toimi väärin (eli käyttöohjeen vastaisesti) käytä vääriä yhdistelmiä älä tee tarpeeksi älä tee mitään tee liikaa mutta älä unohda normaalitapauksiakaan!
Lisäksi määritysmuutosten jälkeen on aina (suoritettava taantumatesti ja) testattava muuttuneet kohdat (esim. kun kenttä on aiemmin ollut pakollinen vaan ei ole enää jne.)
15. Testaus
Integrointitestaus yksikkötestauksen jälkeen moduulit täytyy saada toimimaan yhdessä vaikka moduulit toimisivatkin moitteettomasti itsenäisessä tilassa,
yhteistoiminnassa saattaa esiintyä ongelmia tietoa saattaa hukkua, moduuleilla saattaa olla
ennustamattomia vaikutuksia toisiinsa moduulien välisten rajapintojen toimivuuden tutkimisessa integraatio, jossa kaikki moduulit yhdistetään kerralla testaus
kaaos (big bang -menetelmä) virheitä havaitaan, mutta korjaaminen hankalaa yhden virheen korjaaminen aiheuttaa joukon muita
virheitä suositeltavampaa koostaa ohjelma pienistä osista ja testata jokainen
osa kerralla – joko osittaen tai koostaen
15. Testaus
Validointitestaus (Hyväksymistestaus)
onko ohjelmisto asiakkaan vaatimusten mukainen kriteereinä vaatimusmäärittely
tehdään suorittamalla ulkoinen testaus tarkoituksena osoittaa järjestelmän toimivuus ja vastaavuus
asetettuihin vaatimuksiin nähden vaatimuksiin kuuluu mm. funktionaalinen toimivuus,
dokumentoinnin kattavuus, siirrettävyys ja ylläpidettävyys mikäli tuote ei vastaa vaatimuksia, tehdään luettelo, josta ilmenee mitä
on korjattava kehittäjän on mahdotonta ennustaa miten käyttäjät todellisuudessa
reagoivat ohjelmistoon sitoutuvat sen käyttöön
alfa- ja beetatestaus ohjelmistolla useita (kymmeniä) käyttäjiä
15. Testaus
Järjestelmätestaus
joukko erilaisia testejä virheistä toipumisen selvittämiseen
kyettävä selviytymään virhetilanteista tietyssä ajassa järjestelmän täytyy sietää tietty määrä virhetilanteita
virhe yhdessä prosessissa ei saa kaataa koko järjestelmää Toipumistestauksessa (recovery testing)
aiheutetaan tiettyjä virhetilanteita ja katsotaan käyttäytyykö järjestelmä vaaditulla tavalla
jos systeemin toipumismekanismi on automaattinen, tarkastetaan uudelleen käynnistys, tarkastuspiste mekanismi ja tiedon suojaus
jos selviytyminen vaatii ihmisen toimintaa, lasketaan onko keskimääräinen selviytymisaika sopivissa rajoissa.
15. Testaus
Järjestelmätestaus Turvallisuustestaus (security testing)
käsittelevät luottamuksellista tietoa taloudellisia tai haitaksi yrityksen luotettavuudelle
tunkeutumista ulkopuolelta osa sisäpuolelta päätavoite tehdä tunkeutuminen niin vaikeaksi, että onnistumisen hyödyt ovat
pieniä verrattuna kulutettuun aikaan ja vaivaan. Kestävyystestaus (stress testing)
epätavallisia tilanteita voidaan mitata antamalla epätavallisia syötteitä
Esim. testissä voidaan aiheuttaa kymmenen keskeytystä, kun keskimääräinen määrä on yksi tai kaksi
tiedon syöttönopeuksia voidaan kasvattaa muistinhallintaa yritetään järkyttää syöttämällä maksimimuistia vaativaa aineistoa.
Suorituskykytestaus (performance testing) reaaliaika- tai upotettuihin järjestelmiin tehdään jokaisessa testauksen vaiheessa
koko järjestelmä valmis, voidaan sen todellinen suorituskyky mitata liitetty osaksi kestävyystestiä
15. Testaus
Dokumentaatio ISO 9000-3 standardin mukaan testaussuunnitelma ja raportit
tulisi kirjoittaa sekä integrointi- että järjestelmätestauksesta yksikkötestauksen testaussuunnitelman korvaa laatukäsikirjan
ohjeistus; käytänteet; testitulokset silti raportoitava! pienissä projekteissa riittänee yksi testaussuunnitelma, joka
kattaa kaikki testauksen vaiheet testaussuunnitelmat voidaan sisällyttää myös
projektisuunnitelmaan (yleiskuvaus), toiminnalliseen määrittelyyn (järjestelmätestaus) ja tekniseen määrittelyyn (integrointi- ja yksikkötestaus).
15. Testaus
Testaussuunnitelman sisältö mitä testejä tehdään ja milloin miten ne järjestetään ja millaisia lopputuloksia odotetaan tärkeää määritellä lopettamiskriteerit yhdistetyn integrointi- ja järjestelmätestauksen sisältö voisi olla:
Johdanto Testauksen kohde ja tavoitteet Testausympäristö Testauksen organisointi ja raportointi Testausstrategia ja integrointisuunnitelma Testattavat toiminnot Toimintojen testitapaukset, hyväksymiskriteerit Ei-toiminnallisten ominaisuuksien testaus Erikoistilanteet Ominaisuudet, joita ei testata
15. Testaus
Testauksen raportointi virheet tulisi raportoida ja analysoida
mm. virheen kuvaus, miten vakavasta virheestä on kysymys, milloin se löydettiin, miten se olisi voitu löytää aikaisemmin, milloin virhe oli tehty ja miten se olisi voitu estää
asiakkaalta tulevia virheilmoituksia varten käytetään yleensä erityistä lomaketta
virheiden raportoinnissa voidaan käyttää esimerkiksi virhepäiväkirjaa
testauspäiväkirja
15. Testaus
Esimerkki testaussuunnitelmasta
http://www.cs.helsinki.fi/group/lohtu/dokumentit/Testaussuunnitelma.doc
Harjoitustyössä keskittykää järjestelmätestauksen suunnitteluun
testataan järjestelmän toimintaa ( = käyttötapaukset, niiden kuvaukset ja näytöt)
käyttötapauksittain ( = toiminnoittain) testattava kohde (tyhjät tiedot, olemassa olevat tiedot, …) millaisin testitapauksin voi toimintaa todentaa mitä odotetaan kustakin testitapauksesta tulokseksi
laatikaa testiaineisto vähintään kahdelle käyttötapaukselle (=toiminnolle, käyttöliittymälle)