Sukututkimustietokantaprojekti

Testausdokumentti

Helsingin yliopisto
Tietojenkäsittelytieteen laitos

Jari Alhonen
Kari Lehmussaari
Heli Lehtelä
Mikko Partanen
Sampo Sutela
Tapio Tiili

Helsinki, 12. joulukuuta 2001
Ohjaaja: Sami Sinipilkka

Asiakas: Suomen Sukututkimusseura

Sisältö

1Johdanto
  1.1 Määritelmät, termit ja lyhenteet
  1.2 Dokumentin rakenne
2 Parserin testaus
  2.1 Parserointi
  2.2 Konfigurointi
3 JSP testaus
  3.1 Järjestelmään rekisteröityminen
  3.2 Sisäänkirjoittautuminen järjestelmään
  3.3 Tutkimusten hallinta
  3.4 Tietokantaan kohdistuvat haut
4 Liitteet

1 Johdanto

1.1 Lyhenteet

CRONUnix-järjestelmissä käytössä oleva daemon, joka ajaa käskyjä tietyin aikavälein
CRONTABKäyttäjäkohtainen cron
DAEMONTaustalla jatkuvasti toiminnassa oleva ohjelma.
GEDCOMGEnealogicalDataCOMmunication, sukututkimustietojen määrityskieli
HTMLHypertextMarkupLanguage, WWW-sivujen sisällön kuvaukseen käytetty koodikieli
HTTPInternet protokolla, selaimen ja palvelimen viestintään
JAVASun Microsystems, Inc. (myöhemmin Sun) -yhtiön kehittämä ohjelmointikieli ja järjestelmäriippumaton ajoympäristö
JAVADocSun-yhtiön kehittämä Java-koodin dokumentointikieli
JAVA2SDKSun-yhtiön kehittämä Java-ohjelmointiympäristö
JDBCJavaDatabaseConnectivity, Java-kielen rajapinta tietokantojen käyttöä varten
JSPJavaServerPages, dynaamisten HTML-sivujen tuottamiseen tarkoitettu koodikieli
MySQLIlmaisjakelussa oleva tietokantaohjelmisto
SERVLETPalvelimella toimiva Java-sovelma
SHELLKomentotulkki
Shell-skriptiKokoelma peräkkäin ajettavia komentotulkin käskyjä, usein tiedostoon talletettuna.
TOMCATPalvelinohjelmisto JSP-koodikielelle

1.2 Dokumentin rakenne

Testausdokumentti on jaettu neljään lukuun. Dokumentissa on esitelty tärkeimpiä testitapauksia, joilla järjestelmää on testattu.

Toisessa luvussa käydään läpi parseriin liittyviä virhetilanteita. Testauksessa on pyritty löytämään kattavasti erilaisia virhetilanteita. Tässä dokumentissa ei ole käsitelty kieliopillisesti oikeiden gedcom tiedostojen parserointia. Lisäksi parserin testauksessa on käyty läpi erilaisten konfiguraatioiden vaikutus ohjelmiston toimintaan.

Kolmannessa luvussa esitellään käyttöliittymän testausta. Testauksessa on käyty läpi tapauksia, joilla on tarkistettu käyttäjän tietojen hallinan, tutkimusten hallinan sekä tutkimuksiin kohdistuvien haukujen ja niistä seuranneiden tulosteiden virheettömyys.

2 Parserin testaus

2.1 Parserointi

Gedcom tiedostojen parserointi tuottaa asianmukaisia SQL-lauseita. Parserin tulee hylätä väärät Gedcom rakenteet.

Testitapaus: ' ja " merkkien käsittely:
Odotettu tulos: Kaikki lainaus ja heittomerkit käsitellään siten että niiden eteen lisätään \-merkki, jotta ne voidaan syöttää ongelmitta MySQL tietokantaan.

Lähdetiedosto:
0 HEAD
0 @I1@ INDI
1 NAME 'Pekka Vilppu', Pekanpoika /Schneider/
1 SEX M
1 BIRT
2 PLAC "Villikkalassa", Elimäen
2 DATE 24 Apr 1768
1 DEAT
2 PLAC Pilkanmaalla, Iitin
2 DATE 24 Mar 1825
2 CAUS keuhkotautiin (lungsot)
1 SOUR @S1@
2 PAGE 514
0 TRLR

Saatu tulos:
INSERT INTO Incident VALUES(1,"0","I1","BIRT","\"Villikkalassa\", Elimäen","17680424","",1,1);
INSERT INTO Text VALUES(1,"2","1","CAUS",1,"keuhkotautiin (lungsot)");
INSERT INTO Incident VALUES(1,"1","I1","DEAT","Pilkanmaalla, Iitin","18250324","",1,2);
INSERT INTO Text VALUES(1,"3","S1","PAGE",1,"514");
INSERT INTO RefText VALUES(1,"S1","I1","3");
INSERT INTO Individual VALUES(1,"I1","\'Pekka Vilppu\', Pekanpoika /Schneider/","M");
INSERT INTO Contents VALUES(1,"I1","\'Pekka Vilppu\', Pekanpoika /Schneider/","\"Villikkalassa\", Elimäen","Pilkanmaalla, Iitin","17680424","18250324");

Testitapaus: Tyhjien rivien käsittely/tiedoston virheellinen loppu/rakenteellisesti väärä gedcom lähdetiedosto):
Odotettu tulos: Parseri ei käsittele muita, kuin gedcom muotoista lähdemateriaalia.

Lähdetiedosto:
0 HEAD
0 @I1@ INDI
1 NAME 'Pekka Vilppu', Pekanpoika /Schneider/
1 SEX M
1 BIRT
2 PLAC "Villikkalassa", Elimäen
2 DATE 24 Apr 1768
1 DEAT
2 PLAC Pilkanmaalla, Iitin
2 DATE 24 Mar 1825
2 CAUS keuhkotautiin (lungsot)
1 SOUR @S1@
2 PAGE 514

Saatu tulos:
Ei tuota SQL käskyjä.
Lokitiedosto sisältää ilmoituksen:
[Faulty Gedcom Structure], Severity: Critical, |Linenumber: xx
Tietokantaan kirjoitetaan myös kyseinen ilmoitus.

Testitapaus: Testataan päivämäärän toimivuutta.
Odotettu tulos: Ohjelman tulisi ymmärtää kuukaudet kolmikirjaimisina lyhenteinä englanninkielisistä kuukausien nimistä. Ne jotka eivät ole oikein hylätään.

Lähdetiedosto:
0 @I1@ INDI
1 NAME John Fitzgerald /Kennedy/
1 SEX M
1 OCCU President of the USA
1 BIRT
2 DATE 29 xyz 1917
2 PLAC Brookline, MA
1 DEAT
2 DATE 22 NOV 1963
2 PLAC Dallas, TX
1 BURI
2 PLAC Arlington National Cemetery, Virginia
1 NOTE MESSAGE LINE FOR JFK
1 FAMS @F1@
1 FAMC @F2@

Saatu tulos: =odotettu tulos

Testitapaus: Useampi peräkkäinen sama kenttä.
Odotettu tulos: Useammista samoista peräkkäisistä kentistä viimeinen on merkitsevä.

Lähdetiedosto:
0 @I4@ INDI
1 NAME Mary /MC LACHLAND/
1 NAME Very /MC LACHLAND/
1 SEX F
1 FAMS @F2@

Saatu Tulos:
INSERT INTO FamilyOrder VALUES(10","F2","I4",1);
INSERT INTO Individual VALUES(10,"I4","Very /MC LACHLAND/","F");

Testitapaus: Erikoismerkkien tunnistus
Odotettu tulos: Jäsentimen tulee tunnistaa erisnimien yhteydessä käytettävät erikoismerkit.

Lähdetiedosto:
0 @I2@ INDI
1 NAME Samuell /ARTUS/
1 SEX M
1 FAMS @F1@
1 NOTE This is a general note for Samuell ARTUS.
0 @I3@ INDI
1 NAME Sarah /MÄC DONNELL/
1 SEX F
1 BIRT
2 DATE 20 Mar 1745
2 PLAC Tyrväällä
1 BAPL
2 DATE 30 Jun 1978
2 TEMP OGDEN
1 ENDL
2 DATE 17 Aug 1978
2 TEMP OGDEN
1 FAMC @F2@
1 NOTE Batch #: 7808132, Sheet #: 40, Source Call #: 1126257
0 @I4@ INDI
1 NAME Héléné /MC Müller/
1 SEX F
1 FAMS @F2@
1 FAMC @F2@
1 FAMC @F4@
0 @I5@ INDI
1 NAME James /MC DONNELL/
1 SEX M
1 FAMS @F2@

Saatu tulos:
INSERT INTO FamilyOrder VALUES(10","F1","I2",1);
INSERT INTO Text VALUES(10,"0","I1","NOTE",1,"Batch #: M022485, Source Call #: 374449");
INSERT INTO FamilyOrder VALUES(10","F1","I2",2);
INSERT INTO Text VALUES(10,"1","I1","NOTE",1,"This is a general note for Samuell ARTUS.");
INSERT INTO Individual VALUES(10,"I1","Samuell /ARTUS/","M");
INSERT INTO Incident
VALUES(10,"2","I3","BIRT","Tyrväällä","17450320","","DATE",1);
INSERT INTO Text VALUES(10,"3","I3","NOTE",1,"Batch #: 7808132, Sheet #: 40, Source Call #: 1126257");
INSERT INTO Individual VALUES(10,"I3","Sarah /MÄC DONNELL/","F");
INSERT INTO FamilyOrder VALUES(10","F2","I4",1);
INSERT INTO Individual VALUES(10,"I4","Héléné /MC Müller/","F");
INSERT INTO FamilyOrder VALUES(10","F2","I5",1);
INSERT INTO Individual VALUES(10,"I5","James /MC DONNELL/","M");

2.2 Konfigurointi

Testitapaus: Hakemistojen muuttaminen
Odotettu tulos: Muuttamalla hakemistoja Config.cfg tiedostossa, vaikutetaan siihen, mistä parseri etsii lähdetiedostoja ja minne SQL-scriptit talletetaan.

Tulos: =odotettu tulos

Testitapaus: Puuttuvat arvot Config.cfg tiedostossa
Odotettu tulos: Jos Config.cfg tiedostosta puuttuu arvoja tai tiedostoa ei löydy, käyttää parseri sisäänrakennettuja vakio arvoja.

Tulos: =odotettu tulos

3 JSP testaus

3.1 Järjestelmään rekisteröityminen

Testitapaus: Uuden käyttäjän rekisteröinti
Odotettu tulos: Syöttämällä käyttäjän nimen, käyttäjätunnuksen, salasanan ja sähköposti osoitteen, luodaan uusi käyttäjätunnus, mikäli tätä tunnusta ei jo ole järjestelmässä.

Tulos: =odotettu tulos

Testitapaus: Käyttäjätietojen muuttaminen
Odotettu tulos: Kirjauduttuaan järjestelmään, käyttäjä voi muuttaa omia rekisteröinnin yhteydessä antamiaan tietoja.

Tulos: =odotettu tulos

Testitapaus: Käyttäjätietojen poisto
Odotettu tulos: Kirjauduttuaan järjestelmään, käyttäjä voi poistaa oman tunnuksensa, jolloin kaikki kyseisellä tunnuksella syötetyt tutkimukset sekä käyttätiedot poistuvat järjestelmästä.

Tulos: =odotettu tulos

3.2 Sisäänkirjoittautuminen järjestelmään

Testitapaus: Olemassa olevalla tunnuksella ja salasanalla sisäänkirjoittautuminen
Odotettu tulos: Syöttämällä tunnuksen ja salasanan oikein, kirjoittaudutaan järjestelmään.

Tulos: =odotettu tulos

Testitapaus: Väärällä tunnuksella tai salasanalla sisäänkirjoittautuminen
Odotettu tulos: Järjestelmään kirjoittautuminen ei onnistu.

Tulos: =odotettu tulos

3.3 Tutkimusten hallinta

Testitapaus: Tutkimuksen lisääminen
Odotettu tulos: Sisäänkirjoittautumisen jälkeen on mahdollista lisätä uusi tutkimus järjestelmään. Tiedosto siirtyy käyttäjän koneelta oikein järjestelmään, jossa parseri kääntää Gedcomtiedoston SQL-lauseiksi, jotka tämän jälkeen suoritetaan ja tutkimus siirtyy tietokantaan.

Tulos: =odotettu tulos

Testitapaus: Tutkimuksen poisto järjestelmästä
Odotettu tulos: Sisäänkirjoittautumisen jälkeen on mahdollista poistaa itse lisäämiään tutkimuksia järjestelmästä.

Tulos: =odotettu tulos

Testitapaus: Tutkimuksen päivittäminen
Odotettu tulos: Sisäänkirjoittautumisen jälkeen on mahdollista päivittää itse lisäämiään tutkimuksia järjestelmässä. Alkuperäinen tutkimus poistetaan tietokannasta ja uusi tutkimus lisätään järjestelmään vanhan päälle.

Tulos: =odotettu tulos

3.4 Tietokantaan kohdistuvat haut

Yksilöivä haku ja tulostus

Testitapaus: Haun kriteerit eivät vastaa järjestelmästä löytyviä yksilöitä
Odotettu tulos: Käyttäjälle ilmoitetaan, että haku ei tuota tulosta.

Tulos: =odotettu tulos

Testitapaus: Haku henkilön nimellä
Odotettu tulos: Haun tulee kohdistua yksilöihin, joiden nimessä on annettu merkkijono.

Tulos: =odotettu tulos

Testitapaus: Haku synnyin- tai kuolinpaikan mukaan
Odotettu tulos: Haun tulee kohdistua yksilöihin, joiden synnyin- tai kuolinpaikan nimessä esiintyy annettu merkkijono.

Tulos: =odotettu tulos

Testitapaus: Haku synnyin- tai kuolipäivämäärän mukaan
Odotettu tulos: Haettu päivämäärä voidaan valita määritellen se joko tarkkana, ennen tai jälkeen kyseistä aikaa tai kahden päivämäärän välillä. Haku kohdistuu yksilöihin, joiden synnyin- tai kuolinaika täsmää määriteltyyn päivämäärään.

Tulos: =odotettu tulos

Testitapaus: Haku ilman määreitä
Odotettu tulos: Haku antaa tuloksena kaikki järjestelmän yksilöt.

Tulos: =odotettu tulos

Testitapaus: Yksilön tulostus
Odotettu tulos: Haun tuloksena saadun yksilön tulosteessa tulee näkyä, mikäli löytyvät, yksilön syntymä sekä kuolinaika ja paikka, isovanhemmat, vanhemmat, puolisot, lapset, näiden ammatit, synnyin ja kuolinajat sekä paikat ja yksilöön liittyvät muut tapahtumat ja näiden lähteet.

Tulos: =odotettu tulos

Testitapaus: Jatkohaut
Odotettu tulos: Yksilön tulosteesta on mahdollista siirtyä yksilöön liittyvien henkilöiden tulosteisiin.

Tulos: =odotettu tulos

4 Liitteet

  1. GEDCOM-standardi
  2. Työnkuvaus