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