EfiCode Oy

Testaus ja laadunvalvonta

Perinteisesti ohjelmiston testaus on tehty vasta valmiille ohjelmistolle, mutta siten menetetään testauksen suurin potentiaali, toteutuksen ohjaaminen. Olemme sitoneet ohjelmiston testauksen osaksi käytännön toteutusprosessia, jotta voimme varmistua jo toteutettujen osien toiminnallisuudesta ja yhteensopivuudesta uusiin osiin.

Automaattinen testaus

Kehittäjät kirjoittavat automaattisia yksikkö- ja integraatiotestejä osana ohjelmistokehitystä, jotta voidaan varmistua toteutettujen osioiden oikeanlaisesta toiminnasta kaikkien muutosten yhteydessä. Lisäksi valmiit testit pakottavat toteutettavat moduulit seuraamaan oikeanlaista arkkitehtuuria ja ottamaan moduuleja käyttävät osiot huomioon. Automaattinen testaus onkin oikean toiminnan varmistuksen lisäksi tietynlaista teknistä käytettävyyssuunnittelua ohjelmiston sisällä.

Käyttöliittymätestauksella voidaan automatisoida järjestelmän testaus käyttäjän näkökulmasta todellisilla järjestelmän käyttötapauksilla. Lisäksi järjestelmän toiminta erilaisilla selaimilla voidaan automaattisesti varmistaa.

Manuaalinen testaus

Automatisoidut testaukset eivät korvaa ihmistä testaajana. Automaattiset testit poistavat kuitenkin testaajilta toistuvien testitapausten työn ja testauksessa voidaan keskittyä tutkivaan (explorative) testaukseen. Testaaja etsii järjestelmästä ongelmia inhimillisen testauksen kautta, sekä tutkimalla mahdollisia vikoja ja epäloogisuuksia järjestelmän toiminnassa.

Continuous Integration

Kaikissa projekteissamme käytetään jatkuvan integraation (Continuous Integration) periaatteita. Tämä tarkoittaa, että kehittäjät sitoutuvat toimintamalleihin, jotka mahdollistavat ohjelmistokehityksen automatisoitavien prosessien siirtämistä tietokoneen hoidettavaksi. Continuous Integration -ohjelmisto tarkkailee projektin versionhallintaa ja havaitessaan muutoksen ohjelmiston lähdekoodissa, ajetaan uusimmalle ohjelmistokoodille automaattinen build. Yleisesti ottaen build sisältää ohjelmiston kääntämisen, automaattisen testauksen, analysoinnin ja julkaisun. Mikäli jonkin vaihe buildista epäonnistuu, siitä ilmoitetaan kehittäjille välittömästi. Tällöin varmistutaan, että koko ohjelmisto toimii koko ajan yhtenäisesti.

Kehittäjien näkökulmasta prosessin automatisointi vähentää jokaisen yksittäisen kehittäjän toistuvia työtehtäviä ja antaa siten lisää aikaa keskittyä olennaiseen osaan ohjelmistokehitystä. Lisäksi lyhennetään palauteaikaa toteutetun ominaisuuden toimivuudesta suhteessa koko järjestelmän toimintaan.