Testiautomaatio osana CI/CD-putkistoa
Tapola, Rasmus (2023)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2023091125610
https://urn.fi/URN:NBN:fi:amk-2023091125610
Tiivistelmä
Tässä opinnäytetyössä pyritään vastaamaan Cimcorp Oy:n tarpeeseen sisällyttää testiautomaatio osaksi CI/CD-putkistoa. Työn lähtökohtana on Cimcorp Oy:n tarve testiautomaatiota varten, joka muodostuu niin ohjelmistokehityksen kuin liiketoiminnan näkökulmasta. Työn tarkoituksena on edistää ohjelmistotestauksen tehokkuutta, sekä luoda pohja tulevia ohjelmistoprojekteja varten, joihin testiautomaatio voidaan sisällyttää CI/CD-putkiston muodossa. Työ suunniteltiin yhteistyössä Cimcorp Oy:n testaus- sekä DevOps-tiimin johtajien kanssa, ja toteutettiin omana toimeksiantonaan osana työsuhdetta.
Työn suorittamiseen käytettiin apuna erilaisia työkaluja, kuten Jenkins, Bitbucket, Apache Maven, SonarQube, SonarLint sekä Apache Ant. Ohjelmiston lähdekoodi on kirjoitettu käyttäen OpenEdgen Progress4GL:ää. Näiden työkalujen avulla muodostettiin CI/CD-putkisto, joka jokaisen muutoksen yhteydessä kääntää, analysoi ja testaa lähdekoodia, ja julkaisee siitä ohjelmistopaketin. Työn myötä valmistunutta CI/CD-putkistoa voidaan jatkossa käyttää pohjana tuleville projekteille, jolloin testiautomaation sisällyttäminen tulevaisuudessa on vaivatonta ja tehokasta.
Alkutilanteessa Cimcorp Oy:ssa ei hyödynnetty testiautomaatiota, vaan kaikki yksikkötestit ajettiin kehitysympäristön päällä. Yksikkötestaaminen kehitysympäristössä on aikaa vievää sekä vaivalloista, ja testiautomaatiolla pyritään vastaamaan näihin haasteisiin. Kun testien ajaminen toteutetaan automaattisesti ulkoisessa palvelussa muutosten yhteydessä, ohjelmiston testaus käy vaivattomasti eikä vie aikaa kehitystyöltä. Työn tulosten myötä ohjelmiston testaamisesta tulee standardi osa prosessia, jolloin myös ohjelmiston laadun varmistaminen käy tehokkaammin ja useammin.
Työn suorittamiseen käytettiin apuna erilaisia työkaluja, kuten Jenkins, Bitbucket, Apache Maven, SonarQube, SonarLint sekä Apache Ant. Ohjelmiston lähdekoodi on kirjoitettu käyttäen OpenEdgen Progress4GL:ää. Näiden työkalujen avulla muodostettiin CI/CD-putkisto, joka jokaisen muutoksen yhteydessä kääntää, analysoi ja testaa lähdekoodia, ja julkaisee siitä ohjelmistopaketin. Työn myötä valmistunutta CI/CD-putkistoa voidaan jatkossa käyttää pohjana tuleville projekteille, jolloin testiautomaation sisällyttäminen tulevaisuudessa on vaivatonta ja tehokasta.
Alkutilanteessa Cimcorp Oy:ssa ei hyödynnetty testiautomaatiota, vaan kaikki yksikkötestit ajettiin kehitysympäristön päällä. Yksikkötestaaminen kehitysympäristössä on aikaa vievää sekä vaivalloista, ja testiautomaatiolla pyritään vastaamaan näihin haasteisiin. Kun testien ajaminen toteutetaan automaattisesti ulkoisessa palvelussa muutosten yhteydessä, ohjelmiston testaus käy vaivattomasti eikä vie aikaa kehitystyöltä. Työn tulosten myötä ohjelmiston testaamisesta tulee standardi osa prosessia, jolloin myös ohjelmiston laadun varmistaminen käy tehokkaammin ja useammin.