Testikattavuuden lisääminen asiakaslähtöisesti
Paldanius, Henri (2024)
Paldanius, Henri
2024
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202401241758
https://urn.fi/URN:NBN:fi:amk-202401241758
Tiivistelmä
Opinnäytetyön tavoitteena oli parantaa tilaajan asiakasprojektin testaamisen määrää hyödyntäen Cypress.Io-testausautomaatiokehystä, sekä käymällä läpi parannusehdotuksia yleisiin testaamisen liittyviin käytäntöihin. Testaamista tehdään usealla tasolla, manuaalisesti, sekä automaatiotesteillä varmistetaan sovelluksen luotettavuutta. Työssä oli myös tärkeänä osana resurssien tehokas käyttäminen, jolloin oli oltava todella tarkka mitä testataan ja missä määrin.
Opinnäytetyössä käsiteltävässä asiakasprojektissa käytettiin Cypress.io-testausautomaatiokehystä ja PHPUnit-yksikkötestauskehystä. Näiden testauskehikkojen lisäksi koodin laatua valvottiin erilaisilla koodianalytiikkatyökaluilla kuten ESLint. Cypress.io käsitteli enemmän käyttöliittymän testaamista, kun taas PHPUnit oli yksikkötestaamista varten. Kaikki koodianalytiikka ja automaatiotestaus liitettiin myös projektin CI/CD-putkiin, jotta mitään ei päässyt läpi ilman testien ja analytiikan hyväksymistä.
Opinnäytetyön lopputulos oli alkuperäiseen suunnitelmaan verrattuna erilainen. Projektin aikana tulleet budjettimuutokset, sekä valituissa teknologioissa huomatut heikkoudet muuttivat lähestymistapaa huomattavasti. Testauskattavuus parani, sekä tieto testaamisen eri osa-alueiden aikahyötysuhteesta kehittyi jokaisella projektiryhmässä. Lopuksi oli siis kattavat yksikkötestit, joita kirjoitetaan edelleen jatkokehityksessä. Cypress.io-käyttöliittymätestaaminen jätettiin pois noin puolessa välissä projektia sen huomattujen heikkouksien takia. Manuaalitestaamista lisättiin projektiryhmän puolesta, sekä asiakkaalta pyydettiin lisää testaamista. Projektin testauskäytännöt kokivat paljon muutoksia, mutta lopputulema on hyvin tasapainoinen ja tehokas.
Opinnäytetyössä käsiteltävässä asiakasprojektissa käytettiin Cypress.io-testausautomaatiokehystä ja PHPUnit-yksikkötestauskehystä. Näiden testauskehikkojen lisäksi koodin laatua valvottiin erilaisilla koodianalytiikkatyökaluilla kuten ESLint. Cypress.io käsitteli enemmän käyttöliittymän testaamista, kun taas PHPUnit oli yksikkötestaamista varten. Kaikki koodianalytiikka ja automaatiotestaus liitettiin myös projektin CI/CD-putkiin, jotta mitään ei päässyt läpi ilman testien ja analytiikan hyväksymistä.
Opinnäytetyön lopputulos oli alkuperäiseen suunnitelmaan verrattuna erilainen. Projektin aikana tulleet budjettimuutokset, sekä valituissa teknologioissa huomatut heikkoudet muuttivat lähestymistapaa huomattavasti. Testauskattavuus parani, sekä tieto testaamisen eri osa-alueiden aikahyötysuhteesta kehittyi jokaisella projektiryhmässä. Lopuksi oli siis kattavat yksikkötestit, joita kirjoitetaan edelleen jatkokehityksessä. Cypress.io-käyttöliittymätestaaminen jätettiin pois noin puolessa välissä projektia sen huomattujen heikkouksien takia. Manuaalitestaamista lisättiin projektiryhmän puolesta, sekä asiakkaalta pyydettiin lisää testaamista. Projektin testauskäytännöt kokivat paljon muutoksia, mutta lopputulema on hyvin tasapainoinen ja tehokas.