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

1      Johdanto. 1

2      Termejä. 2

3      Testausympäristö. 3

4      Testauksen toteutus. 3

4.1       Moduulitestaus. 3

4.2       Integrointitestaus. 4

4.3       Järjestelmätestaus. 4

5      Testitapaukset 4


1           Johdanto

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.


2           Termejä

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.


3           Testausympäristö

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ä.

4           Testauksen toteutus

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.

4.1             Moduulitestaus

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.

4.2             Integrointitestaus

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.

4.3             Järjestelmätestaus

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.


 

5           Testitapaukset

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.