testaustekniikat - Porin yksikkö - Tampereen teknillinen yliopisto
testaustekniikat - Porin yksikkö - Tampereen teknillinen yliopisto
testaustekniikat - Porin yksikkö - Tampereen teknillinen yliopisto
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Tampere University of Technology, Pori 20.9.2007<br />
Ohjelmiston testaus t 2007<br />
- <strong>testaustekniikat</strong><br />
Arto Stenberg<br />
<strong>Tampereen</strong> <strong>teknillinen</strong> <strong>yliopisto</strong>,<br />
<strong>Porin</strong> yksikkö, Tietotekniikka<br />
http://www.pori.tut.fi/<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 1<br />
The Art of Software Testing (1979)<br />
• Glenford J. Myers:<br />
• ”Software testing is a technical task, but it also involves<br />
some important conciderations of economics and human<br />
psychology.”<br />
• Miten erilaiset <strong>testaustekniikat</strong> pystyvät vastaamaan<br />
tähän haasteeseen, joka on edelleen ajankohtainen?<br />
• Tärkein testaustekniikka on testaajan asenne!<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 2<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 1
Tampere University of Technology, Pori 20.9.2007<br />
Miksi testaustekniikoita käytetään?<br />
• Testaustekniikoiden avulla voidaan luoda paljon<br />
erilaisia testitapauksia ja niiden käyttäminen<br />
parantaa testitapausten laatua.<br />
• Erilaiset <strong>testaustekniikat</strong> löytävät yleensä erilaisia<br />
virheitä.<br />
• Testauksen kattavuus paranee, kun käytetään eri<br />
testaustekniikoita.<br />
• Testaustekniikat eivät ole järjestelmäsidonnaisia,<br />
vaan niitä voidaan soveltaa kaikenlaisissa<br />
järjestelmissä.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 3<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Testauksen hallinta<br />
• Testauksen hallinta tarvitsee omat tekniikkansa:<br />
• Täydellinen testaaminen on mahdotonta.<br />
• Kaikki ei aina mene putkeen…<br />
• Riskipohjainen testaus on oiva apuväline testauksen<br />
hallinnan apuvälineeksi:<br />
• Riskeistä keskusteleminen on helpompaa kuin uskotaan.<br />
• Projektin alussa tehtynä ohjaa tekemistä koko projektin ajan,<br />
eli pitää myös päivittää säännöllisesti.<br />
• Hieman eri asia kuin perinteinen riskienhallinta.<br />
• Yritys- ja järjestelmäkohtaista.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 4<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 2
Tampere University of Technology, Pori 20.9.2007<br />
Esimerkki käytöstä<br />
Riski<br />
Käytön<br />
tiheys<br />
Vaikutus<br />
Muutos<br />
Moni-<br />
mutkaisuus<br />
Yhteensä<br />
Painoarvo<br />
5 10 1 5<br />
Testauksen<br />
kohde<br />
Ominaisuus<br />
5<br />
3<br />
3<br />
1<br />
63<br />
Toiminta 5<br />
5<br />
1<br />
1<br />
81<br />
Komponentti<br />
3<br />
3<br />
3<br />
1<br />
53<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 5<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Testaaminen ja <strong>testaustekniikat</strong><br />
• Analysoi testauksen kohde.<br />
• Määrittele, mitä testaat.<br />
• Määrittele, millä kattavuudella testaat<br />
• Määrittele, miten / mihin vertaat testien tuloksia.<br />
• Määrittele testausympäristö.<br />
• Aja testitapaus testausympäristössä.<br />
• Havainnoi, mitä testin aikana tapahtuu.<br />
• Arvioi tulokset.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 6<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 3
Tampere University of Technology, Pori 20.9.2007<br />
Testaustekniikka käytännössä<br />
Lähde-<br />
dokumentti<br />
Valitse sopiva<br />
testaustekniikka<br />
Testauksen<br />
kohde<br />
Luo testitapaukset,<br />
poista epäoleelliset<br />
ja priorisoi.<br />
Suorita testit<br />
ja arvioi tulokset<br />
sekä kattavuus.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 7<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Missä järjestyksessä testataan?<br />
1. Aloitetaan helpommilla testeillä, joissa ei pitäisi<br />
olla ongelmia.<br />
2. Tutkitaan testauksen kohteen toiminnallisuutta ja<br />
koetetaan ymmärtää sen toimintaa ja merkitystä.<br />
3. Testataan kohdetta ensin yleisesti ja mennään<br />
vasta myöhemmin yksityiskohtiin.<br />
4. Lisää testien vaikeusastetta, käytä erilaisia<br />
testaustekniikoita.<br />
5. Ajattele testausta erilaisista lähtökohdista ja keksi<br />
jotain uutta testattavaa.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 8<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 4
Tampere University of Technology, Pori 20.9.2007<br />
Testitapauksen tuloksen arviointi<br />
• Testitapaus meni läpi:<br />
• täyttääkö testauksen kohde kaikki sille asetetut vaatimukset<br />
• täyttikö vain jotkut vaatimukset osittain<br />
• Testitapaus ei mennyt läpi:<br />
• löytyikö ongelma / virhe<br />
• kuinka vakava se on<br />
• onko ensivaikutelmaa vakavampi<br />
• onko huomattavasti yleisempi<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 9<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Ei speksejä, mihin vertaillaan?<br />
• Toimii järjestelmän tarkoituksen mukaisesti.<br />
• Toimii samalla tavalla kuin aikaisempi järjestelmän<br />
versio.<br />
• Toimii samalla tavalla kuin muutkin vastaavat<br />
järjestelmät.<br />
• Toimii yhtäläisesti tuotteesta annettujen lupausten<br />
kanssa (mainokset + standardit + muut lupaukset).<br />
• Täyttää käyttäjien odotukset (tai ainakin ne<br />
odotukset, jotka tiedämme tai arvaamme).<br />
• Täyttää yrityskuvan vaatimukset (millainen kuva<br />
yrityksestä syntyy tämän tuotteen kautta).<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 10<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 5
Tampere University of Technology, Pori 20.9.2007<br />
Testitapausten priorisointi<br />
• Prioriteetti 1:<br />
• nämä testit on mentävä läpi ennen julkaisua<br />
• löydetyt t virheet pitää olla korjattuna ja testattunat tt<br />
• Prioriteetti 2:<br />
• nämä testit pitää olla suoritettuna ennen julkaisua<br />
• löydetyt virheet korjataan ja testataan vikaluokittelun mukaisesti<br />
• Prioriteetti 3:<br />
• jos aikaa riittää, niin nämä testit suoritetaan<br />
• löydetyt virheet korjataan ja testataan vikaluokittelun mukaisesti<br />
• Prioriteetti 4:<br />
• nämä testit testataan julkaisun jälkeen tai myöhemmin<br />
• löydetyt virheet korjataan ja testataan vikaluokittelun mukaisesti<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 11<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Eri testaustekniikoiden jakoja<br />
• Staattiset – dynaamiset:<br />
• kohdistuuko testaus vaihetuotteisiin, vai onko suoritettavaa<br />
koodia<br />
• White box – black box:<br />
• mitataanko testauksen koodikattavuutta<br />
• Systemaattiset – ei-systemaattiset:<br />
• johdetaanko testitapaukset suoraan järjestelmän kehityksen<br />
aikana luodusta dokumentaatiosta vai saako testaaja<br />
käyttää ”luovuuttaan”<br />
• Toiminnalliset – ei-toiminnalliset:<br />
• testataanko pelkästään järjestelmän toiminnallisuutta vai<br />
myös muita järjestelmän laatuominaisuuksia (testilajit)<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 12<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 6
Tampere University of Technology, Pori 20.9.2007<br />
Staattiset <strong>testaustekniikat</strong><br />
• Katselmukset ja tarkastukset:<br />
• kohdistuvat vaihetuotteisiin, eli kaikenlaiseen<br />
ohjelmistokehityksessä syntyneeseen dokumentaatioon<br />
• löytävät virheitä tehokkaammin oikein suoritettuna kuin<br />
dynaaminen testaus<br />
• parannetaan vaihetuotteiden laatua, jolloin lopullisen tuotteen laatu<br />
paranee<br />
• löydetään virheet aikaisemmin ja estetään niiden kertaantuminen<br />
(turha työ vähenee)<br />
• projektin yleinen tuottavuus nousee ja projekti nopeutuu, koska<br />
aikaa pitäisi säästyä testausvaiheessa<br />
• prosessin parantaminen löydettyjen vikojen analysoinnin ansiosta<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 13<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Staattiset <strong>testaustekniikat</strong><br />
• Koodin staattinen analysointi:<br />
• koodi on mennyt kääntäjästä läpi ja kääntäjän löytämät<br />
virheet on korjattu<br />
• käytetään yleensä työkalua (staattinen analysaattori)<br />
• tutkitaan metriikkaa: koodin kompleksisuus (McCabe:n luku)<br />
• lint-tyyppiset työkalut: erilaiset koodausvirheet<br />
• koodaustyylin tarkastajat<br />
• löytävät mm. alustamattomia muuttujia, muistivirheitä,<br />
kuollutta koodia<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 14<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 7
Tampere University of Technology, Pori 20.9.2007<br />
Tutkimustuloksia<br />
• Virheiden määrän väheneminen kymmenesosaan<br />
testauksen alkaessa, testauksen kustannukset<br />
pienenivät i 50-80%.<br />
• Aikataulu nopeutui 25%, joka vaiheessa poistettiin<br />
80-95% virheistä, ylläpitokustannukset vähenivät 28-<br />
kertaisesti.<br />
• IBM: jokainen tarkastuksiin käytetty tunti säästi 20<br />
tuntia testauksesta ja 82 tuntia lisätyötä verrattuna<br />
siihen, jos vikaa ei olisi löydetty tarkastuksessa.<br />
astu sessa<br />
• Kahdeksan vuotta kehitetty systeemi, josta tehtiin<br />
viisi julkaisua; tarkastuksissa löydettiin 3512 vikaa,<br />
testauksessa 90 ja asiakkaan toimesta 35.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 15<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Vaihtoehtoja<br />
Tyyppi<br />
Tarkastus<br />
Katselmointi<br />
Suunnittelu Valmistelu Kokous Korjaus Valvonta<br />
Kyllä Kyllä Kyllä Kyllä Kyllä<br />
Kyllä Kyllä Kyllä Kyllä Ei<br />
Läpikäynti<br />
Kyllä Ei<br />
Kyllä Kyllä<br />
Ei<br />
Pariohjelmointi<br />
Kyllä Ei Jatkuvaa<br />
Kyllä<br />
Kyllä<br />
Paritarkastus<br />
Ei<br />
Ei<br />
Ehkä<br />
Kyllä<br />
Ei<br />
Ad hoc Ei Ei Ehkä Kyllä Ei<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 16<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 8
Tampere University of Technology, Pori 20.9.2007<br />
Staattisen testauksen suunnittelu<br />
• Miksi katselmoidaan / tarkastetaan:<br />
• tärkeintä on johdon ja henkilöstön sitoutuminen<br />
• Mitä tarkastetaan / katselmoidaan:<br />
• mitä dokumentteja projektin aikana tuotetaan<br />
• mitkä dokumentit ovat tärkeitä<br />
• mitkä osat dokumentista ovat tärkeitä<br />
• Osallistujien valinta eri tilaisuuksiin:<br />
• asiantuntemus, roolit ja osallistujien kuormitus<br />
• Projektin ajasta kuluu tarkastuksiin ja<br />
katselmointeihin (arvio):<br />
• 5 – 15% työajasta (10% on puoli työpäivää viikossa)<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 17<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Materiaalin kypsyys<br />
Dokumentin<br />
runko<br />
Raaka-<br />
versio<br />
Valmis<br />
dokumentti<br />
Ad hoc Paritarkastus Läpikäynti Katselmus Tarkastus Läpikäynti<br />
Mitä dokumentteja projektin aikana tuotetaan?<br />
Mitkä dokumentit ovat tärkeitä?<br />
Mitkä osat dokumentista ovat tärkeitä?<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 18<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 9
Tampere University of Technology, Pori 20.9.2007<br />
Dokumentin tarkastaminen<br />
• Yhden tarkastuspalaverin (2h) aikana tarkastetaan<br />
huolellisesti:<br />
• dokumentti: 1 – 10 sivua<br />
• koodi: 100 – 500 riviä<br />
• Ison dokumentin tarkastaminen:<br />
• kerralla kokonaan vai osittain (monta palaveria)?<br />
• jokaiselle oma osuus tarkastettavaksi?<br />
• tarkastetaan vain tärkeimmät osat dokumentista?<br />
• Muut tarkastuksen aikana huomioitavat dokumentit:<br />
• lähdedokumentit, ohjeet, tarkastus- ja vikalistat<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 19<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Tarkastus- tai vikalistat<br />
• Auttavat löytämään vikoja ja levittävät ns. best<br />
practice – käytäntöjä.<br />
• Mielellään yhden sivun mittaisia:<br />
• noin 25 kysymystä, eli ei kaikkia mahdollisia kysymyksiä,<br />
vaan tärkeimmät<br />
• Yleensä kysymysmuodossa:<br />
• yksiselitteinen kysymys, negatiivinen vastaus tarkoittaa<br />
mahdollista virhettä<br />
• eivät saa olla ristiriidassa ohjeiden kanssa<br />
• voi käyttää vakavuusluokittelua<br />
• Vikalista on lista jonkin vaiheen eniten tehdyistä<br />
virheistä.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 20<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 10
Tampere University of Technology, Pori 20.9.2007<br />
Tarkastuksen ja katselmuksen erot<br />
• Suomessa nämä termit ovat sekoittuneet:<br />
• tarkastuksella tarkoitetaan yleensä yhteen vaihetuotteeseen<br />
(dokumenttiin) kohdistuvaa laadun tarkastelua<br />
• katselmuksella tarkoitetaan yleensä projektin jonkun<br />
vaiheen päättymisen toteaminen, jolloin tarkastetaan onko<br />
kaikki siinä vaiheessa suunnitellut työn tehty<br />
• termien merkitys voi vaihdella yrityksestä toiseen<br />
• Kansainvälisesti määriteltynä tarkastukset ovat<br />
formaaleja tapahtumia, katselmukset ovat<br />
vapaampia, mutta molemmat kohdistuvat yhteen<br />
dokumenttiin.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 21<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Katselmus (review)<br />
• Arviointi (audit):<br />
• arvioinnin kohteesta yrityksestä riippumattoman tahon<br />
(esim. ISO 9000 sertifikaatin antaja) suorittama yrityksen<br />
prosessin tai projektin arviointi, jossa tarkastetaan, että<br />
toiminta on laatujärjestelmän mukaista<br />
• sisäinen arviointi on yrityksen itsensä tekemä<br />
• Johdon katselmus (management review):<br />
• yrityksen johto arvioi yrityksensä toimintaa<br />
• joskus tarkoitetaan samaa asiaa kuin sisäisessä arvioinnista<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 22<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 11
Tampere University of Technology, Pori 20.9.2007<br />
Katselmus (review)<br />
• Projektikatselmus:<br />
• projektin ohjaus- tai johtoryhmän suorittama menettely,<br />
jossa todetaan vaiheen päättyminen<br />
• on etukäteen ilmoitettu projektisuunnitelmassa<br />
• tehdään tärkeimmissä etapeissa ja kattaa kaikki sen<br />
vaiheen vaihetuotteet<br />
• dokumentit tuotettu, ohjeistuksen vaatimat asiat suoritettu,<br />
asetetut kriteerit täytetty<br />
• tarkoituksena on tehdä projektin eteneminen ulospäin<br />
näkyväksi => runsaasti osanottajia, myös ulkopuolisia<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 23<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Katselmus (review)<br />
• Epäformaali katselmus:<br />
• informal review, buddy review<br />
• esim. työkaveri katsoo dokumentin läpi ja kertoo<br />
mielipiteensä<br />
• Tekninen katselmus tai vertaiskatselmus:<br />
• technical / peer review<br />
• pohditaan teknisiä asioita ja ratkaisun oikeellisuutta<br />
• Läpikäynti:<br />
• walkthrough<br />
• tekijä esittelee oman dokumenttinsa ja vastaa kysymyksiin<br />
• hyvä koulutustilaisuus<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 24<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 12
Tampere University of Technology, Pori 20.9.2007<br />
Tarkastus (inspection)<br />
• Tarkastetaan, että dokumentti:<br />
• on lähteidensä kanssa mahdollisimman virheetön<br />
• täyttää ttää sääntöjen, ohjeiden, prosessin yms. vaatimukset<br />
t<br />
• Varsinainen tarkastustilaisuus pidetään, jos kaikki ovat<br />
tarkastukseen osallistuvat ovat valmistautuneet huolella.<br />
• Etsitään virheitä, eli pyritään välttämään turhaa keskustelua.<br />
• Kerätään metriikkaa:<br />
• löydetyt virheet + ajankäyttö<br />
• voidaan osoittaa tarkastusten tehokkuus<br />
• tietoja voidaan käyttää prosessin parantamiseen, jolloin estetään<br />
ennalta virheiden syntyminen<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 25<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Johtaja / moderaattori<br />
• Tuntee hyvin tarkastusprosessin ja vastaa sen<br />
noudattamisesta:<br />
• vastaa entry ja exit kriteerien i valvomisesta<br />
• seuraa dokumentin korjausta tarkastuspalaverin jälkeen<br />
• huolehtii metriikan keräämisestä<br />
• Auttaa, motivoi, neuvoo eli toimii mentorina:<br />
• voi suunnitella tarkastuksen yhdessä tekijän kanssa<br />
• huolehtii ilmapiiristä, luo kulttuuria ja on diplomaattinen<br />
• Johtaa tarkastuspalaveria:<br />
• huolehtii tehokkuudesta, pitää kiinni aikarajoista<br />
• lopettaa turhan keskustelun<br />
• huolehtii ja aktivoi osallistujia niin, että jokainen tarkastaja kertoo<br />
kaikki löydöksensä<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 26<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 13
Tampere University of Technology, Pori 20.9.2007<br />
Sihteeri ja esittelijä<br />
• On yleensä dokumentin tekijä.<br />
• Esittelijä esittelee kohteena dokumentin.<br />
• Sihteeri kirjaa löydetyt virheet, puutteet ja muut<br />
kommentit pöytäkirjaan:<br />
• kysyy tarkentavia kysymyksiä, mutta ei kirjaa mitään<br />
ylimääräistä<br />
• diplomaattisesti voidaan virheiden sijaan puhua löydöksistä<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 27<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Tarkastaja<br />
• Asiantuntija, jolla on omaa näkemystä.<br />
• Voi olla myös noviisi, koska hän kyseenalaistaa luultavasti<br />
toisenlaisia asioita.<br />
• Uhraa riittävästi aikaa valmistautumiseen.<br />
• Projektissa mukana olevia henkilöitä dokumentista riippuen:<br />
• projektipäällikkö, laatupäällikkö, testauspäällikkö<br />
• edellisestä / seuraavasta ohjelmistotuotannon vaiheesta<br />
• tarpeen mukaan dokumentista riippuen voivat olla projektin<br />
ulkopuolisia henkilöitä: markkinointi, laki, koulutus, dokumentointi,<br />
tuki, asiakas<br />
• Kertoo kaikki löydöksensä tarkastuspalaverissa:<br />
• löydetyt virheet ja muut parannusehdotukset<br />
• Etsii palaverin aikana uusia virheitä.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 28<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 14
Tampere University of Technology, Pori 20.9.2007<br />
Muistilista<br />
• Johtaja:<br />
• huolehdi tehokkuudesta<br />
• lopeta turha keskustelu nopeasti<br />
• pakota kaikki tarkastajat osallistumaan<br />
• Tarkastaja:<br />
• valmistaudu huolellisesti<br />
• etsi virheitä, älä ratkaisua<br />
• muista hienotunteisuus tekijää kohtaan<br />
• Tekijä:<br />
• älä tuo keskeneräistä työtä tarkastettavaksi<br />
• älä ota löydöksiä henkilökohtaisesti<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 29<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Tarkastusprosessi<br />
Tarkastus- ja katselmointisuunnitelma<br />
Ohjelmistotuotannon vaihe<br />
Muutosehdotukset<br />
Prosessin<br />
parantaminen<br />
Suunnittelu<br />
Alustuspalaveri<br />
Valmistautuminen<br />
Tarkastuspalaveri<br />
Dokumentin<br />
korjaus<br />
Ohjelmistotuotannon vaihe<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 30<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 15
Tampere University of Technology, Pori 20.9.2007<br />
Ajankäyttö tarkastusprosessissa<br />
• Suunnittelu ja alustuspalaveri
Tampere University of Technology, Pori 20.9.2007<br />
Aloituspalaveri<br />
• Ei ole pakollinen.<br />
• Kaikki tarkastukseen osallistuvat ovat paikalla.<br />
• Kaikki tarpeelliset dokumentit esitellään ja jaetaan<br />
osallistujille.<br />
• Tarkastusryhmän jäsenille annetaan mm. lukuohjeet<br />
ja -roolit:<br />
• lukuroolit: loppukäyttäjä, testaaja, suunnittelija, huolto jne.<br />
• lisäinfoa mm. tarkastusten yleisestä metriikasta,<br />
valmistautumisen kestosta jne.<br />
• Keskustellaan, jos on jotain epäselvää.<br />
• Sovitaan lopullisesti varsinaisen tarkastuspalaverin<br />
aika ja paikka.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 33<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Valmistautuminen<br />
• Tarkastuksen tärkein vaihe, koska tässä vaiheessa<br />
löydetään jopa 70 - 95% kaikista tarkastuksessa<br />
löytyvistä tä vioista.<br />
i • Tehokas dokumentin tarkastusvauhti on yleensä<br />
hitaampi kuin normaali lukemisvauhti.<br />
• Perehtyminen tarkastettavaan dokumentin osaan<br />
sovitun roolin puitteissa:<br />
• oheisdokumentaation hyväksikäyttö<br />
• virheiden, puutteiden, ongelmien yms. etsiminen, niiden<br />
kirjaaminen / merkitseminen ja mahdollisesti luokitteleminen<br />
• Tarkastajat ottavat yhteyttä tarkastuksen johtajaan,<br />
jos ilmenee ongelmia esim. ajankäytön suhteen.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 34<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 17
Tampere University of Technology, Pori 20.9.2007<br />
Tarkastuspalaveri<br />
• Yhden palaverin kestoksi suositellaan kahta tuntia.<br />
• Ei pidetä, jos enemmän kuin yksi tarkastaja ei ole tehnyt<br />
valmistautumista riittävän huolellisesti.<br />
• Tarkastettavan dokumentin systemaattinen läpikäynti (esim.<br />
kappale tai sivu kerrallaan).<br />
• Tarkastajat kertovat havaitut virheet ja sihteeri kirjaa ne<br />
pöytäkirjaan:<br />
• jokainen löytämättä jäänyt vika voi aiheuttaa myöhemmin monta<br />
tuntia ylimääräistä työtä<br />
• tarkastajilta kannattaa pyytää antamaan kokouksen alussa<br />
valmistautumisen aikana löydetyt virheet kirjallisena<br />
• keskustellaan virheestä, koska virheitä voi löytyä lisää esim.<br />
lähdedokumenteista<br />
• ei ylimääräistä keskustelua, väittelyä, väheksymistä tai kritiikin<br />
antamista –> tehokkuus ajankäytössä<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 35<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Tarkastuspalaverin pöytäkirja<br />
• Valmistautumiseen käytetty aika kirjataan<br />
pöytäkirjaan palaverin alussa.<br />
• Pöytäkirja luetaan läpi.<br />
• Kirjatut virheet luokitellaan ja päätetään, mitkä niistä<br />
korjataan.<br />
• Palaveriin käytetty aika kirjataan pöytäkirjaan.<br />
• Kirjataan päätös pöytäkirjaan:<br />
• hyväksytty<br />
• hyväksytty korjauksin<br />
k • hylätty / uusintatarkastus<br />
• Sovitaan seurantatoimenpiteet.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 36<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 18
Tampere University of Technology, Pori 20.9.2007<br />
Exit-kriteerit<br />
• Dokumentti on tarkastettu yhdessä tai useammassa<br />
palaverissa.<br />
• Tekijä on korjannut kaikki dokumentista löytyneet<br />
virheet, mutta korjausten oikeellisuutta ei yleensä<br />
tarkasteta.<br />
• Lähdedokumenteista löydetyistä virheistä on tehty<br />
muutospyyntö.<br />
• Prosessin parantamisideat on lähetetty eteenpäin.<br />
• Pöytäkirjaan lisätään käytetty aika ja<br />
hyväksymismerkintä.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 37<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Tarkastuksen metriikka<br />
• Käytetty aika / tarkastettu dokumentti:<br />
• suunnittelu, alkupalaveri, valmistautuminen,<br />
tarkastuspalaveri, dokumentin korjaus ja seuranta<br />
• Tarkastettuja sivuja / tunti.<br />
• Koodirivejä / tunti.<br />
• Löydettyjen virheiden määrä ja niiden luokitus.<br />
• Tehokkuus:<br />
• tarkastusten aikana löydetyt virheet / tarkastusten aikana<br />
löydetyt virheet + testauksen aikana löydetyt virheet<br />
• löydetyt virheet / tarkastuksiin käytetty aika<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 38<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 19
Tampere University of Technology, Pori 20.9.2007<br />
Perinteisiä ongelmia<br />
• Osallistujat eivät ymmärrä tarkastusten merkitystä.<br />
• Väärät osallistujat, ei asiantuntemusta<br />
• Tarkastajien valmistautumattomuus.<br />
• Perehtymisen vaatima suuri työmäärä.<br />
• Motivaatio ja asenteet.<br />
• Rönsyily tarkastustilaisuuksissa (ideointi ja korjailu).<br />
• Puheenjohtajan kyvyttömyys johtaa tilaisuutta.<br />
• Työmäärää ei ole otettu huomioon<br />
projektiaikataulussa (muiden projektien tarkastukset).<br />
• Liikaa tarkastettavaa materiaalia aikaan verrattuna.<br />
• Keskitytään tyylin, eikä sisällön tarkastamiseen.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 39<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
RaPiD7<br />
• Roope Kylmäkosken kehittämä RaPiD7.<br />
• Rapid Production of Documentation, 7 steps.<br />
• Menetelmän tarkoituksena on:<br />
• laadukkaiden dokumenttien tuottamisen tiimityöskentelyn ja<br />
workshoppien avulla<br />
• informaation jakamisen parantaminen ja sitoutuminen päätöksiin<br />
• Katselmointi on rakennettu menetelmän sisälle:<br />
• mukana ne ihmiset, jotka olisivat myös katselmoimassa<br />
• Yhden dokumentin luomiseen voidaan järjestää useita<br />
workshoppeja:<br />
• yleensä 1-4 kpl, kestoltaan 3-5 tuntia<br />
• dokumenttia ei kuitenkaan pystytä luomaan pelkästään<br />
workshoppien avulla<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 40<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 20
Tampere University of Technology, Pori 20.9.2007<br />
RaPiD7<br />
1. Valmistautumista<br />
2. Kick-off<br />
Seuraava<br />
workshop<br />
3. Ideoiden kerääminen<br />
4. Ideoiden analysointi<br />
5. Yksityiskohtien lisääminen<br />
Yhden<br />
workshopin<br />
aikana<br />
6. Päätöksien teko<br />
7. Lopetus<br />
Valmis<br />
dokumentti<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 41<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Kompleksisuusmittarit<br />
• Käytetään yleensä kriittisessä ohjelmistossa<br />
arvioitaessa jonkun moduulin tai funktion<br />
monimutkaisuutta.<br />
• Monimutkainen koodi:<br />
• vaatii enemmän testausta ja parempilaatuisia testitapauksia<br />
• vaikeampi koodin ylläpito<br />
• onko siinä enemmän virheitä...<br />
• Voidaan käyttää:<br />
• koodikatselmusten tarkentamiseen, testauksen<br />
kohdistamiseen, testitapausten määrän arviointiin,<br />
virhemäärän ennustamiseen<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 42<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 21
Tampere University of Technology, Pori 20.9.2007<br />
McCaben kompleksisuusluku<br />
• Esiteltiin 1976 ja perustuu graafiteoriaan.<br />
• McCaben syklomaattinen numero<br />
(kontrollikompleksisuus):<br />
• v(G) = e–n+2p:<br />
• e = nuolten määrä<br />
• n = solmujen määrä<br />
• p = funktioiden määrä<br />
• yksittäiselle funktiolle v(G) = c+1, missä<br />
c= kontrolliverkon haarautumiskohtien lukumäärä<br />
• v(G) ilmaisee testitapausten minimimäärän, jos halutaan<br />
käydä läpi kaikki haarautumat<br />
• ohjearvoja; moduulille 1 – 100, funktiolle 1 - 20<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 43<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
McCabe esimerkki<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 44<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 22
Tampere University of Technology, Pori 20.9.2007<br />
Koodin analysointi<br />
• Data flow analysis<br />
• Etsitään koodista muuttujat ja niiden käyttö:<br />
• koska muuttuja määritellään<br />
• mikä on muuttujan alkuarvo<br />
• koska muuttujaan asetetaan arvo<br />
• koska muuttujaa käytetään<br />
• Control flow analysis<br />
• Käydään läpi koodin kontrollirakenne, joka voidaan<br />
mallintaa<br />
• process block, decision point, junction point<br />
• Yritetään löytää esim. kuollut koodi ja päättymättömät luupit.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 45<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Koodin mallintaminen<br />
F<br />
T<br />
F<br />
T<br />
Sekvenssi Ehto Luuppi<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 46<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 23
Tampere University of Technology, Pori 20.9.2007<br />
Dynaamiset<br />
Yksikkötestaus Integrointitestaus Järjestelmätestaus<br />
White-box<br />
Grey-box<br />
Black-box<br />
Toiminnallisuus<br />
Rakenne<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 47<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Standardi DO-178B<br />
• Software Considerations in Airborne Systems and<br />
Equipment Certification<br />
• White-box:<br />
• A: moniehtokattavuus + alemmat<br />
• B: päätöskattavuus + alemmat<br />
• C: lausekattavuus<br />
• D: ei vaatimuksia<br />
• Black-box:<br />
• A, B ja C: korkean ja matalan tason testausvaatimukset<br />
• D: korkean tason testausvaatimukset<br />
• käytettävät tekniikat: ekvivalenssiluokat, raja-arvot,<br />
tilapohjainen testaaminen<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 48<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 24
Tampere University of Technology, Pori 20.9.2007<br />
White-box <strong>testaustekniikat</strong><br />
• Vaatii erityisen työkaluohjelman käyttämistä, koska<br />
koodi instrumentoidaan ja siitä mitataan testauksen<br />
koodikattavuus.<br />
• On olemassa erilaisia kattavuusmääreitä, joille pitää<br />
käytännössä antaa joku kohdearvo (lopetuskriteeri,<br />
esim. 80%).<br />
• Testitapauksien suunnittelussa käytetään avuksi<br />
tietoa koodin rakenteesta.<br />
• Testien suorituksen yhteydessä tarkastetaan tulokset<br />
ja kattavuus.<br />
• Jos riittävää kattavuutta ei ole saavutettu, tehdään<br />
lisää testitapauksia.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 49<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Ongelmia<br />
• Joku 100% kattavuus ei tarkoita sitä, että järjestelmä<br />
olisi 100% testattu.<br />
• Käyttöönotossa voidaan kohdata mm. seuraavia<br />
vaikeuksia:<br />
• teettää yleensä lisätyötä<br />
• on lahjomaton<br />
• vaatii tarkempaa lähestymistapaa yksikkötestaukseen<br />
• voi vaatia isoa panostusta työkaluihin<br />
• Voi olla pakko ottaa käyttöön:<br />
• esim. erilaiset standardit vaativat koodikattavuuden<br />
mittaamista<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 50<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 25
Tampere University of Technology, Pori 20.9.2007<br />
Lausekattavuus<br />
• Yksinkertaisin kattavuusmääre.<br />
• Tarkoituksena on kattaa mahdollisimman monta<br />
ohjelmointikielen operaatioita sisältävää lausetta:<br />
• voi oikeastaan verrata vaikka tekstirivien lukemiseen<br />
• Helpoimmin saavutettavissa:<br />
• yksikkötestauksen 100% lausekattavuuden vaatimus on<br />
käytössä monissa yrityksissä<br />
• TDD (test driven development) menetelmässä testit ovat<br />
pieniä ja niitä on paljon<br />
• Tyypillinen testaus saavuttaa maksimissaan 60-75%<br />
kattavuuden.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 51<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Päätöskattavuus<br />
• Puhutaan myös haarakattavuudesta.<br />
• Testauksella koetaan saavuttaa kaikki koodin<br />
päätöksistä lähtevät haarautumat:<br />
• IF (x>100) OR (Y
Tampere University of Technology, Pori 20.9.2007<br />
Ehtokattavuus<br />
• Jokaisen päätöksen jokainen ehto saa molemmat<br />
arvot:<br />
• IF (x>100) OR (Y100) OR (Y80<br />
6 print counter, line<br />
7 end if<br />
8 read line<br />
9 end while<br />
10print tend-of-file<br />
do e<br />
1. rivit 1-3, hyppäys riville 10<br />
2. rivit 1-5, hyppäys riville 8<br />
3. rivit 1-9, hyppäys riville 3<br />
4. rivit 3-3, hyppäys riville 10<br />
5. rivit 3-5, hyppäys riville 8<br />
6. rivit 3-9, hyppäys riville 3<br />
7. rivit 8-9, hyppäys riville 3<br />
8. rivi 10, loppu<br />
• Tyypillinen testaus saavuttaa 30-40% LCSAJ<br />
kattavuuden.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 54<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 27
Tampere University of Technology, Pori 20.9.2007<br />
Black-box <strong>testaustekniikat</strong><br />
• Testauksessa ei välttämättä olla kiinnostuneita<br />
testauksen kohteen sisäisestä rakenteesta tai sen<br />
toteutuksesta.<br />
• Koskaan ei voi olla täysin varma testauksen<br />
kattavuudesta.<br />
• Voidaan käyttää jokaisella testaustasolla<br />
(yksikkötestauksesta hyväksymistestaukseen).<br />
• Testaajan on tärkeitä havainnoida testaustapauksen<br />
suorituksessa myös muita tapahtumia.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 55<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Vikasietoinen rajapinta<br />
• Pitäisi kestää seuraavia ongelmatilanteita.<br />
• Syöte on oikeaa tyyppiä, mutta arvoalueen<br />
ulkopuolella.<br />
• Syöte on väärää tyyppiä.<br />
• Syöte on väärässä formaatissa.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 56<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 28
Tampere University of Technology, Pori 20.9.2007<br />
Ekvivalenssiluokat<br />
Jaa syötteet (tai tulokset) alueisiin,<br />
joissa niiden arvot kuuluvat samaan joukkoon.<br />
Oletus: jos yksi alueen arvoista toimii, muutkin toimivat.<br />
Testitapaukset: vähintään yksi testitapaus / alue.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 57<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Luokkien tunnistaminen<br />
• Syöte on joltakin tietyltä arvoväliltä:<br />
• esim. 1-100<br />
• luokat ovat luvut, jotka ovat 100<br />
• Syötteessä on jokin lukumäärärajoitus:<br />
• esim. syötteessä saa olla luvut 1-3<br />
• esim. syötteessä saa olla eri lukuja 1-3 kpl<br />
• luokat ovat seuraavat: 3<br />
• Syöte on joku joukko arvoja:<br />
• esim. värit = {vihreä, keltainen, punainen}<br />
• luokat ovat joukon jäsen ja joku muu esim. sininen<br />
• Syöte on boolean-arvo:<br />
• kaksi luokkaa eli tosi ja epätosi<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 58<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 29
Tampere University of Technology, Pori 20.9.2007<br />
Luokkien tunnistaminen<br />
• Jos syöte on määrätty:<br />
• syötteen pitää olla esim. kirjain<br />
• luokat ovat kirjain ja ei-kirjain (luku, erikoismerkki, tyhjä)<br />
• syötteen pitää olla esim. numero<br />
• luokat ovat numero, reaaliluku, kokonaisluku, muu merkki<br />
kuin numero<br />
• Syötteessä voi olla ns. avoin raja:<br />
• esim. veron pidätysprosentti<br />
•
Tampere University of Technology, Pori 20.9.2007<br />
Esimerkkejä raja-arvoista<br />
• Syöte on joltakin tietyltä arvoväliltä:<br />
• esim. 1-100<br />
• raja-arvot ovat luvut: 0, 1, 2, 99, 100, 101<br />
• Syötteessä on jokin lukumäärärajoitus:<br />
• esim. syötteessä saa olla luvut 1-3<br />
• esim. syötteessä saa olla eri lukuja 1-3 kpl<br />
• raja-arvot ovat seuraavat: 0, 1, 3 ja 4<br />
• Syöte on joku joukko arvoja:<br />
• esim. värit = {vihreä, keltainen, punainen}<br />
• luokat ovat joukon jäsen ja joku muu esim. sininen<br />
• Syöte on boolean-arvo:<br />
• kaksi luokkaa eli tosi ja epätosi<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 61<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Esimerkkejä raja-arvoista<br />
• Jos syöte on määrätty:<br />
• syötteen pitää olla esim. kirjain<br />
• raja-arvona voidaan pitää kirjaimia / ei-kirjaimia<br />
• syötteen pitää olla esim. numero<br />
• raja-arvona voidaan pitää numeroavaruuden rajoja (integer)<br />
• Syötteessä voi olla ns. avoin raja:<br />
• esim. veron pidätysprosentti<br />
•
Tampere University of Technology, Pori 20.9.2007<br />
Miksi kannattaa käyttää molempia?<br />
• Ensin pitää määritellä ekvivalenssiluokat.<br />
• Raja-arvoilla löytää virheitä, mutta ne eivät<br />
välttämättä testaa normaaleita käyttöarvoja.<br />
• Perinteisesti on ensin testattu ekvivalenssiluokat ja<br />
sen jälkeen raja-arvot.<br />
• Testitapaukset voidaan tehdä raja-arvojen pohjalta,<br />
koska ne kattavat myös ekvivalenssiluokat.<br />
• Laadi taulukko ja sen pohjalta testitapaukset.<br />
• Muista testata vain yhtä muutosta kerrallaan, eli yksi<br />
virheellinen syöte kerrallaan.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 63<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Lisää esimerkkejä<br />
• Kuinka monta yhtäaikaista käyttäjää?<br />
• Kuinka monta kertaa peräkkäin voit suorittaa jonkun toiminnon?<br />
• Data-elementtien lukumäärä (tietokanta tai erilaiset listat).<br />
• Luvun tai merkkijonon koko.<br />
• Dokumentin, tiedoston tai tietueen koko?<br />
• Kuinka monta laitetta voidaan järjestelmään kytkeä?<br />
• Järjestelmän keskusmuistin määrä.<br />
• Mahdolliset käyttöjärjestelmät, muut ohjelmat ja niiden versiot.<br />
• Erilaiset graafiset määrittelyt (näytön koko, ikkunan koko, värien<br />
määrä)<br />
• Erilaiset ajatukseen liittyvät toiminnat.<br />
• Erilaiset tulosteet.<br />
• Päiväys ja aika.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 64<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 32
Tampere University of Technology, Pori 20.9.2007<br />
Mies<br />
Esimerkki<br />
YHTEYSTIEDOT<br />
Anna yhteystietosi.<br />
Täytä vähintään lihavoidut kohdat.<br />
Käyttäjätunnus:<br />
(3-10 merkkiä)<br />
Salasana:<br />
(8-10 merkkiä)<br />
Sukupuoli:<br />
valikko<br />
(2 vaihtoehtoa)<br />
Syntymäaika:<br />
(2+2+4 numeroa)<br />
Sähköpostiosoite:<br />
(32 merkkiä)<br />
Matkapuhelinnumero:<br />
(3+9 numeroa)<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 65<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Useampi syöte tai muuttuja<br />
• Usein ei ole mahdollisuutta tai aikaa testata jokaisen<br />
syötteen jokaista mahdollista ekvivalenssiluokkaa tai<br />
raja-arvoa.<br />
• Syötteillä ja muuttujilla on kuitenkin usein sidoksia<br />
toisiinsa, jolloin on myös yhteisiä rajoitteita.<br />
• Käytetään seuraavia termejä:<br />
• Rajalla (on) on arvo, joka on sama kuin raja-arvo.<br />
• Lähellä (off) on arvo, joka on rajan tuntumassa.<br />
• Sisällä (in) on arvo, joka on raja-arvon normaalilla puolella.<br />
• Ulkona (out) on arvo, joka on raja-arvon virheellisellä<br />
puolella.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 66<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 33
Tampere University of Technology, Pori 20.9.2007<br />
Esimerkki<br />
rajalla<br />
rajalla<br />
ulkona<br />
lähellä<br />
sisällä<br />
ulkona<br />
lähellä<br />
sisällä<br />
X => 5 X > 5<br />
Suljetussa rajassa (=>, ):<br />
rajalla = raja-arvo, mutta<br />
ei normaali arvo<br />
lähellä = raja-arvon<br />
normaalilla puolella<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 67<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Domain analysis testing<br />
• Jokaiselle relaatioehdolle (=>, >,
Tampere University of Technology, Pori 20.9.2007<br />
Cause-effect<br />
NOT<br />
Identity<br />
a b a b<br />
”jos a=1 niin b=1”<br />
a<br />
a<br />
b<br />
d<br />
c<br />
c<br />
OR<br />
b<br />
AND<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 69<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Cause-effect rajoitteet<br />
”vain toinen voi olla 1”<br />
a<br />
I<br />
E<br />
”ainakin yhden pitää olla aina 1”<br />
a<br />
b<br />
b<br />
c<br />
O<br />
a<br />
R<br />
a<br />
Jos a=1 niin<br />
b=1<br />
a<br />
M<br />
”vain toisen pitää olla 1”<br />
b<br />
b<br />
b<br />
Jos a=1 niin<br />
b=0<br />
20.9.2007 Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 70<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 35
Tampere University of Technology, Pori 20.9.2007<br />
Cause-effect<br />
• Syy-seuraus suhde, eli logiikkaa.<br />
• Tarkoittaa testauksessa input output tai input <br />
järjestelmän tilasiirtymä.<br />
• Mallinnetaan ja tehdään päätöstaulu.<br />
• Päätöstaulusta muokataan testitapaukset.<br />
• Ehkä liiankin vaikeaa speksata järjestelmän<br />
toimintaa toiseen kertaan…<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 71<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Päätöstaulut<br />
• Käytetään erilaisten testitapauksien<br />
muodostamiseen.<br />
• Käydään läpi syötteiden eri yhdistelmät ja tilat, jotta<br />
huomataan, ettei mitään tärkeää yhdistelmää ole<br />
unohdettu testata.<br />
• Syöteyhdistelmät merkitään ensin boolean muotoon<br />
(tosi/epätosi).<br />
• Lisäksi voidaan listata mahdolliset ohjelman<br />
tapahtumat ja odotetut tulokset.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 72<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 36
Tampere University of Technology, Pori 20.9.2007<br />
Päätöstaulut<br />
Testitapaus<br />
1 2 3 4 5 6 7<br />
Syöte<br />
A B C D E F G<br />
Ehto<br />
A B C D E F G<br />
Tapahtuma<br />
A B C D E F G<br />
Odotettu<br />
tulos<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 73<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Päätöstaulut (esimerkki)<br />
• Henkivakuutuksen maksuerän suuruuden<br />
laskeminen.<br />
• Maksu kuoleman sattuessa:<br />
• 100000, 200000 tai 500000 €<br />
• Ikä:<br />
• alle 20, 20-30, 31-40, 41-50, 51-60, 61-70, yli 70<br />
• Tupakointi (kyllä/ei)<br />
• Vakavia sairauksia (kyllä/ei)<br />
• Vaarallisia harrastuksia (kyllä/ei)<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 74<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 37
Tampere University of Technology, Pori 20.9.2007<br />
Päätöstaulut (esimerkki)<br />
Testitapaus<br />
1 2 3 4 5 6 7<br />
Maksu<br />
100000 200000 500000 100000 200000 500000 100000<br />
Ikä<br />
70 20-30 31-40 61-70<br />
Tupakointi<br />
ei kyllä kyllä ei ei ei kyllä<br />
Sairaus<br />
kyllä ei kyllä ei ei kyllä kyllä<br />
Harrastus ei kyllä ei ei kyllä<br />
Odotettu<br />
tulos<br />
kyllä<br />
ei<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 75<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Puurakenne<br />
Vakionopeudensäädin<br />
Todellisen ja halutun nopeuden ero<br />
Todellinen nopeus<br />
Auto edessä<br />
< 0 0 - 30 > 30 0-50 50-80 80-120 On Ei<br />
Nopeusero<br />
Etäisyys<br />
< 0 0 - 30 > 30 < 25m > 25m<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 76<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 38
Tampere University of Technology, Pori 20.9.2007<br />
Tilapohjainen testaaminen<br />
• Ohjelmistolla on yleensä erilaisia tiloja, joihin voi<br />
mennä eri siirtymien kautta.<br />
• Yleensä vaikeutena on jo suunnitteluvaiheessa<br />
mallintaa oikeat tilat ja siirtymät.<br />
• Soveltuu hyvin testaukseen ja kannattaa tehdä,<br />
koska testaajalla on aina jonkinlainen malli<br />
testattavasta järjestelmästä tai sen osasta.<br />
• Tarkoituksena on löytää:<br />
• laiton / puuttuva / korruptoitunut tila<br />
• laiton / puuttuva / väärä siirtymä<br />
• puuttuva / väärä johonkin tilaan liittyvä toiminnallisuus<br />
• sanomien oikea / väärä käsittely<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 77<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Odottaa<br />
korttia<br />
Esimerkki: pankkiautomaatti<br />
Kortti syötetty<br />
Odottaa<br />
PIN-koodia<br />
Väärä<br />
PIN-koodi<br />
Oikea PIN-koodi<br />
Valinta tehty<br />
Pankki<br />
vai<br />
luotto<br />
Saldo<br />
vai<br />
Otto<br />
Kolme väärää<br />
Keskeytys<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 78<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 39
Tampere University of Technology, Pori 20.9.2007<br />
Tilapohjainen testaaminen<br />
• Tilat:<br />
• annetut syötteet vaikuttavat järjestelmän käyttäytymiseen<br />
• Ehdot:<br />
• väittämän evaluointi siirtymän yhteydessä<br />
• Siirtymät:<br />
• liikutaan tilasta toiseen jonkun tapahtuman seurauksena<br />
• Tapahtumat:<br />
• järjestelmän tietyssä tilassa tapahtuva toiminnallisuus<br />
• Testataan kaikki tilasiirtymäparit ja niihin liittyvät ehdot.<br />
• Nämä parit kannattaa taulukoida:<br />
• nykyinen tila, siirtymä, ehto, tapahtuma, seuraava tila<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 79<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Esimerkki<br />
Vaihtoraha<br />
loppu<br />
Juoman<br />
anto<br />
Rahan<br />
syöttö<br />
Rahan<br />
käsittely<br />
Juoman<br />
valinta<br />
Keskeytys<br />
Juoma<br />
loppu<br />
Rahan<br />
palautus<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 80<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 40
Tampere University of Technology, Pori 20.9.2007<br />
Esimerkki<br />
Alkutila<br />
Siirtymä<br />
Ehto<br />
Lopputila<br />
Rahan syöttö Käsitellään rahan arvo Raha syötetty<br />
Rahan käsittely<br />
Rahan käsittely<br />
Hylätään raha<br />
Raha ei kelpaa<br />
Rahan palautus<br />
Rahan käsittely<br />
Keskeytys<br />
Tapahtuma keskeytyy<br />
Keskeytys-nappia painettu<br />
Palautetaan rahat Syötettyjä rahoja > 0<br />
Keskeytys<br />
Rahan palautus<br />
Rahan käsittely<br />
Valitaan juoma<br />
Saldo riittävä<br />
Juoman valinta<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 81<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Datan ja tiedostojen testaus<br />
• Create, Read, Update, Delete:<br />
• datan käsittelyä: esim. luo, lue, päivitä, lue, tuhoa, lue<br />
• Listataan järjestelmän tai toiminnallisuuden päädatat<br />
ja niitä käsittelevät funktiot.<br />
• Testataan CRUD ja funktioiden yhteistoimintaa.<br />
Data<br />
toimittaja asiakas henkilö<br />
Funktio A<br />
R C,R,U,D R,U<br />
Funktio B<br />
C,R,U,D R R,U<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 82<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 41
Tampere University of Technology, Pori 20.9.2007<br />
Data combination test<br />
• Ensin selvitetään testauksen pääkohde:<br />
• esimerkiksi lasku, tilaus ym. paljon dataa sisältävä kohde<br />
• Sitten selvitetään kohteen sisältämä data:<br />
• esimerkiksi maksajan tiedot, tilauksen tiedot jne.<br />
• Seuraavaksi datan ”normaalit” arvot.<br />
• Muodostetaan testitapaukset niin, että erilaiset<br />
kombinaatiot käydään läpi.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 83<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Datan ja tiedostojen testaus<br />
• Tallennusmedia on täynnä tai epäkuntoinen (erityisesti<br />
sulautetuissa järjestelmissä).<br />
• Epämääräiset ää äi tiedostojen t nimet.<br />
• Tiedostojen oikeuksien muuttaminen.<br />
• Korruptoitunut data; väärä data tai tiedostoformaatti.<br />
• Tietokannan konversio; muutokset järjestelmän eri versioiden<br />
välillä tai eri järjestelmien välillä.<br />
• Kilpailutilanteet; useampi yhtäaikainen käyttäjä tai funktio<br />
haluaa muuttaa samaa dataa / tiedostoa.<br />
• Erilaisten käyttäjien oikeudet.<br />
• Tietokannan operaatioiden suorituskyky ja resurssien käyttö.<br />
• Ja tietenkin myös varmuuskopiointi ja palautus.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 84<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 42
Tampere University of Technology, Pori 20.9.2007<br />
Vaatimusten testaaminen<br />
• Vähimmäistestaus sisältää vaatimusten testaamisen.<br />
• Jokaiselle vaatimukselle tehdään vähintään kaksi<br />
testitapausta:<br />
• yksi, jolla todennetaan, että vaatimus on toteutettu<br />
• toinen, jolla yritetään todistaa, että vaatimusta ei ole<br />
toteutettu halutulla tavalla<br />
• Vaatimusmäärittelyn yhteydessä kannattaa tarkistaa<br />
vaatimusten testattavuus:<br />
• tee testitapauksen aikaisin, niin saat virheet kiinni<br />
• jos vaatimusta ei voi testata, niin miten sen voi toteuttaa<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 85<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Vaatimusten testattavuus<br />
• Järjestelmän jokaisesta vaatimuksesta voidaan<br />
myös tehdä taulukko (esim. ei-toiminnallinen<br />
vaatimus):<br />
• ei-toiminnallisen vaatimus / laatukriteerin nimi<br />
• mitä mitataan<br />
• miten mitataan<br />
• mikä on alin läpäisyraja<br />
• mikä on ylin vaatimusraja<br />
• mikä on järjestelmän nykytilanne<br />
• mikä on muiden vastaavien järjestelmien keskimääräinen /<br />
paras arvo<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 86<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 43
Tampere University of Technology, Pori 20.9.2007<br />
(esi)merkillisiä vaatimuksia<br />
• Järjestelmä sallii tilanteeseen sopimattomien<br />
ominaisuuksien poiskytkemisen, joten esim.<br />
varmistusta ei ole pakko käyttää.<br />
• Järjestelmän perustoimintoja (pois lukien ylläpito)<br />
pystyy käyttämään ilman koulutusta suoraan tai<br />
lyhyen ohjeiden lukemisen jälkeen.<br />
• Järjestelmän ylläpito ei vaadi sihteeriltä/toimittajalta<br />
kuin kohtuullisen ajan viikossa normaalikäytössä.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 87<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Kattavuustaulu<br />
Testitapaus<br />
1 2 3 4 5 6 7<br />
Vaatimus<br />
1<br />
kyllä<br />
kyllä<br />
Vaatimus<br />
2<br />
kyllä<br />
kyllä<br />
Ominaisuus<br />
A<br />
ei<br />
ei<br />
kyllä ei ei ei kyllä<br />
Ominaisuus<br />
i<br />
B<br />
ei ei ei kyllä ei kyllä kyllä<br />
Muistinkäyttö ei ei ei ei kyllä<br />
kyllä<br />
ei<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 88<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 44
Tampere University of Technology, Pori 20.9.2007<br />
Järjestelmän käyttö<br />
• Tehokas tapa testata on yrittää matkia<br />
mahdollisimman hyvin järjestelmän lopullista käyttöä.<br />
• Tarkoituksena on luoda erilaisia skenaarioita, jotka<br />
kuvaavat jonkun tietyn tavan käyttää järjestelmää.<br />
• Skenaarioita voi luoda käyttötapauksien pohjalta tai<br />
sitten kehitellä niitä yhdessä järjestelmän<br />
loppukäyttäjien kanssa.<br />
• Samalla testaaja oppii tuntemaan järjestelmän ja sen<br />
loppukäyttäjät entistä paremmin.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 89<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Skenaario<br />
• Kunnollisella skenaariolla on useita tavoitteita:<br />
• se pohjautuu loppukäyttäjien luonnolliseen tapaan käyttää<br />
järjestelmää<br />
• skenaarion pitää olla uskottava, se voi toteutua myös<br />
tosielämässä<br />
• skenaariot sisältävät järjestelmän realistista käyttöä<br />
monipuolisella datalla uskottavassa<br />
järjestelmäkonfiguraatiossa<br />
• testien tulokset pitää olla helposti arvioitavissa ja<br />
testauksessa havaitut virheet on korjattava viipymättä<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 90<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 45
Tampere University of Technology, Pori 20.9.2007<br />
Skenaarioiden luonti<br />
1. Tunnista järjestelmän kaikki loppukäyttäjät.<br />
2. Analysoi sekä tarkkaile, miten he käyttävät järjestelmän eri<br />
toimintoja.<br />
3. Kirjaa loppukäyttäjien erilaisten tehtävien ja järjestelmän<br />
toimintojen suoritusjärjestys.<br />
4. Tunnista järjestelmän erilaiset dataobjektit ja määrittele niihin<br />
kohdistuvat toiminnat (esim. luonti, käyttö, muokkaus,<br />
yhteydet, tuhoaminen).<br />
5. Tunnista järjestelmän end-to-end toiminnallisuudet.<br />
6. Testaa kaikki mahdolliset raportit ja muut tulokset, joita saat<br />
end-to-end toiminnallisuuksista.<br />
7. Tunnista järjestelmän erilaiset tapahtumat ja virheilmoitukset.<br />
8. Kartoita vanhoissa järjestelmissä koetut ongelmatilanteet<br />
yhdessä käyttäjien kanssa.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 91<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Käyttötapauksesta testejä<br />
• Käyttötapauksissa testauksen kannalta tärkeintä on sen<br />
kirjallinen kuvaus (joka vaihtelee eri yrityksissä ja alan<br />
kirjallisuudessa).<br />
• Käyttötapauksen luokitus:<br />
• must have, could have, should have (yhteys vaatimuksiin)<br />
• kriittisyys asiakkaalle<br />
• Esiehdot:<br />
• missä tilassa järjestelmän pitää olla, ennen kuin käyttötapaus<br />
voidaan suorittaa<br />
• hyvää tietoa testitapauksien laadintaan<br />
• Varsinainen käyttötapauksen kuvaus:<br />
• perustestitapaus<br />
• Mahdolliset variaatiot:<br />
• lisää erilaisia testitapauksia<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 92<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 46
Tampere University of Technology, Pori 20.9.2007<br />
Käyttötapauksesta testejä<br />
• Poikkeustilanteet:<br />
• mahdolliset poikkeustilanteet, jotka kaikki ovat hyviä testitapauksia<br />
• Alikäyttötapaukset:<br />
• yleensä tarkempi kuvaus<br />
• taas uusia testitapauksia<br />
• Lopputila:<br />
• missä tilassa järjestelmän pitäisi olla käyttötapauksen jälkeen<br />
• hyvää tietoa testitapauksien laadintaan<br />
• Vasteaika:<br />
• kuinka nopeasti järjestelmän j pitää vastata sen käyttäjälle<br />
• voi olla summittainen aikamääre<br />
• Esiintymistiheys:<br />
• kuinka usein käyttötapaus tapahtuu<br />
• kerran tunnissa / päivässä / viikossa<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 93<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Esimerkki priorisoinnista<br />
Käyttötapauksen<br />
tunniste<br />
Vasteaika<br />
Kriittisyys<br />
Esiintymistiheys<br />
Testausprioriteetti<br />
Kuukausiraportointi<br />
Matala<br />
Kerran<br />
kuukaudessa<br />
Korkea<br />
Korkea<br />
Järjestelmään<br />
kirjautuminen<br />
Nopea<br />
Kerran<br />
päivässä<br />
Korkea<br />
Korkea<br />
Lokien<br />
tyhjentäminen<br />
Matala<br />
Kerran<br />
viikossa<br />
Normaali<br />
Normaali<br />
Uuden lomakepohjan<br />
teko<br />
Normaali<br />
Kerran<br />
vuodessa<br />
Matala<br />
Matala<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 94<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 47
Tampere University of Technology, Pori 20.9.2007<br />
Käyttötapauksesta testejä<br />
Vaatimukset<br />
Käyttötapaus<br />
Alempi<br />
käyttötapaus<br />
Alempi<br />
käyttötapaus<br />
Skenaario<br />
Skenaario<br />
Skenaario<br />
Testitapaus<br />
Testitapaus<br />
Testitapaus<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 95<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Käyttötapauksesta testejä<br />
• Tunnistetaan käyttötapauksen muuttujat:<br />
• ne vaikuttavat käyttötapauksen toteutumiseen ja vaihtelevat<br />
skenaariosta toiseen<br />
• ovat käyttötapauksen syötteitä (tai tuloksia)<br />
• osa voi olla järjestelmän sisäisiä<br />
• osa muuttujista voi olla ympäristötekijöitä, jotka vaikuttavat<br />
aktorin toimintaan<br />
• osan voi löytää järjestelmän tiloista, jos ne vaikuttavat<br />
käyttötapaukseen<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 96<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 48
Tampere University of Technology, Pori 20.9.2007<br />
Käyttötapauksesta testejä<br />
• Selvitetään jokaisen muuttujan arvoalueet.<br />
• Tehdään kaikista muuttujista ja niiden arvoista<br />
päätöstaulu.<br />
• Luodaan testitapaukset:<br />
• karsitaan pois turhat testitapaukset<br />
• luomisessa voidaan käyttää apuna muita tekniikoita<br />
(ekvivalenssiluokat, raja-arvoanalyysi)<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 97<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Esimerkki: pankkiautomaatti<br />
• Käyttötapaus: nosta pankkiautomaatista rahaa<br />
• Tunnista muuttujat:<br />
• Kortti, pin-koodi, nostettava rahamäärä, automaatin<br />
rahatilanne, yhteys pankkiin, tilin rahatilanne<br />
• Määritä arvoalueet:<br />
• Kortti: sirukortti / ”vanha” pankkikortti / luottokortti / ei luottoa<br />
/ joku muu kortti<br />
• Pin: oikea / väärä<br />
• jne<br />
• Tee skenaarioita:<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 98<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 49
Tampere University of Technology, Pori 20.9.2007<br />
Esimerkki<br />
• Käyttötapaus: Web-kaupasta tilaaminen<br />
• Esiehdot:<br />
• Asiakkaan täytyy olla rekisteröitynyt käyttäjä ja hänen pitää<br />
olla kirjautunut sisään järjestelmään.<br />
• Jälkiehdot:<br />
• Asiakas on valinnut ja tilannut haluamansa tuotteet.<br />
Järjestelmä on kirjannut tilauksen tietokantaan ja päivittänyt<br />
kanta-asiakas tietoja. Järjestelmä on lähettänyt asiakkaan<br />
sähköpostiin tilausvahvistuksen.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 99<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Esimerkki<br />
• Kuvaus:<br />
• Asiakas päättää tilata ostoskoriin kerätyt tuotteet ja valitsee<br />
ostoskorista vaihtoehdon ”Tilaa tuotteet”. Järjestelmä<br />
näyttää asiakastiedot, ostoskorin sisällön (tuote- ja<br />
hintatiedot), tilauksen loppusumman ja kysyy tilaukseen<br />
liittyviä lisätietoja, kuten maksu- ja toimitustavan (nouto<br />
suoraan myymälästä, postiennakko, verkkopankkimaksu tai<br />
mahdollisesti laskutus). Järjestelmä kysyy vielä asiakkaalta<br />
tilauksen lopullisen varmistuksen. Asiakkaan vahvistaessa<br />
tilauksen se kirjautuu lopullisesti järjestelmään ja asiakkaan<br />
sähköpostiin lähetetään tilausvahvistus.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 100<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 50
Tampere University of Technology, Pori 20.9.2007<br />
Esimerkki<br />
• Poikkeukset:<br />
• Järjestelmään kirjautuminen ei jostain syystä onnistu. Jos<br />
ostoskori on tyhjä, niin ”Tilaa tuotteet”- toimintoon ei pääse.<br />
Jos asiakas on kanta-asiakas ja hän on tilannut tuotteita yli<br />
1000 euron arvosta, hän saa 10% alennuksen tilauksen<br />
loppusummasta. Vain valituille asiakkaille voidaan tavaraa<br />
toimittaa laskua vastaan. Tilaustiedoissa on jokin tyhjä<br />
kenttä (esim. toimitustapa). Asiakas ei vahvista tilausta.<br />
Tilausvahvistus ei tule jostain syystä perille asiakkaalle.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 101<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Käyttöprofiili<br />
• Software Reliability Engineering<br />
• Käyttöprofiilin tarkoituksena on ohjata tekemään<br />
testausta järjestelmän eniten käytetyille<br />
ominaisuuksille:<br />
• matemaattinen lähestymistapa<br />
• priorisoidaan testausresurssien käyttö<br />
• periaate: häiriöt, joita ilmaantuu eniten, johtuvat viallisista<br />
toiminnallisuuksista, joita käytetään eniten<br />
• käyttäjät huomaavat nämä kaikkein helpoimmin<br />
• Käyttötapauksia voidaan hyödyntää testauksessa:<br />
• vaatii lisäinformaatiota, eli käyttötapauksen toistumisen<br />
tiheyttä<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 102<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 51
Tampere University of Technology, Pori 20.9.2007<br />
SRE prosessi<br />
Määritellään<br />
tarpeellinen<br />
luotettavuus<br />
Kehitetään<br />
toiminnalliset<br />
profiilit<br />
Testaukseen<br />
valmistautuminen<br />
Käytetään vikatietoja<br />
päätöksenteon tukena<br />
Ajetaan testit<br />
Vaatimukset<br />
ja<br />
arkkitehtuuri<br />
20.9.2007<br />
Suunnittelu<br />
ja<br />
toteutus<br />
Testaus<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 103<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Luotettavuuden tasot<br />
Luotettavuuden taso Häiriöt / 1000 tuntia Strategia<br />
Huippuluotettava<br />
< 0.1<br />
Järjestelmän vikasietoisuus<br />
korkea.<br />
Vaihetuotteiden katselmointiin<br />
panostettu.<br />
Korkea<br />
luotettavuus<br />
0.1 - 10<br />
Jonkin asteinen vikasietoisuus.<br />
Vaihetuotteita katselmoidaan<br />
Kaupallinen<br />
10 - 2000<br />
Vaihetuotteiden katselmointia<br />
ohjaavat toiminnalliset profiilit<br />
ja kriittisyys.<br />
Prototyyppi<br />
> 2000 Kokeillaan toimivuutta<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 104<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 52
Tampere University of Technology, Pori 20.9.2007<br />
Luotettavuus ajan suhteen<br />
Luotettavuus 1 tunnin<br />
suorituksen aikana<br />
Häiriön<br />
esiintymisen<br />
todennäköisyys<br />
0.368 1 häiriö tunnissa<br />
0.959 1 häiriö päivässä<br />
0.994 1 häiriö viikossa<br />
0.9986 1 häiriö kuukaudessa<br />
0.99989<br />
1 häiriö vuodessa<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 105<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Käyttöprofiili esimerkki<br />
• Jos järjestelmässä on neljä käyttötapausta:<br />
• haku: tehdään joka toinen minuutti<br />
• lisäys: tehdään kerran viidessä minuutissa<br />
• poisto: tehdään kerran kymmenessä minuutissa<br />
• päivitys: tehdään kerran kymmenessä minuutissa<br />
• Lasketaan esiintymistiheydet suhteessa aikaan:<br />
• haku: 30/60, lisäys: 12/60, poisto ja päivitys: 6/60<br />
• yhteensä: 54/60<br />
• jaetaan käyttötapaus / 54, eli esim. haku 30/54<br />
• esiintymisen todennäköisyydet tunnin aikana:<br />
• haku: 0.56, lisäys: 0.22, poisto ja päivitys: 0.11 eli yhteensä 1<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 106<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 53
Tampere University of Technology, Pori 20.9.2007<br />
Käyttöprofiili esimerkki<br />
• Jos projektissa käytetään testaukseen kaksi viikkoa, eli 80<br />
tuntia, niin kuinka kauan aikaa varataan jokaisen em.<br />
käyttötapauksen testaamiseen:<br />
• haku: 0.56 * 80 = 44 tuntia<br />
• lisäys: 0.22 * 80 = 17 tuntia<br />
• poisto: 0.11 * 80 = 8 tuntia<br />
• päivitys: 0.11 * 80 = 8 tuntia<br />
• Jos projektissa päätetään tehdä 80 testitapausta, niin testit<br />
jakaantuvat samalla periaatteella:<br />
• haku: 0.56 * 80 = 44 testitapaustatit t<br />
• lisäys: 0.22 * 80 = 17 testitapausta<br />
• poisto: 0.11 * 80 = 8 testitapausta<br />
• päivitys: 0.11 * 80 = 8 testitapausta<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 107<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Käyttöprofiili esimerkki<br />
• Mittaustietoa voidaan käyttää hyväksi:<br />
• yhden testitapauksen suunnittelu, toteuttaminen ja suoritus<br />
kestää yhteensä 3 tuntia<br />
• 7% testitapauksista löytää vian, jonka korjaus kestää<br />
keskimäärin 8 tuntia<br />
• Testausvaiheen aika on rajattu 80 tuntiin, montako<br />
testitapausta ehditään ajamaan (pyöristettynä):<br />
• (3T+(0.07*8T) = 80)=>(3.56T = 80)=>T=22<br />
• haku: 0.56 * 22 = 12 testitapausta<br />
• lisäys: 0.22 * 22 = 5 testitapausta<br />
• poisto: 0.11 * 22 = 2 testitapausta<br />
• päivitys: 0.11 * 22 = 2 testitapausta<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 108<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 54
Tampere University of Technology, Pori 20.9.2007<br />
Käyttäjäprofiili<br />
• Käyttäjä:<br />
• ikä, käyttökokemus, asiantuntemuksen taso<br />
• mitä käyttäjä järjestelmältä vaatii ja mitä toimintoja hän<br />
käyttää ja missä suhteessa<br />
• Yhdistelmä eri käyttötapauksista:<br />
• käytetään hyväksi aikaisempia tekniikoita<br />
• muodostetaan erilaisia skenaariota<br />
• yritetään kuvata ja testata järjestelmän oikeaa käyttöä<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 109<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
GUI:n testaus<br />
• Käyttöliittymän tilamallin luominen.<br />
• Miten päästään eri sovelluksiin?<br />
• Miten jokaisessa sovelluksessa toimitaan?<br />
• Miten palataan sovelluksesta päävalikkoon?<br />
• Voidaanko siirtyä sovelluksesta toiseen ilman<br />
päävalikkoa?<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 110<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 55
Tampere University of Technology, Pori 20.9.2007<br />
GUI:n testaus<br />
• Menu-läpikäynti:<br />
• jokainen käyttöliittymän valikko ja dialogi käydään läpi<br />
• Pakota esille kaikki virheilmoitukset.<br />
• Anna arvoja kaikille kysytyille syötteille.<br />
• Kokeile kaikenlaisia sallittuja ja ei-sallittuja syötteitä (luvut,<br />
merkit, merkkijonot).<br />
• Anna liikaa / liian vähän syötearvoja.<br />
• Kartoita eri syötteiden kombinaatiot ja niiden väliset<br />
riippuvuudet.<br />
• Muista toisto.<br />
• Koeta saada erilainen tulos jokaisella syötteellä.<br />
• Koeta saada aikaan vikatuloksia.<br />
• Koeta muuttaa tuloksen ominaisuuksia.<br />
• Muista painaa F5 (refresh).<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 111<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Tutkiva testaaminen<br />
• Exploratory testing<br />
• Samanaikaisesti tapahtuvaa järjestelmän<br />
testaamista; testauksen suunnittelua ja toteuttamista:<br />
• ”kokeile ja katso toimiiko se ja etsi samalla virheitä”<br />
• ”mitä kannattaa testata, mitä tapahtuu jo teen näin...”<br />
• testaaja saa käyttää asiantuntemustaan ja luovuuttaan<br />
• testaaja luo oman mallinsa järjestelmän toiminnallisuudesta<br />
• järjestelmästä tai sen toiminnallisuuksista opitaan koko ajan<br />
enemmän<br />
• edellisen testin tulos vaikuttaa seuraavan testin<br />
suunnitteluun<br />
• ”mikä on paras testi, jonka voin tehdä juuri nyt”<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 112<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 56
Tampere University of Technology, Pori 20.9.2007<br />
Kokeileva testaaminen<br />
• Kohdistetaan järjestelmän riskialttiimpiin kohtiin (ei<br />
ole testattu aikaisemmin, ei tunneta tai<br />
toiminnallisuus i ei ole luotettava)<br />
tt • Voidaan käyttää, jos ei ole dokumentaatiota<br />
testauksen tueksi tai aikaa testaamiseen on liian<br />
vähän.<br />
• Parityöskentelyä (”ajaja + kartturi”), jossa on selvä<br />
aihe ja jonka kesto on korkeintaan pari tuntia.<br />
• Ero ad hoc-testaukseen on siinä, että tutkivassa<br />
testauksessa pitäisi pystyä jäljittämään, mitä on<br />
tehty, eli kokeilevassa testauksessa pidetään<br />
muistiota (mitä tehtiin, mitä tapahtui).<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 113<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Tilastolliset menetelmät<br />
• Periaatteena on vähentää testitapausten määrä<br />
mahdollisimman pieneksi niin, että testien kattavuus<br />
pysyy korkeana.<br />
• Työväline (esim. Allpairs) saatavana ilmaiseksi<br />
webistä:<br />
• http://www.opensourcetesting.org/<br />
• Tarkastelee kombinaatioiden parikattavuutta<br />
(orthogonal arrays).<br />
• Eri syötteiden väliset riippuvuudet voivat olla esteenä<br />
menetelmän käyttämiselle.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 114<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 57
Tampere University of Technology, Pori 20.9.2007<br />
Esimerkki<br />
• Henkivakuutuksen maksuerän suuruuden<br />
laskeminen:<br />
• Maksu kuoleman sattuessa: 100000, 200000 tai 500000 €<br />
• Ikä: alle 20, 20-30, 31-40, 41-50, 51-60, 61-70, yli 70<br />
• Tupakointi (kyllä/ei)<br />
• Vakavia sairauksia (kyllä/ei)<br />
• Vaarallisia harrastuksia (kyllä/ei)<br />
• Eli yhteensä 3*7*2*2*2 = 168 kombinaatiota.<br />
20.9.2007<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 115<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
Esimerkki: Allpairs testitapaukset<br />
20.9.2007<br />
TEST CASES<br />
case Maksu Ikä Tupakka Sairaus Harrastus pairings<br />
1 100000 alle 20 kyllä kyllä kyllä 10<br />
2 200000 alle 20 ei ei ei 10<br />
3 100000 20-30 ei kyllä ei 8<br />
4 200000 20-30 kyllä ei kyllä 8<br />
5 500000 31-40 kyllä kyllä ei 8<br />
6 500000 31-40 ei ei kyllä 7<br />
7 100000 41-50 kyllä ei ei 5<br />
8 200000 41-50 ei kyllä kyllä 5<br />
9 100000 51-60 ei ei kyllä 4<br />
10 200000 51-60 kyllä kyllä ei 4<br />
11 500000 61-70 kyllä ei kyllä 4<br />
12 100000 61-70 ei kyllä ei 4<br />
13 500000 yli 70 ei kyllä ei 4<br />
14 100000 yli 70 kyllä ei kyllä 4<br />
15 500000 alle 20 ~kyllä ~kyllä ~kyllä 1<br />
16 500000 20-30 ~ei ~ei ~ei 1<br />
17 200000 31-40 ~kyllä ~kyllä ~kyllä 1<br />
18 100000 31-40 ~ei ~ei ~ei 1<br />
19 500000 41-50 ~kyllä ~ei ~ei 1<br />
20 500000 51-60 ~ei ~kyllä ~kyllä 1<br />
21 200000 61-70 ~ei ~ei ~ei 1<br />
22 200000 yli 70 ~kyllä ~kyllä ~ei 1<br />
Ohjelmiston testaus - tekniikat © TTY Pori, Arto Stenberg 116<br />
<strong>Tampereen</strong> Teknillinen <strong>yliopisto</strong><br />
<strong>Porin</strong> yksikkö<br />
© Arto Stenberg 58