Mitä taitoja testiautomaation kehittäjä tarvitsee?
Testiautomaatiokehittäjänä toimiminen on haastavaa. Miksi? Koska siinä tarvitaan osaamista monelta eri ohjelmistotekniikan osa-alueelta sekä niiden yhdistämistä. Manuaalisen ohjelmistotestaajan löytäminen on suhteellisen helppoa. Ohjelmistokehittäjän löytäminen on suhteellisen helppoa. Mutta sellaisen löytäminen, joka tietää molemmista? Se on haasteellista.
Testiautomaatiokehittäjät ovat tällä hetkellä erittäin kysyttyjä. Pandemia sai monet ihmiset haluamaan vaihtaa maisemaa sekä etsimään uusia mahdollisuuksia, ja yritykset ovat valmiita kilpailemaan parhaista kyvyistä. Mutta suurempi syy lisääntyneeseen testiautomaation tarpeeseen on yritysten fokuksen muuttuminen. Yritykset keskittyvät kehittämään ohjelmistoliiketoimintaansa ja haluavat turvata tulevaisuutensa. Tämä tarkoittaa, että Agile- ja DevOps-transformaatiot otetaan vakavasti. Ja mikä on näiden kaikkien keskiössä? Aivan oikein arvattu - testiautomaatio. Testiautomaatio on yksi tämän transformaation tärkeimmistä mahdollistajista.
Tietysti on vaikea sanoa, millainen tarkalleen ottaen on hyvä testiautomaatiokehittäjä. On niin monia erilaisia organisaatioita ja niin monia erilaisia prosesseja ja tapoja toteuttaa tämä transformaatio. Mutta joitain yhtäläisyyksiä voidaan havaita. Olemme tunnistaneet setin taitoja, joiden jokaisen testiautomaatiokehittäjän pitäisi mielestämme osata. Tässä on lista niistä:
- Kyky automatisoida testejä käyttämällä testiautomaatiokehystä
- Kyky työskennellä ketterässä ympäristössä
- Ohjelmistojen testauskäytäntöjen tuntemus
- Hyvien ohjelmistokehityskäytäntöjen tuntemus
- DevOpsin ja jatkuvan integraation/toimittamisen tuntemus
- Digital Assurance eli digitaalisen laadunvarmistuksen tuntemus
Nämä tarkemmin avattuina:
Kyky automatisoida testejä on luultavasti näkyvin osa testiautomaatiokehittäjän työtä. Käytännössä tämä tarkoittaa sitä, että testiautomaatiokehittäjä ymmärtää liiketoiminta-analyytikon antamia käyttäjätarinoita ja osaa muuntaa ne automaatioskriptien askeliksi. Testiautomaatiokehittäjä osaa käyttää ainakin yhtä relevanttia automaatiokehystä, mutta hän voi opetella minkä tahansa muun automaatiokehyksen käytön.
Kyky työskennellä ketterässä ympäristössä on luonnollisesti edellytys nykyaikaisessa ohjelmistokehityksessä. Tämä tarkoittaa Agile-konseptien, kuten sprinttien, scrumin, retrojen ja muiden ketterien työskentelytapojen tuntemista. Tämä tarkoittaa myös sitä, että ymmärtää vastuun laadusta olevan jaettu.
Ohjelmistojen testauskäytäntöjen tunteminen on yksi testiautomaatiokehittäjän asiantuntemuksen kulmakivistä. Testiautomaatiokehittäjällä on toinen jalka ohjelmistotestauksen maailmassa ja toinen ohjelmistokehittäjämaailmassa. Käytännössä tämän ohjelmistotestauksen osaamisen voi hankkia esimerkiksi suorittamalla perustason ohjelmistotestauksen sertifikaatin, kuten ISTQB tai TMAP.
Ohjelmistokehityskäytäntöjen tunteminen on toinen kulmakivi. Testiautomaatiokehittäjä pystyy kehittämään ohjelmistoja, jotka ohjaavat muita ohjelmistoja. Käytännössä tämä tarkoittaa automaatioskriptien tai automaatiokirjastojen kirjoittamista testattavaa ohjelmistoa vasten. Testiautomaatiokehittäjän tulee noudattaa hyviä ohjelmistokehityskäytäntöjä ja tietää myös muista ohjelmistokehitykseen tarvittavista ohjelmistoista, kuten versionhallinnasta.
DevOps-käytänteiden ja jatkuvan integraation tuntemus on myös tärkeää. Tämä tarkoittaa ymmärrystä siitä, mikä on testiautomaation rooli ohjelmistokehitysputkessa. Käytännössä se tarkoittaa myös testiautomaatiojobien konfigurointia ja ylläpitoa CI-palvelimella sekä testitulosten välittämistä sidosryhmille. On hyvä pohtia, mitä arvoa testiautomaatio tuo prosessiin. Se tarkoittaa ymmärrystä siitä, kuinka testiautomaatio voi nopeuttaa ohjelmiston toimitusta. Se tarkoittaa myös sen ymmärtämistä, kuinka DevOps-ajattelutapaa voidaan hyödyntää prosessin parantamiseksi.
Digital Assurance on viimeinen asia tässä luettelossa. Kyse on korkean tason tavoitteesta, joka tarkoittaa seuraavaa: varmistaa asiakkaamme digitaalisen liiketoiminnan toimivuus. Tämä sisältää kaikki laadunvarmistukselliset tehtävät, joita voimme tarjota liiketoiminnan parantamiseksi ja kehittämiseksi. Loppujen lopuksi kyse on laadunvarmistuksesta ja sen varmistamisesta, että ohjelmisto toimii niin kuin pitää.
- Juha VaitiloCSO, Quality Engineering & Testing Practice Leader
+358 40 550 0734
Juha VaitiloCSO, Quality Engineering & Testing Practice Leader
+358 40 550 0734