Testiautomaatiokehitystä eri tiimien tarpeet huomioiden

Testiautomaatiokehittäjä robot framework
[NDA:n alainen telecom-alan asiakas]

Telekommunikaatioalan nopeasti kehittyvässä maailmassa ohjelmistojen laadunvarmistus on kriittisen tärkeää. Kansainvälinen telekommunikaatioalan konserni, jolla on erittäin laaja asiakaskunta erityisesti yritysasiakkaiden parissa, koki tarpeen tehostaa testiautomaation käyttöä ohjelmistokehityksessään. Kuvaamme tässä teknisellä tasolla, kuinka konserni edisti testiautomaatiohankettaan ja millaisia tuloksia se saavutti.

Kohdatut haasteet

Yrityksen ohjelmistokehitysyksiköllä oli hajautettuja tiimejä eri puolilla maailmaa, mikä toi mukanaan ainutlaatuisia haasteita. Vaikka jotkut tiimit olivat jo ottaneet käyttöön testiautomaation, monet kamppailivat vanhentuneiden järjestelmien kanssa, tai eivät olleet käyttäneet automaatiota ollenkaan. Erityisesti yksi tiimi oli kohdannut vaikeuksia Salesforce-alustalle rakennetun järjestelmänsä testiautomaation ylläpidossa, mikä johti siihen, että testit eivät olleet ajantasaisia, eikä niitä ajettu säännöllisesti.

Ratkaisustrategia

Asiantuntijamme lähestyi haastetta kaksivaiheisesti:

  1. Tunnistamalla nykyiset haasteet haastattelujen ja analyysien avulla,
  2. Kehittämällä räätälöityjä testiautomaatiostrategioita kullekin tiimille.

Erityistä huomiota kiinnitettiin kahteen tiimiin, joista toinen tarvitsi apua Java-pohjaisen palveluväylän testaamisessa, ja toinen Salesforce-alustan päälle rakennetun palveluketjun testaamisessa.

Teknisten ratkaisujen käyttöönotto

Java-pohjaisen palveluväylän testaus

Java-tiimille suositeltiin API-testaustyökalua, jonka avulla he pystyivät tehokkaasti automatisoimaan testausprosessinsa. Työkalun evaluointi ja valinta olivat kriittisiä askeleita, jotka vaativat asiantuntijan syvällistä ohjausta ja seurantaa.

Salesforce-alustalla toimivan palveluketjun testaus

Toiselle tiimille rakennettiin uusi testiautomaatiojärjestelmä, joka hyödynsi Robot Frameworkia ja Browser-kirjastoa yhdessä Pythonilla kehitetyn raamin kanssa. Tämä perusta mahdollisti sivun objektimallien käytön, mikä tehosti web-käyttöliittymän testausta merkittävästi.

Automaatioympäristö ja raportointi

Jotta testit saataisiin jatkuvaan ajoon, asiantuntijamme rakensi GitHub-ympäristöön GitHub Actions -putken, jolla testit ajettiin, ja tulokset raportoitiin, joka yö.

Haasteeseen, jossa testitulokset erilaisista asiakkaalla käytössä olleista testityökaluista saataisiin raportoitua yhtenäisesti ja helposti Jiraan, asiantuntijamme kehitti Dockeria hyödyntäen järjestelmän, joka raportoi tulokset eri testityökalujen testiraporttien pohjalta Xray:n APIa käyttäen Jiraan.
Tämä JavaScriptillä kehitetty raportointiohjelmisto oli käytettävissä sekä lokaalisti ajettuihin yksittäisiin testiajoihin, että GitHub Actions putkessa ajettavien testien tulosten raportointiin.

Testiautomaation evaluointiympäristö

Edellä mainittujen lisäksi asiantuntijamme kehitti testiautomaatiotyökalujen evaluointeja ja käytön opettelua helpottamaan erillisen evaluointiympäristön rajapintoineen, jota voidaan käyttää testikohteena sekä API- että UI-testauksessa, jopa niin, että samassa testitapauksessa on mahdollista käyttää molempia rajapintoja. Tämä ympäristö toteutettiin käyttäen JavaScript-kieltä.

Lopputulokset ja yhteenveto

Asiakkaan tavoitteen mukaisesti testiautomaation hyödyntäminen ohjelmistokehitystiimeissä sai vauhtia kohdennettujen testiautomaatiostrategioiden kehityksen ja ohjelmistokehitystiimien tukemisen kautta. Yritys sai käyttöönsä Robot Frameworkiin perustuvan raamin sekä raportointityökalut, joiden avulla laadunvarmistuksesta saatiin merkittävästi entistä tehokkaampaa.

Tämän projektin kautta saatu kokemus osoittaa, että testiautomaation tehokas käyttöönotto isossa konsernissa, jossa tiimit ovat hajautuneet ja osaaminen testiautomaation saralla vaihtelevaa, vaatii todellista sitoutumista sekä työntekijöiltä että johdolta, mutta myös paljon teknistä osaamista. On myös hyvin kriittistä pysyä ajan tasalla testiautomaation kehittyvissä käytännöissä ja työkaluissa.

Kuva: ChatGPT