Testaussuunnitelma. PLAYOFF Jari Anttila Sanna Fröblom Aarno Sandvik Tommi Paavilainen Miikka Kohijoki. Päivi Pääkkö, ohjaaja

Samankaltaiset tiedostot
Yhteenvetodokumentti. PLAYOFF Jari Anttila Sanna Fröblom Aarno Sandvik Tommi Paavilainen Miikka Kohijoki. Päivi Pääkkö, ohjaaja

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

Ylläpitodokumentti. PLAYOFF Jari Anttila Sanna Fröblom Aarno Sandvik Tommi Paavilainen Miikka Kohijoki. Päivi Pääkkö, ohjaaja

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Vaatimusdokumentti PLAYOFF. Jari Anttila Sanna Fröblom Aarno Sandvik Tommi Paavilainen Miikka Kohijoki. Päivi Pääkkö, ohjaaja

Testaussuunnitelma Labra

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Käyttöohje. PLAYOFF Jari Anttila Sanna Fröblom Aarno Sandvik Tommi Paavilainen Miikka Kohijoki. Päivi Pääkkö, ohjaaja

Testaussuunnitelma. Opeapuri. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma. Asdf. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmistotuotantoprojekti

Playoff kokouspöytäkirja 4

Testaussuunnitelma. Anno3. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma. PUSU-ryhmä. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testausraportti. Orava. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Convergence of messaging

Testaussuunnitelma. Oppimistavoitteiden hallintajärjestelmä harri

UCOT-Sovellusprojekti. Testausraportti

Testaussuunnitelma. Karstula. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Lohtu-projekti. Testaussuunnitelma

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma. myva. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma. Ohjelmistotuotantoprojekti Nero. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Suunnitteludokumentti

T Testiraportti - järjestelmätestaus

Ohjelmiston testaus ja laatu. Testausmenetelmiä

TESTIRAPORTTI - JÄRJESTELMÄ, ADMIN Virtuaaliyhteisöjen muodostaminen Versio 1.0

TESTIRAPORTTI - XMLREADER LUOKKA Virtuaaliyhteisöjen muodostaminen Versio 1.0

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Testaussuunnitelma. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie

Lohtu-projekti. Testiraportti. Versiohistoria: syklin toteutuksen testit. 1. ajo Virve

Hirviö Järjestelmätestauksen testitapaukset ja suoritusloki I1

Testausdokumentti. Sivu: 1 / 10. Ohjelmistotuotantoprojekti Sheeple Helsingin yliopisto. Versiohistoria

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

CoMa - Testausdokumentti

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe LU. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T3

Ohjelmiston testaus ja laatu. Testaustasot

Käyttöohje. Versiohistoria: versio Mari Kommenttien perusteella korjattu versio

Harjoitustyön testaus. Juha Taina

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma. Pizzeria - Pitseria HAAGA-HELIA ammattikorkeakoulu Tietojenkäsittelyn koulutusohjelma. WebPizza

Testausraportti v.1.3

dokumentin aihe Dokumentti: Testausraportti_I1.doc Päiväys: Projekti : AgileElephant

OHJE 1 (14) Peruskoulun ensimmäiselle luokalle ilmoittautuminen Wilmassa

Kuopio Testausraportti Kalenterimoduulin integraatio

T Testiraportti - integraatiotestaus

Testaaminen ohjelmiston kehitysprosessin aikana

T Testiraportti - integraatiotestaus

TIE Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori

TIE Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori

L models. Testisuunnitelma. Ryhmä Rajoitteiset

Hirviö Testausraportti I2

JUnit ja EasyMock (TilaustenKäsittely)

58160 Ohjelmoinnin harjoitustyö

TESTIRAPORTTI - XMLREADER-LUOKKA Virtuaaliyhteisöjen muodostaminen Versio 1.0 (luonnos 2)

Käyttöohje. Aija. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin.

Hirviö Järjestelmätestauksen testitapaukset ja suoritusloki I2

Laadunvarmistustekniikat

Opponointitestaus VYM -> LiKe

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Käyttöohje. KotKot. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Käyttötapausanalyysi ja testaus tsoft

Ohjelmiston testaussuunnitelma

Kuopio. Testitapausluettelo: Projektit-osakokonaisuus

Yhteenvetodokumentti. Halaan-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ylläpito-ohje. Matematiikan oppifoorumi. Carl Johansson Jukka Kariola Outi Marttila Helena Venäläinen Sampsa Virtanen. Ohjaaja.

COTOOL dokumentaatio Testausdokumentit

TESTIRAPORTTI - JÄRJESTELMÄ, PORTAL Virtuaaliyhteisöjen muodostaminen Versio 1.0

Testausdokumentti. Populous. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ylläpitodokumentti Mooan

Test-Driven Development

emo eassari Moodle-ympäristössä Testaussuunnitelma

Automaattinen yksikkötestaus

Määrittelydokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma. Halaan-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Vaatimusmäärittely. Kymenlaakson partiopiirin jäsenrekisteri

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

Testaussuunnitelma Ipa

Drupal-sivuston hallintaopas

Test-Driven Development

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori

Good Minton QA Raportti Iteraatio 1 Sulkapalloliiton Kilpailujärjestelmä

Tik Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu. LiKe Liiketoiminnan kehityksen tukiprojekti

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Testiraportti - Koordinaattieditori

Ohjelmistotuotanto s

Kuopio Testausraportti Asiakkaat-osakokonaisuus

Action Request System

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012

Projektisuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Mihin kaikkeen voit törmätä testauspäällikön saappaissa?

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

Titta-palvelun käyttöohje

Ohjelmiston toteutussuunnitelma

Käyttöohje Vianova Systems Finland Oy Lokakuu 2014

Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

Transkriptio:

Jari Anttila Sanna Fröblom Aarno Sandvik Tommi Paavilainen Miikka Kohijoki Päivi Pääkkö, ohjaaja Helsinki, 10. joulukuuta 2007 Ohjelmistotuotantoprojekti yritysviestinnän oppimateriaalin hallintajärjestelmä Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO

Sisällys 1. Johdanto...1 2. Sanasto...1 2.1 Sisältöä koskeva sanasto...1 2.2 Termistö...2 3. Yksikkötestaus...2 3.1 Lähestymistapa...2 3.1.1 Toiminnallisuuden testaus...2 3.1.2 Rakenteiden testaus...3 3.2 Testattavat kohdat...3 3.3 Hyväksymiskriteerit...3 4. Integrointitestaus...4 5. Järjestelmätestaus...4 5.1 Lähestymistapa...4 5.2 Testattavat kohdat...4 5.3 Hyväksymiskriteerit...4 6. Muu testaus...4 7. Testausaikataulu...4 LIITE 1. PHP-unit -ohjeita LIITE 2. Testausraportti

1. Johdanto Tämän ohjelmistotuotantoprojektin tarkoituksena on tuottaa PHP-kielellä MySQL-tietokannan avulla toimiva oppimateriaalipankki Lingua Hanken -projektin käyttöön. Sovellukseen sisältyy käyttöliittymä sisällöntuottajille oppimateriaalin ylläpitoon ja kehitykseen, loppukäyttäjille materiaalin selaamiseen sekä dokumenttipohjien lataamiseen ja tiedostojen tallentamiseen omalle alueelle sekä järjestelmänvalvojalle käyttäjä-, käyttöoikeus ja materiaalihallintaan. Mahdolliset laajentamistarpeet pyritään ottamaan huomioon. Tämä testaussuunnitelmadokumentti määrittelee projektissa käytettävän testausprosessin, käytettävät menetelmät, testauksen kattavuuden ja testauksen raportoinnin. Testaus jaetaan kolmeen vaiheeseen: yksikkötestaus, integrointitestaus ja järjestelmätestaus. 2. Sanasto Ohessa joitakin dokumentissa esiintyviä termejä selityksineen. 2.1 Sisältöä koskeva sanasto Sivu: Järjestelmässä oleva sisällöntuottajan tekemä aineistokokonaisuus, joka näytetään käyttäjälle web-selaimen kautta. Dokumenttisivu: Sivu, jolla on sisällöntuottajan tekemä dokumenttimalli sekä siihen liittyvät klikkausalueet ohjeteksteineen. Sisältää myös linkit aineistoon liittyviin dokumenttipohjiin. Vakiosivu: Perinteisen html-sivun kaltainen sivu, joka voi sisältää tekstiä ja kuvia. Ei sisällä dokumenttimalleja. Sivurunko: Määrittelee sivun rakenteen eli sivulla olevien kenttien paikat. Kenttä: Kentän avulla määritellään sivun tietyllä paikalla olevan sisällön tyyppi. Vakiosivut voivat otsikon lisäksi sisältää tekstiä ja kuvia, dokumenttisivulla on dokumenttimalli ja mahdolliset linkit dokumenttipohjiin. Klikkausalue: Sisällöntuottajan dokumenttisivulle dokumenttimallin päälle lisäämä toiminnallinen alue, jota klikkaamalla käyttäjälle näytetään kyseiseen alueeseen liittyvä ohjeteksti. Dokumenttimalli: Sisällöntuottajan tekemä yrityskirjeen malli, johon liittyy klikkausalueiden avulla selattavia ohjetekstejä. Dokumenttipohja: Järjestelmästä ladattava sisällöntuottajan tekemä tiedosto, jota loppukäyttäjät voivat käyttää pohjana omiin dokumentteihinsa. Oma alue: Loppukäyttäjän palvelintila, johon hän saa ladata omia korkeintaan 2MB kokoisia tiedostojaan. Loppukäyttäjillä on oman alueen hallinnointia varten sovellukseen sisältyvä käyttöliittymä. Oppimateriaalialue: Sisällöntuottajat säilyttävät tuottamaansa ja tarvitsemaansa materiaalia oppimateriaalialueella. Käyttöliittymäkieli: Kieli, jolla kaikille sivuille yhteiset komponentit näytetään. Sivun kieli: Kiinteä kieli, jonka sisällöntuottaja on valinnut kyseiselle sivulle. - 1 -

Dokumentin kieli: Kieli, jolla dokumenttisivulla oleva dokumenttimalli on kirjoitettu. Materiaali: Puun ylimmältä tasolta alkava materiaalikokonaisuus. Julkinen: Materiaali, joka näkyy loppukäyttäjille. Status: Määrittää onko käyttäjä admin, sisällöntuottaja vai loppukäyttäjä. 2.2 Termistö PHP: Pääasiallinen ohjelmointikieli, lyhenne sanoista hypertext preprocessor. Php:n prosessointi tapahtuu palvelimella. JavaScript: Toissijainen ohjelmointikieli. Vaatii toimiakseen javascriptiä tukevan selaimen. CSS: Cascading style sheets, käytetään HTML-sivujen ulkoasun määrittelyyn. Mysql: Sql-standardia tukeva relaatiotietokanta. Istunto: yhteys käyttäjän / käyttäjän selaimen ja palvelimen välillä. Istunto syntyy kun käyttäjä ottaa yhteyden palvelimeen ja päättyy kun yhteys palvelimeen katkaistaan. Eväste: Käytetään yksittäisen käyttäjän tietojen tallennukseen yhden istunnon aikana. 3. Yksikkötestaus Tässä kappaleessa käsitellään testaussuunnitelmia yksikkötestauksen osalta. 3.1 Lähestymistapa Ohjelmakoodi yksikkötestaus suoritetaan siten, että luokka testataan viimeistään sitten kun se on saatu valmiiksi. Myös valmiiksi saatu funktio voidaan testata, vaikka muu osa luokasta ei olisikaan valmis. Valmiiksi saatu funktio testataan erikseen muista funktioista, jos mahdollista. Jos funktiota ei voida eristää muista funktioista, käytetään ns. tynkiä (stub). Tyngät toteuttavat pienimmän mahdollisen testauksessa vaaditun ominaisuuden. Jos testattavaan funktioon joudutaan liittämään testaamattomia osia, testaamattomia osia ei liitetä testaukseen vaan tilalle tehdään tynkä. Varsinaisia testitapauksia ei kirjata yksikkötestauksen osalta tähän dokumenttiin niiden suuren lukumäärän vuoksi. Testitapaukset kirjoitetaan suoraan testikoodiin kommentteina, joka näin ollen toimii myös yksikkötestauksen dokumentaationa. Yksikkötestauksessa koodi testataan PHP-unit -työkalulla (http://www.phpunit.de/). Ohjeita työkalun käyttöön on liitteenä. 3.1.1 Toiminnallisuuden testaus Luokkien toiminnallisuuden testaus tehdään testaamalla kaikki luokan funktiot sopivilla parametrien arvoalueilla (ks. kohta 3.3) - 2 -

3.1.2 Rakenteiden testaus Ohjelman rakenteiden testaus tehdään, kun toiminnallisuustestit on suoritettu. Lausekattavuuden pitää olla vähintään 90 %. 3.2 Testattavat kohdat Testattavat PHP-moduulit (PHP-tiedostot) ja niiden sisältämät funktiot on määritelty suunnitteludokumentissa. Yksikkötestauksessa testitapauksella tarkoitetaan yhden funktion parametrien testaamista yhdellä arvoalueella (ks. kohta 3.3). 3.3 Hyväksymiskriteerit Testitapaukset valitaan arvoalueanalyysin avulla. Arvoalueanalyysi tarkoittaa funktion kutsuparametrien arvoalueiden luokittelua. Arvoalueet käsitellään eri tavoin riippuen siitä, onko kyseessä lukuarvo vai merkkijono. Lukuarvojen arvoalueet ovat seuraavat 1. NULL 2. alle minimiarvon 3. täsmälleen minimiarvo 4. minimiarvon ja maksimiarvon väliltä 5. täsmälleen maksimiarvo 6. yli maksimiarvon 7. muu kuin lukuarvo (esim. merkkijono) Vastaavasti merkkijonojen arvoalueet ovat a) NULL b) tyhjä merkkijono c) oikea, toimiva arvo d) väärä, mutta oikeanmuotoinen arvo e) vääränmuotoinen arvo Funktioille, joilla on useampia parametreja, pitäisi teoriassa testata kaikki mahdolliset parametrien arvoalueiden kombinaatiot. Esim. jos funktiolla on kaksi int-parametria, kombinaatioita olisi 7 x 7 = 49. Kaikkia mahdollisia kombinaatioita ei kuitenkaan välttämättä testata, vaan testaus kohdistetaan näkemyksen mukaan olennaisimpiin testitapauksiin. Yksikkötestaus katsotaan läpimenneeksi koko tuotteen osalta jos yksikään testitapaus ei epäonnistu ja testit kattavat yhteensä vähintään 90 % koodiriveistä. - 3 -

4. Integrointitestaus Projektissa ei tehty erillistä integrointitestausta, vaan se on sisällytetty yksikkötestaukseen. 5. Järjestelmätestaus Tässä kappaleessa kuvataan, millä tavalla järjestelmätestaus tehdään tässä projektissa. Järjestelmätestausraportti on Liitteessä 2. 5.1 Lähestymistapa Järjestelmätestaus tehdään Firefox 2.0, Internet Explorer 7.0 ja Opera 9.0 selaimilla. 5.2 Testattavat kohdat Järjestelmätestauksessa käydään läpi vaatimusmäärittelyssä sovitut käyttötapaukset kaikilla kohdassa 5.1 mainituilla selaimilla. 5.3 Hyväksymiskriteerit Järjestelmä katsotaan toimivaksi, jos käyttötapaukset menevät läpi kaikilla selaimilla käyttötapauksissa kuvatulla tavalla, eikä virheitä esiinny. 6. Muu testaus Tässä projektissa ei tehdä muuta testausta kuin yksikkö- ja järjestelmätestausta. 7. Testausaikataulu Testaussuunnitelman laadinta aloitetaan viikolla 41 (8.10.) ja sen pitäisi olla valmiina viikolla 45 (11.11.). Yksikkötestaus alkaa viikolla 42 (15.10.) ja päättyy viikolla 47 (25.11.). Integrointi- ja järjestelmätestaus alkaa viikolla 45 (5.11.) ja päättyy viikolla 49 (9.12.). - 4 -

LIITE 1. PHP-unit -ohjeita Testitapaukset kirjoitetaan erilliseen php-tiedostoon, joka ajetaan phpunit-komennolla. Tämän ajon tuloksena on listaus läpimenneistä testitapauksista ja hylätyistä testitapauksista. Testitapausta varten on tiedettävä kolme asiaa: testattavan funktion ominaisuudet, kutsuarvo, ja paluuarvo. Samaa funktiota joudutaan testaamaan useammalla testitapauksella, jotta saadaan testattua eri kutsuparametrien arvoilla. Jokainen testitapaus testaa vain yhden asian, testitapauksen läpimenon tai hylkäämisen merkitys on oltava yksiselitteinen. Testitapauksen läpimeno päätetään vertaamalla funktion paluuarvoa odotettuun tulokseen. Jos tulos ei täsmää on testitapauksen tulos hylätty. Luokkamäärittelyn, class-operaatio, on oltava samalla nimellä kuin tiedostonimenkin. Eli addpage.php-tiedosto sisältää addpagetest-luokan. Jokaista testattavaa php-tiedostoa kohden on yksi Test-tiedosto, ja tämä Test-tiedosto sisältää kaikki testattavan php-tiedoston sisältämien funktioiden testaamiseen tarvittavat testitapaukset. Jokainen testitapaus on oma funktionsa. Testitapaukset ajetaan komennolla:./phpunit Test-tiedosto Test-tiedoston nimestä jätetään pois.php, eli käytännössä viitataan kyseisen tiedoston sisältämän luokan nimeen. Testitapauksen ajamisesta syntyy tuloste, joka kertoo mitkä testitapaukset menivät läpi ja mitkä epäonnistuivat (hylättiin). - 5 -

LIITE 2. Testausraportti Yksikkötestaus Yksikkötestauksessa ei lopulta käytetty PHP-unit -ohjelmaa. Osittain tämä johtui ajanpuutteesta, eli testiluokkia ei saatu aikaiseksi. Osittain katsottiin, että ohjelmiston manuaalinen testaus on riittävää, eli kokeillaan antaa virheellisiä syötteitä käyttöliittymän kautta. Jokainen on hoitanut yksikkötestauksen omien komponenttiensa osalta vaihtelevalla laajuudella, mutta varsinaista testausraporttia yksikkötestauksen osalta ei valitettavasti ole. Järjestelmätestaus Järjestelmätestaus suoritettiin 2.12.2007, ohessa raportti. Raportissa esiintyvät virheet on korjattu, paitsi ulkoasuongelmat ST1:ssä IE-selainta käytettäessä, jota ei yrityksistä huolimatta saatu kuntoon. KT yleiset Havainnot(IE) Havainnot(Firefox) Havainnot(Opera) LK1 Dokumenttisivun ohjeteksti alue hyppii. LK2 LK3 LK4 Salasanakenttien ollessa tyhjiä, tallentuu tyhjä salasana. Salasanaa ei vaadita tietojen muuttamisen=>vaa dittava. LK5 LK6 LK7 ok LK8 LK9 ST1 Tallenna submit ei toimi. Linkkien lisäys ei toimi. Ulkoasu kuntoon. ST2 ST3 Kts.ST1-6 -

ST4 ST5 ST6 ST7 ST8 Luo uusi nappi ylös. Viivoitin täytyy fiksata kiinteäksi. ST9 ST10 Ei toteuteta ST11 Käyttäjä voi toteuttaa kentän paikan vaihdoin copy-pastella. ST12 ST13 Ylimääräinen virheteksti sisällöntuottajalla. ST14 AD1 Formin virheilmoitusten tulostus korjaus, txttiedosto päätteen hyväksyminen pienenä tai isona. Käyttäjänimen trimmaus. Ainakaan gif ja jpg lisäys ei toimi. AD2 AD3 AD4 AD5 Poista ja tallenna nappien paikka kuntoon. Admin ei voi poistaa itseään. AD6 AD7 AD8 Ylläpitoa varten: personalarea, listfiles(), täältä voi muuttaa käyttäjäntiedostojen koko checsanddbconnection, funtiosta getstring() rivi $lang= fin kun muut kielet syötetty - 7 -