Uusimmat artikkelit

Tilaa uutiskirje

Pysy ajan tasalla meidän uutisissa ja kirjoituksissamme tilaamalla ilmoitus julkaisuista sähköpostiin tai slack-ohjelmaan.

Juha Ikävalko

Juha Ikävalko

Schematron-aineistotestaus – mitä ja miksi?

EU-verkkolaskudirektiivin myötä Schematron-testaus on noussut kuumaksi puheenaiheeksi. Verkkolaskujen vastaanottajat voivat 1.4.2020 alkaen edellyttää lähettäjiltä EU-normin mukaisia laskuja. Teknisellä tasolla nämä vaatimukset ovat kuvattu Schematron-tiedostona. Mikäli verkkolasku ei läpäise Schematron-tarkistusta, palaa se bumerangina takaisin.

Skeematarkistus on huono laadun mittari

Perinteisesti aineiston lähettäjä on voinut testata lähettämänsä aineiston laadun skeematarkistuksen avulla. Mikäli aineisto on läpäissyt tarkistuksen, on aineiston katsottu olevan riittävän laadukas välitettäväksi eteenpäin.

Skeema ottaa kuitenkin ensisijaisesti kantaa vain aineiston rakenteeseen ja mahdollisesti sisällön pituus- ja koodirajoituksiin. Skeeman ilmaisuvoima on hyvin rajallinen ehdollisuuksien ja eheystarkistusten osalta. Nämä voidaan suurelta osin kattaa Schematronin avulla.

Schematron mahdollistaa sääntötarkistukset

Toisin kuin skeema, Schematron ei ota lainkaan kantaa aineiston rakenteeseen. Sen roolina on määrittää tietojen eheyteen liittyvät vaatimukset sääntötarkistusten avulla. Tyypillisiä eheystarkistuksia ovat erilaiset summatarkistukset, päivämäärien vertailu sekä ehdolliset pakollisuudet ja muotovaatimukset. Schematron ei siis korvaa skeematarkistusta (W3C XML Schema), vaan täydentää sitä.

Miksi Schematronia tarvitaan?

Yritys-, toimiala- ja maatason aineistovaatimukset on perinteisesti julkaistu uuvuttavan pitkinä soveltamisohjeina. Niitä toki tarvitaan, mutta kukin toteuttaja luo niistä oman tulkintansa. Vaikka kaikki ovat mielestään toimineet oikein, ratkaisut eivät silti toimi yhteen. Kuulostaako tutulta? Schematron mahdollistaa dokumentoitujen vaatimusten esittämisen teknisinä tarkistuksina, jotka asettavat minimivaatimukset kaikille standardin mukaisille toteutuksille.

Usein eheys- ja sisältövaatimukset tarkistetaan vasta luettaessa aineisto vastaanottavaan järjestelmään. Kun aineistossa havaitaan virheitä, päätyy se virhekäsittelyyn, jolloin joko tiedot täydennetään manuaalisesti tai lähettäjälle palautetaan virheilmoitus. On sanomattakin selvää, että tähän tuhlaantuu paljon aikaa ja resursseja. Lisäksi vastaanottavan järjestelmän tuottama virhepalaute on usein epämääräinen, kuten ”virhekoodi 6”. Tällöin jää epäselväksi mikä kohta aineistossa tulisi korjata, jotta virheeltä vältyttäisiin jatkossa.

Schematronin hyödyt

Schematronin avulla suurin osa eheys- ja sisältövaatimuksista voidaan julkaista muodossa, jota voidaan käyttää aineistojen testaamiseen jo lähettävässä päässä. Tällöin valtaosa virheellisistä tiedostoista ei koskaan päädy vastaanottajan järjestelmään.

Miksei sitten Schematronia ole juurikaan käytetty aiemmin XML-sanomien tarkistamiseen? Kyse on yleensä tietämättömyydestä, mutta toki selityksiäkin löytyy, kuten ”Schematronin avulla ei voida testata kaikkia aineistovaatimuksia, koska osa tarkistuksista liittyy taustajärjestelmän tietoihin”. So what? Jos lähes poikkeuksetta yli 80% vaatimuksista voidaan esittää Schematronin avulla, niin eikö olisikin mahtavaa, jos näin suuri osuus tarkistuksista voitaisiin suorittaa jo lähettävässä päässä? Suurin osa virhetilanteista ei tällöin kuluttaisi lainkaan vastaanottajan resursseja. Lähettäjäkin saisi virheistä välittömän palautteen ja voisi ryhtyä heti toimiin niiden korjaamiseksi.

Schematronin puutteet

Schematron-tarkistus tuottaa teknisen palautteen kuten skeematarkistus. Palautteena saa XML-muotoisen testausraportin, josta ilmenee suoritetut tarkistukset ja löydetyt virheet. Kukin virheilmoitus sisältää vaatimuksen selkokielisen kuvauksen, virheellisen elementin polkumäärityksen sekä tarkistussäännön teknisen toteutuksen eli litanian ”XPath-koodia”. Haasteena on, että muun muassa summatarkistusten osalta ei useinkaan saa selvyyttä, onko kyse sentin pyöristysvirheestä vai suuremmasta laskennallisesta ongelmasta. Tämä puute on ilmeinen esimerkiksi CEN434:n julkaisemissa EU-verkkolaskudirektiivin mukaisissa Schematron-tarkistuksissa. Schematron-virheilmoitus ei myöskään sisällä virheellisen elementin rivinumeroa, jolloin virheen paikantaminen on hakuammuntaa etenkin suurten aineistojen osalta.

Schematron-testaus soveltuu siis mainiosti automatisoituun testaukseen, kun halutaan varmistaa, että aineisto täyttää määrätyt vaatimukset. Virheiden paikantamiseen ja korjaamiseen se on kuitenkin sellaisenaan turhan tekninen ja karkea työkalu.

Truugo + Schematron - täydelliset yhdessä

Truugoon voidaan luoda testipenkki, joka kattaa Schematron-tarkistukset. Tällöin samat testit voidaan suorittaa sekä tuotantoympäristössä että itsepalveluna. Truugon avulla testaaja pystyy paikantamaan ja korjaamaan virheet nopeammin ja helpommin ilman erityistyökaluja ja -osaamista. Truugo tuottaa selkeän testausraportin, jonka kustakin virheilmoituksesta pääsee linkin kautta suoraan aineiston virheelliseen kohtaan. Monimutkaisimmatkin tarkistukset voidaan pilkkoa osiin, jolloin esimerkiksi summatarkistusten osalta nähdään välittömästi, minkä suuruusluokan ongelmasta on kyse.

Truugon avulla käyttöönottojen testaus helpottuu ja nopeutuu huomattavasti. Truugon API-rajapinnan avulla myös virheellisistä tuotantoaineistoista voidaan tuottaa välittömästi selkokielinen testausraportti ongelman ratkaisemiseksi.

Lue lisää Tuugosta täältä!

Share on linkedin
Share on facebook
Share on twitter

Agenttien näppäimistöltä

Referenssi
Juho Suominen

Axwayn B2Bi-integraatio­järjestelmä yhdistää organisaatioiden välisen tiedonsiirron ohjelmointi­rajapintaan.

Lue Lisää
Petteri Patjas

Valvomme järjestelmäintegraatioitasi ja korjaamme niiden sisäiset virhetilanteet puolestasi

Lue Lisää
Blogi
Toni Salminen

EDI vai API? Sopivan integraatioalustan valinta alkaa yrityksen tarpeiden kartoittamisesta

Lue Lisää

Helsinki

Mannerheiminaukio 1A
00100 Helsinki
Finland

Turku

Pitkämäenkatu 4 B
20250 Turku
Finland

Yhteystiedot

Puh. +358 40 500 5067
Email myynti@agentit.fi
Y-tunnus 1920038-7

Rekrytointi

Email rekry@agentit.fi

Copyright © Agentit Finland Oy