02.11.2014 Views

testaustekniikat - Porin yksikkö - Tampereen teknillinen yliopisto

testaustekniikat - Porin yksikkö - Tampereen teknillinen yliopisto

testaustekniikat - Porin yksikkö - Tampereen teknillinen yliopisto

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!