Schematron-aineistotestaus – mitä ja miksi?
Schematronin avulla voidaan määrittää sääntöpohjaisia tarkistuksia XML-aineistoille. Se ei korvaa vaan täydentää aineistojen skeema- eli rakennetarkistusta. Schematron perustuu XPath-kieleen tarkistussääntöjen määrittelyn osalta.
EU-verkkolaskudirektiivin myötä verkkolaskujen vastaanottajat ovat 1.4.2020 alkaen voineet edellyttää lähettäjiltä EU-normin mukaisia laskuja. Teknisellä tasolla nämä vaatimukset kuvataan Schematron-tiedostona. Mikäli verkkolasku ei läpäise Schematron-tarkistusta, se palaa 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.
Lisätietoja
Tagit
Liiketoimintaprosessi
Tietohallinto |
Erikoisosaaminen
Pilvipalvelut / SaaS |
Toimialakokemus
IT | |
Kauppa | |
Kuljetus, liikenne ja logistiikka |
Tarjonnan tyyppi
Valmisohjelmisto |
Omat tagit
Netum Group - Asiantuntijat ja yhteyshenkilöt
Netum Group - Muita referenssejä
Netum Group - Muita bloggauksia
It- ja ohjelmistoalan työpaikat
- Laura - Mobiilikehittäjä, Android
- Laura - Ohjelmistoarkkitehti, Tampere/Oulu
- Laura - Development Team Manager, Sports Games
- Taito United Oy - Senior Full Stack -kehittäjä
- Webscale Oy - Head of Sales, Cloud Services
- Laura - Hankinta-asiantuntija, tietohallinto
- Laura - Development Manager, Operations
Premium-asiakkaiden viimeisimmät referenssit
- SD Worx - Kehitystyö SD Worxin kanssa takaa Clas Ohlsonille parhaat palkanmaksun prosessit kasvun tiellä
- Digiteam Oy - Case Esperi Care Oy: Ketterä kumppanuus vei Esperin verkkosivu-uudistuksen maaliin sujuvasti ja aikataulussa
- Kisko Labs Oy - Howspace Hub - Mukautuva oppimisen hallintajärjestelmä kasvaviin oppimisalustavaatimuksiin
- Kisko Labs Oy - Sanoma Pro: Multimediasisältöjen hallinnan uudistaminen
- Kisko Labs Oy - Svean helppokäyttöinen palvelu asiakkaan verkko-ostosten hallintaan
- Kisko Labs Oy - Yhtenäinen käyttöliittymä luovien alojen ammattilaisille
- Codemate - Digitaalisen murroksen nopeuttaminen Flutterin avulla
Tapahtumat & webinaarit
- 27.11.2024 - Green ICT -ekosysteemitapaaminen III: Ohjelmistojärjestelmien virrankulutuksen mittaaminen ja kasvihuonepäästöjen arviointi
- 27.11.2024 - Digitaalisen asiakaskokemuksen uusi aikakausi
- 28.11.2024 - Webinaari: Keskity myyntityön laatuun!
- 28.11.2024 - Copilot-webinaari – Mielekkäämpää tietotyötä turvallisesti
- 04.12.2024 - Kuinka oikea matka- ja kululaskujärjestelmä tehostaa prosesseja?
- 05.12.2024 - Green ICT VICTIS -hankkeen kick off -tilaisuus
- 15.01.2025 - Datavastuullisuuden valmennus: hanki valmiudet vastuulliseen datan ja tekoälyn hyödyntämiseen
Premium-asiakkaiden viimeisimmät bloggaukset
- Kisko Labs Oy - Heroku: Millaisiin projekteihin se sopii ja mitkä ovat sen todelliset hyödyt ja haitat?
- Zimple Oy - Pipedrive vai Hubspot? Kumpi kannattaa valita?
- SC Software Oy - Jatkuvat palvelut – asiakaslähtöistä kumppanuutta projekteista ylläpitoon
- Timeless Technology - Ohjelmoitavat logiikat (PLC): Ratkaisevat työkalut automaatioon ControlByWebiltä.
- Kisko Labs Oy - Heroku: Ohjelmistokehittäjän ykköstyökalu skaalautuvien sovellusten rakentamiseen
- SD Worx - Näin luot vakuuttavan Business Casen palkkahallinnon ulkoistukselle
- Timeless Technology - Kyberriskien tunnistaminen Profitap IOTA verkkoanalysaattorin avulla.
Digitalisaatio & innovaatiot blogimediaBlogimediamme käsittelee tulevaisuuden liiketoimintaa, digitaalisia innovaatioita ja internet-ajan ilmiöitä |