Testauksen suunnittelu ja dokumentointi Suunnittelun merkitys
Transcription
Testauksen suunnittelu ja dokumentointi Suunnittelun merkitys
Testauksen suunnittelu ja dokumentointi Ohjelmistotestaus -09 © Antero Järvi, Tuomas Mäkilä It-laitos / TY Suunnittelun merkitys • Testauksen suunnittelussa tavoitteena on 1) Järjestelmällisyys – Yhden toiminnon tesauksen unohtamisella saattaa olla vakavia seurauksia 2) Vaikuttavuus – Testataan tärkeitä asioita oikeaan aikaan tehokkailla menetelmillä 3) Kustannustehokkuus – Testaus on organisoitu tehokkaasti ja rationaalisesti – Normaali ‘projektinhallinnan’ näkökulma Ohjelmistotestaus -09 © Antero Järvi, Tuomas Mäkilä It-laitos / TY 1 Testauksen suunnittelun tasot • Testauksen tehtävä ja tavoitteet liiketoiminnassa • Yleinen testauksen ohjeistus ja järjestelyt, usean projektin yhteiset testausasiat. Voi olla järjestelmä ja tuotekohtainen Projektin testaussuunnitelma (test plan) • Yhden projektin testaussuunnitelma, strategian sovitus projektille Testaustehtävät (test design) • Projektin eri testaustehtävät, konkreettiset ja toteutettavat. • Tarkka testauksen kohdentaminen, mitä testataan. Testauksen missio, merkitys organisaatiolle Testausstrategia Testitapaukset (test cases) Ohjelmistotestaus -09 © Antero Järvi, Tuomas Mäkilä It-laitos / TY Testauksen dokumentointi 1/2 • Suunnittelusta seuraa aina dokumentoinnin tarve: • Mieti suunnittelun ja dokumentoinnin taso ja tarve aina tapauskohtaisesti – Mitkä ovat testauksen tavoitteet ja kuinka dokumentaatio auttaa niiden saavuttamisessa • Tiivistä testauksen missioksi ja korkean tason strategiaksi – Eri yrityksillä dokumentoinnin määrän ja formaalisuuden vaatimukset ovat hyvin erilaiset. Ohjelmistotestaus -09 © Antero Järvi, Tuomas Mäkilä It-laitos / TY 2 Testauksen dokumentointi 2/2 • Erityisesti suunnittelun tarkkuuden ja dokumentaation tasoon vaikuttavat – Testuksen kohteen liiketoiminnallinen merkitys ja laajuus – Tapahtuuko testauksen tavoitteenasettelu, suunnittelu ja toteutus yhdessä vai erikseen (ääripäät ketterä tiimi ja ulkoistettu testaus) – Painottuuko testaaminen etukäteen määriteltyihin testitapauksiin vai tutkivaan testaukseen • Dokumentaation tasoon vaikuttavat – Onko laaduvarmistuksen tavoitteena laatustandardien tai jurdisten velvoitteiden täyttäminen vai kilpailukyvyn lisääminen – Kuvaako dokumentaatio mitä testataan vai miten testataan – Testaajat: testaajien taitotaso, testaajien vaihtuvuus – Tuleeko dokumentaation tukea projektin edistymisen seurantaa – Miten ylläpidettäviä dokumenttien tulee olla Ohjelmistotestaus -09 © Antero Järvi, Tuomas Mäkilä It-laitos / TY IEEE 829 – Testausdokumenttistandardi • Kuvaa testauksessa tuotettavat yleiset dokumentit ja niiden sisällön otsikkotasolla – Antaa vihjeitä, mitä asioita testauksen aikana pitäisi dokumentoida • Huono testausdokumentaatio on usein oire testausongelmista – Onko testausta organisoitu mitenkään? – Miten todistetaan testauksen toteutuminen jälkikäteen? • Standardi antaa raamit dokumenteille, mutta ei pakota mihinkään – Standardia saa ja pitää soveltaa • Dokumenttipohjat eivät tee työtä ihmisten puolesta, ainoastaan ohjaavat sitä Ohjelmistotestaus -09 © Antero Järvi, Tuomas Mäkilä It-laitos / TY 3 IEEE 829 – Testausdokumenttistandardi Ohjelmistotestaus -09 © Antero Järvi, Tuomas Mäkilä It-laitos / TY Projektin Testaussuunnitelma • Käytännössä kuvaa testauksen aktiviteettien laajuuden, lähestymistavan, käytetyt resurssit ja aikataulun • Tarkoitus ohjata testausta, ei suunnitella. • Valmiit suunnitelma-mallit antavat hyvän lähtokohdan suunnitelman teolle • Suunnitelmassa usein tärkeintä on asioiden selvittäminen, ei itse lopputulos – Dokumentti kommunikoi päätökset "In preparing for battle, I have always found that plans are useless, but planning is indispensable." --General Dwight D. Eisenhower Ohjelmistotestaus -09 © Antero Järvi, Tuomas Mäkilä It-laitos / TY 4 Testaussuunnitelman sisällysluettelo (esimerkki) 1. Johdanto ja yhteenveto 2. Testauksen kohteet 3. Testattavat ominaisuudet 4. Ominaisuudet, joita ei testata 5. Testausstrategia 6. Kohteiden hyväksymiskriteerit 7. Testien lopetuskriteeri 8. Testien työtuotteet 9. Testaustehtävät 10. Testiympäristö 11. Testausvastuut 12. Henkilöstö- ja koulutustarpeet 13. Aikataulutus 14. Testauksen riskianalyysi 15. Hyväksynnät Ohjelmistotestaus -09 © Antero Järvi, Tuomas Mäkilä It-laitos / TY Testitapaukset ja -menettelyt • Testitapaus (test case) kuvaa yhden ohjelman käyttötilanteen, ehdon, toiminnon ym. testauksen – Kuvaa mitä testata • Testitapauksen suorituksen tulos voi olla joko hyväksytty tai hylätty • Testimenettely (test procedure) kuvaa yksityiskohtaisesti, miten testitapaus suoritetaan – Ei välttämättä tarpeellinen, ja usein yhdistyy käytännössä testitapaukseen. • Tarvittava testitapauskuvausten tarkuus riippuu etenkin – Testauksen suorittamisesta, onko erillinen tapahtuma ja erilliset testaajat – Toistettavuusvaatimuksesta – Automatisoinnista Ohjelmistotestaus -09 © Antero Järvi, Tuomas Mäkilä It-laitos / TY 5 Testitapauksen sisältö 1. 2. 3. 4. 5. 6. Testattavat ohjelman osat (SUT) Syöte Odotettu tulos Testiympäristö Erityiset toiminnalliset vaatimukset Liittyvät testitapaukset Ohjelmistotestaus -09 © Antero Järvi, Tuomas Mäkilä It-laitos / TY Testimenettelyn sisältö (test procedure) 1. Menettelyn tarkoitus – Erityisesti linkit suoritettaviin testitapauksiin 2. Erityiset vaatimukset 3. Menettelyn kuvaus askel askeleelta • • • • • • • Tulosten kirjaaminen Valmistelut Aloitus Suoritus Mittaaminen Lopetus Testijärjestelyjen purkaminen Ohjelmistotestaus -09 © Antero Järvi, Tuomas Mäkilä It-laitos / TY 6 Testauksen yhteenvetoraportti • Testauksen yhteenvetoraportti (test summary report) kokoaa ohjelmiston tai sen osa-alueen testien tulokset yhteen dokumenttiin • Yksittäiset bugit raportoidaan testitapausraportissa (test incident report) Ohjelmistotestaus -09 © Antero Järvi, Tuomas Mäkilä It-laitos / TY Testauksen yhteenvetoraportin sisältö 1. 2. 3. 4. 5. 6. 7. Yhteenveto testattavista osista Poikkeamat suunnitelmista Testien perusteellisuuden arviointi Yhteenveto löydetyistä virheistä Yhteenveto testitapauksista Yhteenveto keskeisistä testaustoimenpiteistä Hyväksynnät Ohjelmistotestaus -09 © Antero Järvi, Tuomas Mäkilä It-laitos / TY 7 Kritiikkiä IEEE 829:ää kohtaan • Olettaa vesiputous-tyylisen kehityksen, sovellettava siis harkiten • Ohjaa ajattelumalliin, jossa ollaan tyytyväisiä, kun suunnitellut testit on suoritettu • Standardi ei ota huomioon dokumentointityön kustannuksia – Dokumenttien kirjoittaminen vie aikaa ja rahaa – Dokumenttien ylläpito vie aikaa ja rahaa • Painopiste on dokumentoinnin määrässä, ei niinkään laadussa – Ei anna ohjeistusta dokumentoinnin laadun arviointiin – Kaikkien testitapausten dokumentointi on useimmissa tapauksissa hyödytöntä Ohjelmistotestaus -09 © Antero Järvi, Tuomas Mäkilä It-laitos / TY Vaihtoehto IEEE 829:n mallille • Testaustyötä voidaan organisoida myös kevyemmällä dokumentaatiolla – Testitapaus- ja bugilistat – Testauksen tilanneraportit – Säännölliset testaustiimin kokoukset • Hyvin ohjeistettu bugitrackerin käyttö vähentää paperidokumentaation tarvetta huomattavasti • Hybridilähestymistapa: korkean tason testisuunnittelma IEEE 829:n mukaan, jokapäiväisen työn dokumentaatio kevyemmin ! Ohjelmistotestaus -09 © Antero Järvi, Tuomas Mäkilä It-laitos / TY 8 Työkaluavusteinen dokumentointi • Tietokoneavusteisia bugiraportointijärjestelmiä kutsutaan yleisesti bugitrackereiksi • Bugitrackerin tarkoitus on – Helpottaa bugien raportointi – Mahdollistaa bugikorjauksen hallinnan ja yksittäisten bugien tilan seurannan – Mahdollistaa bugitilanteen ja testauksen etenemisen seuranta • Bugitrackerit sisältävät yleensä seuraavat toiminnot – Bugiraporttien lisääminen – Bugiraporttien kommentointi ja tilan muuttaminen (historiatieto) – Hakujen tekeminen bugikannasta tiettyjen ehtojen perusteella Ohjelmistotestaus -09 © Antero Järvi, Tuomas Mäkilä It-laitos / TY 9