Ammattikeittiön ohjelmistossa olevalla virheellä ei tiputeta lentokonetta, mutta esimerkiksi allergeenien käsittelyyn liittyvä virhe voi vaarantaa ruokaturvallisuuden.
PoweRestan pilvipalvelun kehittämisessä olemme kiinnittäneet erityistä huomiota tuotekehityksen laatuun ja nykyaikaisuuteen ja pilvipalvelun tietoturvaan, luotettavuuteen ja skaalautuvuuteen.
Ammattikeittiön ohjelmistossa olevalla virheellä ei tiputeta lentokonetta, mutta esimerkiksi allergeenien käsittelyyn liittyvä virhe voi vaarantaa ruokaturvallisuuden.
Pilvipalvelussa tietoturva on välttämättömyys. Henkilötiedot ja muut asiakaskohtaiset tiedot, kuten hinnat, eivät voi päätyä vahingossa toisen asiakkaan käsiin. Tietomurrosta nyt puhumattakaan.
Asiakkaana haluat investoinnillesi vastinetta. Ohjelmiston ja pilvipalvelun luotettavuus turvaavat sen, että toistuvat bugit ja ongelmat eivät haittaa tai keskeytä jokapäiväistä työskentelyä aiheuttaen ylimääräistä stressiä ja taloudellisia menetyksiä.
Fiksusti suunniteltu ohjelmiston arkkitehtuuri ja ketterät ja parhaiksi havaitut menetelmät tuotekehityksessä ja pilvipalvelun ratkaisuissa mahdollistavat nopeamman reagoinnin asiakkaiden tarpeisiin ja toiminnan koon muutoksiin. Kustannustehokkaasti, pienemmillä henkilöresursseilla ja paremmin aikataulussa. Pilvipalvelussa mahdollisiin pullonkauloihin pystytään puuttumaan jo ennen kuin niistä aiheutuu ongelmia. Tämä turvaa toiminnan jatkuvuutta, kun voimme yhdessä keskittyä olennaiseen – palvelun käyttämiseen ja kehittämiseen.
Tuotekehityksessämme tärkein menetelmä laadun varmistamiseen ovat automatisoidut ja kattavat yksikkötestit, jotka ovat yksi ohjelmistotestauksen osa. Yksikkötesteissä ei ole sinänsä mitään uutta, konsepti on ollut olemassa iät ajat. Menetelmä alkoi yleistyä laajemmin kai joskus vuosituhannen vaihteessa ja on nykyään arkipäivää.
Yksinkertaistettuna yksikkötestaus tarkoittaa sitä, että lähdekoodin osa testataan kirjoittamalla pätkä koodia, jolla tarkistetaan, että tämä osa toimii odotetulla tavalla auttaen havaitsemaan mahdolliset virheet ajoissa. Näitä yksikkötestejä ajetaan automaattisesti yhdessä tai erikseen. Yksikkötesteillä voidaan esimerkiksi tarkistaa, että tietolähteestä raaka-aineelle tuotu allergeeni tallentuu oikein eivätkä muut allergeenitiedot muutu tallennuksessa. Tai että asiakaskohtaista hintaa ei voi hakea toisen asiakkaan käyttöoikeuksilla. Tai että käyttäjä ei voi asettaa salasanaa, joka ei ole riittävän turvallinen.
Erityisen hyödyllistä automatisoitu yksikkötestaaminen on, kun ohjelmakoodiin tehty muutos voi vaikuttaa aiemmin toteutettuihin ominaisuuksiin aiheuttaen niihin mahdollisesti virheitä. Yhtään laajemmassa ohjelmistossa tällaisten virheiden etsiminen ja testaaminen luotettavasti ilman automaattisia ja kattavia yksikkötestejä olisi erittäin haastavaa ja aikaa vievää, ellei lähes mahdotonta.
Uusi päivitysversio ei päädy pilvipalveluumme elleivät kaikki yksikkötestit mene läpi.
Ihmisten tekemässä ohjelmistossa käy kaikesta huolimatta joskus niin, että virhe pääsee asiakkaan käyttämään versioon. Eli yksikkötesti puuttuu tai on puutteellinen. Silloin kirjoitetaan ensin testi, jolla virhe saadaan toistettua. Näin voidaan olla lähes varmoja, että sama virhe ei toistu myöhemmissäkään päivityksissä. Automatisoiduilla asennusprosesseilla varmistamme, että korjauspäivitys on mahdollisimman nopeasti ja sujuvasti asiakkaiden käytössä pilvipalvelussa eikä tästä aiheudu tarpeettoman pitkiä keskeytyksiä.
Yksikkötestien kattavuutta voidaan seurata automatisoiduilla työkaluilla. PoweRestan pilvipalvelun taustajärjestelmän yksikkötestit kattavat jo yli 80 % ohjelmakoodista, mikä on jo hyvä taso mutta parennettavaakin on. Pelkän kattavuusprosentin tuijottamisen sijaan kiinnitämme kuitenkin erityistä huomiota kriittisiin osiin, joita yksikkötestit eivät vielä kata. Tästä ilmainen vinkki (julkisiin) kilpailutuksiin: Lisäpisteitä järjestelmätoimittajalle, joka pystyy osoittamaan yksikkötestien kattavan vaikkapa vähintään 80 % 🙂
Täydellisyyttä ei näissäkään asioissa kannata tavoitella. Aiomme kuitenkin pitää koko testausprosessin kattavuuden hyvällä mutta järkevällä tasolla jatkossakin. Se auttaa pitämään laadun etusijalla, mikä luo turvallisuutta eri osa-alueille.