1 / 20

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ä

beau
Download Presentation

TESTAUS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. Testaustasot järjestelmä-testaus + vaatimus-määrittely ja määrittely validointi-testaus testauksen suunnittelu arkkitehtuuri- suunnittelu integrointi-testaus ja tulosten verifiointi moduuli- suunnittelu yksikkö-testaus ohjelmointi 15. Testaus

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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) 15. Testaus

More Related