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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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!