Ohjelmistotestaus on tärkeä vaihe jokaisessa IT-projektissa
Testiautomaatio voi tuoda merkittävää tehostusta ohjelmistoprojekteihin, kun ne osataan ottaa mukaan oikeassa vaiheessa. Ohjelmistojen testaus on erittäin tärkeää, jotta tuotantokäytön aikana ei ilmenisi vakavia ongelmia. Tuotannon aikaiset häiriöt aiheuttavat kustannuksia ja julkisissa palveluissa jopa mainehaittaa.
Testaus on otettava mukaan heti ohjelmistosuunnittelun alkuvaiheessa, ja testaukseen tarvittava aika ja resurssit on huomioitava testaussuunnitelmassa. Näihin vaikuttaa myös millainen testausstrategia valitaan; käytetäänkö automaatiotestausta vai manuaalitestausta. Testaus on hyvin laaja käsite ja voi sisältää hyvin erityyppistä testausta riippuen testaustavoitteista ja testattavasta ohjelmistosta.
Valinta sopivasta menetelmästä täytyy tehdä tarpeen mukaan, ja erilaisia menetelmiä ovat esimerkiksi yksikkötestaus, integraatiotestaus, järjestelmätestaus, suorituskykytestaus ja saavutettavuustestaus. Testaus voi sisältää myös vaatimusmäärittelyjen ja dokumenttien katselmuksia. Siksi resursseja ja kustannuksia varatessa pitää tietää mikä on testauksen tavoite.
Manuaalitestauksesta testiautomaatioon
Yleisesti ensimmäisenä tehdään testejä niin sanotusti käsin. Samalla testitapaukset suunnitellaan ja sitten toteutetaan. Uuden ohjelmiston kehitysvaiheessa usein toiminnat vielä muuttuvat kehityksen varrella ja testitapaukset pitää päivittää ja tehdä uudelleen.
Mikäli ohjelmistoon tulee käyttöönoton jälkeen muutoksia, voi olla tarpeen tehdä testejä jälleen, jotta varmistutaan, että muutos ei ole rikkonut mitään. Puhutaan regressiotestauksesta. Se voi tulla hintavaksi, koska sen suorittaa usein ihminen.
Myöhemmin, kun ohjelmisto alkaa vakiintua on hyvä harkita tärkeimpien ja kriittisimpien toimintojen testauksen automatisointia. Näin ohjelmiston muuttuessa, voidaan ajaa regressiotestit automaattisesti kun koodi päivittyy. Tämä säästää aikaa ja rahaa sekä antaa varmuutta sille, että muutos ei ole rikkonut mitään ohjelmistossa. Jos toiminto on uusi, myös uudelle toiminnolle pitää mahdollisesti tehdä testiautomaatio.
Testiautomaation työkalut
Testiautomaatioon on olemassa erilaisia työkaluja lukematon määrä. Työkalun valinta riippuu testattavana olevan ohjelmiston arkkitehtuurista, esimerkiksi siitä, onko se Windows-, mobiili- vai Web-sovellus. Nykyään useimmat ohjelmistot ovat Web-sovelluksia tai mobiilisovelluksia. Usein mobiilissa laitteessa käytettävät sovellukset ovat itse asiassa Web-sovelluksia, eivätkä natiiveja mobiilisovelluksia.
Joskus halutaan testata vain rajapinnat eli tehdään API-testausta (Application Programming Interface). Monet työkalut soveltuvat myös API-testaukseen.
ATR Softilla olemme käyttäneet useita erilaisia työkaluja testauksen apuna. Seuraavassa on lueteltu muutamia tunnettuja testiautomaation työkaluja eri tarkoituksiin:
- API-testaus: Cypress.io ja Python/PyTest ovat ilmaisia työkaluja API-testaukseen.
- Web-ohjelmistotestaus: Robot Framework, Cypress.io ja Playwright. Myös nämä testaustyökalut ovat ilmaisia.
- Web- ja Windows-sovellukset: TestComplete ja Ranorex ovat kaupallisia testityökaluja, jotka sopivat sekä Web-sovellusten että Windows-sovellusten testaamiseen.
- Suorituskykytestaus: JMeter ja SOAP UI. Nämä ovat myös ilmaisia työkaluja.
- Saavutettavuus: Accessibility Insights, WAVE ja ruudunlukijat. WCAG eli verkkosisällön saavutettavuusohjeet määrittää verkkosivuille saavutettavuusvaatimukset, joita nämä työkalut auttavat täyttämään
Huolellinen testaus varmistaa tuotannon sujuvuuden
Testauksella pyritään antamaan luottoa ohjelmiston toimintaan. Se ei kuitenkaan takaa virheetöntä ohjelmistoa, koska kaikkea ei ole mahdollista testata. Myös ohjelmiston muutokset voivat vaikuttaa muihinkin ohjelmiston osiin kuin vain kohteena olevaan toimintoon.
Testaus alkaa jo ohjelmointitilanteesta ja ohjelmoijan itse täytyy testata muutos esimerkiksi yksikkötestauksella ja laittaa muutos eteenpäin vasta, kun on itse varmistanut toiminnon. Testaaja sitten varmistaa vielä toiminnon joko käsin testauksella tai luomalla testiautomaation. Lopuksi asiakas tekee niin sanotun hyväksymistestauksen (User Acceptance Test, UAT).
Kaiken tämän tuloksena pyritään varmistamaan ohjelmiston häiriötön toiminta tuotannossa.