T-76.115 Testiraportti TR-2. ETL-työkalu



Samankaltaiset tiedostot
T Testiraportti TR-3. ETL-työkalu

ETL-DEMO. Esimerkki ETL-kuvauskielen käyttöstä

Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

T Testitapaukset TC-1

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

Laadunvarmistuksen suunnitelma. Ryhmä ExtraTerrestriaLs Aureolis Oy

Laadunvarmistuksen suunnitelma. Ryhmä ExtraTerrestriaLs Aureolis Oy

Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

TESTIRAPORTTI - XMLREADER LUOKKA Virtuaaliyhteisöjen muodostaminen Versio 1.0

Tekninen määrittely. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

Tekninen määrittely. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

Tekninen määrittely. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

T Testiraportti - integraatiotestaus

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

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

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

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

Good Minton QA Raportti Iteraatio 1 Sulkapalloliiton Kilpailujärjestelmä

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

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

T Testiraportti - järjestelmätestaus

Lohtu-projekti. Testaussuunnitelma

Testauksen hallintaa teekkareille (ja muille kiinnostuneille) Arto Stenberg

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

T Testiraportti - integraatiotestaus

Hirviö Testausraportti I2

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

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

Testausraportti. Dokumentti: Testausraportti_I2.doc Päiväys: Projekti : AgileElephant

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

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

SQL - STRUCTURED QUERY LANGUAGE

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

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Testaussuunnitelma Labra

T Projektikatselmus

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

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

L models. Testisuunnitelma. Ryhmä Rajoitteiset

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Tietokannat II -kurssin harjoitustyö

Testiraportti - Koordinaattieditori

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

Convergence of messaging

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

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

Testidatan generointi

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]

Tietokantojen suunnittelu, relaatiokantojen perusteita

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

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

UCOT-Sovellusprojekti. Testausraportti

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

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

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

Kirjasto Relaatiotietokannat Kevät Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

Relaatiomalli ja -tietokanta

Kuopio Testausraportti Kalenterimoduulin integraatio

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

T SEPA - päiväkirja: Design Patterns. ETL työkalu

Kuva 7.2 vastaustaulu harjoitukseen 7.2

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

Ylläpitodokumentti Labra

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

T Edistymisraportti. ExtraTerrestriaLs I1 iteraatio

LINUX-HARJOITUS, MYSQL

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

SELVITYSRAPORTTI LABRA-VERKON MYSQL:n JA PHP:n KÄYTTÖÖNOTOSTA. Jarkko Kähkönen

Testitapaukset - Siirtoprotokolla

RADAR - RANDOM DATA GENERATOR

HOJ Haja-aiheita. Ville Leppänen. HOJ, c Ville Leppänen, IT, Turun yliopisto, 2012 p.1/10

Aditro Tikon versio SP1

Työkalut ohjelmistokehityksen tukena

Aditro Tikon versio SP1

Teknillinen korkeakoulu T Tietojenkäsittelyopin ohjelmatyö. Testausraportti Smartmeeting opponointi

58160 Ohjelmoinnin harjoitustyö

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

CSE-A1200 Tietokannat

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

HELIA 1 (14) Outi Virkki Tiedonhallinta

Ohjelmiston testaussuunnitelma

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki

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

Tapahtumakalenteri & Jäsentietojärjestelmä Toteutus

2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC;

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Hirviö Laadunvarmistussuunnitelma

Kuopio Testausraportti Asiakkaat-osakokonaisuus

COTOOL dokumentaatio Testausdokumentit

HYVÄKSYMISTESTAUS- RAPORTTI - HAKEUTUJAN PALVELUT JA TODENNETUN OSAAMISEN REKISTERI

Transkriptio:

T-76.115 Testiraportti TR-2 ETL-työkalu ExtraTerrestriaLs Versio Päivämäärä Tekijä Kuvaus 1.0 07.02.05 Risto Kunnas Ensimmäinen versio 1.1 08.02.05 Risto Kunnas Lisätty liitteet Sivu 1 / 11

Sisällysluettelo 1Yhteenveto... 2 2Muutokset testaussuunnitelmaan... 2 3Testauksen kattavuus... 2 4Yhteenveto tuloksista...3 5Tulosten arviointi...3 Liite A Virheraportti Jirasta... 5 Liite B Testiprosessit... 6 Liite C Testausohje ryhmälle... 10 1 Yhteenveto Testaus suoritettiin alkuperäisen testaussuunnitelman mukaisesti käyttäen hyväksi kuvauskielellä luotavia prosessikuvauksia ja testitauluja. Prosessikuvaukset ja testitaulut löytyvät ryhmän versionhallintajärjestelmästä. Testatut osat on kuvattu kappaleessa 3. Testattavat versiot olivat kehitysversioita, poislukien Join komponentin katselmointi, jossa käytettiin rajattua versiota, koska versionhallintajärjestelmässä ollut kehitysversio ei ollut toimivat. Testaus suoritettiin WindowsNT ympäristössä MySQL kannassa. 2 Muutokset testaussuunnitelmaan Alkuperäisessä testaussuunnitelmassa pidettiin tärkeänä aloittaa toiminnallinen testaus V- mallin alimmalta tasolta, eli yksikkötestauksesta. Tällöin yhtenä yksikkönä olisi ollut yksittäinen toimenpide. Osoittautui kuitenkin, että suurin osa toimenpiteistä on toiminnaltaan varsin yksinkertaisia, mutta nojautuvat kuitenkin koko järjestelmään ja etlmoottorin tarjoamiin palveluihin. Tästä syystä järjestelmällinen yksikkötestaus päätettiin sivuuttaa kokonaan, ja aloittaa varsinainen testaus järjestelmätestaustasolta. Tällöin kerralla löydettävien virheiden määrä saattaa kasvaa suureksi, mutta prosessikuvaustiedostojen mahdollistama automaattitestaus korvannee helppoudellaan pienen ylimääräisen työn virheiden lähdettä selvitettäessä. 3 Testauksen kattavuus Tässä iteraatiossa toteutettua testausta ei voida pitää kovinkaan kattavana. Testaukseen kuuluivat seuraavat toimenpiteet: Join (Funktionaalisen testauksen lisäksi myös katselmointi) ImportSQL Export Sivu 2 / 11

Filter Pivot On kuitenkin huomattava, että vaikka toimenpiteistä testattiin vain pieni osa, kattoivat nämä toimenpiteet itse ETL-moottorin toiminnallisuuden melko hyvin. Esimerkiksi Joinissa oleva virheidenkäsittelykonsepti on tärkeä prototyyppi koko järjestelmän kannalta. Testauksen kattavuutta rajoitti osittain puutteellinen dokumentaatio, sillä kaikkia ominaisuuksia ei ole täydellisesti dokumentoitu, jolloin testausta ei voi kovin järjestelmällisesti suorittaa. Testauksen yhteydessä jouduttiin joissain kohdin miettimään, että onko kyseessä ominaisuus vai bugi. Tästä voi päätellä, että kaikkia toteutettuja ominaisuuksia ei ollut testaajan tiedossa. Kattamattomuudesta huolimatta testauksessa löydetyt virheet antavat suuntaa mihin kannattaa kiinnittää toimenpiteissä huomiota. Varsinaista toimenpiteiden viilailua ei ole vielä edes aloitettu, eikä 100% kattavaa testausta ole pidetty tärkeänä. Kaikista toimenpiteistä on jossain vaiheessa hyväksytysti suoritettu positiivinen prosessiajo, mutta tätä ei ole erikseen dokumentoitu eikä virheitä raportoitu, vaan ohjelmoija on tehnyt muutokset suoraan ajon perusteella. Toimenpide Joinille suoritettiin funktionaalisen testauksen lisäksi myös katselmointi, jossa pyrittiin löytämään puutteita dokumentaatiosta. 4 Yhteenveto tuloksista Komponentti /(testi sarja) Blocker Critical Major Minor Trivial Yht. Filter 0 0 0 0 0 0 ImportSQL 0 0 1 1 0 2 Export 0 0 0 1 1 2 Join 0 0 3 3 2 8 Pivot 0 0 1* 0 0 1 Muut** 0 0 3 0 0 3 Yhteensä 8 5 3 16 *Pivotissa ollut virhe korjattiin välittömästi löytymisen yhteydessä **Testauksen yhteydessä virheiden syytä tutkittaessa paljastui myös virheitä muissa komponenteissa 5 Tulosten arviointi Filter Komponentti Kuvaus Kattavuus Pass/Fail Toimii määritelmän mukaisesti osana prosessia Hyvä Pass Sivu 3 / 11

Komponentti Kuvaus Kattavuus Pass/Fail ImportSQL Export Join Pivot Toimii määritelmän mukaisesti osana prosessia, osa erikoistilanteista aiheuttaa prosessin keskeytymisen Toimii määritelmän mukaisesti osana prosessia, osa erikoistilanteista aiheuttaa prosessin keskeytymisen Toimii määritelmän mukaisesti osana prosessia, osa erikoistilanteista aiheuttaa poikkeuksen, jota ei ole määritelty tarkemmin Toimii määritelmän mukaisesti osana prosessia (Toiminnallisuutta ei testattu) Kattavuus on arvioitu asteikolla Hyvä, Tyydyttävä ja Välttävä. Hyvä Hyvä Hyvä Välttävä - Tuloksia verrattaessa edellisiin iteraatioihin, on huomattava, että testaus on varsinaisesti käynnistynyt vasta tässä iteraatiossa Edellisten iteraatioiden virhemäärät perustuvat lähinnä dokumentaation katselmointiin ja löydetyt virheet ovat luonteeltaan eri laatuisia. Pass Pass Pass Sivu 4 / 11

Liite A Virheraportti Jirasta Avain Yhteenveto Status Prioriteetti Komponentit ETL-149 Moottori / Turha varoitus export:in yhteydessä Avoin Trivial ETL-työkalu/ moottori ETL-147 Aggregate / Update / Append, eivät toimi ilman source tablen määrittelyä Ratkaistu Major Ei mitään ETL-146 Pivot / tekee pivotin viimeeksi importatusta taulusta Ratkaistu Major ETL-työkalu/ toimenpiteet ETL-145 Virheilmoituksia suomeksi Avoin Trivial ETL-työkalu/ moottori ETL-144 Join / Virhe(?) virhetaulun generoinnissa Avoin Trivial Ei mitään ETL-143 Join / Samat taulut Avoin Trivial ETL-työkalu/ toimenpiteet/join ETL-142 Join / taulujen järjestys Avoin Trivial ETL-työkalu/ toimenpiteet/join ETL-141 Join / Jos sarakkeet erityyppisiä, SQL exception Avoin Minor ETL-työkalu/ toimenpiteet/join ETL-140 Join / Samanlaiset taulut Avoin Minor ETL-työkalu/ toimenpiteet/join ETL-139 Moottori/ Epäinformatiivinen virheilmoitus Avoin Minor ETL-työkalu/ moottori ETL-138 Export / Appendaus puuttuu, kohdetaulu ylikirjoitetaan Avoin Major Ei mitään ETL-137 ImportSQL, ei toimi jos lahdekantaa ei määritelty prosessikuvauksessa Avoin Minor Ei mitään ETL-136 Prosessin suoritus keskeytyy, jos Exportin lähdetaulua ei ole Avoin Minor Ei mitään ETL-135 Prosessin suoritus keskeytyy, jos ImportSQL:n lähdetaulua ei löydy Avoin Minor Ei mitään ETL-134 Puuttuvat kentät aiheuttavat NullPointerExceptionin Avoin Major ETL-työkalu/ kuvauskieli ETL-133 Puutteelliset virheilmoitukset kuvauskielen parserissa Avoin Major ETL-työkalu/ kuvauskieli ETL-123 Poikkeukset täytyy välittää ulos Databasen metodeista Ratkaistu Major ETL-työkalu/ moottori ETL-120 Exception-kohtiin releaseconnection() Ratkaistu Minor ETL-työkalu/ toimenpiteet/join ETL-106 ImportSQL/Database-luokka ei hae indeksejä oikein Ratkaistu Major ETL-työkalu/ toimenpiteet Avain on viite Jiran tarkempaan virhekuvaukseen Sivu 5 / 11

Liite B Testiprosessit Import / Export Tässä kuvattu testiprosessi testaa import / export yhdistelmiä eri kantojen välillä ja eri taulutyypeillä. <?xml version="1.0" encoding="utf-8"?> <etl xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation="d:/temp/source/com/aureolis/etltool/test/skema.x sd"> <!-- --> <etlprocess name="myynnit1" workingdatabaseid="tyokanta"> <operations> <importsql name="tyhjataulu" sourcetable="tyhjataulu" <importsql name="olematontaulu" sourcetable="none" <importsql name="isotaulu" sourcetable="iso" <importsql name="tyhjataulu2" sourcetable="tyhjataulu"/> <importsql name="olematontaulu2" sourcetable="none"/> <importsql name="isotaulu2" sourcetable="iso"/> <importsql name="tyhjataulu3" sourcetable="tyhjataulu" <importsql name="olematontaulu3" sourcetable="none" <importsql name="isotaulu3" sourcetable="iso" <importsql name="tyhjataulu" sourcetable="tyhjataulu" <importsql name="olematontaulu" sourcetable="none" <importsql name="isotaulu" sourcetable="iso2" <importsql name="tyhjataulu2" sourcetable="tyhjataulu"/> <importsql name="olematontaulu2" sourcetable="none"/> <importsql name="isotaulu2" sourcetable="iso2"/> <importsql name="tyhjataulu3" sourcetable="tyhjataulu" <importsql name="olematontaulu3" sourcetable="none" <importsql name="isotaulu3" sourcetable="iso2" <export source="tyhjataulu" destinationdatabaseid="tietovarasto" destinationtable="tyhjataulu"/> <export source="tyhjataulu2" destinationdatabaseid="tietovarasto" destinationtable="tyhjataulu2"/> <export source="tyhjataulu3" destinationdatabaseid="tietovarasto" destinationtable="tyhjataulu3"/> Sivu 6 / 11

<export source="olematontaulu" destinationdatabaseid="tietovarasto" destinationtable="olematontaulu"/> <export source="olematontaulu2" destinationdatabaseid="tietovarasto" destinationtable="olematontaulu2"/> <export source="olematontaulu3" destinationdatabaseid="tietovarasto" destinationtable="olematontaulu3"/> <export source="isotaulu" destinationdatabaseid="tietovarasto" destinationtable="isotaulu"/> <export source="isotaulu2" destinationdatabaseid="tietovarasto" destinationtable="isotaulu2"/> <export source="isotaulu3" destinationdatabaseid="tietovarasto" destinationtable="isotaulu3"/> <export source="tyhjataulu" destinationdatabaseid="tietovarasto" destinationtable="tyhjataulu"/> <export source="tyhjataulu2" destinationdatabaseid="tietovarasto" destinationtable="tyhjataulu2"/> <export source="tyhjataulu3" destinationdatabaseid="tietovarasto" destinationtable="tyhjataulu3"/> <export source="olematontaulu" destinationdatabaseid="tietovarasto" destinationtable="olematontaulu"/> <export source="olematontaulu2" destinationdatabaseid="tietovarasto" destinationtable="olematontaulu2"/> <export source="olematontaulu3" destinationdatabaseid="tietovarasto" destinationtable="olematontaulu3"/> <export source="isotaulu" destinationdatabaseid="tietovarasto" destinationtable="isotaulu"/> <export source="isotaulu2" destinationdatabaseid="tietovarasto" destinationtable="isotaulu2"/> <export source="isotaulu3" destinationdatabaseid="tietovarasto" destinationtable="isotaulu3"/> </etl> </operations> </etlprocess> Filter Koska filter toimittaa filter ehdon sellaisenaan, ei erilaisia where ehtoja ole testattu, vaan on käytetty yhtä ja samaa ehtoa. <?xml version="1.0" encoding="utf-8"?> <etl xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation="d:/temp/source/com/aureolis/etltool/test/skema.x sd"> <!-- --> <etlprocess name="myynnit1" workingdatabaseid="tyokanta"> <operations> <importsql sourcetable="iso" Sivu 7 / 11

destinationtable="filtertest"/> <importsql sourcetable="iso" <filter where="id > 5015"></filter> destinationtable="filtertest1"/> <importsql name="testi1" sourcetable="iso" <filter source="testi1" where="id > 1015"></filter> destinationtable="filtertest2"/> <importsql sourcetable="iso" <filter name="testi2" where="id > 1015"></filter> <export source="testi2" destinationdatabaseid="tietovarasto" destinationtable="filtertest3"/> <importsql sourcetable="iso" <filter where="id > 5015"></filter> <filter where="id > 1015"></filter> destinationtable="filtertest4"/> <importsql sourcetable="iso" <filter where="id > 1015"></filter> <filter where="tyhja > 5015"></filter> <filter where="id > 1015"></filter> destinationtable="filtertest5"/> <importsql sourcetable="iso" <filter where="epakelpo"></filter> <filter where="id > 1015"></filter> destinationtable="filtertest4"/> </etl> Join </operations> </etlprocess> <?xml version="1.0" encoding="utf-8"?> <etl xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation="../skema strom.xsd"> <!-- --> <etlprocess name="myynnit1" workingdatabaseid="tyokanta"> <operations> <importsql name="osasto" sourcetable="osasto" <importsql name="tyossa" sourcetable="tyossa" Sivu 8 / 11

source1="osasto"/> source1="osasto"/> source1="osasto"/> source1="tyossa"/> <join name="osastoittain1" type="left" errortable="error1"> <table source="osasto"></table> <table source="tyossa"></table> <equals source2="tyossa" column2="ot" column1="ot" </join> <join name="osastoittain2" type="right" errortable="error2"> <table source="tyossa"></table> <table source="osasto"></table> <equals source2="tyossa" column2="ot" column1="ot" </join> <join name="erityypit" type="right" errortable="error3"> <table source="tyossa"></table> <table source="osasto"></table> <equals source2="tyossa" column2="ot" column1="nimi" </join> <join name="samat" type="right" errortable="error4"> <table source="tyossa"></table> <table source="tyossa"></table> <equals source2="tyossa" column2="ot" column1="ot" </join> <export source ="samat" destinationdatabaseid="tietovarasto" destinationtable="samat"/> <export source="osastoittain1" destinationdatabaseid="tietovarasto" destinationtable="tyontekijoidenosastot"/> <export source="error1" destinationdatabaseid="tietovarasto" destinationtable="virhetaulu1"/> <export source="error2" destinationdatabaseid="tietovarasto" destinationtable="virhetaulu2"/> </etl> </operations> </etlprocess> Sivu 9 / 11

Liite C Testausohje ryhmälle Hakemistohierarkia Testaukseen käytettävä materiaali sijaitsee hakemiston com/aureolis/etltool/test alla. Tässä hakemistossa sijaitsee xml-skeema skema storm.xsd, johon viitataan kaikista prosessikuvaustiedostoista relatiivisesti (eli tyyliin../skema storm.xsd ). testhakemistoon tulevat vain testeille yhteiset tiedostot. Yksittäisen testin (tai testiryppään) tiedostot tulevat omaan alihakemistoonsa (kuten test/join). Toimenpiteiden testaus Testattaessa yksittäisiä toimenpiteitä, suoritetaan testaus järjestelmätestauksena, koska toimenpiteiden toiminan oikeellisuuden arvioimiseen, on niiden toimintaa seurattava koko järjestelmän yhteydessä. Toisaalta järjestelmätestaus on helppo tapa testata toimenpiteitä monipuolisesti. Hakemistorakenne Jokaiselle toimenpiteelle luodaan testausta varten oma alihakemisto, kuten test/join. Hakemisto sisältää esim. seuraavat tiedostot: configuration.xml Paikalinen, ei versionhallinnassa join1.xml Prosessikuvaus logging.properties Paikallinen, ei versionhallinnassa project.xml Projektikuvaus, jossa viittaukset prosessikuvaukseen ja konfiguraatioon setup1.sql Testausympäristön pysytykseen käytettävä tiedosto Xml-tiedostoissa olevat viittaukset skeemaan ovat../skema storm.xsd. Konfiguraatio Koska jokaisessa kehitystyöasemalla tietokannat poikkeavat hieman toisistaan, täytyy konfiguraatiotiedostojen olla paikallisia. Tämän vuoksi tietokannoissa käytetään nimeämisstandardia, jossa käytettäviä tietokantoja on kolme erillistä: lahdekanta Lähdekanta, josta taulut haetaan importilla työkantaan tyokanta Työkanta, jossa tiedon jalostus tapahtuu tietovarasto Tietovarasto, jonne ETL-prosessin tulokset talletetaan Tyypillinen konfiguraatio tiedosto on tyyliä: <?xml version="1.0" encoding="utf-8"?> <etl xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation="../skema strom.xsd"> <configuration> <database id="tyokanta"> <url>jdbc:mysql://circkeli.nnet/test2</url> Sivu 10 / 11

<type>mysql</type> <username>etl</username> <password>kekkula</password> </database> <database id="lahdekanta"> <url>jdbc:mysql://circkeli.nnet/test</url> <type>mysql</type> <username>etl</username> <password>kekkula</password> </database> <database id="tietovarasto"> <url>jdbc:mysql://circkeli.nnet/test3</url> <type>mysql</type> <username>etl</username> <password>kekkula</password> </database> </configuration> </etl> Testausympäristön pystytys Testauksen automatisoimiseksi jokaista testiä varten luodaan testausympäristön setupskripti, jossa määritellään kantaan luotavat taulut ja niihin sisällytettävä testidata. Setupskriptissä määritellään myös kannan nimi, johon taulut ja data luodaan. Yhdellä skriptillä voidaan alustaa useita tietokantoja. Skirptin alussa on rivi :kannannimi, joka kertoo missä kannassa seuraavat SQL-lauseet suoritetaan. Kukin SQL-lause on oltava omalla rivillään, ts. esim. CREATE TABLE-lausetta ei saa jakaa useammalle riville. Esimerkki: :lahdekanta CREATE TABLE Tyontekija (sotu CHAR(11), sukunimi VARCHAR(15), etunimi VARCHAR (10), palkka INTEGER, PRIMARY KEY (sotu)); CREATE TABLE Osasto (ot INTEGER, nimi VARCHAR(20), PRIMARY KEY (ot)); CREATE TABLE Tyossa (ot INTEGER, sotu CHAR(11), PRIMARY KEY (ot, sotu)); INSERT INTO Tyontekija VALUES ('301162-132G', 'Silakka', 'Seppo', 2630); INSERT INTO Tyontekija VALUES ('210380-321R', 'Kankkunen', 'Kalle', 1800); INSERT INTO Tyontekija VALUES ('240685-1234', 'Kesà mies', 'Keijo', 2370); INSERT INTO Tyontekija VALUES ('251083-1234', 'Vilkas', 'Ville', 2030); INSERT INTO Osasto VALUES (1, 'Hallinto'); INSERT INTO Osasto VALUES (2, 'Tuotanto'); INSERT INTO Osasto VALUES (3, 'Myynti'); INSERT INTO Osasto VALUES (4, 'Markkinointi'); INSERT INTO Osasto VALUES (5, 'Foobar'); INSERT INTO Tyossa VALUES (1, '301162-132G'); INSERT INTO Tyossa VALUES (1, '240685-1234'); INSERT INTO Tyossa VALUES (2, '210380-321R'); INSERT INTO Tyossa VALUES (3, '251083-1234'); INSERT INTO Tyossa VALUES (2, '251083-1234'); INSERT INTO Tyossa VALUES (8, '123456-1234'); Sivu 11 / 11