Kaakkuri
Tietotekniikan sovellusprojekti
Petteri Kela
Antti Pokela
Santtu Salmi
Matti Suomalainen
Testaussuunnitelma
21. joulukuuta 2004
Versio 0.1
Tietoja dokumentista
Tekijät: Petteri
Kela, PK, (kapekela@cc.jyu.fi)
Antti Pokela, AP, (anpokela@cc.jyu.fi)
Santtu Salmi, SS, (ssalmi@cc.jyu.fi)
Matti Suomalainen, MS, (msuomal@cc.jyu.fi)
Tilaaja: Jyväskylän yliopisto,
tietotekniikan laitos
Tilaajan edustajat: Päivi Jämsen, (pjamsen@mit.jyu.fi) Vesa
Lappalainen (vesal@mit.jyu.fi)
Vastaava
ohjaaja: Lari
Kannisto (kalahe@mit.jyu.fi)
Tekninen
ohjaaja: Arto
Rikalainen (artturi@cc.jyu.fi)
Käytettävyyskonsultit:
Ville Haapsaari (vjhaaps@cc.jyu.fi)
Jukka Partanen (jpartan@cc.jyu.fi)
Yhteystiedot: Työtila AgC222.2, puhelin (014) 260 4963
Kotisivu: http://sovellusprojektit.it.jyu.fi/kaakkuri/
Postilista: kaakkuri@korppi.jyu.fi
Tiivistelmä: Tämä dokumentti on Kaakkuri-projektin Jyväskylän yliopistolle syksyllä 2004 toteuttaman sovellusprojektin testaussuunnitelma. Testaussuunnitelmassa kuvataan toteutetun sovelluksen testaamisessa käytettäviä menetelmiä, testausympäristöä sekä testitapauksia.
Versiohistoria
Versio |
Päiväys |
Tekijä |
Muutokset |
0.1 |
21.12.2004 |
AP |
Ensimmäinen versio |
Sisällysluettelo
Kaakkuri-projekti on Jyväskylän yliopiston tietotekniikan laitoksella syksyn 2004 aikana toteutettava sovellusprojekti. Projekti toteuttaa Windows-pohjaisen suunnittelusovelluksen yhden tai useamman laitoksen kurssien opetustapahtumien sijoitteluun määriteltyihin saleihin ja ajankohtina.
Tässä dokumentissa kuvataan sovelluksen testaamisessa käytettäviä menetelmiä ja käytäntöjä, sekä testitapauksia. Luvussa 2 kuvataan yleisimpiä projektiin liittyviä termejä. Luku 3 sisältää kuvauksen testaamisessa käytettävästä testausympäristöstä mm. laitteistojen ja ohjelmistojen osalta. Luvussa 4 kerrotaan testauksen eri vaiheista ja toteuttamisesta käytännössä. Luku 5 pitää sisällään tarkemmat testitapaukset, joita tullaan käyttämään sovellusta testattaessa.
Projektin sisällä
sovittuja termejä
Blokki Blokki on apuväline säännöllisen kurssin luentojen sijoittamisessa. Blokkia kuvataan isolla kirjaimella: A, B, C jne. Blokki sitoo yhteen tiettyjä kellonaikoja, tiettyinä päivinä viikossa (blokki A voi siis olla esimerkiksi seuraavanlainen: ma 10-12 ja ti 12-14). Blokkiin A sijoitetut kurssit siis toistuvat joka viikko blokkiin kiinnitettyinä ajankohtina.
Tapahtumaryhmä
Tapahtumaryhmä sisältää tietyn tyyppistä tapahtumaa (luento, demo, ohjaus…) niin monta kappaletta kuin kyseinen tyyppi kurssissa kestää viikoissa. Tämä tieto voidaan laskea, kun tiedetään kuinka monta kyseisen tyypin tapahtumaa kurssissa on ja kuinka monta kertaa viikossa.
Projektissa käytössä olevia yleisiä termejä
Java Java on oliopohjainen, laitteistoriippumaton ohjelmointikieli, mikä mahdollistaa Javalla kirjoitettujen sovellusten ajamisen useilla eri laitteistoarkkitehtuureilla.
Korppi Korppi on opintotietojärjestelmä, joka tarjoaa tietoa ja työvälineitä mm. opiskelijoille ja opettajille. Korppi-järjestelmän avulla voidaan esimerkiksi ilmoittautua kursseille ja tentteihin, varata opetusta varten saleja ja muita työvälineitä jne.
Kaakkuri-sovellusta
pyritään testaamaan mahdollisimman monipuolisesti. Sovellusta suunniteltaessa
on pyritty siihen, että sovellus tulisi toimimaan useilla eri laitteistoalustoilla ja
yleisimmillä käyttöjärjestelmillä. Tämän mahdollistaa se, että sovellus on
laadittu käyttämällä Java-ohjelmointikieltä. Sovellusta tullaan testaamaan
ainakin Windows ja Linux – käyttöjärjestelmissä.
Testaus tehdään pääsääntöisesti Jyväskylän yliopiston projektiryhmän käyttöön antamilla PC-tietokoneilla. Kolmessa koneessa on käyttöjärjestelmänä Windows XP, prosessorina AMD Athlon XP 1600+ ja muistia 512 Mt. Lisäksi projektiryhmällä on käytössään yksi PC-tietokone, johon on asennettuna Fedora Core 1 Linux, ja prosessorina Intel Celeron 700Mhz ja muistia 512 Mt. Tämä mahdollistaa sovelluksen testaamisen myös Linux-ympäristössä.
Tässä luvussa kerrotaan siitä, kuinka sovelluksen testaus on käytännössä toteutettu. Luvussa kuvataan menetelmiä, joiden avulla pyritään poistamaan sovelluksesta löytyviä virheitä mahdollisimman tehokkaasti, ja selvitetään se, toimiiko sovellus vaatimusten mukaisesti. Käytännössä ohjelmakoodia tullaan testaamaan jatkuvasti sovellusta kehitettäessä jo toteutuksen alkuvaiheesta lähtien, aloittaen moduulitestauksella ja tämän jälkeen integrointitestauksena.
Sovelluksen luokkia, aliohjelmia, ikkunoita ja muita yksittäisiä komponentteja testataan yksittäisinä moduuleinaan ennen niiden liittämistä ohjelmaan. Testaamista voidaan myös suorittaa jo olemassa olevan järjestelmän sisällä, mutta tällöin pitää varmistaa, että muut sovelluksen osat eivät vaikuta testaustulokseen. Moduulitestauksen avulla ohjelmakoodista pyritään löytämään ja korjaamaan virheet jo mahdollisimman aikaisessa vaiheessa.
Integrointitestausta suoritetaan liitettäessä sovelluksen osia yhteen, suuremmiksi kokonaisuuksiksi. Tässä vaiheessa testataan näiden osien toimivuus yhdessä ja suurempina kokonaisuuksina
Käytännössä integrointitestausta ja moduulitestausta suoritetaan osittain päällekkäin. Tämä johtuu siitä, että samalla kun jokin sovelluksen moduuli on integrointitestausvaiheessa, saattaa siitä olla jo uudempi versio kehitteillä ja samanaikaisesti moduulitestausvaiheessa.
Järjestelmätestauksessa testataan sovelluksen toimintaa kokonaisuudessaan. Tämän vaiheen aikana pyritään löytämään virheitä sovelluksesta, sekä lisäksi tarkistetaan, että sovellukselle määritellyt ominaisuudet täyttyvät. Tässä vaiheessa testaamisessa käytetään apuna mm. testitapauksia, joita kuvataan tarkemmin tämän dokumentin luvussa 5.
Käytännössä projektin aikana sovelluksesta tehdään useita, jollakin tavalla toimivia prototyyppejä, ja testausta suoritetaan jatkuvasti koko kehitystyön ajan, mm. projektipalaverien aikana.
Tässä luvussa esitellään sovelluksen testaamisessa käytettävät testitapaukset. Testitapaukset on muodostettu vaatimusmäärittely-dokumentissa kuvattujen vaatimusten pohjalta. Testattavat tapaukset on jaettu kahteen prioriteettiluokkaan. Prioriteettiluokkaan A kuuluvat testitapaukset ovat tärkeitä sovelluksen toiminnan kannalta. Prioriteettiluokkaan B kuuluvia tapauksia voidaan jättää toteutettavaksi sovelluksen jatkokehityksen aikana.
1. |
Opiskelijalle tarkoitetut kurssit ei päällekkäin |
A |
Tietylle opiskelijalle lukukausitasolla suunattujen kurssien päällekkäisyys täytyy huomioida. |
2. |
Opettajan kaksoisvaraus |
B |
Samaa opettajaa ei voi asettaa kahteen eri paikkaan samaan aikaan. |
3. |
Pakolliset sivuaineet |
A |
Pakollisten sivuaineiden approbaturtasoiset kurssit tulee olla mahdollista ottaa huomioon suunnittelussa. Pääaineen ja sivuaineen approbaturtasoiset kurssit eivät saisi olla päällekkäin. |
4. |
Salivarausten päällekkäisyys |
A |
Samaan saliin ei voi varata tiettyyn aikaan kuin yhden tapahtuman. |
5. |
Salin koko |
B |
Sovellus huomauttaa suuresta poikkeavuudesta salin koon ja kurssille oletettavasti osallistuvien opiskelijoiden määrän suhteen. |
6. |
Näkymät |
A |
Sovelluksessa on periodi- ja kalenterinäkymä. Kalenterissa näkyy viikko kerrallaan. Käyttäjä voi itse lisätä haluamansa ”periodin” esim. vko 36 – 52 vuonna 2004. |
7. |
Sijoittaminen periodinäkymässä |
A |
Periodinäkymässä voi sijoittaa kurssin kerralla kokonaisuudessaan johonkin blokkiin. Jos kurssi ei mahdu blokkiin, jää ylimääräiset tapahtumat sijoittamatta. Periodinäkymässä voi tapahtumia sijoittaa myös ohi blokkirakenteen viikkoluento kerrallaan. |
8. |
Sijoittaminen kalenterinäkymässä |
A |
Kalenterinäkymässä voidaan käyttää periodinäkymän (kohta 7.) sijoittelumahdollisuuksia ja lisäksi sijoitella yksittäisiä tapahtumia mielivaltaisiin paikkoihin kalenterissa. |
9. |
Yhteys Korppiin |
A |
Sovelluksesta on yhteys korppi-järjestelmään. |
10. |
Haku Korpista |
A |
Sovellus pystyy hakemaan korpista tiedot kursseista (kurssikuvaus, osallistujien määrä, luentojen määrä, aloitus päivämäärä) ja tiedot saleista (nimi, koko, varusteet). |
11. |
Vienti Korppiin |
A |
Sovellus pystyy viemään korppiin kurssiin kuuluvien luentojen ajat (yksittäisten luentojen tarkat ajat ja päivät) ja luennoille varattavat salit. |
12. |
Sijoitetun poistaminen |
A |
Käyttäjä pystyy poistamaan minkä tahansa sijoitetun kurssin, tapahtumaryhmän tai tapahtuman sijoituksen ja se ilmestyy uudestaan sijoittamattomien kurssien joukkoon |
13. |
Blokkieditori |
A |
Sovelluksessa on blokkieditori, jolla pystyy tekemään haluamansa blokkirakenteen. Blokkirakenteen pystyy tallentamaan ja sitä pystyy muokkaamaan. Blokille voi antaa mielivaltaisen nimen. |
14. |
Kurssiryhmät |
A |
Sovelluksessa on kurssiryhmäeditori, jolla voi muodostaa kursseista ryhmiä (tämä mahdollistaa samaan ryhmään kuuluvien kurssien päällekkäisyyden tarkistamisen). Ryhmälle voi antaa mielivaltaisen nimen. Ryhmä voi sisältää toisia ryhmiä. |
15. |
Viikon jakaminen ajanjaksoihin |
B |
Viikko voidaan jakaa juoksevalla numeroinnilla yhden tai useamman tunnin jaksoihin. |
16. |
Kurssien vieminen ilman salivarausta |
B |
Kurssit voidaan viedä Korppi-järjestelmään ilman salivarausta (nähdään mahdolliset päällekkäisyydet). |
17. |
Demot, ohjaukset |
B |
Sovelluksella pystyy sijoittamaan myös kurssiin liittyvät demot, ohjaukset ja mahdolliset muut tapahtumat. |
18. |
Salivarauskonfliktit |
B |
Sovellus huomaa mahdolliset ennalta tiedetyt salivarauskonfliktit ja pystyy huomauttamaan näistä käyttäjälle. Sovellus voi tarvittaessa poistaa tietyltä viikolta luennon ja siirtää sen automaattisesti kurssin loppuun jatkaen näin kurssin kestoaikaa viikolla. |
19. |
Tapahtumien lisääminen |
B |
Käyttäjä pystyy lisäämään haluamansa määrän tietynlaisia tapahtumia johonkin kurssiin ja sijoittelemaan ne normaalisti |
20. |
Tarkat ajat |
A |
Päivämäärät ja kellon ajat tallennetaan tietorakenteisiin tarkasti kalenteritasolla. |