Testauksen testaustasot
Eri testaustasot (Testing Levels), tuotteen eri valmiusasteilla, ovat olennainen osa monialustaohjelmistojen ja sulautettujen järjestelmien laadunvarmistusta. Testaustasot tarjoavat systemaattisen lähestymistavan varmistamaan, että kaikki tuotteen osat toimivat odotetusti ennen seuraavaan tasoon siirtymistä. Testaustasot jaetaan yleensä ryhmiin, joissa tuote siirtyy kohti valmiimpaa kokonaisuutta.
Testaustasoja on useampi, ja alla olevat saattaakin pitää sisällään myös manuaalista testausta riippuen tuotteen monimutkaisuudesta. Manuaalisessa testauksessa tasojen välillä tapahtuu testitulosten katselmointi, jolla saadaan varmistus siitä, että testit on läpäisty ja muutos, ominaisuus tai vaatimus on todettu toimivaksi.
Automaattisella testauksella testaustasosta toiseen siirtyminen voidaan automaattisesti estää mikäli kyseisen testaustason testit eivät mene onnistuneesti läpi. Tällä pyritään varmistamaan se, että tuotteen laatu ei pääse tippumaan ja jokainen pienikin muutos varmistetaan toimivaksi.
”Monialustaohjelmistolla tarkoitetaan ohjelmistoa, joka voi toimia usealla eri alustalla esimerkiksi puhelimella, tabletilla tai tietokoneella.”
”Sulautetulla järjestelmällä tarkoitetaan elektronista laitetta, johon ohjelmoidaan ohjelmisto FPGA, C tai C++ ohjelmointikielellä. Sulautetussa järjestelmässä on RTOS, se toimii reaaliaikaisesti eli suorittaa toimintoja tietyissä aikarajoissa.”
Testauksen yleiset testaustasot:
- Yksikkötestaus (unit testing)
Yksikkötestaus (Unit Testing) on yleisesti ensimmäinen testaustaso, jossa yksittäisiä ohjelmistokomponentteja tai funktioita testataan erillään muusta järjestelmästä. Testausautomaation ja DevOps prosessin käyttö on tässä vaiheessa suotavaa, sillä yksikkötestit ovat nopeita ja helposti automatisoitavia. Sulautetuissa järjestelmissä yksikkötestauksen ajaminen saattaa vaatia, jopa laitteiston eli ns. hardiksen. - Integraatiotestaus (integration testing)
Integraatiotestaus (Integration Testing) vaiheessa testataan ohjelmistoyksiköiden, hardiksen tai jopa molempien välistä toimivuutta. Integraatiotestit varmistavat, että yksiköt toimivat yhdessä ennen siirtymistä monimutkaisempaan ja suurempaan järjestelmätestaukseen. Sulautetuissa järjestelmien integraatiotestauksessa saattaa, jopa vaadittujen mittalaitteistojen käyttö vaatia monimutkaisempaa automatisointia ja ymmärrystä reaaliaikaisuudesta. - Systeemitestaus eli järjestelmätestaus (system testing)
Järjestelmätestauksessa (System Testing) koko sovellus tai sulautettu järjestelmä testataan kokonaisuutena. Tällä varmistetaan, että kaikki yksiköt, moduulit ja osat toimivat yhdessä, ja niiden yhdistelmä täyttää kaikki määritellyt toiminnalliset tuotevaatimukset (Functional Requirements). Automaatiota käytetään usein toistuvien järjestelmätestien suorittamiseen, mutta monimutkaisempien järjestelmien testaaminen on osittain tai täysin manuaalista. - Hyväksyntätestaus (acceptance testing)
Hyväksyntätestauksessa (UAT, User Acceptance Testing) tarkistetaan, että järjestelmä täyttää asiakasvaatimukset (Customer Requirements) ja tuotevaatimukset (Product Requirements). Automaatio voi tukea hyväksyntätestausta erityisesti regressiotestauksen ja toistuvien testitapausten osalta, mutta suuremmissa ja monimutkaisemmissa tuotteissa hyväksyntätestaus vaatia myös manuaalista testausta.

Testaustasot sulautetun järjestelmän ja monialustaohjelmiston tuotekehityksessä
Sulautetun järjestelmän tai monialustaohjelmiston laatu varmistetaan testausprosessin (Testing Process) eri tasoilla tuotekehityksen aikana. Jokainen taso on suunniteltu löytämään ja korjaamaan virheitä tuotteen eri kehitysvaiheissa, ennen siirtymistä seuraavaan tasoon. Tällä vältetään tuotteen puutteet tai toimimattomuus ennen sen käyttöönottoa, julkaisua tai myyntiä. Myös näkyvyys tuotekehitykseen kasvaa, koska pystytään raportoimaan tuotteen toimimattomuus kehittäjille hyvin varhaisessa tuotekehitysvaiheessa.
Kaksi ensimmäistä tasoa (Unit Testing, Integration Testing) tuo hyvin kehittäjätasolle esille mahdolliset ongelmat ja automaation avulla nämä saadaan ketterästi heidän tuotekehitysprosessiin integroitua. Kaksi jälkimmäistä tasoa tuo erinomaisesti tietoa käyttäjätasolle sulautetun järjestelmän, ohjelmiston tai palvelun toimivuudesta. Kaksi viimeistä tasoa onkin jo lähempänä lopullista tuoterakennetta ja antaa hyvän kuvat siitä, että miten lopullinen tuote toimii.
Testaustasojen, testauksen ja testausautomaation merkitys
Selkeästi määritellyt testaustasot yrityksessä on keskeinen testauksen menestystekijä. Tämä pitäisi olla myös mainittuna yrityksen testauksen strategiassa (Testing Strategy). Testaustasoilla varmistetaan järjestelmällinen ja kattava testaus sekä laadukas tuote.
Testitasojen tulisi myös ottaa huomioon yrityksen, asiakkaan sekä tuotteen erityistarpeet ja vaatimukset myös turvallisuuteen sekä käyttäjään liittyvät standardit. Testaustasoilla pyritään saavuttamaan, että testaus on kattavaa, tehokasta ja se varmistaa tuotteen turvallisuuden. Näin testaus todella parantaa tuotteen laatua eikä ole vain osa tuotekehitysprosessia.
Kun yrityksessä on määriteltynä testauksen eri tasot, niin testausta ei tehdä lopuksi vain asiakkaalle toimitettavalla ohjelmistolla tai tuotteella. Testausta on tarkoitus tehdä jatkuvasti asteittain kohti valmiimpaa tuotetta.
Sulautetut järjestelmät, ohjelmistot ja palvelut voivat olla todella suuria. Kokonaisuuden ymmärtäminen varsinkin toimivuuden ja laadun näkökulmasta vaatii laajaa tietotaitoa. Laadunvarmistukselle on tästä syystä on valittuna testaukselle erikoistuneet henkilöt.
Wirva Solutions
eri testaustasoissa
Wirva Solutions auttaa yrityksiä testaustasojen eri vaiheissa.
Pystymme auttamaan erilaisissa testaustarpeissa, oli sitten kyse pienemmistä tai suuremmista sulautetuista laitteista, ohjelmistoista tai palveluista. Palvelemme räätälöidysti eri markina-alueilla testauksen ja testiautomaation parissa hyödyntäen kattavasti laitteistoja sekä teknologioita.
Mikäli yrityksellänne on testaustarpeita ja etsitte vahvaa osaamista sekä kumppania niin otathan yhteyttä. Me autamme mielellämme.